악은 이토록 거침이 없이 지멋대로 인데, 어째서 선은 왜 매순간 자신을 증명해야만 하는가!
참 답답한 요즘입니다. 나라가 어찌될려나요...
어의 없는 시절을 지내기 위해 블로그 포스팅에 집중해 봅니다.
① 필터
디지털 필터에는 크게 FIR과 IIR의 두 가지 타입에 있습니다.
ㅇ Finite impulse response (FIR) : 유한한 길이의 임펄스 응답을 가지는 필터로, 입력 신호가 들어오고 나서 특정 길이만큼의 샘플 이후에는 응답이 0이 되는 특성
(ex) 각 주파수에서 주파수 목록과 원하는 gain을 제공하여 사용자 지정 주파수 응답으로 필터를 설계

ㅇ Infinite impulse response (IIR) : 무한 길이의 임펄스 응답을 가지며, 피드백 구조를 포함해 과거의 출력 값이 현재 출력에 영향을 미치는 특성
(ex) 피보나치 수 : y[0]=0, y[1]=1, y[n]=y[n-1]+y[n-2] , for n>2
z변환하면, Y = Y·z-1 + Y·z-2 + z-1 , for n>0
Y로 정리하면, Y = z-1 / (1 - z-1 - z-2) = z / (z2 - z -1)
z역변환하면, ( φ**n - 1/(-φ)**n )/np.sqrt(5) * u[n] , 여기서 φ는 황금비(golden ratio)
결론적으로,,, IIR 필터는 더 복잡하고 불안정할 가능성이 있지만 더 효율적입니다.(지정된 필터에 대해 더 적은 CPU와 메모리를 사용) 예를 들면, 동일한 필터링을 수행하는데, FIR 필터에는 50개의 탭이 요구되는 반면 IIR 필터에는 12개의 극점이 필요한데 이는 계산 측면에서 12개의 탭이 있는 것과 같습니다. 탭 목록을 제공하면 FIR 필터의 탭이라고 가정하고, "pole"을 언급하면 IIR 필터라고 생각하면 됩니다.
② 펄스성형(Pulse Shaping) 소개
펄스성형은 궁극적으로 특별한 속성가지고 특정 목적(ISI-심볼간 간섭을 줄이고, 더 적은 대역폭을 차지하도록 하는 것)으로 사용되는 필터 유형이기 때문에 필터링과 함께 언급할 가치가 있습니다.
일반적인 pulse-shaping filters 는 아래와 같습니다.
ㅇ Raised-cosine filter
ㅇ Root raised-cosine filter
ㅇ Sinc filter
ㅇ Gaussian filter
이러한 필터에는 일반적으로 대역폭을 줄이기 위해 조정할 수 있는 매개 변수가 있습니다. 아래는 roll-off factor(β) 값의 변화에 따른 상승코사인필터(raised-cosine filter)의 시간 및 주파수 영역을 보여줍니다.
무선 통신의 경우 일반적으로 0.2에서 0.5 사이의 롤오프를 좋아합니다.
일반적으로 심볼속도 및 롤오프 계수에 대한 대역폭 방정식은 다음과 같습니다.
BW = Rs(1 + β )
예를 들면, QPSK로 초당 100만 심볼을 전송하면( β =0.3), 대역폭은 약 1.3 MHz 가 되고, 이때 데이터률은 2Mbps가 됩니다. (recall that QPSK uses 2 bits per symbol)

여기서는 beta값을 정확하게 입력하면 에러가 나서 오차(1e-9)를 조금 주었습니다.
<참고자료>
1. 필터 | PySDR: Python을 사용한 SDR 및 DSP 가이드
2. 조금은 느리게 살자: Z 변환(Z-transform)
3. Raised-cosine filter - Wikipedia
4. Pulse Shaping | PySDR: A Guide to SDR and DSP using Python
'통신이론' 카테고리의 다른 글
디지털 QPSK 변조, IQ성상도, 위상잡음 (0) | 2025.02.11 |
---|---|
파이썬을 이용한 SDR과 DSP 소개 (0) | 2025.01.18 |
SNR, THD, SINAD 그리고 C/N 계산하기 (0) | 2024.10.19 |
음향장비 VU미터, dBu, dBFS (0) | 2024.08.23 |
윈도우 환경에서 GNU Radio, gqrx 쉽게 설치 + 맛보기 (0) | 2024.07.10 |