📄 lms_demo.asv
字号:
clear
clc
sysorder = 2 ;%自适应滤波器抽头数
N = 1000;%总采样次数
x = randn(N,1)';%产生高斯随机系列,均值0,方差为1
v = sqrt(0.04)*randn(N,1)';%产生高斯随机系列,均值0,方差为0.04
w1 = [0.8,0.5]';
for n = sysorder : N
b = x(n:-1:n-sysorder+1)';% b的矩阵
m(n)= w1' * b;%系统输出
end
d = m + v;%期望输出信号
d = d';
totallength = size(d,1);%步长
%N=1000 ;
%算法的开始
w = zeros ( sysorder,1) ;%初始化
for n = sysorder : N
u = x(n:-1:n-sysorder+1)';% u的矩阵
y(n)= w' * u;%系统输出
e(n) = d(n) - y(n) ;%误差
% mu(n)=0.2*(1-exp(-10000*abs(e(n))^3)-0.5);
mu(n)=0.2*(1-exp(-20*abs(e(n))*abs(e(n-1))));
w = w + mu(n) * e(n)*u;%迭代方程
end
figure(1)
semilogy((abs(e))) ;% e的绝对值坐标
axis([0 1000 10^(-3) 10^0]);
figure(2)
subplot(311),plot(d),xlabel('t'),ylabel('Desired Signal') ;
subplot(312),plot(y),xlabel('t'),ylabel('Output Signal');
subplot(313),plot(e),xlabel('t'),ylabel('Error Signal') ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -