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