利用相关分析法辨识脉冲响应.docx

上传人:b****8 文档编号:8839246 上传时间:2023-02-02 格式:DOCX 页数:12 大小:102.43KB
下载 相关 举报
利用相关分析法辨识脉冲响应.docx_第1页
第1页 / 共12页
利用相关分析法辨识脉冲响应.docx_第2页
第2页 / 共12页
利用相关分析法辨识脉冲响应.docx_第3页
第3页 / 共12页
利用相关分析法辨识脉冲响应.docx_第4页
第4页 / 共12页
利用相关分析法辨识脉冲响应.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

利用相关分析法辨识脉冲响应.docx

《利用相关分析法辨识脉冲响应.docx》由会员分享,可在线阅读,更多相关《利用相关分析法辨识脉冲响应.docx(12页珍藏版)》请在冰豆网上搜索。

利用相关分析法辨识脉冲响应.docx

利用相关分析法辨识脉冲响应

利用相关分析法辨识脉冲响应

自1205刘彬41251141

1实验方案设计

1.1生成输入数据和噪声

用M序列作为辨识的输入信号,噪声采用标准正态分布的白噪声。

生成白噪声时,首先利用乘同余法生成U[0,1]均匀分布的随机数,再利用U[0,1]均匀分布的随机数生成标准正态分布的白噪声。

1.2过程仿真

模拟过程传递函数

,获得输出数据y(k)。

采取串联传递函数仿真,

,用M序列作为辨识的输入信号。

1.3计算互相关函数

其中r为周期数,

表示计算互相关函数所用的数据是从第二个周期开始的,目的是等过程仿真数据进入平稳状态。

1.4计算脉冲响应估计值、脉冲响应理论值、脉冲响应估计误差

脉冲响应估计值

脉冲响应理论值

脉冲响应估计误差

1.5计算噪信比

信噪比

2编程说明

M序列中,M序列循环周期取

,时钟节拍

=1Sec,幅度

,特征多项式为

白噪声循环周期为

采样时间

设为1Sec,

3源程序清单

3.1均匀分布随机数生成函数

functionsita=U(N)

%生成N个[01]均匀分布随机数

A=179;x0=11;M=2^15;

fork=1:

N

x2=A*x0;

x1=mod(x2,M);

v1=x1/(M+1);

v(:

k)=v1;

x0=x1;

end

sita=v;

end

3.2正态分布白噪声生成函数

functionv=noise(aipi)

%生成正态分布N(0,sigma)

sigma=1;%标准差

fork=1:

length(aipi)

ksai=0;

fori=1:

12

temp=mod(i+k,length(aipi))+1;

ksai=ksai+aipi(temp);

end

v(k)=sigma*(ksai-6);

end

end

3.3M序列生成函数

function[NprM]=createM(n,a)

%生成长度为n的M序列,周期为Np,周期数为r

x=[111111];%初始化初态

fori=1:

n

y=x;

x(2:

6)=y(1:

5);

x

(1)=xor(y(5),y(6));

U(i)=y(6);

end

M=U*a;

lenx=length(x);

Np=2^lenx-1;

r=n/Np;

end

3.4过程仿真函数

functiony=createy(u,K,T1,T2,T0)

n=length(u);

K1=K/(T1*T2);

E1=exp(-T0/T1);

E2=exp(-T0/T2);

x

(1)=0;

y

(1)=0;

fork=2:

n

x(k)=E1*x(k-1)+T1*K1*(1-E1)*u(k-1)...

+T1*K1*(T1*(E1-1)+T0)*(u(k)-u(k-1))/T0;

y(k)=E2*y(k-1)+T2*(1-E2)*x(k-1)...

+T2*(T2*(E1-1)+T0)*(x(k)-x(k-1))/T0;

u(k-1)=u(k);

x(k-1)=x(k);

y(k-1)=y(k);

end

end

3.5相关函数计算函数

functionR_Mz=RMz(Np,r,u,z)

r=r-1;

y=zeros(1,Np);

fork=1:

Np

y(k)=0;

fori=Np+1:

(r+1)*Np

y(k)=y(k)+u(i-k)*z(i);

end

y(k)=y(k)/(r*Np);

end

R_Mz=y;

end

3.5主函数

function[ogyita]=main(time)

%脉冲响应估计误差og

%噪信比yita

N=time*63;

K=120;T1=8.3;T2=6.2;T0=1;a=1;

sita=U(N);%生成[01]均匀分布随机数

v=noise(sita);%利用aipi生成正态分布白噪声

[Npru]=createM(N,a);%生成长度为N的M序列

y=createy(u,K,T1,T2,T0);%利用M序列驱动,生成y

z=y+v;

R_Mz=RMz(Np,r,u,z);%计算相关函数

%计算脉冲响应估计值

g_k=zeros(1,Np);

fork=1:

Np

g_k(1,k)=(R_Mz(1,k)-R_Mz(Np-1))*Np/((Np+1)*a*a*T0);

end

%计算脉冲响应理论值

Eg=zeros(1,Np);

fork=1:

Np

Eg(1,k)=K/(T1-T2)*(exp(-k*T0/T1)-exp(-k*T0/T2));

end

%计算脉冲响应估计误差

