全球旧事资料 分类
构、参数再次进行调整直到满足要求为止;4在DSP上用语言实现滤波器功能。定点DSP芯片,既可以做定点运算,也可以做浮点运算。一个算法,既可以用汇编语言编程实现,也可以用高级语言(C,C)实现。而一个IIR数字滤波器是否可以在DSP上实现,最终要看此算法是否满足两个条件:执行时间和精度。一个算法的精度再高,如果做不到实时,也没有实用价值;相反,如果执行时间很快,但精度满足不了要求,也就无从实现滤波功能。IIR数字滤波器在DSP上的实现思路,应该是在满足上面两个条件的前提下,找到尽可能简易的实现方法。22IIR数字滤波器在TMS320VC5416DSP上的实现过程借助于计算机强大的仿真功能,在MATLAB环境下设计一个IIR数字滤波器变得十分容易5。但是要在DSP上实现此滤波器功能,则需要对滤波器的结构、系数等参数进行改进。下面以一个低通IIR数字滤波器在DSP芯片TMS320VC5416上的实现为例,叙述其实现过程。TMS320VC5416是DSP芯片的主要供应商TI公司最近推出的5000系列中的高性能DSP,该处理器为16位定点DSP,最高运算速度可达160MIPS,内带256KB的RAM,有128KB的数据空间,最大程序容量高达16MB,有3个McBSP和6个DMA通道并且支持外部DMA,内核电压低至15V。其CPU由于运算速度快、内部资源充足、接口灵活、功耗低,非常适合做复杂算法运算。低通IIR数字滤波器的参数如下:采样率为16000Hz,截止频率为500Hz,采用butterworth模型设计时阶数为7阶,在MATLAB65环境下得到的b系数和a系数如表1所示。
f从理论上说,可以用高阶IIR数字滤波器实现良好的滤波效果。但由于DSP本身有限字长和精度的因
素,加上IIR滤波器在结构上存在反馈回路,是递归型的,再者高阶滤波器参数的动态范围很大。这样一
来造成两个后果:结果溢出和误差增大,从而导致算法无法在DSP上实现。
解决此问题的有效方法是把高阶IIR数字滤波器简化成几个2阶滤波器来设计,即采用级联结构。因
此系统函数为:
HzH1zH2z…H
z
3
上述7阶IIR数字滤波器采用级联的结构后变成4个滤波器级联的形式,每个滤波器的系数如表2所
示。
fTMS320VC5416是16位DSP。在CCS下它的浮点数格式占用两个字,即32bit。通过CCS的数据输入输出功能和RTDX功能,可以随时观察DSP结果和理论仿真结果之间的差异,及时发现数据的溢出和计算误差。对表2的系数取7个有效位(在CCS下浮点数的有效位为7位),计算结果如图1所示。
图中为输入和滤波后的波形,信号频率为500Hz。从图中可以看出,滤波没有r
好听全球资料 返回顶部