使用EEGLAB分析脑电数据,情绪图片的ERP成分分析,超级详细,从头到尾,ERP分析看这一篇就够了(小菜狗的絮絮叨叨)

  • 一共分为6组图片,每张图片出现2s后有0.5s的间隔,每组图片中有20s间隔。在图片出现2s后,出现打分标记。其中201代表用户输入1,表示讨厌;202代表用户输入2,表示中性;203代表用户输入3,表示喜欢。
  • 获取数据后,对数据进行电极定位、设置重参考、滤波等预处理,进行ICA独立成分分析,之后叠加平均,分别分析枕叶、顶叶和颞叶部位的脑电成分,选取O1、O2、T7、T8、P3、P4电极进行分析。
  • 分析基本情绪和偏侧性之间相互作用,分别选取图片出现、100ms和200ms的时刻,画出脑地图,进行分析。

数据预处理

首先导入原始数据,我的原始数据是.cnt格式的。选择File -> Import data -> Using EEGLAB functions and plugins -> From Neuroscan.CNT file
首先来看一下这次的数据
此时实验中使用的数据共有67个通道,数据的总长度为2216486采样点,当前数据的段数为1,共有1320个事件,数据的采样率为1000Hz。数据从0s开始,到2216.485s结束。此时还没有设置参考点(unknown),也没有对通道进行定位(No),也没有对数据进行ICA独立成分分析(No),数据大小为612.6MB。这就是原始数据的一些基本信息。

接下来,进行电极定位
点击Edit -> Channel locations
我使用自带的模型去定位电极,选择“use MNI coordinate file for BEM dipfit model”,点击OK
通过Plot -> Channel locations -> By name 来看一下定位后的电极位置情况,如下:
接下来,设置重参考
点击Tools -> Re-reference the data

一般情况下,选择平均参考或是双侧乳突电极作为参考

  • 平均参考使用所有电极的平均值,因此被认为对任何电极位置均无偏差。假设是在任何给定的时间点,容积导体的表面电位为零。

  • 双侧乳突参考核心假定是在双侧乳突的电极部位没有或较少有神经电生理活动。考虑到双侧乳突与颞枕区相邻,这些区域中与任务有关的电活动将不可避免的混入到双侧乳突参考的计算中。将会导致双侧颞枕区的电信号减弱,而远离双侧乳突部位(即中央额区)的信号被错误地增强。
    这个就看个人的选择,不过对于我们的实验应该影响不大(我猜的),
    如果想用平均参考就选择“Compute average reference”
    如果想用双侧乳突参考就选择“Re-reference data to channel(s)”然后点击右边的三个点,浏览,选择M1和M2电极作为参考。
    接下来开始滤波,看教程说高通滤波和低通滤波一起容易出错,所以最好一步一步来。
    首先我们高通滤波,点击Tool -> Filter the data -> Basic FIR filter(new,default)
    高通滤波选择0.4,只有高于0.4Hz的波幅才会通过

    低通滤波选择40,只有低于40Hz的波幅才会通过
    接下来我们就可以开始runica啦!
    点击Tools -> Decompose data by ICA

选择runica,点击OK

接下来会出来一个提示框,如下,千万不要点,这个是interrupt,也就是停止runica的意思。
runica的时间非常长,我的数据612MB,大概两个多小时才跑完,在跑ICA的时候,大家可以吃个饭,睡个觉。
接下来跑完ICA之后的数据,最好先保存一下,以防忘记保存。
我这里就直接加载报完ICA的数据集,来看一下,此时Reference 后面变成了average,Channel location 后面变成了Yes,ICA weight后面变成了Yes,数据集也变大了。
我们把全部67个点击通道的独立成分的脑地图画出来
点击Tools -> Inspect/label components by map
点击OK
画出的图像如下所示
这样大致看起来都还挺正常的(假装一本正经的说出来),但是1和3号电极是全蓝的,感觉应该多少有点异常(直觉觉得它俩指定有点问题),于是我们分别点击它俩,把它俩reject掉,如下:
点最下面的“ACCEPT”,就会变成红色的“REJECT”
这样,它俩都被我们reject掉了。

