了解 scipy.signal.spectrogram() 的输出

Posted

技术标签:

【中文标题】了解 scipy.signal.spectrogram() 的输出【英文标题】:Understanding scipy.signal.spectrogram()'s output 【发布时间】:2018-12-22 18:32:31 【问题描述】:

我想了解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

所以我想知道ftSxxtimefrequencyamplitude 的关系。

感谢阅读,感谢任何帮助!

【问题讨论】:

【参考方案1】:

f 是频率数组,包含 fft 的每个频段的频率。可以用作图表的标签

t 是时间数组,包含进行此 FFT 相对于源信号的时间。再次可用于标签。

Sxx 数组包含幅度,是一个二维数组,其形状是 f 的长度乘以 t 的长度。

因此与时间数组长度匹配的轴是时间轴,另一个是频率。

如果您想标准化显示,您需要自己找到 Sxx 数组的最小值和最大值。

【讨论】:

以上是关于了解 scipy.signal.spectrogram() 的输出的主要内容,如果未能解决你的问题,请参考以下文章

了解了解grpc

数据库 了解知识

深入了解ASP.NET运行内幕

了解GStreamer

深入了解Java的String

Vue UI 了解一下