正如我在上一篇文章中评论的那样,称为“短期傅立叶变换”的时频分析方法相当于一个滤波器组,用于分析您的信号。对于给定的分析窗口,大小为,频率的滤波器为:
XxwnNk/N
hn=w−nej2πnkN
对于通常的分析窗口(Hann、Hamming 甚至矩形),这对应于一个低通滤波器,其截止频率约为,它“移动”到频率 bin(由于复指数调制) ,因此导致带通滤波器。1/Nk
至此,为了直接回答你对反映人类感知的担忧,有人推导出了["constant-Q transform" (CQT)][Brown91]。在其滤波器组解释中,它依赖于与 FT 相同的原理。然而,中心不像“正常”FT 那样是线性间隔的,而是 log2 间隔的。该音阶与西方音乐音阶密切相关:如果选择,那么我们获得每个八度音阶 12 个频率(敲响钟声?:-)),并且带宽设置为,例如。您也可以选择最适合您需要的其他中心。fkfk+1=21/12fk21/12−12fk
你可以在这里和那里找到 CQT 的实现,Klapuri 教授最近的一个,带有相当不错的逆可以在这里找到。Telecom ParisTech 的音频小组也有 Prado 教授的实现,但我还没有尝试过。
[Brown91] J. Brown,“常数 Q 谱变换的计算”,美国声学学会杂志,1991,89,425-434
编辑 20121014:对您(bryhoyt)问题的一些回答和评论。
只是对您自己对主要问题的评论的一般想法:您似乎对许多应用程序感兴趣,对我来说,这些应用程序并不是很容易解决的问题。“音色建模”在我看来与语音识别等更相关,音高或频率分辨率或精度不是什么大问题(考虑通常如何计算 MFCC)。
想想有多少顶级研究人员(F. Pachet和法国 IRCAM 的 repmus 团队,仅举几例)正在研究自动即兴和伴奏的主题:这项任务并非不可能,但需要许多领域的专业知识。总而言之,一个典型的系统需要(至少)模仿人类的听觉系统,实现声音/音乐/音高/节奏感知,了解音乐理论并根据所有先前步骤的估计做出决策。傅立叶变换或任何信号表示只是朝着最终目标迈出的一小步——在我看来,这可能是迄今为止最好理解的一步。
也就是说,仍然有可能每个人都在远远超出实际发生的事情,并且您可以通过一个简单而优雅的解决方案来解决它!完成后不要忘记发布它!:-)
44kHz 的 0.1 秒样本足以包含广泛的频率范围
在 FT 的情况下,这将导致在 FT的所有频率区间的分辨率为这在 100Hz 时几乎是 2 个半音!有待改善...Fs/N=44100/4410=10Hz
FFT 无法检测到低频和高频,但您说其他算法可以:权衡是什么?
简短的回答:阅读我关于旋律估计的论文!
详细说明一下:由于对要处理的声音的假设,许多音高估计算法超出了 FT 的限制。我们期望来自自然声音(人声、双簧管、萨克斯、钢琴......)的音符比单个正弦曲线更复杂。大多数音高的声音或多或少是谐波,这意味着它们可以建模为频率是基频倍数的正弦曲线的总和。
因此,在估计音高时考虑这些谐波是有用的,存在使用诸如频谱和、频谱乘积或自相关函数之类的检测函数的方法。最近有人开始了一个相关的话题。
有哪些权衡?更具体地说,对于一个相当短的窗口,我可以期望什么水平的频率精度?(我知道 CQT 中的窗口大小是可变的 - 有多少?)更具体地说,我能多接近我的近似值。0.5% 频率差的目标是 0.005 秒的窗口?
如前所述,对于 0.005 秒的窗口,您可以预期 200Hz 的“频率泄漏”。只有当您有 2 个频率接近 200Hz 的正弦波时,这才是真正的问题,这样 FT 将无法显示它们是 2 个不同的正弦波。好吧,我们离你的 0.5% 还很远(顺便说一句,半音是频率的 6%!)而且 0.005s 对于你的目的来说确实有点小。但是,如果您想每 0.005 秒提供一个估计值,您仍然可以处理更长的重叠帧,就像在语音/音乐处理中通常所做的那样。那是你真正想要的吗?
至于窗口的大小,可以参考[Schoerkhuber2010],帧长等于:
其中是频率数CQT 所需的每倍频程的 bin。这意味着非常长的窗口:和需要大约 0.7s 长的窗口。没什么好说的,我们会失去一点时间分辨率……但如前所述,只有当我们忘记声音的结构时,这才是问题。此外,心理声学认为,在 500Hz 以下,人类并不能真正区分正弦曲线:即使是人类也面临挑战。当然,我们可以希望我们的电脑能比我们做得更好,但在这里,我们面临一个棘手的问题!
Nk=Fsfk(21/B−1)
BB=48fk=100Hz
最后,请注意存在计算声音时频表示的其他方法,例如考虑 gammatone 滤波器组。我之前提到的 CQT 的优点是有用于转换和反转的软件。不过,就我个人而言,我仍然坚持使用 STFT,因为它很简单,而且到目前为止,我从来不需要更好的低频分辨率,即使是源分离也是如此。
[Schoerkhuber2010] Schoerkhuber, C. 和 Klapuri, A.,“用于音乐处理的 Constant-Q 变换工具箱”,第 7 届声音和音乐计算会议,西班牙巴塞罗那,2010 年。