首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解scipy.signal.spectrogram()的输出

理解scipy.signal.spectrogram()的输出
EN

Stack Overflow用户
提问于 2018-12-22 18:32:31
回答 1查看 553关注 0票数 2

我试图了解scipy.signal.spectrogram()的输出是什么,以及如何使用它们。目前,我读取一个.wav文件并生成一个谱图。

代码语言:javascript
复制
from scipy.io import wavfile as wav
from scipy import signal

sample_rate, data = wav.read('sound.wav')
f, t, Sxx = signal.spectrogram(data, sample_rate)

--

如果理解完全错误,我的光谱图是一个3D图,包括:

代码语言:javascript
复制
x-axis: time
y-axis: frequency
pixel colour/brightness: amplitude

所以我想知道ftSxxtimefrequencyamplitude有什么关系。

感谢您的阅读,感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-30 01:40:36

F是频率阵列,包含fft的每个频带的频率。它可以用作图形的标签。

T是时间阵列,包含相对于源信号进行FFT的时间。同样可以用作标签。

Sxx阵列包含振幅,是一个二维阵列,其形状为f的长度乘以t的长度。

因此,与时间序列长度相匹配的轴是时间轴,而另一个轴是频率。

如果您想要正常显示,您需要自己找到Sxx数组的min值和最大值。

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

https://stackoverflow.com/questions/53898312

复制
相关文章

相似问题

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