首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的时频谱图

Python中的时频谱图
EN

Stack Overflow用户
提问于 2015-08-07 11:10:39
回答 1查看 9.4K关注 0票数 2

我有大约64通道的EEG数据,采样频率为256 at,我试图对每个通道进行时频分析,并绘制一个谱图。

数据存储在NumPy 3d阵列中,其中一个维度的长度为256,每个元素包含一个在所有采样时间点上的微伏特读取(每个数据通道的总长度为1秒)。

需要澄清的是:我的3D阵列是64_256_913 (电极*电压*试用)。这个试验只是一个实验的单一试验。所以我想做的是,从一次试验中取一个电极,整个一维电压矢量,并创建一个时频谱图。所以我想要创建一个来自data0,:,0的光谱图。

对于每个电极,我想要一个图,其中y轴是频率,x轴是时间,颜色/强度是功率。

我尝试在python中使用它:

代码语言:javascript
复制
from matplotlib.pyplot import specgram
#data = np.random.rand(256)
specgram(data, NFFT=256, Fs=256)

这给了我看上去像这样的东西

在我看来,这是不正确的,因为轴线范围是不正确的。

此外,当我对所有EEG通道运行相同的代码时,对我的所有数据,我最终得到的是完全相同的图(尽管我已经验证了每个数据是不同的)。

我对信号处理非常陌生,我是否在数据的布局方式或如何使用我的功能方面出了问题?

EN

回答 1

Stack Overflow用户

发布于 2015-08-07 20:07:58

来自文档specgram函数:

绘制一份谱图。 呼叫签名: 谱图(x,NFFT=256,Fs=2,Fc=0,detrend=mlab.detrend_none,window=mlab.window_hanning,noverlap=128,cmap=None,xextent=None,pad_to=None,sides='default',scale_by_freq=None,mode='default',scale='default',**kwargs) 计算并绘制x中的数据谱图。将数据分割成NFFT长度段,并计算每一段的频谱。将窗口函数窗口应用于每个段,并指定每个段的重叠量。该光谱图被绘制成一个彩色地图(使用imshow)。 x:一维数组或序列数组或包含数据的序列

看起来你的问题是你没有传递一维数据。尝试:

代码语言:javascript
复制
from matplotlib.pyplot import specgram
specgram(data.flatten(), NFFT=256, Fs=256)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31876313

复制
相关文章

相似问题

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