最小二乘一次完成算法的MATLAB仿真

针对辨识模型,有z(k)-+a1*z(k-1)+a2*z(k-2)=b1*u(k-1)+b2*u(k-2)+v(k)模型结构,对其进行最小二乘一次完成算法的MATLAB仿真,对比真值与估计值。更改a1、a2、b1、b2参数,观察结果。

仿真对象:z(k)-1.5*z(k-1)+0.7z(k-2)=u(k-1)+0.5*u(k-2)+v(k)

程序如下:

u=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1];%输入信号为一个周期的M序列

z=zeros(1,16);

for k=3:16

z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2);%以理想输出值作为观测值

end

subplot(3,1,1)

stem(u)

subplot(3,1,2)

i=1:1:16;

plot(i,z)

subplot(3,1,3)

stem(z),grid on

u,z %显示输入信号与输出观测信号

L=14;

HL=[-z(2) -z(1) u(2) u(1);-z(3) -z(2) u(3) u(2);-z(4) -z(3) u(4) u(3);-z(5) -z(4) u(5) u(4);-z(6) -z(5) u(6) u(5);-z(7) -z(6) u(7) u(6);-z(8) -z(7) u(8) u(7);-z(9) -z(8) u(9) u(8);

-z(10) -z(9) u(10) u(9);-z(11) -z(10) u(11) u(10);-z(12) -z(11) u(12) u(11);-z(13) -z(12) u(13)

u(12);-z(14) -z(13) u(14) u(13);-z(15) -z(14) u(15) u(14)] %给样本矩阵HL赋值

ZL=[z(3);z(4);z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15);z(16)] %给样本矩阵ZL 赋值

c1=HL'*HL;c2=inv(c1);c3=HL'*ZL;c=c2*c3

a1=c(1),a2=c(2),b1=c(3),b2=c(4)

程序运行结果如下:

u =

-1 1 -1 1 1 1 1 -1 -1 -1 1 -1 -1 1 1

z =

Columns 1 through 9

0 0 0.5000 0.2500 0.5250 2.1125 4.3012 6.4731 6.1988

Columns 10 through 16

3.2670 -0.9386 -3.1949 -

4.6352 -6.2165 -

5.5800 -2.5185

HL =

0 0 1.0000 -1.0000

-0.5000 0 -1.0000 1.0000

-0.2500 -0.5000 1.0000 -1.0000

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