<< Chapter < Page
  Digital signal processing - dsp     Page 9 / 14
Chapter >> Page >

If we are clever enough, we can use these facts to develop a computational algorithm that can compute the Fourier transform of a time series much fasterthan can be obtained using a brute force DFT algorithm. Fortunately, some very clever people have already developed that algorithm. It goes by the name of theFast Fourier Transform, or FFT algorithm.

Steps in the FFT algorithm

In truth, there are several different forms of the FFT algorithm, and the mechanics of each may be slightly different. At least one, and probably many ofthe algorithms operate by performing the following steps:

  • Decompose an N-point complex series into N individual complex series, each consisting of a single complex sample. The order of the decompositionin an FFT algorithm is rather complicated. It is this order of decomposition, and the order of the subsequent recombination of transformresults that causes the FFT algorithm to be so fast. It is also that order that makes the algorithm somewhat difficult to understand. Note that theprogram that I will discuss later does not implement that special order of decomposition and recombination.
  • Calculate the transform of each of the N complex series, each consisting of a single complex sample. This treats each complex sample as if it islocated at the origin of a complex series. This step is trivial. The real part of the transform of a single complex sample located at the origin ofthe series is a complex constant whose values are proportional to the real and imaginary values that make up the complex sample. Since the complexinput series consists of only one complex sample, there is only one complex value in the complex transform.
  • Correct each of the N transform results to reflect the original position of the complex sample in the input series. This involves the application ofsine and cosine curves to the real and imaginary parts of the transform. This step is usually combined with the recombination step that follows.
  • Recombine the N transform results into a single transform result that represents the transform of the original complex series. This is a verycomplicated operation in a real FFT algorithm. It must reverse the order of decomposition in the first step described earlier. As mentioned earlier, itis the order of the decomposition and subsequent recombination that minimizes the arithmetic operations required and gives the FFT itstremendous speed. The program that I will discuss later does not implement the special order of decomposition and recombination used in an actual FFTalgorithm.

A sample program

I want to emphasize at the outset that this program DOES NOT implement an FFT algorithm. Rather, this program illustrates the underlying signal processingconcepts that make the FFT possible in a form that is more easily understood than is normally the case with an actual FFT algorithm.

Separate processes in an FFT algorithm

In summary, a typical FFT algorithm performs the following processes:

  • Decompose an N-point complex series into N individual complex series, each consisting of a single complex sample.
  • Recognize that the complex transform of a single complex sample is equal to the value of the complex sample.
  • Correct the transform for each complex sample to reflect the original position of the complex sample in the input series.
  • Recombine the N transform results into a single transform result that represents the transform of the original complex series.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Digital signal processing - dsp. OpenStax CNX. Jan 06, 2016 Download for free at https://legacy.cnx.org/content/col11642/1.38
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?

Ask