FIR 필터 구하기
FIR 필터는 다른글에서 다룬 신호의 궤환이 있는 IIR 필터와 다르게 궤환이 없이 유한한 필터 계수만으로 구현되는 필터로 선형 위상을 가지는 특징이 있습니다. 다만 IIR 필터 보다 연산량이 많은 단점이 있습니다.
이 글과 다른 글에서 FIR을 이용한 필터를 만들고 실행하는 방법을 알아보겠습니다.
- 이상적인 필터의 특징을 이용한 필터 계수 구하기
- 윈도우 방식을 이용한 FIR 필터 구하기
- 주파수 샘플링 방식을 이용한 FIR 필터 구하기
- 콘보루션으로 FIR 필터 실행하기
이상적인 필터
지난 글에서 이상적인 필터와 실제 구현 가능한 필터 형태에 대해 설명했습니다. FIR(finity impulse response) 필터는 이상적인 필터를 출발점으로 해서 구현 가능한 형태로 유도합니다. 유도 방법은 크게 두 가지 방법이 있습니다.
이상적인 필터는 아래 그림과 같이 필터의 차단 주파수를 기준으로 통과 대역(pass band)과 차단 대역(stop band)이 확연히 구분되는 특성을 가집니다.
이 글에서는 이상적인 필터를 기반으로 통과필터의 FIR 형 필터 특성을 구하는 방법을 알아보겠습니다.
세부적으로는 FIR 필터를 구하는 기본적인 내용은 이상적인 필터 $H(e^{j\omega})$의 역푸리에 변환(invese discrete Fourier transform, IDFT)으로 필터 응답을 $h(n)$을 구하는 것으로부터 시작합니다.
이글에서는 $h(n)$을 구하는 방법까지만 설명하고 나머지는 다른 글에서 다루겠습니다.
저역통과 필터의 FIR 필터
위의 그림에서 차단 주파수 fc는 디지털 각 주파수 $w_c = 2\pi f_c / f_s$가 됩니다. 그러면 $H(e^{j\omega})$로부터 이상적인 저역통과 필터의 $h(n)$은 역푸리에 변환을 이용해서 다음과 같이 구해집니다.
$$h_d (n)=\frac{1}{2\pi}\int_{-\pi}^{\pi}H(e^{j\omega})e^{j\omega n}d\omega$$
그런데 $w_c$는 위의 그림의 주파수 영역에서는 $\left | \omega_c \right |$의 영역을 차지합니다. 그러므로 위의 식은 아래와 같이 적분 영역이 변경됩니다.
$$h_{d,LPF} (n)=\frac{1}{2\pi}\int_{-\omega_c}^{\omega_c}e^{j\omega n}d\omega$$
이를 정리하면 다음과 같이 $h(n)$을 구할 수 있습니다. 그런데 위의 적분의 결과는 Sinc()함수의 형태로 $-\infty \leq n \leq \infty$ 인 조건으로 전개된 결과입니다. 그리고 $n=0$인 경우에 $h_d (0)$가 연산 불가가 되기 때문에 이때는 로비탈 정리를 이용해서 구하고 나머지 조건에서는 위의 식으로 구하면 됩니다.
$$h_{d,LPF} (n)=\frac{sin(\omega_c n)}{\pi n} $$
공학적으로 사용하려면 유한한 n이 되도록 유도할 필요가 있습니다. 이에 대한 내용은 다른 글에서 다루겠습니다.
고역 통과 필터의 FIR 필터
고역 통과 필터의 저역통과 필터와 다른 부분에서만 적분이 수행됩니다. 그래서 이를 전개하면 저역통과 필터의 $h_{d,LFP} (n)$에 -1을 곱하면 됩니다.
$$h_{d,HPF} (n)=-\frac{sin(\omega_c n)}{\pi n} $$
대역 통과 필터의 FIR 필터
대역 통과 필터는 저역통과 필터와 고역 통과 필터를 합성해서 얻어집니다. 사실 두 필터의 영영이 겹친 부분만 적분한 내용과 같습니다.
$$h_{d,BPF} (n)=\frac{sin(\omega_{higher} n)}{\pi n}-\frac{sin(\omega_{lower} (n))}{\pi n}$$
위의 내용들은 FIR형 통과 필터를 구하기 위해 기본적인 내용입니다. 이를 그대로 사용할 수는 없어서, 다른 몇 개의 과정을 거쳐야 합니다. 이에 대한 내용은 다른 글에서 다뤄보겠습니다.
광고좀 꾹 눌러주시면 고맙겠습니다.
참조 :
https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/filters/generalfirfilter
위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다.
기타 문의 사항은 gigasound@naver.com에 남겨 주시면 고맙겠습니다.
'Audio Processing' 카테고리의 다른 글
오디오 필터(19)-주파수 샘플 방법으로 FIR 필터 구하기 (0) | 2021.10.29 |
---|---|
오디오 필터(18) - 윈도우 방법을 이용한 FIR 필터 구하기 (0) | 2021.10.29 |
오디오 필터(16)-IIR 필터 실행, 오디오 볼륨 처리 (0) | 2021.10.29 |
오디오 필터 실험(15)-원시 데이터 얻기 (0) | 2021.10.29 |
오디오 필터(14)-IIR 버터워스 고역 통과 필터(Butterworth High Pass Filter) 설계 (0) | 2021.10.29 |