资源描述:
《基于MATLAB的ADSP AR(2)模型的LMS 与 RLS 算法分析.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MATLAB仿真实现LMS和RLS算法题目:序列x(n)有AR(2)模型产生:,w(n)是均值为0、方差为1的高斯白噪声序列。用LMS算法和RLS算法来估计模型参数。按照课本第三章63页的要求,仿真实现LMS算法和RLS算法,比较两种算法的权值收敛速度,并对比不同u值对LMS算法以及λ值对RLS算法的影响。解答:1数据模型(1)高斯白噪声用用randn函数产生均值为0、方差为1的标准正态分布随机矩阵来实现。随后的产生的信号用题目中的AR(2)模型产生,激励源是之前产生的高斯白噪声。(2)信号点数这里取为2000,用2000个信号来估计滤波器系数。(3)分别取
2、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.2LMS算法简介LMS算法采用平方误差最小的原则
3、代替最小均方误差最小的原则,信号基本关系如下:写成矩阵型式为:式中,W(n)为n时刻自适应滤波器的权矢量,,N为自适应滤波器的阶数;X(n)为n时刻自适应滤波器的参考输入矢量,由最近N个信号采样值构成,;d(n)是期望的输出值;e(n)为自适应滤波器的输出误差调节信号(简称失调信号);μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。2.3RLS算法简介RLS算法是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间进行迭代计算。其基本原理如下所示:称为遗忘因子,它是小于等于1的正数。参考信号或期望信号。第n次迭代的权值。均方误差。按照如下准
4、则:即越旧的数据对的影响越小。对滤波器系数求偏导数,并令结果等于零知整理得到标准方程定义标准方程可以化简成形式:经求解可以得到迭代形式定义:,则可知T的迭代方程为系数的迭代方程为其中增益和误差的定义分别为由上边分析可知,RLS算法递推的步骤如下:1.在时刻n,已经知道和也已经存储在滤波器的实验部件中2.利用公式(1.9)、(1.10)、(1.11)和(1.12)计算,并得到滤波器的输出相应和误差即:3.进入第次迭代优点--其优点是收敛速度快,而且适用于非平稳信号的自适应处理条件--:是每次迭代时都知道输入信号和参考信号,计算量比较大3仿真过程简介仿真过程按照
5、如下过程进行(1)信号产生:首先产生高斯白噪声序列w(n),然后将此通过一个简单的二阶自回归滤波器生成信号,该滤波器的参数为(2)将步骤一生成的信号通过LMS和RLS自适应滤波器进行处理(3)通过改变u值对收敛速度的影响来分析LMS算法的性能以及通过改变λ值对收敛速度的影响来分析RLS算法的性能。(4)绘制各种图形曲线(5)源代码如下:%(1)信号序列与高斯白噪声的产生%参数初始化a1=1.4;%生成信号所用AR(2)滤波器的参数a2=-0.7;n=2000;%信号点数%信号及白噪声信号序列的初始化x=zeros(1,n)';%信号的初始化w=randn(1
6、,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算法下的
7、参数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
8、;%RLS算法下lambda取值wR=zeros(L