ee482: digital signal processing applicationsb1morris/ee482/docs/slides10_fft.pdf · chapter 19,...

53
http://www.ee.unlv.edu/~b1morris/ee482/ Professor Brendan Morris, SEB 3216, [email protected] EE482: Digital Signal Processing Applications Spring 2014 TTh 14:30-15:45 CBC C222 Lecture 8 Frequency Analysis 14/02/18

Upload: lynhi

Post on 12-May-2018

232 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

http://www.ee.unlv.edu/~b1morris/ee482/

Professor Brendan Morris, SEB 3216, [email protected]

EE482: Digital Signal Processing

Applications

Spring 2014

TTh 14:30-15:45 CBC C222

Lecture 8

Frequency Analysis

14/02/18

Page 2: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Outline

• Fast Fourier Transform

• Butterfly Structure

• Implementation Issues

2

Page 3: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 3

DFT Algorithm

The Fourier transform of an analogue signal x(t) is given by:

dtetxX tj

The Discrete Fourier Transform (DFT) of a discrete-time signal x(nT) is given by:

Where:

1

0

2N

n

nkN

j

enxkX

nxnTx

Nk

1,1,0

Page 4: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 4

0 20 40 60 80 100 120-2

-1

0

1

2Sampled signal

Sample

Am

plitu

de

0 0.1 0.2 0.3 0.4 0.50

0.2

0.4

0.6

0.8

1Frequency Domain

Normalised Frequency

Ma

gn

itu

de

DFT Algorithm

If we let:

NN

j

We

2

then:

1

0

N

n

nk

NWnxkX

Page 5: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 5

DFT Algorithm

1

0

N

n

nk

NWnxkX

X(0) = x[0]WN0 + x[1]WN

0*1 +…+ x[N-1]WN0*(N-1)

X(1) = x[0]WN0 + x[1]WN

1*1 +…+ x[N-1]WN1*(N-1)

:

X(k) = x[0]WN0 + x[1]WN

k*1 +…+ x[N-1]WNk*(N-1)

:

X(N-1) = x[0]WN0 + x[1]WN (N-1)*1 +…+ x[N-1]WN (N-1)(N-1)

Note: For N samples of x we have N frequencies representing the signal.

x[n] = input

X[k] = frequency bins

W = twiddle factors

Page 6: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 6

Performance of the DFT Algorithm

The DFT requires N2 (NxN) complex multiplications:

Each X(k) requires N complex multiplications.

Therefore to evaluate all the values of the DFT ( X(0) to X(N-1) ) N2 multiplications are required.

The DFT also requires (N-1)*N complex additions:

Each X(k) requires N-1 additions.

Therefore to evaluate all the values of the DFT (N-1)*N additions are required.

Page 7: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 7

Performance of the DFT Algorithm

0

20

40

60

80

100

120

0 1 2 3 4 5 6 7 8 9 10

Number of Samples

Nu

mb

er o

f M

ult

ipli

cati

on

s

0

20

40

60

80

100

120

0 1 2 3 4 5 6 7 8 9 10

Number of Samples

Nu

mb

er o

f A

dd

itio

ns

Can the number of computations required be reduced?

Page 8: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 8

DFT FFT

A large amount of work has been devoted to reducing the computation time of a DFT.

This has led to efficient algorithms which are known as the Fast Fourier Transform (FFT) algorithms.

Page 9: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 9

DFT FFT

x[n] = x[0], x[1], …, x[N-1]

10 ;1

0

NkWnxkXN

n

nk

N [1]

Lets divide the sequence x[n] into even and odd sequences:

x[2n] = x[0], x[2], …, x[N-2]

x[2n+1] = x[1], x[3], …, x[N-1]

Page 10: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 10

nk

N

nkN

jnkN

jnk

N

W

eeW

2

2

22

2

2

12

0

12

12

0

2 122

N

n

kn

N

N

n

nk

N WnxWnxkX

DFT FFT

[2]

Equation 1 can be rewritten as:

Since:

nk

N

k

N

kn

N WWW2

12

kZWkY

WnxWWnxkX

kN

N

n

nkN

kN

N

n

nkN

12

0 2

12

0 2

122

Then:

Page 11: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 11

kZWkY

WnxWWnxkX

kN

N

n

nkN

kN

N

n

nkN

12

0 2

2

12

0 2

1

DFT FFT

The result is that an N-point DFT can be divided into two N/2 point DFT’s:

10 ;1

0

NkWnxkXN

n

nk

N N-point DFT

Where Y(k) and Z(k) are the two N/2 point DFTs operating on even and odd samples respectively:

Two N/2-point DFTs

Page 12: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 12

12

0

2

2

22

12

0

2

2

1

12

0 2

2

12

0 2

1

2

N

n

Nkn

N

Nk

N

N

n

Nkn

N

N

n

nkN

kN

N

n

nkN

WnxWWnxN

kX

WnxWWnxkX

DFT FFT

Periodicity and symmetry of W can be exploited to simplify the DFT further:

Or:

And:

k

N

kN

jj

kN

jN

Njk

Nj

Nk

N WeeeeeW

22

2

22

2

k

N

kN

jN

Njk

NjN

k

N WeeeW2

2

2

22

2

2

2

2

2

[3]

: Symmetry

: Periodicity

Page 13: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 13

DFT FFT

Symmetry and periodicity:

W80 = W8

8

W81 = W8

9

W82

W84

W83

W86

W87 W8

5 WN

k+N/2 = -WNk

WN/2k+N/2 = WN/2

k

W8k+4 = -W8

k

W8k+8 = W8

k

Page 14: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 14

kZWkY

WnxWWnxN

kX

k

N

N

n

nk

N

k

N

N

n

nk

N

12

0 2

2

12

0 2

12

DFT FFT

Finally by exploiting the symmetry and periodicity, Equation 3 can be written as:

[4]

Page 15: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 15

12

,0 ;2

12

,0 ;

NkkZWkY

NkX

NkkZWkYkX

k

N

k

N

DFT FFT

Y(k) and WNk Z(k) only need to be

calculated once and used for both equations.

Note: the calculation is reduced from 0 to N-1 to 0 to (N/2 - 1).

Page 16: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 16

DFT FFT

Y(k) and Z(k) can also be divided into N/4 point DFTs using the same process shown above:

kVWkUN

kY

kVWkUkY

k

N

k

N

2

2

4

kQWkPN

kZ

kQWkPkZ

k

N

k

N

2

2

4

The process continues until we reach 2 point DFTs.

12

,0 ;2

12

,0 ;

NkkZWkY

NkX

NkkZWkYkX

k

N

k

N

Page 17: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 17

DFT FFT

Illustration of the first decimation in time FFT.

y[0]

y[1]

y[2]

y[N-2]

N/2 point DFT

x[0] x[2]

x[4]

x[N-2]

N/2 point DFT

x[1] x[3]

x[5]

x[N-1]

z[0]

z[1]

z[2]

z[N/2-1]

X[N/2] = y[0]-W0z[0]

-1

X[0] = y[0]+W0z[0]

W0 X[N/2+1] = y[1]-W1z[1]

-1

X[1] = y[1]+W1z[1]

W1

Page 18: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 18

FFT Implementation

To efficiently implement the FFT algorithm a few observations are made:

Each stage has the same number of butterflies (number of butterflies = N/2, N is number of points).

The number of DFT groups per stage is equal to (N/2stage).

The difference between the upper and lower leg is equal to 2stage-1.

The number of butterflies in the group is equal to 2stage-1.

Page 19: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 19

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-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

Page 20: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 20

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-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:

Page 21: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 21

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-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:

Nstages = 1

Stage 1

Page 22: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 22

Example: 8 point FFT

(1) Number of stages:

Nstages = 2

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 1

Page 23: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 23

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Page 24: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 24

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1:

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Page 25: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 25

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 1

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Block 1

Page 26: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 26

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 2

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Block 1

Block 2

Page 27: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 27

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 3

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Block 1

Block 2

Block 3

Page 28: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 28

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Block 1

Block 2

Block 3

Block 4

Page 29: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 29

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 1

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Block 1

Page 30: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 30

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Block 1

Block 2

Page 31: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 31

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Block 1

Page 32: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 32

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1:

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Stage 2 Stage 3 Stage 1

Page 33: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 33

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1: Nbtf = 1

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Page 34: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 34

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1: Nbtf = 1

Stage 2: Nbtf = 1

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Page 35: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 35

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Page 36: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 36

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Stage 3: Nbtf = 1

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Page 37: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 37

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Stage 3: Nbtf = 2

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Page 38: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 38

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Stage 3: Nbtf = 3

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Page 39: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 39

Example: 8 point FFT

(1) Number of stages:

Nstages = 3

(2) Blocks/stage:

Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) B’flies/block:

Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Stage 3: Nbtf = 4

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Decimation in time FFT:

Number of stages = log2N

Number of blocks/stage = N/2stage

Number of butterflies/block = 2stage-1

Page 40: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 40

FFT Implementation

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Twiddle Factor Index N/2 = 4

Start Index 0 0 0

Input Index 1 2 4

Page 41: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 41

FFT Implementation

Twiddle Factor Index N/2 = 4 4 /2 = 2

Start Index 0 0 0

Input Index 1 2 4

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Page 42: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 42

FFT Implementation

Twiddle Factor Index N/2 = 4 4 /2 = 2 2 /2 = 1

Start Index 0 0 0

Input Index 1 2 4

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Page 43: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 19, Slide 43

FFT Implementation

Start Index 0

Input Index 1

Twiddle Factor Index N/2 = 4 4 /2 = 2 2 /2 = 1

Indicies Used W0 W0

W2

W0

W1

W2

W3

0

2

0

4

W0 -1

W0 -1

W0 -1

W0 -1

W2 -1

W0

-1 W0

W2 -1

-1 W0

W1 -1

W0

W3 -1

-1 W2

-1

Stage 2 Stage 3 Stage 1

Page 44: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

FFT Decimation in Frequency

• Similar divide and conquer strategy

▫ Decimate in frequency domain

• 𝑋 2𝑘 = 𝑥 𝑛 𝑊𝑁2𝑛𝑘𝑁−1

𝑛=0

• 𝑋 2𝑘 = 𝑥 𝑛 𝑊𝑁/2𝑛𝑘𝑁/2−1

𝑛=0 + 𝑥 𝑛 𝑊𝑁/2𝑛𝑘𝑁−1

𝑛=𝑁/2

▫ Divide into first half and second half of sequence

• 𝑋 2𝑘 =

𝑥 𝑛 𝑊𝑁/2𝑛𝑘𝑁/2−1

𝑛=0 + 𝑥 𝑛 +𝑁

2𝑊𝑁/2

𝑛+𝑁

2𝑘𝑁/2−1

𝑛=0

• Simplifying with twidle properties

▫ 𝑋 2𝑘 = 𝑥 𝑛 + 𝑥 𝑛 +𝑁

2𝑊𝑁/2𝑛𝑘𝑁/2−1

𝑛=0

▫ 𝑋 2𝑘 + 1 = 𝑊𝑁𝑛 𝑥 𝑛 − 𝑥 𝑛 +

𝑁

2𝑊𝑁/2𝑛𝑘𝑁/2−1

𝑛=0

44

Page 45: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

FFT Decimation in Frequency Structure

• Stage structure

• Bit reversal happens at output instead of input

• Full structure

45

Page 46: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Inverse FFT

• 𝑥 𝑛 =1

𝑁 𝑋(𝑘)𝑁−1𝑘=0 𝑊𝑁

−𝑘𝑛

• Notice this is the DFT with a scale factor and change in twidle sign

• Can compute using the FFT with minor modifications

▫ 𝑥∗ 𝑛 =1

𝑁 𝑋∗(𝑘)𝑁−1𝑘=0 𝑊𝑁

𝑘𝑛

Conjugate coefficients, compute FFT with scale factor, conjugate result

For real signals, no final conjugate needed

▫ Can complex conjugate twidle factors and use in butterfly structure

46

Page 47: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

FFT Example • Example 5.10

• Sine wave with 𝑓 = 50 Hz

▫ 𝑥 𝑛 = sin2𝜋𝑓𝑛

𝑓𝑠

𝑛 = 0,1, … , 128

𝑓𝑠 = 256 Hz

• Frequency resolution of DFT?

▫ Δ = 𝑓𝑠/𝑁 =256

128= 2 Hz

• Location of peak

▫ 50 = 𝑘Δ → 𝑘 =50

2= 25

47

10 20 30 40 50 600

10

20

30

40

50

60

Frequency index, k

Ma

gn

itu

de

0 50 100 150-6

-4

-2

0

2

4

6x 10

-16

sample n

err

or

Page 48: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Spectral Leakage and Resolution • Notice that a DFT is like windowing

a signal to finite length ▫ Longer window lengths (more

samples) the closer DFT 𝑋(𝑘) approximates DTFT 𝑋 𝜔

• Convolution relationship

▫ 𝑥𝑁 𝑛 = 𝑤 𝑛 𝑥 𝑛

▫ 𝑋𝑁 𝑘 = 𝑊 𝑘 ∗ 𝑋 𝑘

• Corruption of spectrum due to window properties (mainlobe/sidelobe) ▫ Sidelobes result in spurious peaks

in computed spectrum known as spectral leakage

Obviously, want to use smoother windows to minimize these effects

▫ Spectral smearing is the loss in sharpness due to convolution which depends on mainlobe width

• Example 5.15 ▫ Two close sinusoids smeared

together

• To avoid smearing: ▫ Frequency separation should be

greater than freq resolution

▫ 𝑁 >2𝜋

Δ𝜔, 𝑁 > 𝑓𝑠/Δ𝑓

48

10 20 30 40 50 600

10

20

30

40

50

60

70

Frequency index, kM

ag

nitu

de

Page 49: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Power Spectral Density • Parseval’s theorem

• 𝐸 =

𝑥 𝑛 2 =1

𝑁 𝑋 𝑘 2𝑁−1𝑘=0

𝑁−1𝑛=0

▫ 𝑋 𝑘 2 - power spectrum or periodogram

• Power spectral density (PSD, or power density spectrum or power spectrum) is used to measure average power over frequencies

• Computed for time-varying signal by using a sliding window technique ▫ Short-time Fourier transform

▫ Grab 𝑁 samples and compute FFT Must have overlap and use

windows

• Spectrogram ▫ Each short FFT is arranged as a

column in a matrix to give the time-varying properties of the signal

▫ Viewed as an image

49

0.5 1 1.5 2 2.5 30

500

1000

1500

2000

2500

3000

3500

4000

Time

Fre

qu

en

cy (

Hz)

“She had your dark suit in greasy wash water all year”

Page 50: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Fast FFT Convolution

• Linear convolution is multiplication in frequency domain

▫ Must take FFT of signal and filter, multiply, and iFFT

▫ Operations in frequency domain can be much faster for large filters

▫ Requires zero-padding because of circular convolution

• Typically, will do block processing

▫ Segment a signal and process each segment individually before recombining

50

Page 51: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Ex: FFT Effect of N • Take FFT of cosine

using different N values

n = [0:29];

x = cos(2*pi*n/10);

N1 = 64;

N2 = 128;

N3 = 256;

X1 = abs(fft(x,N1));

X2 = abs(fft(x,N2));

X3 = abs(fft(x,N3));

F1 = [0 : N1 - 1]/N1;

F2 = [0 : N2 - 1]/N2;

F3 = [0 : N3 - 1]/N3;

subplot(3,1,1)

plot(F1,X1,'-x'),title('N =

64'),axis([0 1 0 20])

subplot(3,1,2)

plot(F2,X2,'-x'),title('N =

128'),axis([0 1 0 20])

subplot(3,1,3)

plot(F3,X3,'-x'),title('N =

256'),axis([0 1 0 20])

• Transforms all have the same shape

• Difference is the number of samples used to approximate the shape

• Notice the sinusoid frequency is not always well represented ▫ Depends on

frequency resolution

51

0 0.2 0.4 0.6 0.8 10

5

10

15

20N = 30

0 0.2 0.4 0.6 0.8 10

5

10

15

20N = 64

0 0.2 0.4 0.6 0.8 10

5

10

15

20N = 128

0 0.2 0.4 0.6 0.8 10

5

10

15

20N = 256

Page 52: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Ex: FFT Effect of Number of Samples

• Select a large value of N and vary the number of samples of the signal

n = [0:29];

x1 = cos(2*pi*n/10); % 3 periods

x2 = [x1 x1]; % 6 periods

x3 = [x1 x1 x1]; % 9 periods

N = 2048;

X1 = abs(fft(x1,N));

X2 = abs(fft(x2,N));

X3 = abs(fft(x3,N));

F = [0:N-1]/N;

subplot(3,1,1)

plot(F,X1),title('3

periods'),axis([0 1 0 50])

subplot(3,1,2)

plot(F,X2),title('6

periods'),axis([0 1 0 50])

subplot(3,1,3)

plot(F,X3),title('9

periods'),axis([0 1 0 50])

• Transforms all have the same shape ▫ Looks like sinc

functions

• More samples makes the sinc look more impulse-like

• FFT with large N but fewer samples does zero-padding ▫ E.g. taking length

N signal and windowing with box

▫ Multiplication in time is convolution in frequency

52

0 0.2 0.4 0.6 0.8 10

10

20

30

40

503 periods

0 0.2 0.4 0.6 0.8 10

10

20

30

40

506 periods

0 0.2 0.4 0.6 0.8 10

10

20

30

40

509 periods

Page 53: EE482: Digital Signal Processing Applicationsb1morris/ee482/docs/slides10_fft.pdf · Chapter 19, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 DFT Algorithm

Spectrum Analysis with FFT and Matlab

• FFT does not directly give spectrum

▫ Dependent on the number of signal samples

▫ Dependent on the number of points in the FFT

• FFT contains info between [0, 𝑓𝑠]

▫ Spectrum must be below 𝑓𝑠/2

• Symmetric across 𝑓 = 0 axis

▫ −𝑓𝑠

2,𝑓𝑠

2

▫ Use fftshift.m in Matlab

n = [0:149];

x1 = cos(2*pi*n/10);

N = 2048;

X = abs(fft(x1,N));

X = fftshift(X);

F = [-N/2:N/2-1]/N;

plot(F,X),

xlabel('frequency / f s')

53

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.50

10

20

30

40

50

60

70

80

frequency / f s