# 最小二乘法

• g5_531741
了解作者
• 10KB
文件大小
• zip
文件格式
• 0
收藏次数
• VIP专享
资源类型
• 0
下载次数
• 2022-05-27 03:58
上传日期

zuixiaoerchengfa.zip
• 最小二乘法
• Untitled4.m
1.3KB
• Untitled3.m
746B
• Untitled11.m
1.7KB
• Untitled6.m
1.5KB
• Untitled5.m
1.6KB
• Untitled10.m
1.5KB
• Untitled7.m
1.3KB
• Untitled9.m
1.5KB
• Untitled8.m
1.9KB
• Untitled2.m
1.2KB
• Untitled1.m
679B
• Untitled12.m
752B

%广义最小二乘递推算法 %z(k+2)=1.5*z(k+1)-0.7*z(k)+u(k+1)+0.5*u(k)+v(k) clear all; clc; %400个产生M序列作为输入 x = [0 1 0 1 1 0 1 1 1]; %初始值 n = 403; 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(1,400); 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 = zeros(400,1); 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-1)+v(i-2); 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); %估计方差 pstore = zeros(4,400); pstore(:,2) = [p(1,1),p(2,2),p(3,3),p(4,4)]; theta = zeros(4,400); %参数的估计值，存放中间过程估计值 theta(:,2) = [3;3;3;3]; k = [10;10;10;10]; %增益矩阵 pe = 10*eye(2); thetae = zeros(2,400); thetae(:,2) = [0.5;0.3]; ke = [10;10]; 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; pstore(:,i-1) = [p(1,1),p(2,2),p(3,3),p(4,4)]; he = [-e(i-1);-e(i-2)]; 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; end %输出结果及作图 disp('参数a1 a2 b1 b2的估计结果'); theta(:,400); disp('噪声传递函数c1 c2的估计结果为：'); thetae(:,400); i = 1:400; figure; plot(i,theta(1,:),i,theta(2,:),i,theta(3,:),i,theta(4,:)); title('待估参数过渡过程'); figure; plot(i,pstore(1,:),i,pstore(2,:),i,pstore(3,:),i,pstore(4,:)); title('估计方差变化过程'); figure; plot(i,thetae(1,:),i,thetae(1,:));

相关推荐