声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 773|回复: 1

[综合讨论] 求助为何用lms方法提取原信号出错

[复制链接]
发表于 2008-4-22 09:43 | 显示全部楼层 |阅读模式

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

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

x
%get the signal
n=2000;
s=ones(n,1);%欲得到的信号
subplot 411;plot(s);grid;axis([0 2000 -5 5]);
v=2*(sin(0.3*pi*(1:n))+sin(0.6*pi*(1:n))+sin(0.9*pi*(1:n)));
v=v';
x=s+v;%加入噪声后的信号
subplot 412;plot(x);grid;axis([0 2000 -5 5]);
%initialization
sysorder=6;
w=zeros(sysorder,1);
len=length(x);
%algorithm
for n=sysorder:len
    X=x(n:-1:n-sysorder+1);
    y(n)=X'*w;%用lms处理后的信号
    e(n)=s(n)-y(n);%误差信号
     if n<20
        mu=0.02;
    else
        mu=0.01;
     end
    w=w+2*mu*X*e(n);  
end
subplot 413;plot(y);grid;axis([0 2000 -5 5]);
subplot 414;plot(e);grid;axis([0 2000 -5 5]);
得到结果如图
%get the signal
n=2000;
s=ones(n,1);
subplot 411;plot(s);grid;axis([0 2000 -5 5]);
v=2*(sin(0.3*pi*(1:n))+sin(0.6*pi*(1:n))+sin(0.9*pi*(1:n)));
v=v';
x=s+v;
subplot 412;plot(x);grid;axis([0 2000 -5 5]);
%initialization
sysorder=6;
w=zeros(sysorder,1);
len=length(x);
%algorithm
for n=sysorder:len
    X=x(n:-1:n-sysorder+1);
    y(n)=X'*w;
    e(n)=s(n)-y(n);
     if n<20
        mu=0.02;
    else
        mu=0.01;
     end
    w=w+2*mu*X*e(n);  
end
subplot 413;plot(y);grid;axis([0 2000 -5 5]);
subplot 414;plot(e);grid;axis([0 2000 -5 5]);
为何处理后的信号y不是欲得到信号呢

[ 本帖最后由 eight 于 2008-4-22 09:53 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-4-22 09:54 | 显示全部楼层
原帖由 paranoidkid 于 2008-4-22 09:43 发表
%get the signal
n=2000;
s=ones(n,1);%欲得到的信号
subplot 411;plot(s);grid;axis([0 2000 -5 5]);
v=2*(sin(0.3*pi*(1:n))+sin(0.6*pi*(1:n))+sin(0.9*pi*(1:n)));
v=v';
x=s+v;%加入噪声后的信号
subp ...
建议这么专业的问题自己设置一下断点并调试程序,看看哪个地方出问题了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-4 18:01 , Processed in 0.055335 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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