전대역 통과 필터
전대역 통과 필터(all pass filter, APF)는 LPF등과 다르게 모든 신호를 그냥 통과시킵니다. 그러나 필터 주파수를 기준으로 위상을 변경시킵니다. 그래서 위상 특성의 수정을 위해서 주로 사용합니다. 이를 이용해서 인공 잔향기를 만들기도 합니다.
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()
필터 특성의 검토
z-영역에서 필터의 안정성을 확인합니다. 모든 극점(x)이 단위원 안에 있습니다.
주파수 특성을 보면, 모든 신호를 통과시키지만 위상은 변경되었습니다.
광고좀 꾹 눌러주시면 고맙겠습니다.
위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다.
기타 문의 사항은 gigasound@naver.com에 남겨 주시면 고맙겠습니다.
'Audio Processing' 카테고리의 다른 글
오디오 필터(13)-IIR 버터워스 저역 통과 필터(Butterworth Low Pass Filter) 설계 (0) | 2021.10.29 |
---|---|
오디오 필터(12)-IIR 노치 필터(Notch Filter, NF) (0) | 2021.10.29 |
오디오 필터(10)-IIR 대역통과 필터(Band Pass Filter, BPF) (0) | 2021.10.29 |
오디오 필터(9)-IIR 이퀄라이저(Equalizer), 하이 쉘빙 필터(High Shelving Filter, HSF) (0) | 2021.10.29 |
오디오 필터(8)-IIR 이퀄라이저(Equalizer), 로 쉘빙 필터(Low Shelving Filter, LSF) (0) | 2021.10.29 |