您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > RLS算法的收敛性分析
RLS与LMS算法的收敛性比较分析学号:S120101057姓名:贾雪婷RLS算法的收敛性分析2/10摘要:介绍了自适应滤波器的基本原理,对最小均方(LMS,LeastMeanSquares)和递归最小二乘(RLS,RecursiveLeastSquares)自适应算法进行仿真分析及对比研究。仿真结果及实例均表明,两种算法都能有效抑制和抵消各种干扰,但相比之下,RLS算法具有更好的收敛性能及稳定性,除收敛速度快于LMS算法和NLMS算法以及稳定性强外,而且具有更高的起始收敛速率、更小的权噪声和更大的抑噪能力。关键词:自适应滤波;最小均方;递归最小二乘;收敛性;对比研究Abstract:Introducingthebasicprincipleofadaptivefilter,asfortheminimummeansquare(LMS,LeastMeanSquares)andRecursiveLeastSquares(RLS,RecursiveLeastSquares)adaptivealgorithmisappliedtothesimulationanalysisandcomparativestudy.Thesimulationresultsandexamplesindicatethatthe,twokindsofalgorithmcaneffectivelyrestrainandoffsetallkindsofinterference,butincontrast,RLSalgorithmhasbetterconvergenceperformanceandstability,InadditiontoconvergencespeedfasterthanLMSalgorithmandNLMSalgorithmandthestability,butalsohavehigherinitialrateofconvergence、smallerrightnoiseandmorenoisesuppressionability.Keywords:adaptivefiltering;LMS;RLS;astringency;ComparativestudyRLS算法的收敛性分析3/10一、自适应滤波的原理自适应滤波的原理如图一所示:输入信号x(n)通过参数可调数字滤波后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n),e(n)通过某种自适应算法对滤波器参数进行调整,最终使e(n)的均方值最小。如何提高收敛速度、增强稳定性以满足信号处理的高效性、实时性,一直是人们研究的重点和热点。二、自适应算法(1)LMS算法自适应滤波器在时刻n的向量定义:抽头权向量:011()[(),(),...,()]TMWnbnbnbn参考输入向量:()[(),(1),...,(1)]TXnxnxnxnM()dn是主输入信号,()yn是期望输出值,()en是误差信号,也是系统输出值,M是滤波器长度。由维纳-霍夫方程可知,最小均方误差为:22*min([])[]jjEeEdWP实际上,该方程与维纳滤波器结果完全一样。自适应滤波器与维纳滤波器相比,其差别在于它增加了一个识别控制环节,将输出与期望值进行比较,利用误差()en去控制()Wn,使2[]jEe=最小值,从而得到()Wn的估计*()Wn。根据最优的数学算法最陡下降法,下一个权矢量1()jWn等于现在的权矢量()jWn加一个正比于梯度j的负值变化量,即有:1jjjWW通过梯度下降法:21[]|jjjjWWdEeWWdW推导可知:12jjjjWWeX其中jjjjedWX算法步骤:步骤一:初始化:步骤二:更新:1,2,3,...nRLS算法的收敛性分析4/10滤波:()()()TynWnXn;误差估计:()()()endnyn;权向量更新:*(1)()2()()WnWnenXn;其中是用来控制稳定性和收敛速度的步长参数。为确保自适应过程的稳定性,必须满足02/inMP,其中2[()]inPEXn为输入功率。(2)RLS算法SISO系统动态过程的数学模型:11()()()()()AzzkBzuknk(1)其中()uk,()zk为输入输出量,()nk为噪声。式中11212()1...aannAzazazaz11212()...bbnnBzbzbzbz展开后得到:1212()(1)(2)...(1)(2)...()abnnbzkazkazkabukbukbukn模型(1)可化为最小二乘格式:()()()zkhknk(2)记1212[,,...,,,...,]abnnaaabbb为待估计的参数。()[(1),...,(),(1),...,()]abhkzkzknukukn,对于1,2,...kL(L为数据长度)。方程(2)构成一个线性方程组,写成()()()LLLzkHknk;(1)(2)()LzzZzL,(1)(2)()LhhHhL,(1)(2)()LnnnnL根据最小二乘法一次完成算法,其参数估计为:1ˆ()LLLLLSHHHZ。参数递推估计,每取得一次新的观测数据后,就在前次估计结果的基础上,利用新引入的观测数据对前次估计的结果,根据递推算法进行修正,减少估计误差,从而递推地得出新的参数估计值。这样,随着新观测数据的逐次引入,一次接一次地进行参数估计,直到参数估计值达到满意的精确程度为止。算法步骤:步骤一:初始化(0)0W;1(0)PI,其中I为单位矩阵;步骤二:更新1,2,...n计算更新增益矢量:()(1)()/[()(1)()]TgnPnXnXnPnXn;滤波:()(1)()TynWnXn;误差估计:()()()endnyn;更新权向量:()(1)()()WnWngnen;更新逆矩阵:1()[(1)()()(1)]TPnPngnXnPn;其中,()Pn为自相关矩阵()xxPn的逆矩阵,常数是遗忘因子,且01。总上所述:算法实现的主要步骤为:(1)数据采集与生成,取()dn,()Xn;(2)对参数的初始化;(3)自适应的滤波处理;(4)滤波器系数更新三、仿真(1)仿真过程简介RLS算法的收敛性分析5/10仿真过程按照如下过程进行(1)信号产生:首先产生高斯白噪声序列w(n),然后将此通过一个简单的二阶自回归滤波器生成信号()xn,该滤波器的参数为.7.0,4.121aa(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;RLS算法的收敛性分析6/10a1L=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值RLS算法的收敛性分析7/10下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)+
本文标题:RLS算法的收敛性分析
链接地址:https://www.777doc.com/doc-7312813 .html