查看: 5718|回复: 4

一种数字IIR滤波器设计

[复制链接]

该用户从未签到

发表于 2011-5-10 16:46:19 | 显示全部楼层 |阅读模式
分享到:
在数字信号处理领域,数字滤波器(DF)的设计在其中占有很重要的地位。从实现方法上分,数字滤波器有两种:有限冲击响应滤波器(FIR)和无限冲击响应 滤波器(IIR)。同样情况下,IIR滤波器要比FIR滤波器获得更高的性能,它具有工作速度快、耗用存储空间少的的特点。但IIR滤波器在一般的定点 DSP上实现比较困难,因为IIR滤波器的反馈通道计算会导致结果的溢出,虽然可以用缩放输人数据的比例的办法来防止溢出错误,但是这将使输出信号动态范 围减少,为了恢复输出信号的动态范围,可以对输出信号作一定左移放大,但会造成一些误差。在下面的讨论中介绍了如何通过改进算法,利用C5402芯片,略 掉输入端的计算和硬件放大器,防止溢出并保持较小的误差。

13.4.1  IIR滤波器设计分析  
        IIR滤波器由于具有结构简单、运算量小的特点,因而得到了广泛的应用。IIR滤波器的设计与FIR滤波器的设计上有很大区别,FIR滤波器可以对给定的频率特性直接进行设计,而IIR的通用方法是利用已经成熟的模拟滤波器设计的方法进行设计。   
        一般情况下,一个高阶IIR滤波器设计可以简化成几个二阶滤波器来设计,即可由几个二阶滤波器级联实现。由此,高阶滤波器方程如下式所示。

        其中n为滤波器的阶数。


        这里的H
k(z)为单个二阶IIR滤波器,1,2,3,4,…,n,二阶IIR滤波器的结构如图13-14所示。该二阶IIR滤波器由前向通道和反馈通道两部分级联而成。



图13-14  二阶滤波器的直接实现I结构


         观察图13-14的结构,可以将其中的一半延时部分去掉,不影响输出y(n),于是得到了如图13-15所示的直接II型IIR滤波器的二阶子单元。通过 这样的简化,可以减少系统中参数个数和相关硬件。这种滤波器结构也称正准型结构。由上面的讨论,去掉其中一部分延迟硬件是容易理解的。数字IIR滤波器可 以由定点DSP芯片(用TMS320C5402)来实现。但由于这种DSP芯片本身的32位结构局限,使得输出数据溢出有可能成为设计中的问题。IIR滤 波器的反馈通路和极点是导致数据溢出的原因。   

         如果遵循图13-15所示的结构来编代码,有两个问题将会出现;(1)将有可能浪费时间来调节输出信号的动态范围,或者利用硬件放大器,或者采用左移的方 法,但左移会增加误差。(2)由于数字系统字长是有限的,因此所表示的系数总是有限精度。每一个系数的量化误差及乘法器的舍入误差对输出有积累效应,以致 输出误差偏大。因此,在实际应用中,应尽量避免采用直接实现形式,这里采用的是级联形式。于是就提出了改进过的结构即直接实现II型结构,该结构也称正准 结构,如图13-16所示。



         在图13-14中,IIR滤波器使用直接实现结构计算前馈路径中的零点,然后再实现反馈极点。在相同信号的前提下,由于是零点实现,m(n)的动态范围较 小,而在极点计算中,图13-15中的d(n)的动态范围比图13-14的m(n)的大。通过忽略极点反馈路径中的中间值,得到一个合适的输出y(n)。 这种方法在滤波器的设计中可以消除输出的溢出问题。图13-17就是由一定数量的二阶滤波器串接成的高阶IIR滤波器。每个二阶IIR滤波器都应用了直接 实现结构。通过复合一个IIR滤波器的极点(a
11,a
12)和下一个IIR滤波器的零点(b
21,b
22),延迟缓冲器的数目就得到了减少。

        在级联部分的软件设计中使用了重复块指令。根据第一个零点部分(b
11,b
12)和最后的极点部分(a
n1,a
n2)的计算,提出软件设计。


13.4.2  IIR滤波器程序设计  
         芯片TMS320C5402有7种寻址方式可供利用:立即数寻址、绝对寻址、直接寻址、累加器寻址、间接寻址、存储器映像寄存器寻址、堆栈寻址。其中绝对 寻址、直接寻址、间接寻址和存储器映像寄存器寻址在编程中用的比较频繁。而在一般的情况下,应首先使用间接寻址和存储器映像寄存器寻址,因为这样可以节省 指令周期。在使用直接寻址时,一般选用DP寄存器的直接寻址(DP-Referenced  Addressing)方式。此时,存储器被分为512页,页内地址0~127,这样一个确定的地址由DP值和指令的地址域两部分确定。所以选取DP值的 直接寻址方式时,须设定DP值,这样在程序实现时比较麻烦,通用的做法是采用TMS320C5402提供的伪指令功能,因为伪指令不占用程序的执行空间和 时间。加上TMS320C5402的多总线技术,提供了很多单字单指令周期的并行指令,如并行装入和存储指令、并行存储与加/减指令、并行存储与乘指令, 在程序中恰当地加入这些指令,可以提高程序的执行效率。

         在实验过程中,滤波器的通带截止频率和阻带下限截止频率分别为200Hz和500Hz。表13-18中把四阶IIR滤波器与高阶FIR滤波器作了比较。另 外,C5402芯片在使用MAC或MAS指令时,首先对乘法结果进行溢出保护,即8000H×8000H得到结果7FFF  FFFFH,然后再进行并行的加或减的运算。这样就在改进结构的基础上,进一步有效地减少了溢出,提高了IIR滤波器的性能。一般IIR滤波器对输入信号 有衰减,但改进后滤波器的几乎不衰减输入信号。


表13-18  IIR滤波器与FIR滤波器的比较



        通过MATLAB编程仿真,得到滤波器系数如下:

回复

使用道具 举报

该用户从未签到

发表于 2011-6-21 16:37:45 | 显示全部楼层

RE:一种数字IIR滤波器设计

在电子工程师搜人网上(www.xunta.so)用IIR来搜,可以找到300多人,有很多行家在答复问题,也有实战者,如nanguamache(21IC)。
http://www.xunta.so/searchAuthorAction.do?queryString=IIR&searchTime=2years
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-7-24 14:52:35 | 显示全部楼层

回复:一种数字IIR滤波器设计

学习了,谢谢楼主~
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-10-8 16:00:45 | 显示全部楼层

回复:一种数字IIR滤波器设计

楼主真是好银啊,谢谢分享!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-12-22 22:30:45 | 显示全部楼层

回复:一种数字IIR滤波器设计

向大家推荐超值的ESLA601逻辑分析仪,500MHz 34通道,USB接口,FPGA,STM32,DSP调试利器,ESLA601V2 现在只要499.00,最好用,最稳定,最超值,请淘宝搜索ESLA601。

yuxuan
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-12-25 21:35 , Processed in 0.152455 second(s), 23 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.