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