본문 바로가기
Audio Processing

오디오 필터(11)-IIR 전대역 통과필터(All Pass Filter, APF)

by gigasound 2021. 10. 29.


전대역 통과 필터 

전대역 통과 필터(all pass filter, APF)는 LPF등과 다르게 모든 신호를 그냥 통과시킵니다. 그러나 필터 주파수를 기준으로 위상을 변경시킵니다. 그래서 위상 특성의 수정을 위해서 주로 사용합니다. 이를 이용해서 인공 잔향기를 만들기도 합니다.

APF의 진폭 응답
APF의 위상 응답


APF의 필터 계수

APF의 필터 계수는 다음과 같이 구합니다. 이때 Q에 따라서 위상의 변화 정도가 결정됩니다. 이부분에 대햔 내용은 아래를 참조해 주세요 

https://medialink.tistory.com/73?category=958130

https://medialink.tistory.com/77?category=958130 

 

$$h=\frac{sin(\omega_0)}{2Q}$$

$$b_{0}=a_{2}=1-h$$

$$b_{1}=a_{1}=-2cos(\omega_{0})$$

$$b_{0}=a_{2}=1+h$$


GNU Octave로 필터 검토

다음과 같이 apf.m를 생성하고 GNU Octave로 필터 특성을 검토해 보겠습니다.

clear all;
pkg load signal;
fs = 44100.0;
f0 = 1000.0;
NFFT = 1024;
Q= 5; 

function  [coef_b, coef_a] = APF(f0,fs,Q)
  coef_b = zeros(1,3);
  coef_a = zeros(1,3);
  w0 = 2.0 * pi * f0 / fs
  s0= sin(w0)
  c0=cos(w0)
  h = s0 / (2 * Q) 
  coef_b(1) = 1 - h
  coef_b(2) = -2.0 * c0
  coef_b(3) = 1 + h
  coef_a(3) = coef_b(1)
  coef_a(2) = coef_b(2)
  coef_a(1) = coef_b(3)
endfunction

[b,a]=APF(f0,fs,Q);
[h,w]=freqz(b,a,NFFT,fs);
m = 20.0*log10(abs(h));

figure(1);
clf;
zplane(b,a);
figure(2);
clf;
subplot(2,1,1)
semilogx(w,m)
xlim([20 44100/2])
ylim([-10 10])
xlabel("frequency(Hz)")
ylabel("magitude(dB)")
grid()
subplot(2,1,2)
semilogx(w,arg(h)*180/pi)
xlim([20 44100/2])
ylim([-200 200])
xlabel("frequency(Hz)")
ylabel("phase(deg)")
grid()

apf.m
0.00MB


필터 특성의 검토

z-영역에서 필터의 안정성을 확인합니다. 모든 극점(x)이 단위원 안에 있습니다.

z영역에 APF의 극점과 영점

주파수 특성을 보면, 모든 신호를 통과시키지만 위상은 변경되었습니다.

APF의 주파수 특성


광고좀 꾹 눌러주시면 고맙겠습니다. 


위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다.

기타 문의 사항은 gigasound@naver.com에 남겨 주시면 고맙겠습니다.