预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验二最小二乘估计及模型阶次辨识 一、实验目的 ①通过实验,掌握最小二乘参数辨识方法 ②通过实验,掌握模型阶次辨识方法 二、实验内容 1、仿真模型 实验所用的仿真模型如下: 框图表示 e(k) + + v(k) u(k) z(k) y(k) 模型表示 其中u(k)和z(k)分别为模型的输入和输出变量;v(k)为零均值、方差为1、服从正态分布的白噪声;为噪声的标准差(实验时,可取0.0、0.1、0.5、1.0);输入变量u(k)采用M序列,其特征多项式取,幅度取1.0。 2、辨识模型 辨识模型的形式取 为方便起见,取,即 根据仿真模型生成的数据和,确定模型n,并辨识模型的参数; 3、辨识算法 模型阶次辨识 根据行列式比确定模型的阶次 令:,其中, 定义判别式子(行列式比): 其中: 若较有显著增加时,则取阶次估计值为。 ②模型参数辨识: 最小二乘一次完成算法: 设输入信号的取值是从k=1到k=16的M序列,则待辨识参数为=。其中,被辨识参数、观测矩阵zL、HL的表达式为 ,, 三、实验步骤 (1)掌握最小二乘一次完成算法和根据行列式比确定模型的阶次的基本原理。 (2)设计实验方案。 (3)编制实验程序。 (4)调试程序,研究实验问题,记录数据。 (5)分析实验结果,完成实验报告。 四、实验结果 (1)实验对象及参数 实验模型如下图所示: (2)程序代码: a.主函数 functionleastSquaresMainFuc a1=1.5;a2=-0.7;b1=1;b2=0.5; DR=estModelOrder(a1,a2,b1,b2); display(DR); estimate=leastSquares(a1,a2,b1,b2); display(estimate); recursiveLeastSquares(a1,a2,b1,b2) end b.模型阶次辨识函数 functionDR=estModelOrder(a1,a2,b1,b2) x=[010110111];%initialvalue n=1003;%n为脉冲数目,L=1000,且存在k-2,故取1003 M=[];%存放M序列 fori=1:n temp=xor(x(4),x(9)); M(i)=x(9); forj=9:-1:2 x(j)=x(j-1); end x(1)=temp; end %产生高斯白噪声 v=randn(1,1003); z=[]; z(1)=-1; z(2)=0; L=1000; fori=3:L+3 z(i)=a1*z(i-1)+a2*z(i-2)+b1*M(i-1)+b2*M(i-2)+v(i); end %n=1 fori=1:L H1(i,1)=z(i); H1(i,2)=M(i); end A=H1'*H1/L; %n=2 fori=1:L H2(i,1)=z(i+1); H2(i,2)=z(i); H2(i,3)=M(i+1); H2(i,4)=M(i); end B=H2'*H2/L; %n=3 fori=1:L H3(i,1)=z(i+2); H3(i,2)=z(i+1); H3(i,3)=z(i); H3(i,4)=M(i+2); H3(i,5)=M(i+1); H3(i,6)=M(i); end C=H3'*H3/L; %n=4 fori=1:L H4(i,1)=z(i+3); H4(i,2)=z(i+2); H4(i,3)=z(i+1); H4(i,4)=z(i); H4(i,5)=M(i+3); H4(i,6)=M(i+2); H4(i,7)=M(i+1); H4(i,8)=M(i); end D=H4'*H4/L; DR(1)=det(A)/det(B); DR(2)=det(B)/det(C); DR(3)=det(C)/det(D); i=1:3; figure(1) stem(i,DR); %display(DR) title('利用行列式比估计模型阶次') xlabel('阶次') ylabel('行列式比') end c.批量最小二乘估计 functionestimate=leastSquares(a1,a2,b1,b2) x=[010110111];%initialvalue n=403;%n为脉冲数目 M=[];%存放M序列 fori=1:n temp=xor(x(4),x(9)); M(i)=x(9); forj=9:-1:2 x(j)=x(j-1); end x(1)=temp; end %产生均值为0,方差为1的高斯白噪声 v=randn(1,400); z=[]; z(1)=-1; z(2)=0; fori=3:402 z(i)=a1*z(i-1)+a2*z