基于Maflab的IIR数字滤波器设计及DSP实现
扫描二维码
随时随地手机看文章
摘要:IIR滤波器是一种被广泛应用的基本的数字信号处理部件。基于DSP信号处理的优越性,将Matlab与DSP相结合应用于IIR滤波器的设计。介绍了IIR数字滤波器的理论及其Matlab常用设计函数,并针对TI公司的TMS320VC5416 DSP,结合某高通滤波器的设计,给出了其Matlab仿真设计及在DSP上的实现过程及结果。该方法具有较强的实用性,对其它数字滤波器设计及DSP实现提供了参考价值。
关键词:数字滤波器;IIR;Matlab;DSP
21世纪是数字化的时代,随着越来越多的电子产品将数字信号处理(DSP)作为技术核心,DSP已经成为推动数字化进程的动力。在数字信号处理中,数字滤波占有极其重要的地位。在经典滤波中,常用的数字滤波器有FIR滤波器和IIR滤波器,其中IIR数字滤波器因具有结构简单、占用存储空间少、运算速度快、较高的计算精度和能够用较低的阶数实现、较好的选频特性等特点,得到了广泛应用。
1 IIR数字滤波器的基本理论及设计方法
数字滤波器的功能是把输入序列x(n)通过一定的运算变换成输出序列y(n)。不同的运算处理方法决定了滤波器实现结构的不同。IIR数字滤波器的单位抽样响应h(n)是无限长的,其差分方程如式(1)所示,是递归式的,即结构上存在着输出信号到输入信号的反馈。其系统函数如式(2)所示,因此在z平面的有限区间(0<|z|<∞)有极点存在。
目前,IIR数字滤波器设计最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便,IIR数字滤波器的设计步骤是:
1)按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标;
2)根据转换后的技术指标设计模拟低通滤波器H(s);
3)在按一定规则将H(s)转换为H(z);
若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤4);
4)将高通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤2)设计出模拟低通滤波器H(s),再由冲击响应不变法或双线性变换将H(s)转换为所需的H(z)。
2 IIR数字滤波器的Matlab设计
Matlab信号工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用这些函数就可以很方便地对滤波器进行设计。用巴特沃斯法、切比雪夫I、切比雪夫Ⅱ、椭圆法设计数字滤波器的函数如下:
本文设计一个三阶的切比雪夫I型高通数字滤波器,其采样频率为1 200 Hz,截止频率为200 Hz,通带的最大衰减Rp为0.5 dB。输入信号为100Hz和300Hz的合成信号,目的是通过所设计的滤波器将100 Hz的信号滤掉,余下300 Hz的信号成份,达到滤波的效果。高通滤波器仿真结果如图1所示,用高通滤波器进行滤波仿真结果如图2~4。从图中可看出,IIR数字滤波器设计正确,达到预期效果。
在编写汇编语言程序之前。首先确定滤波器的参数,从上面滤波器的设计中得出滤波器的参数如下:
Numemtor: 0.323557 -0.970672 0.970672 -0323557
Denominator:1.000000 -0.921478 0.642247 -0024733
若设计参数有大于1的的数据.这样一个大于1的数据要直接用到DSP中,需要进行数据格式的浮点运算,这将增加编程的复杂度,而且会导致DSP运行程序速度的降低。一般情况下都不这样使用,而是将数据做一定比例的压缩后计算。例如将上面数据做8倍的压缩(即将上面数据除以8),得到新的数据为:
Numerator: 0.040 45 -0.121 334 0.121 334 -0.040 45
Denominator:1.000 000 -0.115 185 0.080 28 -0.003 092
3 IIR数字滤波器的实现
TMS320VC5416是TI公司生产的新一代16位定点的数字信号处理器。在TMS320VC5416 DSP上实现IIR数字滤波器编程时,分别开辟4个缓冲区、存放输入、输出变量和滤波器系数,并将Matlab设计滤波器的系数A、B存入滤波器的缓冲区。并在TMS320VC5416 DSP上成功实现了IIR滤波,实验仿真结果如图5~图8所示,在TMS320VC5416DSP上输入100 Hz和300 Hz的混合信号,通过所设计的IIR数字滤波器达到滤波效果。通过实验结果表明IIR滤波器准确度高、稳定性好,设计结果满足性能指标要求。
4 结束语
本文首先介绍了IIR数字滤波器的理论及其Matlab常用设计函数,并针对TI公司的TMS320VC5416 DSP,结合一个高通滤波器的设计,叙述了其Matlab仿真设计及在DSP上的实现过程及结果。根据其实现思路,可以很方便设计出符合要求的滤波器。该该方法具有很强的实用性,对其他数字滤波器设计及DSP实现也有很好的参考价值。