d@0: d@0: d@0: The 1d Real-data DFT - FFTW 3.2.1 d@0: d@0: d@0: d@0: d@0: d@0: d@0: d@0: d@0: d@0: d@0: d@0: d@0: d@0:
d@0:

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


d@0:
d@0: d@0:

4.8.2 The 1d Real-data DFT

d@0: d@0:

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

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

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

Moreover, the Hermitian symmetry implies that d@0: Y0and, if n is even, the d@0: Yn/2element, are purely real. So, for the R2HC r2r transform, these d@0: elements are not stored in the halfcomplex output format. d@0: d@0: The c2r and H2RC r2r transforms compute the backward DFT of the d@0: complex array X with Hermitian symmetry, stored in the d@0: r2c/R2HC output formats, respectively, where the backward d@0: transform is defined exactly as for the complex case: d@0:

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

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