您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 求职简历 > 在线最小二乘迭代求参数
在线最小二乘迭代求系统的参数采用MATLAB编写程序如下:clcclear%清理工作间变量L=300;%M序列的周期x1=1;x2=1;x3=1;x4=0;x5=1;x6=0;%四个移位积存器的输出初始值fork=1:L;%开始循环,长度为Lu(k)=xor(x3,x4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”x6=x5;x5=x4;x4=x3;x3=x2;x2=x1;x1=u(k);%u(k)=1;end%大循环结束,产生输入信号uv=randn(1,300)/100;y=zeros(300,1);fork=3:300y(k)=-2*y(k-1)-5*y(k-2)+1*u(k-1)+2*u(k-2)+v(k);y(k,:)=[y(k)];endH=zeros(300,4);p=1000000000*eye(4);o=zeros(4,1);fori=3:300H(i,1:4)=[-y(i-1),-y(i-2),u(i-1),u(i-2)];endfori=1:300t=H(i,1:4);p=p-(p*t'*t*p)/(1+t*p*t');o=o+p*t'*(y(i)-t*o);a1=o(1);a2=o(2);a3=o(3);a4=o(4);figure(1);plot(i,a1,'r');holdon;plot(i,a2,'g');holdon;figure(2);plot(i,a3,'g');holdon;plot(i,a4,'c');holdon;endO通过运行此程序,我们能够得到系统的参数如下:o=2.00005.00001.00621.9973可以发现运行结果和给定的系统参数误差较小。下图是系统运行过程中,各个参数随迭代次数而变化的过程:
本文标题:在线最小二乘迭代求参数
链接地址:https://www.777doc.com/doc-2562356 .html