当前位置:网站首页>EMD 经验模态分解
EMD 经验模态分解
2022-07-29 03:41:00 【mingqian_chu】
原文出自这里
https://zhuanlan.zhihu.com/p/40005057
https://zhuanlan.zhihu.com/p/121803211
1. EMD 的起因
在信号处理方面我们了解了时域处理方法(如有效值、峭度)、频域处理方法(如频谱、功率谱)以及一些时频域处理方法(如小波分析)(详见专栏文章与信号处理有关的那些东东)。时域和频域有各种的优势和适用范围,就不多说了,EMD(Empirical Mode Decomposition)作为时频域的处理方法,相对于同样是时频域方法的小波分析有什么好处呢?
EMD最显著的特点,就是其克服了基函数无自适应性的问题。啥意思呢?回忆小波分析部分的内容,我们会知道小波分析是需要选定某一个小波基的,小波基的选择对整个小波分析的结果影响很大,一旦确定了小波基,在整个分析过程中将无法更换,即使该小波基在全局可能是最佳的,但在某些局部可能并不是,所以小波分析的基函数缺乏适应性。
通俗的说,用EMD有什么好处呢?对于一段未知信号,不需要做预先分析与研究,就可以直接开始分解。这个方法会自动按照一些固模式按层次分好,而不需要人为设置和干预。
再通俗一点,EMD就像一台机器,把一堆混在一起的硬币扔进去,他会自动按照1元、5毛、1毛、5分、1分地分成几份。
2. 各个本征函数的分量
涵模态分量(Intrinsic Mode Functions, IMF)就是原始信号被EMD分解之后得到的各层信号分量。EMD的提出人黄锷认为,任何信号都可以拆分成若干个内涵模态分量之和。而内涵模态分量有两个约束条件:
1)在整个数据段内,极值点的个数和过零点的个数必须相等或相差最多不能超过一个。
2)在任意时刻,由局部极大值点形成的上包络线和由局部极小值点形成的下包络线的平均值为零,即上、下包络线相对于时间轴局部对称。
啥意思?
用不严谨的语言和灵魂画师来解释一下:
1.图线要反复跨越x轴,像这样:
在整个数据段内,极值点的个数和过零点的个数必须相等或相差最多不能超过一个

而不能像这样某次穿过零点后出现多个极点:

- 包络要对称,像这样:
包络线对称

而不能像这样:

看个正常点的例子吧:

上图由7张图片组成,其中第1张为原始信号,后边依次为EMD分解之后得到的6个分量,分别叫做IMF1~IMF5,最后一张图为残差,每一个IMF分量代表了原始信号中存在的一种内涵模态分量。可以看出,每个IMF分量都是满足这两个约束条件的。
3. EMD 分解步骤
EMD的分解过程是简单直观的:
1)根据原始信号上下极值点,分别画出上、下包络线。
上、下包络线
2)求上、下包络线的均值,画出均值包络线。
均值包络线
3)原始信号减均值包络线,得到中间信号。
原始信号减均值包络线
4)判断该中间信号是否满足IMF的两个条件,如果满足,该信号就是一个IMF分量;如果不是,以该信号为基础,重新做1)~4)的分析。IMF分量的获取通常需要若干次的迭代。
不满足约束2,需要继续迭代
使用上述方法得到第一个IMF后,用原始信号减IMF1,作为新的原始信号,再通过1)~4)的分析,可以得到IMF2,以此类推,完成EMD分解。

上述例子中的图来自http://perso.ens-lyon.fr/patrick.flandrin/emd.ppt
这个ppt中用了几十页的图片完整地展示了EMD分解的过程,看一下该文档相信你会对该过程有一个更清楚的了解。
边栏推荐
- Swing V2: towards a larger model with larger capacity and higher resolution
- Overestimated test driven development?
- Rdkit II: use rdkit screening to screen 2D pharmacophores of chemical small molecules
- MOS管 —— 快速复苏应用笔记(贰)[参数与应用]
- 代码 ~ 隐藏或禁用状态栏和虚拟按键
- Rdkit: introduce smiles code, smart code and Morgan fingerprint (ECFP)
- RHCE's at, crontab's basic operations, the Chrony service, symmetric encryption and asymmetric encryption
- 2 neural network toolbox NN
- lodash库常用方法
- MOS tube - rapid recovery application notes (II) [parameters and applications]
猜你喜欢
![Leetcode 1331 array sequence number conversion [map] the leetcode path of heroding](/img/be/d429d0c437dc5ed7cb4448e223a83a.png)
Leetcode 1331 array sequence number conversion [map] the leetcode path of heroding

Simple code implementation of decision tree

机器学习【Numpy】

Connect with third-party QQ login

Mathematical modeling -- analytic hierarchy process model

Matlab learning -- structured programs and user-defined functions

Rdkit I: using rdkit to screen the structural characteristics of chemical small molecules

Violence recursion to dynamic programming 01 (robot movement)

The latest second edition of comic novels, listening to books, three in one, complete source code / integrated visa free interface / building tutorials / with acquisition interface

What you see and think in Microsoft
随机推荐
Rdkit II: use rdkit screening to screen 2D pharmacophores of chemical small molecules
VISO fast rendering convolution block
Build redis environment under windows and Linux
Deep into C language (1) -- operators and expressions
Simple understanding of Poe and UPS Technology
exness:鸽派决议帮助黄金反弹,焦点转向美国GDP
3.2 model saving and loading
Connect with third-party QQ login
for_ Example of each usage
Precautions for using latex
Learn exkmp again (exkmp template)
Matlab learning - accumulation of small knowledge points
安装抓包证书
Code speed optimization
Instance setup flask service (simple version)
Anaconda offline installation environment
代码 ~ 隐藏或禁用状态栏和虚拟按键
Environment configuration stepping pit during colab use
How fast does it take to implement a super simple language
Shortcut key for adjusting terminal size in ROS