EMD 经验模态分解相关matlab、python代码

python实现

这是经验模式分解(EMD)的另一种Python实现。该包包含许多EMD变体,并打算及时交付更多。

from PyEMD import EMD
import numpy as np

s = np.random.random(100)
emd = EMD()
IMFs = emd(s)

https://github.com/laszukdawid/PyEMD

matlab实现

代码1:

function [imf,r] = emd(x)
% Empiricial Mode Decomposition (Hilbert-Huang Transform)
% imf = emd(x)
% Func : findpeaks
% 返回类型为cell类型,
% IMF第一列为原始信号,一次为一次IMF,二次IMF、。。。、最后残差
x   = transpose(x(:));
imf = x';
while ~ismonotonic(x) % 若信号x不单调,则开始进行emd分解
   x1 = x;
   sd = Inf;
   while (sd > 0.1) || ~isimf(x1) %
      s1 = getspline(x1);
      s2 = -getspline(-x1);
      x2 = x1-(s1+s2)/2;
      
      sd = sum((x1-x2).^2)/sum(x1.^2);
      x1 &
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大大U

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

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

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

打赏作者

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

抵扣说明:

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

余额充值