RLS和LMS自适应算法分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1RLS和LMS自适应算法分析摘要:本文主要介绍了自适应滤波的两种算法:最小均方(LMS,LeastMeanSquares)和递推最小二乘(RLS,RecursiveLeastSquares)两种基本自适应算法。我们对这两种基本的算法进行了原理介绍,并进行了Matlab仿真。通过仿真结果,我们对两种自适应算法进行了性能分析,并对其进行了比较。用Matlab求出了LMS自适应算法的权系数,及其学习过程曲线,和RLS自适应权系数算法的学习过程。关键词:自适应滤波、LMS、RLS、Matlab仿真Abstract:thisarticlemainlyintroducestwokindsofadaptivefilteringalgorithms:LeastMeansquare(LMS),furtherMeanSquares)andRecursiveLeastSquares(RLS,RecursivefurtherSquares)twobasicadaptivealgorithm.Ouralgorithmsofthesetwobasicprincipleisintroduced,andMatlabsimulation.Throughthesimulationresults,wehavetwokindsofadaptivealgorithmperformanceanalysis,andcarriesonthecomparison.MatlabcalculatetheweightcoefficientoftheLMSadaptivealgorithm,anditslearningcurve,andtheRLSadaptiveweightcoefficientalgorithmofthelearningprocess.Keywords:,LMSandRLSadaptivefilter,theMatlabsimulation课题简介:零均值、单位方差的白噪声通过一个二阶自回归模型产生的AR过程。AR模型的系统函数为:H(Z)=218.06.111ZZ假设1a=-1.6,2a=0.8将系统函数转化为差分方程为:)()2()1()(21nwnanxanx其中w(n)为白噪声,参数1a=-1.6,2a=0.8。激励源是白噪声w(n)。本文用Matlab仿真做出了模型系数的收敛过程及平均的学习曲线。分别用LMS算法和RLS算法,分别做出了模型系数的收敛过程及学2习曲线,还对两种算法的特性进行了对比。引言:由于随机信号的未知性和随时间变化的统计特性,需要设计参数随时间变化的滤波器算法,即所谓的自适应滤波。它是利用前一时刻以获得的滤波器参数的结果,自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。不同的自适应滤波器算法,具有不同的收敛速度、稳态失调和算法复杂度。自适应滤波算法中利用了输出反馈,属于闭环算法。其优点是能在滤波器输入变化时保持最佳的输出,而且还能在某种程度上补偿滤波器元件参数的变化和误差以及运算误差。但其缺点是存在稳定性问题以及收敛速度不高。所以探讨如何提高收敛速度、增强稳定性以满足信号处理的高效性、实时性,一直是人们研究的重点和热点。本文基对比研究了两类基本的自适应算法LMS和RLS,并对它们权系数的收敛过程及学习过程进行了分析。LMS原理分析:LMS算法是自适应滤波器中常用的一种算法与维纳算法不同的是其系统的系数随输入序列而改变。维纳算法中截取输入序列自相关函数的一段构造系统的最佳系数。而LMS算法则是对初始化的滤波器系数依据最小均方误差准则进行不断修正来实现的。因此理论上讲LMS算法的性能在同等条件下要优于维纳LMS的控制的最大取值为R的迹。LMS采用平方误差最小的原则代替均方误差最小的原则,信号基本关系如下:3)()()(10inxnwnyNi)()()(nyndne)()(2)()1(inxnenwnwii写成矩阵形式为:)()()(nXnWnyT)()()(nyndne)()(2)()1(nXnenWnW式中W(n)为n时刻自适应滤波器的权矢量,TNnwnwnwnwnW)]()........(),(),([)(1210N为自适应滤波器的阶数。X(n)为n时刻自适应滤波器的参考输入矢量,由最近的N个信号的采样值构成,TNnxnxnxnX)]1()......1(),([)(。d(n)是期望的输出值;e(n)为自适应滤波器的输出误差调节信号;μ是控制自适应速度与稳定性的增益常数。4LMS的算法流程图:)()()(10inxnwnyNi计算误差e(n)=d(n)-y(n)计算因子)(ne更新权)()(2)()1(nXnenWnWRLS算法原理分析:为遗忘因子,它是小于1的正数)(nd:参考信号或期望信号)(nw第n次迭代的权值)(n均方误差读取x(n)和d(n)初始化w(n)5按照如下准则:min)()(20kennkkn越旧的数据对)(n的影响越小。对滤波器的系数w求偏导,并令结果等于0知0)()(2)(0kxkewnnkkn整理得到标准方程为:nkknnkTknkxkdwkxkx00)()(])()([定义:nkknkxkdnR0)()()(nkknkxkdnP0)()()(标准方程可以简化为:)()(nPwnR经求解可以得到迭代形式:)1()1()()1(nxnxnRnRT)1()1()()1(nxndnPnP定义:)()(1nRnT,则可知T的迭代方程为:11)]()()1([)(nxnxnTnTT系数的迭代方程为)1|()()1()(nnenknwnw6其中增益)(nk和误差)1|(nne的定义分别为:)()1()()1|(nxnwndnneT)()1()()()1()(nxnTnxnxnTnkT参数递推估计,每取得一次新的观测数据后,就在前次估计结果的基础上,利用新引入的观测数据对前次估计的结果,根据递推算法进行修正,减少估计误差,从而递推地得出新的参数估计值。这样,随着新观测数据的逐次引入,一次接一次地进行参数估计,直到参数估计值达到满意的精确程度为止。7RLS算法流程图:计算T(n),w(n),k(n),e(n|n-1))()()(10inxnwnyNi计算误差e(n)=d(n)-y(n)更新权)1|()()1()(nnenknwnwLMS算法程序:clearcloseallclca1=-1.6;a2=0.8;n=1000;P=50;初始化(0)0W;1(0)PI8e=zeros(1,n);ep=zeros(1,n);ee=zeros(1,n);x=zeros(1,n)';w=randn(1,n)';%算法forp=1:Px(1)=w(1);x(2)=-a1*x(1)+w(2);fori=3:nx(i)=-a1*x(i-1)-a2*x(i-2)+w(i);endL=2;u=0.0005;wL=zeros(L,n);fori=(L+1):nX=x(i-L:1:(i-1));y(i)=X'*wL(:,i);%i时刻输出信号e(i)=x(i)-y(i);%i时刻误差信号wL(:,(i+1))=wL(:,i)+2*u*e(i)*X;%i时刻滤波器的权值ee(i)=e(i)^2;endep=ep+ee;endeq=ep/P;a1L=-wL(2,1:n);%a1在LMS算法下值的变化,wL矩阵中第一行的1到n个数a2L=-wL(1,1:n);%a2在LMS算法下值的变化,wL矩阵中第二行的1到n个数9%画图subplot(2,2,1);plot(1:n,x);title('高斯白噪声w');subplot(2,2,2);plot(1:n,a1L,'r-',1:n,a1,'k-');title('a1的学习过程');subplot(2,2,3);plot(1:n,a2L,'r-',1:n,a2,'k-');title('a2的学习过程');subplot(2,2,4);plot(1:n,eq);title('50次平均后的学习过程');10图1:步长因子μ=0.0005时LMS仿真图形图2:步长因子μ=0.001时LMS仿真图形11图3:步长因子μ=0.005时LMS仿真图形结果分析:1.在仿真过程中可以看到,图形的收敛时间随着步长因子μ的增大而减小。说明步长因子μ与收敛时间成反比,其决定了LMS算法学习过程的快慢。2.由上图对比可知,当步长因子μ增大时,收敛时间减少,但会使失调增大,当μ等于0.0005与0.001时图形没有失调,但当μ等于0.005时,就会发现图形失调严重。3.综上所述可得出结论:控制失调与加快收敛速度矛盾。12LMS与RLS对比程序:程序:clear;closeall;clc;a1=-1.6;a2=0.8;n=1000;x=zeros(1,n)';w=randn(1,n)';x(1)=w(1);x(2)=-a1*x(1)+w(2);fori=3:nx(i)=-a1*x(i-1)-a2*x(i-2)+w(i);end;%LMS滤波L=2;u=0.001;wL=zeros(L,n);fori=(L+1):nX=x(i-1:-1:(i-L));y(i)=X'*wL(:,i);e(i)=x(i)-y(i);wL(:,(i+1))=wL(:,i)+2*u*e(i)*X;end;a1L=-wL(1,1:n);a2L=-wL(2,1:n);13%RLS滤波L=2;namuta=0.98;wR=zeros(L,n);T=eye(L,L)*10;%%RLS算法下T参数的初始化,T初始值为10fori=(L+1):nX=x(i-1:-1:(i-L));K=(T*X)/(namuta+X'*T*X);%i时刻增益值e1=x(i)-wR(:,i-1)'*X;wR(:,i)=wR(:,i-1)+K*e1;%i时刻权值y(i)=wR(:,i)'*X;e(i)=x(i)-y(i);T=(T-K*X'*T)/namuta;%i时刻的维纳解end;a1R=-wR(1,1:n);a2R=-wR(2,1:n);%画图subplot(2,1,1);plot(1:n,a1L,'r-',1:n,a1R,'g-',1:n,a1,'k-');title('LMS与RLS算法a1权系数收敛过程对比');subplot(2,1,2);plot(1:n,a2L,'r-',1:n,a2R,'g-',1:n,a2,'k-');title('LMS与RLS算法a2权系数收敛过程对比');14图4:LMS与RLS仿真图形对比结果分析:1.RLSLMSRLS算法的收敛速度要明显高于LMS算法。但是RLS大。RLS算法与LMS对比:由于LMS算法只是用以前各时刻的抽头参量等作该时刻数据块估计时的平方误差均方最小的准则,而未用现时刻的抽头参量等来对以往各时刻的数据块作重新估计后的累计平方误差最小的准则,所以15LMS算法对非平稳信号的适应性差。RLS算法的基本思想是力图使在每个时刻对所有已输入信号而言重估的平方误差的加权和最小,这使得RLS算法对非平稳信号的适应性要好。与LMS算法相比,RLS算法采用时间平均,因此,所得出的最优滤波器依赖于用于计算平均值的样本数,而LMS算法是基于集平均而设计的,因此稳定环境下LMS算法在不同计算条件下的结果是一致的。在性能方面,RLS的收敛速率比LMS要快得多,因此,RLS在收敛速率方面有很大优势。图6分别为RLS算法和LMS算法在处理过程中的误差曲线,它指出了在迭代过程中的误差减少过程。由图可见,RLS算法在迭代过程中产生的误差明显小于LMS算法。由此可见,RL

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功