最近在做脑电信号分析,在导师的建议下学习了一点经验模式分解(下面简称EMD)的皮毛,期间也是遇到了很多问题,在这里整理出来,一是为了自己备忘,二是为了能尽量帮到有需要的朋友。

一、EMD简介

  经验模态分解(Empirical Mode Decomposition,EMD)法是黄锷(N. E. Huang)在美国国家宇航局与其他人于1998年创造性地提出的一种新型自适应信号时频处理方法,特别适用于非线性非平稳信号的分析处理。对经过EMD处理的信号再进行希尔伯特变换,就组成了大名鼎鼎的“希尔伯特—黄变换”(HHT)。由于脑电信号处理很少在EMD之后接上希尔伯特变换,在这里仅介绍EMD的相关基础知识。
  EMD其实就是一种对信号进行分解的方法,与傅里叶变换、小波变换的核心思想一致,大家都想将信号分解为各个相互独立的成分的叠加;只不过傅里叶变换以及小波变换都要求要有基函数,而EMD却完全抛开了基函数的束缚,仅仅依据数据自身的时间尺度特征来进行信号分解,具备自适应性。由于无需基函数,EMD几乎可以用于任何类型信号的分解,尤其是在非线性、非平稳信号的分解上具有明显的优势。
  EMD的目的是将信号分解为多个本征模函数(IMF)的叠加。IMF必需要满足以下两个条件:
  (1)函数在整个时间范围内,局部极值点和过零点的数目必须相等,或最多相差一个;
  (2)在任意时刻点,局部最大值的包络(上包络线)和局部最小值的包络(下包络线) 平均必须为零。
  为什么IMF一定要满足这两个条件呢?经黄锷等人的研究,满足这两个条件的信号都是单组分的,相当于序列的每一个点只有一个瞬时频率,无其他频率组分叠加。这就为后续的希尔伯特变换铺平了道路,也使得瞬时频率有了意义。
  值得一提的是,EMD在数学上还有一些细节无法证明,但是EMD已经在工程领域取得了辉煌的成就,这也是在科学界工程领先理论的一个例子。

二、EMD方法的实现

  EMD的实现我决定简单说一下,毕竟我们是使用者而已嘛^_^,有需要的朋友可以自行研究一下。
  EMD方法是基于如下假设基础上的:
  (1)信号至少有两个极值点,一个极大值和一个极小值;
  (2)特征时间尺度通过两个极值点之间的时间定义;
  (3)若数据缺乏极值点但有形变点,则可通过数据微分一次或几次获得极值点,然后再通过积分来获得分解结果。
  算法流程如下所示:
            

三、Matlab工具箱安装

  在这里我们需要下载两个工具箱,第一个是时频分析工具箱,下载地址为:http://tftb.nongnu.org/;另一个就是EMD工具箱,下载地址为:http://perso.ens-lyon.fr/patrick.flandrin/emd.html。有些同学反映无法下载,现给出百度云地址:https://pan.baidu.com/share/init?surl=-jOdWceZebqnK6kzO2Hhyg,密码 stim。
  第一步安装时频分析工具箱,安装这个工具箱是因为EMD工具箱中的一些功能依赖于这个工具箱。安装步骤如下:
  (1)解压下载的工具箱,将其复制到matlab的toolbox文件夹下
  (2)建立搜索路径,matlab->设置路径->添加并包含子文件夹->找到在toolbox目录下的时频分析工具箱->保存->关闭
  第二步为安装EMD工具箱,这个就简单一些了,下载完毕直接运行“install_emd.m”就可以啦。如果在安装之后,Matlab提示“cemdc2_fix.c等文件安装失败”,如果想让其编译成功则可以参考这篇文章:http://forum.vibunion.com/thread-79866-1-1.html,如果嫌麻烦的话,也可以不用修复,不会影响到使用EMD功能的。

四、程序演示

  在这里贴上一个小程序作为演示,也可以用来测试工具箱有没有安装好。 

fs = 1000;
ts = 1/fs;
t=0:ts:0.3;
z = sin(2*pi*10*t) + sin(2*pi*100*t);
imf=emd(z);
emd_visu(z,t,imf)  % EMD专用画图函数

运行完会出现3张图,如下所示:


经验模式分解(EMD)——简介及Matlab工具箱安装相关推荐

  1. 经验模式分解(EMD)的MATLAB工具箱安装详解

    经验模式分解(EMD)的MATLAB工具箱安装详解 MATLAB工具箱安装 时频分析工具箱 安装EMD工具箱 代码检验是否安装成功 MATLAB工具箱安装 首先,本文参考CSDN这篇文章https:/ ...

  2. 经验模式分解EMD算法原理

    目录 简介 假设条件与原理 假设条件 基本原理 EMD的优缺点 存在的问题 简介 经验模态分解(Empirical Mode Decomposition, EMD)算法是由 NE. Huang 等人提 ...

  3. 经验模式分解(EMD)及希尔伯特-黄变换(HHT)简介及matlab实现

    本文介绍过程涉及到两个链接工具包,可以自己网上搜索下载,以下提供了网盘下载的地址,因为作者主要做语音方面工作,所以后面的说明主要以说话人识别为例.(链接:https://pan.baidu.com/s ...

  4. 克劳特法matlab,经验模式分解matlab

    EMD分解的matlab程序 %此版本为 ALAN 版本的整合注释版 function imf = emd(x...(x1) %当标准偏差系数 sd 大于 0.1 或 x1 不是固有模态函数时,分量终 ...

  5. 集成经验模式分解eemdmatlab代码实现

    之前在CSDN上下载这些东西要积分,下载不了,所以搞了个这样的,亲测有效 集成经验模式分解eemd,一种改进的emd的信号分解方法matlab代码实现 function allmode=eemd(Y, ...

  6. [学习笔记]EMD经验模式分解

    Empirical Mode Decomposition 参考文献:The empirical mode decomposition and the Hilbert spectrum for nonl ...

  7. 【源码】粒子图像测速PIV简介及MATLAB工具箱PIVlab

    湍流.复杂流动.非定常流动等现象一直是流体力学中重要的研究对象及疑难问题,因此开发适于流体运动研究的方法与技术也始终是一个重要的课题.早期发明的热线热膜流速计(HWFA)至今已有80 多年的历史,曾经 ...

  8. EEMD(Ensemble Empirical Mode Decomposition)集合经验模式分解代码

    %function allmode=eemd(Y,Nstd,NE) % % This is an EMD/EEMD program % % INPUT: % Y: Inputted data;1-d ...

  9. MATLAB工具箱安装的常规(通用)操作

    MATLAB有很多工具箱,大部分工具箱完成以下操作就是安装上啦(要是安装不上可以再去找找方案,PS:一般工具箱里面有一个叫做readme 的文件,一般情况下,有特殊操作会在里面写上滴) 第一步: 将下 ...

最新文章

  1. multiple definition of
  2. JavaScript调用浏览器里的websocket,如何多帧上行数据
  3. java:UDP通信
  4. tomcat6 优化初步
  5. linux 命令api,linux命令行下字典,使用有道API
  6. 函数式编程在Redux/React中的应用
  7. 专访 Unity 高管:深耕游戏、VR/AR,致力为开发者提供极致体验
  8. 2020计算机顶级大会_2020年顶级公司和专业人员将使用40多种Web工具和服务
  9. 软件设计师考试-计算机网络与网络安全部分的笔记
  10. ajax提交form返回数据格式,ajaxSubmit 返回值
  11. javascript模块化编程思想(转载网上专家)Javascript模块化编程(一)
  12. 福昕阅读器中删除单个,多个注释,隐藏所有注释。
  13. java 代码压缩javascript_9款最好的JavaScript压缩工具
  14. 服务认证的介绍-实施依据及作用
  15. [深度学习]如何替换YoloV5的主干网络:Flexible-Yolov5
  16. c#语言猜数字游戏,C#实现猜数字游戏
  17. js下载Word文档
  18. 用Beamer做slides-模板
  19. 计算机网络学习笔记:多路复用(频分多路复用、时分多路复用、波分多路复用、码分多路复用)
  20. 蓝桥杯javaB三羊献瑞

热门文章

  1. php的原子操作,原子操作 · 国外PHP框架Nette官网教程 · 看云
  2. RAID5和RAID10在磁盘读写选择对比
  3. 问题十四:怎么可视化球的法向量
  4. 解决利用<input type=“file“>上传文件时,value拿到的是fakePath问题
  5. 编程语言培训学哪个?
  6. IDEA JAVA文档注释和方法注释模板
  7. 你知道吗?什么是 Responsive JavaScript ?
  8. 使用poi导出excel
  9. PyTorch深度学习基础之Reduction归约和自动微分操作讲解及实战(附源码 超详细必看)
  10. fuchsia - google 新系统学习(一)