EEGLAB数据分析:预处理与后续处理

来源:http://blog.sina.com.cn/s/blog_13171a73d0102v4zx.html

数据预处理主要包括数据导入、电极定位、电极返回、滤波、去除伪迹、重建参考、分段、叠加平均等步骤。只有经过预处理的数据,才能进行特征值提取以进一步进行方差分析等操作。EEGLAB对数据处理的优点无需赘述。很多情况下,后续被试的预处理与第一个被试的处理过程是一样的。在这种情况下就可以采用批处理的方式进行,以便减少处理数据的时间并保持数据间参数的一致性,有利于后续数据的统计分析。在此主要有两种方法。第一,最简单的方法就是采用EEGLAB里面的插件Batch。该插件无需编程知识,在第一个数据处理后,其他数据都可以根据对第一个数据的处理步骤依次进行,方便快捷。这里需要注意的是,第一个被试的处理必须通过GUI(界面)实现,而不能通过Script实现。第二,就是通过编写简单的程序进行批处理。两种方法都是数据处理的好方法。

方法一:通过Batch插件进行批处理

  • 预处理

在批处理之前,我们必须对第一个数据进行完整且适当的分析。因为后续所有被试的分析都是和第一个被试的分析一样的,因此第一个数据的分析是非常关键的,它决定了后续被试的数据处理是否得当以及能否保持数据间参数的一致性。这里提醒一点,就是ERP实验前,必须打好分段标记!!这是后续数据处理中一个基本且重要的方面。

1 在第一个被试预处理全部做完后,在Batch中保存,默认选中第一个后缀名为set。

2 将刚才处理的过程保存为一个历史过程文件,路径为存储当前数据的文件夹。

3 将刚才处理的数据在EEGLAB里面清除(切记)。

4 打开Batch选项,选择历史文件,就是刚才处理第一个数据是保存的文件,第二打开要处理的其他文件,直接点击就进行批处理。另外旁边有一个选项是并行处理,选择这个选项可以加快处理速度,但是对内存要求很大。

Batch批处理,第一个数据

1 数据导入;

2 将采样率降为250 Hz: (非必须步骤);

3 导入电极位置;

4 声明原始参考点:可以在导入电极位置之后,在最后一个电极点后增加参考点,电极自动寻找,就生成原来的参考电极的位置FCz。同时,需要制定这个电极点为参考点,其他所有的电极点都以这点为参考(1:63);

5 在重建参考,进行平均参考(加入FCz,去除两个眼电电极点);然后进行双耳参考(TP9, TP10),两步之后,就生成了FCz的数据值且是以TP9和TP10为参考点的矩阵;

6 自动检测电极点,坏电极点采用用插值法进行差值处理。

7 对连续数据删除正式试次开始和中间间隔的数据,减少数据处理对内存的要求。

8 采用ASR方法对上述连续数据进行伪迹矫正,这里注意不使用删除电极功能(off即可),在ASR之前最好用自动检测电极点程序。

9 滤波:高通、低通分别进行;(注意高通滤波)

10 分段:选择需要分析的所有marker;

11 基线矫正(自动步骤);

12 删除错误试次和波幅过大试次;这步骤可以在下面操作;

上述就是采用Batch进行批处理的第一步;然后依次进行第二到第四步,处理剩余的数据。全部被试的数据进行批处理完毕后,对每个被试的数据进行如下操作:

13 删除特定试次:这里的主要是指波幅范围标准和极端值分布标准;

请注意有些步骤不能用批处理进行,比如坏电极的处理,这是属于个体差异

14 检查是否有坏导:

① 检查是否有坏导; 如果有坏导,进行第 ②步操作;

② 替换坏电极:采用命令的方法或者采用差值方法进行替换,以下是命令方法:

 EEG.data(62,:,:)=(EEG.data(4,:,:)+EEG.data(9,:,:)+EEG.data(13,:,:)+EEG.data(40,:,:))/4  

 EEG.data(63,:) = mean(EEG.data([4,9,13,41],:),1);  
  • 后处理

插值法可用工具菜单的interploration命令进行。经过上述处理的步骤,只是初步进行了处理,主要是滤波,重建参考,替换坏点,删除变异试次等操作。还没有去除眼电(上述盲源分析方法有效,如果已经处理过,就略过这步),因此还需进一步进行去除除眼电的操作ICA。方法同上述操作步骤一样,过程如下:

1 先进行第一个数据的操作,然后进行批处理。

2 最后对每个被试的数据进行去除眼电成分,再次进行基线矫正,得到干净的数据。

3 从每个被试的数据中提取各个条件的数据;建立dataset。

进过上述两步的操作后,所有被试的数据都已经预处理完毕,就可以对这些数据进行后期的特征值提取,主要是指数据统计分析等工作。

方法二:通过编程进行批处理

EEGLAB最方便之处在于,经过每步处理后,都可以通过脚本的历史命令查询出相应的脚本,这样的话就可以在这些脚本的基础上进行编程,从而减少数据处理时间。可以通过EEG.history命令也可以通过菜单将处理过的数据的脚本进行保存。编程的批处理可以分两步进行:

1 全部数据进行预处理(无ICA);

