FIR滤波器以及吉布斯效应


最近要录一些环境声音数据做实验,录音笔上有一个选项——Low Cut Filter,即低频切除滤波器,就是一个高通滤波器,其作用是“减轻投影机声音或因风产生的啸叫声等低频噪音,以便更清晰地录制文件“,截止频率可调。
于是,考虑自己设计一个滤波器以实现这一功能,打算使用FIR滤波器。


滤波器设计指标

关于滤波器的设计指标,xiahouzuoxin的这篇文章介绍得很详细。不过里面有一小点讲错:衰减指标的分贝值应定义为 10logPoutPin 或者 20logVoutVin ,注意其中使用功率比和幅值比时常系数的差别。

图1 低通滤波器
低通滤波器

图2 滤波器设计指标(对应低通滤波器)
滤波器设计指标

关于图1和图2的说明:

  • 图1的幅频特性单位为dB,是按通带增益为1归一化后的结果。图1中的3dB衰减即对应图2中的0.707(由 20logV3dBV0dB=3 V3dB=0.707 ),即在此点处信号幅值衰减至原来的0.707,而功率衰减至原来的一半。工程上,通常以3dB截止频率来计算带宽。
  • 几个特征频率
    • 通带截止频率 ωp :通带与过渡带边界点的频率
    • 阻带截止频率 ωs :阻带与过渡带边界点的频率
    • 3dB截止频率 ωc :信号功率衰减至一半的频率
  • 增益与衰减
    • 通带增益:对于低通为 ω=0 时的增益,对于高通为 ω 时的增益,对于带通为中心频率处的增益
    • 通带容限 α1 :通带内, 1α1|H(ejω)|1+α1,|ω|ωp
    • 通带衰减 δ1 :相对于通带增益,通带内波纹允许的最大衰减,其分贝值为 δ1=20logH(ej0)H(ejωp)=20log(1α1)
    • 阻带容限 α2 :阻带内, |H(ejω)|α2,ωsωπ
    • 阻带衰减 δ2 :相对于通带增益,阻带内波纹允许的最小衰减,其分贝值为 δ2=20logH(ej0)H(ejωs)=20log(α2)
  • 物理频率与角频率的关系: ω=2πf 。同时,对于采样频率为 fs 的信号,根据Nyquist采样定律,信号的最高频率为 fs2 ,所以频谱反映的是0~ fs2 的谱信息,对应角频率0~ π (离散时间实信号的频谱共轭对称且以 2π 为周期)。

FIR滤波器的设计

FIR滤波器,即有限长单位脉冲响应滤波器,具有两个突出的特点:线性相位和稳定性

  • 稳定性:FIR滤波器的单位脉冲响应为有限长,其 z 变换收敛
  • 线性相位:如果FIR滤波器的单位脉冲响应是实数,且满足偶对称或奇对称的条件,则滤波器就具有严格的线性相位特性。
    • 偶对称:h[n]=h[N1n]H(ejω)=ejω(N12)N1n=0h[n]cos[ω(nN12)]ϕ(ω)=eωN12
    • 奇对称: h[n]=h[N1n]H(ejω)=ej[ω(N12)+π2]N1n=0h[n]sin{ω(nN12)}ϕ(ω)=eωN12π2

    理解线性相位

    线性相位特性是指系统的相频特性是一条直线,其意义在于系统对所有频率的信号均产生相同的时延,不会发生相位失真

    线性系统引起的信号失真由两方面因素造成——
    1. 幅度失真:系统对信号中各频率分量的幅度产生不同程度的衰减
    2. 相位失真:系统对信号中各频率分量产生的相移不与频率成正比,使响应的各频率分量在时间轴上产生不同的时延,其相对位置产生变化(频域相移对应于时域时移)

    设滤波器频响为

    H(ω)=A(ω)ejϕ(ω)
    对于线性相位滤波器,有 ϕ(ω)=αω+β αβ 为常数。
    考虑频率为 ω0 的复正弦信号,
    x(t)=ejω0tX(ω)=2πδ(ωω0)
    通过系统 H(ω) 后,有
    Y(ω)=X(ω)H(ω)=2πδ(ωω0)A(ω)ejϕ(ω)=2πδ(ωω0)A(ω0)ejϕ(ω0)
    y(t)=A(ω0)ejω0(t+ϕ(ω0)ω0)
    对于线性相位系统,有
    ylp(t)=A(ω0)ej(ω0(t+α)+β)
    信号 x(t) 通过系统后产生 α 的时延,而且当 β0 时,将产生相移 β 。而对于非线性相位系统,这个时延与 ω0 有关。进一步,任意信号均可分解成一系列复正弦信号的加权和。对于线性相位系统,不同频率的复正弦信号通过系统后均产生相同的时延,而非线性相位系统可能会对信号造成失真或变形。

    四种线性相位FIR滤波器

    根据 N 的奇偶、h[n]奇对称还是偶对称的情况,可分别对应四种滤波器。为设计出线性相位的FIR滤波器,需根据滤波器的设计要求(低通、高通、带通、带阻)确定对应的 h[n] 应满足的条件。

    表1 四种线性相位FIR滤波器[3]
    四种线性相位FIR滤波器

    上表中最右列为滤波器的幅频特性 H(ω) ,即 H(ejω)=H(ω)ejϕ(ω) 。这里要注意虽然 H(ejω) 是以 2π 为周期的,但不等价于 H(ω) 也是以 2π 为周期。以 ϕ(ω)=αωβ 为例,

    H(ej(ω+2π))=H(ω+2π)ej(α(ω+2π)+β)=H(ω+2π)ej(αω+β)ej2πα
    因此有
    H(ω+2π)ej2πα=H(ω)
    αZ 时, H(ω+2π)=H(ω) ,对应表中第1、3种情况;
    α=m+12,mZ 时, H(ω+2π)=H(ω) ,对应表中第2、4种情况。


    窗口法设计FIR滤波器

    窗口法设计FIR滤波器的基本思路是依据希望得到的理想滤波器的频响 Hd(ejω) ,计算其单位脉冲响应 hd[n] ,从中直接截取一段 h[n] 以逼近理想值。同时,为保证线性相位特性, h[n] 需满足对应的偶对称或奇对称特性。
    例1:截止频率为 ωc 的理想低通滤波器
    根据表1,所设计的滤波器为I、II类。设时延为 α ,理想滤波器频响为

    Hd(ejω)={ejωα, |ω|ωc0,  ωc<|ω|<π
    计算其单位脉冲响应,为
    hd[n]=12πωcωcejωαejωndω=ejω(nα)2πj(nα)|ωcωc=sin[ωc(nα)]π(nα)
    这是一个以 α 为中心的偶对称的无限长非因果序列。所截取的 h[n] 需满足偶对称, N 可奇可偶,因此
    h[n]={hd[n], 0nN10,   else
    α=N12

    例2:截止频率为 ωc 的理想高通滤波器
    根据表1,所设计的滤波器为IV类。设时延为 α ,理想滤波器频响为

    Hd(ejω)={ej(ωα+π2), ωcω2πωc0,     0ω<ωc and 2πωc<ω2π
    其单位脉冲响应为
    hd[n]=12π2πωcωcej(ωα+π2)ejωndω=ejπ2ejω(nα)2πj(nα)|2πωcωc=ejωc(nα)ej2π(nα)ejωc(nα)2π(nα)α=m+12,mZ=cos[ωc(nα)]π(nα)

    这是一个以 α 为中心的奇对称的无限长非因果序列。截取的 h[n] 需满足奇对称,且 N 为偶数,因此
    h[n]={hd[n], 0nN10,   else
    α=N12
    在这里, h[n] 可看做是 hd[n] 与一个窗口函数的乘积,上例中使用的是矩形窗函数 RN[n] 。对于一般的 N 点窗函数w[n],有
    h[n]=hd[n]w[n]
    这样,只要给定截止频率,选择一个窗函数和点数,我要设计的LCF就可以搞定啦。


    窗函数的影响

    这种对理想单位脉冲响应加窗的处理对频响将产生什么影响?以及逼近质量如何?

    h[n]=hd[n]w[n]H(ejω)=12πHd(ejω)W(ejω)

    矩形窗为例,其频谱为

    RN[n]=1, n=0,,N1WR(ejω)=ejωN12sin(ωN/2)sin(ω/2)
    其中线性相位部分 ejωN12 表示窗函数时延一半长度。不考虑相位特性,只关注其幅度谱,为
    WR(ω)=sin(ωN/2)sin(ω/2)
    对照表1可知, RN[n] 偶对称,其幅度谱的特性根据 N 的奇偶符合第I、II类的情况。其他特性:

    • ω=±2πN内有一主瓣,然后向两侧呈衰减震荡展开,主瓣宽度 4πN ,主瓣峰值 WR(0)=N
      • 0π 内的零点为 ω=2kπN,k=1,2,,N2 ,对应旁瓣个数约为 N21 ,且旁瓣谱峰是逐渐衰减的
      • N 越大,主瓣越窄,旁瓣越多,震荡越密集

      图3 矩形窗幅度谱
      矩形窗幅度谱

      图4 矩形窗函数效果
      矩形窗函数效果

      分析使用矩形窗时的FIR滤波器的幅度谱,

      H(ω)=12πππHd(θ)WR(ωθ)dθ=12πωcωcWR(ωθ)dθ=12πω+ωcωωcWR(θ)dθ

      • ω=0 时, H(0) 等于 WR(θ) ωc ωc 上的积分,当 ωc2πN 时(一般都满足), H(0) 近似于 WR(θ) π π 上的全部积分面积,即
        H(0)12πππWR(θ)dθ=RN[0]=1
      • ω=ωc 时, H(0) 等于 WR(θ) 在0到 2ωc 上的积分,近似于 WR(θ) 的一半积分面积,即 H(ωc)=12H(0)
      • ω=ωc2πN 时, H(0) 等于 WR(θ) 2πN 2ωc2πN 上的积分,近似于 WR(θ) 的一半积分面积再加上一半主瓣面积。由于此时主瓣全部计算在内, H(ω) 达到最大值,出现正肩峰;相反的, ω=ωc+2πN 时,主瓣全部未计算在内,此时 H(ω) 达到最小值,出现负肩峰

      因此,可总结出 H(ω) 的特性

      • 肩峰 H(ω) ωc 两旁距离 2πN 处分别出现正负肩峰,肩峰值的大小与主瓣和旁瓣的相对大小有关,取决于窗函数的形状;肩峰值的大小直接影响滤波器通带的平稳和阻带的衰减(通带、阻带容限),应越小越好
      • 过渡带:两肩峰之间形成一个过渡带,其宽度为 4πN ,等于主瓣宽度
      • 通带和阻带内波动:由于旁瓣的影响,当 ω 由两肩峰处继续朝通带和阻带变化时,形成长长的余震

      在选用窗函数设计FIR滤波器时,应注意:

      • 主瓣宽度尽量窄,以获得较陡的过渡带 增加窗函数点数
      • 尽量减小旁瓣,使能量集中在主瓣,以减小肩峰,提高阻带衰减 寻找合适的窗函数

      这里注意一个很奇特的特性:

      • 矩形窗情况下,最大肩峰值始终为0.0895(此时阻带最小衰减为-21dB),与 N 无关——吉布斯(Gibbs)效应,实际上是由于时域截断造成的

      吉布斯(Gibbs)效应

      吉布斯效应:将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。这种现象称为吉布斯效应。

      图5 吉布斯效应
      吉布斯效应

      吉布斯效应原始的说法是为了说明,当用傅里叶级数的有限项(有限个频率分量)去逼近信号时,在信号的间断点处会出现一个过渡带以及起伏和超量(肩峰),也就是说频域的截断带来时域的弥散。而且,当所取项数N为有限值时,随着 N 的增大,起伏不断向间断点处压缩,但起伏的峰值大小保持不变。同时,N增大还有一个好处是,起伏具有的总能量会变小——逼近误差越小。因此,在实际做这样的近似时,应该选择足够大的 N ,以保证这些起伏具有的总能量可以忽略。

      在学傅里叶变换时有一个经典问题:傅里叶变换的基函数——复正弦函数都是平滑的,用复正弦函数的加权和怎么能表示那些有间断点的时间波形如方波?——这也是拉普拉斯最初在审查傅里叶的论文时的一个质疑点。回答是:[5-6]

      • 一方面,可以说拉普拉斯是对的,用一系列正弦波的线性组合无法精确描述那些具有间断点的信号。根据吉布斯现象,当正弦波数量增多时,超量始终存在,且幅值保持稳定约为9%,只是超量的宽度变小并向间断点压缩。
      • 另一方面,用一系列正弦波的线性组合可以无限逼近那些具有间断点的信号,以至逼近误差的能量为0。当正弦波数量无限多时,超量依然存在,但其宽度为0,因此在能量意义上为0。更精确地,间断点处的值收敛于信号在该跳跃点两侧值的均值。可以证明,傅里叶级数表示是收敛的,其逼近误差的能量为0。基于此,傅立叶是对的。

      回到本文,在用窗函数法设计FIR滤波器时,实际遇到的是与上面相反的吉布斯现象——时域的截断带来频域的弥散,即用窗函数去截断理想滤波器的单位脉冲响应时,对应的FIR滤波器的幅度谱在截止频率处会出现过渡带以及起伏和肩峰

      一开始纠结了好半天这个0.0895或是这个9%是怎么算出来的,直接手算推导失效,最后只好借助于强大的MatLab了。这里可借助于矩形窗幅度谱WR(ω)的特性来解释吉布斯效应。上面讲到, N 的增大可以使主瓣变窄过渡带变窄,同时旁瓣增多,震荡变密集 通带和阻带内震动加快,但并不能改变肩峰值和波动的相对大小(主瓣与旁瓣的相对比例)

      首先从幅值上简单分析,主瓣峰值 WR(0)=N ,第一旁瓣峰值大约在 3πN 处取得,有

      |WR(3πN)|=|sin3π2sin3π2N|2N3π0.212N
      关于 N 做归一化后,第一旁瓣峰值对应于13dB衰减处,如图3。也就是说主瓣与旁瓣的相对大小是固定的。

      做出不同N值下矩形窗幅度谱的累计积分曲线,可知其肩峰值稳定在0.09附近,如图6、7。同时,计算波动所具有的总能量,这里计算图6中左半边波形所具有的总能量,在 N=112151101 时分别为28.85、15.11、6.22、3.12,确实随着 N <script type="math/tex" id="MathJax-Element-148">N</script>的增大而减小。

      图6 不同长度矩形窗的幅度谱
      不同长度矩形窗的幅度谱

      图7 不同长度矩形窗的幅度谱累计积分
      不同长度矩形窗的幅度谱累计积分

      以上。下篇讨论窗函数。


      参考

      1. Low Cut Filter http://helpguide.sony.net/icd/sx3/v1/cs2/contents/TP0000020730.html
      2. 滤波器设计指标 http://helpguide.sony.net/icd/sx3/v1/cs2/contents/TP0000020730.html
      3. 邹理和《数字信号处理(上册)》
      4. 傅立叶变换中的吉布斯现象 http://blog.csdn.net/deepdsp/article/details/7406251
      5. 为什么要进行傅立叶变换 http://blog.csdn.net/xfortius/article/details/8912488
      6. Steven W. Smith The Scientist and Engineer’s Guide to Digital Signal Processing : Chapter 8&11 http://www.dspguide.com/pdfbook.htm
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值