matlab数字信号与应用源代码7
源代码在线查看: 7-7.m
%例程7-7 自适应信号分离器
%自适应信号分离器
t=0:1/10:400;
s=sin(2*pi*t/10); %周期信号
x=awgn(s,15);
D=50;%延迟
r=[zeros(1,D),x]; %信号延迟D
x=[x zeros(1,D)];
N=5; %r经LMS自适应滤波
u=0.02;
M=length(r);
y=zeros(1,M);
w=zeros(1,N);
for n=N:M
x1=r(n:-1:n-N+1);
y(n)=w*x1';
e(n)=x(n)-y(n);
w=w+u.*e(n).*x1;
end
subplot(3,1,1);
plot(t,x(1:(length(x)-D)));
title('输入信号');
axis([1 200 -1.2 1.2]);
subplot(3,1,2);
plot(t,y(1:(length(x)-D)));
title('周期信号');
axis([1 200 -1.2 1.2]);
subplot(3,1,3);
plot(t,e(1:(length(x)-D)));
title('宽带信号');
axis([0 200 -1.2 1.2]);