Fast Fourier Transform (FFT)
Fast Fourier Transform (FFT)
(FFT)
N k 0 n0
1 N 1
x[n]
N
k
X
k 0
e j 2kn / N
, n 0, 1, ..., N 1
j 2 / N
To simplify notations, lets define twiddle factor W N e
N 1
X k x[n]W Nkn , k 0, 1, ..., N 1
n 0
1 N 1
x[n]
N
k N , n 0, 1, ..., N 1
X W
k 0
kn
(WN ) W N
N
N
e
j 2 / N N
e j 2 1
02/10/2023 Dr Ajay Singh Raghuvanshi 4
Most fast methods are based on symmetry properties
Conjugate symmetry
j2 / N k N n j2 / N kN
e e e j2 / Nk n e j2 / Nkn
W e
kn *
N
j 2kn / N *
e j 2kn / N
W kn
N
Periodicity in n
j2 / N kn j2 / N k n N j2 / N k N n
e e e
kn k ( n N ) kn N
W N WN WN .WN As
(WN ) WN
N
N
e j 2 / N N
e j 2
1
kn k ( n N ) n(k N )
W N W N W N
02/10/2023 Dr Ajay Singh Raghuvanshi 5
FFT Algorithms
Note that two length N/2 DFTs take less
computation than one length N DFT:
2(N/2)2<N2
There are basically two types of FFT
Algorithms and one hardware implementation
Decimation in Time
Decimation in frequency
The Goertzel Algorithm
r 0 r 0
N / 2 1 N / 2 1
G[k] and H[k] are
the N/2-point DFT’s
x[2r ]W
r 0
rk
N /2 WNk x[2r 1]W
r 0
rk
N /2
of each
Gk WNk H k subsequence
02/10/2023 Dr Ajay Singh Raghuvanshi 7
N
X k Gk WNk H k and usi ngsymtry
2
N N
X k Gk WNk H k for k 0,1,... 1
2 2
N 1 ( N / 2 ) 1 N 1
X [2r ] x[n]W n(2r )
N x[n]W n(2r )
N x[ n ]W n(2r )
N
n 0 n 0 n ( N / 2)
( N / 2 ) 1 ( N / 2 ) 1
X [ 2r ] x[
n 0
n ]W 2 nr
N x[
n 0
n ( N / 2)]W 2 r ( n ( N / 2 ))
N
Since
WN2 r [ n ( N / 2)] WN2 rnWNrN WN2 rn
2
and WN WN / 2
( N / 2 ) 1
X [ 2r ] ( x
n 0
[ n ] x[ n ( N / 2 )])W rn
N /2 r 0,1,..., ( N / 2) 1
Since
N 1 ( N / 2 ) 1
x[ n
n N / 2
]W n ( 2 r 1)
N x[
n 0
n ( N / 2 )]W ( n N / 2 )( 2 r 1)
N
( N / 2 ) 1
WN( N / 2 )( 2 r 1) x[
n 0
n ( N / 2)]
W n ( 2 r 1)
N
( N / 2 ) 1
x[
n 0
n ( N / 2)]
W n ( 2 r 1)
N
We obtain
( N / 2 ) 1
X [2r 1] ( x
n 0
[ n ] x[ n N / 2])W n ( 2 r 1)
N
( N / 2 ) 1
( x
n 0
[ n ] x[ n N / 2])W n
N W nr
N /2 r 0,1,..., ( N / 2) 1