Efficient Computation of
the DFT: Fast Fourier
Transform Algorithms
As we have observed the preseding chapter, the dsrte our transform (DFT)
plays an important role in many applications of digital signal processing, includi
linear filtering, correlation analysis, and spectrum analysis. A major
importance is the existence of efficient algorithms for computing the DFT.
The main topic of this chapter is the description of computationally efficient
algorithms for evaluating the DFT. Two different approaches are described. One is,
a divide-and-conquer approach in which a DFT of size V, where N is a composite
‘number, is reduced to the computation of smaller DFTs from which the larget DFT
is computed. In particular, we present important computational algorithms, called
fast Fourier transform (FFT) algorithms, for computing the DFT when the size N is,
a power of 2 and when itis a power of 4
‘The second approach is based on the formulation of the DFT as a linear filtering
operation on the data. This approach leads to two algorithms, the Goertzel algorithm
‘and the chirp-z transform algorithm, for computing the DFT via linear filtering of
the data sequence.
son for its
8.1 Efficient Computation of the DFT: FFT Algorithms
In this section we present several methods for computing the DFT efficiently. In view
of the importance of the DFT in various digital signal processing applications, such as
linear filtering, correlation analysis, and spectrum analysis its efficient computation is
a topic that has received considerable attention by many mathematicians, engineers,
and applied scientists
Basically, the computational problem for the DFT is to compute the sequence
{X(@)} of N complex-valued numbers given another sequence of data (x(n)} of length
511512 Chapter ficient Computation ofthe DFT: Fast Fourier Transform Algorithms
N, according to the formula
x@M= DT x@wy (1.1)
Wy =e /8 (8.1.2)
In general, the data sequence x(n) is also assumed to be complex valued.
Similarly, the IDFT becomes
ye .
xn) = XGW ° (813)
Since the DFT and IDFT involve basically the same type of computations, our discus.
sion of efficient computational algorithms for the DFT applies as well to the efficient
computation of the IDFT.
We observe that for each value of k, direct computation of X(k) involves
‘complex multiplications (4N real multiplications) and N—1 complex additions (4N —
2 real additions). Consequently, to compute all N values of the DFT requires N?
‘complex multiplications and N? — N complex additions.
Direct computation of the DFT is basically inefficient, primarily because it does
not exploit the symmetry and periodicity properties of the phase factor Wy. In
particular, these two properties are:
Symmetry property: WA"? = —Wh
Periodicity property: WA" = Wh
The computationally efficient algorithms described in this section, known collectively
as fast Fourier transform (FFT) algorithms, exploit these two basic properties of the
phase factor.
8.1.1 Direct Computation of the DFT
valued sequence x(n) of N points, the DFT may be expressed as
] 616)
17
For a comple)
Xn(k) [xt e08™ + xp(n)sin
x) =—¥ [satin 2a
The direct computation of (8.1.6) and (8.1.7) requires:
L
2. 4N? real multiplications,
3. 4N(N ~ 1) real additions.
4, A number of indexing and addressing operations.
N? evaluations of trigonometric functions.
‘These
operat
and tc
compt
8.1.2
Thed
sible
decor
proac
as FF
1
DFT,
The:
sequ
?
Isi
and
Figvalued.
(8.13)
tations, our discus-
well to the efficient
£ X(k) involves
ditions (4N—
DFT requires N?
rly bee
se factor W
(4)
(8.5)
known collectively
properties of the
ne expressed as
(8.1.6)
8.1 Efficient Computation ofthe OFT FFT Algorthns 513
These operations are typical of DFT computational algorithms. The operations in
items 2 and 3 result in the DFT values X p(k) and X,(k). The indexing and addressing
operations are necessary to fetch the data x(n), 0