资源描述:
《基于DSP的数字滤波系统设计及应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、20W年第2期武汉船舶职业技术学院学报2004年6月JoumalofWuhanInstituteofShipbuildingTechnology基于DSP的数字滤波系统设计及应用李元熙(无锡商业职业技术学院,江苏无锡摘要:数字滤波器是数字信号处理的重要组成部分,利用DSP芯.文探讨了基于美国TI公司TMS320C54XDSP的数字滤波系统的设i关键词:DSP;数字滤波;系统函数.中图分类号:TN919文献标识码:A文章编号:10/1-«iuu(zuw;uz-wji-u^数字信号处理(DigitalSignalProcessing)是利用专用处理器或计算机,以
2、数字的形式对信号进行采样、变换、滤波、增强、压缩、识别等处理,以得到符合人们妾求的信号形式。数字信号处理器(DigitalSignalProcessor,简称DSP)是一种处理数字信号的专用微处理器,主要应用于实时快速地实现各种信号的数字处理算法。它在结构上针对数字信号处理的特点进行了改进和优化,并且增加了特殊的指令专门用于数字处理,因而处理速度更快,效率更高。在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音和图像处理、模式识别、谱分析等应用中的一个基本处理算法。与模拟滤波相比,数字滤波具有很多突出的优点:它可以满足滤波器对幅度和相位特性的严格要求,
3、可以避免模拟滤波无法克服的电压漂移、温度漂移和噪声等问题。本文探讨了美国TI(德州仪器)公司TMS320C54XDSP芯片的数字滤波系统设计的基本方法c包括数字滤波实现算法、性能分析、系统实现的硬件构建和软件设计等。1硬件构建TMS320C54X是美国TI(德州仪器)公司于1996年推出的新一代定点数字信号处理器。它采用先进的修正型哈佛结构,片内共有8条总线收稿日期:2003-03-W作者简介:李元熙,男,教师,主要研究方向:电子信息、通倍。(1条程序存储器总线、3条数据存储器总线、4条地址总线)、CPU、在片存储器、在片外围电路等硬件,加上高度专业化的指
4、令集,使其具有功耗小、高度并行等优点,可以满足通信等领域的实时处理要求。采用滤波器IIR、FIR,由于其是一种乘法累加运算,它不断地输入样本,经延迟,做乘法累加运算,就可得到输岀的滤波结果。对于乘法累加运算DSP有专门的硬件乘加单元,该运算结构由一个17位x17位的硬件乘法器与一个40位专用加法器相连,在一个流水线状态周期内完成一次MAC运算,十分迅速,而主要的延迟算法可在DSP内部缓冲区内开辟一部分存储空间通过循环替代的方法来实现。当有大量的序列点需进行运算时,由于C5416片内存储资源有限,可通过加载片外存储器的方法来扩充,但要同时设置好CPU内部寄存器
5、的相关状态位。芯片其他接口的驱动控制可以通过一块FPGA来实现。2软件设计软件平台使用的是由TI公司提供的CCS(CodeComposerStudio)集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试及实时跟踪等功能于一体。针对本设计的DSP芯片选择CCS5000进行开发。在软件开发过程中先通过文本编辑器进行源11基于DSP的数字滤波系统设计及应用程序的编辑,然后通过汇编器将多个源文件分别进行汇编生成列表和目标文件,再通过链接器生成存储器映像文件和输岀文件,经过软件和硬件的仿真调试,最后固化。对TMS320C5416定点时,
6、DSP提供了单周期乘/累加指令MAC和循环寻址方式,使FIR数字滤波器每个样值的计算可以在一个周期内完成。其中每个样值的计算就是实现两个数组对应项的累加和,采用RPTZ和MAC指令结合循环寻址方式可以方便实现这-•计算:RPTZ累加器,N-1MAC(双访问数据),(双访问数据),累加器。其中RPTZ指令将累加器清零初始化,并将立即数N-】(16位)装入重复计数器,使下一个指令重复N次°MAC指令实现将两存储区数据乘积累加到累加器,在通过存储器指针以循环寻址的方式指向下一个存储区。在设计时,先在数据存储器中开辟一个能存储N个单元的缓冲区,用于存放最新的N个输入
7、样本,每次输人时用新样本改写缓冲区内最老的数据,而其他数据不变。用BK寄存器进行按模间接寻址,使循环缓冲区地址首尾相邻。使用这种方法的优点在于不需移动数据,并可以将缓冲区定义在数据区的任何位置。IIR、FIR两种滤波器在算法上都是一种乘法累加运算,两者在程序上可采用相近的设计方法,现以FIR滤波器为例,说明设计方法。以8个点为例,即N=8Y(n)=£akx(n-k)(1)在数据区开辟两块区域分别存放输入、输岀序列x(n),y(n)和对应系数叫。程序流程图如图1所示C选取循环缓冲区和双操作数寻址的方法来实现,把存放数据的循环缓冲区和%~4的系数表设定在DARA
8、M中。分别用AR2、AR3两个辅助寄存器指针指向x(