• EMD 算法原理动图解读


    信号合成

    image

    假设我们用一个正弦信号 tone 和一个调频信号 chirp 相加得到一个存在多种频率成分的新信号。

    求取 IMF1

    image

    我们首先找到信号的极大值点和极小值点(或者称为波峰和波谷),然后用三次样条曲线去拟合这些极大值点和极小值点,得到上包络线和下包络线(图中蓝色线和红色线);再将上下包络线求取均值得到图中的粉色线;最后用信号减去这个粉色线,得到下方一个残余分量信号(residue)。这是第一次迭代(iteration 1)操作。

    image

    由于此时的粉色曲线波动很大,还不能够满足 IMF 分量的要求,因此需要继续迭代下去。

    image

    仿照第一次的操作继续重复迭代下去,直到粉色曲线接近于一条直线(即任意时刻下的包络均值为0),此时得到的残余分量信号即为第一个 IMF 分量。

    image

    求取 IMF2

    信号 图像
    原信号 image
    IMF1 分量 image
    新的信号 image

    将第一个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第二个 IMF 分量。

    image

    经过 5 次迭代最终找到了第二个 IMF 分量。

    image

    求取 IMF3

    信号 图像
    原信号 image
    IMF2 分量 image
    新的信号 image

    将第二个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第三个 IMF 分量。

    image

    经过 12 次迭代最终找到了第三个 IMF 分量。

    image

    求取 IMF4

    信号 图像
    原信号 image
    IMF3 分量 image
    新的信号 image

    将第三个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第四个 IMF 分量。

    image

    经过 16 次迭代最终找到了第四个 IMF 分量。

    image

    求取 IMF5

    信号 图像
    原信号 image
    IMF4 分量 image
    新的信号 image

    将第四个 IMF 分量从原信号中减去,得到新的信号,根据该信号继续寻找第五个 IMF 分量。

    image

    经过 11 次迭代最终找到了第五个 IMF 分量。

    image

    算法结束

    信号 图像
    原信号 image
    IMF5 分量 image
    新信号 image

    将第五个 IMF 分量从原信号中减去,得到新的信号,此时发现新的信号其极值点只有一个,小于2,信号无法再继续做包络线了,因此可以停止迭代了。

    分解结果

    image

    将前面找到的所有 IMF 分量和最后一个残余分量汇总到一起,得到上图。因此原信号可以拆分为这些分量信号之和。对比信号生成的过程和最终分解得到的结果,可以发现 IMF1 和 IMF2 与我们合成时的两个信号基本一致,也就是说,EMD 成功分离出了不同成分的信号,且 IMF 分量是按照高频到低频排序的。

    合成 分解
    image image

    步骤流程

    Step1:输入信号 \(x(t)\)

    Step2:初始化残余分量,\(r_0(t)=x(t)\)\(i = 1\)

    Step3:初始化疑似模态分量,\(h_0(t) = r_{i-1}(t)\)\(j=1\)

    Step4:计算 \(h_{j-1}(t)\) 的包络均值 \(m_{j-1}(t)\) :

    \[m_{j-1}(t) = (u_{j-1}(t) + l_{j-1}(t)) /2 \]

    其中,\(u_{j-1}(t)\)\(l_{j-1}(t)\) 分别为 \(h_{j-1}(t)\) 的极大值点和极小值点通过三次样条函数拟合出来的的包络曲线。

    Step5:减去包络均值,\(h_j(t) = h_{j-1}(t) - m_j(t)\)

    Step6:利用标准偏差 \(S_d\) 和零点、极值点个数判断 \(h_j(t)\) 是否为 IMF 分量,其中

    \[S_d = \sum\limits_{t = 0}^T {\frac{{{{\left| {{h_j}\left( t \right) - {h_{j - 1}}\left( t \right)} \right|}^2}}}{{h_j^2\left( t \right)}}} \]

    \(S_d\) 小于 0.2 或者 0.3 (表明包络均值为0),且 \(h_j(t)\) 的零点和极值点的个数相同或者最多相差 1 个,则可以记作一个 IMF 分量 \(c_i(t) = h_j(t)\) ,否则 \(j=j+1\),转到 Step4

    Step7:将残余分量减去 IMF 分量,得到新的残余分量,\(r_i(t) = r_{i-1}(t) - c_i(t)\)

    Step8:若新的残余分量 \(r_i(t)\) 满足单调,或者极值点不超过 2 个,则无法进一步做包络线,分解结束;否则 \(i=i+1\) ,转到 Step3

    最终 EMD 算法能够将将其分解为 \(n\) 个 IMF 分量 \(c_i(t)\)和 1 个残余分量 \(r_n(t)\),即:

    \[x(t) = \sum\limits_{i = 1}^n {c_{i}\left( t \right)} + r_n(t) \]

    参考资料

  • 相关阅读:
    maven settings
    java.util.Base64
    Centos 7 下 LAMP 部署
    Cisco N3K VPC+HSRP+ospf 配置
    centos 7 下多网卡绑定+ vlan 网卡配置
    centos 7 下 cobbler 安装
    hive0.12 rcfile gzip 测试
    Hive内部表外部表转化分析(装)
    hadoop2.2.0 + hbase 0.94 + hive 0.12 配置记录
    hbase 问题记录
  • 原文地址:https://www.cnblogs.com/gshang/p/15842773.html
Copyright © 2020-2023  润新知