实验二最小二乘估计及模型阶次辨识一、实验目的①通过实验,掌握最小二乘参数辨识方法②通过实验,掌握模型阶次辨识方法二、实验内容1、仿真模型实验所用的仿真模型如下:框图表示e(k)++v(k)u(k)z(k)y(k)模型表示其中u(k)和z(k)分别为模型的输入和输出变量;v(k)为零均值、方差为1、服从正态分布的白噪声;为噪声的标准差(实验时,、、、);输入变量u(k)采用M序列,其特征多项式取,。2、辨识模型辨识模型的形式取为方便起见,取,即根据仿真模型生成的数据和,确定模型n,并辨识模型的参数;3、辨识算法1模型阶次辨识根据行列式比确定模型的阶次令:,其中,定义判别式子(行列式比):其中:若较有显著增加时,则取阶次估计值为。②模型参数辨识:最小二乘一次完成算法:设输入信号的取值是从k=1到k=16的M序列,则待辨识参数为=。其中,被辨识参数、观测矩阵zL、HL的表达式为, , 三、实验步骤(1)掌握最小二乘一次完成算法和根据行列式比确定模型的阶次的基本原理。(2)设计实验方案。(3)编制实验程序。(4)调试程序,研究实验问题,记录数据。(5)分析实验结果,完成实验报告。四、实验结果(1)实验对象及参数实验模型如下图所示:(2)程序代码:=;a2=-;b1=1;b2=;DR=estModelOrder(a1,a2,b1,b2);display(DR);estimate=leastSquares(a1,a2,b1,b2);display(estimate);recursiveLeastSquares(a1,a2,b1,b2)=estModelOrder(a1,a2,b1,b2)x=[010110111];%initialvaluen=1003;%n为脉冲数目,L=1000,且存在k-2,故取1003M=[];%存放M序列fori=1:ntemp=xor(x(4),x(9));M(i)=x(9);forj=9:-1:2x(j)=x(j-1);endx(1)=temp;end%产生高斯白噪声v=randn(1,1003);z=[];z(1)=-1;z(2)=0;L=1000;fori=3:L+3z(i)=a1*z(i-1)+a2*z(i-2)+b1*M(i-1)+b2*M(i-2)+v(i);end%n=1fori=1:LH1(i,1)=z(i);H1(i,2)=M(i);endA=H1'*H1/L;%n=2fori=1:LH2(i,1)=z(i+1);H2(i,2)=z(i);H2(i,3)=M(i+1);H2(i,4)=M(i);endB=H2'*H2/L;%n=3fori=1:LH3(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);endC=H3'*H3/L;%n=4fori=1:LH4(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);endD=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('行列式比') estimate=leastSquares(a1,a2,b1,b2)x=[010110111];%initialvaluen=403;%n为脉冲数目M=[];%存放M序列fori=1:ntemp=xor(x(4),x(9));M(i)=x(9);forj=9:-1:2
最小二乘估计及模型阶次辨 来自淘豆网www.taodocs.com转载请标明出处.