(2)function seq=mseq(a,L,N)
% a为M序列幅值 N为长度 L为移位单位数 register=randint(1,L) %寄存器初始化 p=zeros(1,L); %特征向量
p(L-1:L)=1; %默认最后两个寄存器相加 temp=0; for i=1:N
seq(i)=a*register(L); temp=sum(register.*p);
register(2:L)=register(1:L-1); %移位 register(1)=mod(temp,2); end
x=0:1/5:1.2; stairs(seq);grid;
set(gca,'ylim',[-0.2,1.2]); ylabel('M序列')
title('严晓龙实验 :移位寄存器产生的M序列') save data2.txt seq -ascii
调用函数实验:mseq(2,40,15),得到数据见data2.txt,和下图:
(3)function seq=invM(a,L,N)
% a为M序列幅值 N为长度 L为移位单位数 register=randint(1,L) %寄存器初始化 p=zeros(1,L); %特征向量
p(L-1:L)=1; %默认最后两个寄存器相加 temp=0;
for i=1:2^L-1
seq(i)=register(L); temp=sum(register.*p);
register(2:L)=register(1:L-1); %移位 register(1)=mod(temp,2); end
seq=[seq seq]; for i=1:2*(2^L-1) if mod(i,2)==1 invm(i)=1; else
invm(i)=0;
end
seq(i)=a*xor(seq(i),invm(i)); end
for i=1:N
if mod(i,2*(2^L-1))==0
mseq(i)=seq(2*(2^L-1)); else
mseq(i)=seq(mod(i,2*(2^L-1))); end end
seq=mseq; stairs(seq);grid;
set(gca,'ylim',[-0.2,1.2]);
title('严晓龙实验:产生一组逆重复M序列信号') save data3.txt seq -ascii
调用函数实验:invM (1,10,40),得到数据见data3.txt,和下图
2. 12.mat中的数据是单输入单输出系统进行采样后100对输入输出数据,其中input表示
系统的输入数据,output表示受到噪声污染后的系统的输出数据。在辨识过程中,可以认为噪声具有正态分布,其均值为0。 (1) 判断该系统的阶次(方法不限) (2) 利用递推最小二乘法进行参数估计。
解:
模型阶数的辨识,一般说来低阶模型描述粗糙,高阶模型精度高。残差平方总和J(n)是模型阶数的函数J(n)2 ??(y(k)??T?)Kk?1N
在不同的模型阶数的假设下,参数估计得到的J(n)值亦不同。讨论如下
(1)当n=1时程序如下:
启动matlab,打开12.mat;运行下面程序 u=zeros(100,1);%构造输入矩阵 z=zeros(100,1);%构造输出矩阵 i=1:1:100; u(i,1)=input(i);
z=zeros(100,1);%构造输出矩阵 i=1:1:100;
z(i,1)=output(i); r=100;
for p=1:(r-2) %利用循环生成观测矩阵 h(p,:)=[-z(p+1) u(p+1)]; % end hl=h;
for b=1:(r-2) %生成输出矩阵 zl(b,:)=[z(b+2)]; zl' end zl'
%根据最小二乘法公式进行参数辩识 c1=hl'*hl; c2=inv(c1); c3=hl'*zl; c=c2*c3; a1=c(1) a2=c(2) j=0;
for k=4:100;
hl=[-z(k-1);u(k-1)]'; x=hl*c; y=z(k)-x; s=y*y; j=j+s; end j
仿真结果如下
a1 = -0.2576 a2 = 0.6985 j = 0.8556
(2)当 n=2时程序如下(输入输出数据同上,只给出不同于一阶系统的程序不同之处)
其中U、Z分别是作业要求给出得的输入输出,数据输入同上。 启动matlab,打开12.mat;运行下面程序
u=zeros(100,1);%构造输入矩阵 z=zeros(100,1);%构造输出矩阵 i=1:1:100; u(i,1)=input(i);
z=zeros(100,1);%构造输出矩阵 i=1:1:100;
z(i,1)=output(i);
r=100;%利用循环生成观测矩阵。 for p=1:(r-2)
h(p,:)=[-z(p+1) -z(p) u(p+1) u(p)]; end hl=h;
%生成输出矩阵。 for b=1:(r-2)
zl(b,:)=[z(b+2)]; zl' end zl'
%根据最小二乘法公式进行参数辩识 c1=hl'*hl; c2=inv(c1); c3=hl'*zl; c=c2*c3;
%输出辩识参数
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库系统辨识作业及答案(2)在线全文阅读。
相关推荐: