Back to Pedalboard

Real

vendors/fftw3/doc/html/Real_002dto_002dReal-Transform-Kinds.html

0.9.222.6 KB
Original Source

Previous: Real-to-Real Transforms, Up: Basic Interface [Contents][Index]


4.3.6 Real-to-Real Transform Kinds

FFTW currently supports 11 different r2r transform kinds, specified by one of the constants below. For the precise definitions of these transforms, see What FFTW Really Computes. For a more colloquial introduction to these transform kinds, see More DFTs of Real Data.

For dimension of size n, there is a corresponding “logical” dimension N that determines the normalization (and the optimal factorization); the formula for N is given for each kind below. Also, with each transform kind is listed its corrsponding inverse transform. FFTW computes unnormalized transforms: a transform followed by its inverse will result in the original data multiplied by N (or the product of the N’s for each dimension, in multi-dimensions).

  • FFTW_R2HC computes a real-input DFT with output in “halfcomplex” format, i.e. real and imaginary parts for a transform of size n stored as:

r0, r1, r2, ..., rn/2, i(n+1)/2-1, ..., i2, i1

(Logical N=n, inverse is FFTW_HC2R.)

  • FFTW_HC2R computes the reverse of FFTW_R2HC, above. (Logical N=n, inverse is FFTW_R2HC.)
  • FFTW_DHT computes a discrete Hartley transform. (Logical N=n, inverse is FFTW_DHT.)
  • FFTW_REDFT00 computes an REDFT00 transform, i.e. a DCT-I. (Logical N=2*(n-1), inverse is FFTW_REDFT00.)
  • FFTW_REDFT10 computes an REDFT10 transform, i.e. a DCT-II (sometimes called “the” DCT). (Logical N=2*n, inverse is FFTW_REDFT01.)
  • FFTW_REDFT01 computes an REDFT01 transform, i.e. a DCT-III (sometimes called “the” IDCT, being the inverse of DCT-II). (Logical N=2*n, inverse is FFTW_REDFT=10.)
  • FFTW_REDFT11 computes an REDFT11 transform, i.e. a DCT-IV. (Logical N=2*n, inverse is FFTW_REDFT11.)
  • FFTW_RODFT00 computes an RODFT00 transform, i.e. a DST-I. (Logical N=2*(n+1), inverse is FFTW_RODFT00.)
  • FFTW_RODFT10 computes an RODFT10 transform, i.e. a DST-II. (Logical N=2*n, inverse is FFTW_RODFT01.)
  • FFTW_RODFT01 computes an RODFT01 transform, i.e. a DST-III. (Logical N=2*n, inverse is FFTW_RODFT=10.)
  • FFTW_RODFT11 computes an RODFT11 transform, i.e. a DST-IV. (Logical N=2*n, inverse is FFTW_RODFT11.)

Previous: Real-to-Real Transforms, Up: Basic Interface [Contents][Index]