提取频率发生的时间

时间:2012-03-20 21:52:02

标签: java fft javasound audio-fingerprinting frequency-distribution

我拍摄一首歌样本并对样​​本执行FFT(快速傅立叶变换)。我能够得到歌曲的频率,但我无法得到这些频率出现的时间。因此,它基本上变得无用,因为我必须将它与不同的样本匹配,除非我得到它的时间信息。

我该如何处理?

2 个答案:

答案 0 :(得分:5)

您需要将样本分解为多个较小的时间片,并对每个切片进行FFT。每个FFT结果都可以为您提供该时间段内的平均频率内容。这通常称为Spectrogram

答案 1 :(得分:3)

您的问题的答案涉及您必须决定的时间频率权衡。分析的时间越小,时间不确定性窗口越小,频率精度越低。反之亦然。如果你想要一个确切的频率,那么所需的时间窗口,以及时间不确定性可能变得无限大。

如果您知道您感兴趣的频段和带宽,您可以尝试滤除该频段并查看可能具有起始上升和下降衰减的幅度包络。如果你知道感兴趣的声音包络的确切形状,那么对匹配滤波器的卷积可能会给你一个峰值相关点。