好文档 - 专业文书写作范文服务资料分享网站

MATLAB仿真实现LMS和RLS算法

天下 分享 时间: 加入收藏 我要投稿 点赞

.

MATLAB仿真实现LMS和RLS算法

题目:

序列x(n)有AR(2)模型产生:x(n)?a1x(n?1)?a2x(n?2)?w(n),w(n)是均值为0、方差为1的高斯白噪声序列。a1?1.4,a2??0.7.用LMS算法和RLS算法来估计模型参数a1,a2。

按照课本第三章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)参数可调数字滤波器y(n)+Σ-e(n)d(n)自适应算法

图 1 自适应滤波器框图

输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。 2.2 LMS算法简介

LMS算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下:

1 / 9'.

.

y(n)??wi(n)x(n?i)0N?1e(n)?d(n)?y(n) wi(n?1)?wi(n)?2?e(n)x(n?i)i?(0,1,2,....N?1)写成矩阵型式为:

y(n)?WT(n)X(n) e(n)?d(n)?y(n)W(n?1)?W(n)?2?e(n)X(n)式中,W(n) 为n 时刻自适应滤波器的权矢量,W(n)?[w0(n),w1(n),....wN?1(n)],N为自适应滤波器的阶数;X( n) 为n 时刻自适应滤波器的参考输入矢量,由最近N 个信号采样值构成,X(n)?[x(n),x(n?1),....x(n?N?1)];d ( n) 是期望的输出值;e ( n) 为自适应滤波器的输出误差调节信号(简称失调信号) ;μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。 2.3 RLS算法简介

RLS算法是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间进行迭代计算。其基本原理如下所示:

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

TTd?n?:参考信号或期望信号。

w(n):第n次迭代的权值。

??n?:均方误差。

按照如下准则:

n??n????n?ke2?k??min

k?0

即越旧的数据对??n?的影响越小。对滤波器系数w求偏导数,并令结果等于零知

n???n???2??n?ke?k?x(k)?0 ?wk?0

整理得到标准方程 定义

n?nn?k?Tn?k???x?k?x(k)?w???d?k?x(k)

k?0?k?0?2 / 9'.

.

R(n)???n?kx?k?xT(k)

k?0nn

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

经求解可以得到迭代形式

?1P(n)???n?kd?k?x(k)

k?0

R(n)w?P(n)

R(n?1)??R(n)?x(n?1)xT(n?1)

P(n?1)??P(n)?d(n?1)x(n?1)

定义:T(n)?R(n),则可知T的迭代方程为

系数的迭代方程为

T(n)?[?T?1(n?1)?x(n)xT(n)]?1

w(n)?w(n?1)?k(n)e(n|n?1)

其中增益k(n)和误差e(n|n?1)的定义分别为

e(n|n?1)?d(n)?wT(n?1)x(n)

k(n)?T(n?1)x(n) T??x(n)T(n?1)x(n)由上边分析可知,RLS算法递推的步骤如下:

1. 在时刻n,已经知道w(n?1),T(n?1)和d(n),x(n)也已经存储在滤波器的实验部

件中

2. 利用公式(1.9)、(1.10)、(1.11)和(1.12)计算T(n),w(n),k(n),e(n|n?1),并

得到滤波器的输出相应y(n)和误差e(n)即:

y(n)?wT(n)x(n)

e(n)?d(n)?y(n)

3. 进入第n?1次迭代

优点--其优点是收敛速度快,而且适用于非平稳信号的自适应处理 条件--:是每次迭代时都知道输入信号和参考信号,计算量比较大

3 / 9'.

.

3 仿真过程简介

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

(1)信号产生:首先产生高斯白噪声序列w(n),然后将此通过一个简单的二阶自回归 滤波器生成信号x(n),该滤波器的参数为a1?1.4,a2??0.7.

(2)将步骤一生成的信号通过LMS和RLS自适应滤波器进行处理

(3)通过改变u值对a1收敛速度的影响来分析LMS算法的性能以及通过改变λ值对a1收敛速度的影响来分析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);

%信号序列的产生 for i=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滤波器的权值初始化 for i=(L+1):n

X=x(i-1:-1:(i-L));

4 / 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); % 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 for i=(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值 for j=1:3

for i=(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);

5 / 9'.

MATLAB仿真实现LMS和RLS算法

.MATLAB仿真实现LMS和RLS算法题目:序列x(n)有AR(2)模型产生:x(n)?a1x(n?1)?a2x(n?2)?w(n),w(n)是均值为0、方差为1的高斯白噪声序列。a1?1.4,a2??0.7.用LMS算法和RLS算法来估计模型参数a1,a2。按照课本第三章63页的要求,仿真实现LMS算
推荐度:
点击下载文档文档为doc格式
0dvca2m2mu0zn011oo6h6et871df8g0197d
领取福利

微信扫码领取福利

微信扫码分享