리니어 페이즈 : FIR 필터와 IIR 필터에 대해서

리니어 페이즈? 내츄럴 페이즈?

리니어 페이즈

플러그인 등을 다뤄보면서 리니어 페이즈, 내츄럴 페이즈에 대해 들어본 적 있을것이다.

말 그대로, 리니어 페이즈는 위상 응답이 선형이다. 즉, 모든 주파수 성분에 대한 시간 지연이 동일하다.

위상

파동과 위상 문서 바로가기

주파수 관련 프로세싱을 할 경우에는 모든 주파수가 동일한 시간 지연을 받지 않기 때문에 위상 왜곡이 발생한다. 이것이 보통의 내츄럴 페이즈이다. 하지만 주파수 중에서 가장 길게 지연되는 시간을 기준으로 모든 주파수에 같은 지연을 부여하면, 위상 왜곡 없이 모든 주파수가 동일하게 처리된다. 이러한 방식을 “리니어 페이즈”라고 부른다.

이 내용을 조금 더 깊게 알려면 몇 가지 용어와 개념에 대한 이해가 필요하다. 다음은 디지털 필터의 큰 두가지 분류인 FIR 필터와 IIR필터에 대해 살펴보겠다.

FIR filter(Finite Impulse Response filter)

FIR

FIR 필터는 임펄스 응답이 유한한 시간 안에 0으로 수렴한다. 즉, 입력에 대한 응답이 유한한 시간 동안만 발생하고 그 후에는 0이 된다. 그 말은 필터의 계수(탭)를 적절히 설계하여 어떠한 위상 응답도 만들어낼 수 있다는 뜻이다. 그렇기 때문에 FIR 필터는 리니어 페이즈의 설계에 활용된다.

하지만 주어진 주파수 응답을 달성하기 위해서는 IIR 필터보다 더 많은 계수가 필요할 수 있다. 이로 인해 처리 부하가 증가하고, 레이턴시가 필연적으로 발생한다. 또한, 계수가 많이 필요하여 구현비용이 많이 든다.

IIR Filter(Infiite Impulse Response filter)

말 그대로, 임펄스 응답이 무한한 필터를 의미한다.

Impulse
임펄스 신호

잠깐, 임펄스 응답이 무한하다고? 이게 말이되나?

임펄스 신호는 아주 짧은 시간 동안 1의 크기를 가지고, 그 전후로는 0의 값을 가지는 신호이다. 그래서 그래프로 나타내면 중간에 하나의 뾰족한 피크만 나타나고 그 외에는 모두 0이다. 이게 어떻게 무한할 수 있다는 말인가?

IIR


맞다. 임펄스 신호는 아주 짧은 시간 동안만 값이 있고 그 외의 시간에는 0의 값을 가진다. 따라서 임펄스 자체는 어떠한 지속성도 갖지 않는다. 하지만 IIR (Infinite Impulse Response) 필터의 주요 특징 중 하나는 피드백 메커니즘을 가지고 있다는 것이다. 이 피드백 때문에 임펄스 응답이 무한하게 지속될 수 있다.(당연히 실제로는 값이 점차 감소하며, 언젠가는 실제 응용에서는 0에 아주 가깝게 되어 실질적으로 0으로 간주된다. 그러나 이론적으로는 완전히 0이 되지 않는다는 것을 의미한다.)

IIR

간단하게 설명하면, IIR 필터에서는 출력의 일부가 다시 입력으로 반복적으로 되돌아가며 이 과정이 계속 반복된다. 이렇게 출력에서 일부가 다시 입력으로 피드백되기 때문에 출력 신호가 이론적으로 끝나지 않고 계속될 수 있다. 이런 이유로 인해 비선형적 위상 응답이 발생하고, 리니어 페이즈 설계가 힘들다.

하지만 이러한 특성을 통해 FIR 필터에 비해 적은 계수로 동일한 필터링 특성을 얻을 수 있고, 이는 메모리 사용량을 줄이고 계산 효율성을 높여준다(레이턴시가 적다). 따라서 일반적인 디지털 이퀄라이저 설계에 많이 쓰인다고 볼 수 있다.

프리 링잉(Pre – ringing)?

그렇다면 리니어페이즈의 소리가 무조건 좋은게 아니냐고? 당연히 그렇지 않다. 리니어 페이즈는 프리 링잉(Pre – ringing)이라는 현상을 동반하기 때문이다.

프리링잉


프리링잉이 발생하면 마치 트렌지언트 이전에 리버스 한 것 같은 소리가 나곤한다(에코나 반사음처럼 들린다고도 한다). 이러한 현상의 원리는 다음과 같다.

FIR filter의 특성상 대칭적인 임펄스 응답을 갖는다. 즉, 위상이 대칭적이란 뜻이다. 이 대칭성은 필터의 모든 주파수 성분에 동일한 지연을 부여하므로 위상 왜곡을 피하게 한다. 신호가 FIR 필터를 통과하면, 신호의 각 샘플은 필터의 계수와 컨볼루션된다. 이 컨볼루션 연산은 신호의 급격한 변화 부분에서 임펄스 응답의 대칭성 때문에 신호 변화 전에 응답이 시작되게 만든다. 이것이 바로 pre-ringing이다.

다시 말해, 이 대칭성 때문에 급격한 소리 변화나
피크가 발생하기 전에 미리 반응하는 것이다.

프리링잉은 고역보다는 저역에서, 컷보다는 부스트에서, 큐 값이 좁고 정교할수록 더 크게 발생된다. 따라서 저역(위상 문제는 보통 저역이겠지만) 프로세싱을 할때는 주의가 필요하다. 덧붙여서, 리니어 페이즈보다 내츄럴 페이즈가 더 자연스럽고 듣기 좋다는 시각도 있는 점을 참고하자. 자연 속에서는 위상이 변하는 것이 자연스럽기 때문이다.