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