IIR peaking filter 探秘

6 篇文章 3 订阅
2 篇文章 1 订阅

引言

一阶滤波器虽好,但是只能压一头,如果需要带通/带阻/peaking/notch一类的IIR滤波器,多需要高阶来帮忙了,本文先介绍一下peaking 滤波器的基本概念,peaking 滤波器是audio音频的parametric equalizer的基本单元,了解了它,我们就是可以一窥神奇和parametric equalizer了。

带通变peaking

首先我们还是给出前文得到的带通滤波器传递函数:
H ( s ) = B W s s 2 + Ω m 2 + B W s H(s) = \frac{BWs}{s^2+\Omega_m ^2+BWs} H(s)=s2+Ωm2+BWsBWs
带宽和通带中频如下定义
B W = Ω h − Ω l BW= \Omega_h- \Omega_l BW=ΩhΩl
Ω m = Ω h ∗ Ω l \Omega_m=\sqrt{ \Omega_h* \Omega_l} Ωm=ΩhΩl
实际当中客户会提出品质因数Q来限定 Ω m \Omega_m Ωm Ω h Ω l \Omega_h \Omega_l ΩhΩl的关系:
Q = Ω m Ω h − Ω l = Ω m B W Q=\frac{\Omega_m}{ \Omega_h- \Omega_l}=\frac{\Omega_m}{ BW} Q=ΩhΩlΩm=BWΩm
按照两步走的方法导出一个peaking 滤波器:

第一步:给带通增加一个增益控制旋钮(系数)

我们定义一个系数 B 0 B_0 B0,令带通滤波器的通带增益可调。
H ( s ) = B 0 ∗ B W s s 2 + Ω m 2 + B W s H(s) = \frac{ B_0*BWs}{s^2+\Omega_m ^2+BWs} H(s)=s2+Ωm2+BWsB0BWs

第二步:并联一个直通信号 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 ∗ B W s s 2 + Ω m 2 + B W s = s 2 + Ω m 2 + ( 1 + B 0 ) ∗ B W s s 2 + Ω m 2 + B W s H(s) =1+\frac{ B_0*BWs}{s^2+\Omega_m ^2+BWs} =\frac{ s^2+\Omega_m ^2+(1+B_0)*BWs}{s^2+\Omega_m ^2+BWs} H(s)=1+s2+Ωm2+BWsB0BWs=s2+Ωm2+BWss2+Ωm2+(1+B0)BWs
peaking滤波器也可以理解为带有增益的带通滤波器和直联信号的并联形式。那么notch 滤波器可以通过带阻并联直通来实现吗?答案是否定的,其实notch 滤波器和peaking滤波器可以根据 B 0 B_0 B0调整增益来实现。

双线性变换到数字域

数字滤波器的通带中心频率: ω m = 2 π f m f s \omega_m =\frac{2\pi f_m}{f_s} ωm=fs2πfm
预设Q值,我们可以得到带宽:
B W = Ω m Q BW=\frac{\Omega_m}{Q} BW=QΩm
代入先整理一下我们的传递函数: H ( s ) = s 2 + Ω m 2 + ( 1 + B 0 ) ∗ Ω m Q s s 2 + Ω m 2 + Ω m Q s H(s) =\frac{ s^2+\Omega_m ^2+(1+B_0)*\frac{\Omega_m}{Q}s}{s^2+\Omega_m ^2+\frac{\Omega_m}{Q}s} H(s)=s2+Ωm2+QΩmss2+Ωm2+(1+B0)QΩms
H ( s ) = s 2 + Ω m 2 + ( 1 + B 0 ) ∗ Ω m Q s s 2 + Ω m 2 + Ω m Q s H(s) =\frac{ s^2+\Omega_m ^2+(1+B_0)*\frac{\Omega_m}{Q}s}{s^2+\Omega_m ^2+\frac{\Omega_m}{Q}s} H(s)=s2+Ωm2+QΩmss2+Ωm2+(1+B0)QΩms
数字和模拟频率的转换关系: Ω m = ω m T \Omega_m = \frac{\omega_m}{T} Ωm=Tωm
双线性变换一般要求对频率作预畸变处理,采用如下公式: Ω m = 2 T tan ⁡ ω c 2 \Omega_m = \frac{2}{T}\tan{\frac{\omega_c}{2}} Ωm=T2tan2ωc
带入双线性变换公式: s = 2 T 1 − z − 1 1 + z − 1 和 ω m = 2 π f m f s s =\frac{2}{T} \frac{1-z^{-1}}{1+z^{-1}} 和 \omega_m =\frac{2\pi f_m}{f_s} s=T21+z11z1ωm=fs2πfm

