Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage,...

13
Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?” I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question. Charles Babbage Content and Figures are from Discrete-Time Signal Processing, 2e by Oppenheim, Shafer, and Buck, ©1999-2000 Prentice Hall Inc.

Transcript of Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage,...

Page 1: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Fast Fourier Transforms

Quote of the DayOn two occasions I have been asked, “Pray, Mr.

Babbage, if you put into the machine wrong figures, will the right answers come out?” I am not able

rightly to apprehend the kind of confusion of ideas that could provoke such a question.

                              Charles Babbage

Content and Figures are from Discrete-Time Signal Processing, 2e by Oppenheim, Shafer, and Buck, ©1999-2000 Prentice Hall Inc.

Page 2: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 2

Discrete Fourier Transform

• The DFT pair was given as

• Baseline for computational complexity: – 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

• Most fast methods are based on symmetry properties– Conjugate symmetry– Periodicity in n and k

1N

0k

knN/2jekXN1

]n[x

1N

0n

knN/2je]n[xkX

knN/2jnkN/2jkNN/2jnNkN/2j eeee nNkN/2jNnkN/2jknN/2j eee

Page 3: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 3

The Goertzel Algorithm

• Makes use of the periodicity

• Multiply DFT equation with this factor

• Define

• With this definition and using x[n]=0 for n<0 and n>N-1

• X[k] can be viewed as the output of a filter to the input x[n]– Impulse response of filter:

– X[k] is the output of the filter at time n=N

1ee k2jNkN/2j

1N

0r

nNrN/2j1N

0r

rnN/2jkNN/2j e]r[xe]r[xekX

r

rnkN/2jk rnue]r[xny

Nnk nykX

nue knN/2j

Page 4: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 4

The Goertzel Filter

• Goertzel Filter

• Computational complexity– 4N real multiplications– 2N real additions– Slightly less efficient than the direct method

• Multiply both numerator and denominator

1k

N2

jk

ze1

1zH

21

1kN2

j

1kN2

j1kN2

j

1kN2

j

k

zzNk2

cos21

ze1

ze1ze1

ze1zH

Page 5: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 5

Second Order Goertzel Filter

• Second order Goertzel Filter

• Complexity for one DFT coefficient– Poles: 2N real multiplications and 4N real additions – Zeros: Need to be implement only once

• 4 real multiplications and 4 real additions

• Complexity for all DFT coefficients– Each pole is used for two DFT coefficients

• Approximately N2 real multiplications and 2N2 real additions

• Do not need to evaluate all N DFT coefficients– Goertzel Algorithm is more efficient than FFT if

• less than M DFT coefficients are needed• M < log2N

21

1kN2

j

k

zzNk2

cos21

ze1zH

Page 6: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 6

Decimation-In-Time FFT Algorithms

• Makes use of both symmetry and periodicity• Consider special case of N an integer power of 2• Separate x[n] into two sequence of length N/2

– Even indexed samples in the first sequence– Odd indexed samples in the other sequence

• Substitute variables n=2r for n even and n=2r+1 for odd

• G[k] and H[k] are the N/2-point DFT’s of each subsequence

1N

odd n

knN/2j1N

even n

knN/2j1N

0n

knN/2j e]n[xe]n[xe]n[xkX

kHWkG

W]1r2[xWW]r2[x

W]1r2[xW]r2[xkX

kN

12/N

0r

rk2/N

kN

12/N

0r

rk2/N

12/N

0r

k1r2N

12/N

0r

rk2N

Page 7: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 7

Decimation In Time

• 8-point DFT example using 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 same process – Divide N/2-point DFTs into – Two N/4-point DFTs– Combine outputs

Page 8: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 8

Decimation In Time Cont’d

• After two steps of decimation in time

• Repeat until we’re left with two-point DFT’s

Page 9: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 9

Decimation-In-Time FFT Algorithm

• Final flow graph for 8-point decimation in time

• Complexity:– Nlog2N complex multiplications and additions

Page 10: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 10

Butterfly Computation

• Flow graph constitutes of butterflies

• We can implement each butterfly with one multiplication

• Final complexity for decimation-in-time FFT– (N/2)log2N complex multiplications and additions

Page 11: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 11

In-Place Computation

• Decimation-in-time flow graphs require two sets of registers– Input and output for each stage

• Note the arrangement of the input indices– Bit reversed indexing

111x111X7x7X

011x110X3x6X

101x101X5x5X

001x100X1x4X

110x011X6x3X

010x010X2x2X

100x001X4x1X

000x000X0x0X

00

00

00

00

00

00

00

00

Page 12: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 12

Decimation-In-Frequency FFT Algorithm

• The DFT equation

• Split the DFT equation into even and odd frequency indexes

• Substitute variables to get

• Similarly for odd-numbered frequencies

1N

0n

nkNW]n[xkX

1N

2/Nn

r2nN

12/N

0n

r2nN

1N

0n

r2nN W]n[xW]n[xW]n[xr2X

12/N

0n

nr2/N

12/N

0n

r22/NnN

12/N

0n

r2nN W]2/Nn[x]n[xW]2/Nn[xW]n[xr2X

12/N

0n

1r2n2/NW]2/Nn[x]n[x1r2X

Page 13: Fast Fourier Transforms Quote of the Day On two occasions I have been asked, “Pray, Mr. Babbage, if you put into the machine wrong figures, will the right.

Copyright (C) 2005 Güner Arslan

351M Digital Signal Processing 13

Decimation-In-Frequency FFT Algorithm

• Final flow graph for 8-point decimation in frequency