Apple Accelerate vDSP fft 与 DFT 和比例因子
Apple Accelerate vDSP fft vs DFT and scaling factors
我是一名经验丰富的程序员,但我没有太多实施 DSP 例程的经验。
即使不是几个月,我也已经为此苦苦思索了数周。我的问题有两个方面,关于 Apple 的 Accelerate 框架:
1)
在 vDSP.h header 中有评论大意是:请使用 vDSP_DFT_XXX 而不是(我猜)旧版本 vDSP_fft_XXX。然而,在 Apple https://developer.apple.com/library/prerelease/mac/samplecode/vDSPExamples/Listings/DemonstrateDFT_c.html#//apple_ref/doc/uid/DTS10004300-DemonstrateDFT_c-DontLinkElementID_6 之外,有 零 个这样的例子。也许只是 DFT 函数较新?如果是这样,很好和花花公子。
2)
比例因子。我可以阅读文档 (https://developer.apple.com/library/mac/documentation/Performance/Conceptual/vDSP_Programming_Guide/UsingFourierTransforms/UsingFourierTransforms.html#//apple_ref/doc/uid/TP40005147-CH202-16195),它说在对真实输入进行 FFT 的情况下,比如我正在处理的音频,每个傅立叶系数的结果值是实际数学值的 2 倍.
然而,在每个示例中,包括 Apple 自己的示例,用于生成的 vsmul() 函数的比例因子看起来是 1/2*N 而不是我期望的 1/2。
此外,没有关于 vDSP_DFT_XXX 例程的比例因子的文档,但我假设它们只是包装了旧的?
如果能深入了解这些问题中的任何一个,我们将不胜感激!希望我只是遗漏了一些关于 FFT 在此框架(或一般情况下)中的实现方式的基本知识。
至少有 3 种不同的 FFT 缩放选项可以产生 "mathematical" 结果,并且没有单一的标准缩放。能量保存(参见 Parseval 定理)FFT 库需要按 1/N 的数量级缩放输入幅度结果,因为相同幅度的较长信号将按比例具有更多能量。 vDSP 使用能量保存正向 FFT。
我是一名经验丰富的程序员,但我没有太多实施 DSP 例程的经验。
即使不是几个月,我也已经为此苦苦思索了数周。我的问题有两个方面,关于 Apple 的 Accelerate 框架:
1)
在 vDSP.h header 中有评论大意是:请使用 vDSP_DFT_XXX 而不是(我猜)旧版本 vDSP_fft_XXX。然而,在 Apple https://developer.apple.com/library/prerelease/mac/samplecode/vDSPExamples/Listings/DemonstrateDFT_c.html#//apple_ref/doc/uid/DTS10004300-DemonstrateDFT_c-DontLinkElementID_6 之外,有 零 个这样的例子。也许只是 DFT 函数较新?如果是这样,很好和花花公子。
2)
比例因子。我可以阅读文档 (https://developer.apple.com/library/mac/documentation/Performance/Conceptual/vDSP_Programming_Guide/UsingFourierTransforms/UsingFourierTransforms.html#//apple_ref/doc/uid/TP40005147-CH202-16195),它说在对真实输入进行 FFT 的情况下,比如我正在处理的音频,每个傅立叶系数的结果值是实际数学值的 2 倍.
然而,在每个示例中,包括 Apple 自己的示例,用于生成的 vsmul() 函数的比例因子看起来是 1/2*N 而不是我期望的 1/2。
此外,没有关于 vDSP_DFT_XXX 例程的比例因子的文档,但我假设它们只是包装了旧的?
如果能深入了解这些问题中的任何一个,我们将不胜感激!希望我只是遗漏了一些关于 FFT 在此框架(或一般情况下)中的实现方式的基本知识。
至少有 3 种不同的 FFT 缩放选项可以产生 "mathematical" 结果,并且没有单一的标准缩放。能量保存(参见 Parseval 定理)FFT 库需要按 1/N 的数量级缩放输入幅度结果,因为相同幅度的较长信号将按比例具有更多能量。 vDSP 使用能量保存正向 FFT。