You are on page 1of 4

TITLE

Computational Complexity of FFT Algorithm

OBJECTIVE:
 To know the concept about FFT algorithm and measure complexity of FFT
algorithm

THEORY
Definition of the Fourier Transform

The Fourier transform (FT) of the function f(x) is the function F(ω), where:

x
F dx
and the inverse Fourier transform is

Recall that i 1 and eiθ = cosθ +isinθ.

Think of it as a transformation into a different set of basis functions. The Fourier


transform uses complex exponentials (sinusoids) of various frequencies as its basis
functions. (Other transforms, such as Z, Laplace, Cosine, Wavelet, and Hartley, use
different basis functions).

A Fourier transform pair is often written f(x) ↔ F(ω), or F( f(x)) = F(ω) where F
is the Fourier transform operator.

If f(x) is thought of as a signal (i.e. input data) then we call F(ω) the signal’s
spectrum. If f is thought of as the impulse response of a filter (which operates on
input data to produce output data) then we call F the filter’s frequency response.

Fast Fourier Transform (FFT) Algorithm

A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier
transform (DFT) of a sequence, or its inverse (IDFT). Fourier analysis converts a
signal from its original domain (often time or space) to a representation in the
frequency domain and vice versa. The DFT is obtained by decomposing a sequence
of values into components of different frequencies. This operation is useful in many
fields, but computing it directly from the definition is often too slow to be practical.

Butterflies and Bit-Reversal. TheFFT algorithm decomposes the DFT into log2 N
stages, each of which consists of N/2 butterfly computations. Each butterfly takes
two complex numbers p and q and computes from them two other numbers, p + αq
and p − αq, where α is a complex number. Below is a diagram of a butterfly
operation.

If we assume that N is even, we can write the N-point DFT of x(n) as

X(N)(k) =
n is even:

n is odd:

(1.31)
We make the following substitutions:

x0(m) = x(2m), where ,

x1(l) = x(2l + 1), where


.

Rewriting Eq. (1.31), we get

where ) is

the -point DFT of the even-numbered samples of x(n) and is the -point
DFT of the odd-numbered samples of x(n). Note that both of them are

-periodic discrete-time functions.


We have the following algorithm to compute X(N)(k) for k = 0,··· ,(N − 1) :

1. Compute

2. Compute
3. Perform the computation (1.32) with N complex multiplications and N complex
additions.

An FFT rapidly computes such transformations by factorizing the DFT matrix into a
product of sparse (mostly zero) factors. As a result, it manages to reduce the
complexity of computing the DFT from O(n2), which arises if one simply applies the
definition of DFT, to O(n logn), where n is the data size. The difference in speed can
be enormous, especially for long data sets where N may be in the thousands or
millions. In the presence of round-off error, many FFT algorithms are much more
accurate than evaluating the DFT definition directly. There are many different FFT
algorithms based on a wide range of published theories, from simple complex-number
arithmetic to group theory and number theory.

Fast fourier transforms (FFT) is a key tool in most of digital signal processing
systems such as medical systems. FFT is an effective method for calculation of
discrete fourier transform (DFT).
Radix-2 method proposed by Cooley and Tukey is a classical algorithm for FFT
calculation. Due to high computational complexity of FFT, higher radices algorithms
such as radix-4 and radix-8 have been proposed to reduce computational complexity.
On the other side, for real-time applications, such as medical applications, hardware
implementation of FFT is interested. Another application is in digital communication
systems based on Orthogonal Frequency Division Multiplexing, where FFT/IFFT
block processes input data in their physical layer. Simplicity of the algorithm is very
important to have efficient hardware architectures.

You might also like