欢迎关注我们,选择加"星标"或“置顶”

更多技术,第一时间送达

SSVEP信号中含有自发脑电和大量外界干扰信号,属于典型的非线性非平稳信号。传统的滤波方法通常不满足对非线性非平稳分析的条件,1998年黄鄂提出希尔伯特黄变换(HHT)方法,其中包含经验模式分解(EMD)和希尔伯特变换(HT)两部分。EMD可以将原始信号分解成为一系列固有模态函数(IMF) [1],IMF分量是具有时变频率的震荡函数,能够反映出非平稳信号的局部特征,用它对非线性非平稳的SSVEP信号进行分解比较合适。

EMD算法原理:

步骤1:
寻找信号全部极值点,通过三次样条曲线将局部极大值点连成上包络线,将局部极小值点连成下包络线。上、下包络线包含所有的数据点。

步骤2:
由上包络和下包络线的平均值 ,得出

若满足IMF的条件,则可认为是的第一个IMF分量。

步骤3:
若不符合IMF条件,则将作为原始数据,重复步骤1、步骤2,得到上、下包络的均值,通过计算是否适合IMF分量的必备条件,若不满足,重复如上两步次,直到满足前提下得到。第1个IMF表示如下:

步骤4:
将从信号中分离得到:

将作为原始信号重复上述三个步骤,循环次,得到第二个IMF分量直到第个IMF分量 ,则会得出:

步骤5:
当变成单调函数后,剩余的成为残余分量。所有IMF分量和残余分量之和为原始信号:

用EMD进行滤波的基本思想是将原信号进行EMD分解后,只选取与特征信号相关的部分对信号进行重构。如下图中a部分为原始信号,b部分为将原始信号进行EMD分解获得的6个IMF分量和1个残余分量,c部分为将分解获得的6个IMF分量和1个残余分量进行重构后的信号,可以看出SSVEP信号用EMD分解后,基本上包含了原有信号的全部信息。

图片来源于[1]

python实现EMD案例

# 导入工具库import numpy as npfrom PyEMD import EMD, Visualisation

构建信号

时间t: 为0到1s,采样频率为100Hz,S为合成信号

# 构建信号t = np.arange(0,1, 0.01)S = 2*np.sin(2*np.pi*15*t) +4*np.sin(2*np.pi*10*t)*np.sin(2*np.pi*t*0.1)+np.sin(2*np.pi*5*t)
# 提取imfs和剩余信号resemd = EMD()emd.emd(S)imfs, res = emd.get_imfs_and_residue()# 绘制 IMFvis = Visualisation()vis.plot_imfs(imfs=imfs, residue=res, t=t, include_residue=True)

# 绘制并显示所有提供的IMF的瞬时频率vis.plot_instant_freq(t, imfs=imfs)vis.show()

参考

[1] 基于稳态视觉诱发电位的脑-机接口系统研究

往期精彩


Python-EEG工具库MNE-Python详细安装与使用

MNE中文教程(1)-MNE中数据结构Raw及其用法简介

Python-EEG工具库MNE中文教程(2)-MNE中数据结构Epoch及其创建方法

Python-EEG工具库MNE中文教程(3)-MNE中数据结构Epoch及其用法简介

Python-EEG工具库MNE中文教程(4)-MNE中数据结构Evoked及其对象创建

Python-EEG工具库MNE中文教程(5)-机器学习算法随机森林判断睡眠类型

Python-EEG工具库MNE中文教程(6)-读取.set文件和.locs文件

稳态视觉诱发电位 SSVEP 简介

Nilearn中的基本操作和查看

脑电信号滤波-代码实现

脑机接口BCI学习交流群:QQ群:903290195

微信群请扫码添加,Rose拉你进群

(请务必填写备注,eg. 脑机接口或BCI)

长按加群

长按关注我们

