Exocortex.dsp FFT与数学上严格的DFT。 Unity3d中的C#

时间:2014-05-22 16:33:49

标签: c# signal-processing fft convolution dft

我正在计算音频样本的自相关性。通过使用FFT - 利用卷积定理,可以将自相关的直接计算从O(n ^ 2)加速到O(nlogn)。需要正向和反向FFT。

我在python中制作了一个测试脚本,只是为了确保我知道我在做什么,并且它有效。但在我的C#版本中,它并没有。

我知道FFT的许多实现都给出了与数学上严格的DFT不同的答案。例如,您可能需要将结果除以N(箱数。)

......尝试过,但仍然没有工作......

我努力寻找有关Exocortex的FFT细节的文档,但无济于事。 (提示有人在<1秒内找到它...)

有没有人知道Exocortex实现FFT的细节,以及如何获得DFT的数学严格值和信号的反DFT?

1 个答案:

答案 0 :(得分:0)

我的代码正常运行!

正如大家可能已经猜到的那样,我的代码中还有一个错误,这让我很难理解Exocortex的fft。

在Exocortex的前向fft中,您需要除以fft大小以获得变换的规范值。对于反向fft,您需要乘以fft大小。我相信这与Apple的Accelerate相同,而在numpy和matlab中你可以得到实际的DFT值。

或许需要按fft大小划分或乘法的做法非常普遍 - 如果你知道这种情况,我邀请你发表评论。

当然,很多时候人们只对相对于彼此的fft值感兴趣,在这种情况下,按常数缩放并不重要。

如果有人知道Exocortex DSP的文档在哪里,我也邀请您对此发表评论。