python 写emd分解的代码
时间: 2023-12-01 20:57:23 浏览: 87
VMD_vmd分解_EMD_vmd_
5星 · 资源好评率100%
以下是 Python 中使用 PyEMD 库进行 EMD 分解的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
import pyemd
# 生成信号
t = np.linspace(0, 1, 200)
s = np.sin(11 * np.pi * t) + np.sin(25 * np.pi * t) + np.sin(52 * np.pi * t)
# EMD 分解
emd = pyemd.EMD()
IMFs = emd(s)
# 绘制结果
plt.subplot(IMFs.shape[0]+1, 1, 1)
plt.plot(t, s)
plt.title('Original Signal')
for i in range(IMFs.shape[0]):
plt.subplot(IMFs.shape[0]+1, 1, i+2)
plt.plot(t, IMFs[i])
plt.title('IMF {}'.format(i+1))
plt.show()
```
首先,我们使用 `numpy` 库生成一个包含多个正弦波的信号,然后使用 `pyemd` 库的 `EMD` 类进行 EMD 分解,将结果存储在 `IMFs` 变量中。最后,我们使用 `matplotlib` 库绘制原始信号和所有分解出的 IMFs。
阅读全文