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

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

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

Python的部分代码如下:

import sys
import numpy as np
import numpy.fft as nfft
from figure import spectrogramFigure
def main():
    tMin= -500.0
    tMax= 5800.0
    wMin= 0.75
    wMax= 3.25
    fName = './data/exampleData_pulsePropagation.npz'
    def fetchData(fileLoc):
        data = np.load(fileLoc)
        return data['t'], data['Et']

    def windowFuncGauss(s0):
        return lambda t: np.exp(-t**2/2/s0/s0)/np.sqrt(2.*np.pi)/s0
    t,Et = fetchData(fName)

    for s0 in [10.0,140.0]:
        oName="./FIGS/fig_vanillaFrog_ESM_sigma%4.3lf.png"%(s0)
        res = vanillaFrog(t,Et,windowFuncGauss(s0),tLim=(tMin,tMax,10), wLim=(wMin,wMax,3))
        spectrogramFigure((t,Et),res,oName=oName)
main()

出图如下:

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

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哥廷根数学学派

码字不易,且行且珍惜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值