了解 scipy.signal.spectrogram() 的输出
Understanding scipy.signal.spectrogram()'s output
我想了解 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 数组的最小值和最大值。
我想了解 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 数组的最小值和最大值。