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

📄 mylms_lsl.m

📁 本文件是比较LMS与LSL滤波器的参数的收敛速度
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%RLS与LMS权系数a1(n)的比较%%%%%%%%%%%%%%%%
%初始化内存空间
clear;
clf;
clc;
%初始化参数
mu=0.002;      
M=3;       
deta=2; 
%待仿真的权系数
a1=1.558;    
a2=-0.81;    
% 设定时间序列点数
N=950; 
% 产生随机信号
Nsignal=randn(N,1);
%begin of algorithm
%LMS实现算法
d= filter([1 a1 a2],[1 0 0],Nsignal);
%初始化权矢量
LMSw = zeros(3,1) ;
for n =3 : N
    u= Nsignal(n:-1:n-3+1) ;
    yl(n)= LMSw' * u;
    el(n) = d(n) - yl(n) ;
    LMSw = LMSw + 2*mu * u * el(n) ;
    LMSa1(n)=LMSw(2);
    LMSa2(n)=LMSw(3);
end
figure
hold on %锁定图像
%输出LMS的仿真波形
plot(LMSa1,'b')
plot(LMSa2,'b')
% LSL实现算法
x=filter(1,[1 -a1 -a2],Nsignal);%二阶自回归信号模型
%初始化相关的参量
Deta(1:M,1)=1;
sef(1:M,1)=3;
seb(1:M,1)=3;
gama(1:M,1)=1.0;
%实现算法
for m=1:M-1
   for n = 2 : N
       eb(1,n)=x(n);
       ef(1,n)=x(n);
       seb(1,n)=sef(1,n-1)+x(n)*x(n);
       sef(1,n)=sef(1,n-1)+x(n)*x(n);
       gama(1,n)=1;
        Deta(m+1,n)=Deta(m+1,n-1)+eb(m,n-1)*ef(m,n)/gama(m,n-1);
        ef(m+1,n)=ef(m,n)-Deta(m+1,n)*eb(m,n-1)/seb(m,n-1);
        eb(m+1,n)=eb(m,n-1)-Deta(m+1,n)*ef(m,n)/sef(m,n);
        sef(m+1,n)=sef(m,n)-Deta(m+1,n)*Deta(m+1,n)/seb(m,n-1);
        seb(m+1,n)=seb(m,n-1)-Deta(m+1,n)*Deta(m+1,n)/seb(m,n);
        gama(m+1,n-1)=gama(m,n-1)-eb(m,n-1)*eb(m,n-1)/seb(m,n-1);
        kf(m+1,n)=Deta(m+1,n)/sef(m,n);
        kb(m+1,n)=Deta(m+1,n)/seb(m,n-1);
    end
end
kb(:,1)=0;%初始kb,kf的值都是0,根据递推关系可以算出
kf(:,1)=0;
for n=1:N
    a1n(n)=kb(2,n)-kf(2,n)*kb(3,n);
    a2n(n)=kb(3,n);
end
plot(a1n,'g')
plot(a2n,'r')
title('LSL 与 LMS 性能参数比较') 
xlabel('n')
hold off



⌨️ 快捷键说明

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