EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能

关注“心仪脑”查看更多脑科学知识的分享。

今日~分享Matlab中EEGLAB对EEG数据预处理和ERPs分析的操作步骤。

EEG数据处理和分析的软件有不少,其中常用的一款是基于MATLAB运行平台的EEGLAB工具包,可以实现对EEG数据的预处理和ERPs的分析。

接下来就详细介绍EEGLAB中EEG数据预处理常用流程和操作步骤以及ERPs的分析,本次操作步骤介绍中是基于单个被试展开的。本文详细讲解如何操作,若想要了解ERPs数据分析原理,请参考往期推文:ERPs的预处理很简单,但你都了解了吗?

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第1张图片

来自:彭微微老师

1前期步骤

1.1 打开MATLAB软件→在命令窗口中输入“pathtool”→弹出如下界面。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第2张图片

1.2 点击“添加文件夹”选择EEGLAB所在的路径→点击“保存”,点击关闭;接下来,在MATLAB命令窗口中输入“eeglab”,弹出如下界面。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第3张图片

1.3 择相应系统:在该界面中点击“File → Manage EEGLAB extensions”选择好需要的脑电采集系统。

2 预处理操作步骤

2.1 Step1 导入数据

  • “File → Import data → Use EEGLAB functions and plugins”( 选择相应的数据文件格式,如“From ANT EEProbe .cnt file”)。
    然后,弹出如下界面。

【注释】Neuroscan和ANT厂家的“.cnt”文件不同,不能混着使用。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第4张图片

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第5张图片

【注释】一般选择默认(默认是指导入完整数据),但如果确定只分析完整数据中的某一段,可以设置数据段的起始时间,单位为秒。

  • 数据导入完毕后,EEGLAB主界面显示导入EEG数据的参数信息。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第6张图片

2.2 Step2 定位电极

  • “Edit → Channel locations → Look up locations → OK”。

【注释】一般选择“Look up locs”弹出一个界面,默认电极标准为“10-5-385cap”系统。如若选择其它个性化电极坐标文件,可以现在“Read locations”中加载需要用到的定位电极系统。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第7张图片

【注释】默认已经选好的标准系统,查看所有电极的参数信息。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第8张图片

  • 浏览头皮地形图,查看相应电极坐标位置。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第9张图片

【Every Step】浏览数据

  • “Plot → Channel data(scroll)”。

【注释】建议新手每处理一步查看一下数据,以便对比观察每一步数据处理的效果,有利于掌握每一步数据处理具体作用。同时数据处理步骤或参数设置的问题也可通过查看数据快速发现。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第10张图片

2.3 Step3 剔除无用电极

  • “Edit → Select data → Channel range”。

【注释】选取需要去除的电极,并一定要勾选右边的方框。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第11张图片

2.4 Step4 重参考

  • “Tools → Re-reference data”。

【注释】重参考的方法有双侧乳突,全脑平均,鼻尖参考等,本文这里选取全脑平均做参考,勾选第一个方框。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第12张图片

2.5 Step5 滤波

  • “Tools → Filter the data → Basic FIR filter (new,default)”。

【注释】该界面中使用的是低通(35Hz)、高通滤波(0.1Hz)的带通滤波器。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第13张图片

【注释】一般低通滤波器设置在50Hz以下时会同时滤掉50Hz市电干扰信号,但通过数据查看市电干扰依然严重时选择使用Nortch 滤波。选取频带范围:49~51Hz,滤去50Hz市电干扰。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第14张图片

2.6 Step6 分段与基线校正

  • “Tools → Extract epochs”。

【注释】选好标记的Mark 类型(如,1、10、2、4、7),分段的时间段(刺激前200ms到刺激后800ms)。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第15张图片

【基线校正】:根据上步的分段,自动弹出基线校正时间刺激前200ms到0ms。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第16张图片

2.7 Step7 插值坏导或剔除坏段

  • “Tools→Interpolate electrodes”。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第17张图片

【注释】若是在“Step3” 中删除了电极,在此步骤需要选择第一栏,采用插值法补上原先删除的电极。若是没有删除电极,可以在这步骤中选择第二栏,对需要插值的电极进行计算。也可用语句代码实现,如:“EEG.data(7,:,:)=mean(EEG.data([11 32 40 38]),:,:)”,即如果要对电极通道7进行插补,可以用电极点7 周围的四个电极点平均值代替。

2.8 Step8 Run ICA

  • “Tools→Decomposed data by ICA”。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第18张图片

