Chris@82: Chris@82: Chris@82: Chris@82: Chris@82:
Chris@82:Chris@82: Next: 1d Discrete Hartley Transforms (DHTs), Previous: 1d Real-even DFTs (DCTs), Up: What FFTW Really Computes [Contents][Index]
Chris@82:The Real-odd symmetry DFTs in FFTW are exactly equivalent to the unnormalized Chris@82: forward (and backward) DFTs as defined above, where the input array Chris@82: X of length N is purely real and is also odd symmetry. In Chris@82: this case, the output is odd symmetry and purely imaginary. Chris@82: Chris@82: Chris@82:
Chris@82: Chris@82: Chris@82:For the case of RODFT00
, this odd symmetry means that
Chris@82: Xj = -XN-j,
Chris@82: where we take X to be periodic so that
Chris@82: XN = X0.
Chris@82: Because of this redundancy, only the first n real numbers
Chris@82: starting at j=1 are actually stored (the j=0 element is
Chris@82: zero), where N = 2(n+1).
Chris@82:
The proper definition of odd symmetry for RODFT10
,
Chris@82: RODFT01
, and RODFT11
transforms is somewhat more intricate
Chris@82: because of the shifts by 1/2 of the input and/or output, although
Chris@82: the corresponding boundary conditions are given in Real even/odd DFTs (cosine/sine transforms). Because of the odd symmetry, however,
Chris@82: the cosine terms in the DFT all cancel and the remaining sine terms are
Chris@82: written explicitly below. This formulation often leads people to call
Chris@82: such a transform a discrete sine transform (DST), although it is
Chris@82: really just a special case of the DFT.
Chris@82:
Chris@82:
Chris@82:
In each of the definitions below, we transform a real array X of Chris@82: length n to a real array Y of length n: Chris@82:
Chris@82: Chris@82:An RODFT00
transform (type-I DST) in FFTW is defined by:
Chris@82:
An RODFT10
transform (type-II DST) in FFTW is defined by:
Chris@82:
An RODFT01
transform (type-III DST) in FFTW is defined by:
Chris@82:
An RODFT11
transform (type-IV DST) in FFTW is defined by:
Chris@82:
These definitions correspond directly to the unnormalized DFTs used
Chris@82: elsewhere in FFTW (hence the factors of 2 in front of the
Chris@82: summations). The unnormalized inverse of RODFT00
is
Chris@82: RODFT00
, of RODFT10
is RODFT01
and vice versa, and
Chris@82: of RODFT11
is RODFT11
. Each unnormalized inverse results
Chris@82: in the original array multiplied by N, where N is the
Chris@82: logical DFT size. For RODFT00
, N=2(n+1);
Chris@82: otherwise, N=2n.
Chris@82:
Chris@82:
In defining the discrete sine transform, some authors also include Chris@82: additional factors of Chris@82: √2 Chris@82: (or its inverse) multiplying selected inputs and/or outputs. This is a Chris@82: mostly cosmetic change that makes the transform orthogonal, but Chris@82: sacrifices the direct equivalence to an antisymmetric DFT. Chris@82:
Chris@82:Chris@82: Next: 1d Discrete Hartley Transforms (DHTs), Previous: 1d Real-even DFTs (DCTs), Up: What FFTW Really Computes [Contents][Index]
Chris@82: