短时傅里叶变换 (STFT) 的时间分辨率

信息处理 fft stft
2022-01-08 20:13:40

我正在努力弄清楚如何计算 STFT 的时间点,但我找不到明确的答案。假设我有一个 4Hz 的固定信号,我将使用一个 64 秒的窗口和 3 秒的重叠。所以这是一个 256 点的窗口和 12 点的重叠。

假设我从 开始time=0,开始前 64 秒,然后执行 FFT/功率谱密度/等...然后我可以说这是 的值t=32吗?3 秒幻灯片之后的下一个窗口是否定位在t=35,等等?

如果是这样,并且我真的想从 开始t=0,那么我是否会有效地从 开始t=-32,用零填充前 128 个点并从我的信号中取出前 128 个点,从而以 为中心t=0

2个回答

没有与短时傅里叶变换相关的单一“时间瞬间”。收集的数据执行 DFT ,则没有一个时间点可以与该 DFT 的输出相关联;它是每个样本在其时间间隔内的函数。t=0t=64

出于这个原因,对于如何表示与连续 STFT 相关的时间轴,没有标准约定,例如,如果您将它们平铺成一个频谱图。您只需要选择一个对您的应用程序有意义的约定。您已经确定了几个合理的(使用 DFT 窗口的开始或中心作为其“时间瞬间”)。

如果您使用的是非矩形窗口(Hamming、von Hann 等),则窗口的质心将偏移到 FFT 孔径的中间,因此 FFT 结果与您的内容的相关性更高数据靠近或位于中心,而不是在边缘处,在这些边缘处加窗会减少对时域数据结果的影响。

如果您希望您的“时间瞬间”是一个接近可能更高相关性的点,那么将您的时间瞬间放在中心可能是有意义的。但请注意,完全在该中心“时间瞬间”之前或之后的数据(例如一些限时频率突发)仍会影响 FFT 结果。

而且,正如 Jason R 所说,其他约定也是可能的。