📄 iir_lms.m
字号:
%IIR-LMS算法仿真
clear all;
en0=randn(1,7000); %生成标准高斯分布列
en1=randn(1,7000); %生成标准高斯分布列
x(1)=en0(1); %x(1)初值
x(2)=en0(2); %x(2)初值
y(1)=en0(1); %y(1)初值
y(2)=en0(2); %y(2)初值
d(1)=en1(1); %d(1)初值
d(2)=en1(2); %d(2)初值
for i=3:7000
x(i)=en0(i)+1.6*x(i-1)-0.8*x(i-2); %生成n>2的x(n)值
end
for j=3:7000
d(j)=x(j)-1.6*x(j-1)+0.8*x(j-2)+1.0*d(j-1)-0.58*d(j-2); %生成n>2的d(n)值
end
n=7000;
m=[0.001 0.001 0.001 0.0015 0.003]; %自适应增益常数
M=diag(m); %对角矩阵M
W=[0;-1;1;1;1]; %复合权矢量的初值
U=[x(3);x(2);x(1);y(2);y(1)]; %复合数据矢量的初值
ab(:,1)=[0;0;0;0;0];
ab(:,2)=[0;0;0;0;0];
for i=3:n
U=[x(i);x(i-1);x(i-2);y(i-1);y(i-2)]; %复合数据矢量的值
y(i)=W'*U;
ab(:,i)=U+W(4)*ab(:,i-1)+W(5)*ab(:,i-2);
delta=(-2*(d(i)-y(i))*ab(:,i));
W=W-M*delta;
w1(i)=W(1); %IIR_LMS算法中权系数a0的提取
w2(i)=W(2); %IIR_LMS算法中权系数a1的提取
w3(i)=W(3); %IIR_LMS算法中权系数a2的提取
w4(i)=W(4); %IIR_LMS算法中权系数b1的提取
w5(i)=W(5); %IIR_LMS算法中权系数b2的提取
n(i)=i;
end
figure(1),plot(n,w1,n,w2,n,w3,n,w4,n,w5),legend('a0','a1','a2','b1','b2'),grid;
% figure(2),plot(1:n,x,1:n,d);legend('x','d');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -