brls.m
来自「很多MATLAB的文章里面的算法都是有的」· M 代码 · 共 44 行
M
44 行
%BRLS Bilinear RLS algorithm%% 'ifile.mat' - input file containing:% Nr - members of ensemble% dim - iterations% Sx - standard deviation of input% Sn - standard deviation of measurement noise% lambda - exponential weighting factor% % '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 xl(1)=0; xl(2:dim)=x(1:dim-1); w=zeros(4,dim); % initial coefficient vector d=zeros(dim,1); yl(1)=0; dl(1)=0; Sd=eye(4); for i=1:dim d(i)=-.6*dl(i)+x(i)+.01*x(i)*dl(i)+.02*xl(i)*dl(i)+n(i); % unknown system output sample uxl(:,i)=[x(i) dl(i) x(i)*dl(i) xl(i)*dl(i)]'; % new input vector elinha(i)=d(i)-w(:,i)'*uxl(:,i)+n(i); % error sample psi=Sd*uxl(:,i); Sd=(1/lambda)*(Sd-(psi*psi')/(lambda+psi'*uxl(:,i))); w(:,i+1)=w(:,i)+elinha(i)*Sd*uxl(:,i); % new coefficient vector y(i)=w(:,i+1)'*uxl(:,i); % output sample yl(i+1)=yl(i); dl(i+1)=d(i); e(i)=d(i)-y(i)+n(i); end mse(j,:)=e.^2;endMSE=mean(mse);save ofile MSE;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?