《基于TMS320VC5402的自适应滤波器设计课案.doc》由会员分享,可在线阅读,更多相关《基于TMS320VC5402的自适应滤波器设计课案.doc(12页珍藏版)》请在三一办公上搜索。
1、基于TMS320VC5402的自适应滤波器设计 本文从自适应滤波器研究的意义入手,介绍了自适应滤波器的基本理论思想,具体阐述了自适应滤波器的基本原理、算法及设计方法。自适应滤波器的算法是整个系统的核心。本文中,对两种最基本的自适应算法,即最小均方误差(LMS)算法和递归最小二乘(RLS)算法进行了详细的介绍,采用protel对硬件设计进行详细的分析,对软件分析则采用MATLAB进行仿真,最后用DSP实现了自适应滤波器。实验结果表明,该自适应滤波器滤波效果优越。关键词:DSP、自适应滤波器、硬件系统、最小均方LMS算法、MATLAB一 概述 滤波技术是信号处理中的一种基本方法和技术,尤其数字滤波
2、技术使用广泛,数字滤波理论的研究及其产品的开发一直受到很多国家的重视。现代滤波则不要求己知信号和噪声的统计特性,如自适应滤波。自适应滤波的原理就是利用前一时刻己获得的滤波参数等结果,自动地调节现时刻的滤波参数,从而达到最优化滤波。自适应滤波具有很强的自学习、自跟踪能力,适用于平稳和非平稳随机信号的检测和估计。自适应滤波一般包括3个模块:滤波结构、性能判据和自适应算法。其中,自适应滤波算法和应用一直是人们的研究热点,包括线性自适应算法和非线性自适应算法,非线性自适应算法具有更强的信号处理能力。1.2方案论证基于自适应滤波器的滤波结构、性能判据和自适应算法,设计一自适应滤波器系统,以TMS320V
3、C5402芯片作为系统数据处理核心, 设计 A/D和D/A转换器,时钟电路,复位电路,电平转换,JTAG接口,电源等外围电路, 并使用MATLAB编程,采用自适应滤波器技术实现语音去噪过程,通过Matlab仿真结果分析,自适应滤波器具有很好的性能。1.3课题研究目的和意义 对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一。Windrow等于1967年提出的自适应滤波系统的参数能自动的调整而达到最优状况,而且在设计时,只需要很少或根本不需要任何关于信号与噪声的先验统计知识。这种滤波器的实现差不多像维纳滤波器那样简单,而滤波器性能几乎如卡尔曼滤波器一样好。自适应滤波器与普通滤波器
4、不同,它的冲激响应或滤波参数是随外部环境的变化而变化的,经过一段自动调节的收敛时间达到最佳滤波的要求。自适应滤波器本身有一个重要的自适应算法,这个算法可以根据输入、输出及原参量信号按照一定准则修改滤波参量,以使它本身能有效的跟踪外部环境的变化。因此,自适应数字系统具有很强的自学习、自跟踪能力和算法的简单易实现性。自适应滤波技术的核心问题是自适应算法的性能问题,提出的自适应算法主要有最小均方(LMS)算法、递归最小二乘(RLS)算法及相应的改进算法。由于LMS算法简单有效、鲁棒性好、易于实现,得到了广泛的应用。目前应用最多的是系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适
5、应天线阵等诸多领域。 二、 自适应滤波器的系统设计2.1滤波器的基本概念凡是有能力进行信号处理的装置都可以称为滤波器。在近代电信装备和各类控制系统中,滤波器应用极为广泛;在所有的电子部件中,使用最多,技术最复杂要算滤波器了。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。滤波器是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的交流电。您可以通过基本的滤波器积木块二阶通用滤波器传递函数,推导出最通用的滤波器类型:低通、带通、高通、陷波和椭圆型滤波器。传递函数的参数f0、d、hHP、hBP 和hLP,可用来构造所有类型的滤波器。转降频率f0为s项开始占支配作
6、用时的频率。2.2 自适应滤波器的原理自适应滤波,就是利用前一时刻以获得的滤波器参数的结果,自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。其实质就是一种能调节其自身传输特性以达到最优的维纳滤波器。由于无法预先知道信号和噪声的特性或者它们是随时间变化的,仅仅用FIR和II种具有固定滤波系数的滤波器无法实现最优滤波。在此情况下,必须设计自适应滤波器,以跟踪信号和噪声的变化。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。自适应滤波器的结构采用FIR或I
7、IR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。自适应滤波器的结构可以采用FIR或IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。自适应FIR滤波器结构又可分为3种结构类型:横向型结构(Transversal Structure)、对称横向型结构(Symmetric Transversal Structure)以及格型结构(Lattice Struture)。23自适应滤波器的算法自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。自适应算法是根据某种判断来设计的。自适应滤波器的算法主要是以各种判据条
8、件作为推算基础的。通常有两种判据条件:最小均方误差判据和最小二乘法判据。LMS算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。最小均方误差(Least Mean Square,LMS)算法是一种易于实现、性能稳健、应用广泛的算法。所有的滤波器系数调整算法都是设法使y(n)接近d(n),所不同的只是对于这种接近的评价标准不同。LMS算法的目标是通过调整系数,使输出误差序列e(n)=d(n)-y(n)的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。误差序列的均方值又叫“均方误差”(Mean Sqluare Error,MSE)。理想信号d(n)与滤波器输出y(n
9、)之差e(n)的期望值最小,并且根据这个判据来修改权系数wi(n)。由此产生的算法称为LMS。均方误差表示为: (2-1)对于横向结构的滤波器,代入y(n)的表达式: (2-2)其中:R=EX(n)XT(n)为NN的自相关矩阵,它是输入信号采样值间的相关性矩阵。 24 TMS320VC5402的简介 TMS320VC5402是公司的定点数字信号处理芯片,是一种特殊结构的微处理器,为了达到快速进行数字信号处理的目的,采用程序与数据分开的总线结构,流水线操作,单周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集TMS320C5402主要特点:1 个 40 位的算术逻辑单元 ,2 个 40 位
10、的累加器 ,2 个 40 位的专用加法器 ,1 个 1717 的并行乘法器 ,1 个 40 位的桶形移位器。8 个辅助寄存器和 1 个软件栈。 内部集成 Viterbi 加速器 ,用于提高Viterbi 编译码的速度。 可工作在三种低功耗方式(IDLE1、I2DLE2、IDLE3) 。1192K WORD寻址空间(64KW 程序空间、64KW数据空间、64KW I/O 空间) ,某些型号的程序空间可扩展到 8M WORD。 片内存储区可灵活配置为程序/数据存储器。 多种复用外设; McBSP、HPI、GPIOTDM、DMA、Timer、PLL。 双电源供电 ,提供 PGE和BGA 两种形式的封
11、装。TMS320VC5402,最高频率 100MHz , 性价比高。它含 4K16bit 片内 ROM、16K16bit 片内 DARAM、6 个DMA 通道、2 个 McBSP、2 个 Timer ,外部程序空间可扩展到 1M 16bit。对于片外数据空间一般建议选用高速SRAM ,尽量减少DSP的等待周期。用户程序一般在上电时从外部ROM加载到片内RAM 区运行。程序存储器 Flash Rom:256K16;一片数据存储器 SRAM:64K16 一片;可编程逻辑器件 CPLD:一片。三、硬件设计3.1.1系统结构流程图: 采用TI公司的DSP芯片 TMS320VC5402,还有电源芯片,A
12、D转换器,储存器,时钟,JTAG接口的连接。结构图如图2:图2 系统结构流程图3.1.2电源电路设计:由于TMS320VC5402核电压为1.6V,端口电压为3.3V,外围器件为3.3V,其它器件的提供电压在3.3V . TI公司的电源TPS76D318是一个双输出电压为 图3 复位电路分离电源,可以由3.3V产生3V和1.6V的电压输出,最大输出电流为1A,可以满足要求。该器件具有快速瞬态响应和超低85uA典型静态电流,热关断保护的每一个调节,有个28引脚。3.1.3复位电路设计: 系统上电时可自动复位,但是为了防止系统受到外界干扰或电源波动时出现死机现象,还专门加了外部RESET,主要使用
13、了施密特触发器74。3.1.4时钟电路设计:采用外部时钟,根据晶振不同,采用的晶体振荡电容也不同,这里采用16MHz晶振,起振电容选为104pF。系统中让DSP工作在16MHz的频率,因此根据5402图4 电源电路的主时钟配置规则,只要将5402的CLKMD1,CLKMD2,CLKMD3这3个引脚分别选择高电平,低电平,低电平即可。图5 时钟电路3.1.5 AD转换电路设计: 因为C5402内部没有AD转换功能,因此在数据采集时需要使用AD转换芯片。为了充分利用C5402所提供的多通缓冲串口资源,我们采用T I公司生产的CMOS 型10b模数芯片TLV1544。其内部采用开关电容逐次近似来得到
14、模数转换结果。芯片有4 路模拟信号输入通道, 通过芯片内部参数设置选择不同通道输入, 进行A/D转换输出。TM S320VC5402 是T I公司生产的具有很高性价比的定点DSP。他有2 个多通道缓冲串口 (M cBSP), 设计中使用M cBSP0 完成配置 TLV1544 以及接收转换好的数字信号。接口原理图如图2 所示。TLV1544 的INV CLK, CSTART接高电平, 输入/输出时钟不翻转且采样/转换考试控制功能不使用。TM S320VC5402 的XF 引脚提供TLV1544 的片选信号。TLV1544 的EOC 触发DSP 的外部0 中断, 转换结束通过中断接收转换好的数据
15、。TLV1544 与 TM S320VC5402 通过串行口连接,此时, AD转换芯片作为从设备, DSP 提供帧同步和输入/输出时钟信号。 图6 A/D转换电路3.1.6 JTAG接口电路设计:JTAG是基于IEEE 1149. 1 标准的一种边界扫描测试方式。TI 公司为其大多数的DSPs 产品都提供了J TAG端口支持,5402 也不例外。结合配套的仿真软件,可访问DSPs 的所有资源,包括片内寄存器及所有的存储器,从而提供了一个实时的硬件仿真与调试环境,便于开发人员进行系统软件调试。除上述电路接口外,要使系统板正常地工作,还必须配置跳线和接插座等部分。其中:电源模块接出一个插座,以便于
16、外部电压输入;音频编解码部分需安装话筒和扬声器;USB 芯片要连接到USB 接口插件,以实现与主机的交互。实用起见,所有这些插件均设置在电路板边界部分。最后,对于系统中一些难以事先决定的设置引脚附近,放置上位/ 下拉电阻,为以后的电路更改或扩展提供方便.通过JTAG接口,可以对C5402芯片内部的所有结构进行访问,如图所示: 图7 JTAG接口电路3.1.7 电平转换电路的设计:主机接口(HPI)是TMS320C5402定部具有的一种接口部件,主要用于DSP芯片与其它总线或CPU进行通信。HPI接口通过控制寄存器(HPIC)、地址寄存器(HPIA)、数据所存器(HPI内存块实现与主机通信。其主
17、要特点有:接口所需外围硬件芯片很少;HPI单元允许芯片直接利用一个或两个数据选通信号、一个独立或复用的数据总线接到为控制单元MCU上;主机和DSP芯片可独立地对HPI接口操作;主机和DSP芯片握手可通过终端方式来完成。主 机还可以通过HPI接口装载DSP应用程序、接受DSP运行结果或诊断DSP运行状态。HPI为DSP芯片的接口开发提供了一种极为方便的途径。3.1.8储存器电路设计: 内储存器直接与CPU相连接,储存容量较小,但速度快,用来存放当前运行程序的指令和数据,并直接与CPU交换信息。内储存器由许多储存单元组成,每个单元能存放一个二进制数或一条由二进制编码表示的指令。内储存器是由随机储存
18、器和只读储存器构成的内存,即RAM(Random access memory)通过使用二进制数据储存单元和直接与CPU联系,大大减少了读取数据的时间。RAM上所存数据在关机或计算机异常是会自动清除,所以人们才需要将数据保存在硬盘等外存上。 图8 电平转换电路四、软件设计3.2.1MATLAB的介绍 MATLAB具有强大的语言功能,它是集命令翻译,科学计算于一身的一套交互软件系统,在MATLAB环境下,矩阵的运算变得异常的容易, 它允许用户以数学形式的语言编写程序,比BASIC、FOTRRAN和C等语言更接近于书写计算公式的思维方式。它的操作和功能函数指令是以平时计算机和数学书上的简单英文单词表
19、达的。由于它在很长一段时间内是用C语言开发的,它的不多的几个程序流控制语句同语言差别甚微,初学者很容易掌握。MATLAB语言的帮助系统也近乎完备,用户可以方便的查询到想要的各种信息。另外,MATLAB还专门为初学者提供了功能演示窗口,用户可从中得到感兴趣的例子和演示。为了准确地把一个控制系统的复杂模型输入给计算机,然后对之进行进一步的分析与仿真,MATLAB提供了新的控制系统模型图形输入与仿真工具,定名为Simulnik。Simulikn是用来建模、分析和仿真各种动态系统的交互环境,包括连续系统、离散系统和混杂系统。Simulnik提供了采用鼠标拖放的方式建立系统框图模型的图形交互界面。通过S
20、imulnik丰富的功能块可以迅速的建立系统模型。后来又增添了丰富多彩的图形处理及多媒体功能,使得MATLAB的应用范围越来越广泛。3.2.2实现MATLAB仿真clearclcee=0;fs=800;det=1/fs;f1=100;f2=200;t=0:det:2-det;x=randn(size(t)+cos(2*pi*f1*t)+cos(2*pi*f2*t);%未知系统b,a=butter(5,150*2/fs);d=filter(b,a,x);%自适应FIR滤波器N=5;delta=0.06;M=length(x);y=zeros(1,M);h=zeros(1,N);for n=N:M
21、x1=x(n:-1:n-N+1);y(n)=h*x1;e(n)=d(n)-y(n);h=h+delta.*e(n).*x1;endX=abs(fft(x,2048);Nx=length(x);kx=0:800/Nx:(Nx/2-1)*(800/Nx);D=abs(fft(d,2048);Nd=length(D);kd=0:800/Nd:(Nd/2-1)*(800/Nd);Y=abs(fft(y,2048);Ny=length(Y);ky=0:800/Ny:(Ny/2-1)*(800/Ny);figure(1);subplot(3,1,1)plot(kx,X(1:Nx/2);xlabel(Hz)
22、title(原始信号频谱)subplot(3,1,2)plot(kd,D(1:Nd/2)title(经未知系统后信号频谱);xlabel(Hz)subplot(3,1,3)plot(ky,Y(1:Ny/2)title(经自适应FIR滤波器后信号频谱);xlabel(Hz)五、实验结果实验结果如下MATLAB仿真图形: 图9 仿真图形 六、总结自适应滤波器依靠递归算法进行其运算,这样使得它能在有关信号特征的完整知识不能得到的环境下,完满的完成滤波运算。即自适应滤波器具有在未知环境下良好运行并跟踪输入统计量随时问变化的能力,使其成为信号处理和自动控制应用领域强大的设备。使其达到净化信号、完整信号特
23、征量的目的。经测试滤波器实时滤波效果比较理想,具有一定的实用价值。 同时,在设计的过程中,也发现了存在的一些问题。如基础知识点掌握的不扎实,理论跟实际有些脱节,导致做设计遇到很大的困难。在今后的学习和实验,要注重对基础知识的了解和掌握,多实验,将理论和实验完美结合起来,脚踏实地,打下扎实的基础。参考文献1 赵洪亮等. TMS320C55xDSP应用系统设计M. 北京:北京航空航天大学出版社,20082 李绍胜,赵振涛. TMS320C5000 系列DSP开发应用技巧M.北京:中国电力出版社,2003 郭华. 自适应滤波算法及应用研究D. 西北师范大学硕士学位论文,20074 乔瑞萍,崔涛,张芳娟. TMS320c54xDSP原理及应用M.西安电子科技大学出版社5李利. DSP原理及应用21世纪高等院校规划教材M.北京:水利水电出版社,20046康华光,陈大钦. 电子技术基础模拟部分(第五版)M. 北京:高等教育出版社,20057郑宝玉. 自适应滤波器原理M. 北京:电子工业出版社,20068安颖,侯国强. 自适应滤波算法研究与DSP 实现J . 现代电子技术,200710雄伟. DSP 芯片的原理与开发应用M . 北京:电子工业出版社,2000