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

📄 tlms2.m

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

%TLMS2 Problem 1.1.1.2.2
%
%   'ifile.mat' - input file containing:
%      I - members of ensemble
%      K - iterations
%      a1 - coefficient of input AR process
%      sigmax - standard deviation of input
%      Wo - coefficient vector of plant
%      sigman - standard deviation of measurement noise
%      alpha - factor used in transformed-input power estimation
%      gamma - small constant to avoid division by zero
%      mu - convergence factor
% 
%   'ofile.mat' - output file containing:
%      ind - sample indexes 
%      M - misadjustment 

clear all		% clear memory
load ifile;		% read input variables
sigmav=sigmax*sqrt(1-a1^2);	
		% standard deviation of input to AR process
L=length(Wo);		% plant and filter length
N=L-1;			% plant and filter order
salpha=1-alpha;		% auxiliary factor
for j=1:(N+1),
   T(1,j)=1/sqrt(N+1);
   for i=2:(N+1),
     T(i,j)=sqrt(2/(N+1))*cos(pi*(i-1)*(2*j-1)/2/(N+1));
   end
end			% DCT-Transform matrix
MSE=zeros(K,1);		% prepare to accumulate MSE*I
MSEmin=zeros(K,1);	% prepare to accumulate MSEmin*I

for i=1:I,		% ensemble
   X=zeros(L,1);    	% initial memory
   TW=zeros(L,1);	% initial transformed coefficient vector
   sigma2=zeros(L,1);	% initial transformed-input power
   v=randn(K,1)*sigmav;		% input to AR process
   x=filter([1,0],[1,a1],v);	% input 
   n=randn(K,1)*sigman;		% measurement noise 
   for k=1:K,		% iterations
      X=[x(k)		
         X(1:N)];	% new input vector
      S=T*X;		% transformed input vector
      d=Wo'*X;		% desired signal sample
      y=TW'*S;		% output sample
      sigma2=salpha*sigma2+alpha*S.*S;	
                        % transformed-input estimated power
      isigma2=1./(sigma2+gamma);	% inverse
      e=d+n(k)-y;	% errror sample
      TW=TW+2*mu*isigma2.*(e*S);	 
			% new transformed coefficient vector
      MSE(k)=MSE(k)+e^2;	% accumulate MSE*I
      MSEmin(k)=MSEmin(k)+(n(k))^2;	% accumulate MSEmin*I 
   end
end

ind=0:(K-1);		% sample indexes
M=MSE./MSEmin-1;	% calculate misadjustment
save ofile ind M;	% write output variables

⌨️ 快捷键说明

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