这篇博客的内容是根据洪城脑科学课题组的视频记录的,感谢老师提供的学习资料和讲解。
一、导入脑电数据
原始脑电数据下有三个文件,.eeg,.vhdr,.vmrk,导入.vhdr格式的。导入后保存.set格式文件。
二、电极定位
- file->load existing dataset,选择第一步中的.set。
- edit->channel locations
默认使用的电极是标准的10_05系统
如果做溯源分析选择mni,正常分析选择besa(结合ERP)
选择plot 2-D画图
一共64个电极只展示62个电极,有两个没有成功定位。HEO和VEO没有定位。完成,保存。
三、剔除无用电极
无用电极是指在整个脑电信号处理的过程中,没有用的电极,比如HEOG、VEOG、M1、M2。
edit->select data
四、滤波
由于50hz的干扰以及一些高频和低频的噪声的存在,预处理需要进行滤波。
脑电信号是复合信号,把脑电拆成不同频域的脑电,把其中50HZ的脑电去掉。
滤波通常有四种:低通滤波,高通滤波,带通滤波,带阻滤波。
wc是设置一个频率值,在设定的频率值开始衰减或者增强。
- 低通滤波:低于wc的开始衰减,30-100HZ
- 高通滤波:假设设定的值是1,将1处的设置为一半,后续的顺利通过,0.1-1HZ
- 带通滤波:前面设定一个值,后面设定一个值,中间的地方保留
- 带阻滤波:前面设定一个值,后面设定一个值,中间的地方肯定消失,49-51HZ/48-52HZ
带阻滤波一定要选Noth
五、降采样
采样率 = 采样点个数/单位时间
采一个点的时间=1/采样率
Frames per epoch:每一段有多少个采样点
sampling rate:采样率
epoch end(sec): 采样点从1开始,时刻点从0开始
只要采样率高于感兴趣频段的4倍以上,就能分析,所以脑电的采样率一般在250-1000HZ。降采样最大的好处是减小数据量,提高计算速度,不是必须的。
- Tool->Change sampling rate
- 设置新的采样率
降采样后的结果
六、分段和基线矫正(ERP)
1.分段
- tools->extract epochs
- 在脑电中,每给一个刺激,就会打一个marker,以下图为例,两个刺激编号10和20,如果反应是对的,编号200,反应错误编号100.
如何去除错误分段,保留正确分段?
edit->select epochs or events
2.基线矫正
分段后的信息
画图
七、插值坏导和剔除坏段
1.插值坏导:Spehrical算法
- tools->interpolate electrodes
2.剔除坏段:直接删除
可以在matlab中查看是否选中了两段
这时候epoch变成98
八、重参考
重参考:在分析数据的时候,有时候需要转换参考电极的位置。常用的重参考方式有双侧乳突平均参考:将两个乳突数据的平均值作为参考数据,或者是全脑平均参考:将全脑所有数据的均值作为参考数据的方法。
- tools->re-reference the data
第一个全脑平均(32导以上),第二个双侧乳突(32导以下)。
九、独立成分分析 | ICA
独立成分分析的目的是去除眼电、心电等伪迹。使用ICA分解原始数据后,将分离的独立成分划分为伪迹相关成分和神经活动相关成分,剔除被标记为伪迹的相关成分。
- tools->decompose data by ICA
- 原来64个通道,现在60个,补上pca
十、剔除伪迹和坏段
1. 剔除伪迹
- tools->classify components using ICLabel->Label components
1:59是有59个成分,频率2-50,√将事件画出来,画出后的效果,点击下面序号可以查看
分析每个事件的概率是多少,比如这个是97.8%的眼动
新版ICALabel的功能: - tools->classify components using ICLabel->flag components as artifacts(相当于做标记)
- tools->remove components from data
2. 剔除坏段
脑电信号主要是100毫伏,所以主要是去除超过100毫伏的
- tools->reject data epochs
手动检查
使用 ‘Plot > Channel data(scroll)’ 选项
逐个trial进行查看,如果发现有伪迹过大的trial想要剔除的话,单击该trial,它会变成黄色。选择完所有trials后,点击下方的 ‘Reject’ 即可。
由于我的matlab 2021b没有reject data epochs,然后在网上找到了一个很好的参考链接,分享给大家。MATLAB脑电数据处理精要