适用于嵌入式环境的FIR滤波器设计实现

近期在学习滤波器设计与实现, 发现网络上大多数使用Matlab等平台进行设计,只需输入性能指标即可输出滤波器系数(coefficients),未提及设计过程的底层实现.故在此总结一下自己学习到的底层实现原理与参考公式.

1.FIR 滤波器 vs IIR 滤波器

**FIR****

**IIR****

稳定性:

滤波器一定稳定(传递函数只有零点)

可能不稳定(传函有零极点)

实现性:

滤波器一定可实现

有时可能无法实现

对原始信号的影响:

产生线性相位偏移

产生非线性相位偏移

滤波器长度:

实现相同的性能时,FIR滤波器通常街结构更长

同性能结构短

嵌入式实现方法:

卷积

差分方程

FIR滤波器的主要缺点是, 实现相同性能指标时,滤波器系数长度高于IIR, 但FIR由于其线性相位偏移的特点, 可以通过相位补偿, 让滤波后原信号相位几乎不变,因此适用于一些对相位要求高的工况下(数据传输,高质量音频等);

2.FIR滤波器系数特点

如Seciton1中所说, FIR滤波器具有线性相位响应, 即FIR滤波器在特定条件下是一个关于角频率的线性方程. 例如:

即一个FIR滤波器在其通带频率内的频域响应,其相位为关于角频率的线性方程, 此处的条件为, 滤波器的系数为 symmetricantisymmetric, 以及满足公式(2), 其中N为滤波器系数长度, 若滤波器系数满足公式(3)或则称其为symmetric ,满足公式(4)则称其为 antisymmetric

故对于不同对称性以及不同长度(奇数/偶数长度)系数的FIR 滤波器, 可分为以下四类:

  • *Type 1 FIR filters* : symmetric, odd length

  • *Type 2 FIR filters* : symmetric, even length

  • *Type 3 FIR filters* : antisymmetric, odd length

  • *Type 4 FIR filters* : antisymmetric, odd length

以上这四种滤波器各有特点, 除******Type 1 FIR filters*** 外, 不是都能实现低通,高通,带通,带阻的设计. 故本文将基于1型 FIR进行设计.


3. 理想FIR冲击响应系数

对于理想滤波器, ,采用直接截断方式(即矩形窗方式)的四种典型滤波类型冲击响应系数计算公式如下:

  • *Lowpass Filter*

Fig1.理想低通滤波器频率响应

可改写为:

  • *Highpass Filter*

Fig2.理想高通滤波器频率响应

可改写为:

  • *Bandpass Filter*

Fig3.理想带通滤波器频率响应

可改写为

  • *Bandstop Filter*

Fig4.理想带阻滤波器频率响应

可改写为

有了以上内容, 我们便可以尝试去求解理想FIR滤波器系数

**4. 应用实例-理想低通FIR滤波器****

求解一个理想低通FIR滤波器的冲击响应系数, 性能要求如下:

  • 滤波器长度:

  • 过渡带起始频率:

  • 过度带终止频率:

  • 采样频率:

求解思路:

  • 求解理想滤波器的截至频率(Cut-off frequency)

= 1.0996 rad/sec

  • 由滤波器长度及公式(2)可得

  • 由公式(6)可得滤波器系数如下:

我们在Matlab中验证一下设计的滤波器

h = [-0.03183
        -0.01606    
        0.02339 
        0.04491 
        0.01639 
        -0.04502
        -0.07568
        -0.01660    
        0.12876 
        0.28362
        0.35
        0.28362
        0.12876
        -0.01660
        -0.07568
        -0.04502
         0.01639
         0.04491
        0.02339
        -0.01606
        -0.03183];
freqz(h,1);

此处横坐标为归一化频率, 可看到,过渡带的开始频率

过渡带截至频率

满足设计要求的性能指标,

观察一下: 旁瓣衰减为-20db以下; 即对于频率高于 的信号,其幅值衰减为原始幅值的10倍以下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值