在线最小二乘迭代求参数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在线最小二乘迭代求系统的参数

采用MATLAB编写程序如下:

clc

clear %清理工作间变量

L=300; % M序列的周期

x1=1;x2=1;x3=1;x4=0;x5=1;x6=0; %四个移位积存器的输出初始值

for k=1:L; %开始循环,长度为L

u(k)=xor(x3,x4); %第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”

x6=x5;x5=x4;x4=x3;x3=x2;x2=x1;x1=u(k);

%u(k)=1;

end%大循环结束,产生输入信号u

v=randn(1,300)/100;

y=zeros(300,1);

for k=3:300

y(k)=-2*y(k-1)-5*y(k-2)+1*u(k-1)+2*u(k-2)+v(k);

y(k,:)=[y(k)];

end

H=zeros(300,4);

p=1000000000*eye(4);

o=zeros(4,1);

for i=3:300

H(i,1:4)=[-y(i-1),-y(i-2),u(i-1),u(i-2)];

end

for i=1:300

t=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');

hold on;

plot(i,a2,'g');

hold on;

figure (2);

plot(i,a3,'g');

hold on;

plot (i,a4,'c');

hold on;

end

O

通过运行此程序,我们能够得到系统的参数如下:

o =

2.0000

5.0000

1.0062

1.9973

可以发现运行结果和给定的系统参数误差较小。

下图是系统运行过程中,各个参数随迭代次数而变化的过程:

相关文档
最新文档