cannam@95: cannam@95: cannam@95: The 1d Real-data DFT - FFTW 3.3.3 cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95: cannam@95:
cannam@95: cannam@95: cannam@95:

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


cannam@95:
cannam@95: cannam@95:

4.8.2 The 1d Real-data DFT

cannam@95: cannam@95:

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

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

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

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

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

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

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