自适应滤波LMS与RLS的matlab实现docx.docx

上传人:b****7 文档编号:11334505 上传时间:2023-02-27 格式:DOCX 页数:19 大小:249.58KB
下载 相关 举报
自适应滤波LMS与RLS的matlab实现docx.docx_第1页
第1页 / 共19页
自适应滤波LMS与RLS的matlab实现docx.docx_第2页
第2页 / 共19页
自适应滤波LMS与RLS的matlab实现docx.docx_第3页
第3页 / 共19页
自适应滤波LMS与RLS的matlab实现docx.docx_第4页
第4页 / 共19页
自适应滤波LMS与RLS的matlab实现docx.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

自适应滤波LMS与RLS的matlab实现docx.docx

《自适应滤波LMS与RLS的matlab实现docx.docx》由会员分享,可在线阅读,更多相关《自适应滤波LMS与RLS的matlab实现docx.docx(19页珍藏版)》请在冰豆网上搜索。

自适应滤波LMS与RLS的matlab实现docx.docx

自适应滤波LMS与RLS的matlab实现docx

MATLAB仿真实现LMS和RLS算法的二阶AR模型

及仿真结果分析

一、题目概述:

二阶AR模型如图la所示,可以如下差分方程表示:

x(n)=k(/7)-atx{n-1)-电坯刀-2)=v(n)+d(n)

(1)

X(n).X(n-l)X(n-2)

X(n)

图la

其中,v(n)是均值为0、方差为0.965的高斯白噪声序列。

心,a?

为描述性参数,

=-0.195,a2=0,95.设x(-l>x(-2)=0,权值Wi(O)=w2(0)=0,卩=004①推导最优滤波权值(理论分析-下)。

②按此参数设置,由计算机仿真模拟权值收敛曲线并画出,改变步长在此模拟权値变化规律。

③对仿真结果进行说明。

④应用RLS算法再次模拟最优滤波权值。

解答思路:

(1)高斯白噪声用normmd函数产生均值为0、方差为0965的正态分布随机1*N矩阵來实现。

随后的产生的信号用题目中的二阶AR模型根据公式

(1)产生,激励源是之前产生的高斯白噪声。

(2)信号长度N収为2000点,用以观察滤波器权值变化从而估计滤波器系数,得到其收敛值。

(3)仿真时分别仿真了单次LMS算法和RLS算法卜•的收敛性能以及100次取平均后的LMS和RLS算法的收敛性能,以便更好的比较观察二者的特性。

(4)在用不同的分别取3个不同的卩值仿真LMS算法时,卩值分别取为

O.ODlr0.003,0.006:

用3个不同的入值仿真RLS算法时入值分别取为1,0.58,0.94,从而分析不同步长因子、不同遗忘因子对柑应算法收敛效果的影响。

二、算法简介

1.自适应算法的基本原理

自适应算法的基本信号关系如卜图所示:

图1b自适应滤波器框图

输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号•d(n)

进行比较,形成谋差信y-e(n)oe(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)

的均方值最小。

当谋差信号e(n)的均方谋差达到最小的时候,可以证明信号y(n)是信号・d(n)的最佳估计。

2LMS算法简介

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

N-1

y(n)=》W(n)x(n-i)

o

e(n)=d(n)-y(n)

(2)

W(n+1)=州(n)+2/ze(n)x(n一i)

i=(O丄2,….N—l)

写成矩阵型式为:

y(n)=WT(n)X(n)

e(n)=ci(n)-y(n)(3)

W(n+1)=W(n)+2/ze(n)X(n)

式(3)中,W(n)为n时刻自适应滤波器的权值,W(n)=[%(n),州(n),....v^T(n)]T,

N为自适应滤波器的阶数,本设计中取为2000:

X(n)为n时刻自适应滤波器的参考输入

矢量,由锻近N个信号釆样值构成,X(n)=[x(n),x(n-l),....x(n-N+l)]T:

d(n)是期

望的输出值;c(n)为自适血濾波器的输出谋差调节信号(简称失调借号);M足控制自适应

速度与稳定性的增益常数,又叫收敛因子或步长因子。

3.RLS算法简介

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

其基本原理如卞所示:

久:

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

d(n):

参考信号,也可称为期望信号。

w(n):

第门次迭代的权值。

£(a):

均方误差。

RLS算法的准则为:

w(n)=另炉7云(k)—>min(4)

k=0

上式越旧的数据对w(ll)的影响越小。

通过计算推导得到系数的迭代方程为:

w(n)=w(n一1)+k(n)e*(n)(5)

式(5)中,增量k(n)和误差矿⑴)计算公式如下:

k(n)=T(n-l)x(n)⑹

2+xT(n)T(n-1)x(n)

e\n)=d\n)-xr(n)*w(n-l)(7)

式(6)中T(n>^_1(n),

T(n)按如下方式更新:

也就是当前时刻自相关矩阵的逆。

T(n)=(T(n-1)-k(n)*x(n)T*T(n-1))/2(8)

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

1在时刻n,w(n-l),T(n-l)和d(n),x(n)也已经存储在滤波器的相应器件中

2.利用公式(5)、⑹、(7)和(8)计算T(n)、w(n)、k(n)、"(n),并得到滤波器的输出相应y(n)和误差e(n)即:

y(n)=wT(n)x(n)(9)

e(n)=d(n)-y(n)(10)

3.进入第1】+1次迭代

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

缺点是每次迭代时都要知道输入涪兮和參考信号,计算量比较犬

三、仿真过程

仿真过程按照如卜•过程进行

(1)信号产生:

首先产生高斯白噪声序列w(n),然后将此通过一个参数为a丄二0195,

a2=0.95简单的二阶自回归滤波器生成信4x(n)o

(2)将step

(1)生成的信号通过LMS和RLS自适应滤波器进行处理

(3)通过改变R值对W-W2收敛速度的影响來分析LhlS算法的性能以及通过改变入值对Wi,W2收敛速度的影响来分析RLS算法的性能。

(4)绘制相应图形曲线四、仿真以及结果分析

信号和高斯白噪声波形如图2所示:

图2信号和高斯白噪声波形

图2中,上边的图形为信号波形,下边的为加性高斯白噪声。

LMS单次实现的权值收儉曲线

图3(a)LMS算法卜•单次收敛曲线

LMS算法下100次仿MW1(n)和W2何的平均变化曲线

图3(b)LMS算法下百次平均收敛曲线

分析1:

 

图3中,a、b两幅图分别为单次实现的LMS算法下最优权值变化过程和100次仿真实现后取平均值做的图,两个权值初始值由己知条件设置为0,之后收敛到两个定值。

a图展现了滤波器权系数迭代更新的过程,町以发现其并不是平滑的变化,而是随机起伏的,跟最陡下降法不一样,这充分说明了其权向量是一个随机过程向量,梯度噪声对其产生了一定的影响。

b图给出了100次独立实验得到的平均权向量E[w(ii)]的估计,即□口

一1丁

W(n)=丄工冈(1,其中冈血)是第t次独立实验中第n次迭代得到的权向最,T是独立实Tt-i

验次数。

可以发现,多次独立实验得到的平均权向量E[w(n)]的估计平滑了随机梯度引入的梯度噪声,十分接近理论最优权向最叫口=[-0.195,0.95「曲线足够平滑,噪声影响很小。

图3中a、b两图皆有较好的收敛特性,即使1次实现也能很好的逼近最优权值。

RLS单次实现权值收敛曲线

图4(a)RLS算法卜•单次收敛曲线

RLS算法T100次仿真W1(n)^W2(n)的平均变化曲线线

图4(b)RLS算法F百次平均收敛曲线

分析2:

图4中,a.b两幅图分别为单次实现的RLS算法下最优权值变化过程和100次仿真实现后取平均值做的图,a图中可看出权值己有较好收敛特性,两个权值初始值由已知条件设置为0,之后收敛到两个定值:

-al=0195利-a2=-0.95,,但是曲线不够平滑、噪声较人,b图经过取平均后噪声影响己经很小。

单次实现和多次实现的联系与区别也与LMS算法基本相同。

但是对以清晰地看出RLS算法收敛极。

将两种算法整合于一个图中町以看出鲜明的对比。

LMS与RLS算法单次实现的对比

图5LMS算法和RLS算法收敛曲线对比

分析3:

从图5町以看出,在“和2—定的情况卜•,RLS比LMS具有更快的收敛速度。

在算法的前期收敛段,RLS算法的收敛速度要明显高于LMS算法<

总的來说,LMS算法的收敛性和步长有关,受协方差矩阵的特征根影响,然而RLS算法一定足收敛的,II收敛速度很快,不过其迭代过程由于要求增益囚子和逆矩卩乍等,使得并算法复杂度高,计算量比较人。

接下來修改步长卩值,观察曲线的收敛情况。

图6给出了卩=001,M=003和卩=0.06三

种情况卜的最优权値变化曲线,由此分析不同步长对曲线收敛性产生的影响。

分析4:

可以看出匚MS算法中的步长参数p决定抽头权向量在每步迭代中的更新量,是影响算法收敛速度的关键参数,其决定fLMS算法学习过程的快慢。

图6展示了当收敛步长p值变小时,其均方误差的收敛速度也相应减慢,降低对实变系统的跟踪速度,不能及时调解至最优权值。

由前面的理论推导我们可以知道OV“V—-—,在这个范闱内,p越人,均方误差收敛

max

(2)

速度越快,收敛速度和步长因子成正比。

町是如果卩人于这个范I韦I会造成不稳定,较人步长会造成较人的稳态误差,帯來算法的发散。

图7入对RLS收敛速度的影响

分析5:

RLS算法中遗忘因子的作用是对离n时刻越近的误差加比较人的权重,而对离n时刻越远的误差加比较小的比重。

遗忘因子的选择对RLS算法的性能起决定性的作用。

%是个小于等于1的数,如果入越小,能最信号就越接近最新的误差平方,对前面的误差遗忘的越快,跟踪效果就越好。

但是,递推RLS算法中的误差是由期塑信号•决定的,如果九很小则误差信号对期望信号的依赖性就会很犬,所以,输出信号就很接近期望信号。

从图7町以看出,遗忘因子入越小,系统的跟踪能力越强,收敛的越快(即变平稳得越快),但是收敛值比较人;入越大,系统跟踪能力减弱,收敛时均方误差也越小,学习曲线收敛值越小。

所以,我们在用普通递推RLS算法时,一定要对入有个准确的取值,才能保证系统性能的故佳状态。

总结:

LMS算法其优点是结构简单,算法复杂度低,易于实现,稳定性高,便于硕件实现,但是这种算法收敛速度慢,对快速变化的信号不适合。

RLS算法是基于最小二乘准则的精确方法,它的收敛速度快,稳定性强,因此常被应用于实时系统识别和快速启动的信道均衡。

附件(程序代码):

%

(1)信号序列与高斯白噪声的产生

%泰数初始化

al=-0.195;%生成信号所用AR

(2)滤波器的参数

a2=0.95;

N-2000;%信号长度%信号及白噪声信号序列的初始化

x-zeros(1,N)';%信号的初始化

sigmasqu=O.0965;%噪声方差

sigma=sqrt(sigmasqu);%噪声标准差w=normrnd(0,sigma,N)z;%高斯白噪声的初始化,均值为0,方差为0.0965

x⑴-w⑴;%信号前两点的初始赋值

x

(2)—al*x(l)+w

(2);

%信号序列的产生

fori=3:

N

x(i)=-al*x(i-1)-a2*x(i-2)+w(i);号由AR

(2)产生

end

%绘制信号和高斯白噪声波形

figure

(1)

subplot(2,1,1),

plot(1:

N,x,'b-z)

axis([0,2000,-5,5])

titleC基于AR

(2)撲型产生的佶号疋);

xlabel(!

信号长度nJ;

ylabel(zx(n)z);

subplot(2,1,2),

plot(1:

N,w,zr-z);

axis([0,2000,-5,5])

titleC基于AR

(2)模型产生的高斯白噪声w(n)O;

xlabelC信号长度nz);

ylabelCw(n)z);

%%%胖%%%%%%%%%%%%%%%%%%—LMS100次叠

加%胖%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

N-2000;

M=100;%计算的次数

wl=zeros(N,M);w2=zeros(N,M);Il=eye⑵;El=zeros(N,M);wal-zeros(N,1);wa2-zeros(N,1);en-zeros(N,1);

e=zeros(1,N)z;%定义误差向量

%根据RLS算法进行递推

x-zeros(1,N)z;%信号的初始化

sigmasqu-O.0965;%噪声方差sigma-sqrt(sigmasqu);%噪声标准差w-normrnd(0,sigma,N)r;%高斯白噪声的初始化,均值为0,方差为0.0965

x⑴=w⑴;%信号前两点的初始赋值

x

(2)—al*x

(1)+w⑵;

%信号序列的产生

fori-3:

N

x(i)—a”x(i-l)-a2・x(i-2)+w(i);*ft号由AR

(2)产生

end

L=2;%滤波器长度

u=0.04;%LMS算法下自适应增益常数初始化

wL-zeros(L,N);%LMS滤波器的权值初始化

fori-(L+l):

N

X-x(i-l:

-l:

(i-L));

y(i)-Xz♦wLC,!

);%i时刻输出信号

e⑴-x(i)-y(i);%i时刻误差信号wL(:

(i+l))=wL(:

i)+2*u*e(i)*X;%i时刻滤波器的权值end;

%alR-wR(l,l:

n);%al在RLS算法下值的变化

%a2R-wR(2,l:

n);%b2在RLS算法下值的变化

wl(:

k)=wL(l,l:

N)z;w2(:

k)«wL(2,1:

N)';博次计算得到的权矢量值储存

E1(:

k)=e(:

1);%将每次计算得到的误差储存

%求权矢量和谋差的M次的平均值

wal(:

1)-wal(:

1)+wl(:

k);wa2(:

1)-wa2(:

1)+w2(:

k);en(:

1)=en(:

1)+E1(:

k);

end

%%%*%%%%%%%%%%%%%%%%%%%%%%%%%—止LMS100次叠

加%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%绘制LMS算法下al.a2单次及100次平均收敛曲线

figure

(2)

plot(1:

N,wl(1:

N,M),,/r-z,1:

N,w2(l:

N,M),,/b—z,1:

N,-a2,'k-z,1:

N,-al,zk-z);

legendCLMS-W1变化zzLMS-W2变化,,51收敛值,,52收敛值,,0);X图例titlefLMS单次实现的权值收敛曲线,);

