我试图理解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
的关系。你知道吗
感谢阅读,任何帮助都将不胜感激!你知道吗
f是频率阵列,包含fft的每个频带的频率。可以用作图形的标签
t是时间数组,包含相对于源信号进行FFT的时间。同样可以用于标签。你知道吗
Sxx阵列包含振幅,是一个二维阵列,其形状是f的长度乘以t的长度
因此,与时间数组长度匹配的轴是时间轴,另一个轴是频率轴。你知道吗
如果您想正常化显示,您需要自己找到Sxx数组的最小值和最大值。你知道吗
相关问题 更多 >
编程相关推荐