rls.m

来自「自适应算法 主要用于自适应天线的算法防真程序」· M 代码 · 共 37 行

M
37
字号
function [e,h]=rls(y,fl,lambda,sigma);
% [e,h]=rls(y,fl,lambda,sigma)
%	y = input signal
%	fl = filter length
%	lambda = forgetting factor (0<lambda<=1)
%	sigma = initialization value
%	e = error signal
%	h = filter coefficients
%
% ref _Adaptive_Filters_ by Cowan and Grant, p34

% cjm 13mar95
% Chris McCormack / Radiation Laboratory / University of Michigan
%                                            c.mccormack@ieee.org

if sigma==0; sigma=cov(y); end
if lambda==0; lambda=.1; end
if fl<1;
   e='rls : Illegal filter length'
  else
   sl=size(y);
   if sl(1)<sl(2); y=y'; sl=sl(2); end
   sl=sl(1);			% set up length of signal
   e=zeros(sl,1);		% initialize
   h=zeros(fl,1);
   p=sigma*eye(fl);
   phi=zeros(fl,1);
   for n=1:sl;
      e(n)=y(n)-phi'*h;
      df=1/(lambda+phi'*p*phi);
      k=p*phi*df;
      p=(p-p*phi*df*phi'*p)/lambda;
      h=h+k*e(n);
      phi=[y(n); phi(1:fl-1)];
   end
end

⌨️ 快捷键说明

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