随机振动 matlab,Matlab内建psd函数在工程随机振动谱分析中的修正方法「建议收藏」

2022-09-27 16:02:13 浏览数 (1)

随机信号的功率谱分析是一种广泛使用的信号处理方法,能够辨识随机信号能量在频率域的分布,同时也是解决多种工程随机振动问题的主要途径之一.Matlab作为大型数学分析软件,得到了广泛应用,目前已推出7.x的版本.Matlab内建了功能强大的信号处理工具箱.psd函数是Matlab信号处理工具箱中自功率谱分析的主要内建函数.Matlab在其帮助文件中阐述psd函数时均将输出结果直接称为powerspectrumdensity,也即我们通常所定义的自功率谱.实际上经分析发现,工程随机振动中功率谱标准定义[1]与Matlab中psd函数算法有所区别,这一点Matlab的帮助文档没有给出清晰解释.因此在使用者如没有详细研究psd函数源程序就直接使用,极易导致概念混淆,得出错误的谱估计.本文详细对比了工程随机振动理论的功率谱定义与Matlab中psd函数计算功率谱的区别,并提出用修正的psd函数计算功率谱的方法,并以一组脉动风压作为随机信号,分别采用原始的psd函数与修正后的psd函数分别对其进行功率谱分析,对比了两者结果的差异,证实了本文提出的修正方法的有效性.1随机振动相关理论1.1傅立叶变换求功率谱理论上,平稳随机过程的自功率谱密度定义为其自相关函数的傅立叶变换:Sxx()=12p -Rxx(t)eitdt(1)其中,S(xx)()为随机信号x(t)的自功率谱密度,Rxx(t)为x(t)的自相关函数.工程随机振动中的随机过程一般都是平稳各态历经的,且采样信号样本长度是有限的,因此在实用上我们采用更为有效的计算功率谱的方法,即由时域信号x(t)构造一个截尾函数,如式(2)所示:xT(t)=x(t),0tT0,其他(2)其中,t为采样时刻,T为采样时长,x(t)为t时刻的时域信号值.由于xT(t)为有限长,故其傅立叶变换A(f,T)以及对应的逆变换存在,分别如式(3)、(4)所示:A(f,T)= -xT(t)e-i2pftdt(3)xT(t)= -A(f,T)ei2pftdt(4)由于所考虑过程是各态历经的,可以证明:Sxx(f)=limT1TA(f,T)2(5)在实际应用中,式(5)是作功率谱计算的常用方法.1.2功率谱分析中的加窗和平滑处理在工程实际中,为了降低工程随机信号的误差,一般对谱估计需要进行平滑处理.具体做法为:将时域信号{x(t)}分为n段:{x1(t)},{x2(t)},…,{xn-1(t)},{xn(t)},对每段按照式(5)求功率谱Sxixi(f),原样本的功率谱可由式(6)求得:Sxx(f)=1nni=1Sxixi(f)(6)如取一样本点为20480的样本进行分析,将样本分割为20段进行分析,每段样本点数为1024.将每段1024个样本点按照式(5)的方法分别计算功率谱后求平均,即可得到经过平滑处理的原样本的功率谱,这样计算出的平滑谱误差比直接计算要降低很多.另一方面,由于实际工程中随机信号的采样长度是有限的,即采样信号相当于原始信号的截断,即相当于用高度为1,长度为T的矩形时间窗函数乘以原信号,导致窗外信息完全丢失,引起信息损失.时域的这种信号损失将会导致频域内增加一些附加频率分量,给傅立叶变换带来泄漏误差.构造一些特殊的窗函数进行信号加窗处理可以弥补这种误差,即构造特殊的窗函数{u(t)},用{u(t)}去乘以原数据,对{x(t)u(t)}作傅立叶变换可以减少泄漏:Aw(f,T)= -u(t)xT(t)e-i2pftdt(7)其中,Aw(f,T)为加窗后的傅立叶变换.u(t)xT(t)实际上是对数据进行不等加权修改其结果会使计算出

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184399.html原文链接:https://javaforall.cn

0 人点赞