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

随机振动 matlab,Matlab内建psd函数在工程随机振动谱分析中的修正方法「建议收藏」随机信号的功率谱分析是一种广泛使用的信号处理方法,能够辨识随机信号能量在频率域的分布,同时也是解决多种工程随机振动问题的主要途径之一.Matlab作为大型数学分析软件,得到了广泛应用,目前已推出7.x的版本.Matlab内建了功能强大的信号处理工具箱.psd函数是Matlab信号处理工具箱中自功率谱分析的主要内建函数.Matlab在其帮助文件中阐述psd函数时均将输出结果直接称为powerspec…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

随机信号的功率谱分析是一种广泛使用的信号处理方法,能够辨识随机信号能量在频率域的分布,同时也是解决多种工程随机振动问题的主要途径之一.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.net/184399.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 信号处理之父_信息与信号处理

    信号处理之父_信息与信号处理一、DFT之前言部分由于matlab已提供了内部函数来计算DFT、IDFT,我们只需要会调用fft、ifft函数就行;二、函数说明:fft(x):计算N点的DFT。N是序列x的长度,即N=len

    2022年8月6日
    7
  • js对象转数组_声明一个string类型的数组

    js对象转数组_声明一个string类型的数组 先给个案例体验下 对于像这样的一个对象,把它转换成一个数组,我们在开发中应该会遇到过, {‘未完成’:0,’已完成’:1,’待确认’:2,’已取消’:-1}转为[{"未完成":0},{"已完成":1},{"待确认":2},{"已取消":-1}] 我们首先想到的是把他们一个个循环遍历取出来,push到一个数组当中去letobj1={‘未完成’:0,’已完…

    2022年9月13日
    2
  • 根据sessionid获取session对象_sessionattributes注解

    根据sessionid获取session对象_sessionattributes注解session.setAttribute(“sessionName”,Object);用来设置session值的,sessionName是名称,object是你要保存的对象。session.getAttribute(“sessionName”);用来得到对应名称的session值,即得到object对象,注意需要进行类型转换!

    2022年10月7日
    4
  • ExecuteSQL函数

    ExecuteSQL函数’传递参数SQL传递查询语句,MsgString传递查询信息。自身以一个数据集对象的形式返回PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)AsADODB.Recordset DimCnnAsADODB.Connection’定义连接对象 DimRstAsADODB

    2022年5月22日
    51
  • 优先队列「建议收藏」

    优先队列「建议收藏」优先队列比如现实生活中的排队,就符合这种先进先出的队列形式,但是像急诊医院排队,就不可能按照先到先治疗的规则,所以需要使用优先队列。实现优先队列其实都是基于下面这些实现的:可以看出来实现优先队列最

    2022年7月3日
    24
  • .Net MVC 框架基础知识「建议收藏」

    .Net MVC 框架基础知识「建议收藏」一、什么是MVC?MVC是一种使用MVC(ModelViewController模型-视图-控制器)设计创建Web应用程序的模式。MVC全名是ModelViewControlle

    2022年6月30日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号