直接变换我们得到
H ( s ) = ( 1 + ( f m π f s ) 2 + ( 1 + B 0 ) π f m Q f s ) + 2 ( ( f m π f s ) 2 − 1 ) z − 1 + ( 1 + ( f m π f s ) 2 − ( 1 + B 0 ) π f m Q f s ) z − 2 ( 1 + ( f m π f s ) 2 + π f m Q f s ) + 2 ( ( f m π f s ) 2 − 1 ) z − 1 + ( 1 + ( f m π f s ) 2 − π f m Q f s ) z − 2 = Y ( Z ) X ( Z ) H(s) =\frac{(1+(\frac{f_m\pi}{f_s})^2+\frac{(1+B_0)\pi f_m}{Qf_s})+2((\frac{f_m\pi}{f_s})^2-1)z^{-1}+(1+(\frac{f_m\pi}{f_s})^2-\frac{(1+B_0)\pi f_m}{Qf_s})z^{-2}}{(1+(\frac{f_m\pi}{f_s})^2+\frac{\pi f_m}{Qf_s})+2((\frac{f_m\pi}{f_s})^2-1)z^{-1}+(1+(\frac{f_m\pi}{f_s})^2-\frac{\pi f_m}{Qf_s})z^{-2}}=\frac{Y(Z)}{X(Z)} H(s)=(1+(fsfmπ)2+Qfsπfm)+2((fsfmπ)21)z1+(1+(fsfmπ)2Qfsπfm)z2(1+(fsfmπ)2+Qfs(1+B0)πfm)+2((fsfmπ)21)z1+(1+(fsfmπ)2Qfs(1+B0)πfm)z2=X(Z)Y(Z)
我们令 a = 1 + ( f m π f s ) 2 + π f m Q f s a=1+(\frac{f_m\pi}{f_s})^2+\frac{\pi f_m}{Qf_s} a=1+(fsfmπ)2+Qfsπfm b = π f m f s b=\frac{\pi f_m}{f_s} b=fsπfm,将上式简化如下
H ( s ) = ( 1 + B 0 b Q a ) + 2 ( b 2 − 1 a ) z − 1 + ( 1 − ( 2 + B 0 ) b Q a ) z − 2 1 + 2 ( b 2 − 1 a ) z − 1 + ( 1 − 2 b Q a ) z − 2 H(s) =\frac{(1+\frac{B_0b}{Qa})+2(\frac{b^2-1}{a})z^{-1}+(1-\frac{(2+B_0)b}{Qa})z^{-2}}{1+2(\frac{b^2-1}{a})z^{-1}+(1-\frac{2b}{Qa})z^{-2}} H(s)=1+2(ab21)z1+(1Qa2b)z2(1+QaB0b)+2(ab21)z1+(1Qa(2+B0)b)z2
这个系数计算比之一阶要复杂了非常多,也为频域分析和增益计算增加了难度。这时该方程只需要客户的中心频率和Q值。双线性变换、差分方程略。

频域分析

利用Octave开源的工具,我们设定采样频率 f s f_s fs=48000Hz和频率 f m f_m fm=6000Hz,Q=10, B 0 B_0 B0=0.414 绘出 H ( z ) H(z) H(z)频域响应曲线:
在这里插入图片描述
可以看出 ω m = 2 π f m f s = π 4 \omega_m=2\pi\frac{fm}{fs}=\frac{\pi}{4} ωm=2πfsfm=4π的中心频率被加强了,不过该滤波器的 1 + B 0 = G 1+B_0=G 1+B0=G的条件不成立了,实际增益到了27dB,还有一个就是高低频也没有完全收敛到0dB。

结论

至此,我们二阶的IIR peaking滤波器设计完成,本文只为理解Peaking滤波器的一些基本原理,实际应用中有很多成熟的peaking filter的设计方法可以参考,有兴趣的同学可以自己去寻找和比较。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值