Python实现集成经验模态分解(EEMD)
Python 实现集成经验模态分解(EEMD)
⾸先导⼊需要的包
from PyEMD import EEMD
第⼀次导⼊可能会报错,没有这个PyEMD 这个包,然后⼀般我们就会去安装输⼊命令:pip install pyemd。
注意这是⼀个坑。
应该使⽤的命令是:pip install EMD-signal
⾄于为什么我也不甚清楚,写这篇博客的⽬的就是记下⾃⼰踩过的坑,不断填坑,以后少踩坑。
下⾯正式开始进⾏eemd分解
def signal_eemd(S):
# 这⾥是根据我的数据计算的时间
Ts =1/20000
t = np.linspace(0,1024* Ts, num=1024)
eemd = EEMD()
eIMFs = d(S, t,-1)
nIMFs = eIMFs.shape[0]
eeIMFs = eIMFs[0:7,:]
# 因为我是批量处理很多信号,每个信号分解得到的分解信号数量不同,没办法统⼀操作,
# 所以这⾥只取了前7个信号分量
print(eIMFs.shape, eeIMFs.shape)
# Plot results
plt.figure(figsize=(12,9))
plt.subplot(nIMFs +1,1,1)
plt.plot(t, S,'r')
for n in range(nIMFs):
plt.subplot(nIMFs +1,1, n +2)
plt.plot(t, eIMFs[n],'g')
plt.ylabel("eIMF %i"%(n +1))
plt.locator_params(axis='y', nbins=5)
plt.xlabel("Time [s]")
plt.tight_layout()
plt.savefig('eemd_example', dpi=120)
linspace函数pythonplt.show()
plt.plot(t, eIMFs[0]+eIMFs[1]+eIMFs[1],'g')
plt.show()
return eeIMFs.T
if __name__ =="__main__":
X_eeemd =(signal_eemd(S=X))
# 这个函数必须放在if __name__ == "__main__"下⾯执⾏才可以,我不知道为什么,
# 但是试了很多种其他的⽅法都失败了,只能⽼⽼实实的放在if __name__ == "__main__"下⾯执⾏
总结⼀下,⼀共两个坑,⼀个是安装PyEMD包时,⼀个时执⾏eemd分解函数时,希望可以帮到新⼿,新⼿真难,⼀步⼀个坑。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。