Chris@19: Chris@19: Chris@19: The 1d Real-data DFT - FFTW 3.3.4 Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19: Chris@19:
Chris@19: Chris@19: Chris@19:

Chris@19: Next: , Chris@19: Previous: The 1d Discrete Fourier Transform (DFT), Chris@19: Up: What FFTW Really Computes Chris@19:


Chris@19:
Chris@19: Chris@19:

4.8.2 The 1d Real-data DFT

Chris@19: Chris@19:

The real-input (r2c) DFT in FFTW computes the forward transform Chris@19: Y of the size n real array X, exactly as defined Chris@19: above, i.e. Chris@19:

.
This output array Y can easily be shown to possess the Chris@19: “Hermitian” symmetry Chris@19: Yk = Yn-k*,where we take Y to be periodic so that Chris@19: Yn = Y0. Chris@19: Chris@19:

As a result of this symmetry, half of the output Y is redundant Chris@19: (being the complex conjugate of the other half), and so the 1d r2c Chris@19: transforms only output elements 0...n/2 of Y Chris@19: (n/2+1 complex numbers), where the division by 2 is Chris@19: rounded down. Chris@19: Chris@19:

Moreover, the Hermitian symmetry implies that Chris@19: Y0and, if n is even, the Chris@19: Yn/2element, are purely real. So, for the R2HC r2r transform, these Chris@19: elements are not stored in the halfcomplex output format. Chris@19: Chris@19: Chris@19:

The c2r and H2RC r2r transforms compute the backward DFT of the Chris@19: complex array X with Hermitian symmetry, stored in the Chris@19: r2c/R2HC output formats, respectively, where the backward Chris@19: transform is defined exactly as for the complex case: Chris@19:

.
The outputs Y of this transform can easily be seen to be purely Chris@19: real, and are stored as an array of real numbers. Chris@19: Chris@19:

Like FFTW's complex DFT, these transforms are unnormalized. In other Chris@19: words, applying the real-to-complex (forward) and then the Chris@19: complex-to-real (backward) transform will multiply the input by Chris@19: n. Chris@19: Chris@19: Chris@19: Chris@19: