77范文网 - 专业文章范例文档资料分享平台

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

来源:网络收集 时间:2018-10-18 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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

自1205 刘彬 41251141

1 实验方案设计

1.1 生成输入数据和噪声

用M序列作为辨识的输入信号,噪声采用标准正态分布的白噪声。 生成白噪声时,首先利用乘同余法生成U[0,1]均匀分布的随机数,再利用U[0,1]均匀分布的随机数生成标准正态分布的白噪声。 1.2 过程仿真

模拟过程传递函数G(s),获得输出数据y(k)。G(s)采取串联传递函数仿真,

G(s)?K11,用M序列作为辨识的输入信号。

11T1T2s?s?T1T21.3 计算互相关函数

1RMz(k)?rNp(r?1)Npi?Np?1?u(i?k)z(i)

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

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

?(k)?脉冲响应估计值g(Np?R?1)a?t2NpMz(k)?RMz(Np?1)

?脉冲响应理论值g0(k)?Ke?k?t/T1?e?k?t/T2 T1?T2?? - 1 -

脉冲响应估计误差

?g???gk?1Np0?(k)? (k)?g20??gk?1Np(k)?21.5 计算噪信比

信噪比??

?y(k)?y?2?v(k)?v?2

2 编程说明

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

Np?26?1?63,时钟节拍?t=1Sec,幅度a?1,

6515G(s)采样时间T0F(s)?s?s?1。特征多项式为白噪声循环周期为2?32768。

设为1Sec,K?120, T1?8.3Sec, T2?6.2Sec

3 源程序清单

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

function sita=U(N)

%生成N个[0 1]均匀分布随机数 A=179; x0=11; M=2^15; for k=1:N x2=A*x0;

x1=mod(x2,M); v1=x1/(M+1); v(:,k)=v1; x0=x1; end sita=v; end

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

function v=noise(aipi)

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

- 2 -

sigma=1; %标准差 for k=1:length(aipi) ksai=0; for i=1:12

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

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

3.3 M序列生成函数

function [Np r M]=createM(n,a)

%生成长度为n的M序列,周期为Np,周期数为r x=[1 1 1 1 1 1]; %初始化初态 for i=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 过程仿真函数

function y=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; for k=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);

- 3 -

end end

3.5 相关函数计算函数

function R_Mz=RMz(Np,r,u,z) r=r-1;

y=zeros(1,Np); for k=1:Np y(k)=0;

for i=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 [og yita]=main(time) % 脉冲响应估计误差 og % 噪信比yita N=time*63;

K=120; T1=8.3; T2=6.2; T0=1; a=1; sita=U(N); %生成[0 1]均匀分布随机数

v=noise(sita); %利用aipi生成正态分布白噪声 [Np r u]=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); for k=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); for k=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); %计算信号方差

- 4 -

yita=sqrt(oy/ov); %计算信噪比End 3.5 画图函数1

%mainPlot.m figure(1) for n=4:40

[og yita]=main(n); y1(n)=og; end

y1=y1(4:40); plot([4:40],y1); xlabel('周期数');

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

figure(2) for n=4:40

[og yita]=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); %生成[0 1]均匀分布随机数

v=noise(sita); %利用aipi生成正态分布白噪声 [Np r u]=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); for k=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); for k=1:Np

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

- 5 -

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

脉冲响应估计值 脉冲响应理论值

t

脉冲响应估计值 脉冲响应理论值

t

脉冲响应估计值 脉冲响应理论值

t

脉冲响应估计值 脉冲响应理论值

t

脉冲响应估计值 脉冲响应理论值

t

脉冲响应估计值 脉冲响应理论值

t

脉冲响应估计值 脉冲响应理论值

t

脉冲响应估计值 脉冲响应理论值

t

1 0.79 2.03 8 0.87 6.07 15 0.33 4.29 22 -0.10 2.39 29 -0.30 1.20 36 -0.44 0.58 43 -0.53 0.27 50 -0.57 0.12 57

2 0.92 3.52 9 0.80 5.94 16 0.23 3.99 23 -0.16 2.18 30 -0.31 1.09 37 -0.46 0.52 44 -0.54 0.24 51 -0.57 0.11 58

3 1.02 4.59 10 0.74 5.74 17 0.17 3.69 24 -0.19 1.98 31 -0.32 0.98 38 -0.47 0.46 45 -0.55 0.21 52 -0.56 0.10 59

4 1.04 5.32 11 0.65 5.49 18 0.10 3.40 25 -0.22 1.80 32 -0.36 0.88 39 -0.46 0.41 46 -0.55 0.19 53 -0.57 0.09 60

5 1.05 5.77 12 0.57 5.21 19 0.05 3.12 26 -0.25 1.63 33 -0.37 0.79 40 -0.49 0.37 47 -0.56 0.17 54 -0.57 0.08 61

6 1.01 6.02 13 0.50 4.91 20 -0.01 2.86 27 -0.29 1.48 34 -0.39 0.71 41 -0.51 0.33 48 -0.54 0.15 55 -0.56 0.07 62

7 0.92 6.11 14 0.42 4.60 21 -0.06 2.62 28 -0.28 1.33 35 -0.41 0.64 42 -0.52 0.30 49 -0.56 0.13 56 -0.55 0.06 63

- 6 -

脉冲响应估计值 -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 信噪比随着周期数增大的变化

- 7 -

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

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

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

- 8 -

6 结果分析

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

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

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

加入噪声前后的变化并不大,说明噪声对输出序列影响不大,在第二个周期之后输出序列变得稳定,具有周期变化。 6.3 脉冲响应理论值与估计值的比较

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

7 实验体会

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

- 9 -

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库利用相关分析法辨识脉冲响应在线全文阅读。

利用相关分析法辨识脉冲响应.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/216197.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: