fft 和 rfft 之间的 numpy 区别
numpy difference between fft and rfft
我想了解 numpy fft
和 rfft
之间的区别。我读过 doc,它只说 rfft
用于实际输入。
我已经在大型实际阵列上测试了它们的性能,发现 rfft
比 fft
快大约三分之一。我的问题是:为什么 rfft
快?谢谢!
与 FFT 相比,RFFT 的输入自由度减半,复杂输出的数量减半。因此,可以修剪 FFT 计算树以删除那些不存在的输入不需要的加法和乘法 and/or 那些不需要的,因为需要计算的独立输出值较少。
这是因为对严格实数输入(例如,所有输入值虚部都为零)的 FFT 会产生复数共轭镜像结果,其中每一半都可以从另一半简单地导出。
我想了解 numpy fft
和 rfft
之间的区别。我读过 doc,它只说 rfft
用于实际输入。
我已经在大型实际阵列上测试了它们的性能,发现 rfft
比 fft
快大约三分之一。我的问题是:为什么 rfft
快?谢谢!
与 FFT 相比,RFFT 的输入自由度减半,复杂输出的数量减半。因此,可以修剪 FFT 计算树以删除那些不存在的输入不需要的加法和乘法 and/or 那些不需要的,因为需要计算的独立输出值较少。
这是因为对严格实数输入(例如,所有输入值虚部都为零)的 FFT 会产生复数共轭镜像结果,其中每一半都可以从另一半简单地导出。