DSP Mod2@AzDOCUMENTS.in (1)
DSP Mod2@AzDOCUMENTS.in (1)
Fast Fourier Transforms Algorithms: Introduction, decimation in time algorithm, first decomposition, number
DFT of the signal is used for spectrum analysis. DFT can be computed on digital computer or digital signal
processor. The signal to be analyzed is passed through anti- max.
The N-point DFT of a sequence x(n) converts the time domain N-point sequence x(n) to a frequency domain
N-point sequence X(k). The direct computation of an N-point DFT requires N2complex multiplications and
N(N 1) complex additions. Many methods were developed for reducing the number of calculations involved.
The most popular of these is the Fast Fourier Transform (FFT), a method developed by Cooley and Turkey.
The FFT may be defined as an algorithm (or a method) for computing the DFT efficiently (with reduced
number of calculations). The computational efficiency is achieved by adopting a divide and conquer approach.
This approach is based on the decomposition of an N-point DFT into successively smaller DFTs and then
combining them to give the total transform. Based on this basic approach, a family of computational
algorithms were developed and they are collectively known as FFT algorithms. Basically there are two FFT
algorithms; Decimation in-time (DIT) FFT algorithm and Decimation-in-frequency (DIF) FFT algorithm. In
this chapter, we discuss DIT FFT and DIF FFT algorithms and the computation of DFT by these methods.
FAST FOURIER TRANSFORM ALGORITHM (FFT)
1. Large number of the applications such as filtering, correlation analysis, spectrum analysis require
calculation of DFT. But direct computation of DFT require large number of computations and hence processor
remain busy. Hence special algorithms are developed to compute DFT quickly called as Fast Fourier
algorithms (FFT).
2. The radix-2 FFT algorithms are based on divide and conquer approach. In this method, the N-point DFT is
e number of computations are
reduced.
The discrete Fourier transform (DFT) plays an important role in the analysis, design, and implementation of
discrete-time signal-processing algorithms and systems. The basic properties of the Fourier transform and
discrete Fourier transform, discussed make it particularly convenient to analyze and design systems in the
Fourier domain. Equally important is the fact that efficient algorithms exist for explicitly computing the DFT.
As a result, the DFT is an important component in many practical applications of discrete-time systems.
DFT is identical to samples of the Fourier transform at equally spaced frequencies. Consequently,
computation of the N-point DFT corresponds to the computation of N samples of the Fourier transform at N
equally spaced frequencies Wk = 2 k/N, i.e., at N points on the unit circle in the z-plane.
We discussed the several methods for computing values of the DFT. The major focus of the chapter is a
particularly efficient class of algorithms for the digital computation of the N-point DFT. Collectively, these
efficient algorithms are called fast Fourier transform (FFT) algorithms. To achieve the highest efficiency, the
FFT algorithms must compute all N values of the DFT. When we require values of the DFT over only a
portion of the frequency range 0 2 , other algorithms may be more efficient and flexible, even though
they are less efficient than the FFT algorithms for computation of all the values of the DFT. Examples of such
algorithms are the Goertzel algorithm and the chirp transform algorithm.
Index Binary Representation Bit Reversed Binary Bit Reversed Index
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
3) WN2= WN/2.
V= log10 N / log10 2
= log2 N
Thus if value of N is 8 then the value of v=3. Thus, three stages of decimation. Total number of butterflies
will be N.v/2 = 12.
If value of N is 16 then the value of v=4. Thus four stages of decimation. Total number of butterflies will be
Nv/2 = 32.
Each butterfly operation takes two addition and one multiplication operations. Direct computation requires N 2
multiplication operation & N2 N addition operations.
Direct computation DIT FFT algorithm
Improvement in
N Complex Complex Complex Complex processing speed for
Multiplication Addition Multiplication Addition multiplication
N2 N2 - N N/2 log2 N N log2 N
8 64 52 12 24 5.3 times
From values a and b new values A and B are computed. Once A and B are computed, there is no need to store
a and b. Thus, same memory locations can be used to store A and B where a and b were stored hence called as
In place computation. The advantage of in place computation is that it reduces memory requirement.
Thus, for computation of one butterfly, four memory locations are required for storing two complex numbers
A and B. In every stage there are N/2 butterflies hence total 2N memory locations are required. 2N locations
are required for each stage. Since stages are computed successively these memory locations can be shared. In
every stage N/2 twiddle factors are required hence maximum storage requirements of N point DFT will be
(2N + N/2).
Decimation-in-Time Fast Fourier Transform Algorithms ( DIT-FFT)
In computing the DFT, dramatic efficiency results from decomposing the computation into successively
smaller DFT computations. In this process, we exploit both the symmetry and the periodicity of the complex
exponential WNkn = e- . Algorithms in which the decomposition is based on decomposing the sequence
x[n] into successively smaller subsequences are called decimation-in-time algorithms.
The principle of the decimation-in-time algorithm is most conveniently illustrated by considering the special
case of N an integer power of 2, i.e., N = 2v. Since N is an even integer, we can consider computing X[k] by
separating x[n] into two (N/2)-point3 sequences consisting of the even-numbered points in x(n) and the odd-
numbered points in x[n]. With X[k] given by
Fig.2 shows N/2 point DFT base separated in N/4 boxes. In such cases equations become
g1(k) =P1(k) + WN2k P2(k)
g1(k+N/2) =p1(k) - WN2k P2(k)
Figure 1. Flow graph of complete decimation-in-time decomposition of an 8-point DFT computation.
The basic computation in the DIT FFT algorithm is illustrated in Fig. below, which is called a butterfly
because the shape of its flow graph resembles a butterfly. The symmetry and periodicity of W N r can be
0
exploited to obtain further reductions in computation. The multiplications by W N= 1, WNN/2 = -1, WNN/4 = j
and WN3N/2 = -j can be avoided in the DFT computation process in order to save the computational
complexity.
In the 8-point DIT FFT flow graph shown in Fig. below, W20,W24 and W28 are equal to 1, and hence these
scale factors do not actually represent complex multiplications. Also, since W20,W24 and W28 equal to -1, they
do not represent a complex multiplication, where there is just a change in sign. Further, W14,W34, W28 and W86
are j or -j, they need only sign changes and interchanges of real and imaginary parts, even though they
represent complex multiplications. When N = 2L, the number of stages of computations is L = log2 N. Each
stage has N complex multiplications and N complex additions. Therefore, the total number of complex
multiplications and additions in computing all N-DFT samples is equal to N log2N. Hence, the number of
complex multiplications is reduced from N2 to N log2N.
In the reduced 8-point DIT FFT flow graph shown in Fig. below, there are actually only four non-trivial
complex multiplications corresponding to these scale factors. When the size of the transform is increased, the
proportion of nontrivial complex multiplications is reduced and Nlog2N approximation becomes a little closer.
The decimation-in-time FFT algorithm decomposes the DFT by sequentially splitting input samples x (n) in
the time domain into sets of smaller and smaller subsequences and then forms a weighted combination of the
DFTs of these subsequences. Another algorithm called decimation-in-frequency FFT decomposes the DFT by
recursively splitting the sequence elements X(k) in the frequency domain into sets of smaller and smaller
subsequences. To derive the decimation-in-frequency FFT algorithm for N, a power of 2, the input sequence x
(n) is divided into the first half and the last half of the points as discussed below.
N/2-1 N/2-1
kn k(n+N/2)
N N (2)
m=0 m=0
N/2-1 N/2-1
kn
N + WNkN/2 WNkn
m=0 m=0
N/2-1
x (n) + (-1)k x(n + N/2) WNkn (3)
m=0
N/2-1
x (n) + (-1)2k x(n + N/2) WN2kn (4)
m=0
N/2-1
x (n)+(-1)(2k+1) x(n + N/2)WN(2k+1)n (5)
m=0
DFT computation.
DIFFERENCE BETWEEN DIT FFT AND DIF FFT
DITFFT algorithms are based upon DIFFFT algorithms are based upon
1 decomposition of the input sequence into decomposition of the output sequence into
smaller and smaller sub sequences. smaller and smaller sub sequences.
1. Develop the DIT FFT algorithm for decomposing the DFT for N = 8 and draw the flow diagram.
Given x(n) = ( 1, 2, 3, 4, 4, 3, 2, 1).
DIFFERENCE BETWEEN DIRECT COMPUTATION & FFT
(1) Flexibility. Digital signal processing operations are flexible as the operations can be changed by changing
the program.
(2) Tolerance. Unlike analog circuits the operation of the digital circuits does not depend on precise values of
the digital signals. As a result, the digital circuits are tolerance component values.
(3) Component drift with temperature and time. Digital systems are fairly independent of temperature,
aging (time), and most other external parameters, for example due to change in temperature, the internal
resistance R may change in analog systems on the other hand, digital systems use logic 1 or logic 0 which are
independent of temperature.
(4) System Size. Analog systems normally use L, C and R, therefore size of hardware is large as compared to
digital system.
(5) Storage. Digital signals are easily stored on magnetic media (e.g. tape, and disc) without deterioration or
loss of signal fidelity, therefore the signal becomes transportable and can be processed off-line in a remote
laboratory. On the other hand, stored analog signals deteriorate rapidly as time progresses and cannot be
recovered in their original form.
(6) Implementation. It is very difficult to perform precise mathematical operations on signal in analog form
but these same operations can be routinely implemented on the digital computer using hardware.
(7) Cost. Digital signal processing allows the sharing of a given processor among a number of signals by time
sharing. Thus, reducing the cost of processing per signal. This is done by "time-division multiplexing".
The FFT algorithms are based on two basic methods. The first one is divide and conquer approach. In this
method the 'N' point DFT is divided successively to 2-point DFTs to reduce calculations. In this method,
Radix-2, Radix-4, decimation in lime, decimation in frequency etc. type of FFT algorithms are developed.
The second one is based on linear filtering. Based on this method, there are two algorithms. Goertzel
algorithm and the chirp-z transform algorithm. This complete classification is listed shown in figure below.
Radix-2 FFT Algorithms
The radix-2 FFT algorithms are based on divide and conquer approach. In this approach the N-point DFT is
successively decomposed into smaller DFTs. Because of this decomposition, the number of computations are
reduced.
Let value of 'N' be selected such that N = 2v. This N-point DFT is decomposed successively such that smallest
DFT will be of size N=2. Hence this type of algorithms are called as Radix-2, or radix of these algorithms is
'2'.
Example 7.1 Draw the butterfly line diagram for 8-point FFT calculation and briefly explain. Use
decimation-in-time algorithm.
Solution:
The butterfly line diagram for 8-point DIT FFT algorithm is shown in Figure 7.15. For 8-point DIT FFT, the
input sequence x(n) = {x(0), x(1), x(2), x(3), x(4), x(5), x(6), x(7)}, must be fed in bit reversed order, i.e. as
xr(n) = {x(0), x(4), x(2), x(6), x(1), x(5), x(3), x(7)}. Since N = 2m = 23 , the 8-point DFT computation using
radix-2 FFT involves 3 stages of computation, each stage involving 4 butterflies. The output X(k) will be in
normal order. In the first stage, four 2-point DFTs are computed. In the second stage they are combined into
two 4-point DFTs. In the third stage, the two 4-point DFTs are combined into one 8-point DFT. The 8-point
FFT calculation requires 8 log28 = 24 complex additions and (8/2) log28= 12 complex multiplications.
EXAMPLE 7.2 Implement the decimation-in-frequency FFT algorithm of N-point DFT where N = 8.
Also explain the steps involved in this algorithm.
Solution:
The 8-point radix-2 DIF FFT algorithm involves 3 stages of computation. The input to the first stage is the
input time sequence x(n) in normal order. The output of first stage is the input to the second stage and the
output of second stage is the input to the third stage. The output of third stage is the 8-point DFT in bit
reversed order.
In DIF algorithm, the frequency domain sequence X(k) is decimated. In this algorithm, the N-point time
domain sequence is converted to two numbers of N/2-point sequences. Then each N/2-point sequence is
converted to two numbers of N/4-point sequences. Thus, we get 4 numbers of N/4, i.e. 2-point sequences.
Finally, the 2-point DFT of each 2-point sequence is computed. The 2-point DFTs of N/2 number of 2-point
sequences will give N-samples which is the N-point DFT of the time domain sequence. The implementation
of the 8-point radix-2 DIF FFT algorithm is shown in Figure 7.16.
Text Book:
1 Introduction to Digital Signal Processing Jhonny R. Jhonson Pearson 1st Edition, 2016.
Reference Books:
2. Digital Signal Processing A.Nagoor Kani McGraw Hill 2nd Edition, 2012
5 Digital Signal Processing Tarun Kumar Rawat Oxford 1st Edition, 2015