xlabelC信号长度if);

ylabelC权值的);

figure(3)

plot(1:

N,wal(1:

N,1)・/M,'t-‘,1:

N,wa2(1:

N,1)・/M,'b—',1:

N,-a2,'k-z,1:

N,-al/k-z);%^出100次计算权矢量的平均变化曲线

xlabelCNOjylabelCWOOOjtitleCLMS算法下100次仿真Wl(n)和W2(n)的平均变化曲线々

%%RLS滤波

%%%%%%%%%%%%%%%%%%%%%%%—RLS100次叠

加%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

N-2000;

M-100;%计算的次数

w3-zeros(N,M);w4-zeros(N,M);I2-eye

(2);E2-zeros(N,M);

wa3-zeros(N,1);wa4-zeros(N,1);en2-zeros(N,1);

fork=l:

M

e=zeros(1,N)7;%定义误差向量

%根据RLS算法进行递推

x-zeros(1,N)f;%信号的初始化

sigmasqu=0.0965;%噪声方差sigma=sqrt(sigmasqu);%噪声标准差w=normrnd(0,sigma,N)z;%高斯白噪声的初始化,均值为0,方差为

0.0965

x⑴=w⑴;%佶号前两点的初始赋值

X⑵一8”X⑴+W⑵;

%信号序列的产生

fori=3:

N

x(i)—al*x(i-1)-a2*x(i-2)+w(i);号由AR

(2)产生

end

L-2;%滤波器长度

lam-O.98;%RLS算法下lambda取值

wR-zeros(L,N);%权系数,初值为0

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

fori=(L+l):

N

X=x(i-1:

-1:

(i-L));

K=(T*X)/(lam+Xz・T*X);%i时刻增益值

el-x

(1)-wR(:

i-1)f*X;

wR(:

i)-wR(:

i-l)+K*el;%:

时刻权值

y(D-wR(:

i)z*X;%输出信号

e⑴-x(i)-y(i);%预测谋差

T-(T-K*r♦D/lam;%i时刻的维纳解

end;

w3(:

k)-wR(l,:

)z;w4(:

k)-wR(2,:

)z;絳每次计算得到的权矢量值储存

E2(:

k)-e(:

1);%将每次计算得到的误差储存

%求权矢董和误差的M次的平均值

wa3(:

l)=wa3(:

l)+w3(:

k);wa4(:

1)=wa4(:

1)+w4(:

k);en2(:

1)-en2(:

1)+E2(:

k);

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%—止RLS100次叠

加%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%胖%%%%%%%帰%%%%%胖

figure(4)

plot(1:

N,w3(1:

N,M)Z,Zr-z,1:

N,w4(l:

N»M),/b—z,1:

N,-a2,'k-z,1:

N,-al,zk-z);

legendCRLS-W1变化zzRLS-W2变化z,51收敛值,,52收敛值,,0);X图例titleCRLS单次实现权值收敛曲线J;

xlabelC信号长度if);

ylabel<权值卯);

figure(5)

plot(1:

N,wa3(1:

N,1)・/M,,1:

N,wa4(1:

N,1)./M,,b—z,1:

N,-a2,'k-‘,1:

N

,-al,zk-z);%作出100次计算权矢量的平均变化曲线

xlabelfNO;ylabelfW(10,);titleCRLS算法下100次仿真(n)和W2(n)的平均变化曲线线仃

%绘制LMS与RLS算法下al、&2收敛曲线

figure(6)

plot(l:

N,wl(1:

N,l)z,zr-z,l:

N,w2(1:

N,1)z,zb:

z,1:

N,w3(1:

N,1)z,g—z,1:

N,w4(1:

N,-a2,zk-z,1:

N,-al/k-7);

legendCLMS71变化,,zLMS-W2变化,,'RLS-W1变化,,'RLS-W2变化,,zWl收敛值"2收敛值,,0);%图例

titleCLMS与RLS算法单次实现的对比,);

xlabelC信号长度『);

ylabel('权值卯);

5^3)LMS算法下不同u值的参数收敛曲线

wL-zeros(L,N,3);

eL-zeros(N,3);%LMS算法下谋差初始化

yL-zeros(N,3);%LMS算法下滤波器输出初始化

u=[0.01,0.03,0.06];%不同的u值

forj=l:

3

fori-(L+l):

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“(j)“L(i,j)“(i-1:

-1:

i-L);

end

end

alLl=wL(l,l:

N,1);

alL2=wL(l,1:

N,2);

alL3-wL(l,1:

N,3);

a2Ll-wL(2,1:

N,1);

a2L2-wL⑵1:

N,2);

a2L3-wL⑵1:

N,3);

figure(7)

plot(l:

N,alLl,'b-‘,1:

N,alL2,zt:

',1:

N,alL3,zg-^kN,-al,'L,1:

N,a2Ll/b-z,l:

N,a2L2,zr:

/,1:

N,a2L3/g-Sl:

H,-a2/V)%画图显示不同u值下LMS算法性能差别

legendCu-0.OF,zu-0.03z,zu-0.06z,7W收敛值,,0)%图例

titleCLMS算法下不同的u值对W收敛速度形响,)

xlabelC信号长度if)

ylabel<权值卯)

%⑷RLS算法下不同lambda值的参数收敛曲线

wR-zeros(2,N,3);%RLS算法下自适应滤波器参数初始化

eR-zeros(N,3);%RLS算法下谋差项初始化

yR-zeros(N,3);%RLS算法下滤波器输出初始化

lam=[l,0.98,0.94];

forj=l:

3

fori=(L+l):

N

xR-x(i-1:

-1:

i-2);

k-(T・xR)/(lam(j)+xRz^xR);

T・(T-k»xRrT)/lam(j);

eR-x(i)-xRz*wR(1:

2,i-1,j);

yR(i,j)-xRz•wR(1:

2,i-1,j);

wR(1:

2,i,j)=wR(1:

2,i-1,j)+k“R;

end

end

alRl-wR(1,1:

N,1);

alR2-wR(l,l:

N,2);

alR3-wR(l,1:

N,3);

a2Rl-wR(2,1:

N,1);

a2R2=wR(2,1:

N,2);

a2R3=wR⑵1:

N,3);

figure(8)

plot(1:

N,alRl,z1,1:

N,alR2,,r:

z,1:

N,alR3,'g-・',1:

N,-al,'k,,1:

N,

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

当前位置:首页 > 高等教育 > 历史学

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

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