为什么将后向FFT(c2r)和前向实际输入FFT(r2c)组合到一个复杂阵列不会产生原始复杂阵列?

时间:2017-08-08 15:01:15

标签: fft fftw numerical-computing

在许多编程语言中,实数输入FFT通常表示为rfft,反函数为irfft(如pythonjulia)。正如numpy docsjulia docs所述,它们正在进行归一化FFT,而不像FFTW的非归一化FFT

因此,如果我有真正的输入1D数组a,我理解irfft(rfft(a), len(a)) == a。但是,如果我假设另一个1D数组b但复杂,rfft(irfft(b), (len(b) - 1) * 2) != b,我甚至考虑了规范化。我认为rfft(irfft(b), (len(b) - 1) * 2)应该与b相同a

我使用Fortran和Julia的FFTW库测试了这个,但结果相同。

为什么会这样?这在数学上是正确的还是实现问题?

编辑1:更准确的解释是here

0 个答案:

没有答案