声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1825|回复: 1

[滤波] 请教一个关于LMS算法的小程序

[复制链接]
发表于 2006-12-16 16:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我是个新手,学了自适应滤波后想做个小例子练练,用了基本LMS算法,更新步长mu的取值是自己试了几次试出来的(其实我是看书上确定mu的公式太难了就懒省事了)。
输入信号是正弦波加高斯白噪声,关键是想绘制出迭代次数n和均方误差的学习曲线图,书上的算法我还能理解,可是要变成matlab语言就有问题了,一些运算也不知道表示的对不对。更奇怪的是输出结果的第二个图,坐标原点不对,还没图像。下面附上程序

clear
clc
t=0:0.01:5;
s=sin(2*pi*t);
d=sin(2*pi*t);
s_noise=randn(size(t));
u=s+s_noise;

mu=0.0002;
M=32;                  %指定滤波器阶数
W=zeros(1,M);          %权系数初始化
for n=1:1000 ;          % LMS
y1=conv(u,W);           
y=y1(1:length(d));
e=d-y;
W=W+mu*u*e';
E=d-y ;
J=(E*E');
J1=mean(E*E');
J=20*log10(abs(J1))%
end;

figure(1);
subplot(2,1,1),plot(t,s,t,u);legend('s','u');
title('滤波前');;
subplot(2,1,2),plot(t,s,t,y);legend('s','y');
title('滤波后');
figure(2);
plot(n,J);title('学习曲线');

[ 本帖最后由 zhangnan3509 于 2007-7-4 10:56 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-12-18 09:59 | 显示全部楼层
我昨晚运行了一下程序,有几点个人看法:
1、第二个图不是没有图像,而是在n=1000处有一点,你可以仔细看看。
2、由第二个图和变量可以看出,你的J的值一直都没有变化,你再看看算法是否由问题。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-1 10:02 , Processed in 0.084604 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表