Split-radix FFT algorithm
The split-radix FFT algorithm is an fast Fourier transform (FFT) algorithm, first described by Yavne (1968) and rediscovered simultaneously by various authors in 1984, for computing the discrete Fourier transform (DFT). In particular, split radix is a variant of the Cooley-Tukey FFT algorithm that uses a blend of radices 2 and 4: it recursively expresses a DFT of length N in terms of one smaller DFT of length N/2 and two smaller DFTs of length N/4.
The split-radix FFT, and its variations, have the distinction of achieving the lowest published arithmetic operation count (total exact number of required real additions and multiplications, sometimes called the "arithmetic complexity") to compute a DFT of power-of-two sizes N. Although the number of arithmetic operations is not the sole factor (or even necessarily the dominant factor) in determining the time required to compute a DFT on a computer, the question of the minimum possible count is of longstanding theoretical interest. (No strict lower bound is currently known.)
The split-radix algorithm can only be applied when N is a multiple of 4, but since it breaks a DFT into smaller DFTs it can be combined with any other FFT algorithm as desired.
Split-radix decomposition
Recall that the DFT is defined by the formula:
where is an integer ranging from to and denotes the primitive root of unity:
and thus .
The split-radix algorithm works by expressing this summation in terms of three smaller summations. First, a summation over the even indices . Second, a summation over the odd indices broken into two pieces: and , according to whether the index is 1 or 3 modulo 4. Here, denotes an index that runs from 0 to . The resulting summations look like:
where we have used the fact that .
However, these smaller summations are now exactly DFTs of length N/2 and N/4, which can be performed recursively and then recombined.
More specifically, let denote the result of the DFT of length N/2 (for ), and let and denote the results of the DFTs of length N/4 (for ). Then, for , the output is simply .
What about ? If we add N/4 to k, the smaller DFTs are not changed (because they are periodic in k), so the only things that change are the and terms, known as "twiddle factors". Here, we use the identities:
to finally arrive at:
which gives all of the outputs if we let range from to .
Notice that these expressions are arranged so that we need to combine the various DFT outputs by pairs of additions and subtractions, which are known as butterflies. In order to obtain the minimal operation count for this algorithm, one needs to take into account special cases for (where the twiddle factors are unity) and for (where the twiddle factors are and can be multiplied more quickly). Multiplications by and are ordinarily counted as free (all negations can be absorbed by converting additions into subtractions or vice versa).
This decomposition is performed recursively when N is a power of two. The base cases of the recursion are N=1, where the DFT is just a copy , and N=2, where the DFT is an addition and a subtraction .
These considerations result in a count: real additions and multiplications, for N a power of two greater than 1.
References
- R. Yavne, "An economical method for calculating the discrete Fourier
transform," in Proc. AFIPS Fall Joint Computer Conf. 33, 115–125 (1968).
- P. Duhamel and H. Hollmann, "Split-radix FFT algorithm," Electron.
Lett. 20 (1), 14–16 (1984).
- M. Vetterli and H. J. Nussbaumer, "Simple FFT and DCT algorithms
with reduced number of operations," Signal Processing 6 (4), 267–278 (1984).
- J. B. Martens, "Recursive cyclotomic factorization—a new algorithm for
calculating the discrete Fourier transform," IEEE Trans. Acoust., Speech, Signal Processing 32 (4), 750–761 (1984).