经验模态分解python_用python做信号分解

其实直接在labview采集数据后进行频谱分析是最方便的,但是labview的数据分析包卖的很贵,对emd之类稍微新一点的方法又没有太多支持,比如得自己现编包络,另一个办法是labview采集后导入python或者matlab分析,这里记录下pyhton做emd。

经验模态分解(emd)适合处理非线性非平稳信号,他将信号分解成不同成分,这些成分可以是幅值调制或者频率调制得,其分解基于一定假设,比如信号存在极大值和极小值和相邻极值点得间隔为特征时间尺度,其分解采用上下包络得方式对信号进行周期拟合,感兴趣的同学建议找本书正式的学习下。

要在python做emd,得先安装emd工具包pyemd,然而我pip install和conda install都失败了,也不知道是不是it同学封我权限导致,但是在github下载后python setup.py成功了,然后使用极其简单:

from PyEMD import EMD, Visualisation

emd = EMD()

emd.emd(S)

imfs, res = emd.get_imfs_and_residue()

就得到由分量组成的列表,以及无法继续分解的残差。注意S得是numpy格式,列表导入是不行的。我拿轴承信号导入,

从上到下得到的是转频,保持架,和非线性运动的不平稳信号:

但是很奇怪的是,hht频率结果和上面的时间域结果对不上。

你可能感兴趣的:(经验模态分解python)