脑电数据预处理看这篇就够了

32 篇文章 20 订阅
9 篇文章 12 订阅

01 脑电数据分析预处理步骤

1.(Import data)导入数据

2.(Channel locations)电极定位

3.(Select data)剔除无用电极

4.(filter the data)滤波

5.(Extract epochs and Remove baseline)分段和基线校正

6.Artifact rejection (bad channel and epoch) (剔除坏段、插值坏导)

7.(Independent component analysis, ICA)独立成分分析

8.(Remove components)剔除伪迹成分

9.(Reject extreme values)自动去除极端值

10.(Re-reference)重参考

       本课件没有提到的中间对话框绝大多数默认选择OK。


02 脑电数据分析预处理详细步骤

0.(Start EEGLAB)启动EEGLAB

       关于版本15版matlab后使用eeglab14_1_2b,之前版本推荐eeglab13_0_0。本手册基于

eeglab13_0_0

(1)启动matlab

(2)将eeglab文件夹添加至路径(全英文路径!)

Set path→Add with subfolders  选择eeglab文件夹点击 save后点击close

(3)command window输入eeglab以后弹出eeglab界面

1.(Import data)导入数据

(1)File→Import data

(本教程以插件自带的bp设备采集的.vhdr格式文件为例,有需要可加微信17373158786获取示例数据)

(2)File→load existing data(导入EEGLAB处理后的数据文件,文件格式为.set)

2.(Channel locations)电极定位

Edit→Channel locations,如果你的脑电数据中包括了电极分布文件就会显示各电极的位置信息。

操作截图如下:

再点击Plot-2D画出电极分布图。

3.(Select data)剔除无用电极

Edit→Select data

       无用电极指的是在整个脑电信号处理的过程(包括画地形图)中没有用的电极,一般来说活动电极是没用的(做参考和特殊用途的除外) 。如果通道全部保留可以跳过此步。

4.(filter the data)滤波

Tools→Filter the data→Basic FIR filter→(1Hz Lower Edge of the frequency pass band)→Overwrite it in memory

Tools→Filter the data→Basic FIR filter→(30Hz Higher Edge of the frequency pass band)→Overwrite it in memory

几种常见的滤波方式

高通滤波:设置一个下限,滤除这个下限以下的噪声,比如我们设置一个0.1Hz

低通滤波:设置一个上限,滤除这个上限以上的噪声,比如我们设置一个40Hz

带通滤波:同时设置上下限,通过这个上下限之间的信号,比如0.1~40Hz

凹陷滤波:设置一个范围,把这个范围以内的噪声直接去掉,比如常见的就是48~52Hz

        ERP常见的滤波范围一般是0.1~40Hz,也是本例中采用的滤波范围,需要注意,越低的高通滤波下限,则运算量越大

        若需要做时频或者频域,则可以考虑把滤波范围扩展到0.1~70Hz,或者0.5~70Hz,甚至0.5~100Hz,简单地说就是当涉及到频域信息的时候,就需要更高的低通滤波,以囊括更多的高频信息

本例中带通滤波的操作:

补充:凹陷滤波(消除工频干扰)

       通常0.1~40Hz带通滤波后并不需要进行50Hz凹陷滤波。这在更宽的滤波范围中是必需的操作。

当然带通滤波也不是除了频段外的频率成份完成被消除,为了实验数据更好可以做50hz陷波滤波。

带通滤波40hz低通是为了去除波形中的毛刺,0.1hz高通是为了使波形更平稳。

       关于凹陷滤波的范围选取,是49~51Hz,或是48~52Hz的选取,可以持续关注我们的更新。

5.(Extract epochs and Remove baseline)分段和基线校正

Tools右Extract epochs, 弹出如下窗口

在这里,我们不需要把每个epoch 的limit 进行更改。这里每个epoch 时间长度为3s。

6.Artifact rejection (bad channel and epoch) (剔除坏段、插值坏导)

       剔除坏段就是把表现不好的trail 直接去掉,但是ERP分析希望是trail多一些好。尽量不要剔除坏段。

Plot→Channel data scroll→选中某坏段点击reject

剔除坏段不得超过总trail数的10%

       插值坏导就是,因为EEG信号空间分辨率低,每一个通道应该和周围通道的输出相似,所以说可以用周围的几个通道的输出来代替某个表现不佳的通道。当然这是对应通道较多的脑电设备,如果通道较少建议更换电极,调整电极接触头皮的松紧度,而不是用插值坏导。再或者通过先验知识,用一个大致相同的通道来代替。

第一种方法是代码操作:

EEG.data(a,:,:)=EEG.data([b,c,d],:,:)。

其中a代表坏掉的电极点数值,b c d 代表要进行插值平均的电极点数值。

例如:EEG.data(17,:,:)=EEG.data([8,18,26,16],:,:)

第二种方法是画板操作:

第二种方法是面板操作,用eeglab的默认算法进行

7.(Independent component analysis, ICA)独立成分分析

       研究人员提出还有一种更好的选择,就是将ICA方法应用于多通道EEG记录,并通过消除人为因素对头皮传感器的影响,从EEG记录中删除各种伪影。研究结果表明,ICA可以有效地检测,分离和消除EEG记录中的各种伪迹,其结果与使用基于回归或基于PCA的方法获得的结果相比更具有优势。

Tools→RUN ICA (插值坏导后用到pca)

       脑电是由源信号和噪声混合而成的,如果我们能将源信号和噪声源分开,再将源信号重构即可达到脑电信号去噪的效果。ICA就是得到构成脑电信号的所有的源。

       一般源的个数要小于通道的个数。使用插值坏导需用到pca,最大成分为总电极导数减去插值坏导数。

     接下来是茶歇时间,依据电脑性能的不同可能会有10~30分钟

8.(Remove components)剔除伪迹成分

识别标记噪声成份

Tools→Reject data using ICA→Reject component by map

这些源会按顺序排列,对脑电信号影响大的会排在前面,影响小的会排在后面

最常见的噪声

眨眼

1.前端分布(颜色深,大红大蓝)

2.小方块相对集中

3.成份排序靠前

4.随机分布

5.低频能量高(眨眼频率低)

眼漂

1. 前端两侧分布,红蓝相对(眼漂时左右不对称)

2. 长条状,红蓝相间

3. 一般成份排行前20,在眨眼之后

4. 低频能量高(眼漂同样频率低)

工频干扰

1.50Hz左右能量分布高

2.分布在地线周围

头动

1.四周能量分布

2.在单个trail有非常明显的漂移(plot data scroll)

心电

1.后端分布

2.时间短促有力

(3)剔除噪声成份

Tools→Remove components

此处示例为剔除成分1和2

注:剔除ICA的原则是不确定的就不去,不要过去有数据洁癖

9. (Reject extreme values)自动去除极端值

       这一步的目的是自动去除一些在前面没有注意到的伪迹段,理论依据是生理信号都不会超过正负100微伏,所以卡一个阈值,去除超过正负100微伏,甚至更严格的会选取80微伏的数据段,操作方式如下

       若这一步拒绝太多的伪迹段,则要考虑在回到前面的步骤剔除更多的伪迹成分

10.(Re-reference)重参考

重参考的主要目的是为了与前人的文献进行对比

做实验的时候一般会选择一个足够稳定的点作为参考点

分析数据的时候就会换个参考点,为了与前人的文献做对比

常见的参考方式包括

双侧乳突:大部分的ERP实验,TP9/TP10,M1/M2,A1/A2

图表 1双侧乳突

鼻尖参考:听觉实验可能会采用这个参考,现实就是鼻尖参考非常难实现

全脑平均:出现在全脑分析的时候,比如功能连接,比如溯源,需要预先删除掉不在头皮的电极点,还有一些坏电极

零参考:出现在全脑分析中,还有溯源分析中,主要北师大的人在用,需要使用独立的插件实现,笔者实测发现结果波形与全脑平均参考并无显著的差别

为什么重参考要放在最后面:

1,采用的参考点质量如果不好,可以及时发现,否则若在一开始就进行了重参考,就看不到参考点的数据质量

2,如果参考点只是有一些问题,这个噪声可以去除,能够在重参考之前及时改进数据质量

3,如果后期需要转其它的重参考,会更加的方便,而不需要重做预处理

关于参考点的一些tips:

1,双侧乳突是不能插值的,因为采集的数据不是同类型的,正常电极点采集的是头皮的信号,而乳突采集的是皮肤和颅骨信号

2,参考点的质量是非常重要的,一定要做实验的时候保证参考点的质量

3,不同参考点的选择,依赖对前人当前领域惯例

4,不同的参考方式,不能够对比数据分析的结果

重参考的操作方式:


03 结语

       到此,预处理就算正式完成,但是还是需要重新打开数据观察数据状况,避免不必要的意外发生。

  有更多脑电学习需求可联系工程师 17373158786 进行咨询哦~

  • 52
    点赞
  • 468
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
脑电数据的预处理是为了去除噪声、伪迹和其他干扰,以提取出有效的脑电信号。在Python中,可以使用多种库和工具进行脑电数据的预处理,下面介绍一些常用的方法。 1. 导入库和数据:首先,你需要导入一些常用的库,如numpy、scipy和matplotlib,并加载你的脑电数据。可以使用一些库(如mne)来读取常见的脑电数据格式(如EDF、BDF等)。 2. 去除噪声:去除噪声是预处理的关键步骤之一。常用的方法包括滤波和去伪迹。滤波可以使用数字滤波器(如Butterworth滤波器)来去除低频和高频噪声。去伪迹可以通过一些算法(如平均参考、CAR参考等)来减少电极间的共模噪声。 3. 剔除伪迹:伪迹是由于运动或其他干扰引起的数据畸变。可以使用运动估计算法(如ICA)来识别和剔除这些伪迹。 4. 修正偏移:脑电信号可能存在偏移,即信号整体上升或下降。可以通过减去信号均值或进行基线校正来修正偏移。 5. 降采样:对于长时间的脑电数据,可以考虑将数据进行降采样,以减少计算负担。 6. 分割数据:根据实验设计,可以将脑电数据分割成不同的试验段或事件段,以便进一步分析。 这只是脑电数据预处理的一些基本步骤,具体的方法和流程可能会根据数据类型和研究目的而有所不同。你可以根据实际需求选择适合的方法和工具进行预处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值