目录

  • 导入数据
  • 对数据进行初步认识
  • 电极定位
  • 移除无用电极
  • 重参考
  • 重采样
  • 滤波
  • 分段和基线校正
  • 插值坏导
  • ICA
  • 剔除ICA成分
  • 剔除坏段
  • 目视检查法
  • 保存数据

本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 QQ交流群:941473018

感谢简书ID:亚内士多德 授权分享

EEG脑电数据预处理-操作篇

关于EEG数据预处理的原理,前面已经介绍过了,大家可以查看《手把手教你EEG脑电数据预处理-原理篇》。下面是亚内士多德分享的操作篇。

导入数据

选择要导入的数据格式

接下来会弹出一个对话框,是否要对数据进行选择性导入,一般都是全部导入,直接点OK即可。

接下来又会再弹出一个对话框,是否要对数据进行命名。基本上在EEGLAB的每一步操作之后都会弹出这样的对话框,询问你是否需要对新产生的数据进行命名,根据自己需要选择即可。

对数据进行初步认识

channel per frame:64 指导入的数据有64个通道
frames per epoch:一段数据的总长度,是439880采样点
epochs:指当前数据的段数,原始数据还没有进行分段,因此显示只有一段
events:检测到当前数据一共有202个events
sampling rate(HZ):数据的采样率为1000HZ
epoch start和epoch end: 这个的分段是从0秒开始,到439.879秒结束。还没有进行分段所以看这个数值没有意义
reference: 指数据的参考点,重参考后会显示重参考的电极点,或者average,目前还没有进行重参考所以是unknown
channel locations:是否有对通道进行定位,目前显示没有,定位后会显示为yes
ICA weights:是否对数据进行了ICA独立主成分分析,分析后会显示yes
dataset size:数据的大小

电极定位

默认文件是standard-10-5-cap385.elp,点击确定即可

点击OK之后可以进入下一步查看数据

如果检查到某个电极点的坐标信息为空白(如上图所示),可能是该通道的名称在加载的模板文件中找不到,那么
如果确定该通道是根据国际排布系统来确定的,那可以修改label名称后再点击下方的look up locs来更新通道位置信息,比如上图的VEO改为VEOG,然后更新位置信息之后就可以看到了
如果不是国际排布系统,可以向厂家要电极的坐标位置信息
如果知道该电极点的精确坐标,可以手动输入
双侧乳突的电极点位置可能会根据脑电系统的不同而不同,比如TP9 TP10,A1 A2, M1 M2这三对都是指双侧乳突

移除无用电极

此处我们要移除掉两个眼电数据


重参考

此处要将数据转换为双侧乳突平均参考,即TP9,TP10


重采样

不一定每个数据都需要进行重采样,可根据需要进行。

滤波

此处选择默认的滤波器进行0.1-30Hz的滤波

依次在第一框中填入0.1和第二个框中填入30进行计算,两个一起填代表进行带通滤波,建议分开进行

分段和基线校正


点击OK后会弹出下一个要求基线校正的对话框,默认是event前的数据作为基线来进行校正,点击OK即可。

插值坏导

对数据进行检查,如果发现某个通道的数据坏了,可以用插值的方式来进行校正,此处要校正的通道为FC3,选择插值的通道为它周围的四个电极点,F3,FC1,C3,FC5

第一种方法是代码操作

EEG.data(a,:,:) = mean(EEG.data([b c d],:,:)) ;

其中a代表坏掉的电极点数值,b c d 代表要进行插值平均的电极点数值
如果不确定通道数值是多少,可以通过Plot - channel locations - by name 来进行查看。

画出通道图之后,可以通过单击通道名字来查看通道数值。

所以这句代码为

EEG.data(17,:,:) = mean(EEG.data([8 18 26 16],:,:)) ;

这句代码的意思是指,第17个通道的数值,用第8,18,26,16这四个通道数值的平均值来代替。

第二种方法是面板操作,用eeglab的默认算法进行

ICA

使用ICA算法剔除伪迹,此步操作耗时较长

因为我们有一个坏通道的数据是用其他通道的数据生成的,相当于我们损失了一个有效通道数据,而ICA默认是在所有通道都是有效数据的情况下进行的,所以此处我们需要进行一些修改,在’extended’, 1后面加上’pca’, 59,中间用逗号和空格隔开,逗号要用英文输入法下的

点击确定之后会出现一个对话框,显示正在进行ICA计算,计算结束后该对话框会消失

在跑完ICA之后建议保存当前数据,在进行伪迹剔除操作。这样做可以保证在剔除不当的时候随时回到未剔除的状态下重新进行选择。
此时会保存为eeglab的.set的格式文件

在跑完ICA之后就可以用ICA进行伪迹剔除了

选择要画出的成分数,此处我们选择默认状态

eeglab提示我们一张画布只能画下35个图,剩下的会在第二张画布中画出,点击OK即可



此时我们可以对所有的ICA成分进行查看和标记,点击成分数字,会出现该成分的详细情况。如果觉得该成分代表伪迹成分,想要剔除的话,可以先将它标记起来。标记的方式是单机下方绿色的ACCEPT,单击之后会变成红色的REJECT

这一步需要对每一个成分进行查看和判断,然后将想要剔除的成分先标记起来。ICA可以进行眼电伪迹,肌电伪迹,坏导伪迹以及心电伪迹等的辨识与剔除,但是此处我们只进行眼电伪迹的剔除,我们将第一个成分和第13个成分标记起来,标记了的成分数会变成红色。然后点OK。此时还没有进行剔除操作。

除了上面那种方式之外,还可以使用逐个成分画出的方式来查看和标记

剔除ICA成分

eeglab默认两个框都是一样的信息,此时记得把第二个框的信息给清除掉

在接下来的对话框里,我们可以对剔除了ICA成分和未剔除的数据进行比较

红色代表未剔除的数据,蓝色代表剔除后的数据,所有通道的ERP图如下

从红色框中的部分可以看到,我们还是很有效地剔除了眼动伪迹的,所有通道单个trial的图如下

检查确认无误后点击accept进行剔除操作

剔除坏段

  1. 绝对阈值法
    此处我们选择剔除掉超出±100μV的trial。


目视检查法

逐个trial进行查看,如果发现有伪迹过大的trial想要剔除的话,单击该trial,它会变成黄色。选择完所有trials后,点击下方的reject即可。此处选中的两个trials仅仅作为演示用。

保存数据

至此EEG数据的预处理就基本完成了,我们可以再次将这个数据保存起来,以供下一步操作。

参考
手把手教你EEG脑电数据预处理-操作篇
本文章由脑机学习者Rose笔记分享,QQ交流群:941473018
更多分享,请关注公众号

手把手教你EEG脑电数据预处理-操作篇相关推荐

  1. 手把手教你EEG脑电数据预处理-原理篇

    目录 0. EEG data 1. 定位通道数据 2. 删除无用数据 3.滤波 4.分段 5.基线校正 6. 重参考 7. 降低采样率 8. 插值坏导 9. 独立主成分分析 10. 剔除坏段 本分享为 ...

  2. EEG脑电数据预处理

    预处理 电极放置:在10-20的基础上,在10%的位置上进行电极扩展 去除伪迹:生理伪迹-眼电伪迹,肌电伪迹,心电伪迹,其他 非生理伪迹-工频干扰,电极伪迹,数据伪迹等 肌电伪迹:使用平均叠加来消除一 ...

  3. letswave7中文教程3:脑电数据预处理-ICA去除伪影

    目录 ICA/BSS的理论与模型 第5步:计算ICA矩阵 第6步:识别伪影成分 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 ICA/BSS的理论与模型 ...

  4. letswave7中文教程2:脑电数据预处理-通道位置分配

    目录 第1步:通道位置分配 第2步:删除不良通道 第3步:滤波处理 第4步:坏电极插值 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 原始的脑电图信号是有 ...

  5. eeglab脑电数据预处理:step by step

    文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注. 学脑电的小伙伴对 matlab 软件和 eeglab 插件一定不会陌生,它们是脑电数据分析过程中的重要法宝.在对脑电数据进行分析处理之前需 ...

  6. Letswave 教程:脑电数据预处理与叠加平均

    Letswave 教程:脑电数据预处理与叠加平均 1 实验与工具介绍 2 前期准备 2.1 letswave7安装与数据集准备 2.2 数据集导入 2.3 数据集检查 3 数据预处理 3.1 通道位置 ...

  7. EEGLAB脑电数据预处理指导手册

    EEGLAB脑电数据预处理指导手册 1 前期准备工作 1.1 书籍 1.2 网站 1.3 公众号 2 预处理流程 2.1 准备工作 2.2 眼电去除的标准 2.3 后续整理工作 3 叨叨几句 Hell ...

  8. 脑电数据预处理-ICA去除伪影

    ‍‍‍‍‍‍‍‍‍‍ ICA/BSS的理论与模型 独立成分分析(ICA)是一种盲信号分离(Blind Signal Separation,BSS)方法.ICA可线性建模如下图所示. 假设X为" ...

  9. 脑电数据预处理看这篇就够了

    01 脑电数据分析预处理步骤 1.(Import data)导入数据 2.(Channel locations)电极定位 3.(Select data)剔除无用电极 4.(filter the dat ...

最新文章

  1. 【深度学习】Keras加载权重更新模型训练的教程(MobileNet)
  2. 龙岩学院计算机专业宿舍,龙岩学院的各个学院位置有谁能说下
  3. 树莓派 Raspberry Pi 更换国内源
  4. 数据科学学习心得_学习数据科学时如何保持动力
  5. POS机刷卡机招商加盟企业网站源码
  6. 浅说深度学习(2):简史
  7. java非字符文件的复制--图片复制
  8. MD5加密算法(python)
  9. SCI、EI、ISTP收录检索技巧及核心期刊投稿导引
  10. Java8 CompletableFuture(2)回调函数 thenApply thenAccept thenRun
  11. 手机用计算机微信运动记步吗,微信运动怎么用?微信运动计步功能使用方法介绍...
  12. 驾驶证学法减分助手小程序源码(带搭建视频教程)
  13. android 锯齿
  14. springboot ruoyi
  15. python2.7下的urllib和urllib2
  16. eNSP三个路由器两个pc连接
  17. win7 正在锁定计算机 卡住,win7关机关不掉怎么办_win7一直卡在关机的解决办法
  18. 图文讲解 上网本 无光驱 系统蓝屏/系统无法开机 用U盘 winpe 启动U盘 重装系统的方法(通用PE工具箱/老毛桃/大白菜WinPE)
  19. Python复习边边角角 (四)运算符
  20. 144显示器只有60_144Hz显示器为什么只跑60Hz?这几个原因很关键!

热门文章

  1. win10下安装Ubuntu后,启动时没有win10选项解决方法
  2. android开发出现No Launcher activity found!解决方案
  3. 微信自定义分享卡片链接的解决方案(可自定义标题 描述 图片)
  4. 我可以强制pip重新安装当前版本吗?
  5. 如何转换高度:0; 达到高度:自动; 使用CSS?
  6. 在HTML5 localStorage中存储对象
  7. IPv6新形势下的安全解决方案
  8. ssm配置多数据库支持
  9. 也谈.Net中间语言——破解Delphi2CS行数和时间限制
  10. 当DiscuzNT遇上了Loadrunner(中)