欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

基于EEGLAB的脑电数据预处理

发布时间:2023/12/31 69 豆豆
生活随笔 收集整理的这篇文章主要介绍了 基于EEGLAB的脑电数据预处理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

关于EEGLAB这个脑电处理工具包,对于大多是需要处理脑电数据的人来说都不会很陌生,这里放一个EEGLAB官网的链接;

https://sccn.ucsd.edu/eeglab/index.php

前言:EEGLAB的优势

  • 具有便于操作的GUI界面,特别适合初学者学习使用
  • 支持导入多种数据格式(可以读取几乎所有格式的EEG信号)
  • 对于高密度的数据可以,支持滚动浏览,方便我们查询脑电的数据
  • 交互式的绘图功能,方便ERP波形绘制和头皮电压分布地形图绘制等工具
  • 基于独立成分ICA的伪迹去除和源分析技术
  • 提供多种高级的插件免费下载,满足各种不同分析需求

1 EEGLAB的安装

1.1 EEGLAB使用

2 脑电数据的预处理步骤


大部分的预处理都会是上面图中的操作,有些需要根据自己需要分析的操作相应的预处理步骤

2.1 导入数据

以其中一种脑电数据格式为例



这里使用默认,点击ok
得到下面的这种情况

这些框里面对于的详细数据在matlab里面的变量可以找到

2.2 预览波形图


通过这个数据的概览可以方便看到脑电波形图的大概样子,方便初步判断

将鼠标放在脑电波的上面,在右下角就出现相关的信息,通道,幅值信息等

2.3 导入电极坐标

导入了电极坐标之后就可以让eeglab读取到每一个chanel的名称和数值,然后再通过eeglab里面默认的脑电位置排布文件,将具体的脑电即位置按照模板排布,这样eeglab就能具体知道位置了

这里是将脑电坐标导入进来,需要选择这个eeglab内置的电极坐标模板

我们一般是选择默认的模板,除非你有特殊的需求,或者对于这些模板了解的很清楚,可以选择适合自己的

电极分布图(2D和3D的展示),电极plot2D和3D这个按钮

从左边的图可以看到有一些电极在头部的外面,这是因为这些电极在头部中线以下的位置,所以显示在外面

我们在完成之后电极ok按钮,这样就可以完成电极坐标的导入
这时候你会发现外面展示的信息的channel locations变成了yes
回到matlab的页面就可以找到相关的文件变量查看刚刚导入的电极信息了

2.4 删除某一个通道的电极



这里就可以自由选择需要删除的电极删除了

2.5 坏导的检查和插值

一般先进行数据不好的导联插值

设置参考的是时候,坏导会影响到数据,需要找出坏导,并且对它进行插值处理
通过绘制光谱图查看有没有异常的电极导



哪些地方可以改动过?
第一行的呈现的东西是数据段的长度,这里我们直接保持一整段的数据,不做任何的修改

第二行的呈现是采取数据的多少画出这个图,这里选择的是50%

第三行呈现的信息是放大显示的是哪个频率的,这里选择的是6 10 22HZ的脑电数据

第四行呈现的是哪个频段范围的power值是多少,这里选择的是2 25
选择完毕之后,点击ok,得到光谱图


那我们主要是看这个图的什么地方呢?

主要就是看各个通道的光谱图,这里每一根彩色的线都是代表通道的图,横轴代表频率,纵轴代表的是 POWER值,我们这里首先很明显在50左右的HZ部分升高,是收到了眼电的干扰,频率越低.power值越高

当你看到某个通道的曲线起伏不定,说明这个通道是可能存在问题的

你用鼠标点击一下绿色的线,会在命令行出现对于通道的名字

2.6 查看对应的通道电极



选择通道数和设置对应的频率

下面的折线图和上面的是一个意思,只不过我单单提取出这个通道来详细的查看

左上方是通道的名字和通道的位置

仅仅通过这个通道的曲线变化还不能说明这个通道的图是有问题的,还需要结合右上角的信息

右上角的图,横坐标是时间,纵坐标是幅值信息,每一个横条代表的是一个幅值信息,最右侧的是幅值颜色代表的意思

如果出现异常,就可以看到在一片绿色的地方出现了一点红色的小点,说明在某个时间点上面出现了异常

还有一种可以自动帮你找到坏导的方法


这个软件内置了三种算法(Probability\Kurtosis\Spectrum)可以帮你找到坏导,在这里用红色的线标识出来,并且会在命令行那里告诉你那个电极导是坏导

上面说了很多怎么查找到坏导,那接下来对坏导进行插值处理
使用matlab函数进行坏导插值

这里是用周围电极的均值来进行插值
在EEGLAB里面也带有插值的方法


选择电极导,选择方法,点击ok,这样就能将坏导插值处理了

2.8 提取指定的时间段




这里是将切开的片段保存的设置,包括保存的格式,保存的位置等

修改之后我们很明显的看到了数据量变小了

2.9 重参考

我们实验采集到的数据就是因为定位了参考电极,才能得到数据,数值就是电极所在的位置和参考电极之间的电位差

一般脑电记录的时候参考电极有鼻尖参考,CZ或者头顶中央参考,单侧乳突,双侧乳突参考,全脑平均参考

在脑电数据分析的时候,我们会想要转换参考点的位置,因为不同的位置参考,会对数据产生影响,比如记录时候采用的是CZ或者顶部中央参考,自然地,距离CZ比较近的电极点,记录的电位差会非常小,距离远的又会非常大,大小的差异并不是因为认知活动产生的,是由于记录方式产生的,为了能减小这些记录带来的误差,一般变换为双侧乳突参考

这里会涉及平均参考,双侧乳突,零参考rest.等方法

2.10 双侧乳突参考


Tips:这里的Interpolate removed channels可以自动帮你把之前的坏导插值处理
第一个的是平均参考
最下面Retain old reference的勾选了表示的是是否保留参考电极的信息
根据自己需要选择平均还是双侧乳突的参考,然后按照下面的方法勾选,得到结果

这时候我们发现原来的界面发生了变化,注意reference变成了自己选择的方法

2.10.1 平均参考

2.10.2 零参考rest
  • 参考电极标准化技术(Reference Electrode Standardization Technique)
  • 任何参考下的头表信号Vr都是脑颅内源X产生的,重建等效源X即可重建头表信号V0
  • 非真实脑电,变成真实的脑电
    实际上是以无穷远的地方作为一个参考
    EEGLAB本身不带有这个参考的方法,需要重新下载按照rest插件

2.11 数字滤波

数字滤波分为高通滤波、低通滤波、带通滤波和凹陷滤波

高通滤波:高于某一频率的信号可以通过,但是低于这个频率的信号会被衰减过滤掉
低通滤波:跟高通是相反的,低于某些频率的可以通过,高于的不行

因此总结上面两个方法,高通滤波再输入数值的时候,是一个比较小的数值,低通滤波则是一个较大的数字

带通滤波:指的是在某个频率段范围内的信号可以通过,但这个频率范围以外的信号就会被保留下来,这个通常是用来去除50HZ视电的干扰

因为滤波不能完全的过滤出我们想要的频段,比如30HZ的低通滤波,并不是说30HZ以外的信号就通通被过滤掉了,而是以30HZ为截止频率,高于这个截止频率的信号会被逐渐衰减

比如上面这个图,横轴为频率,纵轴为增益系数,在截止频率f的左边,最开始的增益系数都是1,指的是信号都乘以1,被完整的保留了下来,而且在接近截止频率的一定范围内,增益系数开始逐渐下降,直到我们的截止频率f处,增益系数刚刚好是0.5,指的是经过了截止频率为f的低通滤波之后,f这个频段的数据有50%被过滤,而50%被保留了下来。随后增益系数再逐渐下降,信号被逐渐衰减,直到接近于0

因此,我们有时候会看到数据在做了30HZ的低通滤波之后,还会再做一个50HZ的凹陷滤波,就是因为,并不是做了30HZ的低通滤波就能够完全把30HZ以上的信号全部过滤掉,而50HZ的干扰又是非常强的,所以最好还是再做一个50HZ的凹陷滤波

2.11.1 凹陷滤波:为了能完全的过滤掉信息所做的一次滤波


