vlms.m

来自「一个matlab实现IIR、FIR、LMS、NLMS等算法的m代码」· M 代码 · 共 40 行

M
40
字号
%VLMS Volterra LMS algorithm%%   'ifile.mat' - input file containing:%      Nr - members of ensemble%      dim - iterations%      Sx - standard deviation of input%      Sn - standard deviation of measurement noise%      u - convergence factor%      Nw - length of the adaptive filter%      %   'ofile.mat' - output file containing:%      MSE - mean-square errorclear all		% clear memoryload ifile;		% read input variablesfor j=1:Nr   n=Sn*randn(dim,1);        % noise at system output    x=Sx*randn(dim,1);        % input signal   xl1=zeros(dim,1); xl2=xl1;    xl1(2:dim)=x(1:dim-1);    % x(k-1)   xl2(3:dim)=x(1:dim-2);    % x(k-2)   d=zeros(dim,1);   d=-.76*x-xl1+xl2+.5*x.^2+2*x.*xl2-1.6*xl1.^2+1.2*xl2.^2+.8*xl1.*xl2+n; ...     % unknown system output   w=zeros(Nw,dim);           % initial coefficient vector   uxl=[x xl1 xl2 x.^2 x.*xl1 x.*xl2 xl1.^2 xl1.*xl2 xl2.^2]'; % input vectors      for i=1:dim      e(i)=d(i)-w(:,i)'*uxl(:,i)+n(i);    % error sample      y(i)=w(:,i)'*uxl(:,i);              % output sample      w(:,i+1)=w(:,i)+2*u*e(i)*uxl(:,i);  % new coefficient vector   end   mse(j,:)=e.^2;end MSE=mean(mse);save ofile MSE;

⌨️ 快捷键说明

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