当前位置:   article > 正文

Python环境下基于优化时频分辨率的信号时频分析_python 时频分析

python 时频分析

时频分析方法使用时-频域联合分布描述时间序列信号的瞬态特征,并通过瞬时频率估计来表征信号的特征频率随时间变化的趋势,在时间序列信号处理中得到了广泛的应用。STFT 和WT等常用的时频分析方法时频分辨率较低,而且对于多分量时变信号的匹配效果不佳;WVD对噪声的鲁棒性不足且对于多分量时变信号存在交叉干扰项;EMD及其改进方法缺乏数学理论支撑,并存在端点效应和模态混叠等问题。以上时频分析方法存在一些共性问题,例如它们在时频平面的变换系数分布比较离散,瞬时频率曲线幅值能量不够集中,因此时频谱会出现模糊的现象。

因此提出了一种基于优化时频分辨率的信号时频分析方法,提供输入信号的时频表示,其边缘表示单位时间和频率的原始强度,以调整可调参数以强调时间或频率分辨率。

Python的部分代码如下:

  1. import sys
  2. import numpy as np
  3. import numpy.fft as nfft
  4. from figure import spectrogramFigure
  5. def main():
  6. tMin= -500.0
  7. tMax= 5800.0
  8. wMin= 0.75
  9. wMax= 3.25
  10. fName = './data/exampleData_pulsePropagation.npz'
  11. def fetchData(fileLoc):
  12. data = np.load(fileLoc)
  13. return data['t'], data['Et']
  14. def windowFuncGauss(s0):
  15. return lambda t: np.exp(-t**2/2/s0/s0)/np.sqrt(2.*np.pi)/s0
  16. t,Et = fetchData(fName)
  17. for s0 in [10.0,140.0]:
  18. oName="./FIGS/fig_vanillaFrog_ESM_sigma%4.3lf.png"%(s0)
  19. res = vanillaFrog(t,Et,windowFuncGauss(s0),tLim=(tMin,tMax,10), wLim=(wMin,wMax,3))
  20. spectrogramFigure((t,Et),res,oName=oName)
  21. main()

出图如下:

工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任
《《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》等EI期刊审稿专家。
擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/134361?site
推荐阅读
相关标签
  

闽ICP备14008679号