📄 autoadaption2.m
字号:
function LMS2(M,p,L,d)
%输入阶数,样本个数,噪声方差
%=2;
%=100;
%d=1;
%真正的模型系数
a1=-1.3;
a2=0.8;
%步长
u=0.01;
%%%%%%%%%%%%%%产生噪声w并得到y样本
w=sqrt(d)*randn(1,L);
y(1)=w(1);
y(2)=-a1*y(1)+w(2);
for i=3:1:L
y(i)=-a1*y(i-1)-a2*y(i-2)+w(i);
end
%滤波
A1=zeros(1,L);
A2=zeros(1,L);
e=zeros(1,L);
Yg(1)=w(1);
e(1)=y(1)-Yg(1);
Yg(2)=-A1(1)*y(1);
e(2)=y(2)-Yg(2);
for i=3:1:L
Yg(i)=-A1(i)*y(i-1)-A2(i)*y(i-2);
e(i)=y(i)-Yg(i);
A1(i+1)=A1(i)-2*u*e(i)*y(i-1);
A2(i+1)=A2(i)-2*u*e(i)*y(i-2);
end
n=1:1:L;
subplot(3,1,1);
plot(n,A1(n),'r',n,a1,'b');
legend('A1(n)','a2');
title('估计产生的ar系数A1和实际的参数a1');
subplot(3,1,2);
plot(n,A2(n),'r',n,a2,'b');
title('估计产生的ar系数A2和实际的参数a2');
legend('A2(n)','a2');
subplot(3,1,3);
plot(n,y,'r',n,Yg,'b');
legend('y(n)','Yg(n)');
A1(100)
A2(100)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -