0% found this document useful (0 votes)
40 views23 pages

Fast Fourier Transform (FFT)

The Fast Fourier Transform (FFT) is an efficient algorithm for computing the Discrete Fourier Transform (DFT), significantly reducing computation time from hours to seconds for large datasets. Proposed by Cooley and Tukey in 1965, FFT utilizes symmetry and periodicity properties of DFT to minimize the number of calculations required. Two main types of FFT algorithms are Decimation in Time (DIT) and Decimation in Frequency, both achieving a computational complexity of O(N log N).

Uploaded by

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

Fast Fourier Transform (FFT)

The Fast Fourier Transform (FFT) is an efficient algorithm for computing the Discrete Fourier Transform (DFT), significantly reducing computation time from hours to seconds for large datasets. Proposed by Cooley and Tukey in 1965, FFT utilizes symmetry and periodicity properties of DFT to minimize the number of calculations required. Two main types of FFT algorithms are Decimation in Time (DIT) and Decimation in Frequency, both achieving a computational complexity of O(N log N).

Uploaded by

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

Fast Fourier Transform (FFT)

Dr. Ajay Singh Raghuvanshi


Electronics & Telecommunication
Engineering, NIT, Raipur
FFT (Fast Fourier Transform)
 Algorithms that exploit computational savings are collectively called
Fast Fourier Transforms or FFT
 Fast Fourier transform proposed by Cooley and Tukey in 1965.
 The fast Fourier transform is a highly efficient procedure for
computing the DFT of a finite series and requires a smaller number
of computations than that of direct evaluation of DFT
 In 1969, the 2048-point analysis of a seismic trace took 13 ½ hours.
Using the FFT, the same task on the same machine took 2.4
seconds!
 FFT exploited symmetry and periodicity properties of DFT and
twiddle factor
02/26/2025 Dr Ajay Singh Raghuvanshi 2
Recall Discrete Fourier Transform: DFT
IDFT 𝑁 −1
DFT
𝑁 −1
𝑥 [𝑛 ]=
1
∑ 𝑋 [𝑘 ] 𝑒 𝑗 ( 2 𝜋 / 𝑁 ) 𝑘𝑛 𝑋 [ 𝑘 ] = ∑ 𝑥 [ 𝑛] 𝑒− 𝑗 ( 2 𝜋 / 𝑁 ) 𝑘𝑛

𝑁 𝑘=0 𝑛=0

Computational complexity of DFT and IDFT:


Each DFT coefficient requires
N complex multiplications
N-1 complex additions
All N DFT coefficients require
N2 complex multiplications
N(N-1) complex additions
 Complexity in terms of real operations
4N2 real multiplications
2N(N-1) real additions
02/26/2025 Dr Ajay Singh Raghuvanshi 3
To simplify notations, we define twiddle factor
− 𝑗 2𝜋 /𝑁
𝑊 𝑁 =𝑒
𝑁 −1
𝑋 𝑘= ∑ 𝑥[𝑛]𝑊 ,𝑘=0,1,..., 𝑁 −1 𝑘𝑛
𝑁
𝑛=0
Properties of Nth root of unity
− 𝑗 2𝜋/𝑁 − 𝑗 2𝜋/(𝑁/2) − 𝑗 4 𝜋/𝑁 2
𝑊 𝑁 =𝑒 , ¿𝑊 (𝑁/2)=𝑒 =𝑒 =𝑊 𝑁
02/26/2025 Dr Ajay Singh Raghuvanshi 4
Most fast methods are based on symmetry and periodic properties
Conjugate symmetry and N/2 Symmetry
𝒌𝒏 ∗ − 𝒋 𝟐 𝝅 𝒌𝒏/ 𝑵 ∗
( 𝑾 ) =( 𝒆 𝑵
) =𝒆 𝒋 𝟐 𝝅 𝒌𝒏 / 𝑵
=¿ ( 𝑾
− 𝒌𝒏
𝑵 )
𝒌 +𝑵 /𝟐 (
− 𝒋 𝟐 𝝅 𝒌+
𝑵
𝟐)𝒏/𝑵
− 𝒋 𝟐 𝝅 𝒌𝒏/ 𝑵 − 𝒋 𝝅 𝒌𝒏 −𝒌𝒏
𝑾 𝑵 =𝒆 =𝒆 𝒆 =− 𝑾 𝑵 ¿
Periodicity

𝑘+ 𝑁 𝑘𝑛 𝑁
𝑊 𝑁 =𝑊 .𝑊 𝐴𝑠 𝑁 𝑁
02/26/2025 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

02/26/2025 Dr Ajay Singh Raghuvanshi 6


Decimation-In-Time(DIT) FFT Algorithms
 Makes use of both symmetry and periodicity Consider the special case of N an
integer power of 2 Separate x[n] into two sequence of length N/2
𝑁 −1 𝑁 −1 𝑁 −1
𝑋 [ 𝑘 ] = ∑ 𝑥 [𝑛]𝑒 − 𝑗 ( 2 𝜋 / 𝑁 ) 𝑘𝑛
= ∑ 𝑥 [𝑛]𝑒 − 𝑗 ( 2 𝜋 / 𝑁 ) 𝑘𝑛
+ ∑ 𝑥 [𝑛]𝑒
− 𝑗 ( 2 𝜋 / 𝑁 ) 𝑘𝑛

𝑛=0 n even n odd


 Even indexed samples in the first sequence and Odd indexed samples in the
other sequence
𝑁/2−1 𝑁/2−1
𝑋 [ 𝑘 ]= ∑ 𝑥[2𝑟]𝑊 + ∑ 𝑥[2𝑟+1]𝑊 2𝑟𝑘
𝑁
(2 𝑟+1 ) 𝑘
𝑁
r=0 r=0
G[k] and H[k] are the N/2-point DFT
02/26/2025 Dr Ajay Singh Raghuvanshi 7
G[k] and H[k] are the N/2-point DFT hence are periodic with a period
of N/2

Hence

then

02/26/2025 Dr Ajay Singh Raghuvanshi 8


N= 8 DIT FFT
Implementation

[
𝑿 𝒌+
𝑵
𝟐 ]
=𝑮 [ 𝒌 ] − 𝑾 𝒌𝑵 𝑯 [ 𝒌 ]

The butterfly diagram for N=8 Ist DIT for FFT


02/26/2025 Dr Ajay Singh Raghuvanshi 9
Computational Complexity of N-point DFT using one decimation-in-time
Two N/2-point DFTs
2(N/2)2 complex multiplications
2(N/2)2 complex additions
Combining the DFT outputs
N complex multiplications
N complex additions
Total complexity
N2/2+N complex multiplications
N2/2+N complex additions
More efficient than direct DFT
Repeat the same process
Divide N/2-point DFTs into Two N/4-point DFTs Combine outputs till we get 2-point
DFT computational complexity will reduce further

02/26/2025 Dr Ajay Singh Raghuvanshi 10


02/26/2025 Dr Ajay Singh Raghuvanshi 11
 After two steps of decimation in time 8-point DFT
Time Bina Rever Order
Point ry sed-
(n) Wor Bit
d Word
0 000 000 x[0]
1 001 100 x[4]
2 010 010 x[2]
3 011 110 x[6]
4 100 001 x[1]
5 101 101 x[5]
6 110 011 x[3]
7 111 111 x[7]

02/26/2025 Dr Ajay Singh Raghuvanshi 12


02/26/2025 Dr Ajay Singh Raghuvanshi 13
computational complexity of DIT Radix 2 FFT
Calculating the N/2 point DFT for the sequences 𝑮[ 𝒌] 𝒂𝒏𝒅
𝑯[𝒌].

Computational savings can be obtained by dividing 𝑮[ 𝒌]


𝒂𝒏𝒅 𝑯[𝒌] into their odd- and even-indexed halves.

 complex multiplications and complex additions in first step


 Repeat same process till only two-point FFT is obtained
 This idea can be applied recursively log2 N times if N is a power
of 2 Such algorithms are called radix 2 algorithms
 Hence Total computational complexity results in approximately
log2N complex multiplications and additions O(n 2) to O( log2N)

02/26/2025 Dr Ajay Singh Raghuvanshi 14


Decimation-in-frequency FFT algorithm
The decimation-in-time FFT algorithms are based on structuring the DFT computation by
forming smaller and smaller subsequences of the input sequence x[n]. Alternatively, we
can consider similarly dividing the output sequence X[k] into smaller and smaller
subsequences. 𝑁−1
𝑋 [𝑘]= ∑ 𝑥[𝑛]𝑊 𝑛𝑘
𝑁 𝑘=0 ,1 , ... , 𝑁 − 1
𝑛=0
The even-numbered frequency samples are
𝑁 −1 ( 𝑁 / 2)−1 𝑁−1
𝑋 [ 2𝑟 ]= ∑ 𝑥 [𝑛 ]𝑊 ∑ ∑
𝑛(2 𝑟 ) 𝑛(2𝑟 ) 𝑛(2 𝑟 )
𝑁 = 𝑥 [𝑛 ] 𝑊 𝑁 +¿ 𝑥 [ 𝑛] 𝑊 𝑁 ¿
𝑛=0 𝑛=0 𝑛=(𝑁 / 2)

( 𝑁 /2 )−1 ( 𝑁 /2 )−1
𝑋 [2𝑟 ]= ∑ 𝑥 [𝑛 ]𝑊
2 𝑛𝑟
𝑁 +¿ ∑ 𝑥 [𝑛+( 𝑁 / 2)]𝑊
2 𝑟 (𝑛+( 𝑁 /2))
𝑁 ¿
𝑛=0 𝑛=0
Since 2𝑟 [𝑛 +( 𝑁 / 2) ] 2 𝑟𝑛 𝑟𝑁 2 𝑟𝑛
𝑊𝑁 =𝑊 𝑁 𝑊 𝑁 =𝑊 𝑁

2
and 𝑊 𝑁 =𝑊 𝑁 / 2
( 𝑁 /2 )−1
𝑋 [2𝑟 ]= ∑ (𝑥[𝑛]+𝑥[𝑛+(𝑁/2)])𝑊
𝑟𝑛
𝑁 /2 𝑟 =0 ,1,...,(𝑁/2)−1
𝑛=0
The above equation is the (N/2)-point DFT of the (N/2)-point sequence
obtained by adding the first and the last half of the input sequence.
Adding the two halves of the input sequence represents time aliasing,
consistent with the fact that in computing only the even-number
frequency samples, we are sub-sampling the Fourier transform of x[n].
We now consider obtaining the odd-numbered frequency points:
𝑁 −1 (𝑁 / 2)− 1 𝑁−1
𝑋 [2𝑟 +1]= ∑ 𝑥[𝑛]𝑊 ∑ ∑
𝑛(2𝑟 + 1) 𝑛(2𝑟 +1) 𝑛(2𝑟 +1)
𝑁 = 𝑥[𝑛]𝑊
𝑁 +¿ 𝑥[𝑛]𝑊 𝑁 ¿
𝑛=0 𝑛=0 𝑛=(𝑁 / 2)
Since
𝑁−1 (𝑁/2)−1

∑ 𝑥[ 𝑛 ]𝑊 =¿ ∑ 𝑛(2 𝑟+1)
𝑥[𝑛+(𝑁/
𝑁 2 )]𝑊
(𝑛+𝑁/2)(2𝑟+1)
𝑁 ¿
𝑛=𝑁/2 𝑛=0
We obtain
( 𝑁 /2 )−1
𝑋 [2𝑟 +1]= ∑ (𝑥 [𝑛]− 𝑥 [𝑛+𝑁 /2])𝑊
𝑛(2 𝑟 +1)
𝑁
𝑛=0

The above equation is the (N/2)-point DFT of the sequence obtained by


subtracting the second half of the input sequence from the first half and
multiplying the resulting sequence by W Nn.
Let g[n] = x[n]+x[n+N/2] and h[n] = x[n]x[x+N/2], the DFT can be
computed by forming the sequences g[n] and h[n], then computing h[n]
WNn, and finally computing the (N/2)-point DFTs of these two sequences.
Flow graph of decimation-in-frequency decomposition of an N-point DFT (N=8).
Recursively, we can further decompose the (N/2)-point DFT into smaller
substructures:
Butterfly structure for decimation-in-frequency FFT algorithm:

The decimation-in-frequency FFT algorithm also has the computation complexity of O(N
log2N)
Decimation-In-Frequency FFT Algorithm
 Final flow graph for 8-point decimation in frequency

02/26/2025 Dr Ajay Singh Raghuvanshi 22


The comparison of DIT and DIF
 The order of samples
 DIT-FFT: the input is bit- shuffled order and the output is in natural
order
 DIF-FFT: the input is in natural order and the output is in bit
shuffled order
 The butterfly computation
 DIT-FFT: multiplication by twiddle factor is done before additions
 DIF-FFT: multiplication by twiddle factor is done after additions
 Link for further reading

http://en.wikipedia.org/wiki/Rader's_FFT_algorithm
02/26/2025 Dr Ajay Singh Raghuvanshi 23

You might also like