<< Chapter < Page | Chapter >> Page > |
A modification of this approach also works for a length which is an odd prime raised to some power: $N={P}^{M}$ . This is a bit more complicated [link] , [link] but has been done for lengths of 9 and 25. For longer lengths, the conventional Cooley-Tukey type-two index map algorithm seems to be more efficient. For powers of two, there is no primitive root, and therefore, no simple conversionof the DFT into convolution. It is possible to use two generators [link] , [link] , [link] to make the conversion and there exists a set of length 4, 8, and 16 DFT algorithms of the form in [link] in [link] .
In [link] an operation count of several short DFT algorithms is presented. These are practical algorithms that can beused alone or in conjunction with the index mapping to give longer DFT's as shown in The Prime Factor and Winograd Fourier Transform Algorithms . Most are optimized in having either the theoretical minimum number of multiplications or theminimum number of multiplications without requiring a very large number of additions. Some allow other reasonable trade-offs betweennumbers of multiplications and additions. There are two lists of the number of multiplications. The first is the number of actualfloating point multiplications that must be done for that length DFT. Some of these (one or two in most cases) will be by rationalconstants and the others will be by irrational constants. The second list is the total number of multiplications given in the diagonalmatrix $D$ in [link] . At least one of these will be unity ( theone associated with $X\left(0\right)$ ) and in some cases several will be unity ( for $N={2}^{M}$ ). The second list is important in programming the WFTA in The Prime Factor and Winograd Fourier Transform Algorithm: The Winograd Fourier Transform Algorithm .
Length N | Mult Non-one | Mult Total | Adds |
2 | 0 | 4 | 4 |
3 | 4 | 6 | 12 |
4 | 0 | 8 | 16 |
5 | 10 | 12 | 34 |
7 | 16 | 18 | 72 |
8 | 4 | 16 | 52 |
9 | 20 | 22 | 84 |
11 | 40 | 42 | 168 |
13 | 40 | 42 | 188 |
16 | 20 | 36 | 148 |
17 | 70 | 72 | 314 |
19 | 76 | 78 | 372 |
25 | 132 | 134 | 420 |
32 | 68 | - | 388 |
Because of the structure of the short DFTs, the number of real multiplications required for the DFT of real data is exactly half that required for complex data. The numberof real additions required is slightly less than half that required for complex data because $(N-1)$ of the additions needed when $N$ is prime add a real to an imaginary, and that is not actuallyperformed. When $N=2m$ , there are $(N-2)$ of these pseudo additions. The special case for real data is discussed in [link] , [link] , [link] .
The structure of these algorithms are in the form of ${X}^{\text{'}}=CDAX$ or ${B}^{T}DAX$ or ${A}^{T}DAX$ from [link] and [link] . The $A$ and $B$ matrices are generally $M$ by $N$ with $M\ge N$ and have elements that are integers, generally 0 or $\pm 1$ . A pictorial description is given in [link] .
The flow graph in [link] should be compared with the matrix description of [link] and [link] , and with the programs in [link] , [link] , [link] , [link] and the appendices. The shape in [link] illustrates the expansion of the data by $A$ . That is to say, $AX$ has more entries than $X$ because $M>N$ . The A operator consists of additions, the $D$ operator gives the $M$ multiplications (some by one) and ${A}^{T}$ contracts the data back to $N$ values with additions only. $M$ is one half the second list of multiplies in [link] .
Notification Switch
Would you like to follow the 'Fast fourier transforms' conversation and receive update notifications?