Skip to content Skip to navigation

Connexions

You are here: Home » Content » The Fast Fourier Transform (FFT)

Navigation

Content Actions

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of Connexions content. You can think of it as a fancy kind of list that will let you see Connexions through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to Connexions materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual Connexions member, a community, or a respected organization.

This content is ...

Affiliated with (What does "Affiliated with" mean?)

This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • Rice University OCW

    This module is included inLens: Rice University OpenCourseWare
    By: OpenCourseWare ConsortiumAs a part of collection:"Signals and Systems"

    Click the "Rice University OCW" link to see all content affiliated with them.

Also in these lenses

  • richb's DSP

    This module is included inLens: richb's DSP resources
    By: Richard BaraniukAs a part of collection:"Signals and Systems"

    Comments:

    "My introduction to signal processing course at Rice University."

    Click the "richb's DSP" link to see all content selected in this lens.

Tags

(What is a tag?)

These tags come from the endorsement, affiliation, and other lenses that include this content.

The Fast Fourier Transform (FFT)

Module by: Justin Romberg

Summary: This module describes the fast Fourier Transform (FFT).

Introduction

The Fast Fourier Transform (FFT) is an efficient O(NlogN) algorithm for calculating DFTs

  • originally discovered by Gauss in the early 1800's
  • rediscovered by Cooley and Tukey at IBM in the 1960's
  • C.S. Burrus, Rice University's very own Dean of Engineering, literally "wrote the book" on fast DFT algorithms.
The FFT exploits symmetries in the WW matrix to take a "divide and conquer" approach. We won't talk about the actual FFT algorithm here, see these notes if you are interested in reading a little more on the idea behind FFT.

Speed Comparison

How much better is O(NlogN) than O( N2 N 2 )?

Figure 1: This figure shows how much slower the computation time of an O(NlogN) process grows.
Figure 1 (fft_f1.png)
NN 1010 100100 10001000 106106 109109
N2N2 100 104104 106106 10121012 10181018
NlogNNN 11 200200 30003000 6×1066106 9×1099109

Say you have a 1 MFLOP machine (a million "floating point" operations per second). Let N=1million=106 N 1 million 10 6 .

An O( N2 N 2 ) algorithm takes 10121012 flors → 106 10 6 seconds ≃ 11.5 days.

An O( NlogN N N ) algorithm takes 6×106 6 10 6 Flors → 6 seconds.

note:

N=1million N 1 million is not unreasonable.

Example 1

3 megapixel digital camera spits out 3×106 3 10 6 numbers for each picture. So for two NN point sequences fnfn and hnhn. If computing fnhn f n h n directly: O( N2 N 2 ) operations.

taking FFTs -- O(NlogN)

multiplying FFTs -- O(N)

inverse FFTs -- O(NlogN).

the total complexity is O(NlogN).

note:

FFT + digital computer were almost completely responsible for the "explosion" of DSP in the 60's.

note:

Rice was (and still is) one of the places to do research in DSP.

Comments, questions, feedback, criticisms?

Send feedback