0% found this document useful (0 votes)
54 views13 pages

Fast Fourier Transforms: Quote of The Day

fast fourier transform
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)
54 views13 pages

Fast Fourier Transforms: Quote of The Day

fast fourier transform
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
You are on page 1/ 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.
Discrete Fourier Transform
• The DFT pair was given as
1 N 1
x[n]   Xk e j 2  / Nkn
N 1
Xk    x[n]e  j 2  / N  kn
N k 0
n0

• 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
 j 2  / N  k  N  n 
– Conjugate symmetry e  e j 2 / NkNe  j 2  / Nk  n  e j 2  / Nkn
– Periodicity in n and k e  j 2  / N kn  e  j 2  / N k  n N  e j 2  / N k N n

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 2


The Goertzel Algorithm
• Makes use of the periodicity
e j 2  / NNk  e j2 k  1
• Multiply DFT equation with this factor
N 1 N 1
Xk   e j 2  / N  kN
 x[r]e  j 2  / N  rn
  x[r]e j 2  / N r  N n 

r 0 r 0

• Define 
yk n   x[r]e j 2  / N  k  n  r 
un  r 
r  
• With this definition and using x[n]=0 for n<0 and n>N-1

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

e j 2  / Nknun

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

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 3


The Goertzel Filter
• Goertzel Filter
1
Hk  z   2
j k
1e N
z 1
• Computational complexity
– 4N real multiplications
– 2N real additions
– Slightly less efficient than the direct method

• Multiply both numerator and denominator


2 2
j k j k
1e z 1 N
1e z 1 N
Hk  z   
 2
j k  2
j k  2k 1
1  e N z 1 1  e N z 1  1  2 cos z  z 2
   N
  

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 4


Second Order Goertzel Filter
• Second order Goertzel Filter

2
j k
1e z 1 N
Hk  z  
2k 1
1  2 cos z  z2
N

• 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

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 5


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
N 1 N 1 N 1
Xk    x[n]e  j 2  / N  kn
  x[n]e  j 2  / N  kn
  x[n]e  j 2  / N  kn

n0 n even n odd

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


N / 2 1 N / 2 1
Xk    x[2r]W 2rk
N   x[2r  1]W N
2r 1  k

r 0 r 0
N / 2 1 N / 2 1
  x[2r]W
r 0
rk
N/2 W k
N  x[2r  1]W
r 0
rk
N/2

 Gk   W Hk  k
N

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


Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 6
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

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 7


Decimation In Time Cont’d
• After two steps of decimation in time

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

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 8


Decimation-In-Time FFT Algorithm
• Final flow graph for 8-point decimation in time

• Complexity:
– Nlog2N complex multiplications and additions

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 9


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

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 10


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
X 0 0  x0  X 0 000  x000
X 0 1  x 4  X 0 001  x100
X 0 2  x2  X0 010  x010
X 0 3  x6  X0 011  x110
X 0  4  x1  X 0 100  x001
X 0 5  x5  X 0 101  x101
X 0 6  x3  X0 110  x011
X 0 7  x7  X0 111  x111

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 11


Decimation-In-Frequency FFT Algorithm
• The DFT equation
N 1
Xk    x[n]Wnk
N
n0

• Split the DFT equation into even and odd frequency indexes
N 1 N / 2 1 N 1
X2r    x[n]W n2r
N   x[n]W n2r
N   x[n]Wn2r
N
n0 n0 n N / 2

• Substitute variables to get


N / 2 1 N / 2 1 N / 2 1
X2r    x[n]W n2r
N   x[n  N / 2]W  n N / 2  2r
N    x[n]  x[n  N / 2]W
nr
N/2
n0 n0 n0

• Similarly for odd-numbered frequencies


N / 2 1
X2r  1    x[n]  x[n  N / 2]W  n 2r 1
N/2
n0

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 12


Decimation-In-Frequency FFT Algorithm
• Final flow graph for 8-point decimation in frequency

Copyright (C) 2005 Güner Arslan 351M Digital Signal Processing 13

You might also like