自适应滤波器LMS算法对声信号噪声的滤除用MATLAB编程怎么做啊?

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:36:18
LMS算法时误差曲线(Error Curve)怎么用MATLAB编程最后出图

>> clear all;
g=100;
N=256;
k=16;
pp=zeros(g,N-k);
u=0.01;
for q=1:g,
t=1:N;
a=1;
s=a*sin(0.05*pi*t);
figure(1);
subplot(3,1,1)
plot(t,real(s));
title('信号s时域波形');
xlabel('n');
ylabel('s');
axis([0,N,-a-1,a+1]);
xn=awgn(s,5);
y=zeros(1,N);
y(1:k)=xn(1:k);
w=zeros(1,k);
e=zeros(1,N);
for i=(k+1):N,
XN=xn((i-k+1):i);
y(i)=w*XN';
e(i)=s(i)-y(i);
w=w+u*e(i)*XN;
end
pp(q,:)=(e((k+1):N)).^2;
end
subplot(3,1,2)
plot(t,real(xn));
title('信号s加噪声后的时域波形');
subplot(3,1,3)
plot(t,real(y));
title('自适应滤波后的输出时时域波形');
for c=1:N-k;
bi(c)=sum(pp(:,c))/g;
end;
figure(2);
T=1:N-k;
plot(T,bi,'b');
hold on