完整集合经验模态分解(CEEMD)详解
目录
- 前言
- 从EMD到EEMD再到CEEMD
- EMD(经验模态分解)回顾
- EEMD(集合经验模态分解)的改进与不足
- CEEMD(完整集合经验模态分解)的原理
- 噪声对(noise pairs)与对称性
- CEEMD的核心数学表达式
- 与EEMD的主要区别
- CEEMD算法流程与公式
- CEEMD分解过程中的详细推导
- 正负噪声加法及EMD展开
- IMF的最终计算公式
- 残差的平均处理
- CEEMD的优点与局限性
- 数值示例:CEEMD在信号分析中的应用
- 总结
前言
CEEMD(Complete Ensemble Empirical Mode Decomposition)是在EMD/EEMD的基础上进一步提升分解精度与稳定性的一种自适应信号分解算法。通过向原始信号添加正负成对的噪声并分别进行EMD分解,再对所有分解结果进行“对内平均”与“整体平均”,CEEMD可以在更大程度上抵消随机噪声的干扰,从而显著降低模态混叠(mode mixing)与重构误差。它在故障诊断、地震勘探、生物医学信号处理等领域有广泛应用价值。
从EMD到EEMD再到CEEMD
EMD(经验模态分解)回顾
EMD是Huang等人提出的,用于将非线性、非平稳信号自适应地分解成若干个本征模态函数(IMF)以及一个剩余(Residue)。
- 对信号 x ( t ) x(t) x(t):
x ( t ) = ∑ k = 1 K I M F k ( t ) + r ( t ) . x(t) = \sum_{k=1}^{K} \mathrm{IMF}_k(t) + r(t). x(t)=k=1∑KIMFk(t)+r(t).
- 获得每个IMF的关键在于**Sifting(筛分)**过程。对于当前信号(或剩余) x ( t ) x(t) x(t):
- 找出所有极大值和极小值。
- 分别用插值得到上包络 u ( t ) u(t) u(t) 和下包络 l ( t ) l(t) l(t),计算平均线
m ( t ) = u ( t ) + l ( t ) 2 . m(t) = \frac{u(t) + l(t)}{2}. m(t)=2u(t)+l(t).
- 去掉该平均线:
h 1 ( t ) = x ( t ) − m ( t ) . h_1(t) = x(t) - m(t). h1(t)=x(t)−m(t).
检查 h 1 ( t ) h_1(t) h1(t) 是否满足IMF条件(如过零点与极值数差不超过1、上包络与下包络局部对称等),若不满足则继续插值、再减平均线,经过若干迭代得到首个IMF:
I M F 1 ( t ) . \mathrm{IMF}_1(t). IMF1(t).
- 将 I M F 1 ( t ) \mathrm{IMF}_1(t) IMF1(t) 从 x ( t ) x(t) x(t) 中减去得到剩余 r 1 ( t ) r_1(t) r1(t),然后对 r 1 ( t ) r_1(t) r1(t) 重复同样操作,直到剩余无明显振荡为止。
EMD虽然在理论上很好地保留了信号的瞬时特性,但易出现模态混叠(不同频率成分混在同一IMF里)与插值敏感等问题。
EEMD(集合经验模态分解)的改进与不足
EEMD通过在信号中添加白噪声并多次分解:
- 每次添加随机噪声 ϵ i ( t ) \epsilon_i(t) ϵi(t) 得到 x i ( t ) = x ( t ) + α ϵ i ( t ) x_i(t) = x(t) + \alpha \,\epsilon_i(t) xi(t)=x(t)+αϵi(t)。
- 对每个 x i ( t ) x_i(t) xi(t) 做EMD,获取 IMF。
- 对相同阶IMF做平均,得到最终分解。
EEMD的优点:
- 通过对噪声的统计平均,可以部分抵消噪声引起的分解偏差,抑制模态混叠。
然而,EEMD仍可能存在:
- 残余噪声偏差:噪声幅度和试验次数选择不当,会在IMF中留下轻微偏差。
- 重构误差:对信号进行重构时,有时无法完全恢复到原信号,存在微小差异。
为进一步减少这种偏差,CEEMD提出了“噪声对”的概念。
CEEMD(完整集合经验模态分解)的原理
噪声对(noise pairs)与对称性
在CEEMD中,每一次试验并不是只添加单边噪声,而是对同一个噪声信号 ϵ i ( t ) \epsilon_i(t) ϵi(t) 同时添加正、负幅度,得到一对带噪信号:
x i + ( t ) = x ( t ) + α ϵ i ( t ) , x i − ( t ) = x ( t ) − α ϵ i ( t ) . x_i^+(t) = x(t) + \alpha\,\epsilon_i(t), \quad x_i^-(t) = x(t) - \alpha\,\epsilon_i(t). xi+(t)=x(t)+αϵi(t),xi−(t)=x(t)−αϵi(t).
正负噪声对的思想是:如果噪声是独立同分布且均值为0,那么在对称的加减操作下,相当于让噪声对IMF的贡献在统计上“更好地抵消”,从而能在重构时获得更精确的结果。
CEEMD的核心数学表达式
假设我们进行 N N N 组噪声对试验,那么每一对(第 i i i 对)有:
x i + ( t ) = x ( t ) + α ϵ i ( t ) , x i − ( t ) = x ( t ) − α ϵ i ( t ) , x_i^+(t) = x(t) + \alpha \,\epsilon_i(t), \quad x_i^-(t) = x(t) - \alpha \,\epsilon_i(t), xi+(t)=x(t)+αϵi(t),xi−(t)=x(t)−αϵi(t),
其中 α \alpha α 为噪声强度因子, ϵ i ( t ) \epsilon_i(t) ϵi(t) 为白噪声。对 x i + ( t ) x_i^+(t) xi+(t) 与 x i − ( t ) x_i^-(t) xi−(t) 分别进行EMD分解可得若干IMF序列:
x i + ( t ) = ∑ k = 1 K i + I M F k ( i , + ) ( t ) + r i + ( t ) , x i − ( t ) = ∑ k = 1 K i − I M F k ( i , − ) ( t ) + r i − ( t ) . x_i^+(t) = \sum_{k=1}^{K_i^+} \mathrm{IMF}_k^{(i,+)}(t) + r_i^+(t), \quad x_i^-(t) = \sum_{k=1}^{K_i^-} \mathrm{IMF}_k^{(i,-)}(t) + r_i^-(t). xi+(t)=k=1∑Ki+IMFk(i,+)(t)+ri+(t),xi−(t)=k=1∑Ki−IMFk(i,−)(t)+ri−(t).
最后,对相同阶次的IMF做“对内平均”与“整体平均”:
I M F k ( t ) = 1 2 N ∑ i = 1 N [ I M F k ( i , + ) ( t ) + I M F k ( i , − ) ( t ) ] . \mathrm{IMF}_k(t) = \frac{1}{2N}\sum_{i=1}^{N} \Big[\mathrm{IMF}_k^{(i,+)}(t) + \mathrm{IMF}_k^{(i,-)}(t)\Big]. IMFk(t)=2N1i=1∑N[IMFk(i,+)(t)+IMFk(i,−)(t)].
可见,正负噪声会在最终求和时呈现相反符号,对信号主体的贡献却相互抵消噪声偏差,从而达到比EEMD更好的分解稳健性和重构精度。
与EEMD的主要区别
- 噪声加法:EEMD每次加的是同向噪声;CEEMD则加的是对称噪声(+噪声和-噪声)。
- 误差抵消:CEEMD在理论上能更彻底地抵消噪声干扰,重构信号时的偏差更小,得到更准确的IMF。
- 计算量更大:CEEMD每组噪声要进行2次EMD(正噪声与负噪声),若原本EEMD就需要 N N N 次试验,则CEEMD需要做 2 N 2N 2N 次EMD,计算成本更高。
CEEMD算法流程与公式
总结上述思想,CEEMD的具体操作通常如下:
-
参数设置
- 设定试验次数 N N N,以及噪声强度 α \alpha α。
- 常见做法: α \alpha α 为信号标准差的一定比例(如0.1~0.4倍)。
-
构造噪声对
- 生成 N N N 组彼此独立的白噪声序列 ϵ 1 ( t ) , ϵ 2 ( t ) , … , ϵ N ( t ) \epsilon_1(t), \epsilon_2(t), \dots, \epsilon_N(t) ϵ1(t),ϵ2(t),…,ϵN(t)。
- 对第 i i i 组,构造:
x i + ( t ) = x ( t ) + α ϵ i ( t ) , x i − ( t ) = x ( t ) − α ϵ i ( t ) . x_i^+(t) = x(t) + \alpha\,\epsilon_i(t), \quad x_i^-(t) = x(t) - \alpha\,\epsilon_i(t). xi+(t)=x(t)+αϵi(t),xi−(t)=x(t)−αϵi(t).
-
EMD分解
- 分别对 x i + ( t ) x_i^+(t) xi+(t) 和 x i − ( t ) x_i^-(t) xi−(t) 做EMD:
x i + ( t ) = ∑ k = 1 K i + I M F k ( i , + ) ( t ) + r i + ( t ) , x_i^+(t) = \sum_{k=1}^{K_i^+} \mathrm{IMF}_k^{(i,+)}(t) + r_i^+(t), xi+(t)=k=1∑Ki+IMFk(i,+)(t)+ri+(t),
x i − ( t ) = ∑ k = 1 K i − I M F k ( i , − ) ( t ) + r i − ( t ) . x_i^-(t) = \sum_{k=1}^{K_i^-} \mathrm{IMF}_k^{(i,-)}(t) + r_i^-(t). xi−(t)=k=1∑Ki−IMFk(i,−)(t)+ri−(t).
- K i + K_i^+ Ki+ 与 K i − K_i^- Ki− 分解得到的IMF数可能不一致,需做对齐(比如对较短的IMF序列补零,或对多余的阶次舍弃)。
-
对IMF做平均
- 对同一对噪声(第 i i i 对)先做内部平均:
I M F k ( i ) ( t ) = I M F k ( i , + ) ( t ) + I M F k ( i , − ) ( t ) 2 . \mathrm{IMF}_k^{(i)}(t) = \frac{ \mathrm{IMF}_k^{(i,+)}(t) + \mathrm{IMF}_k^{(i,-)}(t)}{2}. IMFk(i)(t)=2IMFk(i,+)(t)+IMFk(i,−)(t).
- 再对所有 i = 1 , 2 , … , N i=1,2,\dots,N i=1,2,…,N 做整体平均:
I M F k ( t ) = 1 N ∑ i = 1 N I M F k ( i ) ( t ) = 1 2 N ∑ i = 1 N [ I M F k ( i , + ) ( t ) + I M F k ( i , − ) ( t ) ] . \mathrm{IMF}_k(t) = \frac{1}{N} \sum_{i=1}^{N} \mathrm{IMF}_k^{(i)}(t) = \frac{1}{2N}\sum_{i=1}^{N}\Big[\mathrm{IMF}_k^{(i,+)}(t) + \mathrm{IMF}_k^{(i,-)}(t)\Big]. IMFk(t)=N1i=1∑NIMFk(i)(t)=2N1i=1∑N[IMFk(i,+)(t)+IMFk(i,−)(t)].
-
残差处理
- 类似对IMF的处理方式,残差 r i + ( t ) , r i − ( t ) r_i^+(t), r_i^-(t) ri+(t),ri−(t) 也可先做对内平均,再对所有对求平均,得到最终残差 r ^ ( t ) \hat{r}(t) r^(t)。
-
重构信号
- 最终,CEEMD分解形式可写为:
x ( t ) ≈ ∑ k = 1 K I M F k ( t ) + r ^ ( t ) . x(t) \approx \sum_{k=1}^{K} \mathrm{IMF}_k(t) + \hat{r}(t). x(t)≈k=1∑KIMFk(t)+r^(t).
- 在理论上,当 N N N 足够大、噪声幅度合适、EMD分解精确时,这一重构有较高的准确度。
CEEMD分解过程中的详细推导
正负噪声加法及EMD展开
设原信号 x ( t ) x(t) x(t),我们添加幅度为 α \alpha α 的噪声对 ϵ i ( t ) \epsilon_i(t) ϵi(t),则
x i + ( t ) = x ( t ) + α ϵ i ( t ) , x i − ( t ) = x ( t ) − α ϵ i ( t ) . x_i^+(t) = x(t) + \alpha \epsilon_i(t), \quad x_i^-(t) = x(t) - \alpha \epsilon_i(t). xi+(t)=x(t)+αϵi(t),xi−(t)=x(t)−αϵi(t).
对各自进行EMD展开:
x i + ( t ) = ∑ k = 1 K i + I M F k ( i , + ) ( t ) + r i + ( t ) , x_i^+(t) = \sum_{k=1}^{K_i^+} \mathrm{IMF}_k^{(i,+)}(t) + r_i^+(t), xi+(t)=k=1∑Ki+IMFk(i,+)(t)+ri+(t),
x i − ( t ) = ∑ k = 1 K i − I M F k ( i , − ) ( t ) + r i − ( t ) . x_i^-(t) = \sum_{k=1}^{K_i^-} \mathrm{IMF}_k^{(i,-)}(t) + r_i^-(t). xi−(t)=k=1∑Ki−IMFk(i,−)(t)+ri−(t).
因为噪声对往往引起信号极值分布的扰动, K i + K_i^+ Ki+ 与 K i − K_i^- Ki− 可能不同,但为了后续平均,我们会在实现上做阶数统一。
IMF的最终计算公式
对同一阶 k k k 而言(经过对齐操作),将正噪声EMD与负噪声EMD的对应IMF做平均:
I M F k ( i ) ( t ) = 1 2 [ I M F k ( i , + ) ( t ) + I M F k ( i , − ) ( t ) ] . \mathrm{IMF}_k^{(i)}(t) = \frac{1}{2}\Big[\mathrm{IMF}_k^{(i,+)}(t) + \mathrm{IMF}_k^{(i,-)}(t)\Big]. IMFk(i)(t)=21[IMFk(i,+)(t)+IMFk(i,−)(t)].
然后,对所有 N N N 对做整体平均,即
I M F k ( t ) = 1 N ∑ i = 1 N I M F k ( i ) ( t ) = 1 2 N ∑ i = 1 N [ I M F k ( i , + ) ( t ) + I M F k ( i , − ) ( t ) ] . \mathrm{IMF}_k(t) = \frac{1}{N}\sum_{i=1}^{N} \mathrm{IMF}_k^{(i)}(t) = \frac{1}{2N}\sum_{i=1}^{N} \Big[\mathrm{IMF}_k^{(i,+)}(t) + \mathrm{IMF}_k^{(i,-)}(t)\Big]. IMFk(t)=N1i=1∑NIMFk(i)(t)=2N1i=1∑N[IMFk(i,+)(t)+IMFk(i,−)(t)].
这就是CEEMD的核心IMF平均公式。由于 ϵ i ( t ) \epsilon_i(t) ϵi(t) 为白噪声且在 + / − +/- +/− 的形式出现,其对分解的偏移贡献会在统计意义上大幅抵消。
残差的平均处理
对残差(也称剩余)同理,若在第 i i i 对试验的EMD结果中有
r i + ( t ) = x i + ( t ) − ∑ k = 1 K i + I M F k ( i , + ) ( t ) , r i − ( t ) = x i − ( t ) − ∑ k = 1 K i − I M F k ( i , − ) ( t ) , r_i^+(t) = x_i^+(t) - \sum_{k=1}^{K_i^+}\mathrm{IMF}_k^{(i,+)}(t), \quad r_i^-(t) = x_i^-(t) - \sum_{k=1}^{K_i^-}\mathrm{IMF}_k^{(i,-)}(t), ri+(t)=xi+(t)−k=1∑Ki+IMFk(i,+)(t),ri−(t)=xi−(t)−k=1∑Ki−IMFk(i,−)(t),
则先做对内平均:
r i ( t ) = r i + ( t ) + r i − ( t ) 2 , r_i(t) = \frac{r_i^+(t) + r_i^-(t)}{2}, ri(t)=2ri+(t)+ri−(t),
再对 i = 1 , … , N i=1,\dots,N i=1,…,N 做整体平均:
r ^ ( t ) = 1 N ∑ i = 1 N r i ( t ) . \hat{r}(t) = \frac{1}{N}\sum_{i=1}^{N} r_i(t). r^(t)=N1i=1∑Nri(t).
从而得到CEEMD的最终残差 r ^ ( t ) \hat{r}(t) r^(t)。如果在数值上剩余的能量已很小,也可以忽略不计。
CEEMD的优点与局限性
优点
- 更好的重构精度:与EEMD相比,CEEMD通过加噪声对的方式,能更彻底地抵消噪声对IMF的偏差,减少重构误差。
- 模态混叠更少:在对称噪声干预下,极值点分布会更加分散均匀,分解到的IMF分量往往频率特征更清晰,模态之间的能量泄漏更小。
- 稳定性好:多次实验显示,CEEMD在不同试验下得到的结果波动较小,可重复性好。
局限性
- 计算量更大:CEEMD相当于对每组噪声要做2次EMD,整体耗时是EEMD的2倍(甚至更高),在大规模数据上需合理安排。
- 噪声幅度与试验次数选择:若噪声幅度 α \alpha α 过小,则扰动不足以打破信号的原始极值结构;过大则引入过多随机波动; N N N 太小平均不充分,太大则计算量飙升。
- 端点插值和IMF阶对齐问题:本质上仍基于EMD,需要在插值和阶对齐策略上多加注意。
数值示例:CEEMD在信号分析中的应用
下面给出一个合成信号示例:
x ( t ) = sin ( 2 π ⋅ 5 t ) + 0.5 sin ( 2 π ⋅ 20 t ) + 0.2 r a n d n ( t ) , x(t) = \sin(2\pi \cdot 5t) + 0.5\sin(2\pi \cdot 20t) + 0.2\,\mathrm{randn}(t), x(t)=sin(2π⋅5t)+0.5sin(2π⋅20t)+0.2randn(t),
其中 r a n d n ( t ) \mathrm{randn}(t) randn(t) 表示白噪声。
- 设置CEEMD参数
- 选噪声对数 N = 100 N=100 N=100,噪声强度 α = 0.3 \alpha=0.3 α=0.3(基于信号标准差的经验设置)。
- 构造噪声对并做EMD
- 对每个 i ∈ { 1 , … , 100 } i\in \{1,\dots,100\} i∈{1,…,100},生成 ϵ i ( t ) \epsilon_i(t) ϵi(t),构造
x i + ( t ) = x ( t ) + 0.3 ϵ i ( t ) , x i − ( t ) = x ( t ) − 0.3 ϵ i ( t ) . x_i^+(t) = x(t) + 0.3\,\epsilon_i(t), \quad x_i^-(t) = x(t) - 0.3\,\epsilon_i(t). xi+(t)=x(t)+0.3ϵi(t),xi−(t)=x(t)−0.3ϵi(t).
- 分别对 x i + ( t ) x_i^+(t) xi+(t) 与 x i − ( t ) x_i^-(t) xi−(t) 做EMD分解。
- 对IMF进行平均
- 得到各阶IMF,先对同一个 i i i 的正负分解结果做加和/2,然后再对所有 i i i 求平均,得到CEEMD-IMFs:
I M F k ( t ) = 1 2 N ∑ i = 1 N [ I M F k ( i , + ) ( t ) + I M F k ( i , − ) ( t ) ] . \mathrm{IMF}_k(t) = \frac{1}{2N} \sum_{i=1}^N \Big[\mathrm{IMF}_k^{(i,+)}(t) + \mathrm{IMF}_k^{(i,-)}(t)\Big]. IMFk(t)=2N1i=1∑N[IMFk(i,+)(t)+IMFk(i,−)(t)].
- 分析结果
- 常见情况下,第一层IMF会主要包含20Hz的成分(加上一点噪声),第二层IMF会对应5Hz的分量,后续IMF或残差可能捕捉到更低频或趋势信息。
- 与EMD/EEMD相比,CEEMD可见模态间的重叠更少,重构后的误差更小。
总结
CEEMD(Complete Ensemble Empirical Mode Decomposition)是在EEMD的思路基础上,采用正负噪声对以进一步强化噪声抵消效果,提高分解的稳定性与重构精度。其核心公式可概括为:
- 噪声对添加:对第 i i i 组白噪声 ϵ i ( t ) \epsilon_i(t) ϵi(t),构造
x i + ( t ) = x ( t ) + α ϵ i ( t ) , x i − ( t ) = x ( t ) − α ϵ i ( t ) . x_i^+(t) = x(t) + \alpha \epsilon_i(t), \quad x_i^-(t) = x(t) - \alpha \epsilon_i(t). xi+(t)=x(t)+αϵi(t),xi−(t)=x(t)−αϵi(t).
- EMD分解:对 x i + ( t ) x_i^+(t) xi+(t) 和 x i − ( t ) x_i^-(t) xi−(t) 分别进行EMD,得到 I M F k ( i , + ) ( t ) \mathrm{IMF}_k^{(i,+)}(t) IMFk(i,+)(t) 与 I M F k ( i , − ) ( t ) \mathrm{IMF}_k^{(i,-)}(t) IMFk(i,−)(t)。
- IMF平均:
I M F k ( t ) = 1 2 N ∑ i = 1 N [ I M F k ( i , + ) ( t ) + I M F k ( i , − ) ( t ) ] . \mathrm{IMF}_k(t) = \frac{1}{2N} \sum_{i=1}^{N} \Bigl[\mathrm{IMF}_k^{(i,+)}(t) + \mathrm{IMF}_k^{(i,-)}(t)\Bigr]. IMFk(t)=2N1i=1∑N[IMFk(i,+)(t)+IMFk(i,−)(t)].
相较EEMD,CEEMD在保证对信号非平稳特征进行自适应分解的同时,能获得更低的重构误差与更稳定的模态分量。然而,其计算量增加约一倍,参数(噪声幅度、试验次数等)依然需要根据经验或数据特点进行选择。