设置通过哪些频率的波

Tips:低通的一般设置0.5或者1HZ方面滤掉低频的漂移伪迹

然后使用相同的方法使用高通滤波
一般30HZ以下,包含了我们需要的成分,但是如果后续要做时频分析,可以设置高一点,一般设置30HZ

如果数据存在50HZ的视电干扰的话,可能需要做一个带阻滤波或者限波滤波来进行处理,按照下面的结果设置

注意这里勾选Notch filter the data instead of pass band,说明是带阻滤波或者限波滤波
最好在数据采集的时候就避免视电的信号

2.12 重采样



自己选择需要降到的采样频率就可以了

2.13 分段和基线校正

分段

因为我们的数据是从实验开始到实验结束记录的,所以很多时候会有冗余的数据,需要根据实际情况切开我们需要的片段

基线校正的原因:为了为了减少偏差,偏差产生的原因是由于数据的不稳定,也就是说数据段之间存在基线差异,可能是低频漂移或者是其他的伪迹所引起的,这个时候我们做的基线校正的话,实际上就是从每个时间段去移除平均的基线值,从而去移除掉存在的偏差

其实在我们的很多段的脑电数据中,虽然每一段的基线相对值是一样的,但是绝对值是不一样的,所以我们要通过基线校正来使得他们在同一水平线上

首先要选择你的数据段里面的所有时间标记,需要你选择你需要的哪些段
第二行是你需要选需要的时间窗


上面是分好段之后的操作,执行完之后你会出现到执行基线校正的操作

第一个是比较重要的参数,指的是你选择需要的时间点,一般是刺激出现的前200ms左右,选择好之后,ok

2.14 独立成分分析(ICA)



其他的都保持默认的参数,如果你对自己的研究有其他的想法的话可以自己选择对应的算法,前提是你对ICA比较熟悉

这里需要注意的是,前面我们有对坏导进行处理,以及选择重参考的时候,选择了双侧乳突或者平均参考,这里在第二个空需要填写相关的信息

这里是选择双侧乳突的写法

如果是平均参考这里则不用写出62-2,通道数是32

我们在做ICA的时候,是需要所有通道的数据都是有效的数据,如果是坏导,就没有办法合理进行ICA,它本身会自动的根据周围的电极数据均值给这个坏导使用,但是这样就对数据的结果造成很大的影响

在跑完ICA之后,画出相关的图


画出所有电极的缩略图,主要关注前面的成分,这里只关注前面的20个电极


观察哪个成分是有问题的
点击成分图,可以出现下面的的光谱图

右上角的是幅值(纵坐标)和时间(横坐标)图,下面小的是叠加平均图
其他上面已经介绍过了
看下面的图,分辨眨眼的伪迹

如果确定是伪迹,点击accept,然后点击ok

当你做完所有的伪迹去除之后,就可以回到原始GUI界面


自动帮你填上刚刚的伪迹个数

确定删除伪迹成分
在此之前可以点击Plot ERPs对比查看删除前后差异

2.14.1 利用ICA去除眼电的伪迹,水平和竖直的眼电


上面的就是竖直眼电信号,下面的是水平眼电信号


2.15 删除坏段

  • 肉眼识别比较特别显著差异的数据(目测检查法),适合数据量比较少的情况

    手动选择删除

    2.绝对阈值法


    第一行是电极个数,第二和第三行表示筛选的阈值范围,一般选择-100和100

    如果是坏导的部分是会通过这个方法标记出来的,比如下面的图片所示
  • 3 保存数据

    预处理完了之后就可以保存数据了

    总结

    降低采样率

    采样率的单位式HZ,1000HZ代表着1s会采样1000次,在后期的时候我们想要降低采样率,降到500HZ,或者250HZ,减少数据量,提高计算速度,没有其他作用,所以这并不是必须的步骤

    需要注意的是:

  • 降低采样率是在滤波之后,因为采样率降低会使得我们丢失高频信息,为了不使数据失真
  • 负荷采样定理:是我们想要分析的波段频率的3,4倍以上
  • 总结

    以上是生活随笔为你收集整理的基于EEGLAB的脑电数据预处理的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。