首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ICA去除脑电信号中的眨眼

用ICA去除脑电信号中的眨眼
EN

Stack Overflow用户
提问于 2018-10-30 19:37:44
回答 1查看 3K关注 0票数 4

我是新的科学学习,但我试图消除眼睛眨眼(噪音高峰)在一个单一的脑电图通道。我在互联网上搜索过,但只看到更复杂的读物使用MNE,PyEEG或其他Python模块。我只想要一些简单的,只依赖滑雪的东西。这是我的代码:

代码语言:javascript
复制
#The channel containing some eye-blinks
X = f1ep1_data[:,[4]]

#run ICA on signal
ica = FastICA(n_components=2)
ica.fit(X)

#reconstruct signal with independent components
components = ica.fit_transform(X)
X_restored = ica.inverse_transform(components)

fig1 = plt.figure()
plt.subplot(3,1,1)
plt.title("Original signal")
plt.plot(f1ep1_timescale, X)

plt.subplot(3,1,2)
plt.title("Components")
plt.plot(f1ep1_timescale, components)

plt.subplot(3,1,3)
plt.title("Signal Reconstructed")
plt.plot(f1ep1_timescale, X_restored)
plt.draw()

我所期待的是一个分离的两个组成部分,一个清洁的脑电图信号和眨眼。我搞不懂到底是什么问题。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-13 13:09:14

如果您处理的是单通道EEG,以下可能是一种易于实现的方法:

1)使用简单的基于阈值的峰值检测来检测信号x中的闪烁(您可能需要通过查看信号中的几个眨眼实例来判断它)。来自Neurosky,Muse等的设备带有API来检测眨眼。如果需要的话,你可以使用。

2)取对应于眨眼(xb)的帧。在上面放一条平滑的线(xbs)。

3)从眨眼(xb)中减去平滑线(xbs),并将信号的平均值加到其中。让我们将其称为xbc。

4)用xbc代替原信号x中的xb。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53071709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档