绘制脑电图信号的 PSD - python

问题描述 投票:0回答:1

我有这行代码来计算和绘制原始脑电图信号的 psd

第一个样本我尝试过,我从以下位置获取了Sub-S01https://openneuro.org/datasets/ds004367/versions/1.0.2

第二个样本我累了,我从以下位置获取了sub-002https://openneuro.org/datasets/ds002718/versions/1.0.5

psds, freqs = raw.compute_psd(method="welch", fmin=1, fmax=100, 
              tmin=0, tmax=120, n_fft=n_fft, 
              picks=picks, verbose=True).plot()

虽然我得到了第一个充足的图表请点击查看图表1

和第二个样本的图表请点击查看图表2

对于上面的代码行,我收到错误: TypeError: 无法解压不可迭代的 MNELineFigure 对象

我不知道图表是否应该像这样,并且两者如何在中间给出相同的高信号是没有意义的。

我还想添加以下参数:

dB=True, estimate='power'

但我也遇到错误:TypeError:获得意外的关键字参数 dB,估计 PSD 方法“welch”

因此,如果您知道如何修复错误以及添加参数的另一种方法,那就太好了。谢谢!

python signal-processing mne-python time-frequency eeglab
1个回答
0
投票

第一个错误来自compute_psd()方法返回单个对象,您试图将其连续分配给两个变量。让我们将结果分配给一个变量:

x = raw.compute_psd(method="welch", fmin=1, fmax=100, tmin=0, tmax=120, n_fft=n_fft, picks=picks, verbose=True).plot()

如果你想获取nd数组的数据,可以使用下面的方法:

psds, freqs = x.get_data(return_freqs=True)
您提到的

dbestimate 参数不在这两种方法的语法中,这就是您收到此错误的原因。我建议您查看 MNE 文档

您可以使用 MNE 之外的任何绘图仪可视化作为 get_data() 的结果获得的 ndarray 格式的数据,但您也可以使用以下命令可视化作为compute_psd() 的结果获得的对象(在我们的例子中为变量 x)

MNE 中提供了 plot() 方法。您可以在链接中找到语法和参数。

同时,脑电图上 50 Hz 的峰值当然是有道理的。 EEG 信号的幅度足够低,以至于可以在频谱中看到来自交流电(正好是 50 Hz)的干扰。因此,在处理脑电信号时,必须设计滤波器来抑制该频率。

© www.soinside.com 2019 - 2024. All rights reserved.