研1206刘新菊模式识别与智能系统20120201761遗忘因子法(RFF)closeallclcepsilon=0.001;alpha=10^6;miu=1;%可根据要求改变miu的值u=Gprsb(4,1,27);%4级M序列n=2;L=400;%定义阶次和数据长度v=idinput(L,'rs',[],[-.1.1]);y(1:n)=0;fork=n+1:Ly(k)=-0.6*y(k-1)-0.7*y(k-2)+u(k-1)+0.5*u(k-2);endy=y+v'theta0=epsilon*ones(2*n,1);%初始化theta(a1,a2,b1,b2)P0=alpha*eye(2*n);%初始化矩阵Ptheta=[theta0,zeros(2*n,L-1)];%被估计参数的初始值和矩阵大小e=zeros(2*n,L);%误差矩阵%%%%%%%%%%(h矩阵)%%%%%%%%%%%fork=n+1:Lfori=1:nh(i,1)=-y(k-i);endfori=n+1:2*nh(i,1)=u(k-i+n);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%X=h'*P0*h+miu;%RFF算法X1=inv(X)K1=P0*h*X1d1=y(k)-h'*theta0theta1=theta0+K1*d1e1=theta1-theta0e2=e1./theta0%被估计参数的相对误差e(:,k)=e2theta0=theta1%regressc(:,k)=theta1P1=(P0-K1*h'*P0)/miuP0=P1end研1206刘新菊模式识别与智能系统20120201762fori=1:na(i,:)=c(i,:);b(i,:)=c(i+n,:);endj=1:length(a(1,:));holdonplot(j,a(1,:),'r')plot(j,a(2,:),'r*')plot(j,b(1,:),'b--')plot(j,b(2,:),'b*')holdofflegend('a1','a2','b1','b2')theta0运行程序,当miu=1时theta0=0.59760.69860.99360.4846运行程序,当miu=0.995时研1206刘新菊模式识别与智能系统20120201763theta0=0.59590.69191.00230.5123运行程序,当miu=0.99时研1206刘新菊模式识别与智能系统20120201764theta0=0.59210.69471.00560.4920运行程序,当miu=0.95时theta0=0.59690.70470.99740.5045分析:因为数据饱和的原因,选择合适的遗忘因子miu时,可以辨识出比较理想的效果,在此例中当min选为0.99时能辨识出比较理想的效果。选择miu既不能选择过小也不能完全接近于1。