LMS自适应滤波器的DSP实现
- 格式:doc
- 大小:838.50 KB
- 文档页数:28
据存储器,64k字的程序存储器.具有高度并行性.用DSP特有的汇编语言实现以上3种LMS算法自适应滤波器.在TMS320C54X的指令系统中,单周期乘/累加指令MAC和循环寻址方式可使滤波器在一个周期内完成每个样值的计算.在实现LMS自适应算法时,由于要计算两组数对应项乘积的累加和,还有要采用循环寻址方式,因此,本文滤波器程序中采用DSP指令中的RPTZ和MAC结合循环寻址方式实现两累加和的运算.RPTZA,#F1LTERMAC℃OFF_DP+0%,*DATA_DP+0%,A其中,RPTZ指令用于将累加器A清零,将立即数10(本实验中滤波器阶数取11)装入到重复计数器,使下条MAC指令重复执行10+1次.MAC指令实现将两存储区数据的乘积累加到累加器A,使存储器的指针以循环寻址的方式指向下一个存储区.其中,FILTER,COFF_DP,DATA—DP分别为自适应滤波器的阶数,自适应滤波器系数缓冲区指针和输入样值缓冲区指针.为了提高算法效率,程序中使用了TMS320C54X特有的LMS指令,来快速实现本文的几种自适应滤波器.设计中,采用1500Hz的期望信号与312Hz的噪声信号叠加作为11个系数的自适应滤波器的一个输入信号,对于每一个时刻r/,,计算自适应滤波器的输出,误差信号是输出信号与期望信号的差值.固定步长LMS算法,变步长LMS算法和归一化LMS算法在SZ—EPP5416评估板上实现的结果如图3所示.70(d)归一化LMS算法滤波结果图3DSP实现结果Fig.3TherealizationDSP图3中,横坐标为仿真时间,竖坐标为波形幅值,图3(a)为输入含噪声的叠加信号,图3(b)为固定步长LMS算法滤波器实现结果,从图3(b)中可以看出,在滤波初始阶段,滤波结果不明显,输入的叠加信号经过自适应滤波器后在初始阶段噪声没有得到明显抑制,存在较大稳态误差,收敛速度比较慢,收敛速度和稳态误差都有待改善.图3(c)为变步长LMS算法滤波结果,从图3(c)中可以看出,在滤波初始阶段,稳态误差已得到改善,但仍有较小稳态误差浮动,初始收敛速度有所加快,输入的叠加信号经过自适应滤波器后噪声得到较明显抑制,滤波性能优于固定步长LMS算法.图3(a)为归一化LMS算法滤波结果,从图3(d)中可以看出,在滤波初始阶段,稳态误差已经得到明显改善,稳态误差浮动已经得到改善,输入的叠加信号经过自适应滤波器后噪声得到更明显抑制,更好的克服了固定步长存在的矛盾.可见,此滤波器滤波效果最为明显.4结论初始收敛速度与稳态误差是衡量自适应滤波算法性能优劣的两个重要技术指标,本文通过对固定步长,变步长LMS算法和归一化LMS算法自适应滤波器进行MATLAB仿真与DSP实现,比较滤波结果,证明了归一化LMS算法能够保证具有更快的收敛速度与更小的稳态误差,能有效去除不相关的独立噪声的干扰,克服了固定步长在增大初始收敛速度与减小稳态误差之间存在的矛盾,优化了自适应滤波器的性能,滤波效果明显.参考文献:【l】1ShireenW,LiT.ADSP-Nmedactivepowerfilterforlowvoltagedistributionsystems田.F_如2tricPowersyBtel璐Research,2008,78:1561—1567.【2】吕振肃,熊景松.一种改进的变步长LMS自适应算法【刀.信号处理,2008,24(1):144-146.LvzS,XiongJS.Anovdi呻r--ovedvariablestep-sizeLMS妇riⅡ姗田.SigllalProcessing,2008,24(1):144一146.【3】KukrerO.№caniIIA.Frequency-response-shapedLMSadaptivefilter田.Digitalsil}IalPro∞s*ing,2006,16:855—869.【4】叶永生,余容桂.一种新的自适应最小均方算法及其应用研究【刀.电测与仪表,2008,45(7):19—22.YeYS。
实验6: 自适应滤波器与系统辨识实验一.实验目的1.熟悉自适应滤波器的基本概念,掌握LMS 算法的基本原理。
2.掌握LMS 算法的DSP 实现方法。
3. 熟悉自适应方法进行系统辨识的原理和方法。
4. 学习采用虚拟仪器记录、分析信号的方法。
二.实验设备PC 兼容机一台,操作系统为Windows2000,安装Code Composer Studio 4.2软件。
C55x DSP 实验箱。
三.实验原理1.自适应滤波器的基本概念和LMS 算法 基于LMS 算法的自适应滤波器结构见下图。
其中,)(n x 、)(n d 分别称为滤波器的输入信号(或参考输入信号,或参考信号)和期望信号,)(n e 称为滤波器的误差信号,()y n 称为滤波器的控制输出信号或输出信号。
W(z)称为控制滤波器或主滤波器,)(n w i 为控制滤波器的权值系数,0,1......1l L =-,L 为滤波器阶数。
定义滤波器输入信号向量和滤波器系数向量分别为[]()()(1)....(1)Tn x n x n x n L =--+X (1-1)[]011()()()....()TL n w n w n w n -=W (1-2)于是,滤波器输出信号可表达为()()()()()T T y n n n n n ==w x x w (1-3a )或∑=-=Ll l l n x n w n y 0)()()( (1-3b )误差信号可表达为()()()()()()T e n d n y n d n n n =-=-w x (1-4)自适应滤波器的目的是以迭代的方式逐步调整滤波器系数)(n w l ,使误差信号)(n e 的能量(或幅度)不断减小,趋近最优值。
在LMS 算法中,定义2()()n e n ξ=为性能函数,采用梯度法进行寻优,由此可导出滤波器系数更新公式:(1)()()()n n e n n μ+=+w w x (1-5)其中μ为收敛因子。
收稿日期:2007-09-20作者简介:刘 琴(1975-),女,河南信阳人,讲师,硕士.第18卷第6期2007年12月 中原工学院学报JOURNAL OF ZHONGYUAN UNIVERSITY OF TECHNOLOGY V ol.18 N o.6Dec.,2007文章编号:1671-6906(2007)06-0040-03基于DSP 的LM S 自适应滤波器的实现刘 琴,张爱华(中原工学院,郑州 450007)摘 要: 在通用D SP 芯片T M S320C5402上实现了基于L M S 算法的自适应滤波器,并对调试运行结果进行了分析讨论,其结果为将来硬件实现LM S 自适应滤波器提供了可靠保证,为自适应滤波器在实际中的应用提供了参考.关 键 词: 自适应滤波器;横向结构;L M S 算法;DSP 中图分类号: O 436 文献标识码: A自适应滤波理论与技术是现代信号处理技术的重要组成部分,对复杂信号的处理具有独特的功能.随着微电子技术和计算机技术的迅速发展,具备了实现自适应滤波器技术的各种软硬件条件,有关自适应滤波器的新算法、新理论和新的实施方法不断涌现,对自适应滤波的稳定性、收敛速度和跟踪特性的研究也不断深入[1-3],这一切使该技术越来越成熟,并且在系统辨识、通信均衡、回波抵消、谱线增强、噪声抑制、系统模拟语音信号处理、生物医学电子等方面都获得了广泛应用[3-4].自适应滤波器实现的复杂性通常用它所需的乘法次数和阶数来衡量,而DSP 强大的数据吞吐量和数据处理能力使得自适应滤波器的实现更容易且更有效.目前绝大多数的自适应滤波器应用是基于最新发展的DSP 来设计的[5].本文在TM S320C5402DSP 芯片上实现了基于LM S 算法的自适应滤波器,使得对其研究从目前大多数的算法改进与仿真[1-3]跨向了实际DSP 应用的一步,程序调试运行结果为硬件实现LM S 自适应滤波器提供了可靠保证,为实现其在实际未知或时变系统中的应用提供了参考.1 自适应滤波器的结构和算法1.1 自适应滤波器的结构自适应滤波器的特性变化是由自适应算法通过调整滤波器的系数来实现的.所以,自适应滤波器一般都由两部分组成:一是滤波器结构,它为完成期望的处理功能而设计;二是自适应算法,它调节滤波器系数以改进性能.自适应滤波器的一般形式如图1所示[5],图中输入信号x (n)加权到数字滤波器产生输出信号y (n),自适应算法调节滤波器权系数使输出y (n)和滤波器期望的响应d (n)之间的误差信号e(n)为最小.自适应滤波器的系数受误差信号的控制,根据e(n)的值和自适应算法自动调整.一旦输入信号的统计规律发生了变化,滤波器能够自动跟踪输入信号的变化,自动调整滤波器的权系数,实现自适应过程,最终达到滤波效果.图1 自适应滤波器的一般形式自适应滤波器的结构可以采用FIR 或IIR 结构,但实际应用中一般采用FIR 型结构,主要原因是FIR 结构的滤波器只包含正向通路,是固有稳定的,实现更容易,其权系数的修正就调节了滤波器的性能,计算量小且很稳定;而IIR 滤波器同时兼有正向通路和反馈通路,内部反馈可能导致滤波器震荡,存在稳定性问题.所以,在自适应滤波器的应用中,一般采用FIR 滤波器.一个自适应的FIR 滤波器的结构可以是横向结构、对称横向结构或格型结构.横向结构是多数情况下采用的最主要的自适应滤波器结构,图2为FIR横向型滤波器结构示意图[5].滤波器输出y(n)可表示为:y(n)=W T(n)X(n)=N-1k=1W k(n)x(n-k)图2 横向型滤波器结构其中,X(n)=[x(n),x(n-1), ,x(n-N+1)]T 为自适应滤波器的输入矢量;W(n)=[w0(n),w1(n), ,w n-1(n)]T为系统的权系数矢量;n为时间序列;N 为滤波器的阶数;T为矩阵转置符.由表达式可以看出输出是两矢量的内积.1.2 横向结构的LMS算法设计自适应滤波器时,确定滤波器的结构之后,就要设计自适应算法,以调整滤波器参数达到最优滤波.自适应算法是根据某种判据来设计滤波器的,其目标是使某一特定的代价函数最小化.自适应算法的种类很多,根据其优化准则的不同可分为两类最基本的算法[6]:最小均方误差(LM S)算法和递推最小二乘(RLS)算法.他们都是根据某种判据来设计的.本文采用的是常用的著名的最小均方误差算法,又称LMS算法,这是由Widrow和H off提出来的.该算法是以最快下降法为原则的迭代算法,其基本思路是使理想信号d(n)与滤波器输出y(n)之差e (n)的平方值的期望E[e2(n)]最小,并据此来修改权系数w(n).误差均方 表示为:=E[e2(n)]=E[(d(n)-y(n))2]对于横向型结构的滤波器,代入y(n)的表达式并采用迭代算法求最佳权系数,得迭代公式为:W(k,n+1)=W(k,n)+2 e(n)X(n-k)这就是Widrow-H off的LM S算法的迭代公式[3],本文采用DSP实现的自适应滤波器就是基于Widrow-H off的LMS算法.式中,X(n-k)为输入信号;n和n+1表示前后2个时刻,k=0,1, ,N-1,N为滤波器的阶数;W(k,n)和W(k,n+1)分别是迭代前后的系数值; 是一个用于控制自适应速度和稳定性的增益常数,也叫收敛因子;e(n)为误差信号.LM S算法调整权系数时不需要进行平方运算和统计平方运算,实现起来很简单.下一时刻权矢量w(n +1)等于当前的权矢量w(n)加上一个修正量.该修正量是误差信号e(n)的加权值,加权系数为2 X(n),正比于当前的输入信号.值得注意的是,对权矢量的估值的所有分量来说,误差信号e(n)是相同的.在自适应滤波器的实际操作中,必须注意自适应步长的选择.由上面介绍的LM S迭代算法可知,欲使其收敛,则自适应步长 的取值范围为:0< <1/ max, max为输入信号采样值X(n)间的相关性矩阵的最大本征值[6].由迭代公式可知,自适应步长 的大小是表征迭代快慢的物理量.采用小的 值收敛慢,但系统稳定,失调也小;采用大的 值收敛相对快,但系统不稳定,引起的失调也大,当 >1/ max时,系统发散.2 自适应滤波器的DSP实现数字信号处理器以其运行速度快、运算精度高、硬件配置强等特点,在现代数字信号处理中得到了广泛应用.基于DSP的自适应滤波器与用硬件实现的滤波器相比有很多优点,其功耗以及体积更小,更容易实现,修改程序使系统很容易升级,功能进一步完善.一个自适应滤波器的实现的复杂程度通常是它所需的乘法次数和阶数来衡量的.大多数DSP都有并行的硬件乘法器、流水线结构、快速的片内存储器以及特殊的运算指令,这些资源使自适应滤波器的实现更容易、更有效.C54x DSP的LM S、ST||MPY和RPT BD 指令可以为自适应滤波器减少代码的执行时间.本文在通用DSP芯片TM S320C5402上编程调试实现了基于LM S算法的64阶自适应滤波器.图3为自适应滤波DSP实现的程序流程图.整个实现过程主要分为3步:(1)滤波运算前的相关运算单元、寄存器以及变量的初始化;(2)根据输入的采样值计算滤波器的输出并求出41第6期 刘 琴等:基于DSP的LM S自适应滤波器的实现图3 自适应滤波DSP实现流程图误差;(3)根据LMS算法的迭代公式更新滤波器参数,有新的采样输入后转到第二步循环执行.在编写程序的初始阶段,首先应该进行自适应系数、缓冲区、变量的初始化,并设置循环缓冲区的地址以及数据和程序段在存储区内的分配.基于LM S自适应算法的输入信号应该同时从输入端口输入,或者利用指令把所需的数据调入指定的存储区间,这些信号既可以直接存储在数据区内(当运行归一化LM S 时,直接从这些存储区内调用),也可以利用数据定义指令直接定义在指定的存储区内.值得注意的是,当利用调用指令调用上一程序运行的结果时,主程序一定要保证在数据区的分配上不再定义上一程序的输出数据空间,否则原来存入的数据可能会改变,进而导致程序运行结果不正确.在本程序中,采用直接把数据定义到所指定的存储空间的方法,例如输入信号x(n)被定义在片内RAM中0800H开始的一段字长为128的空间内,期望的响应数据d(n)被定义在以0880H开始的空间内,输出数据y(n)被分配在从0900H开始的128字长的数据区内.自适应滤波器的系数在每次迭代后都要重新修改赋值,所以也要存放在可读写的片内RAM中,而不能存放在ROM区中.此外,还有误差信号e(n),步长因子 等.为了避免数据区的重叠,可以把各个数据区之间留一定的保留空间.按照上述设计思想,我们在通用DSP芯片TM S320C5402上具体实现了基于LM S算法的64阶自适应滤波器,程序输入的测试信号是由数字正弦波振荡器(采用DSP和相应算法软件实现,只需简单改变参数即可产生不同频率的正弦波以满足自适应滤波器不同的输入要求)产生的500H z正弦波,如图4所示.自适应滤波器采样频率为8000H z,实现对128个采样点进行自适应滤波,自适应步长因子 在取值范围内取0.01,程序运行后自适应滤波器的输出信号如图5所示.可以看出经过一段时间的自适应后滤波器的输出便能够 跟踪 输入信号的频率和幅度,与滤波器的期望输出信号相一致.图4 自适应滤波器的输入(0.5kH z正弦波)图5 自适应滤波器输出波形图6给出了自适应过程中滤波器的系数变化波形.自适应滤波器之所以能够 聪明 地跟踪输入信号,就在于算法不断地根据实际输出和期望输出的误差调整滤波器的系数,从而使输出跟踪输入.程序调试过程中改变自适应滤波器输入正弦信号的频率或将输入改为阶跃信号等其他不同的信号,滤波器的输出同样能(下转第50页)v enience to find relevant inform ation.T his paper com bines the ex isting classification techno log y of w eb page w hile study ing tr aditional search engines techno logy ,presents an intellectual search eng ines system mo del based on auto classificatio n,and analyses vector space model,featur e ex traction,and autom ation catego riza -tion.Key words: sear ch engine;feature selection;fuzzy -rough sets;autom ation categ orizatio n(上接第42页)图6输入为0.5kHz 正弦波时自适应滤波器的系数变化波形够跟踪输入(波形在此不再列出),这表明基于DSP 实现的自适应滤波器能有效地在未知环境中跟踪时变的输入信号,使输出信号达到最优.4 结 语本文研究了利用T MS320C5402定点DSP 实现LM S 算法的自适应滤波器的方法,并用DSP 汇编语言编程实现了一个64阶的FIR 横向结构的数字自适应滤波器。
龙源期刊网 自适应滤波器LMS算法的DSP实现作者:马俊段新文赵建飞来源:《现代电子技术》2008年第13期摘要:滤波器在数字信号处理中有着广泛的应用,针对常规滤波器因具有固定的滤波器系数,对某些信号处理系统不能实现最优滤波,设计了一种自适应滤波器及实现的软件算法,并通过DSP得到验证。
结果表明该滤波器实现方法简单、不依赖模型,具有较强的稳健性。
关键词:自适应滤波器;LMS算法;Realization ofAdaptiveFilter LMS Algorithm by DSP(Qinghai Normal University,Xining,810008,China)Abstract:Filter is widely used in digital signal processing.For the conventional filter has a fixed filter coefficients,optimal filtering can not be achieved in some signal processing system.The design and the software algorithms of the adaptive filter is realized.The filter has been tested and adopted in DSP.Experiments show that the realization method of the filter is simple.Th is filter doesn′t rely on model,and has strong stability.Keywords:adaptive filter;LMS algorithm;DSP;FIR1 引言在数字信号处理中,滤波技术占有极其重要的地位。
数字滤波与模拟滤波相比具有许多优点,如:可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波器无法克服的电压漂移,温度漂移和噪声等问题。
摘要滤波是电子信息处理领域的一种最基本而又极其重要的技术。
在有用信号的传输过程中,通常会受到噪声或干扰的污染。
利用滤波技术可以从复杂的信号中提取所需要的信号,同时抑制噪声或干扰信号,以便更有效地利用原始信号。
滤波器实际上是一种选频系统,它对某些频率的信号予以很小的衰减,让该部分信号顺利通过;而对其他不需要的频率信号则予以很大的衰减,尽可能阻止这些信号通过。
在电子系统中滤波器是一种基本的单元电路,使用很多,技术也较为复杂,有时滤波器的优劣直接决定产品的性能,所以很多国家非常重视滤波器的理论研究和产品开发。
本文从自适应滤波器的基本原理、算法及设计方法入手,其中自适应滤波器的算法是整个系统设计的核心。
本设计采用改进的LMS算法设计FIR结构自适应滤波器,并采用MATLAB进行仿真,最后用DSP实现了自适应滤波器。
关键词:DSP(数字信号处理器);自适应滤波器;LMS算法;FIR结构滤波器目录关键词 (1)引言 (3)1 自适应滤波器简介 (4)2 自适应滤波原理 (4)3 自适应滤波算法 (6)4 自适应滤波算法的理论仿真与DSP实现 (9)4.1MATLAB仿真 (9)4.2 DSP的理论基础 (10)4.3 自适应滤波算法的DSP实现 (12)5 结语 (15)参考文献 (16)附录自适应滤波子程序 (17)引言滤波是电子信息处理领域的一种最基本而又极其重要的技术。
在有用信号的传输过程中,通常会受到噪声或干扰的污染。
利用滤波技术可以从复杂的信号中提取所需要的信号,同时抑制噪声或干扰信号,以便更有效地利用原始信号。
滤波器实际上是一种选频系统,它对某些频率的信号予以很小的衰减,让该部分信号顺利通过;而对其他不需要的频率信号则予以很大的衰减,尽可能阻止这些信号通过。
在电子系统中滤波器是一种基本的单元电路,使用很多,技术也较为复杂,有时滤波器的优劣直接决定产品的性能,所以很多国家非常重视滤波器的理论研究和产品开发。
基于DSP混合编程的LMS自适应滤波算法实现黄勇;吴运金;宋俊才【摘要】This paper analyzes the basic principle of LMS adaptive filtering algorithm, and combining with the example of 2FSK signal demodulation, realizes the LMS adaptive filtering algorithm adopting C language and mixed programming method on the device TMS320VC5416. The result shows that the realized method of the LMS adaptive filtering algorithm has advantages such as simple software interface, fast running speed, easily realizing real-time signal processing.%本文分析了LMS自适应滤波算法的基本原理,并结合2FSK信号解调的实例,在TMS320VC5416器件上分别采用C语言和混合编程方法对LMS自适应滤波算法进行了实现。
结果表明,采用混合编程的LMS自适应滤波实现方法具有软件接口简单,运行速度快,易于进行实时信号处理等特点。
【期刊名称】《自动化博览》【年(卷),期】2014(000)005【总页数】4页(P90-93)【关键词】LMS算法;DSP;混合编程【作者】黄勇;吴运金;宋俊才【作者单位】中国船舶重工集团公司第七一○研究所,湖北宜昌443003;中国船舶重工集团公司第七一○研究所,湖北宜昌443003;中国船舶重工集团公司第七一○研究所,湖北宜昌443003【正文语种】中文【中图分类】TP2731 引言在许多数字电子系统中,为了提取信号有用信息,我们可以使用数字信号处理器件(DSP)对采样后的数字信号进行算法处理。
LMS自适应滤波器的DSP实现LMS(最小均方)自适应滤波器是一种常用的数字信号处理(DSP)技术,用于降噪、信号增强和系统辨识等应用。
本文将详细介绍LMS自适应滤波器的DSP实现。
在DSP实现LMS自适应滤波器时,首先需要选择合适的数字信号处理器。
常用的信号处理器有FPGA和DSP芯片两种。
FPGA芯片具有较大的并行计算能力和灵活可编程性,适合用于实现复杂的算法和系统。
而DSP芯片则更适合用于实现实时的信号处理任务,因为其专门设计用于数字信号处理,具有更低的功耗和更好的实时性能。
DSP实现LMS自适应滤波器的关键是实现滤波器的更新算法。
常用的更新算法有递推最小二乘(RLS)算法和快速递归(QR)算法。
在LMS算法中,每个采样点的更新公式如下:w(n+1)=w(n)+μ*e(n)*x(n)其中,w(n)表示第n个采样点时的滤波器系数,μ是自适应步长参数,e(n)是误差信号,x(n)是输入信号。
DSP实现LMS自适应滤波器的主要步骤为:1.初始化滤波器系数:将滤波器系数初始化为适当的值,通常为0。
2.获取输入信号:通过ADC(模数转换器)从外部设备(如麦克风、传感器)读取模拟信号,并进行数字化处理。
3.计算输出信号:将输入信号与滤波器系数相乘,得到滤波器的输出信号。
4.计算误差信号:将期望输出信号与实际输出信号之间的差异作为误差信号。
5.更新滤波器系数:根据误差信号和输入信号,使用LMS更新算法更新滤波器系数。
6.输出结果信号:将滤波器的输出信号通过DAC(数模转换器)转换为模拟信号,输出到外部设备(如喇叭、显示器)。
在DSP实现LMS自适应滤波器时,需要注意以下几点:1.选择合适的自适应步长参数:自适应步长参数μ的选择直接影响滤波器的收敛性和稳定性。
通常需要根据具体应用和性能要求进行调整。
2.处理滤波器的边界效应:滤波器系数更新时,需要考虑边界效应。
一种常见的方法是在输入信号和滤波器的右侧增加一些零值。
《DSP系统课程设计》利用DSP实现自适应滤波小组成员通信0X0XXXXXXXXX通信0X0XXXXXXXXXX2011-1-12利用DSP实现自适应滤波摘要:自适应滤波不仅能够选择信号,而且能够控制信号的特性。
自适应滤波器具有跟踪信号和噪声变化的能力,它的系数能够被一种自适应算法所修改。
利用DSP可以实时地对信号进行自适应滤波。
本设计利用DSP的DMA方式进行信号采集和信号输出,同时对外部输入的信号进行数字滤波。
首先利用DSP的DMA方式对外部信号进行实时采集,外部模拟信号先进行A/D转换,利用MCBSP的接收寄存器接收数据,编写程序,调用DSPLIB中的lms滤波函数,对信号进行自适应滤波。
滤波后信号存放数据区满发出中断,请求信号输出。
利用DMA方式将传输输出数据,经D/A转换后输出。
关键词:自适应滤波一.自适应滤波器的基本原理常规滤波器具有特定的特性,对于输入信号根据这个滤波器特性产生相应的输出。
也就是,先有了滤波器构成的权系数,然后决定相应输出值。
但有些实际应用往往是反过来要求的,即对滤波器输出的要求是明确的,而滤波器特性是无法预先知道的。
例如长话系统,回波相消器的理想输出是无回波信号,这个要求是明确的,而系统本身却不能一开始就确定下来,因为它取决于长话系统话路传输条件的变化,像这样的应用技术就必须依赖自适应滤波技术。
一个自适应滤波器,其权系数可以根据一种自适应算法来不断修改,使系统的冲击响应能满足给定的性能判据。
如语音ADPCM 编码中,线性预测自适应滤波器就要尽量实现误差信号e(n)于输入信号x(n)的前端时刻值x(n-1)、x(n-2)、…等等线性无关。
并由此作为判据不断调节滤波器的权系数。
总的来讲,自适应滤波器有两个独立的部分:一个按理想模式设计的滤波器;一套自适应算法,用来调节滤波器的权系数,使滤波器的性能达到要求。
如图所示,其中输入信号x(n)通过滤波器产生输出信号y(n),而自适应算法调节系数使误差信号e(n)达到最小。
Vol.11No.9Sep.2009第11卷第9期2009年9月 2009.90引言自适应滤波器可广泛应用于系统识别、信号处理和数字通信等许多领域。
而超大规模集成电路和FPGA 的飞速发展,也促进了自适应滤波技术的进步。
此外,由于其对干扰频率不敏感,且其权值调整是基于对系统参数的优化,因此,自适应滤波器仍然越来越多地受到人们的关注。
1LMS 自适应滤波器1.1LMS 算法最小均方误差(LMS)算法具有计算量小、易于实现等优点,因此,在实践中被广泛应用。
LMS 算法的基本思想是调整滤波器自身的参数,使滤波器的输出信号与期望输出信号之间的均方误差最小,并使系统输出为有用信号的最佳估计。
实质上,LMS 可以看成是一种随机梯度或者随机逼近算法,可以写成如下的基本迭代方程:y k =X TW K εk =d k -y kW K+1=W K +2μεK X KK K K K K K K K K K K K K其中,μ为步长因子,是控制稳定性和收敛速度的参量。
从上式可以看出,该算法结构简单、计算量小且稳定性好,但固定步长的LMS 算法在收敛速度、跟踪速率及权失调噪声之间的要求相互制约。
为了克服这一缺点,人们提出了各种变步长的LMS 改进算法,主要是采用减小均方误差或者以某种规则基于时变步长因子来跟踪信号的时变,其中有归一化LMS 算法(NLMS)、梯度自适应步长算法、自动增益控制自适应算法、符号—误差LMS 算法、符号—数据LMS 算法、数据复用LMS 算法等。
1.2LMS 自适应滤波器的结构原理自适应滤波是在部分信号特征未知的条件下,根据某种最佳准则,从已知的部分信号特征所决定的初始条件出发,按某种自适应算法进行递推,在完成一定次数的递推之后,以统计逼近的方式收敛于最佳解。
当输入信号的统计特性未知,或者输入信号的统计特性变化时,自适应滤波器能够自动地迭代调节自身的滤波器参数,以满足某种准则的要求,从而实现最优滤波。
LMS自适应滤波器的DSP实现LMS自适应滤波器的DSP实现摘要在传统的LMS(Least Mean Square)算法中,固定步长的选取影响收敛速度与稳态误差,而且两者不可兼得。
因此,为在相应的领域内合理使用此类算法,针对这个问题在对多种自适应滤波LMS类算法进行原理分析后,得出此类算法在不同领域的特点,对今后不同人群的合理使用提供了良好条件。
为了达到最佳的滤波效果,使自适应滤波器在工作环境变化时自动调节其单位脉冲响应特性,提出了一种自适应算法:最小均方算法(LMS算法) 。
这种算法实现简单且对信号统计特性变化具有稳健性,所以获得了极为广泛的应用。
针对用硬件实现LMS算法的自适应滤波器存在的诸多缺点,采用Matlab工具对基于LMS算法的自适应滤波器进行了仿真试验。
仿真结果表明,应用LMS算法的自适应滤波器不仅可以实现对信号噪声的自适应滤除,还能用于系统识别。
关键词:自适应滤波;LMS算法;Matlab;FIRLMS adaptive filter of the DSP toachieveAbstractThe convergent speed and steady state error are affected by the fixed step size and can not be improved simultaneously in classical LMS algorithm. Therefore, to use it correctly in relevant fields, for this contradiction, after analyzing a variety of LMS adaptive filtering algorithms on principle, the characteristic of these algorithms in different fields is presented, this also provides different people`s correct use with a better foundation.In order to achieve the optimum filtering effect, it makes the adaptive filter adjust its units impulse response characteristics automatically on the working environment changed. This paper present s a kind of adaptive algorithm: Least Mean Square (LMS algorithm).As the algorithm is realized simply and has stability with respect to the change of signal statistical characteristics, LMS algorithm is used widely. According to disadvantages of adaptive filter to realize LMS using hardware adaptive filter is simulated which is based on LMS algorithm with Matlab. Result s of simulation show that this kind of adaptive filter not only can filter the signal noise, but also recognize the system.Keywords:adaptive filtering;LMS algorithm;Matlab;FIR.目录1 绪论 (1)1.1研究目的和意义 (1)1.2研究背景及现状 (1)1.3本文研究内容 (2)2 自适应滤波LMS 类算法种类 (3)2.1传统LMS算法 (3)2.2变步长的LMS算法 (3)2.3变化域的LMS算法 (4)2.4DSP (5)2.5MATLAB (6)2.6本章小结 (6)3 自适应滤波器的DSP实现 (7)3.1DSP实现 (7)3.1.1 流程图 (7)3.1.2 设计思想 (8)3.2程序实现结果 (9)3.3本章小结 (11)4 自适应滤波器的算法实现 (12)4.1自适应滤波器的MATLAB仿真 (12)4.2C语言的实现 (13)4.3汇编的实现 (14)4.4LMS应用实例 (19)4.4本章小结 (20)5 总结和展望 (22)5.1总结 (22)5.2工作展望 (22)参考文献 (23)1 绪论1960 年Widrow 和Hoff 提出最小均方误差 (LMS) 算法。
LMS 算法具有计算量小,结构简单,易于实现等诸多优点,尤其是这种算法是最先由统计分析法导出的一种实用算法,它是一类自适应滤波器的基础,因此在很多领域得到了广泛的应用【1】。
1.1 研究目的和意义自适应滤波器属于现代滤波器的范畴,他是20 世纪40 年代发展起来的自适应信号处理领域的一个重要应用,其设计方法对滤波器的性能影响很大【2】。
实际上自适应滤波器是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要事先知道关于输入信号和噪声的统计特性的知识,他能够在自己的工作过程中逐渐“了解”或估计出所需的统计特性,并以此为依据自动调整自己的参数,以达到最佳滤波效果。
一旦输入信号的统计特性发生变化,他又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳。
因此,自适应滤波器具有“自我调节”和“跟踪”能力。
1.2 研究背景及现状FIR和IIR是两种具有固定系数的滤波器,它们的特性都是已知的。
但是在许多DSP 应用场合中,信号所处的系统是时变的,信号本身的特性也是时变的,或者无法预先知道信号和噪声的特性,此时使用固定参数的滤波器,无法实现最优的设计效果。
因此设计能够满足系统或环境动态变化的滤波器成为研究热点。
一方面,这种滤波器的性能要具有自学习或者训练能力,能随着时间作相应的变化或更新;更一方面,滤波器的参数调整能够自适应递推更新,避免大计算量的运算,符合实时处理的要求。
这类滤波器可以统称为自适应滤波器【3】。
自适应滤波器的研究包括滤波器的结构设计、滤波器的自适应算法、算法的统计性能分析以及在各种场合下的应用问题。
自适应滤波器可以采用FIR和IIR结构。
由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。
用FIR具体实现时,还可以分为横向结构、对称横向结构和格型结构等几种。
自适应算法通过调整滤波器系数的方法实现自适应滤波器的特性变化,这是自适应滤波器性能好坏的基础。
自适应算法的设计需要满足一定的最优设计准则,现在最常用的是均方误差最小准则,及时得估计的均方误差最小。
这种理论称为最佳线性滤波理论,并得到一套完整的递推估计算法,即Kalman滤波理论。
这两种理论是现在自适应滤波中研究最多的理论。
1.3 本文研究内容本文重点介绍最小均方差(LMS)自适应算法。
在传统的LMS(Least Mean Square) 算法中,固定步长的选取影响收敛速度与稳态误差,而且两者不可兼得。
因此,为在相应的领域内合理使用此类算法,针对这个问题在对多种自适应滤波LMS 类算法进行原理分析后,得出此类算法在不同领域的特点,对今后不同人群的合理使用提供了良好条件。
为了达到最佳的滤波效果,使自适应滤波器在工作环境变化时自动调节其单位脉冲响应特性,提出了一种自适应算法:最小均方算法(LMS算法)。
这种算法实现简单且对信号统计特性变化具有稳健性,所以获得了极为广泛的应用。
针对用硬件实现LMS 算法的自适应滤波器存在的诸多缺点,采用Matlab 工具对基于LMS 算法的自适应滤波器进行了仿真试验。
仿真结果表明,应用LMS 算法的自适应滤波器不仅可以实现对信号噪声的自适应滤除,还能用于系统识别。
2 自适应滤波LMS 类算法种类2.1 传统LMS算法20 世纪60 年代初由Widrow 和Hoff 提出的最小均方误差(LMS) 算法,因其具有计算量小、易于实现等优点而在实践中被广泛采用【4】。
基于最速下降法的最小均方误差(LMS) 算法的迭代公式如下:(2-1) 式(2-1)中,W(n)为n时刻自适应滤波器的权矢量,W(n) = [ w0(n),w1(n) ,…,wN-1(n)]T,N为自适应滤波器的阶数,X(n)为n时刻自适应滤波器的参考输入矢量,由最近N个信号采样值构成:(2-2) 式(2-2)中d(n)是期望的输出值;e(n)为自适应滤波器的输出误差调节信号(简称失调信号);μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。
LMS 算法收敛的条件为:0 <μ< 1/λmax ,λmax 是输入信号自相关矩阵的最大特征值。
2.2 变步长的LMS算法初始收敛速度、时变系统跟踪能力及稳态失调是衡量自适应滤波算法优劣的3 个最重要的技术指标。
对于传统LMS 算法,收敛因子μ为常值,因而收敛速度和跟踪速度与失调量是矛盾的,要想得到较快的收敛速度和跟踪速度可选用较大的μ值,这将导致较大的失调量;如果要满足失调量的要求,则收敛速度将受到制约。
因此,人们提出了许多变步长自适应滤波算法来克服这一矛盾。
R.D.Gitlin曾提出了一种变步长自适应滤波算法,其步长因子μ随迭代次数n 的增加而逐渐减小。
Yasukawa等提出了使步长因子e(n) 正比于误差信号e(n)大小的自适应滤波算法【5】。
为了改善滤波器的性能,覃景繁等人提出了一种新的变步长算法SVSLMS 算法,该算法的步长μ(n)是e(n)的Sigmoid 函数:(2-3) 式(2-3)中该算法能同时获得较快的收敛速度、跟踪速度和较小的稳态误差。
然而,该Sigmoid函数过于复杂,且在误差e(n)接近零处变化太大,不具有缓慢变化的特性,使得SVSLMS算法在自适应稳态阶段仍有较大的步长变化,这是该算法的不足。
高鹰等给出了另一满足步长调整原则的函数,即变步长μ(n) 是e(n)的如下函数:(2-4) 式(2-4)中,参数α> 0 控制函数的形状,参数β> 0 控制函数的取值范围。
该函数比Sigmoid 函数简单,且在误差e(n)接近零处具有缓慢变化的特性,克服了Sigmoid 函数在自适应稳态阶段步长调整过程中的不足。
2.3 变化域的LMS算法当输入信号具有高度的相关性时,LMS算法的收敛性能降低,这是由于LMS算法的收敛性能依赖于输入信号自相关矩阵的特征值发散程度。