我有这行代码来计算和绘制原始脑电图信号的 psd
第一个样本我尝试过,我从以下位置获取了Sub-S01:https://openneuro.org/datasets/ds004367/versions/1.0.2
第二个样本我累了,我从以下位置获取了sub-002:https://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()
对于上面的代码行,我收到错误: TypeError: 无法解压不可迭代的 MNELineFigure 对象
我不知道图表是否应该像这样,并且两者如何在中间给出相同的高信号是没有意义的。
我还想添加以下参数:
dB=True, estimate='power'
但我也遇到错误:TypeError:获得意外的关键字参数 dB,估计 PSD 方法“welch”
因此,如果您知道如何修复错误以及添加参数的另一种方法,那就太好了。谢谢!
第一个错误来自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)
您提到的 db 和 estimate 参数不在这两种方法的语法中,这就是您收到此错误的原因。我建议您查看 MNE 文档。
您可以使用 MNE 之外的任何绘图仪可视化作为 get_data() 的结果获得的 ndarray 格式的数据,但您也可以使用以下命令可视化作为compute_psd() 的结果获得的对象(在我们的例子中为变量 x)MNE 中提供了 plot() 方法。您可以在链接中找到语法和参数。
同时,脑电图上 50 Hz 的峰值当然是有道理的。 EEG 信号的幅度足够低,以至于可以在频谱中看到来自交流电(正好是 50 Hz)的干扰。因此,在处理脑电信号时,必须设计滤波器来抑制该频率。