数据分析

数据预处理基本上就这样了,不过其实还可以做许多比如去除伪迹啊之类的,实在是本菜狗不知道怎么去做(大哭)。
那接下来我们就跳过那些预处理,进入到数据分析阶段,我在这个阶段,发现EEGLAB有个特别好用的插件ERPLAB,强烈推荐给你们,那我们就先安装ERPLAB。
点击File -> Manage EEGLAB extensions,这里是安装各种插件的地方
选中ERPLAB,点击install
很快就安装好啦。
接下来我们为我们的数据集创建事件清单Eventlist
点击我们刚刚安装好的ERPLAB -> EventList ->Create EEG EVENTLIST
在我们想要保存的目录下保存,取名为event_list.txt,点击CREATE
我们可以点开我们ERPLAB为我们写好的事件清单看一下,前面item就是给事件event的编号,ecode是标记,我们只需要看201 、 202 、 203就好。
接下来我们写一个bin.txt文件也就是,等会儿给我们事件分类的一个箱子。
新建一个TXT文件,在里面写下如下。
第一行就是Bin x,注意,这里的x必须是从小到大,从1开始,就相当于给bin的一个编号。第二行,是我们人工的一个标注,标记这个bin里是什么样的数据,比如第一个是讨厌,就标记为“notlike”(其实可以使用hate,突然想起讨厌的英语是hate)。第三行是哪些标记的数据放进去,比如第一个是讨厌,它对应的编码是201,所以我们就在括号里面写201 。
我感觉这个格式还是挺好控制的。

写好bin.txt文件,我们开始为事件event分配bin,每次做这一步,就会想起垃圾分类,你是什么垃圾,你是bin1,好,你就是bin1垃圾。
点击ERPLAB -> Assign bins(BINLISTER)

上面的Load Bin Descriptor File from选择我们刚刚写好的bin.txt文件,下面的Writing resulting eventlist to 选择“text file”
在选择event_list.txt时,会出现如下提示框,点击“是”,替换掉刚刚的event_list.txt文件,也就是重写掉它。
我们点开重写的event_list.txt,看看有哪些改变,可以看到上面有我们的三个分类,分别对应的事件个数和标签,而且下面201、 202、 203后面都有对应的bin标签

接下来我们就可以将event_list加入到数据集中来。
点击ERPLAB -> EventList -> Import EEG EVENTLIST from text file
然后选择刚刚写好的event_list.txt,就可以啦!
接下来,我们开始分段
点击ERPLAB -> Extract bin-based epochs
因为这次实验的事件标记是出现在图片出现的2s,我想研究从图片出现前100ms到图片消失(图片从出现到消失共2s)100ms之间的ERP成分,所以这里的时间段选择-2100 100,大家可以根据自己的需要分段,点击RUN。
接下来我们开始叠加平均,
点击ERPLAB -> Compute averaged ERPs
点击RUN

为了方便分析,我们最后再引入两个差异波。
点击ERPLAB -> ERP Operations -> ERP Bin Operations
加入两个差异波,分别是bin2-bin1,bin3-bin1,就是波幅相减

OK!大功告成!画个图看看!
左上可以选择想画的bin,左上二是时间,右上是选择电极

真真正正的数据分析(小菜狗的嘴遁时间)

因为其实我对ERP还没有那么了解,只能说误打误撞,磕磕碰碰的琢磨了一些东西。给大家提供一个参考吧

P1成分

P1成分是第一个主要的视觉成分,通常起始于刺激后60-90ms,并于100-300ms达到峰值。P1成分与注意的早期视觉加工有关,并反映编码过程。不愉快的情绪图片比愉快情绪的图片在枕部诱发更大的P1振幅。
因为P1的最大幅值位于侧向枕叶电极,因此选择左枕(O1)和右枕(O2)通道在三种情绪下的振幅进行作图,并做出差异波的振幅图,如下:

从左上和右上图可以看到,在图片刺激后60ms左右时间出现了一个正向的峰值即为p1成分,并在250ms也就是-1750ms左右达到峰值,也就是p2成分。可以看到在P1之后出现了一个负性的峰值,即为N1成分。
接下来结合差异波来看一下情绪对P1成分振幅的影响,下面两张图的横坐标刻度与上图相同。对应来看,很明显的看出,在P1达到峰值的时期,两个差异波都是负的,也就是说,讨厌所引起的振幅高于中性和喜欢,这和前人的研究结果吻合。不过,并未发现中性和喜欢之间有明显的的振幅差异。

EPN成分

EPN是出现在颞枕部位的一个负波,在视觉刺激呈现后250~350ms时达到峰值。EPN的振幅与情绪唤醒度相关,也与图片的情绪内容相关。愉快图片诱发的EPN明显大于不愉快图片诱发的EPN。
选择左颞(T7)和右颞(T8)通道在三种情绪下的振幅进行作图,并做出差异波的振幅图,如下:

从左上和右上图,可以很明显的看出在图片刺激出现后的200ms~400ms左右出现一个负波,并在250ms左右达到峰值,这就是EPN成分。
接下来,查看差异波找出情绪对EPN成分的影响。在EPN成分出现时,两种差异波都为正,也就是说喜欢和中性的图片刺激产生的振幅大于讨厌图片。由此,可以推断积极情绪产生的EPN振幅大于消极情绪。

LPP成分

LPP成分对视觉图像的情绪内容敏感,与中性情绪刺激相比,正性情绪和负性情绪刺激均能增大其振幅。LPP振幅的大小可以作为整个情绪图片呈现过程注意活动的客观指标,强调标识注意对动机激发性刺激的持续偏向和加工。LPP成分分布在中心-顶叶头皮,200ms就可以观测到,持续到1000ms。
分析顶叶位置电极,选择左顶(P3)和右顶(P4)通道在三种情绪下的振幅进行作图,并做出差异波的振幅图,如下:

从左上和右上图,可以很明显的看出在图片刺激出现后的200ms左右出现一个正波,并在350ms左右达到峰值,并持续大概400ms,到600ms(-1400ms)左右这就是LPP成分。
观察差异波发现,在LPP成分出现的时间,两种差异波都为负,也就是说讨厌所引起的振幅高于中性和喜欢,并且喜欢产生的振幅大于中性。然而,前人的研究显示,快乐的情绪产生的LPP波幅应该是大于恐惧和愤怒,在这次实验中,却恰恰相反。

情绪与偏侧性分析

下面分别是在图片出现(-2000ms)、图片出现100ms(-1900ms)和图片出现200ms(-1800ms)的脑地图。从上到下分别对应着讨厌、中性、喜欢、中性-讨厌和喜欢-讨厌。红色对应波幅正向,蓝色对应着波幅负向,越红越蓝对应着波幅越大。
首先看第1张图,在讨厌和喜欢图片出现的时刻,发现前-中脑部的振幅大于脑后部,并且在喜欢图片出现时刻发现一个右前部的偏侧性,脑右前部的振幅高于左前部。在中性图片出现时刻,发现中央电极位置振幅与前部和后部有明显的差异。
观察第2张图,可以发现在讨厌、中性和喜欢图片出现100ms之后,有一个很明显的右后偏侧性,中央位置都出现振幅低于周围的情况。在喜欢图片的脑地图中发现左前部的振幅相对较高。
第3张图是在图片出现200ms时的脑地图,在三种图片下,都能发现脑后部的电极振幅是明显大于脑前部的,这种差异在讨厌和喜欢图片条件下更为明显。
就是这样啦,完整的报告我会上传到资源里面,大家也可以来私聊我,私发实验数据或是报告哦。

使用EEGLAB分析脑电数据,情绪图片的ERP成分分析相关推荐

  1. 利用机器学习分析脑电数据(原理分析+示例代码+快速上手)

    由于本人对于脑机接口以及脑电技术的极度爱好(其实目的是:是把U盘插到大脑里,然后就不用学习了哈哈哈哈),近几月看了较多这方面的内容,变打算写下博客总结分析一下. 目录 一.  机器学习分析简介 二.机 ...

  2. Python实现对脑电数据情绪分析

    作者|李秋键 出品|AI科技大本营(ID:rgznai100) 引言 脑电波是一类由大脑中局部群体神经元同步放电所形成的具有时空特征的脑电活动电波.德国医生汉斯·伯格(Hans Berger)在192 ...

  3. EEGLAB拼接脑电数据

    为了在EEGLAB中将一个被试多个阶段中记录的数据进行整体处理,需要将原始数据进行拼接. 若现有数据已经是基于matlab的.set文件,通过file>load existing dataset ...

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

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

  5. 脑电数据的实验范式及EEGLAB分析预处理

    脑电数据的实验范式及EEGLAB分析预处理 一.脑电数据采集处理过程 1.1 脑电数据采集过程 1.2 实验范式标签说明 二.EEGLAB分析预处理 2.1 导入数据 2.2 选择通道数据,删除无用电 ...

  6. php中复选框删除数据_ERP分析中如何自动删除休息阶段的脑电数据?

    文章转载自公众号:流浪心球 作者:念靖晴 为了保证EEG研究中采集到的脑电数据的质量.因此在整个实验任务进行中,研究者往往会设置休息阶段,休息阶段的时长设置一般有以下几种形式: 被试自主决定 强制休息 ...

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

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

  8. 针对Matlab脑电数据EEG处理、 eeglab工具箱、Neuracle数据采集操作要点事项

    Matlab脑电数据EEG处理. eeglab工具箱.Neuracle数据采集操作要点 本文为博主针对自己在采集脑电数据.分析处理数据过程中的实际经验总结记录,如有不妥之处请提出修正,内容仅供BCI爱 ...

  9. 脑电分析系列[MNE-Python-21]| Python协方差矩阵处理脑电数据

    今天主要介绍一下MNE中如何用协方差矩阵来处理脑电数据的. MNE中的许多方法,包括源估计和一些分类算法,都需要根据记录进行协方差估计. 在本教程中,我们将介绍传感器协方差计算的基础知识,并构建一个噪 ...

最新文章

  1. Chrome 开发者工具的各种骚技巧
  2. 配置CITRIX XML 服务与IIS 7.x共享端口
  3. jOOQ星期二:拉斐尔·温特豪德(Rafael Winterhalter)正在与字节好友搏斗字节码
  4. 可以让你少奋斗十年的工作经验
  5. 一步步编写操作系统 48 二进制程序的加载方式
  6. C++ 通讯录设计(一)
  7. 充值后的充值金额提交到账户金额中
  8. 手把手教你玩转QQ的原创表情
  9. 关于GomezPeer赚钱的可行性调查
  10. 大恒相机连续采集并保存图片
  11. 关于hive当中的double的数据类型
  12. 大一上学期C语言不熟知识点学习总结
  13. java中的set_java中的set是什么意思
  14. MS-DOS系统下的autoexec.bat
  15. 一款公历转农历节气以及天干地支的js代码
  16. 分布式BASE理论:数据一致性模型!
  17. RealSense 动态校准
  18. Windows Server 2022 发布(正式版下载)
  19. EC20 4G 海思 3520D 拨号失败(APN需要设置为三大运营商的指定值)
  20. GPU版本安装Pytorch教程最新方法

热门文章

  1. android xml 里的 app,xml中的android、app、tools你真的了解吗
  2. html中如何给图片设置浮动,css – 如何在div中浮动图像
  3. 程序设计 PTA 7-4 进步排行榜
  4. 火车余票查询API 一
  5. 厘米到像素的转换公式
  6. Vue中使用dayjs
  7. 【毕业设计系列】009:调频通信系统(相干解调非相干解调)仿真界面实现
  8. 区块链是真技术还是忽悠?
  9. Java流程控制——用户交互Scanner
  10. 酷开系统让父母的老年生活也开始智能化