og=sqrt(norm(Eg-g_k)^2/norm(Eg)^2);

ov=fangcha(v);%计算噪声方差

oy=fangcha(y);%计算信号方差

yita=sqrt(oy/ov);%计算信噪比End

3.5画图函数1

%mainPlot.m

figure

(1)

forn=4:

40

[ogyita]=main(n);

y1(n)=og;

end

y1=y1(4:

40);

plot([4:

40],y1);

xlabel('周期数');

ylabel('脉冲响应估计误差');

figure

(2)

forn=4:

40

[ogyita]=main(n);

y2(n)=yita;

end

y2=y2(4:

40);

plot([4:

40],y2);

xlabel('周期数');

ylabel('噪信比');

3.5画图函数2

%mainPlot2.m

N=252;

K=120;T1=8.3;T2=6.2;T0=1;a=1;

sita=U(N);%生成[01]均匀分布随机数

v=noise(sita);%利用aipi生成正态分布白噪声

[Npru]=createM(N,a);%生成长度为N的M序列

y=createy(u,K,T1,T2,T0);%利用M序列驱动,生成y

z=y+v;

R_Mz=RMz(Np,r,u,z);%计算相关函数

%计算脉冲响应估计值

g_k=zeros(1,Np);

fork=1:

Np

g_k(1,k)=(R_Mz(1,k)-R_Mz(Np-1))*Np/((Np+1)*a*a*T0);

end

%计算脉冲响应理论值

Eg=zeros(1,Np);

fork=1:

Np

Eg(1,k)=K/(T1-T2)*(exp(-k*T0/T1)-exp(-k*T0/T2));

end

figure

(1)

plot([1:

252],y,[1:

252],z);

Legend('不含噪声的输出序列','含噪声的输出序列');

figure

(2)

plot([1:

63],g_k,[1:

63],Eg);

Legend('脉冲响应估计值','脉冲响应理论值');

4数据记录

表1脉冲响应估计值与脉冲响应理论值的比较

t

1

2

3

4

5

6

7

脉冲响应估计值

0.79

0.92

1.02

1.04

1.05

1.01

0.92

脉冲响应理论值

2.03

3.52

4.59

5.32

5.77

6.02

6.11

t

8

9

10

11

12

13

14

脉冲响应估计值

0.87

0.80

0.74

0.65

0.57

0.50

0.42

脉冲响应理论值

6.07

5.94

5.74

5.49

5.21

4.91

4.60

t

15

16

17

18

19

20

21

脉冲响应估计值

0.33

0.23

0.17

0.10

0.05

-0.01

-0.06

脉冲响应理论值

4.29

3.99

3.69

3.40

3.12

2.86

2.62

t

22

23

24

25

26

27

28

脉冲响应估计值

-0.10

-0.16

-0.19

-0.22

-0.25

-0.29

-0.28

脉冲响应理论值

2.39

2.18

1.98

1.80

1.63

1.48

1.33

t

29

30

31

32

33

34

35

脉冲响应估计值

-0.30

-0.31

-0.32

-0.36

-0.37

-0.39

-0.41

脉冲响应理论值

1.20

1.09

0.98

0.88

0.79

0.71

0.64

t

36

37

38

39

40

41

42

脉冲响应估计值

-0.44

-0.46

-0.47

-0.46

-0.49

-0.51

-0.52

脉冲响应理论值

0.58

0.52

0.46

0.41

0.37

0.33

0.30

t

43

44

45

46

47

48

49

脉冲响应估计值

-0.53

-0.54

-0.55

-0.55

-0.56

-0.54

-0.56

脉冲响应理论值

0.27

0.24

0.21

0.19

0.17

0.15

0.13

t

50

51

52

53

54

55

56

脉冲响应估计值

-0.57

-0.57

-0.56

-0.57

-0.57

-0.56

-0.55

脉冲响应理论值

0.12

0.11

0.10

0.09

0.08

0.07

0.06

t

57

58

59

60

61

62

63

脉冲响应估计值

-0.53

-0.52

-0.53

-0.52

-0.53

0.00

0.61

脉冲响应理论值

0.05

0.05

0.04

0.04

0.03

0.03

0.03

5曲线打印

图1信噪比随着周期数增大的变化

图2脉冲响应计算误差随着周期数增大的变化

图3加入噪声前后的输出序列比较

图4脉冲响应理论值与估计值的比较

6结果分析

6.1信噪比脉冲响应计算误差随周期的变化

随着周期数的增加,信噪比减小,说明噪声随着周期数的增加变得更强烈,而计算误差的减小表示周期数的增加使得不确定因素的影响减小,使得计算结果与实际更接近。

6.2加入噪声前后的输出序列比较

加入噪声前后的变化并不大,说明噪声对输出序列影响不大,在第二个周期之后输出序列变得稳定,具有周期变化。

6.3脉冲响应理论值与估计值的比较

随着时间的增加,脉冲响应理论值与估计值全部变小,且差值变小,与实验前的理论推导一致。

7实验体会

通过本次试验,我不仅更深层次的了解了系统辨识的内容,而且也复习和运用了matlab,为以后的工作实践打了一些基础。

 

欢迎您的下载,

资料仅供参考!

 

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1