资源简介
该算法用于自回归输入模型,是一种迭代的算法。其基本思想是基于对数据先进行一次滤波处理,后利用普通最小二乘法对滤波后的数据进行辨识,进而获得无偏一致估计。但是当过程的输出信噪比比较大或模型参数较多时,这种数据白色化处理的可靠性就会下降,辨识结果往往会是有偏估计。数据要充分多,否则辨识精度下降。模型阶次不宜过高。初始值对辨识结果有较大影响。
代码片段和文件信息
%广义最小二乘的递推算法仿真模型
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+e(k)
%e(k+2)+2.1*e(k+1)-2.5*e(k)=v(k+2)
%========================================
clear
clc
%==========400 个产生M序列作为输入===============
x=[0 1 0 1 1 0 1 1 1]; %initial value
n=403; %n为脉冲数目
M=[]; %存放M 序列
for i=1:n
temp=xor(x(4)x(9));
M(i)=x(9);
for j=9:-1:2
x(j)=x(j-1);
end
x(1)=temp;
end
%===========产生均值为0,方差为1 的高斯白噪声=========
v=randn(1400);
e=[]; e(1)=v(1); e(2)=v(2);
for i=3:400
e(i)=0*e(i-1)+0*e(i-2)+v(i);
end
%==============产生观测序列z=================
z=zeros(4001);
z(1)=-1;
z(2)=0;
for i=3:400
z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+e(i);
end
%变换后的观测序列
zf=[];
zf(1)=-1;
zf(2)=0;
for i=3:400
zf(i)=z(i)-0*z(i-1)-0*z(i-2);
end
%变换后的输入序列
uf=[]; uf(1)=M(1); uf(2)=M(2);
for i=3:400
uf(i)=M(i)-0*M(i-1)-0*M(i-2);
end
%赋初值
P=100*eye(4); %估计方差
Theta=zeros(4400); %参数的估计值,存放中间过程估值
Theta(:2)=[3;3;3;3];
K=[10;10;10;10]; %增益
PE=10*eye(2);
ThetaE=zeros(2400);
ThetaE(:2)=[0.5;0.3];
KE=[10;10];
%递推Theta
for i=3:400
h=[-zf(i-1);-zf(i-2);uf(i-1);uf(i-2)];
K=P*h*inv(h‘*P*h+1);
Theta(:i)=Theta(:i-1)+K*(z(i)-h‘*Theta(:i-1));
P=(eye(4)-K*h‘)*P;
end
he=[-e(i-1);-e(i-2)];
%递推ThetaE
KE=PE*he*inv(1+he‘*PE*he);
ThetaE(:i)=ThetaE(:i-1)+KE*(e(i)-he‘*ThetaE(:i-1));
PE=(eye(2)-KE*he‘)*PE;
%=====================输出结果及作图=========================
disp(‘参数a1 a2 b1 b2的估计结果:‘)
Theta(:400)
disp(‘噪声传递系数c1 c2的估计结果:‘)
ThetaE(:400)
i=1:400;
figure(1)
plot(iTheta(1:)iTheta(2:)iTheta(3:)iTheta(4:))
title(‘待估参数过渡过程‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1722 2011-10-10 20:33 RGLS.m
- 上一篇:wangyong_28.rar
- 下一篇:随机牛顿法
评论
共有 条评论