我试图了解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
的关系。
感谢阅读,感谢您的帮助!
答案 0 :(得分:0)
Sxx数组包含振幅,是一个二维数组,其形状为f的长度乘以t的长度。
因此,与时间数组长度匹配的轴是时间轴,另一个是频率。
如果要标准化显示,则需要自己找到Sxx数组的最小值和最大值。