본문 바로가기

Miscellaneous

FIR Filter & IIR Filter의 차이점

해당글은 http://www.mcublog.co.kr/649 부터 정리되었습니다.


Filter란 말 그대로 거르는 역할을 한다. DSP에서는 원하는 특정 주파수를 거르거나 통과시키는 역할을 한다. 먼저 필터에 대한 이해를 하기위해선 주파수 영역에 대한 이해를 해야한다.


* 주파수란?
1초 동안에 진동한 횟수, 즉 초당 진동수이다. 주파수의 단위는 "Hz" 헤르츠이며 기호로는 'f'를 사용한다. 만약 1초동안 2회 진동하면 2Hz, 1000회를 진동하면 1000Hz(1KHz)가 된다.


일반적으로 우리가 알고 있는 신호들은 시간영역에 속하지만 Filter를 사용하기 위해서는 이러한 신호들을 주파수 영역으로 이동, 변환시켜 사용하게 되므로, 문제는 영역이 바뀐다는 것이다. 우리가 알고 있는 수학이 모두 그러하듯 자연계에 존재하는 시간 영역의 신호를 주파수 영역으로 변환할 때 100% 완벽하게 변환하고 복원시키는 것이 어렵다는 것이다. 따라서 Filter를 어떤 모양으로 만들어 사용하는 것이 신호를 변환하고 다시 복원시킬 때 가장 완벽하게 복원 시킬 수 있는 지가 중요하다.

예를 들어 IIR, FIR 같은 것들도 어떤 모양으로 만들 것인지에 따른 종류들이고 또 Filtering을 해야하는 입력 신호들이 어떤 종류이며 어떤 특징을 갖느냐에 따라 구분되어 있는 것이다. 방법이 다를 뿐 기본적인 목적은 같은 것이다.

Filtering의 문제는 회로적이라기 보다는 수학적인 문제에 가깝다.



FIR Filter(Finite impulse response filter) : FIR Filter는 디지털 Filter의 한 종류로 입력신호의 일정한(유한한, finite) 값들만을 가지로 filtering을 수행한다.

따라서 filter의 특성함수인 impulse response를 구해보면 유한한 길이를 가지게 된다.

Filter의 식의 형태에서 보면 회귀(feedback)성분을 갖지 않는다. 그러므로 동일한 특성을 구현할 때 차수가 IIR filter에 비하여 높아져서 구현비용(부품가격, 실행시간 등)이 많이 들지만 위상변이(즉, 입력과 출력간의 파형의 형태유지)가 중요한 경우에는 반드시 FIR Filter를 사용해야 한다. 설계법으로는 윈도우에 의한 방법, 주파수 표본화 방법, 컴퓨터에 의한 최적 설계법 등이 있다.


*위상이란? https://brunch.co.kr/@audiotech/15

위상이라는 단어자체는 음파의 주기를 그래프로 표현한 것인데, 흔히 음향에서는 위상이 맞다 혹은 맞지 않다로 표현되는 경우가 많다. 일반적으로 이 위상을 설명할 때 사인웨이브(SIne Wave)를 통해 설명하는 경우가 많은 것은 이 그래프가 위상을 시각화하기가 효과적이기 때문이다. 하지만 실제 녹음되는 소리들은 순수한 사인웨이브와는 아주 거리가 먼 복합웨이브(Complex Wave)이다.


다음은 FIR 관련 질문에 대한 답변을 정리한 내용이다.

FIR은 단지 impulse response를 디지털 샘플링 한것에 지나지 않으며 DSP에만 있고 이와같은 기능을 하는 아날로그 EQ는 없다. FIR Filter라는 것은 사실 연속되는 임펄스(impulse)의 표준치(sampled value)를 나타내는 계수(coefficient)들의 급수(Series)의 "합"일 뿐이다.(역자주 - 퓨리에 변환 수학식 설명)

Transfer function의 impulse respose를 간단히 계산하고, 샘플링을 한 후 FIR filter를 구성하게 된다. DSP Filter를 사용할 때 실제로 사용되는 Sample들의 수를 "Taps"라고 한다. FIR Filter를 사용하기 위해 Taps를 늘리면 Spectrum상에서 쓸 수 있는 FIR Filter의 수가 줄어든다.

그 이유는 DSP장비에서 FIR Filter를 위해 할당된 자원의 양이 고정되어 있기 때문인데, 저음에서 FIR을 쓰려면 Taps를 늘려야 하고 결국 문제에 봉착하게 된다.

예를들어 FIR Filter에서 256 Taps를 사용하는 경우 48KHz 샘플링 상태라면 5.33msec 후에 FIR Filter 출력이 나오게 된다. 즉 믹싱하는 시그널 체인(Signal Chain)상에서 이미 5.33msec의 지연(Delay)이 이미 출력도 하기전에 생기는 것이다. 그러나 256Tap 으로는 400Hz 미만의 High pass filter 조차 사용할 수 없다. 즉 FIR Filter를 이용하여 스피커의 cross-over로 사용하는 것은 거의 불가능하다. 너무나 많은 시간지연(Delay)으로 인해 실제적으로 사용할 수 없다.(역자주 - 라이브 환경에서)

또한 FIR Filter가 N개의 Tap을 사용하는 경우, 모든 타임 스텝에 대하여 N번 곱셈연산을 한 값을 구한 후 이것들을 모두 더하게 되는데, 이를 위해 Sample들을 저장해야 하고 이는 IIR Filter에 비해 엄청나게 많은 수치연산을 DSP에 요구하게 된다. 그러므로 FIR Filter는 비싼 DSP 장비에만 탑제가 되는 것이다. 

하지만 컴퓨터에서는 Convolution(복잡연산 - 합성연산)을 쉽게할 수 있다. 탈곡기가 곡물 수확하듯이 수천, 수만의 Tap도 쉽게 처리하지만 Real time은 아니다.(역자주 - Protools같은 오디오 프로그램의 후반작업시 사용하는 경우)




IIR Filter(Infinite impulse response filter) : IIR Filter는 디지털 필터의 한 종류로 입력신호의 값과 출력신호의 값이 재귀적으로(recursive, feedback)적용되어 filtering이 수행된다. 따라서 구현식의 형태로 반복식이 되며 특성함수인 임펄스 응답은 무한한 길이를 갖는다.

동일한 특성을 갖는 FIR Filter에 비해 차수가 적어져서 경제성이 있으나, 위상특성의 측면에서는 비선형성을 가지므로(즉, 각 주파수 성분마다 위상의 차이가 빈선형적으로 달라지므로) 입력 파형과 출력 파형이 유사한 파형을 갖지 않는다.

설계법으로는 bilinear transform에 의한 방법, impulse response 불볍법등이 있다. 이러한 방법은 공통적으로 차단 주파수 근방에서 진폭이나 주파수 축의 왜곡이 발생할 가능성이 있으므로 원하는 filtering 대역보다 표본화 주파수를 크게 잡는 것이 좋다.

반응형