📄 lms gal.m
字号:
clear;
close all
N=1024;
M=3;
a1=1.558;
a2=-0.81;
k=zeros(M,N+1);
w1=zeros(1,N+1);
w2=zeros(1,N+1);
ef=zeros(M,N);
eb=zeros(M,N);
u=0.002;
x= randn(1,N);
xu(1)=x(1);
xu(2)=a1*xu(1)+x(2);
for n=3:N
xu(n)=x(n)+a1*xu(n-1)+a2*xu(n-2);
end
eb(1,:)=xu;
ef(1,:)=xu;
for n=2:N
for p=2:M
ef(p,n)=ef(p-1,n)-k(p,n)*eb(p-1,n-1);
eb(p,n)=eb(p-1,n-1)-k(p,n)*ef(p-1,n);
k(p,n+1)=k(p,n)+2*u*(ef(p,n)*eb(p-1,n-1)+eb(p,n)*ef(p-1,n));
end
w1(n+1)=k(2,n+1)*(1-k(3,n+1));
w2(n+1)=k(3,n+1);
end
wt1=zeros(1,N+1);
wt2=zeros(1,N+1);
e=zeros(1,N);
for n=3:N
y(n)=wt1(n)*xu(n-1)+wt2(n)*xu(n-2);
e(n)=xu(n)-y(n);
wt1(n+1)=wt1(n)+2*u*e(n)*xu(n-1);
wt2(n+1)=wt2(n)+2*u*e(n)*xu(n-2);
end
plot(w1,'r')
hold on
plot(w2,'b')
plot(wt1,'m')
plot(wt2,'k')
legend('格型算法的w1(n)','格型算法的w2(n)','横向算法的w1(n)','横向算法的w2(n)')
hold off
axis([0,1024,-1,2])
title('基于最小均方误差的横向算法和格行算法的权系数变化比较曲线')
xlabel('n');
ylabel('w(n)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -