ee123 digital signal processing - university of …ee123/sp15/notes/lecture07_ovlp... · – we...

8
M. Lustig, EECS UC Berkeley EE123 Digital Signal Processing Lecture 7 Block Convolution, Overlap and Add, FFT based on slides by J.M. Kahn M. Lustig, EECS UC Berkeley Last Time • Discrete Fourier Transform – Properties of the DFT – Linear convolution through circular • Today –Linear convolution with DFT • Overlap and add • Overlap and save – Fast Fourier Transform (start) M. Lustig, EECS UC Berkeley Block Convolution • Problem: – An input signal x[n], has very long length (could be considered infinite) – An impulse response h[n] has length P – We want to take advantage of DFT/FFT and compute convolutions in blocks that are shorter than the signal • Approach: – Break the signal into small blocks – Compute convolutions – Combine the results M. Lustig, EECS UC Berkeley 5 0 5 0 10 20 30 5 0 5 h[n] Impulse response, Length P=6 x[n] Input Signal, Length P=33 y[n] Output Signal, Length P=38 Block Convolution Example: Overlap-Add Method We decompose the input signal x [n] into non-overlapping segments x r [n] of length L: x r [n]= ( x [n] rL n (r + 1)L - 1 0 otherwise The input signal is the sum of these input segments: x [n]= 1 X r =0 x r [n] The output signal is the sum of the output segments x r [n] h[n]: y [n]= x [n] h[n]= 1 X r =0 x r [n] h[n] (1) Each of the output segments x r [n] h[n] is of length = L + P - 1. Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing SP 2015 M Overlap-Add Method We can compute each output segment x r [n] h[n] with linear convolution. DFT-based circular convolution is usually more ecient: Zero-pad input segment x r [n] to obtain x r ,zp [n], of length Zero-pad the impulse response h[n] to obtain h zp [n], of length N (this needs to be done only once). Compute each output segment using: x r [n] h[n]= DFT -1 {DFT {x r ,zp [n]} · DFT {h zp [n]}} Since output segment x r [n] h[n] starts oset from its neighbor x r -1 [n] h[n] by L, neighboring output segments overlap at P - 1 points. Finally, we just add up the output segments using (1) to obtain the output. Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing SP 2015 M

Upload: truongdat

Post on 12-Sep-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

M. Lustig, EECS UC Berkeley

EE123Digital Signal Processing

Lecture 7Block Convolution, Overlap and Add,

FFTbased on slides by J.M. Kahn M. Lustig, EECS UC Berkeley

Last Time

• Discrete Fourier Transform– Properties of the DFT– Linear convolution through circular

• Today–Linear convolution with DFT

• Overlap and add• Overlap and save

– Fast Fourier Transform (start)

M. Lustig, EECS UC Berkeley

Block Convolution

• Problem: – An input signal x[n], has very long length

(could be considered infinite)– An impulse response h[n] has length P– We want to take advantage of DFT/FFT and

compute convolutions in blocks that are shorter than the signal

• Approach:– Break the signal into small blocks– Compute convolutions– Combine the results

M. Lustig, EECS UC Berkeley

Block Convolution

Example:

0 10 20 30

-0.5

0

0.5

n

x[n]

Input Signal, Length 33

0 10 20 30

-0.5

0

0.5

n

h[n]

Impulse Response, Length P = 6

0 10 20 30

-0.5

0

0.5

ny[n]

Linear Convolution, Length 38

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing

Block Convolution

Example:

0 10 20 30

-0.5

0

0.5

n

x[n]

Input Signal, Length 33

0 10 20 30

-0.5

0

0.5

n

h[n]

Impulse Response, Length P = 6

0 10 20 30

-0.5

0

0.5

n

y[n]

Linear Convolution, Length 38

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing

Block Convolution

Example:

0 10 20 30

-0.5

0

0.5

n

x[n]

Input Signal, Length 33

0 10 20 30

-0.5

0

0.5

n

h[n]

Impulse Response, Length P = 6

0 10 20 30

-0.5

0

0.5

ny[n]

Linear Convolution, Length 38

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing

h[n] Impulse response, Length P=6

x[n] Input Signal, Length P=33 y[n] Output Signal, Length P=38

Block Convolution

Example:

Overlap-Add Method

We decompose the input signal x [n] into non-overlapping segmentsxr

[n] of length L:

xr

[n] =

(x [n] rL n (r + 1)L� 1

0 otherwise

The input signal is the sum of these input segments:

x [n] =1X

r=0

xr

[n]

The output signal is the sum of the output segments xr

[n] ⇤ h[n]:

y [n] = x [n] ⇤ h[n] =1X

r=0

xr

[n] ⇤ h[n] (1)

Each of the output segments xr

[n] ⇤ h[n] is of lengthN = L+ P � 1.Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal ProcessingSP 2015

M

Overlap-Add Method

We can compute each output segment xr

[n] ⇤ h[n] with linearconvolution.DFT-based circular convolution is usually more e�cient:

Zero-pad input segment xr

[n] to obtain xr ,zp[n], of length N.

Zero-pad the impulse response h[n] to obtain hzp

[n], of lengthN (this needs to be done only once).Compute each output segment using:

xr

[n] ⇤ h[n] = DFT �1 {DFT {xr ,zp[n]} · DFT {h

zp

[n]}}

Since output segment xr

[n] ⇤ h[n] starts o↵set from its neighborxr�1

[n] ⇤ h[n] by L, neighboring output segments overlap at P � 1points.Finally, we just add up the output segments using (1) to obtain theoutput.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal ProcessingSP 2015

M

Page 2: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

Overlap-Add Method

0 10 20 30

-0.5

0

0.5

n

x 0[n]

Overlap-Add, Input Segments, Length L = 11

0 10 20 30

-0.5

0

0.5

n

y 0[n]

Overlap-Add, Output Segments, Length L+P-1 = 16

0 10 20 30

-0.5

0

0.5

n

x 1[n]

0 10 20 30

-0.5

0

0.5

n

y 1[n]0 10 20 30

-0.5

0

0.5

n

x 2[n]

0 10 20 30

-0.5

0

0.5

n

y 2[n]

0 10 20 30

-0.5

0

0.5

n

x[n]

Overlap-Add, Sum of Input Segments

0 10 20 30

-0.5

0

0.5

n

y[n]

Overlap-Add, Sum of Output Segments

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing

Block Convolution

Example:

0 10 20 30

-0.5

0

0.5

n

x[n]

Input Signal, Length 33

0 10 20 30

-0.5

0

0.5

n

h[n]

Impulse Response, Length P = 6

0 10 20 30

-0.5

0

0.5

n

y[n]

Linear Convolution, Length 38

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing

Block Convolution

Example:

0 10 20 30

-0.5

0

0.5

n

x[n]

Input Signal, Length 33

0 10 20 30

-0.5

0

0.5

n

h[n]

Impulse Response, Length P = 6

0 10 20 30

-0.5

0

0.5

n

y[n]

Linear Convolution, Length 38

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal Processing

x0[n]

x1[n]

x2[n]

x[n] = x0[n]+x1[n]+x2[n] y[n] = y0[n]+y1[n]+y2[n]

x0[n]

x1[n]

x2[n]

Example of overlap and add: Overlap-Save Method

Basic IdeaWe split the input signal x [n] into overlapping segments x

r

[n] oflength L+ P � 1.Perform a circular convolution of each input segment x

r

[n] withthe impulse response h[n], which is of length P using the DFT.Identify the L-sample portion of each circular convolution thatcorresponds to a linear convolution, and save it.This is illustrated below where we have a block of L samplescircularly convolved with a P sample filter.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal ProcessingSP 2015

M. Lustig, EECS UC Berkeley

Recall:x1[n]

x2[n]

n0 1 2 3 4

1

n0 1 2

1

5 6

3 4 5 6

n0 1 2 3 4

2

5 6

4Valid linear convolution!

Overlap-Save Method

0 10 20 30

-0.5

0

0.5

n

y[n]

Overlap-Save, Concatenation of Usable Output Segments

0 10 20 30

-0.5

0

0.5

n

x 0[n]

Overlap-Save, Input Segments, Length L = 16

0 10 20 30

-0.5

0

0.5

n

y 0p[n

]

Overlap-Save, Output Segments, Usable Length L - P + 1

Usable (y0[n])

Unusable

0 10 20 30

-0.5

0

0.5

n

x 1[n]

0 10 20 30

-0.5

0

0.5

n

y 1p[n

]

Usable (y1[n])

Unusable

0 10 20 30

-0.5

0

0.5

n

x 2[n)

0 10 20 30

-0.5

0

0.5

n

y 2p[n

]

Usable (y2[n])

Unusable

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2012, EE123 Digital Signal ProcessingSP 2015

Example of overlap and save:

M. Lustig, EECS UC Berkeley

DFT vs DTFT (revisit)

• Back to moving average example:

X(ej!) =4X

n=0

e�j!n

= e�j2! sin(52!)

sin(!2 )

w

DFT and Sampling the DTFT

X (e j!) = e�j4! sin2(5!/2)

sin2(!/2)

0 5 10 15!1

0

1

2

3

4

5

x[n]

n0 2 4 6

0

5

10

15

20

25

!

|X(ej!)|

0 2 4 6!1

0

1

2

3

4

5

reconstructed x[n]

n0 2 4 6

0

5

10

15

20

25

!

|X(ej!)|

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal Processing

Page 3: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

Circular Convolution as Matrix Operation

Circular convolution:

h[n]�N x [n] =

2

6664

h[0] h[N � 1] · · · h[1]h[1] h[0] h[2]

...h[N � 1] h[N � 2] h[0]

3

7775

2

6664

x [0]x [1]...

x [N]

3

7775

= Hc

x

Hc

is a circulant matrixThe columns of the DFT matrix are Eigen vectors of circulantmatrices.Eigen vectors are DFT coe�cients. How can you show?

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

[N-1]

Proof in HW

Circular Convolution as Matrix Operation

Diagonalize:

WN

Hc

W�1

n

=

2

64H[0] 0 · · · 00 H[1] · · · 0... 0 H[N � 1]

3

75

Right-multiply by WN

WN

Hc

=

2

64H[0] 0 · · · 00 H[1] · · · 0... 0 H[N � 1]

3

75WN

Multiply both sides by x

WN

Hc

x =

2

64H[0] 0 · · · 00 H[1] · · · 0... 0 H[N � 1]

3

75WN

x

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Fast Fourier Transform Algorithms

We are interested in e�cient computing methods for the DFTand inverse DFT:

X [k] =N�1X

n=0

x [n]W kn

N

, k = 0, . . . ,N � 1

x [n] =N�1X

k=0

X [k]W�kn

N

, n = 0, . . . ,N � 1

whereW

N

= e�j( 2⇡N

).

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Recall that we can use the DFT to compute the inverse DFT:

DFT �1{X [k]} =1

N(DFT {X ⇤[k]})⇤

Hence, we can just focus on e�cient computation of the DFT.

Straightforward computation of an N-point DFT (or inverseDFT) requires N2 complex multiplications.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Fast Fourier transform algorithms enable computation of anN-point DFT (or inverse DFT) with the order of justN · log

2

N complex multiplications.This can represent a huge reduction in computational load,especially for large N.

N N2 N · log2

N N

2

N·log2

N

16 256 64 4.0128 16,384 896 18.31,024 1,048,576 10,240 102.48,192 67,108,864 106,496 630.26⇥ 106 36⇥ 1012 135⇥ 106 2.67⇥ 105

* 6Mp image size

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Most FFT algorithms exploit the following properties of W kn

N

:

Conjugate Symmetry

W k(N�n)

N

= W�kn

N

= (W kn

N

)⇤

Periodicity in n and k :

W kn

N

= W k(n+N)

N

= W (k+N)n

N

Power:W 2

N

= WN/2

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Page 4: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

Most FFT algorithms decompose the computation of a DFTinto successively smaller DFT computations.

Decimation-in-time algorithms decompose x [n] intosuccessively smaller subsequences.Decimation-in-frequency algorithms decompose X [k] intosuccessively smaller subsequences.

We mostly discuss decimation-in-time algorithms here.

Assume length of x [n] is power of 2 ( N = 2⌫). If smallerzero-pad to closest power.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

We start with the DFT

X [k] =N�1X

n=0

x [n]W kn

N

, k = 0, . . . ,N � 1

Separate the sum into even and odd terms:

X [k] =X

n even

x [n]W kn

N

+X

n odd

x [n]W kn

N

These are two DFT’s, each with half of the samples.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

Let n = 2r (n even) and n = 2r + 1 (n odd):

X [k] =

(N/2)�1X

r=0

x [2r ]W 2rk

N

+

(N/2)�1X

r=0

x [2r + 1]W (2r+1)k

N

=

(N/2)�1X

r=0

x [2r ]W 2rk

N

+W k

N

(N/2)�1X

r=0

x [2r + 1]W 2rk

N

Note that:

W 2rk

N

= e�j( 2⇡N

)(2rk) = e�j

⇣2⇡N/2

⌘rk

= W rk

N/2

Remember this trick, it will turn up often.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

Hence:

X [k] =

(N/2)�1X

r=0

x [2r ]W rk

N/2 +W k

N

(N/2)�1X

r=0

x [2r + 1]W rk

N/2

= G [k] +W k

N

H[k], k = 0, . . . ,N � 1

where we have defined:

G [k]�

=

(N/2)�1X

r=0

x [2r ]W rk

N/2 ) DFT of even idx

H[k]�

=

(N/2)�1X

r=0

x [2r + 1]W rk

N/2 ) DFT of odd idx

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

An 8 sample DFT can then be diagrammed as

x[0]

x[2]

x[4]

x[6]

x[1]

x[3]

x[5]

x[7]

N/2 - Point DFT

N/2 - Point DFT

G[0]

G[1]

G[2]

G[3]

H[0]

H[1]

H[2]

H[3]

X[0]

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

WN0

WN1

WN2

WN3

WN4

WN5

WN6

WN7

Even S

am

ple

sO

dd S

am

ple

s

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

Both G [k] and H[k] are periodic, with period N/2. Forexample

G [k + N/2] =

(N/2)�1X

r=0

x [2r ]W r(k+N/2)N/2

=

(N/2)�1X

r=0

x [2r ]W rk

N/2Wr(N/2)N/2

=

(N/2)�1X

r=0

x [2r ]W rk

N/2

= G [k]

so

G [k + (N/2)] = G [k]

H[k + (N/2)] = H[k]

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Page 5: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

Decimation-in-Time Fast Fourier Transform

The periodicity of G [k] and H[k] allows us to further simplify.For the first N/2 points we calculate G [k] and W k

N

H[k], andthen compute the sum

X [k] = G [k] +W k

N

H[k] 8{k : 0 k <N

2}.

How does periodicity help for N

2

k < N?

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

X [k] = G [k] +W k

N

H[k] 8{k : 0 k <N

2}.

for N

2

k < N:

W k+(N/2)N

=?

X [k + (N/2)] =?

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

X [k + (N/2)] = G [k]�W k

N

H[k]

We previously calculated G [k] and W k

N

H[k].

Now we only have to compute their di↵erence to obtain the secondhalf of the spectrum. No additional multiplies are required.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

The N-point DFT has been reduced two N/2-point DFTs,plus N/2 complex multiplications. The 8 sample DFT is then:

x[0]

x[2]

x[4]

x[6]

x[1]

x[3]

x[5]

x[7]

N/2 - Point DFT

N/2 - Point DFT

G[k]

H[k]

X[0]

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

WN0

WN1

WN2

WN3

Even

Sa

mp

les

Od

d S

am

ple

s

WNk

-1

-1

-1

-1

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

Note that the inputs have been reordered so that the outputscome out in their proper sequence.We can define a butterfly operation, e.g., the computation ofX [0] and X [4] from G [0] and H[0]:

G[0] X[0] =G[0] + WN0

H[0]

WN0

-1

H[0] X[4] =G[0] - WN0

H[0]

This is an important operation in DSP.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

Still O(N2) operations..... What shall we do?

x[0]

x[2]

x[4]

x[6]

x[1]

x[3]

x[5]

x[7]

N/2 - Point DFT

N/2 - Point DFT

G[k]

H[k]

X[0]

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

WN0

WN1

WN2

WN3

Eve

n S

am

ple

sO

dd

Sam

ple

s

WNk

-1

-1

-1

-1

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Page 6: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

Decimation-in-Time Fast Fourier Transform

We can use the same approach for each of the N/2 pointDFT’s. For the N = 8 case, the N/2 DFTs look like

x[0]

x[2]

x[4]

x[6]

N/4 - Point DFT

G[1]

G[2]

G[3]

N/4 - Point DFT

G[0]

WN/20

WN/21

-1

-1

*Note that the inputs have been reordered again.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

At this point for the 8 sample DFT, we can replace theN/4 = 2 sample DFT’s with a single butterfly.The coe�cient is

WN/4 = W

8/4 = W2

= e�j⇡ = �1

The diagram of this stage is then

-1

x[0]

x[4]

1

x[0] + x[4]

x[0] - x[4]

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

Combining all these stages, the diagram for the 8 sample DFT is:

x[0]

x[2]

x[4]

x[6]

x[1]

x[3]

x[5]

x[7]

X[0]

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

WN0

WN1

WN2

WN3

-1

-1

-1

-1

WN/20

WN/21

-1

-1

WN/20

WN/21

-1

-1

-1

-1

-1

-1

This the decimation-in-time FFT algorithm.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

In general, there are log2

N stages of decimation-in-time.

Each stage requires N/2 complex multiplications, some ofwhich are trivial.

The total number of complex multiplications is (N/2) log2

N.

The order of the input to the decimation-in-time FFTalgorithm must be permuted.

First stage: split into odd and even. Zero low-order bit firstNext stage repeats with next zero-lower bit first.Net e↵ect is reversing the bit order of indexes

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Time Fast Fourier Transform

This is illustrated in the following table for N = 8.

Decimal Binary Bit-Reversed Binary Bit-Reversed Decimal

0 000 000 01 001 100 42 010 010 23 011 110 64 100 001 15 101 101 56 110 011 37 111 111 7

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Frequency Fast Fourier Transform

The DFT is

X [k] =N�1X

n=0

x [n]W nk

N

If we only look at the even samples of X [k], we can write k = 2r ,

X [2r ] =N�1X

n=0

x [n]W n(2r)

N

We split this into two sums, one over the first N/2 samples, andthe second of the last N/2 samples.

X [2r ] =

(N/2)�1X

n=0

x [n]W 2rn

N

+

(N/2)�1X

n=0

x [n + N/2]W 2r(n+N/2)N

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Page 7: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

Decimation-in-Frequency Fast Fourier Transform

But W 2r(n+N/2)N

= W 2rn

N

WN

N

= W 2rn

N

= W rn

N/2.We can then write

X [2r ] =

(N/2)�1X

n=0

x [n]W 2rn

N

+

(N/2)�1X

n=0

x [n + N/2]W 2r(n+N/2)N

=

(N/2)�1X

n=0

x [n]W 2rn

N

+

(N/2)�1X

n=0

x [n + N/2]W 2rn

N

=

(N/2)�1X

n=0

(x [n] + x [n + N/2])W rn

N/2

This is the N/2-length DFT of first and second half of x [n]summed.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Frequency Fast Fourier Transform

X [2r ] = DFTN

2

{(x [n] + x [n + N/2])}

X [2r + 1] = DFTN

2

{(x [n]� x [n + N/2])W n

N

}

(By a similar argument that gives the odd samples)

Continue the same approach is applied for the N/2 DFTs, and theN/4 DFT’s until we reach simple butterflies.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Decimation-in-Frequency Fast Fourier Transform

The diagram for and 8-point decimation-in-frequency DFT is asfollows

x[0]

x[2]

x[1]

x[3]

x[4]

x[6]

x[5]

x[7]

X[0]

X[4]

X[2]

X[6]

X[1]

X[5]

X[3]

X[7]

WN0

WN1

WN2

WN3

-1

-1

-1

-1

WN/20

WN/21

-1

-1

-1

-1

-1

-1-1

-1

WN/20

WN/21

This is just the decimation-in-time algorithm reversed!The inputs are in normal order, and the outputs are bit reversed.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Non-Power-of-2 FFT’s

A similar argument applies for any length DFT, where the lengthN is a composite number.For example, if N = 6, a decimation-in-time FFT could computethree 2-point DFT’s followed by two 3-point DFT’s

x[0]

x[1]

x[3]

x[4]

x[2]

x[5]

2-Point

DFT

2-Point

DFT

2-Point

DFT

3-Point

DFT

3-Point

DFT

W60

W61

W62

X[0]

X[2]

X[4]

X[1]

X[3]

X[5]

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Non-Power-of-2 FFT’s

Good component DFT’s are available for lengths up to 20 or so.Many of these exploit the structure for that specific length. Forexample, a factor of

WN/4N

= e�j

2⇡N

(N/4) = e�j

⇡2 = �j Why?

just swaps the real and imaginary components of a complexnumber, and doesn’t actually require any multiplies.Hence a DFT of length 4 doesn’t require any complex multiplies.Half of the multiplies of an 8-point DFT also don’t requiremultiplication.Composite length FFT’s can be very e�cient for any length thatfactors into terms of this order.

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

For example N = 693 factors into

N = (7)(9)(11)

each of which can be implemented e�ciently. We would perform

9⇥ 11 DFT’s of length 77⇥ 11 DFT’s of length 9, and7⇥ 9 DFT’s of length 11

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Page 8: EE123 Digital Signal Processing - University of …ee123/sp15/Notes/Lecture07_OVLP... · – We want to take advantage of DFT/FFT and ... Based on Course Notes by J.M Kahn SP 2015

Historically, the power-of-two FFTs were much faster (betterwritten and implemented).For non-power-of-two length, it was faster to zero pad topower of two.Recently this has changed. The free FFTW packageimplements very e�cient algorithms for almost any filterlength. Matlab has used FFTW since version 6

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

FFT as Matrix Operation

0

BBBBBBBB@

X [0]

.

.

.

X [k]

.

.

.

X [N � 1]

1

CCCCCCCCA

=

0

BBBBBBBBBB@

W

00

N

· · · W

0n

N

· · · W

0(N�1)

N

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

W

k0

N

· · · W

kn

N

· · · W

k(N�1)

N

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

W

(N�1)0

N

· · · W

(N�1)n

N

· · · W

(N�1)(N�1)

N

1

CCCCCCCCCCA

0

BBBBBBBB@

x[0]

.

.

.

x[n]

.

.

.

x[N � 1]

1

CCCCCCCCA

WN

is fully populated ) N2 entries.

FFT is a decomposition of WN

into a more sparse form:

FN

=

IN/2 D

N/2

IN/2 �D

N/2

� W

N/2 00 W

N/2

� Even-Odd Perm.

Matrix

IN/2 is an identity matrix. D

N/2 is a diagonal with entries

1, WN

, · · · ,WN/2�1

N

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

FFT as Matrix Operation

0

BBBBBBBB@

X [0]

.

.

.

X [k]

.

.

.

X [N � 1]

1

CCCCCCCCA

=

0

BBBBBBBBBB@

W

00

N

· · · W

0n

N

· · · W

0(N�1)

N

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

W

k0

N

· · · W

kn

N

· · · W

k(N�1)

N

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

W

(N�1)0

N

· · · W

(N�1)n

N

· · · W

(N�1)(N�1)

N

1

CCCCCCCCCCA

0

BBBBBBBB@

x[0]

.

.

.

x[n]

.

.

.

x[N � 1]

1

CCCCCCCCA

WN

is fully populated ) N2 entries.FFT is a decomposition of W

N

into a more sparse form:

FN

=

IN/2 D

N/2

IN/2 �D

N/2

� W

N/2 00 W

N/2

� Even-Odd Perm.

Matrix

IN/2 is an identity matrix. D

N/2 is a diagonal with entries

1, WN

, · · · ,WN/2�1

N

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014

FFT as Matrix Operation

Example: N = 4

F4

=

2

664

1 0 1 00 1 0 W

4

1 0 �1 00 1 0 �W

4

3

775

2

664

1 1 0 01 �1 0 00 0 1 10 0 1 �1

3

775

2

664

1 0 0 00 0 1 00 1 0 00 0 0 1

3

775

Miki Lustig UCB. Based on Course Notes by J.M Kahn Fall 2011, EE123 Digital Signal ProcessingSP 2014 M. Lustig, EECS UC Berkeley

Beyond NlogN

• What if the signal x[n] has a k sparse frequency– A. Gilbert et. al, “Near-optimal sparse Fourier representations via

sampling– H. Hassanieh et. al, “Nearly Optimal Sparse Fourier Transform”– Others......

• O(K Log N) instead of O(N Log N)

From: http://groups.csail.mit.edu/netmit/sFFT/paper.html