2 把第一步进行处理过的数据进行ICA,目的是去除眼电、肌电和其他噪音,得到干净的数据。经过第1步的预处理后,统一对已经生成的文件进行ICA。通过ICA,可以分别对生成的文件去除眼电、肌电和其他噪音ICA,这里笔者根据以往的经验,只去除眼电的噪音,而且对数据依次处理。不推荐使用独立成分自动去除的程序(如AJUST等自动软件)。

方法三:通过编程进行批处理

第二种方法中,我们首先对所有数据进行了批处理,然后通过ICA的方法去除伪迹。实际上,有很多种去除伪迹的方法,一种比较直接的方法就是对原始的数据进行去除。这里推荐使用ASR方法,即伪迹空间重建的方法。这种方法只能用在原始数据即没有分段前的数据进行处理。步骤包括导入数据、电极定位、返回参考(可选择)、重建参考、滤波、ASR自动校正、分段、去除Epoch以及叠加平均过程。如果原始数据较大,则可以在预处理前分别对所有的原始数据进行处理,删除在刺激前和实验中途休息的是大段数据,达到减少数据量的目的。


EEGLAB数据分析

  • 时间/波形分析

EEGLAB中,有个独特的模块就是study模块,可以方便的进行预处理后的数据分析。但是目前来看,通过这种方法虽然可行,但是较为麻烦。因此,更简便的方法就是不利用study编写脚本程序的方法进行后续的数据分析。因此,可以充分利用matlab的函数进行波幅和潜伏期分析。需要注意的是,在提取波幅和潜伏期之前,必须建立每种条件下的所有被试的总平均文件,利用总平均文件才可以进行后续的波幅和潜伏期特征值的提取。利用总平均文件,可以方便的提取波幅和潜伏期,进行方差分析;另外,总平均文件的建立还有利于以后论文投稿中的波形图和地形图的准备,一石二鸟。

画出总平均波形图/画出总平均地形图

总平均波形图 要画出总平均波形图,必须首先建立总平均的文件。这里通过GUI操作的方式通过Grand-average选项,对每一种条件下所有被试的.set数据进行总平均,建立一个N个不同条件总平均文件。需要注意的是,总平均后需要再一次进行电极点定位,这样才能进行后续操作,否则无法画出总平均地形图。然后通过脚本命令方式的进行画出总平均图。该命令可以根据输出的电极点的数量,以及投稿时的要求进行适当的修改,以输出符合要求的图片(分辨率和大小)。利用上述语句可以在九个子图里分别画出两种条件以及差异波的总平均图,优点是方便快捷,无需对图片进行额外的准备,方便后续的投稿和图表准备。

图片制作分为三步:

(1) 完成画图及相关设置(字体大小、线宽、图例大小也是正常尺寸),

(2) 此时WindowStyle is 'docked',要改为normal,有两种操作:在Figure properties——more properties中找到Windowstyle,然后用鼠标改为normal;或者直接用命令:set (gcf,'windowstyle','normal')

(3) 将图片保存成TIFF格式图片。

(4) 将图片拷贝到word里,并生成PDF文件,用Photoshop软件打开刚才生成的PDF文件,然后对之进行操作,设置最终的图片大小和分辨率。

总平均地形图 前提是首先利用Grand-average插件进行不同条件的总平均,得到两个总平均文件。再利用相关的EEGLAB函数进行画图。如需要改变电极点,在上述命令中修改需要的点即可,方便快捷。利用上一步生成的总平均文件和总平均地形图的命令,可以画出所需要的总平均地形图。可以根据某些特定要求简单的改变某些参数的设置即可。该命令可以很轻易的调整要输出的总平均地形图的数量,地形图的时间点和是否画出总平均差异地形图等。利用这个命令可以容易的画出总平均地形图,与上述总平均波形图一样。

当总平均文件建立以后,如果不利用脚本提取波幅和潜伏期的值,则可以采用第二种方法。所有数据导入letswave中,很方便进行提取,然后导入SPSS,进一步进行方差分析(参见相关文献)。该软件的优点之一是,在进行传统的波幅和潜伏期分析后,还可以进一步进行时间-频率分析;而且这个软件是线性的,无需过多的编程知识,有利于初学者学习。

  • 时间/频率分析

利用每个被试的处理过后的文件,可以进行时间-频率分析。这里主要采用的是EEGLAB自带的newtimef()函数,该函数是进行时频分析的主要函数,这里我们主要采用的是FFT函数,可以对感兴趣的较低的频率进行分析。

总平均时间频率图/ROI频率的时间频率图 在这里,需要辨别两个图,一个是总平均时间-频率图,第二个是感兴趣的频率的时间能量波形图。前者是指根据newtimef()进行参数设置后,计算每个被试每种条件下的时频图,然后进行平均得出的。后者是根据自己研究的兴趣点,只计算和分析自己感兴趣的频带的能量分布图。要画出上述两个重要的图,首先必须建立总平均时间频率文件,这个文件是进行后续数据处理的基础,从中可以提取出自己感兴趣的频带的ERSP的值,进行进一步的ANOVA等操作。

posted @ 2016-10-10 16:50  minks  阅读(8272)  评论(0编辑  收藏  举报