前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >letswave7中文教程3:脑电数据预处理-ICA去除伪影

letswave7中文教程3:脑电数据预处理-ICA去除伪影

作者头像
脑机接口社区
发布2020-06-30 18:04:55
9700
发布2020-06-30 18:04:55
举报
文章被收录于专栏:脑机接口脑机接口

ICA/BSS的理论与模型

独立成分分析(ICA)是一种盲信号分离(Blind Signal Separation,BSS)方法。ICA可线性建模如下图所示.

假设X为”通道x时间”的脑电信号,S为”成分x时间”的源信号,A为混合矩阵。ICA的目的是找到混合矩阵A,使每一个分量(每一行)相互独立。根据线性模型,采用独立成分分析方法对脑电信号进行去伪迹处理。

  1. 执行ICA算法得到混合矩阵A;
  2. 自动得到源信号S = pinv(A)×X;
  3. 在S中手动识别伪影成分,通过将相应的行设置为0,我们有S_bar;
  4. 通过移除伪影后的S_bar,我们可以自动得到X_bar= A×S_bar。

信号X_bar是ICA伪影去除的结果。在Letswave7中,步骤2和步骤4可以自动完成,其中pinv(A),也称为混合矩阵,是矩阵A的伪逆矩阵。步骤1 (computer ICAmatrix)和步骤3 (identify artifact component)需要手动执行。因此,在Letswave7中,我们需要两个步骤来完成ICA的移除伪影工作。

第5步:计算ICA矩阵

在管理模块数据列表中选择“chan_interpbutt sel_chan sub093”数据集,在菜单中点击Process->Spatial filters(ICA/PCA)->Compute ICA matrix

在Batch模块中,选择decide byuser 成分数量,设置Components Number(成分数量)为40。

[Tips:成分数量可以自己设定,一般小于通道数。]

点击Run按钮以进行不良电极插值。[注,这里运行需要一些时间,所以耐心等待]。

一个名为“icachan_interp butt sel_chan sub093”的新数据集将出现在管理器模块的数据列表中。

第6步:识别伪影成分

在得到ICA矩阵、混合矩阵A和逆混合矩阵pinv(A)后,我们需要人工识别其伪影分量。

在管理器模块数据列表中选择数据集“ica chan_interp buttsel_chan sub093”,在菜单中点击Process->Spatial filters(ica /PCA)->Applyica /PCA Spatial filter

我们将看到用于手动删除空间过滤器成分的界面。

在这个界面中,不同的信息用不同的颜色来标记。黑色表示原始信号X,蓝色表示源信号S,橙色表示过滤后的信号X_bar。利用左侧面板中的黑色列表框,我们可以选择数据集、epoch和通道来检查原始信号X作为中间面板中的黑色曲线。接下来,我们可以选择左侧面板中蓝色的成分,来检查底部蓝色面板中源S中每个成分的时间/频率/空间特征。在我们将成分标识为而言之后,我们可以在右边的橙色面板中选择它们。相应地,中间面板中的橙色曲线将显示经过过滤的信号X_bar。我们可以立即检查ICA过滤器的结果。

在本研究中,我们将成分1识别为眨眼伪影。头皮地形图显示眼睛附近存在“等效电流偶极子”(ECD)。时域波形呈尖峰状,频域功率集中在低频(<5Hz),说明该独立分量为眨眼伪影。

Comp1的时域波形图

Comp1的头皮地形图和频域功率图

Comp2的时域波形图

Comp2的头皮地形图和频域功率图

当我们通过选择右侧面板中的comp1移除该成分后,与中间面板中的橙色曲线X_bar和黑色曲线X相比,眨眼(blink)伪影已经被有效地移除。同样,成分2为伪像,具有侧向眼动。可以从头皮地形图上观察到清晰的证据。

在右边面板中选择橙色的comp1, comp 2,然后点击OK按钮。

一个名为sp_filterica chan_interp butt sel_chan sub093的新数据集将出现在管理器模块的数据列表中,这是ica去除伪影后的结果。

讨论

为了在Letswave7中运行ICA,需要讨论几件事情。

在菜单中,ICA矩阵计算有两项,分别是Compute ICA matrix和Compute ICA matrix(merged)。它们功能相似,但输入和输出不同。如果选择了多个数据集,则ComputeICA matrix将分别计算ICA矩阵。而Compute ICA matrix(merged),letswave7首先将所有选定的数据集合并在一起,然后为所有数据集计算一个公共ICA矩阵。

在预处理中还应讨论ICA的操作顺序和分割。由于ICA是一种用于去除伪影的数据驱动方法,因此我们需要足够的数据来运行ICA。而过多的数据量会大大增加计算时间,但对结果准确性的提高是有限的。通常情况下,我们在分割后运行ICA,因为分割可以缩短数据长度,去除不相关的噪声。然而,在P300的研究中,试验之间的重叠非常严重,分割后运行ICA会不必要地增加计算时间。因此在这个示例里,我们先运行ICA,然后在分割。

在本示例中,我们通过选择成分数量为40来运行ICA。通常,可以分离的独立分量的最大数目等于原始信号X中的通道数目。在本例中,由于通道数64已经足够大,所以我们将独立组件的数量设置为40就可以了

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-06,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 脑机接口社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第5步:计算ICA矩阵
  • 第6步:识别伪影成分
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com