一、模态分解算法===============EMD算法介绍

(一)模态分解相关的算法有以下几类

IMF 固有模态函数\EMD经验模态分解\EEMD集合经验模态分解\CEEMD 互补集合经验\(EEMD的标准形式)CEEMDAN自适应噪声完备集合经验模态分解\VMD 变分模态分解

(二)本篇主要介绍EMD算法

IMF的定义:将待研究的信号分解为一个个单分量信号,每一个单分量信号只包含一种振荡模式(即单一的瞬时频率),这些分解后的分量称为固有模态函数

满足两点要求

1)极值点和过零点的数目应该相等,或者最多差一个

2)局部最大和局部最小的上下包络线均值为零

这两点要求是必要非充分条件,也就是IMF一定满足上面两个条件,但是满足上面两个条件的不一定是IMF。

(三)EMD的步骤

1)对信号x(t),找出局部最大值和局部最小值点

2)再利用三次样条函数分别对这些局部最大值和局部最小值点进行插值得到x(t)的上包络线u(t)和下包络线l(t),获取上下包络线的均值

m(t) = [u(t)+l(t)]/2,则m(t)为上下包络线的均值。

3)令h(t) = x(t)-m(t);检查h(t)是否满足IMF的条件,如果不满足,则继续上述迭代过程至到某h(t)符合IMF的条件

以某心电数据为例,展示EMD的效果图:

(四)EMD存在的问题

模式混合/模态混叠

1)一个单独的IMF信号中含有不同的时间尺度;

2)相同时间尺度出现在不同的IMF中。

matlab论坛上面有一幅图可以清楚地展现这两个问题

如上图所示,IMF2中存在两种模式,IMF2红色圈和MIF3蓝色圈中类似于一种模式。

我们在看EMD算法时,经常能够看到说单一模态、单一模式或者单一时间尺度,那么,单一模态,或者单一时间尺度的标准是什么?

1)信号中局部两个连续过零点之间的时间宽度一致

2)信号中两个连续峰值之间的时间宽度一致

3)曲率上两个连续峰值之间的时间宽度一致

为了解决EMD模式混叠的问题,学者们提出将正态分布的白噪声加到原始信号,于是EEMD分解算法产生了。

二、模态分解算法===============EEMD算法介绍

上面介绍了EMD算法,并分析了EMD算法的存在的问题,即分解后的IMF可能存在模式混叠。一旦IMF存在模式混叠,也就是IMF不是单一频率的分量,也就无法准确获取瞬时频率。为了解决这个问题,集合经验模态分解算法(EEMD)被提出。

(1)EEMD算法步骤如下:

1.将正态分布的白噪声加到原始信号;

2.将加入白噪声的信号作为一个整体,然后进行EMD分解,得到各IMF分量;

3.重复步骤1和2,每次加入新的正态分布白噪声序列;

4.将每次得到的IMF做集成平均处理后作为最终结果。

语言是苍白是,我们用图表示,如下:

集合经验模态分解算法流程

我们同样采样Matlab论坛里面的一张图

从上图可以看出,EMD存在的频谱混叠现象,而EEMD已经不存在。

(2)EEMD存在的问题

EEMD虽然解决了EMD出现的模式混叠问题,但是由于加入白噪声,因此也带来其他问题

1.集总平均后的IMF可能不再符合IMF的要求(偏差一般较小,不影响瞬时频率的计算)

2.集总平均次数一般在几百次以上,非常耗时;

3.白噪声在集总平均之后基本抵消,但存在残留,重建之后噪声不可忽略;

为了解决重建之后白噪声无法完全抵消,加和之后噪声过大的问题,CEEMD紧接着被提出。

三、模态分解算法===============CEEMD算法介绍

文章模态分解算法「一」EMD算法介绍介绍了EMD算法的流程,并分析了EMD算法存在的问题,即模式混叠,基于EMD存在的问题,文章模态分解算法「二」EEMD算法介绍介绍了在简单的EMD分解的基础上添加白噪声,从而使得分解的IMF是单一模式,优化了模式混叠,但是引入新的问题,即白噪声在集总平均之后不能完全抵消,而存在残留,导致重建之后的噪声不可忽略。因此互补集合经验模态CEEMD被提出。

CEEMD和EEMD流程相似,不同的是EEMD每次仅添加白噪声,CEEMD算法是将原信号加上白噪声和原信号减去白噪声两个信号同时经过EMD,求均值,用于抵消信号中加入的噪声。具体的算法流程如下所示:

互补集合经验模态分解

s(t)为原始信号,加入不同的白噪声,共加入n次,也就是集总平均次数为n。分别对加噪声和减噪声的信号做EMD分解,将分解之后的两组IMF求均值,再将n组IMF求平均值,即可获得最终的IMF组分量。

