0% found this document useful (0 votes)
79 views44 pages

Fast Fourier Transform (FFT) Algorithms

The document describes the decimation-in-time fast Fourier transform (FFT) algorithm. It explains that the FFT consists of log2N stages, with the number of blocks per stage being N/2stage and the number of butterflies per block being 2stage-1. An example 8-point FFT is shown to illustrate these concepts over 3 stages with 4 blocks in stage 1 and 1 block in stage 2.

Uploaded by

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

Fast Fourier Transform (FFT) Algorithms

The document describes the decimation-in-time fast Fourier transform (FFT) algorithm. It explains that the FFT consists of log2N stages, with the number of blocks per stage being N/2stage and the number of butterflies per block being 2stage-1. An example 8-point FFT is shown to illustrate these concepts over 3 stages with 4 blocks in stage 1 and 1 block in stage 2.

Uploaded by

Deep Sandhu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Fast Fourier Transform (FFT)

Algorithms
Example: 8 point FFT

W0 -1

W0 -1

W0 -1 W2 -1

W0 -1

W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1

W0 -1 W2 -1

W0 -1

W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 1
W0 -1 W2 -1

W0 -1

W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 2
W0 -1 W2 -1

W0 -1

W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1

W0 -1

W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1:
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
Block 1 (1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 1
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
Block 1 (1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
Block 2
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 2
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
Block 1 (1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
Block 2
W0 -1 W2 -1 (2) Blocks/stage:
Block 3 W0 -1  Stage 1: Nblocks = 3
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
Block 1 (1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
Block 2
W0 -1 W2 -1 (2) Blocks/stage:
Block 3 W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0
W0 -1 W2 -1
Block 4
W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1
Block 1
W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 1
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1
Block 1
W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
Block 2 W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
Block 1
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1

• Decimation in time FFT:


– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1:
– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1: Nbtf = 1
– Number of stages = log2N
– Number of blocks/stage = N/2stage
– Number of butterflies/block = 2stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1: Nbtf = 1
– Number of stages = log2N
 Stage 2: Nbtf = 1
– Number of blocks/stage = N/2 stage

– Number of butterflies/block = 2stage-1


Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1: Nbtf = 1
– Number of stages = log2N
 Stage 2: Nbtf = 2
– Number of blocks/stage = N/2 stage

– Number of butterflies/block = 2stage-1


Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1: Nbtf = 1
– Number of stages = log2N
 Stage 2: Nbtf = 2
– Number of blocks/stage = N/2 stage
 Stage 3: Nbtf = 1
– Number of butterflies/block = 2 stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1: Nbtf = 1
– Number of stages = log2N
 Stage 2: Nbtf = 2
– Number of blocks/stage = N/2 stage
 Stage 3: Nbtf = 2
– Number of butterflies/block = 2 stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1: Nbtf = 1
– Number of stages = log2N
 Stage 2: Nbtf = 2
– Number of blocks/stage = N/2 stage
 Stage 3: Nbtf = 3
– Number of butterflies/block = 2 stage-1
Stage 1 Stage 2 Stage 3
Example: 8 point FFT
(1) Number of stages:
W0 -1

W0 -1
 Nstages = 3
W0 -1 W2 -1 (2) Blocks/stage:
W0 -1  Stage 1: Nblocks = 4
W0 -1 W1 -1
W0  Stage 2: Nblocks = 2
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1
 Stage 3: Nblocks = 1
(3) B’flies/block:
• Decimation in time FFT:  Stage 1: Nbtf = 1
– Number of stages = log2N
 Stage 2: Nbtf = 2
– Number of blocks/stage = N/2 stage
 Stage 3: Nbtf = 4
– Number of butterflies/block = 2 stage-1
Stage 1 Stage 2 Stage 3

W0 -1

W0 -1

W0 -1 W2 -1

W0 -1
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

Start Index 0 0 0
Input Index 1 2 4
Twiddle Factor Index N/2 = 4
Stage 1 Stage 2 Stage 3

W0 -1

W0 -1

W0 -1 W2 -1

W0 -1
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

Start Index 0 0 0
Input Index 1 2 4
Twiddle Factor Index N/2 = 4 4/2 = 2
Stage 1 Stage 2 Stage 3

W0 -1

W0 -1

W0 -1 W2 -1

W0 -1
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

Start Index 0 0 0
Input Index 1 2 4
Twiddle Factor Index N/2 = 4 4/2 = 2 2/2 = 1
Stage 1 Stage 2 Stage 3

W0 -1

W0 -1

W0 -1 W2 -1

W0 -1
W0 -1 W1 -1
W0
W0 -1 W2 -1

W0 -1 W2 -1 W3 -1

Start Index 0 0 0
Input Index 1 2 4
Twiddle Factor Index N/2 = 4 4/2 = 2 2/2 = 1
Indicies Used W0 W0 W0
W2 W1
W2
W
 Input signal must be properly
re-ordered using a bit reversal
DIT FFT
algorithm

 In-place computation

 Number of stages: log2 N

 Stage 1: all the twiddle factors


are 1

 Last Stage: the twiddle factors


are in sequential order
Stage Stage Stage Stage
1 2 3 Log2N

Number of
N/2 N/4 N/8 1
Groups

Butterflies
1 2 4 N/2
per Group

Dual-Node
1 2 4 N/2
Spacing

(N/8)k
Twiddle (N/4)k k,
(N/2)k ,
Factor , k=0 to
, k=0 k=0,1,
Exponents k=0,1 N/2–1
2,3
 Output signal must be
properly re-ordered using a bit DIF FFT
reversal algorithm

 In-place computation

 Number of stages: log2 N

 Stage 1: the twiddle factors


are in sequential order

 Last Stage: all the twiddle


factors are 1

Stage Stage Stage Stage


1 2 3 Log2N

Number of
1 2 4 N/2
Groups

Butterflies
N/2 N/4 N/8 1
per Group

Dual-Node
N/2 N/4 N/8 1
Spacing

Twiddle n, 2n, 4n,


(N/2)n,
Factor n=0 to n=0 to n=0 to
n=0
Exponents N/2 - 1 N/4 - 1 N/8 - 1
0.707
Example
• Using decimation-in-time FFT algorithm compute DFT of
the sequence
{-1 –1 –1 –1 1 1 1 1}
• Solution: Twiddle factors are
Solution and signal flow graph of the example
Solve
{2,2,2,2,1,1,1,1}
Stage one 3,1,3,1,3,1,31

Stage one 6,1-j,0,1+j,6,1-j,0,1+j

Stage one 12,1-j2.414,0,1-


.0.414j,0,1+0.414j,0,1+j2.414

You might also like