<< Chapter < Page Chapter >> Page >
X k = n 2 = 0 N / 2 - 1 ω N / 2 n 2 k x 2 n 2 + ω N k n 2 = 0 N / 2 - 1 ω N / 2 n 2 k x 2 n 2 + 1

where the two sums are now DFTs of the even indexed terms ( x 2 n 2 ) and the odd indexed terms ( x 2 n 2 + 1 ), which are combined with twiddle factor ω N k .

In order to compute the transform more efficiently, the Cooley-Tukey algorithm divides X k into two halves, and exploits the periodicity of sub-transforms and symmetries in the trigonometric coefficients. Firstly, [link] is rewritten as two halves with E k substituted for the even sub-transform, and O k substituted for the odd sub-transform:

X k = E k + ω N k O k X k + N / 2 = E k + N / 2 + ω N k + N / 2 O k + N / 2

where k = 0 , , N / 2 - 1 . Because of the periodicity property of the outputs of a DFT, E k = E k + N / 2 and O k = O k + N / 2 , [link] simplifies thus:

X k = E k + ω N k O k X k + N / 2 = E k + ω N k + N / 2 O k

And finally, by exploiting symmetries in the complex exponential function, namely that ω N k + N / 2 = - ω N k , the radix-2 DIT FFT can be expressed as:

X k = E k + ω N k O k X k + N / 2 = E k - ω N k O k

which makes it clear that each pair of outputs share common computation, approximately halving the number of arithmetic operations when compared tothe DFT. But since the even and odd terms in [link] are themselves DFTs that can be computed with the FFT, the savings compound with each stage of recursion. The total number of realarithmetic operations required to compute the radix-2 FFT can be expressed with the following recurrencerelation:

T ( n ) = 2 T ( n / 2 ) + 5 n - 6 for n 2 0 for n = 1

which is in Θ ( n log n ) .

Split-radix

In 1968 a derivitive of the Cooley-Tukey algorithm broke the record for the lowest number of arithmetic operations for computing theDFT  [link] , [link] , [link] . The algorithm was initially discovered by Yavne  [link] , but was not widely cited until 1984 when it was rediscovered by Duhamel and Hollman  [link] and became known as the split-radix algorithm.

The split-radix algorithm improves the arithmetic complexity of the Cooley-Tukey algorithm by further decomposing the odd parts into odd-odd andodd-even parts, while the even parts are left alone because they have no multiplicative factor. More formally, [link] can be re-written as three sums:

X k = n 2 = 0 N / 2 - 1 ω N 2 n 2 k x 2 n 2 + n 4 = 0 N / 4 - 1 ω N ( 4 n 4 + 1 ) k x 4 n 4 + 1 + n 4 = 0 N / 4 - 1 ω N ( 4 n 4 + 3 ) k x 4 n 4 + 3

where n = 4 n 4 = 2 n 2 . As with the Cooley-Tukey radix-2 example in "Cooley-Tukey" , the trigonometric coefficients are expanded and simplified, and the termsconstant with respect to the index variables factored out:

X k = n 2 = 0 N / 2 - 1 ω N / 2 n 2 k x 2 n 2 + ω N k n 4 = 0 N / 4 - 1 ω N / 4 n 4 k x 4 n 4 + 1 + ω N 3 k n 4 = 0 N / 4 - 1 ω N / 4 n 4 k x 4 n 4 + 3

By substituting the even sum with U k (where k = 0 , , N / 2 - 1 ) and the odd sums with Z k and Z k ' (where k = 0 , , N / 4 - 1 ), [link] is simplified:

X k = U k + ω N k Z k + ω N 3 k Z k '

Computation can be factored out of [link] by again exploiting periodicity in the sub-transforms and symmetries in the twiddlefactors. [link] is first expressed as an equation of four parts:

X k = U k + ω N k Z k + ω N 3 k Z k ' X k + N / 2 = U k + N / 2 + ω N k + N / 2 Z k + N / 2 + ω N 3 ( k + N / 2 ) Z k + N / 2 ' X k + N / 4 = U k + N / 4 + ω N k + N / 4 Z k + N / 4 + ω N 3 ( k + N / 4 ) Z k + N / 4 ' X k + 3 N / 4 = U k + 3 N / 4 + ω N k + 3 N / 4 Z k + 3 N / 4 + ω N 3 ( k + 3 N / 4 ) Z k + 3 N / 4 '

where k = 0 , , N / 4 - 1 . The periodicity properties of the sub-transforms can be expressed with the relationships U k = U k + N / 2 , Z k = Z k + N / 4 and Z k ' = Z k + N / 4 ' . These are used to simplify [link] thus:

X k = U k + ω N k Z k + ω N 3 k Z k ' X k + N / 2 = U k + ω N k + N / 2 Z k + ω N 3 ( k + N / 2 ) Z k ' X k + N / 4 = U k + N / 4 + ω N k + N / 4 Z k + ω N 3 ( k + N / 4 ) Z k ' X k + 3 N / 4 = U k + N / 4 + ω N k + 3 N / 4 Z k + ω N 3 ( k + 3 N / 4 ) Z k '

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Computing the fast fourier transform on simd microprocessors. OpenStax CNX. Jul 15, 2012 Download for free at http://cnx.org/content/col11438/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Computing the fast fourier transform on simd microprocessors' conversation and receive update notifications?

Ask