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

📄 lsl.m

📁 LMS和RLS算法性能的比较
💻 M
字号:
function varargout = LSL(varargin)
v=1;
m=80;
b=length(v);
if b==1
  eb0(1)=0;eb1(1)=0;eb2(1)=0;     %初始化
  ef0(1)=0;ef1(1)=0;ef2(1)=0;
  v0(1)=0;v1(1)=0;v2(1)=0;
  r0(1)=1;r1(1)=1;r2(1)=1;
  sf0(1)=v;sf1(1)=v;sf2(1)=v;
  sb0(1)=v;sb1(1)=v;sb2(1)=v;
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  rd=randn(1,m);                 %信号产生
  x(1)=rd(1);
  x(2)=rd(2);
  for i=3:m
      x(i)=1.558*x(i-1)-0.81*x(i-2)+rd(i);
  end
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  for i=2:m                       %按时间迭代
      eb0(i)=x(i);
      ef0(i)=x(i);
      sf0(i)=sf0(i-1)+x(i)*x(i);
      sb0(i)=sf0(i);
      r0(i)=1;
  end
  for i=2:m           
      v1(i)=v1(i-1)+eb0(i-1)*ef0(i)/r0(i-1);
      ef1(i)=ef0(i)-v1(i)*eb0(i-1)/sb0(i-1);
      eb1(i)=eb0(i-1)-v1(i)*ef0(i)/sb0(i);
      sf1(i)=sf0(i)-v1(i)^2/sb0(i-1);
      sb1(i)=sb0(i-1)-v1(i)^2/sf0(i);
      r1(i-1)=r0(i-1)-eb0(i-1)*eb0(i-1)/sb0(i-1);
      kf1(i)=v1(i)/sf0(i);
      kb1(i)=v1(i)/sb0(i-1);
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      v2(i)=v2(i-1)+eb1(i-1)*ef1(i)/r1(i-1);
      ef2(i)=ef1(i)-v2(i)*eb1(i-1)/sb1(i-1);
      eb2(i)=eb1(i-1)-v2(i)*ef1(i)/sb1(i);
      sf2(i)=sf1(i)-v2(i)^2/sb1(i-1);
      sb2(i)=sb1(i-1)-v2(i)^2/sf1(i);
      r2(i-1)=r1(i-1)-eb1(i-1)*eb1(i-1)/sb1(i-1);
      kf2(i)=v2(i)/sf1(i);
      kb2(i)=v2(i)/sb1(i-1);
  end
  for i=2:m
      w1(i)=kb1(i)-kf1(i-1)*kb2(i);
      w2(i)=kb2(i);
      n(i)=i;
  end
  plot(n,w1,'r-',n,w2,'b-')
  ylim([-1.5 2]);
  xlabel('迭代次数\fontsize{15}n');
  ylabel('参数\fontsize{15}a\fontsize{13}1,\fontsize{15}a\fontsize{13}2');
  grid on
  hold on;end
%%%%%%%%%%LMS算法实现%%%%%%%%%%%%%%%%
mu=0.005;
num=80;%将输入量赋值
u=mu;%将输入量赋值
a1=1.588;a2=-0.81;
w1(1)=0;w2(1)=0;
w1(2)=0;w2(2)=0;
rd=randn(1,m);
x(1)=rd(1);
x(2)=rd(2);
for i=3:m
   x(i)=1.558*x(i-1)-0.81*x(i-2)+rd(i);
end
W=[0 0]';
X=[x(1)  0]';
e(2)=x(2)-W'*X;
n(1)=1;
n(2)=2;
%%%%%%%%%%  
  for  i=3:m   %权系数迭代m次   
       W=W+2*u*X*e(i-1);   %LMS算法的权系数迭代公式
       X=[x(i-1)  x(i-2)]';  %LMS算法中输入信号矢量的递推
       e(i)=x(i)-W'*X;
       w1(i)=W(1);    %LMS算法中权系数a1的提取
       w2(i)=W(2);  %LMS算法中权系数a2的提取
       n(i)=i;   
end

plot(n,w1,'k-',n,w2,'g-'); 
hold on;
title('LSL和LMS算法估计信号模型参数的性能比较');
xlabel('迭代次数');
ylabel('权值变化');
legend('a1(n)-LSL','a2(n)-LSL','a1(n)-LMS','a2(n)-LMS');
grid on;
hold off;
figure(2)
plot(x); 
grid on;%显示输入序列

⌨️ 快捷键说明

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