【注释】在 ‘extended’,1后输入 ‘pca’,63(所有需要做眼电校正的电极数目)。此外由于ICA运行较慢并且易卡顿电脑,为防意外建议在ICA运行前保存一次数据,避免ICA运行崩溃时前边处理步骤需要重新做一遍。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第19张图片

数据处理中......等待一段时间。

  • 保存数据(ICA运行完后注意再次保存数据,不然ICA可能前功尽弃)。

2.9 Step9 剔除眼动成分

  • “Tools → Inspect/label components by Map”。

【注释】这一步骤手动去删除眼电需要基于数据分析者的经验判断进行。当有足够的把握确定是眼电伪迹,在该步骤中可以手动剔除;如果模棱两可,可以请经验丰富的人帮忙判断,或是保留。本示例中,选择剔除IC1和IC4成分。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第20张图片

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第21张图片

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第22张图片

2.10 保存数据

以上就是单个被试EEG数据的预处理操作步骤和界面呈现,是用GUI方式完成的操作。当然,我们收集的数据一般不会只有一个,在MATLAB中可以用编写语句的方式实现批量处理多个被试EEG数据(通过EEGLAB的EEG.history查看数据处理步骤调用的MATLAB代码,然后根据被试量添加“for end”循环语句进行批处理。其中肉眼检查ICA成分,并删除ICA成分需要手动操作,不能进行批处理)。

接下来

依然是以单个被试为例,在MATLAB中以语句的方式实现ERPs分析(部分相关代码参考彭微微老师课程~)。

31MATLAB中单个被试ERPs分析

3.1 根据mark类型选择数据进行叠加平均

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第23张图片

3.2 根据Mark 类型分别在条件1和条件2试次间做叠加平均并做差异波

3.3 选取要呈现波形图的电极点

本示例中选取P4,P8,运行代码如下:

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第24张图片

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第25张图片

【注释】

  • Figure → 使用默认属性值创建一个新的绘图窗口,生成的图窗为当前图窗。
  • subplot(m,n,p) →将当前图窗划分为 m×n 网格,并在第 p个位置绘图。
    MATLAB按行号对子图位置进行编号。
    第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第26张图片

  • subplot(3,1,1) → 在相应位置创建子图窗口
  • mean_data_con1=squeeze(EEG_avg_con1(P4,:)); → 在条件1下,从叠加平均后的数据中提取P4电极的数据;
  • mean_data_con2=squeeze(EEG_avg_con2(P4,:));→在条件2下,从叠加平均后的数据中提取P4电极的数据;
  • plot(EEG.times,mean_data_con1); → 画出条件1下的平均波形图;
  • hold on → 保持;
  • plot(EEG.times,mean_data_con2);→画出条件2下的平均波形图;
  • set(gca,'YDir','reverse'); → 设置Y轴的极性反转,即正在下,负在上;
  • xlim([-200 800]); → 定义X轴的时间窗区间;
  • ylim([-15 10]); → 定义Y轴的电压幅值scale;
  • title('P4 average','fontsize',8); →设置绘制子图标题及标题文字字号大小;
  • ylabel('Amplitude (uV)','fontsize',8); →定义Y轴标签名称及标签文字字号大小;

3.4 峰值探测和头皮地形图绘制

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第27张图片

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第28张图片

【注释】

  • 第一行代码是在选定的时间窗内找出最小值最为该电极点的N170 peak值,第二行代码是确定这个N170 peak值的潜伏期是多少。
  • 第三行、四、五、、六行代码(红色方框)是查找特定电极的峰值和潜伏期(注意正成分用max函数,负成分用min函数),本文中选择查看电极P8在条件1和条件2下的峰值和潜伏期,在MATAB工作区间中可以看到准确的数值,如下图所是。
    (如果要找出所有被试特定电极点的峰值和潜伏期需要对下述代码在被试间使用“for end”循环。

  • figure以下的语句实现分别绘制条件1、条件2以及条件1减去条件2下的头皮地形图。
  • topoplot:
    绘制二维脑电地形图,分别画出条件1和条件2的头皮地形图。
    注意脑电成分的感兴趣时间窗口需要自行定义,本代码选用170~210ms的时间窗。

3.5 运行结果如下

EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能_第29张图片

全文完结,整理不易,看不完记得收藏,最后希望点赞支持一下!

了解更多,请关注“心仪脑”公众号!

你可能感兴趣的:(脑电技术,脑科学,心理学,EEGLAB,ERPs,数据处理)