
CEEMDAN与ICEEMDAN:从Excel数据分解结果对比
# ICEEMDAN 与 CEEMDAN:信号处理方法的对比及实践
在信号处理领域,ICEEMDAN(Improved Complete Ensemble Empirical Mode Decomposition with
Adaptive Noise)和 CEEMDAN(Complete Ensemble Empirical Mode Decomposition with Adaptive N
oise)都是备受瞩目的方法。ICEEMDAN 更是在 CEEMDAN 的基础上发展而来,两者在实际应用中各有特点
。今天,我们就来对比这两种方法,并通过代码实践从 Excel 表格读取数据,然后分别用这两种方法进行
分解并展示结果。
## 数据读取
首先,我们需要从 Excel 表格中读取数据。在 Python 中,`pandas`库是处理表格数据的利器。
```python
import pandas as pd
# 读取 Excel 文件
data = pd.read_excel('your_file.xlsx')
# 假设数据在第一列
signal = data.iloc[:, 0].values
```
这里,`pd.read_excel`函数将 Excel 文件读取进来,`iloc[:, 0]`表示选取所有行的第一列数据
,然后通过`values`属性将数据转换为 NumPy 数组形式,方便后续的信号处理操作。
## CEEMDAN 分解
接下来,我们使用`PyEMD`库来进行 CEEMDAN 分解。
```python
from PyEMD import CEEMDAN
ceemdan = CEEMDAN()
imfs_ceemdan = ceemdan(signal)
```
在这段代码中,我们先实例化了`CEEMDAN`对象,然后直接将读取到的信号`signal`传入该对象进
行分解,分解得到的固有模态函数(IMFs)存储在`imfs_ceemdan`中。这些 IMFs 是原信号按照不同频率特
征分解出来的成分,每个 IMF 都有其独特的物理意义和频率特性。
## ICEEMDAN 分解
同样使用`PyEMD`库来进行 ICEEMDAN 分解。
```python