我试图了解scipy.signal.spectrogram()的输出是什么,以及如何使用它们。目前,我读取一个.wav文件并生成一个谱图。
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图,包括:
x-axis: time
y-axis: frequency
pixel colour/brightness: amplitude所以我想知道f、t和Sxx与time、frequency和amplitude有什么关系。
感谢您的阅读,感谢您的帮助!
发布于 2019-10-30 01:40:36
F是频率阵列,包含fft的每个频带的频率。它可以用作图形的标签。
T是时间阵列,包含相对于源信号进行FFT的时间。同样可以用作标签。
Sxx阵列包含振幅,是一个二维阵列,其形状为f的长度乘以t的长度。
因此,与时间序列长度相匹配的轴是时间轴,而另一个轴是频率。
如果您想要正常显示,您需要自己找到Sxx数组的min值和最大值。
https://stackoverflow.com/questions/53898312
复制相似问题