打印
[技术讨论]

FIR Vs IIR , 哪个是你的首选?

[复制链接]
1635|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FIR是有限冲击响应;IIR是无限冲击响应。                  FIR和IIR滤波器的一个主要区别:FIR是线性相位,IIR为非线性相位(双线性变换法)。对于非线性相位会造成的影响,可以这样考虑:对于输入的不同频率分量,造成的相位差与频率不成正比,则输出时不同频率分量的叠加的相位情况和输入时有变化,得到的通带信号产生失真。






  图1  简化乘法器数量的线性相位滤波器



IIR滤波器有以下几个特点:
1、IIR数字滤波器的系统函数可以写成封闭函数的形式。
2、IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。
3、IIR数字滤波器可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。
4、IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。






图2  IIR滤波器机构的表示方法



  在matlab下设计IIR滤波器可使用buttterworth函数设计出巴特沃斯滤波器,使用cheby1函数设计出契比雪夫i型滤波器,使用cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。
      与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。在matlab下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。
      IIR单位响应为无限脉冲序列,FIR单位响应为有限的。
      IIR幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上;FIR幅频特性精度较之于IIR低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变。这是很好的性质。
       另外有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。






图3 在matlab下设计IIR滤波器程序流程框图



IIR与FIR数字滤波器的比较:
1、从性能上比较         
       从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点(输出只与有限项输入有关,所以传递函数分母为1,极点在零点),所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5~10倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位较正,同样要大增加滤波器的节数和复杂性。
2、从结构上比较       
       IIR滤波器必须采用递归结构,极点位置必须在单位圆内,否则系统将不稳定。另外,在这种结构中,由于运算过程中对序列的舍入处理,这种有限字长效应有时会引入寄生振荡。相反,FIR滤波器主要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不存在稳定性问题,运算误差也较小。此外,FIR滤波器可以采用快速傅里叶变换算法,在相同阶数的条件下,运算速度可以快得多。





相关帖子

沙发
chipsea_测量|  楼主 | 2016-8-22 11:45 | 只看该作者

使用特权

评论回复
板凳
chipsea_测量|  楼主 | 2016-8-23 08:45 | 只看该作者
可能总结得不是很全面。大家补上呀。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

270

帖子

15

粉丝