MATLAB仿真实现LMS和RLS算法_第1页
MATLAB仿真实现LMS和RLS算法_第2页
MATLAB仿真实现LMS和RLS算法_第3页
MATLAB仿真实现LMS和RLS算法_第4页
MATLAB仿真实现LMS和RLS算法_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB仿真实现LMS和RLS算法题目:序列x(n)有AR(2)模型产生:x(n)a1x(n1)a2x(n2)w(n),w(n)是均值为0、方差为1的高斯白噪声序列。ai1.4,a20.7.用LMS算法和RLS算法来估计模型参数a1,a2o按照课本第三章63页的要求,仿真实现LMS算法和RLS算法,比较两种算法的权值收敛速度,并对比不同u值又LMS算法以及入值对RLS算法的影响。解答:1数据模型(1)高斯白噪声用用randn函数产生均值为0、方差为1的标准正态分布随机矩阵来实现。随后的产生的信号用题目中的AR(2)模型产生,激励源是之前产生的高斯白噪声。(2)信号点数这里取为2000,用2

2、000个信号来估计滤波器系数。(3)分别取3个不同的u、入值来分析对不同算法对收敛效果的影响。其中u=0.001,0.003,0.006,lam=1,0.98,0.94。2算法模型2.1 自适应算法的基本原理自适应算法的基本信号关系如下图所示:图1自适应滤波器框图输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。2.2 LMS算法简介LMS算法采用平方误差最小的原

3、则代替最小均方误差最小的原则,信号基本关系如下:1/9'.N1y(n)Wi(n)x(ni)0e(n)d(n)y(n)wi(n1)wi(n)2e(n)x(ni)i(0,1,2,.N1)写成矩阵型式为:y(n)WT(n)X(n)e(n)d(n)y(n)W(n1)W(n)2e(n)X(n)式中,W(n)为n时刻自适应滤波器的权矢量,W(n)w0(n),w1(n),.wN1(n)T,N为自适应滤波器的阶数;X(n)为n时刻自适应滤波器的参考输入矢量,由最近N个信号采样值构成,X(n)x(n),x(n1),.x(nN1)T;d(n)是期望的输出值;e(n)为自适应滤波器的输出误差调节信号(简称失

4、调信号);w是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。2.3 RLS算法简介RLS算法是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间进行迭代计算。其基本原理如下所示:称为遗忘因子,它是小于等于1的正数。dn:参考信号或期望信号。w(n):第n次迭代的权值。n:均方误差。按照如下准则:nnk2nekmink0即越旧的数据对n的影响越小。对滤波器系数w求偏导数,并令结果等于零知n2nkekx(k)0k0整理得到标准方程定义nkxkxT(k)wnkdkx(k)2/9'.nkT,R(n)xkx(k)k0nP(n)nkdkx(k)k0标准方程可以化简成形式:R(n)

5、wP(n)经求解可以得到迭代形式R(n1)R(n)x(n1)xT(n1)P(n1)P(n)d(n1)x(n1)定义:T(n)R1(n),则可知T的迭代方程为1T1T(n)T(n1)x(n)x(n)系数的迭代方程为w(n)w(n1)k(n)e(n|n1)其中增益k(n)和误差e(n|n1)的定义分别为e(n|n1)d(n)wT(n1)x(n)k(n)T(n1)x(n)xT(n)T(n1)x(n)由上边分析可知,RLS算法递推的步骤如下:1 .在时刻n,已经知道w(n1),T(n1)和d(n),x(n)也已经存储在滤波器的实验部件中2 .利用公式(1.9)、(1.10)、(1.11)和(1.12)

6、计算T(n),w(n),k(n),e(n|n1),并得到滤波器的输出相应y(n)和误差e(n)即:y(n)wT(n)x(n)e(n)d(n)y(n)3 .进入第n1次迭代优点-其优点是收敛速度快,而且适用于非平稳信号的自适应处理条件-:是每次迭代时都知道输入信号和参考信号,计算量比较大3/9'.3仿真过程简介仿真过程按照如下过程进行(1)信号产生:首先产生高斯白噪声序列w(n),然后将此通过一个简单的二阶自回归滤波器生成信号x(n),该滤波器的参数为ai1.4,a20.7.(2)将步骤一生成的信号通过LMS和RLS自适应滤波器进行处理(3)通过改变u值又ai收敛速度的影响来分析LMS算

7、法的性能以及通过改变入值对ai收敛速度的影响来分析RLS算法的性能。(4)绘制各种图形曲线(5)源代码如下:%(1)信号序列与高斯白噪声的产生%参数初始化a1=1.4;%生成信号所用AR(2)滤波器的参数a2=-0.7;n=2000;%信号点数%言号及白噪声信号序列的初始化x=zeros(1,n)'%言号的初始化w=randn(1,n),;%高斯白噪声的初始化,均值为0,方差为1x(1)=w(1);%言号前两点的初始赋值x(2)=a1*x(1)+w(2);%信号序列的产生fori=3:nx(i)=a1*x(i-1)+a2*x(i-2)+w(i);%言号由AR(2)产生end%绘制信号和

8、高斯白噪声波形figure(1)plot(1:n,x,'b:',1:n,w,'r-');legend('信号序列,高斯白噪声)%图例title('基于AR(2)模型产生的信号x和高斯白噪声w');xlabel('信号点数n');ylabel('x(n)/w(n)');%(2)LMS和RLS算法下的参数a1、a2的收敛曲线%LMS波L=2;%滤波器长度u=0.001;%LM潴法下自适应增益常数初始化wL=zeros(L,n);%LMS波器的权值初始化fori=(L+1):nX=x(i-1:-1:(i-L);4

9、/9'.y(i)=X'*wL(:,i);%i时刻输出信号e(i)=x(i)-y(i);%i时刻误差信号wL(:,(i+1)=wL(:,i)+2*u*e(i)*X;%i时刻滤波器的权值end;a1L=wL(1,1:n);%al在LMS算法下值的变化a2L=wL(2,1:n);%a2在LMS算法下值的变化%RLS波L=2;%滤波器长度lam=0.98;%RLSB法下lambda取值wR=zeros(L,n);球系数,初值为0T=eye(L,L)*10;%RLS算法下T参数的初始化初始值为10fori=(L+1):nX=x(i-1:-1:(i-L);K=(T*X)/(lam+X

10、9;*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)/lam;%i时刻的维纳解end;a1R=wR(1,1:n);%a1在RLS算法下值的变化a2R=wR(2,1:n);%a2在RLS算法下值的变化。魁制LMS与RLS算法下a1、a2收敛曲线figure(2)plot(1:n,a1L,'r-',1:n,a1R,'b:',1:n,a2L,'g-'

11、;,1:n,a2R,'m-.',1:n,a2,'k-',1:n,a1,'k-');legend('LMS-a1变化','RLS-a1变化','LMS-a2变化','RLS-a2变化','a1收敛值','a2收敛值,0);%图例title('LMS与RLS算法对比');xlabel('信号点数n');ylabel('对应a1、a2的值');%(3)LMS算法下不同u值的参数收敛曲线wL=zeros(L,n,3);e

12、L=zeros(n,3);%LMS算法下误差初始化yL=zeros(n,3);%LMS算法下滤波器输出初始化u=0.001,0.003,0.006;%同的u值forj=1:3fori=(L+1):nyL(i,j)=x(i-1:-1:i-2)'*wL(1:L,i-1,j);eL(i,j)=x(i)-yL(i,j);wL(1:L,i,j)=wL(1:L,i-1,j)+2*u(j)*eL(i,j)*x(i-1:-1:i-L);5/9'.endenda1L1=wL(1,1:n,1);a1L2=wL(1,1:n,2);a1L3=wL(1,1:n,3);figure(3)plot(1:n,

13、a1L1,'b-',1:n,a1L2,'r:',1:n,a1L3,'c-.',1:n,a1,'k')%画图显示不同u值下LMS算法性能差别legend('u=0.001','u=0.003','u=0.006','a1收敛值',0)%图例title('LMS算法下不同的u值对a1收敛速度影响')xlabel('信号点数n')ylabel('对应a1的值)%(4)RLS算法下不同lambda值的参数收敛曲线wR=zeros(2,n

14、,3);%RLS算法下自适应滤波器参数初始化eR=zeros(n,3);%RLS算法下误差项初始化yR=zeros(n,3);%RLS算法下滤波器输出初始化lam=1,0.98,0.94;forj=1:3fori=(L+1):nxR=x(i-1:-1:i-2);k=(T*xR)/(lam(j)+xR'*T*xR);T=(T-k*xR'*T)/lam(j);eR=x(i)-xR'*wR(1:2,i-1,j);yR(i,j)=xR'*wR(1:2,i-1,j);wR(1:2,i,j)=wR(1:2,i-1,j)+k*eR;endenda1R1=wR(1,1:n,1)

15、;a1R2=wR(1,1:n,2);a1R3=wR(1,1:n,3);figure(4)plot(1:n,a1R1,'b-',1:n,a1R2,'r:',1:n,a1R3,'c-.',1:n,1:n,a1,'k')%画图显示不同lamda值下RLS算法性能差别legend('lam=1','lam=0.98','lam=0.94','a1收敛值,0)%图例title('RLS算法下不同的lam值对a1收敛速度影响')xlabel('信号点数n'

16、)ylabel('对应a1的值)6/9'.4仿真结果信号和高斯白噪声波形如图(1)所示:piehtpiLTx豆。上七yr”工器:七工中由12第6加旅工工QdH|4|二0电要/|图|。|回C>-.(U】FB6420-2-4石-9基于而<2)模型立生的言号娜口高斯白喋声,.:2004D06003001COO1200140016001SOO2000信号点数n图1信号和高斯白噪声波形JFqure2TX-|Fi工士E&t1:虺:r±T善工亡3卫生')。比总工1fJ.心.hLI,二L。七?1.也1一。一匕门.L飞yT<已自U晶口®要&#

17、163;0|E1回|-01ijBiii'320040。500EOC100C1200140016C0U8D02000信号与敷n图2LMS算法和RLS算法收敛曲线对比7/9'.Fxeuic3rn-rxEiLeE4itFie聊IiLEftrt工口4工占Djasktp*!口&*RhLr口巴19牯14|a二0要房目|日匣|uh6算法下不同的”值对胃1收幼淖庠髭响期&LE程凝0200400600800100012001400150018002000信号点数n图3u对LMS收敛速度的影响I3同区Fil.Ediil甘ia工ucartT口口!工D肽clc七鼻口i.ndc!."0工二4|W四电要/3|口回|口一RLS算法下不同的值m值对加收敛速度影响1a四藜1旦11111

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论