-106-裴小平等·基于TMS320VC5402DSK的自适应滤波器算法实验基于TMS320VC5402DSK的自适应滤波器算法实验电子工程与信息科学系裴小平李玉虎梁晓雯摘要:本文简述了DSP处理器的发展概况,着重介绍了TMS320VC5402DSK的软、硬件平台,并介绍了一个基于此平台的自适应数字滤波器的算法实验。关键词:DSP;算法;JTAG;实验ExperimentofAdaptiveFilterAlgorithmBasedonTMS320VC5402DSKDept.ofElectronicsEngineeringandInformationSciencePeiXiaopingLiYuhuLiangXiaowenAbstract:ThispaperintroducedthedevelopmentofDSPandemphasizedonthesoftwareandhardwareworkbenchofTMS320VC5402DSK.Anexperimentalexampleofadaptivefilteralgorithmwasgiven.Keywords:DSP;algorithm;JTAG;experiment数字信号处理(DigitalSignalProcessing简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。近年来,随着计算机和网络技术的日益普及,DSP技术得到了迅速发展,尤其是在通信领域,DSP技术得到极为广泛的应用。数字信号处理理论是在众多学科理论基础上发展起来的,与网络理论、信号与系统、通信理论、人工智能、模式识别等都密切相关。它可以利用计算机和专用处理设备,将自然界中的模拟的连续信号进行抽样、量化、转换成数字信号,从而进行滤波、估值、压缩、识别等处理。由于这些处理技术要求实时快速,一般的个人计算机远远不能满足,DSP处理器就是在这种情况下应运而生的。DSP处理器的强大功能,超常速度,迅速得到了广泛应用,反过来对DSP理论的发展又起到了极大的推动作用。目前,DSP处理器的主要厂商有美国德州仪器公司(TI),AD公司,Motorola公司等。其中TI公司可谓业界巨首,TIDSP处理器全球市场占有率超过50%,在国内也被广泛采用。TI公司在国内许多高校投资建设了DSP实验室,我们中国科技大学电子工程与信息科学系也是受益者之一。自1994年以来,我们便以TIDSP开发系统为平台,开设了数字信号处理算法实验。中国科学技术大学*实验教学研讨会-107-一、TMS320VC5402DSK工作原理TMS320VC5402DSK是以TMS320VC5402处理器为核心的DSP初学者工具(DSPStarterKit)。它提供了一个低功耗,独立的开发平台,使用户能评估和开发C54XDSP的应用程序,同时也可以作为以其他芯片为核心的DSP硬件设计的参考。TMS320VC5402DSK的结构框图如图1所示,主要包括以下部分:•100MVC5402DSP•64K16位的SRAM存储器•256K16位的FLASH存储器•JTAG仿真测试总线控制器(JTAGTBC)和并行接口控制器(ParallelPortController)•电话网络接口(DAA)•麦克风/扬声器音频接口•RS-232异步数据接口•扩展子板接口(MEMORYI/F和PERIPHERALI/F)PC/rsTERMINALSPERAKERMICROPHONEDC5VTELLINELED8-POSDIPSWPowerLED图1TMS320VC5402DSK结构框图DSK的核心是TMS320VC5402芯片,它是TI公司的第五代产品,支持定点运算,内核电压为1.8V,I/O电压为3.3V,工作速率可达100MIPS。片内包括一个JTAG仿真接口、一个控制接口、一个主机接口(HPI)、一个时钟接口、两个多通道缓冲串行接口McBSP0和McBSP1,McBSP0接电话网络接口,McBSP1接RS232DriverUART(I/O)SARM64Kx16FLASH256Kx16PERIPHERALI/FEMIFDB25MUXCPLDParallelPortController5402DSPChipTLC320AD50CMUXTLC320AD50CDAASWITCHMEMORYI/FJTAGTBC-108-裴小平等·基于TMS320VC5402DSK的自适应滤波器算法实验麦克风/扬声器音频接口。启动(boot)模式有三种:允许用户在运行环境中从NO-boot、ROM-boot或HPI-boot模式之间选择。DSK通过16位外部存储器接口(EMIF)将片外64K16位的SRAM,256K16位的FLASH存储器以及扩展存储器接口与DSPVC5402相连,扩展存储器接口可以与外接子板相连。DSK提供一个嵌入的IEEE标准1149.1JTAG(JointTestActionGroup)仿真模块,它可直接与编码设计调试软件CCS(Codecomposerdebugger)兼容。IEEE标准1149.1扫描逻辑仅用于仿真和测试。这个逻辑提供接口器件的边界扫描,用于测试引脚之间的连续性或进行DSP器件外设的操作测试。这种扫描逻辑接到内部扫描逻辑电路,扫描逻辑电路可以访问所有片内资源。DSP可以利用IEEE标准1149.1串行的扫描引脚和专用仿真引脚进行在线仿真。DSK的嵌入JTAG仿真端口(由测试总线控制器TBC提供)与主机端口(HPI)一起与IEEE-1284并行接口相连。同时DSK也可以通过它的外部JTAG连接器与外部仿真器XDS510一起使用,进行外部仿真。DSK的电话网络接口(DAA)与模数转换器TLC320AD50C连接,通过一个多通道缓冲串行端口(McBSP0)使DSP可以访问一个电话接口,多通道缓冲并行端口在软件控制下,可以访问外设扩展连接器。麦克风/扬声器接口(3.5mm音频插座提供)与第二片TLC320AD50C连接。这片TLC320AD50C连在DSP第二个多通道缓冲串行端口(McBSP1)上,McBSP1与DSP的两个定时器和一个外部中断信号相连,同时与外设扩展连接器相连来使用外接子板。通用异步接收发送器UART(UniversalAsynchronousReceiverTransmitter)通过一个RS-232电平转换器与DB-9插座相连,组成串行异步输入输出接口。此接口可以与PC机相连。可编程器件CPLD完成DSK所需的组合逻辑,并为DSP软件提供控制和状态接口。两个80脚的子板连接器(MEMORYI/F和PERIPHERALI/F),一个可以访问DSP的异步EMIF;另一个可以访问DSP的外设控制/状态信号。25脚DB-25为IEEE-1284并口,通过PPC(ParellelPortController)与DSP的HPI和TBC的JTAG相连。中国科学技术大学*实验教学研讨会-109-DSK提供了一个八脚的DIP开关,控制外部用户选项;还提供了一个按钮开关,允许手动复位(RESET)。DSK上有一个电压管理器,监控内部产生的电压,并在复位期控制主板;四个LED,一个用于通电指示,其他三个用于用户控制指示。DSK是一个需要+5VDC的独立板,板上的线性电压整流器提供1.8V的DSP核电压(CoreVoltage),3.3VDC数字以及5VDC模拟电压。二、DSP设计软件CCSDSKC5000DSPCCS(CodeComposerStudio)是DSP编码设计软件,它是一个开放型的、功能强大的集成开发环境,它主要包括代码生成和代码调试两部分。代码生成部分是将用C或汇编语言编写的DSP程序编译并连接成可执行的DSP程序;代码调试部分是对DSP程序及系统进行调试,使之能够达到设计目标。CCSDSKC5000是针对C54XDSK开发系统设计的软件平台,其中的C编译器只支持ANSIC,因此,在写C程序时一定要遵守ANSIC的语法。连接C程序时,应包含一个运行支持库(runtime-supportlibrary),该库中含有所有用到的C函数。CCSC5000软件具有很好的仿真功能,程序正确运行后,可以直接观察到运行结果。有关的具体使用方法在此不作详细说明。三、自适应滤波器原理及算法1.数字滤波器数字滤波器是利用数字的方法,按预定的要求对信号进行变换,把输入的信号变成一定的输出信号,从而达到改变信号频谱的目的。从某种意义上讲,数字滤波器是具有某种“算法”的数字处理过程。按照滤波器结构可将数字滤波器分为:(1)无限冲激响应滤波器(IIR)(2)有限冲激响应滤波器(FIR)FIR滤波器的差分方程是:10)()()(Nkknxkhny其直接型结构如图2所示-110-裴小平等·基于TMS320VC5402DSK的自适应滤波器算法实验x(n)x(n-I)x(n-1)h(0)h(n-1)图22.自适应滤波器在许多DSP的应用场合,由于无法预先知道信号和噪声的特性或者它们是随时间变化的,仅仅用FIR和IIR两种具有固定滤波系数的滤波器无法实现最优滤波。在这种情况下,必须设计自适应滤波器,以跟踪信号和噪声的变化。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。自适应滤波器的结构采用FIR或IIR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。图3示出了自适应滤波器的一般结构。d(n)e(n)x(n)y(n)图3自适应滤波器的一般结构上图中,x(n)为输入信号,y(n)为输出信号,d(n)为参考信号或期望信号,e(n)则是d(n)和y(n)的误差信号。自适应滤波器的滤波器系数受误差信号e(n)控制,根据e(n)的值和自适应算法自动调整。自适应算法的种类较多,最常用的有最小均方误差算法,即LMS算法。基本的LMS算法如下:h(k,n+1)=h(k,n)+ue(n)x(n-k)其中,h(k,n)和h(k,n+1)分别是迭代前后的系数值,n和n+1表示前后两个时刻,k=0~N-1,N为滤波器的阶数,u为收敛因子,e(n)为误差信号,x(n-k)是输入信号。综上可知N阶自适应滤波器的算法如下:(1)for(k=0,kN,k++)y(n)=h(k)x(n-k);FIR滤波,以得到y(n)的估中国科学技术大学*实验教学研讨会-111-值。(2)e(n)=d(n)-y(n);计算误差(3)for(k=0,kN,k++)h(k)=h(k)+ue(n)x(n-k);利用LMS调整滤波器的系数四、基于TMS320VC5402DSK的自适应滤波器算法实验利用TMS320VC5402DSK平台,我们为高年级本科生开设了自适应滤波器算法实验。本实验中要求实现64点的FIR滤波器和自适应滤波器(给定参考值d(n)),并比较其结果。具体分三步:1.FIR滤波为了简化设计,重点突出自适应滤波的算法实现,在此我们省略了有关FIR滤波器的设计过程,对FIR滤波器作如下假设:输入信号x(n)=n,n=0,1,…..63滤波器系数h(n)=0.1,n=0,1,…..63滤波后的值为y(n),n=0,1…..63按以上假设编写程序,经过调试、编译并运行,然后观察y(n)的波形。y(n)的波形如图4(b)所示。2.在(1)的基础上实现自适应滤波假定期望信号为:d[n]=n(202.0/64),n=0,1,…..63即期望信号为一直线,其中系数是为了作图方便而选取的,202是FIR滤波器输出最大值,64为滤波器点数。收敛因子为u=0.00005,此实验中u不应太大,否则后面的滤波值将出现发散现象,u可以比0.00005稍小,但太小则收敛太慢。在以上假定条件下,采用LMS自适应算法,在FIR滤波器源程序基础上进行修改,再编译并运行,得到自适应滤波输出ry(n)。ry(n)的波形如图4(d)所示。3.比较结果图4(a)为期望的输出信号d