fft 和 rfft 之间的 numpy 区别

numpy difference between fft and rfft

我想了解 numpy fftrfft 之间的区别。我读过 doc,它只说 rfft 用于实际输入。

我已经在大型实际阵列上测试了它们的性能,发现 rfftfft 快大约三分之一。我的问题是:为什么 rfft 快?谢谢!

与 FFT 相比,RFFT 的输入自由度减半,复杂输出的数量减半。因此,可以修剪 FFT 计算树以删除那些不存在的输入不需要的加法和乘法 and/or 那些不需要的,因为需要计算的独立输出值较少。

这是因为对严格实数输入(例如,所有输入值虚部都为零)的 FFT 会产生复数共轭镜像结果,其中每一半都可以从另一半简单地导出。