点击上面"脑机接口社区"关注咱们
python
更多技术干货第一时间送达算法
感谢简书ID:亚内士多德数据库
受权分享微信
EEG脑电数据预处理-操做篇
关于EEG数据预处理的原理,前面已经介绍过了,你们能够查看《手把手教你EEG脑电数据预处理-原理篇》。下面是亚内士多德分享的操做篇。网络
基本步骤
定位通道位置app
删除无用通道机器学习
滤波svg
分段学习
基线校订测试
重参考
下降采样率
插值坏导
独立主成分分析
剔除坏段
导入数据
选择要导入的数据格式
接下来会弹出一个对话框,是否要对数据进行选择性导入,通常都是所有导入,直接点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去除伪影
此次我终于弄懂了院士、杰青、长江、百千万人才的区别了以及评选有多难了?评选条件了解一下
脑机接口BCI学习交流QQ群:941473018
微信群请扫码添加,Rose拉你进群
(请务必填写备注,eg. 姓名+专业/领域+单位)
长按加群
长按关注咱们
本文分享自微信公众号 - 脑机接口社区(Brain_Computer)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。