我正在通过频域计算歌曲的节拍。我有 60 秒以 48000Hz 采样的音频,乘以时域中的汉宁窗。这为我提供了 1BPM 频域的分辨率,并且我对从 ~10 BPM 到 ~300BPM 的频率感兴趣,这只是 48000*60 bin 长度 FFT 的前 300 个 bin。汉宁窗如何影响歌曲节拍的相位?不使用窗口(实际上是矩形窗口)会导致与 Hanning 窗口不同的相位。
汉宁窗对 FFT 相位的影响
信息处理
fft
阶段
窗函数
2022-02-20 16:55:03
2个回答
矩形窗口对您的相位关系做了什么实际上并不是一个问题,因为它并没有强调在样本块的开头和结尾发生的“边缘效应”,这是整个点使用非矩形窗口。
试试这个实验:使用两种窗口类型,做一些长度从 59*48000 样本到 60*48000 样本不等的 FFT。您会发现 Hanning 窗口提供的结果比矩形窗口更一致。当长度接近整数节拍时,这两个结果将最一致。
回想一下,时域中的加窗相当于频域中的卷积。将时域中的信号与汉宁窗相乘相当于将频域信号与内核 [-1 2 -1]/4 进行卷积。
因此,如果表示(非窗口)频率响应,相应的窗口频率响应将是:
在哪里是频率分辨率 - 否则你可以写这个(用是频率指数)为:
(在“非窗口”频率响应方面的窗口频率响应)
所以你正在寻找的相位差是:
delta_phase = angle(Hw(n)) - angle(H(n))
希望这可以帮助
其它你可能感兴趣的问题