CEEMD是对EEMD的优化,集总平均次数会减少,从EEMD的百量级减小到CEEMD的几十的量级,重建后的信号噪声明显减少。通常情况,集总平均次数越多,重构后的信号噪声越小。

说明&致谢:

本文仅供学习参考之用,参考及致谢:XieHS

模态分解算法 EMD、EEMD、CEEMD相关推荐

  1. EMD——EEMD——CEEMD

    转载自https://www.cnblogs.com/Dinging006/p/10282993.html 首先,HHT中用到的EMD详细介绍:https://wenku.baidu.com/view ...

  2. EMD EEMD CEEMD对应的matlab工具包

    文件夹包括了emd  EEMD 和cemd函数及相关案例 1.将压缩中的三个文件夹都添加到matlab安装路径下的toolbox文件夹下 2.打开matlab,设置路径-->添加并包含子文件夹- ...

  3. 使用EMD【经验模态分解】对一维波形信号进行滤波去噪以及Python实现代码[emd eemd ceemdan]

    使用EMD[经验模态分解]对一维波形信号进行滤波去噪以及Python实现代码 EMD[ Emprical Mode Decomposition]经验模态分解方法此处不再过多用赘述, 该信号处理方法可以 ...

  4. 基于VMD变分模态分解算法Python程序

    基于VMD变分模态分解算法Python程序 可用于时间序列和其他领域 特色:1.基于Python 2.数据从excel文件中读取,更换简单 全部完整的代码,保证可以运行的代码看这里. http://t ...

  5. Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”

    Python实现"EMD\EEMD\VMD+Hilbert时频图"与"CWT小波时频图"   信号处理中常需要分析时域统计量.频率成分,但不平稳信号的时域波形往 ...

  6. emd,eemd,vmd,频谱图,分解图对比matlab代码

    作为自己学习的一个记录吧. 对这个信号进行实验,其中公式是截图截的,懒得改了,f1就是s1. 对这个s信号进行分解.下面开始代码操作: 原始信号生成:运行该段代码,生成一个s.mat数据,并作图. c ...

  7. 经验模态分解和各种进化及变种 EMD,EEMD,CEEMD,CEEMDAN,ESMD等简要介绍

    EMD是时频分析常用的一种信号处理方式,EMD经过发展到现在也有很多不同的发展,本文总结了已知的各种优化和变种. 分类: EMD(经验模态分解):基本模态分解 EEMD(集合经验模态分解):EMD+白 ...

  8. 集成经验模态(EEMD)原理详解与python实现

    文章目录 1 经验模态分解(EMD) 1.1 本征模态函数(IMF) 1.2 sifting算法 1.3 原始序列重构 2 集成经验模态分解(EEMD) 2.1 EEMD算法步骤 集成经验模态分解的关 ...

  9. 机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八)

    机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八) 压缩分量的EEMD代码 压缩分量的EEMD数据 压缩分量的EEMD结果 CEEMDAN代码 CEEMDAN ...

最新文章

  1. clone git 修改保存路径_Git和Github详细入门教程(别再跟我说你不会Git和Github)
  2. 利用XtraBackup做mysql不停机重做主从复制
  3. ECMAScript 5 —— Function 类型 (四)
  4. ASP.NET MVC 2示例Tailspin Travel UI层分析
  5. 【工具推荐】Hadoop集群监控工具 HTools
  6. Flink SQL Client注册JAVA UDF完整流程
  7. 笨方法学python3 mobi_[下载]Learn Python 3 the Hard Way(已更新完整版PDF\AZW3\EPUB\MOBI)...
  8. 为什么SQL用UPDATE语句更新时更新行数会多3行有触发器有触发器有触发器有触发器有触发器有触发器...
  9. java 对象排重_现代化的 Java (八)——重说对象序列化
  10. 1v1项目实战+真实经验倾囊相授,0基础的我是如何逆袭成功?
  11. Eclipse、STS 常用设置、操作 与 常用快捷键
  12. 很火的清新PHP在线扒站程序源码
  13. 基于simulink的Active anti-islanding-AFD主动反孤岛模型仿真
  14. ABC Amber CHM Converter:CHM转换PDF
  15. 团队协作神器,告别信息孤岛
  16. 六、Prometheus+Grafana搭建监控系统
  17. keepalived+LVS;keepalived+nginx
  18. python-实现多元回归及预测
  19. Windows7更改自己的计算机名,方便局域网内的用户识别
  20. linux下Dnw配置(mini2440)

热门文章

  1. XSY #2815 净空
  2. 对一些时间处理的总结
  3. C++ strcpy strcpy_s strncpy strlcpy
  4. IPv4 Type of Service服务类型(TOS)字段
  5. 百度:自动驾驶出租车服务在北京全面开放!人工智能牛
  6. C#编写上位机连接华为云平台IoTDA
  7. No7.装饰器的进阶
  8. 图的无权最短路径算法
  9. android 资源图片加密
  10. 7-20 表达式转换(中缀转后缀)