假设我们用一个正弦信号 tone 和一个调频信号 chirp 相加得到一个存在多种频率成分的新信号。
我们首先找到信号的极大值点和极小值点(或者称为波峰和波谷),然后用三次样条曲线去拟合这些极大值点和极小值点,得到上包络线和下包络线(图中蓝色线和红色线);再将上下包络线求取均值得到图中的粉色线;最后用信号减去这个粉色线,得到下方一个残余分量信号(residue)。这是第一次迭代(iteration 1)操作。
由于此时的粉色曲线波动很大,还不能够满足 IMF 分量的要求,因此需要继续迭代下去。
仿照第一次的操作继续重复迭代下去,直到粉色曲线接近于一条直线(即任意时刻下的包络均值为0),此时得到的残余分量信号即为第一个 IMF 分量。
信号 | 图像 |
---|---|
原信号 | ![]() |
IMF1 分量 | ![]() |
新的信号 | ![]() |
将第一个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第二个 IMF 分量。
经过 5 次迭代最终找到了第二个 IMF 分量。
信号 | 图像 |
---|---|
原信号 | ![]() |
IMF2 分量 | ![]() |
新的信号 | ![]() |
将第二个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第三个 IMF 分量。
经过 12 次迭代最终找到了第三个 IMF 分量。
信号 | 图像 |
---|---|
原信号 | ![]() |
IMF3 分量 | ![]() |
新的信号 | ![]() |
将第三个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第四个 IMF 分量。
经过 16 次迭代最终找到了第四个 IMF 分量。
信号 | 图像 |
---|---|
原信号 | ![]() |
IMF4 分量 | ![]() |
新的信号 | ![]() |
将第四个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第五个 IMF 分量。
经过 11 次迭代最终找到了第五个 IMF 分量。
信号 | 图像 |
---|---|
原信号 | ![]() |
IMF5 分量 | ![]() |
新信号 | ![]() |
将第五个 IMF 分量从原信号中减去,得到新的信号,此时发现新的信号其极值点只有一个,小于2,信号无法再继续做包络线了,因此可以停止迭代了。
将前面找到的所有 IMF 分量和最后一个残余分量汇总到一起,得到上图。因此原信号可以拆分为这些分量信号之和。对比信号生成的过程和最终分解得到的结果,可以发现 IMF1 和 IMF2 与我们合成时的两个信号基本一致,也就是说,EMD 成功分离出了不同成分的信号,且 IMF 分量是按照高频到低频排序的。
合成 | 分解 |
---|---|
![]() |
![]() |
Step1:输入信号 。
Step2:初始化残余分量,; 。
Step3:初始化疑似模态分量,; 。
Step4:计算 的包络均值 :
其中, 和 分别为 的极大值点和极小值点通过三次样条函数拟合出来的的包络曲线。
Step5:减去包络均值, 。
Step6:利用标准偏差 和零点、极值点个数判断 是否为 IMF 分量,其中
若 小于 0.2 或者 0.3 (表明包络均值为0),且 的零点和极值点的个数相同或者最多相差 1 个,则可以记作一个 IMF 分量 ,否则 ,转到 Step4 。
Step7:将残余分量减去 IMF 分量,得到新的残余分量, 。
Step8:若新的残余分量 满足单调,或者极值点不超过 2 个,则无法进一步做包络线,分解结束;否则 ,转到 Step3 。
最终 EMD 算法能够将将其分解为 个 IMF 分量 和 1 个残余分量 ,即:
联系客服