<< Chapter < Page Chapter >> Page >

Each of the stages can be clearly seen in the flow graphs for the DFTs. [link] shows the flow graph for a length 17 DFT algorithm that was automatically drawn by the program.

A diagram containing 17 horizontal lines that move and adjust at four segments to follow a specific flow. From left to right, the lines begin in different directions, crossing paths in no discernible pattern until at once the majority of the lines cross again consistently over the same region. Some of the lines continue at a slant upwards, but most continue horizontally across to about one third of the figure over. Then, the majority of the lines, with the exception of the upper three, break off and split into two pieces, both of which angled downward. The lines then break off again at certain points, and then all become horizontal approximately halfway across the drawing. 24 new horizontal lines exist at this point, creating a total of 41 horizontal lines in the figure. The right half of the drawing is symmetric to the left.
Flowgraph of length-17 DFT

The programs that accomplish this process are written in Matlab and C. Those that compute the appropriate matrices are written in Matlab. These matrices are then stored as two ASCIIfiles, with the dimensions in one and the matrix elements in the second. A C program then readsthe flies and compiles them to produce the final FFT program in C [link]

The reduction stage

The reduction of an N t h degree polynomial, X ( s ) , modulo the cyclotomic polynomial factors of ( s N - 1 ) requires only additions for many N, however, the actual number of additions depends upon the way in which the reduction proceeds. The reduction is most efficientlyperformed in steps. For example, if N = 4 and ( ( X ( s ) ) s - 1 , ( ( X ( s ) ) s + 1 and ( ( X ( s ) ) s 2 + 1 where the double parenthesis denote polynomial reduction modulo ( s - 1 ) , s + 1 , and s 2 + 1 ) , then in the first step ( ( X ( s ) ) ) s 2 - 1 , and ( ( X s ) ) ) s 2 + 1 should be computed. In the second step, ( ( X s ) ) ) s - 1 and ( ( X s ) ) ) s + 1 can be found by reducing ( ( X ( s ) ) ) s 2 - 1 This process is described by the diagram in [link] .

A tree diagram describing factorization. At the top is s^4 - 1, which splits into s^2 - 1 to the left and s^2 + 1 to the right. s^2 -1 then splits into s - 1 to the left and s + 1 to the right.
Factorization of s 4 - 1 in steps

When N is even, the appropriate first factorization is ( S N / 2 - 1 ) ( s N / 2 + 1 ) , however, the next appropriate factorization is frequently less obvious. The following procedurehas been found to generate a factorization in steps that coincides with the factorization that minimizes the cumulative number of additions incurred by the steps.The prime factors of N are the basis of this procedure and their importance is clear from the useful well-known equation s N - 1 = n | N C n ( s ) where C n ( s ) is the n t h cyclotomic polynomial.

We first introduce the following two functions defined on the positive integers,

ψ ( N ) = the smallest prime factor of N for N > 1

and ψ ( 1 ) = 1 .

Suppose P ( s ) is equal to either ( s N - 1 ) or an intermediate noncyclotomic polynomial appearing in the factorization process, for example, ( a 2 - 1 ) , above. Write P ( s ) in terms of its cyclotomic factors,

P ( s ) = C k 1 ( s ) C k 2 ( s ) C k L

define the two sets, G and G , by

G = { k 1 , , k L } and G = { k / g c d ( G ) : k G }

and define the two integers, t and T , by

t = min { ψ ( k ) : k G , k > 1 } and T = max n u ( k , t ) : k G }

Then form two new sets,

A = { k G : T k } and B = { k G : T | k }

The factorization of P ( s ) ,

P ( s ) = ( k A C k ( s ) ) ( k B C k ( s ) )

has been found useful in the procedure for factoring ( s N - 1 ) . This is best illustrated with an example.

Example: N = 36

Step 1. Let P ( s ) = s 36 - 1 . Since P = C 1 C 2 C 3 C 4 C 6 C 9 C 12 C 18 C 36

G = G = { 1 , 2 , 3 , 4 , 6 , 9 , 12 , 18 , 36 }
t = min { 2 , 3 } = 2
A = { k G : 4 | k } = { 1 , 2 , 3 , 6 , 9 , 18 }
B = { k G : 4 | k } = { 4 , 12 , 36 }

Hence the factorization of s 36 - 1 into two intermediate polynomials is as expected,

k A C k ( s ) = s 18 - 1 , k B C k ( s ) = s 18 + 1

If a 36th degree polynomial, X ( s ) , is represented by a vector of coefficients, X = ( x 35 , , x 0 ) ' , then ( ( X ( s ) ) s 18 - 1 (represented by X') and ( ( X ( s ) ) s 18 + 1 (represented by X") is given by

t e s t

which entails 36 additions.

Step 2. This procedure is repeated with P ( s ) = s 18 - 1 and P ( s ) = s 18 + 1 . We will just show it for the later. Let P ( s ) = s 18 + 1 . Since P = C 4 C 12 C 36

G = { 4 , 12 , 36 } , G ' = { l , 3 , 9 }
t = min 3 = 3
T = max ν ( k , 3 ) : k G = max l , 3 , 9 = 9

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