M序列的产生

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

M 序列的产生

1. 对象或参数

数学模型如下:

)()2(5.0)1()2(7.0)1(5.1)(k v k u k u k z k z k z +-+-=-+--

其中,)(k v 是白噪声N (0,1)(服从正态分布),输入信号采用4阶M 序列,幅度为1. 辨识模型如下:

)()2()1()2()1()(2121k v k u b k b k z a k z a k z +-+-=-+--

设输入信号的取值为k=1到k=16的M 序列,则待辨识参数L L L L LS z H H H ττθ1-)(=

∧。 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=∧4321a a a a LS θ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=)16(...)4()3(z z z z L ⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎣⎡---=)14()15()14()15(......)2()3(z(2)-)3(-)1()2()1()2(-u u z z u u z u u z z H L 编制仿真程序,,获取输入输出数据,运用最小二乘法对系统的参数进行辨识,并将辨识结果与实际参数进行对比。

2. 程序框图

3. 程序实现

function [] = JM-232()

%--------------------------------------------------------实验题目及初始化定义

disp('最小二乘法的实现')

disp(' ')

disp('数学模型为:z(k)-1.5z(k-1)+0.7z(k-2)=u(k-1)+0.5u(k-2)+v(k).')

disp(' 所选择的辨识模型为:z(k)+a1*z(k-1)+a2*z(k-2)=b1*u(k-1)+b2*u(k-2)+v(k).') disp(' 故实际参数a1=-1.5, a2=0.7, b1=1, b2=0.5. ')

disp(' ')

disp('系统输入采用4 阶M 序列且其幅度为1,输出受到白噪声序列v(k)干扰.') ds = input(' 假设白噪声序列v(k)服从正态分布,均值为0,请输入方差ds = '); disp(' ')

disp(' ')

a0=65539;M=2147483647;x=123456;b=10000;

U=[];V=[];Z=[];T=[];

P=zeros(20,4);H=zeros(14,4);LS=zeros(4,1);ZL=zeros(14,1);

%------------------------------------------------产生4 阶M 序列作为输入信号u(k)

fori=1:4

P(1,i)=1;

U(1)=-2*(P(1,4)-0.5);

end

for j=2:16

fori=2:4

P(j,i)=P(j-1,i-1);

end

P(j,1)=mod(P(j-1,3)+P(j-1,4),2);

U(j)=-2*(P(j,4)-0.5);

end

disp('** 通过仿真获得:')

disp(' ')

disp(' 系统输入u(k)取k=1 到k=16 图形如figure 1 所示;')

disp(' ')

figure(1)

plot(U);hold on

axis([0 17 -1.5 1.5])

title('系统输入u(k)图形')

%--------------------------------------------------产生白噪声作为干扰信号v(k)

fori=1:192

x=mod(a0*x+b,M);

T(i)=x/M;

end

aT=mean(T);vT=var(T);

fori=1:16

tempsum=0;

for j=1:12

tempsum=tempsum+T(12*i-j+1);

end

V(i)=sqrt(ds)*(tempsum-12*aT)/sqrt(12*vT);

end

aV=mean(V);vV=var(V);

disp(' 系统白噪声干扰v(k)取k=1 到k=16 图形如figure 2 所示;') disp([' 该系统白噪声v(k)均值为' num2str(aV)])

disp([' 方差为' num2str(vV)])

disp(' ')

figure(2)

plot(V);hold on

axis([0 17 -3 3])

title('系统白噪声v(k)图形')

%--------------------------------计算输出z(k),同时由系统输出构成观测矩阵ZL 与H

Z(1)=0;Z(2)=0;

for k=3:16

Z(k)=1.5*Z(k-1)-0.7*Z(k-2)+U(k-1)+0.5*U(k-2)+V(k);

ZL(k-2,1)=Z(k);

end

fori=1:14

H(i,1)=-Z(i+1);H(i,2)=-Z(i);H(i,3)=U(i+1);H(i,4)=U(i);

end

disp(' 系统输出z(k)图形如figure 3 所示;')

disp(' ')

figure(3)

plot(Z)

title('系统输出z(k)图形')

%---------------------------------------------------------最小二乘法参数辨识

LS=inv(H'*H)*H'*ZL;

disp(' 运用最小二乘法对这一系统参数进行辨识,计算得到:')

disp([' a1(实际值) = -1.5,a1(辨识值)= ' num2str(LS(1,1))])

disp([' a2(实际值) = 0.7,a2(辨识值)= ' num2str(LS(2,1))])

disp([' b1(实际值) = 1,b1(辨识值)= ' num2str(LS(3,1))])

disp([' b2(实际值) = 0.5,b2(辨识值)= ' num2str(LS(4,1))])

disp(' ')

end

4. 仿真结果

本系统输入采用4 阶M 序列且其幅度为1,选取k=1 到k=16 数据,如图1所示系统输入图形。

相关文档
最新文档