登录 注册
当前位置:主页 > 资源下载 > 23 > 利用Matlab实现自适应滤波

利用Matlab实现自适应滤波

  • 更新:2024-09-28 14:17:44
  • 大小:52KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:其它 - 开发技术
  • 格式:RAR

资源介绍

包含了lms,rls等多种算法. 例如lms: %LMS4 Problem 1.1.2.1 % % '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 % mu - convergence 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 MSE=zeros(K,1); % prepare to accumulate MSE*I MSEmin=zeros(K,1); % prepare to accumulate minMSE*I for i=1:I, % ensemble X=zeros(L,1); % initial memory 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 d=Wo'*X; % desired signal sample y=W'*X; % output sample e=d+n(k)-y; % error sample Wo=lambdaW*Wo+nW(:,k); % new coefficient vector of plant W=W+2*mu*e*X; % new 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 texcMSE=(MSE-MSEmin)/I; % calculate total excess MSE save ofile ind texcMSE; % write output variables