您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 一种基于TMS320VC5402dsp实现FIR滤波器的技术
图1TMS320C54XDSP内部硬件组成框图一种基于TMS320VC5402实现FIR滤波器的技术薛继华沈琰(东南大学无线电工程系,江苏南京210096)摘要:FIR滤波器在各种数字信号处理系统中获得了广泛应用,它总是稳定的,并且具有严格的线性相位等优点。本文首先介绍了TMS320VC5402DSP主要特性和FIR滤波器知识。然后分析了两种循环寻址数据存储器的组织方案,并给出了相应的滤波程序。最后阐述了用FIRS指令实现FIR滤波器的优点。关键词:DSP;FIR滤波器;循环寻址;AnTechnologyofImplementingFIRFilterbasedonTMS320VC5402XueJi-hua,ShenYan(DepartmentofRadioEngineering,SoutheastUniversity,Nanjing,Jiangsu210096,China)Abstract:FIRFilteriswidelyusedindigitalsignalprocessingapplicationsbecauseit’salwaysstable,andhasperfectlinearphasefeature.ThispaperfirstintroducesthemainperformanceofTMS320VC5402andthebasicconceptionofFIRFilter.Thenitexpoundstwokindsoforganizationsofdatamemorybyusingcircularaddressingmode,andprogrammesarepresentedforexample.Intheend,itindicatestheadvantageofimplementingFIRfilterwithFIRSinstruction.Keywords:DSP;FIRFilter;CircularAddressing;1、前言数字信号处理就是用数字信号处理器(DSP)来实现各种算法。由于具有精度高、灵活性强等优点,已广泛应用在数字图像处理、数字通信、数字音响、声纳、雷达等领域。而数字滤波技术又是进行数字信号处理的最基本手段之一。它是对数字输入信号进行运算,产生数字输出信号,以改善信号品质,提取有用信息,或者把组合在一起的多个信号分量分离开来为目的。在许多实际应用(如:音乐信号、图像信号处理)中,为了保证滤波后的信号不产生相位失真,一般均采用FIR数字滤波器。本文选用TMS320VC5402作为DSP处理器,研究了对其配置和编程从而实现FIR滤波器的技术。2、TMS320VC5402的主要特点:TMS320VC5402是TI公司于1999年10月推出的性价比极高的定点数字信号处理器(DSP)。运算速度高达100MIPS。图1是它的内部硬件组成框图,包括:CPU,总线,存储器,在片外设电路等。主要特点如下:●由一条程序总线、三条数据总线和四条地址总线构成增强型哈佛结构;●40位算术逻辑单元(ALU),包括一个40位桶形移位寄存器和两个独立的40位累加器;●17bitx17bit并行乘法器单元和一个专用的40位加法器,用于非流水线的单周期乘法/累加(MAC)操作;●比较、选择、储存单元(CSSU),用于维特比加法/比较选择;●两个地址发生器,包括8个辅助寄存器(AR0-AR7)和2个辅助寄存器算术单元(ARAU0、ARAU1);●192K字×16bit可寻址的存储器空间(64K字的程序空间、64K字的数据空间、64K字的I/O空间),片内提供16K双存取RAM,4KROM;●在片外围电路包括:软件可编程等待状态发生器、片内锁相环(PLL)时钟发生器、2个多通道带缓冲串行接口(McBSP)、2个可编程的定时器等;除了上述高性能的硬件结构外,TMS320VC5402还提供了先进的指令集,实现单指令重复和块重复、32位长操作指令、具有并行存储和并行加载的算术指令、一条指令同时读2或3个操作数、从中断快速返回指令。3、FIR数字滤波器FIR滤波器实质上就是一个分节的延迟线,把每一节的输出用滤波器系数进行加权累加,便得到滤波器的输出结果,它总是稳定并且可实现的。在一些工程实际应用(如:图像处理、数据调制解调)中,往往对相位要求较高。FIR滤波器可以实现严格的线性相位,从而得到了广泛应用。它的差分方程数学表达式为:10()()()Niynhixni(1)式中,N是FIR滤波器的抽头数,x(n)表示在n时刻输入的信号样值,h(n)表示滤波器的第n级抽头系数。横截型FIR滤波器的结构如图2所示:4、用TMS320VC5402的MAC指令实现FIR滤波器对于给定的滤波器技术指标,利用滤波器设计软件包工具,例如MATLAB,可以确定数字滤波器系数。然后用汇编指令MAC,合理组织存储器,编程实现。4.1存储器的组织TMS320VC5402定点DSP芯片提供了单周期乘法/累加指令。数据可以在每个周期内经过CB和DB两数据总线传送到乘法器,并且在单个周期内完成相乘和相加,数据的地址由辅助寄存器算术单元(ARAU)提供。这样使数字滤波器每个滤波样值的计算可以在一个周期完成。假设x(n)代表了在n时刻输入到FIR滤波器的信号样值,它的冲激响应为:h(0)、h(1)、h(2)……h(N-1),则此刻滤波器的输出可表示为下式:()(0)()(1)(1)......(1)[(1)]ynhxnhxnhnxnN(2)接下来借助循环寻址实现FIR滤波器,图3是TMS320VC5402进行FIR滤波时的一种有(0)h(1)h(3)hN(2)hN(1)hN●●●●●●()xn1z1z1z1z()yn图2FIR滤波器的横截型结构效的存储器组织方案。在DSP的数据存储器的Page0页中的0019H单元是循环缓冲区长度寄存器BK,必须先用滤波器的长度值N来初始化。并且循环缓冲区的基地址还应满足如下条件:有效的基地址必须是M的整数倍,其中M是一个大于N且是2的整数次幂的数集合中的最小值。例如N=28的循环缓冲区必须从地址×××××××××××000002开始,即起始地址的低5位为0。4.2用MAC指令编程实现FIR滤波器的程序片断:…FILT_task1ldStore_SICX,ASTLMA,ar4STM#1,ar0;间址STM#28,bkLDDEM_Out,ASTLA,*ar4+%;输入信号:实部STM#Coef_Tab1,ar5;滤波器实部系数地址LD#0,Astm#27,brcRPTBSICXU-1MAC*AR4+0%,*AR5+,ASICXULDA,-16,A;低通滤波结果LDC7FFF,BMINANEGBMAXASTLA,DEM_OutLDMAR4,ASTLA,Store_SICXRETCoef_Tab1.word100;h(0).word7;h(1)….word-248初始输入样值最后输入样值低地址h(N-1)最初的样值x[n-(N-1)]x(n)h(N-2)x[n-(N-2)]x[n-(N-1)]·········h(1)x(n-1)x(n-2)高地址h(0)最新的样值x(n)x(n-1)循环序列图3数据存储器的组织.word-71;h(N-1).end5.用TMS320VC5402的FIRS指令实现FIR滤波器由图2可知:输出信号序列为单位脉冲响应h(n)与输入信号序列x(n)的线性卷积。当FIR滤波器的单位脉冲响应h(n)满足以下两个条件之一,就能被设计成具有精确的线性相位的滤波器。()(1)hnhNn(3)()(1)hnhNn(4)式(3)称为第一类线性相位的幅度条件(偶对称),式(4)称为第二类线性相位的幅度条件(奇对称)。在工程实践中,前者获得了广泛运用。此时滤波器的输出表达式为:(/2)10()()[()((1))]NkynhkxnkxnNk(5)5.1存储器的组织要利用FIRS指令,需要将输入数据缓冲分成两个循环缓冲区来实现。每个循环缓冲区的大小为N/2,循环缓冲区1存放输入数据的前半序列,循环缓冲区2存放输入数据的后半序列。设辅助寄存器AR2用来寻址循环缓冲区1,AR3用来寻址循环缓冲区2。如图4所示:每次进行滤波之前,应先将循环缓冲区1中最旧的数据x(n-(N/2-1))移到循环缓冲区2中最旧的单元x(n-(N-1)),再用新来的样值x(n)冲掉循环缓冲区最旧的数据单元,并对循环缓冲区1指针AR2加1(使用循环寻址)。然后使用FIRS指令进行乘加运算。当然,在使用FIRS指令前,需要先计算一次求和,初始化A。在RPTZ重复指令和循环寻址的配合下,完成FIR滤波。在滤波算出一个输出样值后,需要对AR2和AR3进行修正,使它们都再次指向各循环缓冲区数据序列中的最旧的数据单元。以便对下一个输入样值进行滤波处理。5.2用FIRS指令编程实现FIR滤波器的程序片断:....FILT_task2STM#N375,bkSTM#-1,ar0LDIN_data,BMVDD*AR2,*AR3+0%STLB,*AR2ADD*AR2+0%,*AR3+0%,A←AR2x(n)x(n-(N/2-1))x(n-1)······循环缓冲区1←AR3······x(n-(N-1))x(n-(N-2))x(n-(N-3))循环缓冲区2图4滤波系数对称时数据存储器的组织RPTZB,#N375-1FIRS*AR2+0%,*AR3+0%,Coef_Tab2MAR*+AR2(2)%;修正指针MAR*AR3+%LDB,-5,Astm#19592,tMPYAbSTHB,OUT_dataCoef_Tab2.word600;h(0).word94.word101.....word32728.word32767;h(N/2-1).end6.结束语本文论述了基于TMS320VC5402芯片实现FIR滤波器的技术。FIRS指令充分利用了滤波器系数的对称性,乘法次数为用MAC指令时的一半,大大减少了运算量,提高了滤波效率。并且需要的滤波器系数存储器大小也只有MAC指令时的一半,节约了存储空间。同时,还获得了一个线性相位的滤波器。在实际应用时,只需改变滤波器的抽头系数,就能灵活设置FIR数字滤波器的中心频率、带宽等滤波参数。由于TMS320VC5402的指令周期为10ns,完全能够满足实时数字信号处理的要求。实践证明,在中频数字化接收机中,TMS320VC5402配合数字下变频器用来完成基带信号的解调滤波运算,如AM解调时的直流电平恢复滤波、FM解调时的频偏滤波等,均达到了理想的数字滤波处理效果。参考文献:[1]吴镇扬﹒数字信号处理的原理与实现[M]﹒南京:东南大学出版社,2002[2]维纳.K.恩格尔,约翰.G.普罗克斯﹒数字信号处理――使用MATLAB[M]﹒刘树棠译﹒西安:西安交通大学出版社,2002[3]TMS320C54XDSPReferenseSet﹒TICompany,2001[4]汪安民﹒TMS320C54XXDSP实用技术[M]﹒北京:清华大学出版社,2002[5]RichardG.Lyons(美)﹒UnderstandingDigitalSignalProcessing(SecondEdition)[M]﹒北京:机械工业出版社,2005.1作者简介:薛继华男,1976年1月生于江苏省如皋市,1999年江苏技术师范学院本科毕业,2003年至今在东南大学无线电系攻读硕士学位,研究方向为信号与信息处理。(mobiletel:(0)13584670016;E-mail:xjhnt@163.com)沈琰女,1968年4月生于山东省东营市,1990年毕业于合肥工业大学,2003年至今在东南大学无线电系攻读硕士学位,研究方向为信号与信息处理。(tel:0546-8060073)
本文标题:一种基于TMS320VC5402dsp实现FIR滤波器的技术
链接地址:https://www.777doc.com/doc-2825851 .html