经验模态分解

来源:互联网 发布:编程cim是做什么的 编辑:程序博客网 时间:2024/06/05 20:34

Empirical Mode Decomposition(EMD)

引入

  • 经验模态分解是2000年以来以傅立叶变换为基础的线性和稳态频谱分析的一个重大突破,它是依据信号自身的时间尺度特征对信号进行分解,无需预先设定任何基函数,这一点与建立在先验性的谐波基函数和小波基函数上的傅立叶分解与小波分解方法有本质区别。
  • EDM方法理论上可以应用于任何类型信号的分解,因而在处理非平稳及非线性数据上,具有非常明显的优势,具有很高的信噪比。

基本原理

本征模函数

  • 对数据信号进行emd分析就是为了获取本征模函数,因此首先介绍本征模函数
  • 本征模函数任意一点的瞬时频率都是有意义的。任意时刻,信号都可以包含若干个本征模函数,如果本征模函数之间相互重叠,便形成复合信号。
  • 一个本征模函数必须满足2个条件
    • 函数在整个时间范围内,局部极值点和过零点的数目相等,或者最多差一个
    • 任意时刻点,局部最大值的包络线(上包络线)和局部最小值的包络线(下包络线)平均必须为0。

假设条件

EMD方法是基于以下假设条件

  • 数据至少有2个极值,一个极大值和一个极小值。
  • 数据的局部时域特性是由极值点间的时间尺度唯一确定
  • 如果数据没有极值点,但是有拐点,则可以通过对数据微分一次或者多次求得极值,然后通过积分来获得分解结果。

分解过程

  • 找出原始数据序列的X(t)的所有极大值点并用三次样条差值函数拟合形成原数据的上包络线,同时找出所有极小值点,并将所有极小值点通过三次样条插值函数拟合形成数据的下包络线,上包络线和下包络线的均值极为ml,将X(t)减去该平均包络ml,得到新的数据序列h,如果h还存在负的局部极大值和正的局部极小值,说明这不是一个本征模函数,需要继续筛选,即识别h的极大值和极小值并重复以上所有步骤,指导满足某个给定的标准
  • 如果成功完成筛选过程,则我们完成对第一个imf的提取。需要从原始数据减去提取的imf并再一次重复上述过程,并获得下一个imf,直到提取完所有imf为止。

emd工具箱下载与使用举例

下载链接

  • https://pan.baidu.com/s/1mhghQ1i
  • 下载之后直接添加目录,并且运行emd_install.m即可

使用

  • 代码

    t = -10:.1:10;y = sin(t);yn = y + 0.2 * randn(size(t)) + 0.1*t;imf = emd( yn );emd_visu(yn,t,imf)
  • 结果

    这里写图片描述

    这里写图片描述

    这里写图片描述

参考文献

  • https://zh.wikipedia.org/wiki/%E7%B6%93%E9%A9%97%E6%A8%A1%E6%85%8B%E5%88%86%E8%A7%A3
  • https://www.mql5.com/zh/articles/439
原创粉丝点击