一阶shelf IIR数字滤波器的设计和实现
一阶高低shelf 滤波器可以理解为按住一头,调整另一头的滤波器。low shelf滤波器就是高频部分直通,低频部分可调
一阶shelf IIR数字滤波器的设计和实现
还是从最简单的低通滤波器传递函数入手
前文中提到的巴特沃兹一阶滤波器,所以我们先研究这个最简单的滤波器传递函数:
H ( s ) = Ω c Ω c + s H(s) = \frac{\Omega_c}{\Omega_c+s} H(s)=Ωc+sΩc
对于一阶高低shelf 滤波器可以理解为按住一头,调整另一头的滤波器。low shelf滤波器就是高频部分直通,低频部分可调。那么根据低通滤波器,我们如何得到一个low shelf滤波器呢?其实也很简单,只需要两步:
第一步:给低通增加一个增益控制旋钮(系数)
我们定义一个系数 B 0 B_0 B0,然低通滤波器的低通增益可调。 H ( s ) = B 0 Ω c Ω c + s = B 0 Ω c Ω c + s H(s) =B_0\frac{\Omega_c}{\Omega_c+s} =\frac{B_0\Omega_c}{\Omega_c+s} H(s)=B0Ωc+sΩc=Ωc+sB0Ωc
这个一阶低通滤波器的传递函数,当s=0时, |H(s)|= B 0 B_0 B0;当s= ∞ \infty ∞,|H(s)|=0。截止频率 Ω c \Omega_c Ωc。
第二步:并联一个直通信号 y(n)= x(n)
并联直通信号的结果是传递函数,当s=0时, ∣ H ( s ) ∣ = 1 + B 0 |H(s)|=1+B_0 ∣H(s)∣=1+B0;当s= ∞ \infty ∞,|H(s)|=1。截止频率 Ω c \Omega_c Ωc。下面是传递函数的数学表达: H ( s ) = 1 + B 0 Ω c Ω c + s H(s) =1+\frac{B_0\Omega_c}{\Omega_c+s} H(s)=1+Ωc+sB0Ωc
这里 Ω c \Omega_c Ωc=2 π \pi π f c f_c fc,。
low变high
用s= 1 s \frac{1}{s} s1 带入上面的公式,就会得到high filter滤波器了。
H ( s ) = 1 + B 0 Ω c Ω c + 1 s = 1 + B 0 Ω c s Ω c s + 1 = 1 + B 0 s Ω c s Ω c + 1 = 1 + B 0 s s + Ω π H(s) =1+\frac{B_0\Omega_c}{\Omega_c+\frac{1}{s}}=1+\frac{B_0\Omega_cs}{\Omega_cs+1}=1+\frac{\frac{B_0s}{\Omega_c}}{\frac{s}{\Omega_c}+1}=1+\frac{B_0s}{s+\Omega_\pi} H(s)=1+Ωc+s1B0Ωc=1+Ωcs+1B0Ωcs=1+Ωcs+1ΩcB0s=1+s+ΩπB0s
可以直观的观察当s=0时, |H(s)|=1;当s= ∞ \infty ∞, ∣ H ( s ) ∣ = 1 + B 0 |H(s)|=1+B_0 ∣H(s)∣=1+B0。那此时的截止频率 Ω π \Omega_\pi Ωπ= 1 Ω c \frac{1}{\Omega_c} Ωc1,回忆高通滤波器的传递函数
H ( s ) = s s + Ω h H(s) = \frac{s}{s+\Omega_h} H(s)=s+Ωhs
high shelf滤波器也可以理解为带有增益的高通滤波器和直联信号的并联形式。
从模拟到数字,依然双线性变换
本例给出low shelf 的推导
low shelf传递函数的数学表达: H ( s ) = 1 + B 0 Ω c Ω c + s H(s) =1+\frac{B_0\Omega_c}{\Omega_c+s} H(s)=1+Ωc+sB0Ωc
数字滤波器的截止频率计算公式: ω c = 2 π f f s \omega_c =\frac{2\pi f}{f_s} ωc=fs2πf
数字和模拟频率的转换关系: Ω c = ω c T \Omega_c = \frac{\omega_c}{T} Ωc=Tωc
双线性变换一般要求对频率作预畸变处理,采用如下公式: Ω c = 2 T tan ω c 2 \Omega_c = \frac{2}{T}\tan{\frac{\omega_c}{2}} Ωc=T2tan2ωc
带入双线性变换公式: s = 2 T 1 − z − 1 1 + z − 1 和 ω c = 2 π f c f s s =\frac{2}{T} \frac{1-z^{-1}}{1+z^{-1}} 和 \omega_c =\frac{2\pi f_c}{f_s} s=T21+z−11−z−1和ωc=fs2πfc
直接变换我们得到
H ( s ) = ( ( 1 + B 0 ) π f c + f s ) + ( ( 1 + B 0 ) π f c − f s ) z − 1 ( π f c + f s ) + ( π f c − f s ) z − 1 = Y ( Z ) X ( Z ) H(s) =\frac{((1+B_0)\pi f_c+f_s)+((1+B_0)\pi f_c-f_s)z^{-1}}{(\pi f_c+f_s)+(\pi f_c-f_s)z^{-1}}=\frac{Y(Z)}{X(Z)} H(s)=(πfc+fs)+(πfc−fs)z−1((1+B0)πfc+fs)+((1+B0)πfc−fs)z−1=X(Z)Y(Z)
双线性变换: H ( s ) = ( ( 1 + B 0 ) tan π f c f s + 1 ) + ( ( 1 + B 0 ) tan π f c f s − 1 ) z − 1 ( tan π f c f s + 1 ) + ( tan π f c f s − 1 ) z − 1 = Y ( Z ) X ( Z ) H(s) =\frac{((1+B_0)\tan{\frac{\pi f_c}{f_s}}+1)+((1+B_0)\tan{\frac{\pi f_c}{f_s}}-1)z^{-1}}{(\tan{\frac{\pi f_c}{f_s}}+1)+(\tan{\frac{\pi f_c}{f_s}}-1)z^{-1}}=\frac{Y(Z)}{X(Z)} H(s)=(tanfsπfc+1)+(tanfsπfc−1)z−1((1+B0)tanfsπfc+1)+((1+B0)tanfsπfc−1)z−1=X(Z)Y(Z)
差分方程略。
频域分析
利用Octave开源的工具,我们设定采样频率 f s f_s fs和截止频率 f c f_c fc,绘出 H ( z ) H(z) H(z)频域响应曲线。假定在音频输出处理中,采样率48000Hz,2000Hz以上的频率需要保持,低于 2000Hz的频率根据外设选择shelf 参数。
直接变换我们得到
H ( z ) = ( ( 1 + B 0 ) 6283.1853 + 48000 ) + ( ( 1 + B 0 ) 6283.1853 − 48000 ) z − 1 54283.1853 − 41716.8147 z − 1 H(z) =\frac{((1+B_0)6283.1853+48000)+((1+B_0)6283.1853-48000)z^{-1}}{54283.1853-41716.8147z^{-1}} H(z)=54283.1853−41716.8147z−1((1+B0)6283.1853+48000)+((1+B0)6283.1853−48000)z−1
= ( ( 1 + B 0 ) 6.283 + 48 ) + ( ( 1 + B 0 ) 6.283 − 48 ) z − 1 54.283 − 41.717 z − 1 =\frac{((1+B_0)6.283+48)+((1+B_0)6.283-48)z^{-1}}{54.283-41.717z^{-1}} =54.283−41.717z−1((1+B0)6.283+48)+((1+B0)6.283−48)z−1
= ( G 0.6283 + 4.8 ) + ( G 0.6283 − 4.8 ) z − 1 5.4283 − 4.1717 z − 1 =\frac{(G0.6283+4.8)+(G0.6283-4.8)z^{-1}}{5.4283-4.1717z^{-1}} =5.4283−4.1717z−1(G0.6283+4.8)+(G0.6283−4.8)z−1
这里令 G = 1 + B 0 G=1+B_0 G=1+B0,当G=1.414的时候。我们绘出频响曲线:
可以看出 ω = 0 \omega=0 ω=0的时候,H(j ω \omega ω)=3dB。高频部分增益为0dB。
当G=0.707的时候。我们绘出频响曲线:
可以看出 ω = 0 \omega=0 ω=0的时候,H(j ω \omega ω)=-3dB。高频部分增益为0dB。
结论
至此,我们一阶的shelf滤波器设计完成,谢谢。
更多推荐



所有评论(0)