📄 lms_basis_zuoye.m
字号:
% LMS
N = 1000;
n = 0:N-1;
s = sin(2*pi*n/10);
u = s + 0.36*randn(1,N);
figure(1);
plot(n,u);
title('信号叠加噪声波形图');
xlabel('n');ylabel('u');
y = zeros(1,N);
vare = zeros(1,N);
estd = zeros(1,N);
e = zeros(1,N);
y(1:10) = u(1:10);
mu = 0.0008;
w0(10) = 0;
w1(10) = 0;
w2(10) = 0;
w3(10) = 0;
w4(10) = 0;
w5(10) = 0;
w6(10) = 0;
w7(10) = 0;
w8(10) = 0;
w9(10) = 0;
w10(10) = 0;
for n=11:1000
e(n) = s(n) - [w0(n-1), w1(n-1), w2(n-1), w3(n-1), w4(n-1), w5(n-1), w6(n-1),w7(n-1), w8(n-1), w9(n-1), w10(n-1)] * [u(n); u(n-1); u(n-2); u(n-3); u(n-4); u(n-5); u(n-6); u(n-7); u(n-8); u(n-9); u(n-10)];
a(n) = ([u(n-1),u(n-2),u(n-3),u(n-4),u(n-5),u(n-6),u(n-7),u(n-8),u(n-9),u(n-10),u(n-11)]*[u(n); u(n-1); u(n-2); u(n-3); u(n-4); u(n-5); u(n-6); u(n-7); u(n-8); u(n-9); u(n-10)])/([u(n-1),u(n-2),u(n-3),u(n-4),u(n-5),u(n-6),u(n-7),u(n-8),u(n-9),u(n-10),u(n-11)]*[u(n-1); u(n-2); u(n-3); u(n-4); u(n-5); u(n-6); u(n-7); u(n-8); u(n-9); u(n-10); u(n-11)]);
v(n:-1:(n-10)) =u(n:-1:(n-10)) - a(n)*u((n-1):-1:(n-11));
l(n) = (p*e(n))/(u(n:-1:(n-10))'*v(n:-1:(n-10)));
w0(n) = w0(n-1) + l(n) * v(n);
w1(n) = w1(n-1) + l(n) * v(n-1);
w2(n) = w2(n-1) + l(n) * v(n-2);
w3(n) = w3(n-1) + l(n) * v(n-3);
w4(n) = w4(n-1) + l(n) * v(n-4);
w5(n) = w5(n-1) + l(n) * v(n-5);
w6(n) = w6(n-1) + l(n) * v(n-6);
w7(n) = w7(n-1) + l(n) * v(n-7);
w8(n) = w8(n-1) + l(n) * v(n-8);
w9(n) = w9(n-1) + l(n) * v(n-9);
w10(n) = w10(n-1) + l(n) * u(n-10);
y(n) = [w0(n), w1(n), w2(n), w3(n), w4(n), w5(n), w6(n),w7(n), w8(n), w9(n), w10(n)] * [u(n); u(n-1); u(n-2); u(n-3); u(n-4); u(n-5); u(n-6); u(n-7); u(n-8); u(n-9); u(n-10)];
vare(n) =e(n)^2;
estd(n) = vare(n:N)*vare(n:N)'/N;
end
figure(2);
plot(y);
title('u = 0.0008时自适应滤波输出');
xlabel('n');ylabel('y');
figure(3);
plot(vare);
title('LSM自适应滤波器的学习曲线 ');
xlabel('n');ylabel('e(n)^2');
figure(4);
plot(estd);
title('LSM自适应滤波器E[e(n)^2]--n图 ');
xlabel('n');ylabel('E[e(n)^2]');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -