0% found this document useful (0 votes)
59 views10 pages

Discrete Fourier Transform Computation Goertzel ' S Algorithm

Uploaded by

drashokyvuce
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views10 pages

Discrete Fourier Transform Computation Goertzel ' S Algorithm

Uploaded by

drashokyvuce
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Discrete Fourier Transform Goertzel’s Algorithm

Computation • A recursive DFT computation scheme that


• The N-point DFT X[k] of a length-N makes use of the identity
sequence x[n], 0 ≤ n ≤ N − 1, is defined by WN−kN = 1
X [k ] = ∑nN=−01x[ n]WNkn , 0 ≤ k ≤ N − 1 obtained using the periodicity of WN− k n
where
WN = e − j 2π / N • Using this identity we can write
N −1
• Direct computation of all N samples of X [k ] = ∑ x[l]WNkl
l =0
{X[k]} requires N 2complex multiplications N −1 N −1
and N ( N − 1) complex additions = WN− kN ∑ x[l]WNkl = ∑ x[l]WN− k ( N −l )
l =0 l =0
1 Copyright © 2010, S. K. Mitra 2 Copyright © 2010, S. K. Mitra

Goertzel’s Algorithm Goertzel’s Algorithm


−k ( n −l )
• Define yk [n] = ∑ln=0 xe [l]WN • z-transform of yk [n] = ∑ln=0 xe [l]WN−k ( n−l )
• Note: yk [n] is the direct convolution of the yields
causal sequence X e ( z)
Yk ( z ) = Z{ yk [n]} = = H k ( z) X e ( z)
xe [n] = ⎧⎨
x[n], 0 ≤ n ≤ N − 1 1 − WN− k z −1
⎩ 0, n < 0, n ≥ N
where H k ( z ) = Z{hk [n]} = 1 /(1 − WN−k z −1 )
with a causal sequence and X e ( z ) = Z{xe [ n]}
⎧ − kn
hk [n] = ⎨WN , n ≥ 0 • Thus, yk [n] is the output of an initially
⎩ 0, n<0 relaxed LTI digital filter H k (z ) with an
• Observe X [ k ] = yk [ n ] n = N input xe [n] and, when n = N, yk [ N ] = X [k ]
3 Copyright © 2010, S. K. Mitra 4 Copyright © 2010, S. K. Mitra

Goertzel’s Algorithm
Goertzel’s Algorithm
• Since a complex multiplication can be
• Structural interpretation of the algorithm - implemented with 4 real multiplications and
x e [n] yk [n]
2 real additions, computation of each new
x e [N] = 0 _ y k [ _1] = 0 value of yk [n] requires 4 real
z1

_k
multiplications and 4 real additions
WN
• Thus computation of X [k ] = yk [ N ] involves
• Thus a recursive DFT computation scheme 4N real multiplications and 4N real
is additions
yk [n] = xe [n] + WN− k yk [n − 1], 0 ≤ n ≤ N Computation of all N DFT samples
requires 4N 2 real multiplications and 4N 2
with yk [ −1] = 0 and xe [ N ] = 0 real additions
5 Copyright © 2010, S. K. Mitra 6 Copyright © 2010, S. K. Mitra

1
Goertzel’s Algorithm Goertzel’s Algorithm
• Recall, direct computation of all N samples of • Algorithm can be made computationally
2
{X[k]} requires N complex multiplications more efficient by observing that H k (z ) can
and N ( N − 1) complex additions be rewritten as
• Equivalently, direct computation of all N 1 1 − WNk z −1
H k ( z) = =
samples of {X[k]} requires 4N 2 real 1 − WN− k z −1 (1 − WN− k z −1 )(1 − WNk z −1 )
multiplications and N (4 N − 2) real additions
1 − WNk z −1
• Thus, Goertzel’s algorithm requires 2N more =
1 − 2 cos(2π k / N ) z −1 + z − 2
real additions than the direct DFT
computation resulting in a second-order realization

7 Copyright © 2010, S. K. Mitra 8 Copyright © 2010, S. K. Mitra

Goertzel’s Algorithm Goertzel’s Algorithm


v k [n] • Computation of each sample of vk [n]
yk [n]
x e [n]
x e [N] = 0 vk [ _1] = v k [ _ 2] = 0
involves only 2 real multiplications and 4
( )
2 cos 2πk
__
N z
_1

real additions
z
_1
_ Wk
N • Complex multiplication by WNk needs to
_1
be performed only once at n = N
• DFT computation equations are now • Thus, computation of one sample of X[k]
requires (2 N + 4) real multiplications and
vk [n] = xe [n] + 2 cos( 2π k / N ) vk [n − 1] (4 N + 4) real additions
− vk [ n − 2], 0 ≤ n ≤ N • Computation of all N DFT samples requires
X [k ] = yk [ N ] = vk [ N ] − WNk vk [ N − 1] 2 N ( N + 2) real multiplications and
4 N ( N + 1) real additions
9 Copyright © 2010, S. K. Mitra 10 Copyright © 2010, S. K. Mitra

Goertzel’s Algorithm Goertzel’s Algorithm


• In the realization of H N −k (z ), the multiplier • Thus, computation of X[k] and X [ N − k ]
in the feedback path is require 2(N+4) real multiplications and
2 cos( 2π ( N − k ) / N ) = 2 cos( 2πk / N ) 4(N+2) real additions
which is same as that in the realization of H k ( z ) • Computation of all N DFT samples require
vN − k [n] = vk [ n], i.e., the intermediate approximately N 2 real multiplications and
variables computed to determine X[k] can approximately 2 N 2 real additions
again be used to determine X [ N − k ]
• Number of real multiplications is about one-
• Only difference between the two structures
is the feed-forward multiplier which is now fourth and number of real additions is about
WN−k , that is the complex conjugate of WNk one-half of those needed in direct DFT
computation
11 Copyright © 2010, S. K. Mitra 12 Copyright © 2010, S. K. Mitra

2
Decimation-in-Time FFT Decimation-in-Time FFT
Algorithm Algorithm
• Consider a sequence x[n] of length N = 2μ
• Evaluating on the unit circle at N equally
• Using a 2-band polyphase decomposition spaced points z = WN− k , 0 ≤ k ≤ N − 1, we
we can express its z-transform as arrive at the N-point DFT of x[n]:
X ( z ) = X 0 ( z 2 ) + z −1 X1( z 2 ) X [k ] = X 0 [〈 k 〉 N / 2 ] + WNk X1[〈 k 〉 N / 2 ],
where 0 ≤ k ≤ N −1
( N / 2) −1 ( N / 2) −1
X 0 ( z) = ∑ x0[n] z − n = ∑ x[2n]z −n where X 0 [ k ] and X1[k ] are the (N/2)-point
n =0 n =0
( N / 2) −1 ( N / 2) −1 DFTs of the (N/2)-length sequences x0[n]
−n
X1 ( z ) = ∑ x1[n] z = ∑ x[2n + 1] z − n and x1[n]
13 n =0 n =0 14
Copyright © 2010, S. K. Mitra Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT Decimation-


Decimation-in-
in-Time FFT
Algorithm Algorithm
( N / 2) −1
• i.e., X 0[k ] = ∑ x0[r ]WNrk/ 2 • Note: x0[n] is the N2 -length sequence formed
r =0 from the even-indexed samples of x[n] and
( N / 2) −1
x1[n] is the N2 -length sequence formed from
= ∑ x[2r ]WNrk/ 2 , 0 ≤ k ≤ N2 − 1
r =0 the odd-indexed samples of x[n]
( N / 2) −1 • Generation of x0[n] and x1[n] is shown below
X1[k ] = ∑ x1[r ]WNrk/ 2
r =0 x[n] 2 x 0[n] = x[2n]

( N / 2) −1
= ∑ x[2r + 1]WNrk/ 2 , 0 ≤ k ≤ N2 − 1
x[n+1]
x[n] z 2 x 1[n] = x[2n+1]

r =0
15 Copyright © 2010, S. K. Mitra 16 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
Algorithm
• Flow-graph representation
• Block-diagram interpretation of the DFT X 0[0]
x[0]
computation is shown below x[2]
X [1]
N - point 0
WN
0
X[0]

X[1]
2 1
DFT X 0[2]
WN
x0 [ n ] N − point X 0 [〈 k 〉 N / 2 ] x[4] X[2]

+
2
X 0[3] WN
x[n ] 2 2 X [k ] x[6] X[3]
WNk
DFT X1[0] WN
3

z WNk x[1] 4
WN
X[4]
x[3] N - point X1[1]
X[5]
x1[ n ] N − point X 1[ 〈 k 〉 N / 2 ] 2 5
X1[2] WN
x[5] DFT
2 2
X1[3]
6
WN
X[6]
DFT x[7] X[7]
7
WN

17 Copyright © 2010, S. K. Mitra 18 Copyright © 2010, S. K. Mitra

3
Decimation-in-Time FFT Decimation-in-Time FFT
Algorithm Algorithm
• Direct computation of the N-point DFT • For N ≥ 3, ( N 2 / 2) + N < N 2
requires N 2 complex multiplications and • Continuing the process we can express X 0[k ]
N 2 − N ≈ N 2 complex additions and X1[k ] as a weighted combination of
• Computation of the N-point DFT using the two (N/4)-point DFTs
modified scheme requires the computation of • For example, we can write
two (N/2)-point DFTs that are then combined X 0 [k ] = X 00[〈 k 〉 N / 4 ] + WNk / 2 X 01[〈 k 〉 N / 4 ],
with N complex multiplications and N 0 ≤ k ≤ ( N / 2) − 1
complex additions resulting in a total of where X 00 [k ] and X 01[k ] are the (N/4)-
( N 2 / 2) + N complex multiplications and point DFTs of the (N/4)-length sequences
approximately ( N 2 / 2) + N complex additions x00[n] = x0[ 2n] and x01[n] = x0 [2n + 1]
19 Copyright © 2010, S. K. Mitra 20 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
Algorithm
• Block-diagram representation of the two-
• Likewise, we can express stage algorithm X [〈 k 〉 ]
X1[ k ] = X 10 [〈 k 〉 N / 4 ] + WNk / 2 X 11[〈 k 〉 N / 4 ], x0 [ n ] x00 [ n ] N − point X 00 [ 〈 k 〉 N / 4 ]
0 N /2

x[n ] 2 2 4 + + X [k ]
0 ≤ k ≤ ( N / 2) − 1 z
W Nk
DFT
W Nk/ 2
where X10[k ] and X11[k ] are the (N/4)- x01 [ n ] N − point X 01 [ 〈 k 〉 N / 4 ] W Nk
2 4
DFT
point DFTs of the (N/4)-length sequences z X 1[〈 k 〉 N / 2 ]
x10[n] = x1[ 2n] and x11[n] = x1[ 2n + 1] 2
x1 [ n ] x10 [ n ] N − point
4
X 10 [ 〈 k 〉 N / 4 ]
+
2 W Nk
DFT
z W Nk / 2
x11 [ n ] N
− point X 11 [ 〈 k 〉 N / 4 ]
2 4
DFT
21 Copyright © 2010, S. K. Mitra 22 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
Algorithm
• In the flow-graph shown N =8
• Flow-graph representation
• Hence, the (N/4)-point DFT here is a 2-
X 00[0]
x[0] N _ point
4 X 00[1]
0
WN WN
0
X[0] point DFT and no further decomposition is
x[4] DFT
X[1]
x[2]
X 01[0]
2
WN 1
WN possible
N _ point 4 X[2]
WN 2
x[6]
4
DFT X 01[1]
6
WN
WN

WN
3
X[3] • The four 2-point DFTs, X ij [k ], i, j = 0,1
X10[0]
x[1] N _ point
4
DFT
X10[1]
0
WN WN
4 X[4]
can be easily computed
x[5] X[5]
2 5
x[3] N _ point
X11[0]
4
WN
WN WN

WN
6
X[6] • For example
4
X 00[k ] = x[0] + W2k x[4], k = 0,1
X11[1]
x[7] DFT X[7]
6 7
WN WN

23 Copyright © 2010, S. K. Mitra 24 Copyright © 2010, S. K. Mitra

4
Decimation-in-Time FFT Decimation-in-Time FFT
Algorithm Algorithm
• Complete flow-graph of the 8-point DFT is
• Corresponding flow-graph of the 2-point shown below
DFT is shown below obtained using the x[0] X[0]
identity W2k = WN( N / 2) k x[4]
0
WN WN
0
WN
0

X[1]
4 2 1
WN WN WN
x[2] 4 X[2]
0 WN 2
x[0] WN WN
X00[0] x[6]
4 6 3
X[3]
0 0 WN
W 2 = WN = 1 WN WN
x[1] X[4]
0 0 4
x[4] WN WN WN
X 00[1]
1 N/2
x[5] X[5]
5
W2 = WN = _1 4
WN
2
WN WN
x[3] 4 X[6]
0 6
WN WN WN
x[7] X[7]
4 6 7
WN WN WN

25 Copyright © 2010, S. K. Mitra 26 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
Algorithm
• Total number of complex multiplications
• The flow-graph consists of 3 stages and additions to compute all 8 DFT samples
• First stage computes the four 2-point DFTs is equal to 8 + 8 + 8 = 24 = 8× 3
• Second stage computes the two 4-point DFTs • In the general case when N = 2 μ , number of
• Last stage computes the desired 8-point DFT stages for the computation of the ( 2 μ )-point
• The number of complex multiplications and DFT in the fast algorithm will be μ = log 2 N
additions at each stage is equal to 8, the size • Total number of complex multiplications
of the DFT and additions to compute all N DFT
samples is N (log 2 N )
27 Copyright © 2010, S. K. Mitra 28 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
Algorithm • Examination of the flow-graph
x[0] X[0]
• In developing the count, multiplications x[4]
0
WN WN
0
WN
0

X[1]
with WN0 = 1 and WNN / 2 = −1 have been
4 2 1
WN WN WN
x[2] 4 X[2]
0 WN 2
WN WN
assumed to be complex x[6]

x[1]
4
WN
6
WN WN
3
X[3]

0 4 X[4]
0 WN
WN
• Also the symmetry property of x[5]
4
WN
WN

WN
2 5
WN
X[5]

WN( N / 2)+ k = −WNk


x[3] 4 X[6]
0 6
WN WN WN
x[7] X[7]
4 6 7
WN WN WN
has not been taken advantage of reveals that each stage of the DFT
• These properties can be exploited to reduce computation process employs the same
the computational complexity further basic computational module
29 Copyright © 2010, S. K. Mitra 30 Copyright © 2010, S. K. Mitra

5
Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
Algorithm
• In the basic module two output variables are
generated by a weighted combination of • Input-output relations of the basic module
two input variables as indicated below are:
Ψr +1[α ] = Ψr [α ] + WNl Ψr [ β ]
where r = 1,2,K, μ and α, β = 0,1,K, N − 1
Ψr +1[ β ] = Ψr [α ] + WNl + ( N / 2) Ψr [ β ]
ψr [α] ψr+1[α]
WN
• Substituting WNl +( N / 2) = −WNl in the second
ψr [β] ψr+1[β]
WN +(N/2)
equation given above we get
• Basic computational module is called a Ψr +1[ β ] = Ψr [α ] − WNl Ψr [ β ]
31
butterfly computation 32
Copyright © 2010, S. K. Mitra Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT Decimation-in-Time FFT


Algorithm Algorithm
• Modified butterfly computation requires • New flow-graph using the modified
only one complex multiplication as butterfly computational module for N = 8
indicated below x[0] X[0]

x[4] _1 X[1]
Ψr [α] Ψr+1[α] 0
WN
x[2] _1 X[2]
0
WN
x[6] _1 _1 X[3]
Ψr [β] _1 Ψr+1[β] 0
WN
2
WN
WN x[1]
0 _ 1 X[4]
WN
x[5] _1 _ 1 X[5]
0 1
WN
• Use of the above modified butterfly x[3]
WN
0 _1 2 _ 1 X[6]
WN WN
computation module reduces the total x[7]
0
WN
_1 2
WN
_1 3
WN _ 1 X[7]
number of complex multiplications by 50%
33 Copyright © 2010, S. K. Mitra 34 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
• Computational complexity can be reduced
Algorithm
further by avoiding multiplications by WN0 = 1, • At the end of computation at any stage,
WNN / 2 = −1 , WNN / 4 = j , and WN3 N / 4 = − j output variables Ψr +1[m] can be stored in the
• The DFT computation algorithm described same registers previously occupied by the
here also is efficient with regard to memory corresponding input variables Ψr [m]
requirements • This type of memory location sharing is
• Note: Each stage employs the same butterfly called in-place computation resulting in
computation to compute Ψr +1[α ] and Ψr +1[ β ] significant savings in overall memory
from Ψr [α ] and Ψr [ β ] requirements
35 Copyright © 2010, S. K. Mitra 36 Copyright © 2010, S. K. Mitra

6
Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
• In the DFT computation scheme outlined, Algorithm
the DFT samples X[k] appear at the output • Thus, a sequentially ordered input x[n] must
in a sequential order while the input be reordered appropriately before the fast
samples x[n] appear in a different order algorithm described by this structure can be
x[0] X[0]

x[4] _1 X[1]
implemented
0
WN
x[2]
0
WN
_1 X[2] • To understand the input reordering scheme
x[6]
0
WN
_1 2
WN
_1 X[3]
represent the arguments of input samples
x[1] _ 1 X[4]
x[5]
0
WN x[n] and their sequentially ordered new
_1 _ 1 X[5]
representations Ψ1[ m] in binary forms
0 1
WN WN
x[3] _1 _ 1 X[6]
0 2
WN WN
x[7]
37 0
WN
_1 2
WN
_1 3
WN _ 1 X[7] 38
Copyright © 2010, S. K. Mitra Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT Decimation-in-Time FFT


Algorithm Algorithm
• The relations between the arguments m and • Alternative forms of the fast DFT
n are as follows: algorithms can be obtained by reordering
m : 000 001 010 011 100 101 110 111
the computations such as input in normal
n : 000 100 010 110 001 101 011 111 order and output in bit-reversed order, and
both input and output in normal order
• Thus, if (b2b1b0) represents the index n of • The fast algorithm described assumes that
x[n], then the sample x[b2b1b0 ] appears at the length of x[n] is a power of 2
the location m = b0b1b2 as Ψ1[b0b1b2 ] before
the DFT computation is started • If it is not, the length can be extended by
zero-padding and make the length a power
• i.e., location of Ψ1[ m] is in bit-reversed of 2
order from that of x[n]
39 Copyright © 2010, S. K. Mitra 40 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
• Even after zero-padding, the DFT Algorithm
computation based on the fast algorithm • For example, the relation between x[n] and
may be computationally more efficient than its even and odd parts, x0 [n] and x1[n] ,
a direct DFT computation of the original generated by the first stage of the DIT
shorter sequence
algorithm is given by
• The fast DFT computation schemes
described are called decimation-in-time x[n] : x[0] x[1] x[ 2] x[3] x[ 4] x[5] x[6] x[7]
(DIT) fast Fourier transform (FFT) x0 [n] : x[0] x[ 2] x[ 4] x[6]
x1[ n] : x[1] x[3] x[5] x[7]
algorithms as input x[n] is first decimated to
form a set of subsequences before the DFT
is computed
41 Copyright © 2010, S. K. Mitra 42 Copyright © 2010, S. K. Mitra

