基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx

上传人:b****3 文档编号:4970644 上传时间:2022-12-12 格式:DOCX 页数:11 大小:238.21KB
下载 相关 举报
基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx_第1页
第1页 / 共11页
基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx_第2页
第2页 / 共11页
基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx_第3页
第3页 / 共11页
基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx_第4页
第4页 / 共11页
基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx

《基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx》由会员分享,可在线阅读,更多相关《基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx(11页珍藏版)》请在冰豆网上搜索。

基于某MATLAB地ADSP AR2模型地LMS 与 RLS 算法分析报告.docx

基于某MATLAB地ADSPAR2模型地LMS与RLS算法分析报告

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)分别取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算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下:

写成矩阵型式为:

式中,W(n)为n时刻自适应滤波器的权矢量,

,N为自适应滤波器的阶数;X(n)为n时刻自适应滤波器的参考输入矢量,由最近N个信号采样值构成,

;d(n)是期望的输出值;e(n)为自适应滤波器的输出误差调节信号(简称失调信号);μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。

2.3RLS算法简介

RLS算法是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间进行迭代计算。

其基本原理如下所示:

称为遗忘因子,它是小于等于1的正数。

参考信号或期望信号。

第n次迭代的权值。

均方误差。

按照如下准则:

即越旧的数据对

的影响越小。

对滤波器系数

求偏导数,并令结果等于零知

整理得到标准方程

定义

标准方程可以化简成形式:

经求解可以得到迭代形式

定义:

,则可知T的迭代方程为

系数的迭代方程为

其中增益

和误差

的定义分别为

由上边分析可知,RLS算法递推的步骤如下:

1.在时刻n,已经知道

也已经存储在滤波器的实验部件中

2.利用公式(1.9)、(1.10)、(1.11)和(1.12)计算

,并得到滤波器的输出相应

和误差

即:

3.进入第

次迭代

优点--其优点是收敛速度快,而且适用于非平稳信号的自适应处理

条件--:

是每次迭代时都知道输入信号和参考信号,计算量比较大

3仿真过程简介

仿真过程按照如下过程进行

(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,n)';%高斯白噪声的初始化,均值为0,方差为1

x

(1)=w

(1);%信号前两点的初始赋值

x

(2)=a1*x

(1)+w

(2);

%信号序列的产生

fori=3:

n

x(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):

n

X=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);%权系数,初值为0

T=eye(L,L)*10;%%RLS算法下T参数的初始化,T初始值为10

fori=(L+1):

n

X=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:

3

fori=(L+1):

n

yL(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);

end

end

a1L1=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:

3

fori=(L+1):

n

xR=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;

end

end

a1R1=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时看出收敛后是几乎没有噪声的,因为有效记忆长度此时为无穷大。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1