毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc

上传人:仙人指路1688 文档编号:3979456 上传时间:2023-03-30 格式:DOC 页数:34 大小:561KB
返回 下载 相关 举报
毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc_第1页
第1页 / 共34页
毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc_第2页
第2页 / 共34页
毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc_第3页
第3页 / 共34页
毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc_第4页
第4页 / 共34页
毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于LMS自适应滤波器的MATLAB实现.doc(34页珍藏版)》请在三一办公上搜索。

1、 毕 业 论 文题 目 基于LMS自适应滤波器的MATLAB实现 学 院: 电气 系专 业: 应用电子专业 班 级: 06222班 学 号: 32(号) 学生姓名: 指导教师: 起讫日期: 20094.17-2009.6.1 成都电子机械高等专科学校二九 年 六 月 五 日基于LMS自适应滤波器的MATLAB实现 专业:应用电子 学号:0622232 学生姓名:郭永林 指导教师:赵茂林摘 要数字滤波器在数字信号处理中的应用广泛,是数字信号处理的重要基础。自适应滤波器可以不必事先给定信号及噪声的自相关函数,它可以利用前一时刻已获得的滤波器参数自动地调节现时刻的滤波器参数使得滤波器输出和未知的输入

2、之间的均方误差最小化,从而它可以实现最优滤波。自适应滤波器的算法有很多,有RLS(递归最小二乘法)和LMS(最小均方算法)等。自适应LMS算法是一种很有用且很简单的估计梯度的方法,在信号处理中得到广泛应用。本论文主要研究了自适应滤波器的基本结构和原理,然后介绍了最小均方误差算法(LMS算法),并完成了一种基于MATLAB平台的自适应LMS自适应滤波器的设计。通过仿真,我们实现了LMS自适应滤波算法,并从结果得知步长和滤波器的阶数是滤波器中很重要的两个参数,并通过修改它们证实了这一点,其中步长影响着收敛时间,而且阶数的大小也会大大地影响自适应滤波器的性能。关键字:自适应滤波器 MATLAB LM

3、S 仿真The Realization of Adaptive Filter Based on LMS by Applying MATLABAbstractDigital filter which is widely used is the important basement of the digital signal processing. Adaptive filter can adjust its coefficients automatically to minimize the mean-square error between its output and that of an

4、unknown input, unnecessary to know the autocorrelation functions of signal and noise in advance, hence it can realize linearly optimum filtering.Adaptive filter has many different algorithms such as RLS(Recursive Least Square) and LMS(Least Mean-Square) algorithms. Algorithm of adaptive LMS is a sim

5、ple and very useful method which is used to estimate gradient. It has been widely applied in the signal processing areas.This paper introduces the structure and the principle of the adaptive filter, and then introduces the LMS algorithm, at the same time, it has completed the design of adaptive LMS

6、filter based on MATLAB platform and realized to decrease noise in signal processing.Through the simulations, we realize the algorithm of adaptive LMS. Moreover, we can understand there exist two very important parameters, step-size and filter order M through the results. We also demonstrate that how

7、 the step-size affects the convergence rate toward the unknown system, and how the filter order M affects the performance of adaptive filter by changing these two parameters.Keywords: Adaptive Filter MATLAB LMS Simulation目 录摘 要IAbstractII目 录III第一章 绪论11.1 滤波器概述11.2数字滤波器11.3 滤波器发展11.4 小结2第二章 LMS自适应滤波器

8、32.1 自适应滤波器32.2 自适应滤波器设计原理32.3 自适应滤波器的结构及LMS算法42.3.1 自适应滤波器结构42.3.2 LMS算法52.4 小结11第三章 仿真软件 MATLAB 简介123.1 MATLAB的概况123.1.1 MATLAB产生的历史背景123.1.2 MATLAB的语言特点133.2 MATLAB仿真的基本流程153.3 小结16第四章 LMS自适应滤波器的MATLAB实现174.1 自适应滤波器出现的意义174.2 自适应滤波器的实现174.2.1 最速下降法的仿真174.2.2 LMS算法的MATLAB仿真184.2.2.1 基于LMS算法的自适应滤波器

9、设计18 4. 2.2. 2 LMS算法中正交性原理分析 . 19 4.2.2.3 LMS算法的MATLAB仿真结果 . 204.2.2.4 对LMS算法参数的分析研究204.3 小结24第五章结论以及展望25参考文献26附录(程序) 27致 谢28第一章 绪论1.1滤波器概述对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器。其功能就是得到一个特定频率或消除一个特定频率。1.2数字滤波器滤波器有模拟滤波器和数字滤波器,在离散系统中广泛应用数字滤波器,它的作用是利用离散时间系统的特性对输入信号波形或频率进行加工处理。或者说,把输入信号变成一定的输出信号,从而达到改变信号频谱的目的

10、。1.3 滤波器发展滤波器可分为线性滤波器和非线性滤波器两种。若滤波器输出端滤波,平滑或预测的量是它的输入观测量的线性函数,则认为该滤波器是线性的;否则,认为该滤波器是非线性的。在解线性滤波问题的统计方法中,通常假设已知有用信号及其附加噪声的某些统计参数,而且需要设计含噪数据作为其输入的线性滤波器,使得根据某种统计准则噪声对滤波器的影响最小。实现该滤波器优化问题的一个有用方法是使误差信号的均方值最小化。维纳滤波器在均方误差意义上是最优的。误差信号均方值相对于线性滤波器可调参数的曲线通常称为误差性能曲面。该曲面的极小点即为维纳解。维纳滤波器不适合于分析非平稳性的信号和/或噪声。当出现的信号和/或

11、噪声是非平稳的时候,必须假设最优滤波器为时变形式。一种十分成功的解决方案是采用卡尔曼滤波器。在各种工程应用中该滤波器是一个强有力的系统。维纳滤波器和卡尔曼滤波器的线性滤波器理论已经在连续时间信号和离散时间信号文献中获得广泛的研究。然而,由于数字计算机的广泛普及和数字信号处理器件与日俱增的应用等技术原因,离散时间线性滤波器通常更为人们所乐意使用。维纳滤波器的设计要求所处理数据统计方面的先验知识。只有当输入数据的统计特性与滤波器设计所依赖的某一先验知识匹配时,该滤波器才是最优的。当这个信息完全未知时,就不可能设计维纳滤波器,或者该设计不再是最优的。在这种情况下,可采用的一个直接方法是“估计和插入”

12、过程。该过程包含两个步骤,首先是“估计”有关信号的统计参数,然后将所得到的结果“插入”非递归公式以计算滤波器参数。对于实时运算,该过程的缺点是要求特别的精心制作,而且要求价格昂贵的硬件。为了消除这个限制,可采用自适应滤波器。因为自适应滤波器依靠递归算法进行运算,采用这样一种系统,意味着滤波器是自设计的。递归算法将从某些预先确定的初始条件集出发,这些初始条件代表了人们所知道的上述环境的任何一种情况。在非平稳环境下,只要这种变化是足够缓慢的,由于它能够跟踪输入数据统计特性随时间的变化,因此,该递归算法提供了一种跟踪能力。最早的自适应滤波器可以追溯到二十世纪五十年代末期,在这个时期大量的研究者独立工

13、作在这种滤波器的不同应用领域。依赖于这类早期工作,出现了最小均方(LMS)算法,它成为运行横向滤波器的一种简单且有效的算法。LMS算法是Widrow和Hoff在1959年研究自适应线性元素的模式识别方案时发明的,这些自适应线性元素在文献中通常称为Adaline。LMS算法是一种随机梯度算法,它在相对于抽头权值的误差信号平方幅度的梯度方向上迭代调整每个抽头权值。自适应信号处理的应用有很多,包括自适应均衡,语音编码,谱分析,自适应噪声消除,自适应波束成形等等。自适应滤波器可提供一种十分吸引人的解决方法,而且其性能远优于用常规方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可能提供的

14、信号处理能力。因此,自适应滤波器在当前和未来都会成功地应用于诸如通信,控制,雷达,声纳,地震和生物医学工程等诸多领域。1.4 小结本章简要地总结了滤波器的类型和概念等等,并介绍了线性最优滤波器和自适应滤波器的发展以及应用。第二章 LMS自适应滤波器2.1 自适应滤波器60年代,美国B.Windrow和Hoff首先提出了主要应用于随机信号处理的自适应滤波器算法,从而奠定了自适应滤波器的发展。所谓自适应滤波器,即利用前一时刻已获得的滤波器参数等结果,自动地调节现时刻的滤波器参数,以适应信号与噪声未知的或随时间变化的统计特性,从而实现最优滤波。自适应信号处理主要是研究结构可变或可调整的系统,它可以通

