Page 102 - DSP Integrated Circuits
P. 102

3.16 FFT—The Fast Fourier Transform Algorithm                         87

             and the inverse discrete Fourier transform (IDFT) is






             where W = e~J 2n/N . Generally, both x(n) and X(k) are complex sequences of length
             N. Also note that the discrete Fourier transform is a proper transform. It is not an
             approximation of the discrete-time Fourier transform of a sequence that was dis-
             cussed earlier. However, the two transforms are closely related.
                 A direct computation of the DFT or the IDFT, according to the program shown
                                 2
             in Box 3.2, requires N  complex arithmetic operations.


               Program Direct_DFT;
               var
                  x, Y: array[O..Nmimisl] of Complex;
               begin
                  for k := 0 to N-l do
                    begin
                       Y[k] := x[0];
                       for n := 1 to N-l do
                                       nk
                         Y[k] := Y[k] + W  * x[n];
                    end;
               end.

                                 Box 3.2. Direct computation of the DFT.


                 The time required for just the complex multiplications in a 1024-point DFT is
                                             2
                                  ^mult = 1024  • 4 • 100 ns = 0.419 s
             where we have assumed that one complex multiplication corresponds to four real
             multiplications and the time required for one real multiplication is 100 ns. This
             corresponds to a sample frequency of only 2.44 kHz. Hence, the direct computation
             approach is limited to comparatively short sequences due to the large computation
             time.



             3.16 FFT—THE FAST FOURIER TRANSFORM
                     ALGORITHM

             In 1965, Cooley and Tukey developed a fast algorithm which requires only
             O(Mog2(AO) operations [14]. The difference in execution time between a direct
             computation of the DFT and the new algorithm is very large for large N. For exam-
             ple, the time required for just the complex multiplications in a 1024-point FFT is

                        TVnult = 0.5 Mog 2(AO • 4 • 100 ns =
                              = 0.5 • 1024 Iog 2(1024) • 4 • 100 ns = 2.05 ms
             This corresponds to a sample frequency of 500 kHz. The sequence lengths in typi-
             cal applications are in the range 8 to 4096.
   97   98   99   100   101   102   103   104   105   106   107