로 쉘빙 필터
이퀄라이저에서 사용되는 로 쉘빙 필터(low shelving filter, LSF)는 저역 부분의 이득을 조정할 목적으로 사용되는 이퀄라이저용 필터입니다. 필터 주파수를 기준으로 낮은 주파수 부분의 신호를 증폭하거나 감소합니다.
로 쉘빙 필터는 조정하고자 하는 주파수와 조정하는 이득 그리고 필터의 기울기를 인자로 합니다.
피킹 필터와 다르게 Q 대신 slope을 이용해서 조정합니다. 그런데 두 인자는 변환이 가능합니다. 관련 내용은 다른 글을 참조해 주세요.
필터를 구하는 기본 내용은 피킹 필터와 같으니 피킹 필터 부분으로 참조하면 됩니다. 필터 계수는 다음과 같습니다. 여기서 $f$는 필터의 주파수, $f_{s}$는 샘플링 주파수, G는 dB로 표시되는 필터의 이득, slope는 필터의 기울기입니다. 이 부분에 대한 내용은 아래를 참조해 주세요
https://medialink.tistory.com/73?category=958130
https://medialink.tistory.com/77?category=958130
$$\omega_{0}=\frac{2\pi f}{f_{s}}$$
$$A=10^{\frac{G}{40}}$$
$$c_{0}=cos(\omega_{0})$$
$$s_{0}=sin(\omega_{0})$$
$$h_{1} = \frac{s_{0}}{2}\sqrt{\left (A+\frac{1}{A} \right )\left ( \frac{1}{slope}-1 \right )+2}$$
$$h_{2}=2h_{1}\sqrt{A}$$
$$b_{0} = A((A+1)-(A-1)c_{0}+h_{2})$$
$$b_{1} = 2A((A-1)-(A+1)c_{0})$$
$$b_{2} = A((A+1)-(A-1)c_{0}+h_{2})$$
$$a_{0} = (A+1)-(A-1)c_{0}+h_{2}$$
$$a_{1} = -2((A-1)-(A+1)c_{0})$$
$$a_{2} = (A+1)-(A-1)c_{0}-h_{2}$$
GNU Octave로 필터 특성 검토
다음과 같이 lsf.m를 만들고 GNU Octave에서 실행합니다.
clear all;
pkg load signal;
fs = 44100.0;
f0 = 500.0;
NFFT = 1024;
SLOPE= 1.2;
G= 10.0;
function [coef_b, coef_a] = LSF(f0,fs,g,slope)
coef_b=zeros(1,3);
coef_a=zeros(1,3);
A=10^(g/40.0);
w0=2.0*pi*f0/fs;
s0=sin(w0);
c0=cos(w0);
h1=s0/2.0*sqrt((A+(1/A))*((1/slope)-1)+2.0);
h2 = 2*h1*sqrt(A);
coef_b(1) = A*((A+1)-(A-1)*c0+h2);
coef_b(2) = 2*A*((A-1)-(A+1)*c0);
coef_b(3) = A*((A+1)-(A-1)*c0-h2);
coef_a(1) = ((A+1)+(A-1)*c0+h2);
coef_a(2) = -2.0*((A-1)+(A+1)*c0);
coef_a(3) = ((A+1)+(A-1)*c0-h2);
endfunction
[b,a]=LSF(f0,fs,G,SLOPE);
[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([-30 30])
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)이 단위 원안에 있기 때문에 이 필터는 안정적입니다.
주파수 특성을 보면 LSF가 잘 형성되어 있습니다.
베이스
베이스(Bass)는 오디오신호의 저역 부분의 이득을 증가 또는 감소하는 LSF의 한 종류입니다. 정확히 말하면 LSF의 주파수와 slope를 고정하고 오로지 이득만 조정할 수 있도록 간결하게 만든 것이 Bass입니다.
일반적으로 LSF의 주파수를 500Hz정도 slope=1 정도로 사용합니다. 물론 이는 취향에 따라 다른 값을 사용할 수도 있습니다.
광고좀 꾹 눌러주시면 고맙겠습니다.
참조
https://www.musicdsp.org/en/latest/Filters/197-rbj-audio-eq-cookbook.html
위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다.
기타 문의 사항은 gigasound@naver.com에 남겨 주시면 고맙겠습니다.
'Audio Processing' 카테고리의 다른 글
오디오 필터(10)-IIR 대역통과 필터(Band Pass Filter, BPF) (0) | 2021.10.29 |
---|---|
오디오 필터(9)-IIR 이퀄라이저(Equalizer), 하이 쉘빙 필터(High Shelving Filter, HSF) (0) | 2021.10.29 |
오디오 필터(7)-IIR 이퀄라이저(Equalizer), 피킹 필터(Peaking Filter, PF) (0) | 2021.10.29 |
오디오 필터(6)-이퀄라저(Equalizer)의 품질팩터(Quality Factor, Q) (0) | 2021.10.29 |
오디오 필터(5)-이퀄라이저와 그래픽 이퀄라이저 (0) | 2021.10.29 |