For a length-N sequence, the time index takes on the values
When the length of the DFT is not prime,
A linear change of variables is defined which maps
where
Case 1.
The integer map of Equation 6 is one-to-one if and only if:
where
Case 2.
The integer map of Equation 6 is one-to-one if and only if:
or
Reference [5] should be consulted for the details of these conditions and examples. Two classes of index maps are defined from these conditions.
Type-One Index Map:
The map of Equation 6 is called a type-one map when integers
Type-Two Index Map:
The map of Equation 6 is called a type-two map when when integers
The type-one can be used only if the factors of
The frequency index is defined by a map similar to Equation 6 as
where the same conditions, Equation 7 and Equation 8, are used for
determining the uniqueness of this map in terms of the integers
Two-dimensional arrays for the input data and its DFT are defined using these index maps to give
In some of the following equations, the residue reduction notation will be omitted for clarity. These changes of variables applied to the definition of the DFT given in Equation 1 give
where all of the exponents are evaluated modulo
The amount of arithmetic required to calculate Equation 15 is the
same as in the direct calculation of Equation 1. However, because
of the special nature of the DFT, the integer constants
When this condition and those for uniqueness in Equation 6 are
applied, it is found that the
An example of the Cooley-Tukey radix-4 FFT for a length-16
DFT uses the type-two map with
The residue reduction in Equation 6 is not needed here since
Note the definition of
This has the form of a two-dimensional DFT with an extra
term
![]() |
The left 4-by-4 array is the mapped input data, the center
array has the rows transformed, and the right array is the DFT
array. The row DFTs and the column DFTs are independent of each
other. The twiddle factors (TF) which are the center
This uncoupling feature reduces the amount of arithmetic required and allows the results of each row DFT to be written back over the input data locations, since that input row will not be needed again. This is called “in-place" calculation and it results in a large memory requirement savings.
An example of the type-two map used when the factors of
The residue reduction is again not explicitly needed. Although the factors 3 and 5 are relatively prime, use of the type-two map sets only one of the terms in Equation 16 to zero. The DFT in Equation 15 becomes
which has the same form as Equation 19, including the existence of
the twiddle factors (TF). Here the inner sum is five length-3
DFTs, one for each value of
![]() |
An alternate illustration is shown in Figure 3 where the rectangles are the short length 3 and 5 DFTs.
![]() |
The type-one map is illustrated next on the same length-15 example. This time the situation of Equation 7 with the “and" condition is used in Equation 10 using an index map of
and
The residue reduction is now necessary. Since the factors of
which is similar to Equation 22, except that now the type-one map gives a pure two-dimensional DFT calculation with no TFs, and the sums can be done in either order. Figures Figure 2 and Figure 3 also describe this case but now there are no Twiddle Factor multiplications in the center and the resulting system is called a ``prime factor algorithm" (PFA).
The purpose of index mapping is to improve the arithmetic efficiency. For example a direct calculation of a length-16 DFT requires 16^2 or 256 real multiplications (recall, one complex multiplication requires 4 real multiplications and 2 real additions) and an uncoupled version requires 144. A direct calculation of a length-15 DFT requires 225 multiplications but with a type-two map only 135 and with a type-one map, 120. Recall one complex multiplication requires four real multiplications and two real additions.
Algorithms of practical interest use short DFT's that
require fewer than
The concept of using an index map can also be applied to
convolution to convert a length












"The Fast Fourier Transform (FFT) is a landmark algorithm used in fields ranging from signal processing to high-performance computing. First popularized by two American scientists in 1965, the […]"