基于MATLAB的ADSP-AR(2)模型的LMS-与-RLS-算法分析

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

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

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

资源描述

MATLAB仿真实现LMS和RLS算法题目:序列x(n)有AR(2)模型产生:)()2()1()(21nwnxanxanx,w(n)是均值为0、方差为1的高斯白噪声序列。.7.0,4.121aa用LMS算法和RLS算法来估计模型参数21,aa。按照课本第三章63页的要求,仿真实现LMS算法和RLS算法,比较两种算法的权值收敛速度,并对比不同u值对LMS算法以及λ值对RLS算法的影响。解答:1数据模型(1)高斯白噪声用用randn函数产生均值为0、方差为1的标准正态分布随机矩阵来实现。随后的产生的信号用题目中的AR(2)模型产生,激励源是之前产生的高斯白噪声。(2)信号点数这里取为2000,用2000个信号来估计滤波器系数。(3)分别取3个不同的u、λ值来分析对不同算法对收敛效果的影响。其中u=[0.001,0.003,0.006],lam=[1,0.98,0.94]。2算法模型2.1自适应算法的基本原理自适应算法的基本信号关系如下图所示:Σ自适应算法参数可调数字滤波器x(n)d(n)y(n)e(n)-+图1自适应滤波器框图输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。2.2LMS算法简介LMS算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下:10()()()()()()(1)()2()()(0,1,2,....1)NiiiynwnxniendnynwnwnenxniiN写成矩阵型式为:()()()()()()(1)()2()()TynWnXnendnynWnWnenXn式中,W(n)为n时刻自适应滤波器的权矢量,011()[(),(),....()]TNWnwnwnwn,N为自适应滤波器的阶数;X(n)为n时刻自适应滤波器的参考输入矢量,由最近N个信号采样值构成,()[(),(1),....(1)]TXnxnxnxnN;d(n)是期望的输出值;e(n)为自适应滤波器的输出误差调节信号(简称失调信号);μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。2.3RLS算法简介RLS算法是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间进行迭代计算。其基本原理如下所示:称为遗忘因子,它是小于等于1的正数。:dn参考信号或期望信号。():nw第n次迭代的权值。:n均方误差。按照如下准则:20minnnkknek即越旧的数据对n的影响越小。对滤波器系数w求偏导数,并令结果等于零知02()0nnkknekkxw整理得到标准方程00()()nnnkTnkkkkkdkkxxwx定义0()()nnkTknkkRxx0()()nnkkndkkPx标准方程可以化简成形式:()()nnRwP经求解可以得到迭代形式(1)()(1)(1)TnnnnRRxx(1)()(1)(1)nndnnPPx定义:1()()nnTR,则可知T的迭代方程为11()[(1)()()]TnnnnTTxx系数的迭代方程为()(1)()(|1)nnnennwwk其中增益()nk和误差(|1)enn的定义分别为(|1)()(1)()Tenndnnnwx(1)()()()(1)()TnnnnnnTxkxTx由上边分析可知,RLS算法递推的步骤如下:1.在时刻n,已经知道(1),(1)nnwT和(),()dnnx也已经存储在滤波器的实验部件中2.利用公式(1.9)、(1.10)、(1.11)和(1.12)计算(),(),(),(|1)nnnennTwk,并得到滤波器的输出相应()yn和误差()en即:()()()Tynnnwx()()()endnyn3.进入第1n次迭代优点--其优点是收敛速度快,而且适用于非平稳信号的自适应处理条件--:是每次迭代时都知道输入信号和参考信号,计算量比较大3仿真过程简介仿真过程按照如下过程进行(1)信号产生:首先产生高斯白噪声序列w(n),然后将此通过一个简单的二阶自回归滤波器生成信号()xn,该滤波器的参数为.7.0,4.121aa(2)将步骤一生成的信号通过LMS和RLS自适应滤波器进行处理(3)通过改变u值对1a收敛速度的影响来分析LMS算法的性能以及通过改变λ值对1a收敛速度的影响来分析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%绘制信号和高斯白噪声波形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;%LMS算法下自适应增益常数初始化wL=zeros(L,n);%LMS滤波器的权值初始化fori=(L+1):nX=x(i-1:-1:(i-L));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);%a1在LMS算法下值的变化a2L=wL(2,1:n);%a2在LMS算法下值的变化%RLS滤波L=2;%滤波器长度lam=0.98;%RLS算法下lambda取值wR=zeros(L,n);%权系数,初值为0T=eye(L,L)*10;%%RLS算法下T参数的初始化,T初始值为10fori=(L+1):nX=x(i-1:-1:(i-L));K=(T*X)/(lam+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)/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--',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);eL=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);endenda1L1=wL(1,1:n,1);a1L2=wL(1,1:n,2);a1L3=wL(1,1:n,3);figure(3)plot(1:n,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,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);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')ylabel('对应a1的值')4仿真结果信号和高斯白噪声波形如图(1)所示:图1信号和高斯白噪声波形图2LMS算法和RLS算法收敛曲线对比图3u对LMS收敛速度的影响图4λ对RLS收敛速度的影响4结果分析(1)由(图2)可以看到在u和值相当的情况下,RLS比LMS具有更快的收敛速度,但是RLS权系数收敛后出现了较大的噪声,是因为RLS中有效记忆长度只有49.(2)由(图3)可知u越小,LMS算法的收敛速度越慢,但权系数收敛后噪声越小。(3)有(图4)可知越大,RLS算法的收敛速度越慢,但权系收敛后噪声越小,当为1时看出收敛后是几乎没有噪声的,因为有效记忆长度此时为无穷大。

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

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

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

×
保存成功