Você está na página 1de 2

Fast Fourier Transform (FFT) Algorithm

A Fast Fourier transform (FFT) is an algorithm to compute the Discrete Fourier Transform
(DFT) and its inverse. While it produces the same result as the other approaches, it is
incredibly more efficient, often reducing the computation time by hundreds. To understand
the concepts of a Fast Fourier Transform, first we need to understand the basics of a DFT.
The DFT is a transformation which converts a periodic time signal f [n] (with period N) in the
n-domain into a periodic discrete signal F [k] in the k domain (having the same period)
according to the relation
F[k] = n=0N-1f[n]e-2ink/N = f[0]+f[1]e-2ik/N+..+f[N-1]e-2ik(N-1)/N
The FFT is based on the complex DFT, a more sophisticated version of the real DFT. The real
DFT transforms an N point time domain signal into two N/2 + 1 point frequency domain
signals. The two signals in the frequency domain are called the real part and the imaginary
part, holding the amplitudes of the cosine waves and sine waves, respectively. The complex
DFT transforms two N point time domain signals into two N point frequency domain signals.
The two time domain signals are called the real part and the imaginary part, just as are the
frequency domain signals. In spite of their names, all of the values in these arrays are just
ordinary numbers.
If we now want to compute F[k] for a certain value of k, then we will need N 1 (complex)
multiplications and N 1 (complex) additions to do so. If a multiplication or an addition
constitutes an elementary operation, then we need 2N 2 elementary operations to
compute F[k] for any given k. If we want to determine F[k] for all k {0, 1, . . . , N 1}, then
we would require 2N2 2N elementary operations. We then say that in a direct calculation
of an N-point DFT the number of elementary operations is of order N2, for large N. In
applications we will often have to compute DFTs based on a large number of points. This will
then result in many elementary operations, and thus in a large number of round-off errors
and a considerable computing time. However, there are certain algorithms that reduce the
number of elementary operations substantially. Most often, these algorithms are based on
the factorization of N into prime numbers, and are known collectively as Fast Fourier
Transform, abbreviated as FFT. In the most popular versions, N is a power of 2

How FFT works:


The FFT operates by decomposing an N point time domain signal into N time domain signals
each composed of a single point. The second step is to calculate the N frequency spectra
corresponding to these N time domain signals. Lastly, the N spectra are synthesized into a
single frequency spectrum.
For example, a 16 point signal is decomposed through four separate stages. The first stage
breaks the 16 point signal into two signals each consisting of 8 points. The second stage

decomposes the data into four signals of 4 points. This pattern continues until there are N
signals composed of a single point. An interlaced decomposition is used each time a signal is
broken in two, that is, the signal is separated into its even and odd numbered samples.
There are Log2N stages required in this decomposition.
Now that you understand the structure of the decomposition, it can be greatly simplified.
The decomposition is nothing more than a reordering of the samples in the signal. The FFT
time domain decomposition is usually carried out by a bit reversal sorting algorithm. This
involves rearranging the order of the N time domain samples by counting in binary with the
bits flipped left-for-right.
The next step in the FFT algorithm is to find the frequency spectra of the 1 point time
domain signals which is nothing but equal to itself. The last step in the FFT is to combine the
N frequency spectra in the exact reverse order that the time domain decomposition took
place.

Applications of FFT Algorithm


FFTs can be used to perform the spectrum analysis of signals. For instance, all modern
spectrum analysers for audio signals use FFTs to compute the magnitude of the input signal
versus frequency. Also, most of the digital scopes, besides showing the input signal in the
time domain, can compute its spectrum with an FFT.
FFT implementation led to fast discrete cosine transformation (Fast DCT) which is backbone
of Image Compression algorithms like MPEG.
In some subjects such as x ray diffraction and radio interferometry, the observational data
require Fourier transformation in order to be presented in customary ways, such as
molecular shape, crystal structure, or a brightness distribution map of a celestial source. In
these fields the introduction of FFT merely speeds up what was already practised.
In some applications Fourier transform in taken to perform some operation and then
retransforms. For example, if we had a photographic enlargement that was grainy we might
subject the photograph to two dimensional low-pass filtering. First we should digitalize it
into a two-dimensional array of numbers, although it might be already in a digitalized form.
Then we use the two dimensional DFT and solve it using FFT algorithm.

References:
The Fourier Transform and Its Applications BRACEWELL
The Fast Fourier Transform and Its Applications -JAMES W. COOLEY, PETER A. W.
LEWIS, PETER D. WELCH
Stanford Notes on Fast Fourier Transform

Você também pode gostar