Title: Fast%20Fourier%20Transform
1Fast Fourier Transform
2Definition
- All Periodic Waves Can be Generated by Combining
Sin and Cos Waves of Different Frequencies - Number of Frequencies may not be finite
- Fourier Transform Decomposes a Periodic Wave into
its Component Frequencies
3DFT Definition
- Sample consists of n points, wave amplitude at
fixed intervals of time(p0,p1,p2, ..., pn-1) (n
is a power of 2) - Result is a set of complex numbers giving
frequency amplitudes for sin and cos components - Points are computed by polynomialP(x)p0p1xp2x
2 ... pn-1xn-1
4DFT Definition, continued
- The complete DFT is given byP(1), P(w), P(w2),
... ,P(wn-1) - w Must be a Primitive nth Root of Unity
- wn1, if 0ltiltn then wi ¹ 1
5Primitive Roots of Unity
- wi is an nth root of unity (not primitive)
- wn/2 -1
- if 0jn/2-1 then w(n/2)j -wj
- if n is even and w is a primitive nth root of
unity, then w2 is a primitive n/2 root of unity - Example w cos(2p/n) isin(2p/n)
6Divide and Conquer
- Compute an n-point DFT using one or more
n/2-point DFTs - Need to find Terms involving w2 in following
polynomial - P(w)p0p1wp2w2p3w3p4w4 ... pn-1wn-1
Here They Are
7Even/Odd Separation
- P(w) P1(w)P2(w)
- P1(w)p0p2w2p4w4 ... pn-2wn-2
- P1(w)Pe (w2)p0p2wp4w1...pn-2w(n-2)/2
- P2(w)p1wp3w3p5w5 ... pn-1wn-1
- P2(w) w P3(w)p1p3w2... pn-1wn-2
- P3(w)Po(w2) p1p3w... pn-1w(n-2)/2
- P(w) Pe(w2) wPo(w2)
- Pe Po come from n/2 point FFTs
8The Algorithm
DFFT(PArrayk,mInteger)Array begin If k0
Then DFFT0P0DFFT1P0 Else
Evens DFFT(EvenElemOf(P),k-1,2m) Odds
DFFT(OddElemOf(P),k-1,2m) For i 0 to
2k-1-1 Do x Oddsjwmj
DFFTj Evensj x DFFT2k-1j
Evensj - x End For End If end
9Iterative Algorithm
For i 0 To n-2 By 2 Do Ti pf(i)
pf(t1) Ti1 pf(i) - pf(t1) End
For m n/2 n 2 For k lg n - 2 To 0 By
-1 Do m m/2 n 2n For i 0 To
(2k-1)n By n Do For j 0 To (n/2)-1 Do
x wmj Tin/2j Tin/2j
Tij - x Tij Tij x
End For End For End For
10What is f(i)?
i
f(i)
- 000 000 - 000 000 - 000 000
- 001 010 - 010 100 - 100 100
- 010 100 - 100 010 - 010 010
- 011 110 - 110 110 - 110 110
- 100 001 - 001 001 - 001 001
- 101 011 - 011 101 - 101 101
- 110 101 - 101 011 - 011 011
- 111 111 - 111 111 - 111 111