手把手教你EEG脑电数据预处理-操作篇
更多技术干货第一时间送达
感谢简书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,点击确定即可
channel locations
channel locations
点击OK之后可以进入下一步查看数据
channel locations info
如果检查到某个电极点的坐标信息为空白(如上图所示),可能是该通道的名称在加载的模板文件中找不到,那么
如果确定该通道是根据国际排布系统来确定的,那可以修改label名称后再点击下方的look up locs来更新通道位置信息,比如上图的VEO改为VEOG,然后更新位置信息之后就可以看到了
如果不是国际排布系统,可以向厂家要电极的坐标位置信息
如果知道该电极点的精确坐标,可以手动输入
双侧乳突的电极点位置可能会根据脑电系统的不同而不同,比如TP9 TP10,A1 A2, M1 M2这三对都是指双侧乳突
更新后的电极点坐标
移除无用电极
此处我们要移除掉两个眼电数据
select data
select data
select data
重参考
此处要将数据转换为双侧乳突平均参考,即TP9,TP10
re-reference
re-reference
重采样
不一定每个数据都需要进行重采样,可根据需要进行。
re-sampling
re-sampling
滤波
此处选择默认的滤波器进行0.1-30Hz的滤波
filter
依次在第一框中填入0.1和第二个框中填入30进行计算,两个一起填代表进行带通滤波,建议分开进行
filter
分段和基线校正
extract epochs
extract epochs
点击OK后会弹出下一个要求基线校正的对话框,默认是event前的数据作为基线来进行校正,点击OK即可。
baseline correction
插值坏导
对数据进行检查,如果发现某个通道的数据坏了,可以用插值的方式来进行校正,此处要校正的通道为FC3,选择插值的通道为它周围的四个电极点,F3,FC1,C3,FC5
第一种方法是代码操作
EEG.data(a,:,:) = mean(EEG.data([b c d],:,:)) ;
其中a代表坏掉的电极点数值,b c d 代表要进行插值平均的电极点数值
如果不确定通道数值是多少,可以通过Plot - channel locations - by name 来进行查看。
画出通道图之后,可以通过单击通道名字来查看通道数值。
channel name
channel name
所以这句代码为
EEG.data(17,:,:) = mean(EEG.data([8 18 26 16],:,:)) ;
这句代码的意思是指,第17个通道的数值,用第8,18,26,16这四个通道数值的平均值来代替。
第二种方法是面板操作,用eeglab的默认算法进行
interpolate electrodes
interpolate electrodes
ICA
使用ICA算法剔除伪迹,此步操作耗时较长
run ICA
因为我们有一个坏通道的数据是用其他通道的数据生成的,相当于我们损失了一个有效通道数据,而ICA默认是在所有通道都是有效数据的情况下进行的,所以此处我们需要进行一些修改,在'extended', 1后面加上'pca', 59,中间用逗号和空格隔开,逗号要用英文输入法下的
run ICA
点击确定之后会出现一个对话框,显示正在进行ICA计算,计算结束后该对话框会消失
run ICA
在跑完ICA之后建议保存当前数据,在进行伪迹剔除操作。这样做可以保证在剔除不当的时候随时回到未剔除的状态下重新进行选择。
此时会保存为eeglab的.set的格式文件
save dataset
在跑完ICA之后就可以用ICA进行伪迹剔除了
reject ICA
选择要画出的成分数,此处我们选择默认状态
plot ICA
eeglab提示我们一张画布只能画下35个图,剩下的会在第二张画布中画出,点击OK即可
plot ICA
plot ICA
此时我们可以对所有的ICA成分进行查看和标记,点击成分数字,会出现该成分的详细情况。如果觉得该成分代表伪迹成分,想要剔除的话,可以先将它标记起来。标记的方式是单机下方绿色的ACCEPT,单击之后会变成红色的REJECT
plot ICA
这一步需要对每一个成分进行查看和判断,然后将想要剔除的成分先标记起来。ICA可以进行眼电伪迹,肌电伪迹,坏导伪迹以及心电伪迹等的辨识与剔除,但是此处我们只进行眼电伪迹的剔除,我们将第一个成分和第13个成分标记起来,标记了的成分数会变成红色。然后点OK。此时还没有进行剔除操作。
mark ICA
除了上面那种方式之外,还可以使用逐个成分画出的方式来查看和标记
plot ICA
plot ICA
剔除ICA成分
remove ICA
eeglab默认两个框都是一样的信息,此时记得把第二个框的信息给清除掉
remove ICA
在接下来的对话框里,我们可以对剔除了ICA成分和未剔除的数据进行比较
check data
红色代表未剔除的数据,蓝色代表剔除后的数据
所有通道的ERP图
从红色框中的部分可以看到,我们还是很有效地剔除了眼动伪迹的
所有通道单个trial的图
检查确认无误后点击accept进行剔除操作
剔除坏段
绝对阈值法
此处我们选择剔除掉超出±100μV的trial。
reject epoch
reject epoch
目视检查法
channel data
逐个trial进行查看,如果发现有伪迹过大的trial想要剔除的话,单击该trial,它会变成黄色。选择完所有trials后,点击下方的reject即可。此处选中的两个trials仅仅作为演示用。
reject trials
保存数据
至此EEG数据的预处理就基本完成了,我们可以再次将这个数据保存起来,以供下一步操作。
更多阅读
letswave7中文教程3:脑电数据预处理-ICA去除伪影
这次我终于弄懂了院士、杰青、长江、百千万人才的区别了以及评选有多难了?评选条件了解一下