系统辨识-最小二乘法MATLAB仿真

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

《系统辨识》基于MATLAB的最小二乘法(一阶)的仿真

clc

clear

% ①白噪声的生成过程如下:

e=randn(1,500);

e=e/std(e);

e=e-mean(e);

A=0; %白噪声的均值为0

B=sqrt(0.1); %白噪声的方差为0.1

e=A+B*e;

%绘制白噪声图

k=1:500;

subplot(4,1,1) %画四行一列图形窗口中的第一个图形

plot(k,e,'r');

xlabel('k'), ylabel('e');title('(0,1)均匀分布的随机序列')

% ②生成M序列的过程如下:

X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初始状态(0101),

Yi寄存器的各级输出

m=500; %M序列的总长度

for i=1:m

Y4=X4; Y3=X3; Y2=X2; Y1=X1;

X4=Y3; X3=Y2; X2=Y1;

X1=xor(Y3,Y4); %异或运算

if Y4==0

U(i)=-1;

else

U(i)=Y4;

end

end

M=U;

u=U;

%绘制M序列图¼

i1=i

k=1:1:i1;

subplot(4,1,2) %画四行一列图形窗口中的第二个图形

plot(k,U,k,U,'rx')

stem(M)

xlabel('k')

ylabel('M序列')

title('移位寄存器产生的M序列')

% ③参数估计的过程如下:

%绘制参数估计的相关图形

z=zeros(1,500); %定义输出观测值的长度

for k=2:500

z(k)=0.9*z(k-1)+u(k-1)+e(k);%用理想输出值作为观测值

end

subplot(4,1,3) %画四行一列图形窗口中的第三个图形

i=1:1:500; %横坐标的范围从1到500,步长为1

plot(i,z) %图形的横坐标是采样时刻i,纵坐标是输出观测值Z,

图形格式为连续曲线

subplot(4,1,4) %画四行一列图形窗口中的第四个图形

stem(z),grid on%画出输出观测值Z的经线图形,并显示坐标网络u,z %显示输入信号和输出观测信号

%给矩阵HL和ZL赋初值

HL(:,1)=-z(1,1:499);

HL(:,2)=u(1,1:499);

ZL(:,1)=z(1,2:500);

%计算参数

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

a1=c(1),b1=c(2) %从中分离出a1¡b1

仿真截图

仿真结果之一:c=-9.018 a1= b1=

1.0108 -9.018 1.0108

相关文档
最新文档