cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: FFTW 3.3.8: The 1d Real-data DFT cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167:
cannam@167:

cannam@167: Next: , Previous: , Up: What FFTW Really Computes   [Contents][Index]

cannam@167:
cannam@167:
cannam@167: cannam@167:

4.8.2 The 1d Real-data DFT

cannam@167: cannam@167:

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

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

cannam@167:

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

cannam@167:

Moreover, the Hermitian symmetry implies that cannam@167: Y0 cannam@167: and, if n is even, the cannam@167: Yn/2 cannam@167: element, are purely real. So, for the R2HC r2r transform, the cannam@167: halfcomplex format does not store the imaginary parts of these elements. cannam@167: cannam@167: cannam@167: cannam@167:

cannam@167: cannam@167:

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

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

cannam@167: cannam@167:

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

cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: