www.pudn.com > LMS_adaptive_filter11.rar > LMS_adaptive_filter11.m


function LMS_adaptive_filter;%定义功能函数 
samples_per_period=40;%周期采样频率 
N=10*samples_per_period-1;%总采样次数 
signal=sin(2*pi*0.02*[0:N-1]);%初始输入信号 
figure;%作图1的第一子图 
subplot(2,1,1); 
plot(signal); 
grid; 
title('不含噪声信号'); 
nvar=0.5;%噪声方差 
noise=nvar*randn(1,N);%噪声信号 
X=signal+noise;%带加性噪声的输入信号 
delayX=[0 X];%输入信号延时 
SIGNAL=[signal 0]; 
M=32;%滤波器长度 
mu=0.035;%迭代步长 
subplot(2,1,2);%作图1的第二子图 
plot(delayX); 
grid; 
title('自适应滤波器含噪声输入'); 
initial_status=initlms(zeros(1,M),mu);%滤波器设初值 
[Y,e,initial_status]=adaptlms(X,SIGNAL,initial_status);%LMS自适应滤波器输出 
figure;%作图2的第一子图 
subplot(2,1,1); 
plot(0:N-1,Y,'.',0:N,SIGNAL,'k'); 
grid; 
title('预测信号与实际信号的比较'); 
legend('预测信号,实际信号'); 
error=signal-Y;%输出误差信号 
subplot(2,1,2);%作图2的第二子图 
plot(error); 
grid; 
title('自适应滤波器的预测误差');