类EMD的“信号分解方法”横向对比详解,EMD,EEMD,CEEMD,CEEMDAN,ICEEMDAN,EWT,VMD优劣对比。附一行代码实现所有分解方法,7合1的MATLAB代码!

在之前的一系列文章中,我介绍了包括EMD,EEMD,CEEMD,CEEMDAN,ICEEMDAN,EWT,VMD在内的一系列所谓“类EMD”的分解方法。同学们在使用过程中经常会需要对比这些算法的优劣,并在论文中加以呈现;也有一些同学想直接知道结论,究竟哪个方法最好呢?

这篇文章就来回答这个问题,并且给出一系列的评价方法,方便大家使用,并且同样封装了极其易用的函数。

一、怎样评价模态分解结果的优劣

“类EMD”算法之所以能够衍生出这一系列的方法,往往都是要解决这以下几个层面的问题:

1.1 模态混叠

模态混叠是评价分解结果的最重要标准,因为我们都希望每个IMF分量代表一个独立的震荡模式,便于后续的分析和解释。

模态混叠通常有两种表现形式:一种是本应分离的震荡模态出现在同一个IMF分量中,另一种是单个模态被错误地分解到多个IMF分量中。

模态混叠我们通常可以在频谱中进行判断。

下图中是第一种模态混叠:

本应分离的震荡模态出现在同一个IMF分量中

这是第二种模态混叠:

单个模态被错误地分解到多个IMF分量中

1.2 端点效应

端点效应是指在信号分解过程中,由于边界处理不当而导致的分解结果在信号两端出现的失真或畸变现象。这个问题在许多EMD及其衍生算法中都存在。

直观点来说,端点效应是这样产生的:

在EMD分解过程中,有这样一个步骤:要根据原始信号上下极值点,分别画出上、下包络线。

我们看一下信号的左端,上包络线(蓝色)和下包络线(红色)在时刻0的数值是难以确定的:

尤其是当信号震荡频率不高时,信号中的第一个极大值和极小值点可能距离0时刻点都比较远,由于缺少前后的数据点,插值算法无法准确估计包络线的走势,那么将会有很大一段包络线是“凭空猜测”出来的。这就会带来两端分解结果的不准确。

更为严重的是,由于EMD类算法通常需要多次迭代来提取IMF,端点处的误差可能会累积和放大,导致后续IMF的提取越来越不准确。

图虫红圈处是比较明显的端点效应的影响结果

因此,端点效应也是衡量模态分解方法的标准之一,只不过这个也需要通过肉眼来判断,没有量化的指标评判。

1.3 重构误差

理想情况下,经过类EMD分解后的各个分量在相加之后,应该是等于原信号的。

不过由于在实际分解计算中,受到停止准则、浮点运算误差以及算法本身缺陷等因素的干扰,导致各分量重构后不能完全与原始信号相等,而是有一个很小的误差值。通常情况下,这个误差由于数量级相对于原始信号要小得多,不会影响算法应用,不过也常常用作衡量算法优劣的指标之一。(重构误差的单位和原始信号是一样的)

例如之前的文章里,我们对比过EEMD和CEEMD两个方法的重构误差值。可以看出,对于不同的分解方法,重构3误差值的差别可能是十分大的。

EEMD方法的重构残余量

CEEMD方法的重构残余量

1.4 运行时间

在处理大规模数据或需要实时处理的应用场景中,运行时间是评价模态分解方法的一个重要实用指标。不同的分解算法由于其内部机制和计算复杂度的差异,运行时间可能会有显著不同。

对于巨

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.看海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值