首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从包含脑电数据的三维阵列中提取PSD特征

从包含脑电数据的三维阵列中提取PSD特征
EN

Stack Overflow用户
提问于 2022-02-05 20:59:50
回答 1查看 198关注 0票数 -1

我是一个新的脑电信号处理,我正在尝试实现一个功能,计算私营部门司的特点使用Python。

此函数的输入是一个名为“试验”的NumPy 3d数组,其大小(240,2047,16)包含以下形式的脑电数据:(试验x时间x通道)

我需要提取PSD的特点,为整个试验,为每个通道,并返回一个数组的所有结果。

Fs为512 is

到目前为止,这是我的代码:

代码语言:javascript
复制
from scipy import signal

def PSD(trials):
    psd = []
    fs = 512.
    
    for i in range(len(trials)):
        for j in range(len(trials[i])):
            f, Pxx = signal.welch(trials[i][j], fs, nperseg = 16)
            psd.append(Pxx)
        

    psd = np.array(psd)

    return psd

是否有更有效的方法来实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-05 22:02:00

根据文献资料 of scipy.signal.welch,默认情况下,PSD是在阵列的最后一个轴上计算的。

这意味着你可以:

代码语言:javascript
复制
f, Pxx = scipy.signal.welch(trials, fs=512.0, nperseg=16)

然后Pxx是形状的(240, 2047, 9)。在示例代码中,psd具有形状(491280, 9)。如果您希望您的结果采用这种形状,只需对数组进行整形:

代码语言:javascript
复制
Pxx = Pxx.reshape(491280, 9)

此外,在您的示例代码中,您将示例频率附加到psd而不是PSD,因此您当前的代码不返回PSD。

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

https://stackoverflow.com/questions/71002102

复制
相关文章

相似问题

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