EMD

目的:利用python自带的 pyEMD 实现 经验模态分解(EMD)

1 加载python库

1
2
3
import numpy as np
from PyEMD import EMD
import matplotlib.pyplot as plt

2 EMD分解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 生成示例信号
t = np.linspace(0, 1, 1000)
signal = np.sin(5 * 2 * np.pi * t) + np.sin(10 * 2 * np.pi * t)

# 创建EMD对象
emd = EMD()

# 执行EMD分解
IMFs = emd(signal)

# 绘制分解后的IMFs
plt.figure(figsize=(10, 6),dpi=600)
plt.subplot(len(IMFs) + 1, 1, 1)
plt.plot(t, signal, 'b')
plt.title('Original Signal')

for i, IMF in enumerate(IMFs):
plt.subplot(len(IMFs) + 1, 1, i + 2)
plt.plot(t, IMF, 'r')
plt.title('IMF %d' % (i + 1))
plt.tight_layout()
plt.show()

3 结束