emd实现信息隐藏_EMD算法原理与实现相关推荐

  1. 数字水印实验2 基于LSB和EMD的信息隐藏实验

    [实验名称]基于LSB和EMD的信息隐藏实验 [实验目的] 1.学习并掌握图像信息隐藏的基本原理和方法 2.学习并实现基于LSB的信息隐藏和提取算法 3.学习并实现基于EMD的信息隐藏和提取算法 [实 ...

  2. emd实现信息隐藏_【读书笔记】深入理解TensorFlow架构设计与实现原理(五)

    首先一如既往地是我们的约定环节: MCMC:Markov Chain Monte Carlo,马尔可夫蒙特卡洛算法: VAE:Variational AutoEncoder,变分自编码器: 第10章 ...

  3. matlab信息隐藏算法,实验四--基于DCT域的信息隐藏算法

    <实验四--基于DCT域的信息隐藏算法>由会员分享,可在线阅读,更多相关<实验四--基于DCT域的信息隐藏算法(6页珍藏版)>请在人人文库网上搜索. 1.实验四 基于DCT域的 ...

  4. 信息隐藏隐写系统框架

    信息隐藏中隐写是其中很重要的一部分.本文通过一段时间的CTF的学习结合个人CTF比赛杂项选手的刷题经历总结.对一部分自己所学过的隐写进行系统的概括. 隐写 隐写相关概念 定义 隐写分析(stegana ...

  5. 信息安全之加密域可逆信息隐藏

    前面四篇文章主要介绍了图像置乱加密的安全性问题,本篇文章介绍一种图像加密算法的应用算法,图像加密域可逆信息隐藏.以文献1为例,介绍一种<基于预测误差分类置乱的图像加密域可逆信息隐藏>算法[ ...

  6. 手把手教你EMD算法原理与Python实现(更新)

    Rose今天主要介绍一下EMD算法原理与Python实现.关于EMD算法之前介绍过<EMD算法之Hilbert-Huang Transform原理详解和案例分析>, SSVEP信号中含有自 ...

  7. EMD算法原理与python实现

    目录 简介 EMD算法原理 python实现EMD案例 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 简介 SSVEP信号中含有自发脑电和大量外界干扰信号,属 ...

  8. 信息隐藏的原理与应用

    目录 概述 加密技术与信息隐藏技术的区别: 信息隐藏的分类: 隐写技术: 数字水印技术: 信息隐藏的应用: 1保密通信 所有权认定和版权保护: 多媒体数据认证和完整性保护: 数字水印技术: 数字水印的 ...

  9. 计算机图像隐藏信息,信息隐藏原理及应用

    <信息隐藏原理及应用>是2011年8月5日清华大学出版社出版的图书,作者是葛秀慧.[1] 本书可以作为计算机应用.网络工程.通信与信息系统.信号与处理.信息安全与密码学.电子商务专业的本科 ...

最新文章

  1. Numpy的基本用法
  2. 元素的样式设置 元素类样式的操作 开关灯效果 获取兄弟元素 当前元素的兄弟元素样式
  3. Udi Dahan对于业务逻辑重用以及微服务方面的观点
  4. ES6之路第十三篇:Iterator和for...of循环
  5. .net宿舍管理系统 mysql_基于.NET CORE的精美后台管理系统-RuoYi C#版
  6. sql空字符串判断函数_Excel数据还可这样来查询:用SQL查询输出工作表指定区域更高效!...
  7. (转)实现自己的http server
  8. threejs 反锯齿,raser,特效发光
  9. 域控计算机策略转换成用户策略,windows组策略实验-本地组策略和域控组策略
  10. jQuery页面滚动右侧浮动导航切换
  11. 探究 Linux 内核 dts 设备树定义文件
  12. 2018-2019-2 20165118 《网络对抗技术》Exp4 恶意代码分析
  13. 为什么Spark比MapReduce快
  14. kubernetes架构及核心概念
  15. 最新王通《搜索排名引爆点》课值得学习吗
  16. Windows10蓝牙突然失灵 无法连接鼠标
  17. 2021.4.19-2021.4.25周报
  18. Web3还没实现,Web5乍然惊现!
  19. 像计算机科学家一样思考在线,如何像计算机科学家一样思考?(女生篇)
  20. matlab 对曲线积分,matlab计算曲线积分并画出积分曲线

热门文章

  1. scala 拆分字符串翻转_Scala程序分割字符串
  2. 如何卸载非linux系统分区,如何卸载Linux系统分区?卸载Linux系统分区的方法-站长资讯中心...
  3. html5画分形图形,2.5 绘制透明图形 - HTML5 Canvas 实战
  4. 二级c语言加油,二级C语言 备考指南及常见问题(2013版)
  5. 电脑如何设置不休眠_电脑休眠了却没法唤醒?设置一下就好!
  6. ps如何修改图片大小尺寸_PS新手入门教程:学习如何修改画布的大小
  7. c语言中字母的定义,c语言字符串定义与初始化 - 且听风吟
  8. linux内核升级写入不了,解决linux内核升级后不能重启系统的故障
  9. BBIAF的完整形式是什么?
  10. css clearfix_如何使用CSS清除浮点数(clearfix)?