我有一些以 256Hz 采样的 64 通道脑电图数据,我正在尝试对每个通道进行时频分析并绘制频谱图。
数据存储在 NumPy 3d 数组中,其中一个维度的长度为 256,每个元素包含所有采样时间点的微伏读数(每个数据通道的总长度为 1 秒)。
需要明确的是:我的 3D 阵列是 64 256 913(电极 * 电压 * 试验)。试验只是一次试验的一次试验。所以我想做的是从一次试验中取出一个电极,以及整个一维电压矢量,然后创建一个时频频谱图。例如,我想从 data[0,:,0] 创建一个频谱图。
对于每个电极,我想要一个图,其中 y 轴是频率,x 轴是时间,颜色/强度是功率
我试过在 python 中使用它:
from matplotlib.pyplot import specgram
#data = np.random.rand(256)
specgram(data, NFFT=256, Fs=256)
这给了我一些看起来像这样的东西:
马上,这对我来说看起来不正确,因为轴范围不正确
此外,当我对所有 EEG 通道运行相同的代码时,我的所有数据都会得到完全相同的图(即使我已经验证每个通道的数据都不同)
我对信号处理还很陌生,在我的数据布局方式或我的功能使用方式上是否有什么地方出错了?