我的问题的简短版本:
如何从音频样本数组(如 Int16)到常见 FFT 库(如 AForge)使用的复杂结构?
我的问题的长版本:
我是音频处理的新手,正在寻找分析音乐中的音频(定位节拍、速度等)。经过几天的阅读,快速傅里叶变换 (FFT) 算法似乎是朝着正确方向迈出的一步。
为了不必从头开始实现算法,我下载了几个开源库,Exocortex 和 AForge.net。
我正在将音频解码到内存缓冲区。在我的 16 位 48kHz 音频立体声轨道的每个周期中,我得到 48000 字节或 24000 个样本。这些当前被复制到一个短数组(Int16)中。我现在需要将我的数组转换为复杂结构(在 AForge 的情况下)。这又用“实数”和“虚数”双精度值初始化。但是这些到底是什么,我如何从我的数组转到这两个双精度值?另外,我需要在传递之前拆分左/右通道吗?
不幸的是,只要不是以代码形式呈现,我在阅读数学公式方面就很糟糕。到目前为止,在我访问过的几乎所有网站上,很快就会出现希腊符号和复杂的数学公式来帮助解释算法。结果,我马上就迷失在翻译中。相信我,我努力寻找“傻瓜的 FFT 算法”。;)
版主注意:这不是将音频样本从字节转换为复数的副本吗?即使问题相似。