Python + Scipy:如何设置谱图的时间范围?

问题描述:

我正在尝试使用scipy.signal.spectrogram来计算音频信号的频谱图。作为一个项目规范,需要时间框架彼此间隔20ms,但我找不到方法来设置它。Python + Scipy:如何设置谱图的时间范围?

我在调整noverlap后得到的最大值是一个非精确的5ms。

有谁知道如何做到这一点?

感谢

你说“它需要的时间框架彼此间隔20毫秒”。我假设这意味着每个窗口(或“段”)的开始之间的延迟是20毫秒。

三个相关参数是fsnpersegnoverlapnperseg是每个“片段”中的样本数量。也就是说,这是“窗口”中滑过输入数据的样本数。 noverlap是连续窗口重叠中的样本数。因此,成功窗口之间的延迟是nperseg - noverlap样本。

您希望窗口移动20 ms,这对应于fs*20/1000样本(假设fs以样本每秒为单位测量,即Hz)。 假设你的窗口长度是T ms。那么npersegfs*T/1000。 您希望重叠为T-20毫秒,所以noverlap = int(fs*(T-20)/1000)