基于EEGLAB的脑电数据预处理
作者:互联网
关于EEGLAB这个脑电处理工具包,对于大多是需要处理脑电数据的人来说都不会很陌生,这里放一个EEGLAB官网的链接;
https://sccn.ucsd.edu/eeglab/index.php
EEGLAB的优势
- 具有便于操作的GUI界面,特别适合初学者学习使用
- 支持导入多种数据格式(可以读取几乎所有格式的EEG信号)
- 对于高密度的数据可以,支持滚动浏览,方便我们查询脑电的数据
- 交互式的绘图功能,方便ERP波形绘制和头皮电压分布地形图绘制等工具
- 基于独立成分ICA的伪迹去除和源分析技术
- 提供多种高级的插件免费下载,满足各种不同分析需求
EEGLAB的安装
EEGLAB使用
脑电数据的预处理步骤
大部分的预处理都会是上面图中的操作,有些需要根据自己需要分析的操作相应的预处理步骤
导入数据
以其中一种脑电数据格式为例
这里使用默认,点击ok
得到下面的这种情况
这些框里面对于的详细数据在matlab里面的变量可以找到
预览波形图
通过这个数据的概览可以方便看到脑电波形图的大概样子,方便初步判断
将鼠标放在脑电波的上面,在右下角就出现相关的信息,通道,幅值信息等
导入电极坐标
这里是将脑电坐标导入进来,需要选择这个eeglab内置的电极坐标模板
我们一般是选择默认的模板,除非你有特殊的需求,或者对于这些模板了解的很清楚,可以选择适合自己的
电极分布图(2D和3D的展示),电极plot2D和3D这个按钮
从左边的图可以看到有一些电极在头部的外面,这是因为这些电极在头部中线以下的位置,所以显示在外面
我们在完成之后电极ok按钮,这样就可以完成电极坐标的导入
这时候你会发现外面展示的信息的channel locations变成了yes
回到matlab的页面就可以找到相关的文件变量查看刚刚导入的电极信息了
删除某一个通道的电极
这里就可以自由选择需要删除的电极删除了
坏导的检查和插值
设置参考的是时候,坏导会影响到数据,需要找出坏导,并且对它进行插值处理
通过绘制光谱图查看有没有异常的电极导
哪些地方可以改动过?
第一行的呈现的东西是数据段的长度,这里我们直接保持一整段的数据,不做任何的修改
第二行的呈现是采取数据的多少画出这个图,这里选择的是50%
第三行呈现的信息是放大显示的是哪个频率的,这里选择的是6 10 22HZ的脑电数据
第四行呈现的是哪个频段范围的power值是多少,这里选择的是2 25
选择完毕之后,点击ok,得到光谱图
那我们主要是看这个图的什么地方呢?
主要就是看各个通道的光谱图,这里每一根彩色的线都是代表通道的图,横轴代表频率,纵轴代表的是 POWER值,我们这里首先很明显在50左右的HZ部分升高,是收到了眼电的干扰,频率越低.power值越高
当你看到某个通道的曲线起伏不定,说明这个通道是可能存在问题的
你用鼠标点击一下绿色的线,会在命令行出现对于通道的名字
查看对应的通道电极
选择通道数和设置对应的频率
下面的折线图和上面的是一个意思,只不过我单单提取出这个通道来详细的查看
左上方是通道的名字和通道的位置
仅仅通过这个通道的曲线变化还不能说明这个通道的图是有问题的,还需要结合右上角的信息
右上角的图,横坐标是时间,纵坐标是幅值信息,每一个横条代表的是一个幅值信息,最右侧的是幅值颜色代表的意思
如果出现异常,就可以看到在一片绿色的地方出现了一点红色的小点,说明在某个时间点上面出现了异常
还有一种可以自动帮你找到坏导的方法
这个软件内置了三种算法(Probability\Kurtosis\Spectrum)可以帮你找到坏导,在这里用红色的线标识出来,并且会在命令行那里告诉你那个电极导是坏导
上面说了很多怎么查找到坏导,那接下来对坏导进行插值处理
使用matlab函数进行坏导插值
这里是用周围电极的均值来进行插值
在EEGLAB里面也带有插值的方法
选择电极导,选择方法,点击ok,这样就能将坏导插值处理了
提取指定的时间段
这里是将切开的片段保存的设置,包括保存的格式,保存的位置等
修改之后我们很明显的看到了数据量变小了
重参考
这里会涉及平均参考,双侧乳突,零参考rest.等方法
1.双侧乳突参考
Tips:这里的Interpolate removed channels可以自动帮你把之前的坏导插值处理
第一个的是平均参考
最下面Retain old reference的勾选了表示的是是否保留参考电极的信息
根据自己需要选择平均还是双侧乳突的参考,然后按照下面的方法勾选,得到结果
这时候我们发现原来的界面发生了变化,注意reference变成了自己选择的方法
平均参考
零参考rest
- 参考电极标准化技术(Reference Electrode Standardization Technique)
- 任何参考下的头表信号Vr都是脑颅内源X产生的,重建等效源X即可重建头表信号V0
- 非真实脑电,变成真实的脑电
实际上是以无穷远的地方作为一个参考
EEGLAB本身不带有这个参考的方法,需要重新下载按照rest插件
数字滤波
设置通过哪些频率的波
Tips:低通的一般设置0.5或者1HZ方面滤掉低频的漂移伪迹
然后使用相同的方法使用高通滤波
一般30HZ以下,包含了我们需要的成分,但是如果后续要做时频分析,可以设置高一点,一般设置30HZ
如果数据存在50HZ的视电干扰的话,可能需要做一个带阻滤波或者限波滤波来进行处理,按照下面的结果设置
注意这里勾选Notch filter the data instead of pass band,说明是带阻滤波或者限波滤波
最好在数据采集的时候就避免视电的信号
重采样
自己选择需要降到的采样频率就可以了
分段和基线校正
基线校正的原因:为了为了减少偏差,偏差产生的原因是由于数据的不稳定,也就是说数据段之间存在基线差异,可能是低频漂移或者是其他的伪迹所引起的,这个时候我们做的基线校正的话,实际上就是从每个时间段去移除平均的基线值,从而去移除掉存在的偏差
其实在我们的很多段的脑电数据中,虽然每一段的基线相对值是一样的,但是绝对值是不一样的,所以我们要通过基线校正来使得他们在同一水平线上
首先要选择你的数据段里面的所有时间标记,需要你选择你需要的哪些段
第二行是你需要选需要的时间窗
上面是分好段之后的操作,执行完之后你会出现到执行基线校正的操作
第一个是比较重要的参数,指的是你选择需要的时间点,一般是刺激出现的前200ms左右,选择好之后,ok
独立成分分析(ICA)
其他的都保持默认的参数,如果你对自己的研究有其他的想法的话可以自己选择对应的算法,前提是你对ICA比较熟悉
这里需要注意的是,前面我们有对坏导进行处理,以及选择重参考的时候,选择了双侧乳突或者平均参考,这里在第二个空需要填写相关的信息
这里是选择双侧乳突的写法
如果是平均参考这里则不用写出62-2,通道数是32
我们在做ICA的时候,是需要所有通道的数据都是有效的数据,如果是坏导,就没有办法合理进行ICA,它本身会自动的根据周围的电极数据均值给这个坏导使用,但是这样就对数据的结果造成很大的影响
在跑完ICA之后,画出相关的图
画出所有电极的缩略图,主要关注前面的成分,这里只关注前面的20个电极
观察哪个成分是有问题的
点击成分图,可以出现下面的的光谱图
右上角的是幅值(纵坐标)和时间(横坐标)图,下面小的是叠加平均图
其他上面已经介绍过了
看下面的图,分辨眨眼的伪迹
如果确定是伪迹,点击accept,然后点击ok
当你做完所有的伪迹去除之后,就可以回到原始GUI界面
自动帮你填上刚刚的伪迹个数
确定删除伪迹成分
在此之前可以点击Plot ERPs对比查看删除前后差异
利用ICA去除眼电的伪迹,水平和竖直的眼电
上面的就是竖直眼电信号,下面的是水平眼电信号
删除坏段
- 肉眼识别比较特别显著差异的数据(目测检查法),适合数据量比较少的情况
手动选择删除
2.绝对阈值法
第一行是电极个数,第二和第三行表示筛选的阈值范围,一般选择-100和100
如果是坏导的部分是会通过这个方法标记出来的,比如下面的图片所示
保存数据
预处理完了之后就可以保存数据了
标签:脑电,参考,数据,选择,坏导,EEGLAB,电极,预处理 来源: https://blog.csdn.net/Kobe123brant/article/details/111631475