Chris Lomont 非常友好地为我们提供了一个使用 C# 的简洁 FFT 实现。来源可以在这里找到。函数已经写到RealFFT(double[] data, bool forward)
一半了,只需阅读函数摘要(很短:))。
如前所述(函数摘要),我正在使用该RealFFT
函数,它接受一个样本数组,所有这些样本都是实值(没有虚部)。但是,它还指出,在前两个条目之后,输出是复值,存储在交替的实部和虚部中。
我似乎无法弄清楚这一点。进行 FFT 后,您总是会得到实部和虚部。那么如何将它们打包到作为参数进入函数的数组中(因为只有实数,所以大小只有一半)?