我觉得我在这里有一个脑残,似乎不记得 STFT 输出发生了什么。
考虑 Python 库 Librosa 中的这两行代码:
# Window the time series.
y_frames = util.frame(y, frame_length=n_fft, hop_length=hop_length)
# Pre-allocate the STFT matrix
stft_matrix = np.empty((int(1 + n_fft // 2), y_frames.shape[1]),
dtype=dtype,
order='F')
在第一行中,我们有一个函数可以创建一个窗口长度为 n_fft (2048) 的矩阵。
然后在下一行,我们预先分配了我们的 STFT,但是我们的窗口长度现在是 1025 而不是 1+n_fft // 2? 这个额外的频率箱来自哪里?为什么不只是 1024?