Python + Scipy:如何设置谱图的时间范围?
问题描述:
我正在尝试使用scipy.signal.spectrogram
来计算音频信号的频谱图。作为一个项目规范,需要时间框架彼此间隔20ms,但我找不到方法来设置它。Python + Scipy:如何设置谱图的时间范围?
我在调整noverlap
后得到的最大值是一个非精确的5ms。
有谁知道如何做到这一点?
感谢
答
你说“它需要的时间框架彼此间隔20毫秒”。我假设这意味着每个窗口(或“段”)的开始之间的延迟是20毫秒。
三个相关参数是fs
,nperseg
和noverlap
。 nperseg
是每个“片段”中的样本数量。也就是说,这是“窗口”中滑过输入数据的样本数。 noverlap
是连续窗口重叠中的样本数。因此,成功窗口之间的延迟是nperseg - noverlap
样本。
您希望窗口移动20 ms,这对应于fs*20/1000
样本(假设fs
以样本每秒为单位测量,即Hz)。 假设你的窗口长度是T ms。那么nperseg
是fs*T/1000
。 您希望重叠为T-20毫秒,所以noverlap = int(fs*(T-20)/1000)
。