• 大小: 708B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: LMS  RLS  自适应  matlab  

资源简介

通过matlab编程来实现LMS 与RLS 算法的实现,在相同的参数下,通过matlab图表观察两者收敛速度的快慢,是自适应信号学习者很好的参考

资源截图

代码片段和文件信息

close all;
clear all;
clc;
DataLength=600;
RunTimes=500;
NoiseVar=0.001;
FilterStep=11;
Delay=6;
w=[2.9 3.1 3.3 3.5];
u=0.038;
Colors=[100;010;001;000;1.51;0.2.80.4;0.30.60.1;00.30.5];
for t=1:4
    h=0.5*(1+cos((2*pi/w(t))*((1:3)-2)));
    TempNo=DataLength+FilterStep;
    E1=zeros(DataLength1);
    E2=zeros(DataLength1);
   for iter=1:RunTimes 
       OriSig=randsrc(TempNo1[-11;0.50.5]);
       ConvSig=conv(OriSigh);
       ConvSig=ConvSig(1:TempNo);
       Signal=ConvSig+sqrt(NoiseVar)*randn(length(ConvSig)1);
       X=zeros(1FilterStep);
       Y=OriSig(Delay:Delay+DataLength-1);
       W=zeros(1FilterStep);
       for n=1:DataLength
           X=Signal(n:n+FilterStep-1)‘;
           Epshino(n:)=Y(n:)-X*W‘;
           W=W+2*u*Epshino(n:)‘*X;
       end
       E1=E1+Epshino.^2;
       W1=zeros(1FilterStep);
       Q=eye(FilterStep);
       for n=1:DataLength
           X=Signal(n:n+FilterStep-1)‘;
           R=Q*X‘/(1+X*Q*X‘);
           Epshino(n:)=Y(n:)-X*W1‘;
           W1=W1+R‘*Epshino(n:);
           Q=Q-R*(X*Q);
       end
       E2=E2+Epshino.^2;
   end
   E1=E1/RunTimes;
   E2=E2/RunTimes;
   figure(1);
   semilogy(E1‘color‘Colors(t:));
   title(‘The Competetion Between LMS-RLS‘);
   hold on;
   semilogy(E2‘color‘Colors(t+4:));
   str=[‘LMS(w=2.9)‘;‘LMS(w=3.1)‘;‘LMS(w=3.3)‘;‘LMS(w=3.5)‘;‘RLS(w=2.9)‘;‘RLS(w=3.1)‘;‘RLS(w=3.3)‘;‘RLS(w=3.5)‘];
   legend(str);
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1481  2011-04-13 18:35  LMS-RLS.m

----------- ---------  ---------- -----  ----

                 1481                    1


评论

共有 条评论