当前位置:文档之家› LMS算法

LMS算法

LMS算法
LMS算法

自适应信号处理算法(LMS算法)

近来有许多同学想我询问LMS算法的仿真程序,这里提供一个从别处下载下来的,要验证。%自适应信号处理算法

clear all;

hold off;

sysorder=5; %抽头数

N=1000; %总采样次数

n1=randn(N,1);%产生高斯随机系列

n2=randn(N,1);

[b,a]=butter(2,0.25);

Gz=tf(b,a,-1); %逆变换函数

h=[0.0976;0.2873;0.3360;0.2210;0.0964;]; %信道特性向量

y = lsim(Gz,n1);%加入噪声

noise = n2 * std(y)/(10*std(n2));%噪声信号

d = y + noise;%期望输出信号

totallength=size(d,1);%步长

N=60 ; %60节点作为训练序列

%算法的开始

w = zeros ( sysorder , 1 ) ;%初始化

for n = sysorder : N

u = inp(n:-1:n-sysorder+1) ;% u的矩阵

y(n)= w' * u;%系统输出

e(n) = d(n) - y(n) ;%误差

if n < 20

mu=0.32;

else

mu=0.15;

end

w = w + mu * u * e(n) ;%迭代方程end

%检验结果

for n = N+1 : totallength

u = inp(n:-1:n-sysorder+1) ;

y(n) = w' * u ;

e(n) = d(n) - y(n) ;%误差

end

hold on

plot(d)

plot(y,'r');

title('系统输出') ;

xlabel('样本')

ylabel('实际输出')

figure

semilogy((abs(e))) ;% e的绝对值坐标title('误差曲线') ;

xlabel('样本')

ylabel('误差矢量')

figure%作图

plot(h, 'k+')

hold on

plot(w, 'r*')

legend('实际权矢量','估计权矢量') title('比较实际和估计权矢量') ;

相关主题
文本预览
相关文档 最新文档