<< 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 ( 0 ) ) 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 .

Number of Real Multiplications and Additions for a Length-N DFT of Complex Data
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 = 2 m , 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 ' = C D A X or B T D A X or A T D A X from [link] and [link] . The A and B matrices are generally M by N with M N and have elements that are integers, generally 0 or ± 1 . A pictorial description is given in [link] .

This image consist of 6 vertical lines. The lines are labeled j0.588, j0.362, -j1.539, 0.559, -1.250, and 1.000 from lowest to highest. The lowest line is shorter and from this line there are two diagonal lines that extend upward to the fourth and fifth lines. There are also lines extending up from line two to the top line as well as a line extending from line three to five and then down from that point to line 4. The lines on the figure are symmetrical. So, any line described has an analog line on the opposite side of the figure.
Flow Graph for the Length-5 DFT
This image has a rectangle with an x at its center. There is a trapezoid formed on the right and left sides of the rectangle. Each of these trapezoids contains plus symbols. On the opposite ends of the trapezoid, the sides not formed by the rectangle, there are three lines then three dots and then another line proceeding vertically from top to bottom. These lines are symmetrical on both sides.
Block Diagram of a Winograd Short DFT

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, A X 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] .

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Fast fourier transforms. OpenStax CNX. Nov 18, 2012 Download for free at http://cnx.org/content/col10550/1.22
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Fast fourier transforms' conversation and receive update notifications?

Ask