15、过自身与外界环境的接触来改善自身对信号处理的性能。通常这类系统是时变的非线性系统,可以自动适应信号传输的环境和要求,无须详细知道信号的结构和实际知识,无须精确设计处理系统本身。自适应系统的非线性特性主要是由系统对不同的信号环境实现自身参数的调整来确定的。自适应系统的时变特性主要是由其自适应响应或自适应学习过程来确定的,当自适应过程结束和系统不再进行时,有一类自适应系统可成为线性系统,并称为线性自适应系统,因为这类系统便于设计且易于数学处理,所以实际应用广泛。本文研究的自适应滤波器就是这类滤波器。自适应信号处理的应用领域包括通信、雷达、声纳、地震学、导航系统、生物医学和工业控制等。自适应滤波器是

16、相对固定滤波器而言的,固定滤波器属于经典滤波器,它滤波的频率是固定的,自适应滤波器滤波的频率则是自动适应输入信号而变化的,所以其适用范围更广。在没有任何关于信号和噪声的先验知识的条件下,自适应滤波器利用前一时刻已获得的滤波器参数来自动调节现时刻的滤波器参数,以适应信号和噪声未知或随机变化的统计特性,从而实现最优滤波。自适应滤波器出现以后,发展很快。由于设计简单、性能最佳,自适应滤波器是目前数字滤波器领域是活跃的分支,也是数字滤波器研究的热点。主要自适应滤波器有:递推最小二乘(RLS)滤波器、最小均方差(LMS)滤波器、格型滤波器、无限冲激响应(IIR)滤波器。实际情况中,由于信号和噪声的统计特

17、性常常未知或无法获知,这就为自适应滤波器提供广阔的应用空间、系统辨识、噪声对消、自适应谱线增强、通信信道的自适应均衡、线性预测、自适应天线阵列等是自适应滤波器的主要应用领域。2.2 自适应滤波器设计原理自适应滤波器是以最小均方误差为准则,由自适应算法通过调整滤波器系数,以达到最优滤波的时变最佳滤波器。设计自适应滤波器时,可以不必预先知道信号与噪声的自相关函数,在滤波过程中,即使噪声与信号的自相关函数随时间缓慢变化,滤波器也能自动适应,自动调节到满足均方误差最小的要求。自适应滤波器主要由参数可调的数字滤波器和调整滤波器系数的自适应算法两部分构成自适应滤波器的一般结构如图1所示。图1中d(k)为期

18、望响应,x(k)为自适应滤波器的输入,y(k)为自适应滤波器的输出,e(k)为估计误差,e(k)=d(k)-y(k),前置级完成跟踪信号的选择,确定是信号还是噪声;后置级根据前置级的不同选择对数字滤波器输出作不同的处理,以得到信号输出。自适应滤波器的滤波器系数受误差信号e(k)控制,e(k)通过某种自适应算法对滤波器参数进行调整,最终使e(k)的均方值最小。因此,实际上,自适应滤波器是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要事先知道关于输入信号和噪声的统计特性的知识,它能够在自己的工作过程中逐渐“了解”或估计出所需的统计特性,并以此为依据自动调整自己的参数,以达到最佳滤波效果。

19、一旦输入信号的统计特性发生变化,它又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳。参数可调数字滤波器自适应滤波器算法+-d(k)e(k)y(k)图1 自适应滤波器的基本结构2.3自适应滤波器的结构及LMS算法2.3.1 自适应滤波器结构自适应滤波器的结构有FIR和IIR两种。FIR滤波器是一种非递归系统,即当前输出样本仅是过去和现在输入样本的函数,其冲击响应是一个有限长序列,并且仅在原点处有极点;IIR滤波器是递归系统,即当前输出样本是过去输出和过去输入样本的函数,并且其冲击响应具有无限的持续时间。因为FIR滤波器除原点外,只有零点没有极点,因此其具有很好的线性相位,即这种滤波器不

20、会给信号带来相位失真,而IIR的相位响应是非线性的;另外,由于FIR滤波器是非递归的,稳定性比较好,而IIR滤波器的稳定性不能得到保证,并且实现起来也比较复杂;由于IIR滤波器存在稳定性的问题,并且实现起来也比较复杂。因此本设计采用FIR滤波器。自适应FIR滤波器结构又可分为3种结构类型:横向型结构、对称横向型结构以及格形结构,由于FIR滤波器横向结构的算法具有容易实现、计算量少等优点,在对线性相位要求不严格、收敛速度不是很快的场合,多采用FIR作为自适应滤波器横向结构。故本设计采用这种FIR横向滤波器结构作为自适应滤波器的结构,如图2示+W2(k)+y(k)X(k-M+1)WM-1(k)Wo

21、(k)W1(k)Z-1Z-1Z-1+自适应算法图2 FIR横向滤波器结构图设其中,为自适应滤波器的输入矢量;是权系数矢量,即自适应滤波器的冲激响应;y(k)为自适应滤波器的输出矢量。T为矩阵转置符,k为时间序列,M为滤波器的阶数。自适应滤波器除包括一个按照某种结构设计的滤波器外,还有一套自适应的算法。自适算法是根据某种判断来设计滤波器的。该算法包括最小均方算法(LMS)、最小高阶均方算法(LMF)、最小平方算法(OLS)、递推最小算法(RLS)等等。本文主要介绍LMS(Least Mean Squares,最小均方)自适应算法的原理。2.3.2LMS算法(1)LMS算法描述LMS算法的性能准则

22、是采用瞬时平方误差性能函数代替均方误差性能函数,其实XT (k) 质是以当前输出误差、当前参考信号和当前权系数求得下个时刻的权系数。其输出信号、输出误差及权系数的计算公式为: = = 式中表示第k时刻参考信号矢量,,k为迭代次数,为滤波器的阶数。表示第时刻的输入信号矢量,y(k)、e(k)分别表示第时刻的输出信号与输出误差,表示时刻权系数矢量,。表示LMS算法步长收敛因子。自适应滤波器收敛的条件是x。其中,是输入信号的自相关矩阵的最大特征值。的选取必须在收敛速度和失调之间取得较好的折中,既要具有较快的收敛速度,又要使稳态误差最小。它控制了算法稳定性和自适应速度,如果很小,算法的自适应速度会很慢

23、;如果很大,算法会变得不稳定。由于LMS算法结构简单、计算量小、稳定性好,因此被广泛应用于系统辨识、信号增强、自适应波束形成、噪声消除以及控制领域等。(2)基本LMS算法构成自适应数字滤波器的基本部件是自适应线性组合器,如图 8-1 的所示。设线性组合 器的个输入为,其输出是这些输入加权后的线性组合,即。+ . . ;+_+图3 自适应线性组合器定义权向量且在图(1)中,令d(k)代表“所期望的响应”,并定义误差信号写成向量形式:误差平方为:上式两边取数学期望后,得均方差:(2.1)定义互相关函数行向量:=和自相关函数矩阵则均方误差(2.1)式可表述为: (2.2)这表明,均方误差是权系数向量

24、的二次函数,它是一个中间向上凹的抛物形曲面,是具有唯一最小值的函数。调节权系数使均方误差最小,相当于沿抛物形曲面下降找到最小值。可以用梯度来求该最小值。将式(2.2)对权系数求导数,得到均方误差函数的梯度 令,即可求出最佳仅系数向量: (2.3)将Wopt代入式(2.3)得最小均方误差:利用(2.3)式求最佳权系数向量的精确解需要知道和的先验统计知识,而且还需要进行矩阵求逆等运算。Windrow and Hoff提出了一种在这些先验统计知识未知时求Wopt的近似的方法,习惯上称为Windrow and Hoff LMS算法。这种算法的根据是最优化方法中的最速下降法。根据最速下降法,“下一时刻”

25、权系数向量应该等于“现时刻”权系数向加上一个负均方误差梯度-(k)的比例项,即式中,是一个控制收敛速度与稳定性的常数,称之为收敛因子。 不难看出,LMS算法有两个关键:梯度的计算以及收敛因子的选择。精确计算梯度是十分困难的,一种粗略的但是却十分有效的计算梯度的近似方法是:直接取(k)作为均方误差E(k)的估计值,即: (2.4)式中的为= (2.5)将式(2.5)代入式(2.4)中,得到梯度估值于是,Widrow-Hoff LMS算法最终为 (2.6)可以证明,梯度估值是无偏的,因此,梯度估值是无偏估计。的选择:对权系数向量更新公式(2.6)两边取数学期望,得式中,为单位矩阵,和。当k=0时,

26、对于k=1,利用上式结果,则有起始时,故 由于是实值的对称阵,可以写出特征值分解式:这里我们利用了正定阵的性质,且是对角阵,其对角元素是的特征值。将式(18)代入式(17)后得: (2.7)注意到以下恒等式以及关系式: (2.8) (2.9)假定所有的对角元素的值均小于1,则将式(2.8)-(2.9)代入式(2.7),结果有由此可见,当迭代次数无限增加时,权系数向量的数学期望可收敛至维纳解,其条件是对角阵的所有对角元素均小于1,即或 其中是的最大特征值。称为收敛因子,它决定达到维纳解的速率。基本LMS自适应算法如下:初始化:;选择: :LMS自适应滤波器如图所示。+W2(k)+y(k)X(k-

27、M+1)X(k)WM-1(k)Wo(k)W1(k)Z-1Z-1Z-1+LMS自适应算法图3 LMS自适应滤波器 2.4 小结本章从自适应滤波器出发,介绍了自适应滤波器的结构与设计原理,重点描述了LMS算法和该算法推导过程,最后给出了设计一个LMS自适应滤波器的基本步骤。第三章 仿真软件 MATLAB 简介3.1 MATLAB的概况MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来

28、解算问题要比用C,FORTRAN等语言做相同的事情简捷得多。当前流行的MATLAB 7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。3.1.1 MATLAB产生的历史背景在70年代中期,Cleve Mo

29、ler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库。EISPACK是特征值求解的FOETRAN程序库,LINPACK是解线性方程的程序库。在当时,这两个程序库代表矩阵运算的最高水平。到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程教学生使用EISPACK和LINPACK程序库时,他发现学生用FORTRAN编写接口程序很费时间,于是他开始利用业余时间自己动手为学生编写EISPACK和LINPACK的接口程序。Cleve Moler给这个接口程序取名为MATLAB,该名为矩阵(

30、matrix)和实验室(laboratory)两个英文单词的前三个字母的组合.在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。1983年春天,Cleve Moler到Stanford大学讲学,MATLAB深深地吸引了工程师John Little。John Little敏锐地觉察到MATLAB在工程领域的广阔前景。同年,他和Cleve Moler,Steve Bangert一起用C语言开发了第二代专业版。这一代的MATLAB语言同时具备了数值计算和数据图示化的功能。1984年,Cleve Moler和John Little成立了Math Works

31、公司,正式把MATLAB推向市场并继续进行MATLAB的研究和开发。在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算型软件,如MATLAB,Xmath,Gauss等这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematical,Maple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低。MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件

32、MATLAB。经过多年的国际竞争,MATLAB已经占据了数值软件市场的主导地位。在MATLAB进入市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。MATLAB的出现,为各国科学家开发学科软件提供了新的基础。在MATLAB问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。到今天,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB已经经受了多年考验。在欧

33、美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程界,MATLAB一定会盛行起来。可以说,不管从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。3.1.2 MATLAB的语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为

34、第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。1. 语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。 我们知道,如果用FORT

35、RAN或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试动不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用FORTRAN和C这样的高级语言编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下用MATLAB编写以上两个小程序的具体过程。MATLAB求解下列方程,并求解矩阵A

36、的特征值。Ax=b, 其中:A= 32 13 45 67 23 79 85 12 43 23 54 65 98 34 71 35b= 1 2 3 4解为:x=Ab;设A的特征值组成的向量e,e=eig(A)。 可见,MATLAB的程序极其简短。更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。2. 运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。3. MATLAB既具有结构化的控制语句(如f

37、or循环,while循环,break语句和if语句),又有面向对象编程的特性。4. 程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。5. 程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6. MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。7. MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。8. 功能强大的工具箱

38、是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control toolbox, signal processing toolbox, communication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。9. 源程序的开放性。开放性也许

39、是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。3.2 MATLAB仿真的基本流程使用MATLAB软件进行仿真的基本操作流程如下图所示,用户首先要进行问题定义, 考虑自己要仿真什么东西,大概的算法应该怎样,然后按照算法编写程序,生成.m文件后运行,如果结果是我们的预期,那么整个仿真过程即可顺利结束,否则,应该分析问题所在,并重新考虑问题定义、源码修改的必要性。结束开始问题定义编写程序执行仿真分析结果结果满意?分析问题所在 满意 图3.2 MATLAB仿真流程图3.3 小结本章

40、对MATLAB仿真软件进行了简单了介绍,包括该软件的发展,语言特点等等,并给出了MATLAB仿真的一般流程图。第四章 LMS自适应滤波器的MATLAB实现4.1 自适应滤波器出现的意义 自适应滤波器与普通的滤波器不同,它的冲激响应或滤波参数是随外部环境的变化而改变的,经过一段自动调节的收敛时间达到最佳滤波的要求。最早的自适应滤波器可以追溯到二十世纪五十年代末期,在这个时期大量的研究者独立工作在这种滤波器的不同应用领域。依赖于这类早期工作,出现了最小均方(LMS)算法,它成为运行横向滤波器的一种简单而有效的算法。LMS算法是Widrow和Hoff在1959年研究自适应线性元素的模式识别方案时发明

41、的。LMS算法是一种随机梯度算法,它在相对于抽头权值的误差信号平方幅度的梯度方向上迭代调整每个抽头权值。自适应滤波器是统计信号处理的一个重要组成部分。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可提供一种十分吸引人的解决方法,而且其性能远优于用常规方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可能提供的信号处理能力。因此,自适应滤波器成功地应用于诸如通信,控制,雷达,声纳,地震和生物医学工程等诸多领域。 4.2 自适应滤波器的实现4.2.1 最速下降法的仿真在第二章中推导了最速下降法的原理,因为均方误差函数是滤波系数的二次方程,由此形成了

42、一个多维的超抛物曲面,这好象一个碗状曲面又具有惟一的碗底的最小点,通常称之为自适应滤器的误差性能曲面。当滤波器工作在平稳随机过程的环境下,这个误差性能曲面就具有固定边缘的恒定形状。自适应滤波器的起始值是任意值,位于误差性能曲面上的某一点,经过自适应调节过程,使对应于滤波系数变化的点移动,朝碗底最小点方向移动,最终到达碗底最小点,实现了最佳维纳滤波。最速下降法是实现上述最佳搜索的一种优化技术,它利用梯度信息分析自适应滤波性能和追踪最佳滤波状态。根据最速下降法,“下一时刻”权系数向量应该等于“现时刻”权系数向加上一个负均方误差梯度的比例项,即式中,是一个控制收敛速度与稳定性的常数,称之为收敛因子。

43、仿真的结果如下: 图4.1 最速下降法的仿真从图中我们可以看出,一开始的时候误差较大,随着时间的增长,误差逐渐减小,最后达到所允许的误差范围内。 4.2.2 LMS算法的MATLAB仿真4.2.2.1基于 LMS算法的自适应滤波器设计LMS算法最核心的思想是用平方误差代替均方误差,其基本算法为,其中,和分别为迭代前后的系数值;和为前后两个时;,为滤波器的阶数;为收敛因子;为误差信号,为输入信号;为输出信号。在自适应滤波器的实际操作中,一个必须注意的问题是自适应步长的选择。由LMS迭代算法可知,欲使其收敛,则自适应步长的取值范围为。通过实际的仿真可得出:通过程序设定滤波器的理想输入信号和噪声输入

44、信号,叠加信号通过LMS自适应滤波器滤波后,随时间的增长,预测信号与实际信号之间的误差将会越来越小,也即达到了根据外部变化,通过LMS算法控制滤波参数,来追踪实际信号的效果。4.2.2.2 LMS算法中正交性原理分析 在最速下降法中我们介绍到,在输入信号和参考响应都是随即信号的情况下,自适应线性组合器的均方性能曲面是权矢量W(n)的二次函数,由于自相关矩阵为正交矩阵,及成一向上凹的抛物面,即是二次均方函数有唯一的最小植。然儿在实际的LMS算法中我们确没有用到自相关距阵序列,而是依据输入信号在跌代过程中估计梯度矢量,并更新权系数以达到最佳的自适应算法,然而在LMS算法中我们如何来实现这一最佳权系

45、数的确定呢,由此引入正交原理。我们研究的自适应滤波的目的是使系统能够自我调节最终使输出信号逼近于期望信号,也就是使期望响应与输出响应的差值最小,理想误差为0 ,即: e(n)=d(n)-y(n)我们任意假设某一时刻的期望响应d(n)与输出响应x(n向量的大小和方向然而由数学的勾股定理我们不难得出,要使e(n)最小,那么必须使得e(n)与y(n)正交。在自适应滤波过程中,滤波器的输出响应y(n)随权系数W的调整,使输出响应y(n)在二位空间里逐渐逼近于期望响应d(n),当输出响应逼近于期望响应时即当期望响应相似于输出响应时,在几何图解中即d(n)是在P方向上的投影,y(n)为在P方向上的向量,此时

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号