首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从脑电信号中提取ICA成分?

如何从脑电信号中提取ICA成分?
EN

Stack Overflow用户
提问于 2022-03-23 08:12:14
回答 1查看 315关注 0票数 2

我跟踪这个问题的答案本科学学习教程来去除脑电信号中的伪影。它们看起来很简单,我在这里肯定遗漏了一些显而易见的东西。

提取的成分和我的信号长度不一样。我有88个频道的几个小时的录音,所以我的信号矩阵的形状是( 88,8088516)。而ICA的输出为(88,88)。除了如此短,每个组件似乎捕捉非常大,噪音-外观偏转(因此,在88个组件中,只有一对实际上看起来像信号,其余看起来像噪音)。我还希望只有几个部件看起来很吵。我怀疑我在这里做了什么错事?

(通道x样品)的矩阵具有形状(88,8088516)。

示例代码(仅为最低工作目的使用随机矩阵):

代码语言:javascript
复制
import numpy as np
from sklearn.decomposition import FastICA
import matplotlib.pyplot as plt

samples_matrix = np.random.random((88, 8088516))

# Compute ICA
ica = FastICA(n_components=samples_matrix.shape[0])  # Extracting as many components as there are channels, i.e. 88
components = ica.fit_transform(samples_matrix)  # Reconstruct signals
A_ = ica.mixing_  # Get estimated mixing matrix

元件的形状为(88,88)。其中一幅图是这样的:

代码语言:javascript
复制
plt.plot(components[1])

我原以为这些组件是与我原来的如这个问题的答案所示相同长度的时间序列。我真的不知道如何在这一点上推进组件去除和信号重建。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-23 09:09:46

您需要在转置的fit_transform上运行samples_matrix,而不是samples_matrix本身(因此向方法提供一个8088516 x 88矩阵,而不是88x8088516 )。

代码语言:javascript
复制
ica.fit_transform(samples_matrix.transpose())

或者更简单

代码语言:javascript
复制
ica.fit_transform(samples_matrix.T)

这将给你一套8088516×88的信号(88个分量,每个信号只要原始信号)进行绘图。正如我在下面的评论中提到的,由于大矩阵反转等原因,我的设置建议最多不超过64个组件。

为了支持这个建议,我看了一下你的教程,他们设置了玩具问题如下:

代码语言:javascript
复制
n_samples = 2000
time = np.linspace(0, 8, n_samples)

s1 = np.sin(2 * time)  # Signal 1 : sinusoidal signal
s2 = np.sign(np.sin(3 * time))  # Signal 2 : square signal
s3 = signal.sawtooth(2 * np.pi * time)  # Signal 3: saw tooth signal

S = np.c_[s1, s2, s3]
S += 0.2 * np.random.normal(size=S.shape)  # Add noise

S /= S.std(axis=0)  # Standardize data
# Mix data
A = np.array([[1, 1, 1], [0.5, 2, 1.0], [1.5, 1.0, 2.0]])  # Mixing matrix
X = np.dot(S, A.T)  # Generate observations

它给出了一个X.shape of (2000,3)来分离这3个组件,表明这是FastICA方法的首选矩阵格式。

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

https://stackoverflow.com/questions/71583770

复制
相关文章

相似问题

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