⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lms.m

📁 matlab,自适应滤波算法
💻 M
字号:
%%%%%%%%%%%%%%%%%%%% 绘制自适应权系数的过渡过程图   P63 图3.15
%%%%%%%%%%%%%%%%%%%% 序列由零均值、单位方差的白噪声通过一个二阶自回归模型产生

%%%%%%%%%%%%%%%%%%%% 参数输入 %%%%%%%%%%%%%%%%%%%%
clc;
clear all;
m = 500;    % 迭代次数
u = 0.002;  % 步长
lamada = 1; % 收敛因子
a1 = -1.6;  % 模型参数
a2 = 0.8
%=================================================

%%%%%%%%%%%%%%%%%%%% 产生序列 %%%%%%%%%%%%%%%%%%%%
en = randn(1,m);
en = (en-mean(en))/var(en);     % 将en标准化
x(1) = en(1);                   % 赋初值
x(2) = en(2);
for i = 3 : m
    x(i) = -a1*x(i-1)-a2*x(i-2)+en(i);
end
%=================================================

%%%%%%%%%%%%%%%%%%%% 判断步长取值是否在收敛范围内 %%%%%%%%%%%%%%%%%%%%
trR = m*mean(x.^2);
if u<=0
    error('步长超出范围');
else if u>=trR
    error('步长超出范围');
    end
end
%==================================================================

%%%%%%%%%%%%%%%%%%%% 赋初始值 %%%%%%%%%%%%%%%%%%%%
X = [x(2) ; x(1)];
w1 = [0 ; -1];       % 权系数赋初值
w2 = w1;
R = [0 0 ; 0 0];     % 自相关矩阵初值R(-1)=0
e1(2) = x(2)-w1'*X;  % 产生误差信号(LMS)
%=================================================

%%%%%%%%%%%%%%%%%%%% 估计权系数 %%%%%%%%%%%%%%%%%%%%
for k = 3 : m
    w1 = w1+2*u*e1(k-1)*X;       % LMS算法的权系数迭代公式
    X = [x(k-1);x(k-2)];         % 下一时刻的输入信号
    e1(k) = x(k)-w1'*X;          % 下一时刻的输出信号误差e(n)
    R = lamada*R+ X*X';          % 迭代公式中自相关矩阵的计算
    e2 = x(k)-w2'*X;             % 下一时刻的输出信号误差e(n\n-1)   
    w2 = w2+inv(R)*X*e2;         % RLS算法的权系数迭代公式
    a11(k) = -w1(1);
    a22(k) = -w1(2);
    b11(k) = -w2(1);
    b22(k) = -w2(2);
    n(k) = k;
end
%=================================================

%%%%%%%%%%%%%%%%%%%% 绘制图形 %%%%%%%%%%%%%%%%%%%%
plot(n,a11,'k',n,a22,'k');   % 绘制LMS算法权系数的收敛特性图
hold on;
plot(n,b11,'b',n,b22,'b');   % 绘制RLS算法权系数的收敛特性图
hold on;
plotyline(0.8,'r');hold on;
plotyline(-1.6,'r');     % 绘制理想权系数图
legend('LMS算法权系数收敛特性a1','LMS算法权系数收敛特性a2',...
    'RLS算法权系数收敛特性a1','RLS算法权系数收敛特性a2',...
    '理想权系数a1','理想权系数a2','Location','East');
xlabel('迭代次数 n');ylabel('权系数 a');
ylim([-2 1.5])
grid on 
%=================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -