求助为何用lms方法提取原信号出错
%get the signaln=2000;
s=ones(n,1);%欲得到的信号
subplot 411;plot(s);grid;axis();
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();
%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();
subplot 414;plot(e);grid;axis();
得到结果如图
%get the signal
n=2000;
s=ones(n,1);
subplot 411;plot(s);grid;axis();
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();
%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();
subplot 414;plot(e);grid;axis();
为何处理后的信号y不是欲得到信号呢
[ 本帖最后由 eight 于 2008-4-22 09:53 编辑 ] 原帖由 paranoidkid 于 2008-4-22 09:43 发表 http://www.chinavib.com/forum/images/common/back.gif
%get the signal
n=2000;
s=ones(n,1);%欲得到的信号
subplot 411;plot(s);grid;axis();
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 ... 建议这么专业的问题自己设置一下断点并调试程序,看看哪个地方出问题了
页:
[1]