7
Decimation-in-Time FFT
Algorithm Decimation-in-Time FFT
• Likewise, the relation between x[n] and the Algorithm
sequences x00 [n] , x01[n] , x10 [n], and x11[n],
generated by the two-stage decomposition • The subsequences x00 [ n], x01[n] , x10 [n], and
of the DIT algorithm is given by x11[n] can be generated directly by a factor-
of-4 decimation process leading to a single-
x[n] : x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] stage decomposition as shown on the next
x00 [ n] : x[0] x[4] slide
x01[ n] : x[ 2] x[6]
x10 [n] : x[1] x[5]
x11[n] : x[3] x[7]
43 Copyright © 2010, S. K. Mitra 44 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT
Decimation-in-Time FFT
Algorithm
Algorithm
X 0 [〈 k 〉 N / 2 ]
• Radix-R FFT algorithm - A each stage the
x00 [ n ] N − point X 00 [ 〈 k 〉 N / 4 ] decimation is by a factor of R
x[ n ] 4 4
W Nk
+ + X [k ]
DFT
W Nk/ 2
• Depending on N, various combinations of
z decompositions of X[k] can be used to
x01 [ n ] N − point X 01 [ 〈 k 〉 N / 4 ] W Nk
4 4
develop different types of DIT FFT
DFT
z X 1[〈 k 〉 N / 2 ] algorithms
x10 [ n ] N − point X 10 [ 〈 k 〉 N / 4 ]
4 4
W Nk
+ • If the scheme uses a mixture of decimations
DFT
W Nk/ 2
z by different factors, it is called a mixed
x11 [ n ] N
− point X 11 [ 〈 k 〉 N / 4 ]
4 4
DFT
radix FFT algorithm

45 Copyright © 2010, S. K. Mitra 46 Copyright © 2010, S. K. Mitra

Decimation-in-Time FFT Decimation-in-Frequency


Algorithm FFT Algorithm
• For N which is a composite number
expressible in the form of a product of • Consider a sequence x[n] of length N = 2 μ
integers: • Its z-transform can be expressed as
N = r1 ⋅ r2 L rν X ( z) = X a ( z) + z − N / 2 X b ( z)
total number of complex multiplications where
( N / 2) −1
(additions) in a DIT FFT algorithm based X a ( z) = ∑ x[n]z −n
on a ν -stage decomposition is given by n =0
⎛ν ⎞ ( N / 2) −1
⎜ ∑ ri −ν ⎟ N X b ( z) = ∑ x[ N2 + n]z −n
⎝ i =1 ⎠ n =0
47 Copyright © 2010, S. K. Mitra 48 Copyright © 2010, S. K. Mitra

8
Decimation-in-Frequency Decimation-in-Frequency
FFT Algorithm FFT Algorithm
• Evaluating X(z) on the unit circle at • For k even
( N / 2) −1
we get X [2l] = ( x[n] + x[ N + n])WN2nl
( N / 2) −1 ∑ 2
X [k ] = nk ( N / 2) −1 n =0
∑ x[n]WN
n =0 = ∑ ( x[n] + x[ N + n])WNnl/ 2 , 0 ≤ l ≤ N − 1
( N / 2) −1 n =0
2 2
+ WN( N / 2) k ∑ x[ N + n]WNnk • For k odd
2
n =0 ( N / 2) −1
which can be rewritten using the identity X [2l + 1] = ∑ ( x[ n] − x[ N + n]) WNn( 2l +1)
WN( N / 2) k = (−1) k as n =0
2
( N / 2) −1
( N / 2) −1 = ( x[n] − x[ N + n])WNn WNnl/ 2 , 0 ≤ l ≤ N − 1
X [k ] = ( x[n] + (−1) k x[ N + n])WNnk ∑
∑ 2 n =0
2 2
49 n =0 50
Copyright © 2010, S. K. Mitra Copyright © 2010, S. K. Mitra

Decimation-in-Frequency Decimation-in-Frequency
FFT Algorithm FFT Algorithm
• We can write • Thus X [2l] and X [2l + 1] are the (N/2)-
( N / 2) −1 point DFTs of the length-(N/2) sequences
X [2l] = ∑ x0[n] WNn( 2l ) x0 [ n] and x1[n]
n =0 • Flow-graph of the first-stage of the DFT
( N / 2) −1 algorithm is shown below
X [2l + 1] = ∑ x1[n] WNn ( 2l ) , 0 ≤ l ≤ N − 1 x[0]
x [0] 0
X[0]
2 x0[1]
n =0 x[1] N- point X[2]
x0[2] 2
DFT
where x[2]
x0[3]
X[4]

x0[n] = ( x[ n] + x[ N + n]),
x[3] X[6]
x1[0]
x[4] _ X[1]
2 1 W0
N x1[1] N
x[5] _ - point X[3]

x1[n] = ( x[ n] − x[ N + n])WNn , 0≤n≤ −1


N 1 W 1 x [2] 2
N 1 DFT
x[6] _ X[5]
2 2 1 WN2 x [3]
1
x[7] _ X[7]
51 Copyright © 2010, S. K. Mitra 52 1 WN3 Copyright © 2010, S. K. Mitra

Decimation-in-Frequency Decimation-in-Frequency
FFT Algorithm FFT Algorithm
• Here the input samples are in sequential • We next express the even- and odd-indexed
order, while the output DFT samples appear samples of each one of the two (N/2)-point
in a decimated form with the even-indexed DFTs as a sum of two (N/4)-point DFTs
samples appearing as the output of one • Process is continued until the smallest DFTs
(N/2)-point DFT and the odd-indexed are 2-point DFTs
samples appearing as the output of the other
(N/2)-point DFT

53 Copyright © 2010, S. K. Mitra 54 Copyright © 2010, S. K. Mitra

9
Decimation-in-Frequency Decimation-in-Frequency
FFT Algorithm FFT Algorithm
• Complete flow-graph of the decimation-in- • Computational complexity of the radix-2
frequency FFT computation scheme for N = 8 DIF FFT algorithm is same as that of the
x[0] X[0] DIT FFT algorithm
x[1] _ X[4]
1 0
WN • Various forms of DIF FFT algorithm can
x[2] _ X[2]
1 WN0
x[3] _ _ X[6] similarly be developed
1 WN2 1 0
WN
x[4] _
1 0
WN
X[1]
• The DIT and DIF FFT algorithms described
x[5] _ _ X[5]
1 WN1 1 0
WN here are often referred to as the Cooley-
x[6] _ _ X[3]
1 W2 1 0

x[7] _
N
_
WN
_ X[7] Tukey FFT algorithms
1 WN3 1 2
WN 1 0
WN
55 Copyright © 2010, S. K. Mitra 56 Copyright © 2010, S. K. Mitra

Inverse DFT Computation Inverse DFT Computation


• An FFT algorithm for computing the DFT • Multiplying both sides by N and taking the
samples can also be used to calculate complex conjugate we get
efficiently the inverse DFT (IDFT) N −1
Nx* [n] = ∑ X * [k ]WNnk
• Consider a length-N sequence x[n] with an k =0
N-point DFT X[k] • Right-hand side of above is the N-point
• Recall DFT of a sequence X*[k]
1 N −1 − nk
x[n] = ∑ X [k ]WN
N k =0
57 Copyright © 2010, S. K. Mitra 58 Copyright © 2010, S. K. Mitra

Inverse DFT Computation


• Desired IDFT x[n] is then obtained as
*
1 ⎧ N −1 ⎫
x[n] = ⎨ ∑ X * [k ]WNnk ⎬
N ⎩ k =0 ⎭
• Inverse DFT computation is shown below:
1
N
Re {X[k]} Re {x[n]}
N-point
DFT
Im {X[k]} Im {x[n]}
−1 1

N

59 Copyright © 2010, S. K. Mitra

10

You might also like