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

📄 rls4.m

📁 《自适应滤波算法与实现》(第二版)源码
💻 M
字号:

%RLS4 Problem 1.1.2.2
%
%   'ifile.mat' - input file containing:
%      I - members of ensemble
%      K - iterations
%      sigmax - standard deviation of input
%      lambdaW, sigmaW - parameters of first-order Markov 
%                        processes which generate Wo
%      Wo0 - initial coefficient vector of plant
%      sigman - standard deviation of measurement noise
%      lambda - forgetting factor
% 
%   'ofile.mat' - output file containing:
%      ind - sample indexes 
%      texcMSE - total excess MSE 

clear all	% clear memory
load ifile;	% read input variables
L=length(Wo0);		% plant and filter length
N=L-1;			% plant and filter order
delta=1/sigmax^2;	% initialization factor for SD
ilambda=1/lambda;	% auxiliary constant
MSE=zeros(K,1);		% prepare to accumulate MSE*I
minMSE=zeros(K,1);	% prepare to accumulate minMSE*I

for i=1:I,		% ensemble
   X=zeros(L,1);    	% initial memory
   SD=delta*eye(L);	
	% initial inverse of deterministic correlation matrix
   Wo=Wo0;		% initial coefficient vector of plant
   W=zeros(L,1);	% initial coefficient vector
   x=randn(K,1)*sigmax;		% input 
   nW=randn(L,K)*sigmaW;
 	% input to Markov processes which generate Wo 
   n=randn(K,1)*sigman;		% measurement noise 
   for k=1:K,		% iterations
      X=[x(k)		
         X(1:N)];	% new input vector
      Wo=lambdaW*Wo+nW(:,k);	
			% new coefficient vector of plant
      d=Wo'*X;		% desired signal sample	
      ep=d+n(k)-W'*X;	% a priori error sample
      psi=SD*X;
      SD=ilambda*(SD-psi*psi'/(lambda+psi'*X));
	% new inverse of deterministic correlation matrix
      W=W+ep*SD*X;	% new coefficient vector
      MSE(k)=MSE(k)+ep^2;	% accumulate MSE*I
      minMSE(k)=minMSE(k)+(n(k))^2;	% accumulate minMSE*I
   end
end

ind=0:(K-1);		% sample indexes
texcMSE=(MSE-minMSE)/I;		% calculate total excess MSE
save ofile ind texcMSE;		% write output variables

⌨️ 快捷键说明

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