matlab lms自适应滤波,基于LMS算法的自适应滤波收敛性的Matlab仿真

Author :Jeffrey

白噪声经过AR模型的输出作为LMS滤波器的输入,已知:a1=1.558;a2=-0.81;白噪声方差为1.0,均值为0;u=0.002;利用Matlab实现:

(1)给出单次运算和200次运算的LMS算法学习曲线

(2)给出单次运算和200次运算的权值随n变换曲线

源程序:

%Author:Jeffrey

%My blog: http://blog.csdn.net/gueter/

%DATE: 2007年03月31日 星期六 15时45分49秒

%Eviroment :kernel:2.6.15-28-686

%           Matlab6.5

clear all

clear

tic;

a1=1.558;

a2=-0.81;

b=1;

e2=zeros(201,2048);

w11=zeros(201,2048);

w21=zeros(201,2048);

u=zeros(201,2048);

for k=1:200

v=randn(1,2048);

w1=zeros(1,2049);

w2=zeros(1,2049);

k1=0.002;

for n=3:2048

u(n)=v(n)+a1*u(n-1)+a2*u(n-2);

y(n)=w1(n)*u(n-1)+w2(n)*u(n-2);

e(n)=u(n)-y(n);

e1(n)=e(n)*e(n);

w1(n+1)=w1(n)+2*k1*e(n)*u(n-1);

w2(n+1)=w2(n)+2*k1*e(n)*u(n-2);

end;

e2(k+1,:)=e1(1:2048)+e2(k,:);

w11(k+1,:)=w1(1:2048)+w11(k,:);

w21(k+1,:)=w2(1:2048)+w21(k,:);

end;

e3=e2(201,:)/200;

w13=w11(201,:)/200;

w22=w21(201,:)/200;

figure(1)

subplot(1,2,1)

plot(e1,'r')

hold on

plot(e3,'k');

hold off

subplot(1,2,2)

plot(w1,'m');

hold on

plot(w2,'y')

plot(w13,'k');

plot(w22,'r');

hold off

toc

运行结果见下图:

r_LMS.jpg

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值