You are on page 1of 15

10/29/2015

Digital Signal Processing

10/29/2015

The Fast Fourier Transform (FFT)

• Reading

• Mitra (2nd edition):


– chapter 8: section 8.3.2

• Proakis (4th edition):


– chapter 8: sections 1.3, 1.4, 1.5

10/29/2015

1
10/29/2015

Discrete Fourier Transform (DFT)

• Direct computation of 𝑁-point DFT requires


𝑁 2 complex multiplications + 𝑁(𝑁 − 1) complex additions
• The complexity of the DFT is in the order of 𝑁 2 “too high”
10/29/2015

• The Fast Fourier Transform (FFT) reduces the complexity of computing the
DFT from 𝒪(𝑁 2 ) to 𝒪(𝑁𝑙𝑜𝑔2 𝑁).
complexity of the DFT and the FFT

efficiency http://www.analog.com/media/en/training-seminars/design-handbooks/MixedSignal_Sect5.pdf

10/29/2015

2
10/29/2015

• FFT adopts a divide-and-conquer approach in computing the DFT.

• FFT decomposes large DFT blocks in to smaller DFT blocks till it reaches blocks
of two points.

• Radix-𝑟 FFT considers the length of the sequence 𝑁 = 𝑟 𝑀 .


• For radix-2 FFT 𝑁 = 2𝑀 .

10/29/2015

Radix-2 Decimation-in-Time FFT


(DIT-FFT)

• separate the sequence 𝑥[𝑛] into two subsequences (even & odd)

• Change of variables 𝑛 = 2𝑟 for 𝑛 even and 𝑛 = 2𝑟 + 1 for 𝑛 odd.

Recall WN  WN
2
• 2

10/29/2015

3
10/29/2015

• 8-point DIT-FFT is reduced to two-4-DIT-FFT

even sequence

odd sequence

Requires 𝑵 + 𝑵𝟐 𝟐 < 𝑵𝟐
10/29/2015

• Divide-and-Conquer approach

• Repeat the process with both the even and odd 𝑁 2 sequences
resulting in (even-even)&(odd-even)&(even-odd)&(odd-odd) 𝑁 4
subsequences

10/29/2015

4
10/29/2015

8-Point radix-2 Decimation-in-Time FFT

Ordered Output
Shuffled input

10/29/2015

• The last stage reduces to 2-point DFT which consists only of


additions and summations.
𝒙 𝟎 +𝒙 𝟒

𝒙 𝟎 −𝒙 𝟒

• The basic butterfly of the decimation-in-time FFT

10/29/2015

5
10/29/2015

Shuffled input 8-Point radix-2 Decimation-in-Time FFT

Ordered Output
10/29/2015

The basic butterfly for DIT-FFT


• Basic butterfly leads to 2-complex multiplications

• If we consider WNr  N 2   WNr , WN0  1, WNN 2  1

• We have a butterfly with one complex multiplication

10/29/2015

6
10/29/2015

Shuffled input 8-point radix-2 Decimation-in-Time FFT

Ordered Output
10/29/2015

Bit reversed ordering “shuffling”

Normal Binary representation Reversed binary Shuffled


ordering representation sequence
x[0] 000 000 x[0]
x[1] 001 100 x[4]
x[2] 010 010 x[2]
x[3] 011 110 x[6]
x[4] 100 001 x[1]
x[5] 101 101 x[5]
x[6] 110 011 x[3]
x[7] 111 111 x[7]

10/29/2015

7
10/29/2015

Complexity of radix-2 FFT

• Length 𝑁 = 2𝑀 sequence leads to 𝑀 = 𝑙𝑜𝑔2 𝑁-stages FFT.

• Each stage has 𝑁 complex multiplications and 𝑁-additions

• Complexity ≈ 𝒪 𝑁. 𝑀 = 𝒪(𝑁𝑙𝑜𝑔2 𝑁).

• 𝑁𝑙𝑜𝑔2 𝑁 ≪ 𝑁 2 for large 𝑁.

• FFT is in-place algorithm  memory savings

10/29/2015

Radix-2 Decimation in Frequency FFT


(DIF-FFT)
• The same divide-and-conquer approach is considered.
• Subsampling is performed in the frequency domain instead of time domain

• Represent 𝑋(𝑘) as the sum of two sequences “polyphase subsequences”

•   1 , we have
k
Since WNk N 2

10/29/2015

8
10/29/2015

• Decimate 𝑋(𝑘) into even samples in the frequency domain, we have

• Decimate 𝑋(𝑘) into odd-samples in the frequency domain, we have

• If we define the sequences 𝑔1 𝑛 & 𝑔2 (𝑛) as follows:

• Then, we have two 𝑁 2 DFT’s

10/29/2015

10/29/2015

9
10/29/2015

8-point Radix-2 Decimation-in-Frequency FFT

10/29/2015

• Basic butterfly in DIF-FFT

• Last-stage 2-point FFT

A A+B

B A-B

10/29/2015

10
10/29/2015

8-point Radix-2 Decimation-in-Frequency FFT


Ordered Input

Shuffled Output
10/29/2015

radix-𝒓 FFT
• 𝑥[𝑛] has length 𝑁 = 𝑟 𝑀 .

• Number of stages is 𝑀 = 𝑙𝑜𝑔𝑟 𝑁

• Decimation-in-time and decimation-in-frequency


– In decimation-in-time structure, the sequence 𝑥[𝑛] is decomposed
into its 𝑟 −polyphase subsequences.
– In decimation-in-frequency structure, the sequence 𝑋[𝑘] is
decomposed into its 𝑟 −polyphase subsequences

• The basic butterfly has (𝑟 −inputs/ 𝑟 −outputs)

• Bit-reversed-order is in 𝒓-numbering system


– radix-2: use the binary number system {0, 1}
– radix-4: use the quaternary number system {0, 1, 2, 3}

• Most famous is radix-4 FFT


10/29/2015

11
10/29/2015

Decimation-in-frequency radix-4 FFT


Break the 𝑁 −point DFT into 4-smaller DFTs

from the symmetry properties of the twiddle factor

we have

this is still not 4-DFTs (why?)


10/29/2015

Decimate by 4 to obtains the 4-polyphase sequences, considering that WN4 kn  WNkn4

10/29/2015

12
10/29/2015

• Basic DIF radix-4 FFT butterfly

Complexity: (3N/8) log2(N) complex multiplications and (3N/2) log2(N) complex


additions
10/29/2015

• Computation of radix-4 output ordering

• Representation is performed in
Input Quaternary Reversed Output
the quaternary number system index representation order index

0 00 00 0
1 01 10 4
2 02 20 8
3 03 30 12
4 10 01 1
5 11 11 5
6 12 21 9
7 13 31 13
8 20 02 2
9 21 12 6
10 22 22 10
11 23 32 14
12 30 03 3
13 31 13 7
14 32 23 11

10/29/2015 15 33 33 15

13
10/29/2015

split-radix DFT (SRFFT)

• adopts radix-2 for even-numbered samples in decimation-in-frequency


because they are obtained directly from (N/2)-DFT without further
multiplications.

• adopts radix-4 for odd-numbered samples in decimation-in-frequency


because radix-4 has the largest multiplications-free butterfly.
• If we use radix-4 DIF FFT for the odd numbered-samples, we have the
following N/4 points DTFs

10/29/2015

• The N-point DFT is decomposed into one N/2-point DFT with no additional
rotations and two N/4-point DTFs with minimal rotations. The N-point DFT
is obtained by successive application of this decomposition till the last
stage

• Basic butterfly for DIF-SRFFT

10/29/2015

14
10/29/2015

• example: 32-SRFFT

10/29/2015

15

You might also like