Escolar Documentos
Profissional Documentos
Cultura Documentos
Outline
Scientific Computing: An Introductory Survey
Chapter 12 Fast Fourier Transform
Applications
Michael T. Heath
Scientific Computing
Michael T. Heath
1 / 32
Trigonometric Interpolation
2 / 32
where i = 1
cos(2kt) =
e2ikt + e2ikt
2
and
Michael T. Heath
Scientific Computing
e2ikt e2ikt
2
Pure cosine or sine wave of frequency k is equivalent to
sum or difference of complex exponentials of half
amplitude and frequencies k and k
sin(2kt) = i
Scientific Computing
3 / 32
Michael T. Heath
Scientific Computing
4 / 32
Roots of Unity
k=0
1 1
1
1
1
1
1
1
1 1 2 3 1 i 1
i
F4 =
1 2 4 6 = 1 1
1 1
3
6
9
1
1
i 1 i
Scientific Computing
5 / 32
Michael T. Heath
Scientific Computing
6 / 32
Inverse DFT
DFT, continued
Note that
1 1
1
1
1
1
1
1
1
1
2
3
1
2
3
1
1 = 0
n 1 2 4 6 1 2 4 6 0
1 3 6 9
0
1 3 6 9
0
1
0
0
0
0
1
0
0
0
0
1
In general,
Fn1 = (1/n)FnH
Inverse DFT is therefore given by
xk =
n1
1 X
ym nmk
n
k = 0, 1, . . . , n 1
m=0
Scientific Computing
7 / 32
Michael T. Heath
Scientific Computing
8 / 32
Example: DFT
Example: DFT
35
4
0 5.07 + 8.66i
3 3 + 2i
6 9.07 + 2.66i
=y
=
F8 x = F8
2
5
9 9.07 2.66i
6 3 2i
5.07 8.66i
Michael T. Heath
Scientific Computing
9 / 32
Michael T. Heath
Scientific Computing
10 / 32
Computing DFT
n0 = n4 = 1,
n2 = n6 = 1,
n9 = n1
y0 = (x0 + n0 x2 ) + n0 (x1 + n0 x3 )
y1 = (x0 n0 x2 ) + n1 (x1 n0 x3 )
y2 = (x0 + n0 x2 ) + n2 (x1 + n0 x3 )
m = 0, . . . , 3
y3 = (x0 n0 x2 ) + n3 (x1 n0 x3 )
k=0
y2 = x0 n0 + x1 n2 + x2 n4 + x3 n6
y3 =
x0 n0
x1 n3
Michael T. Heath
x2 n6
x3 n9
Scientific Computing
11 / 32
Michael T. Heath
Scientific Computing
1
0
P4 =
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1 i 1
1
1
i
, ...
F1 = 1,
F2 =
,
F4 =
1 1
1 1
1 1
1
i 1 i
Michael T. Heath
Scientific Computing
1
0
0 i
Then
1
1
1
1
1 1 i
i
D2 F2
= F2
F4 P4 =
1
F2 D2 F2
1 1 1
1 1
i i
13 / 32
Michael T. Heath
Scientific Computing
14 / 32
FFT Algorithm
procedure fft(x, y, n, )
if n = 1 then
y[0] = x[0]
else
for k = 0 to (n/2) 1
p[k] = x[2k]
s[k] = x[2k + 1]
end
fft(p, q, n/2, 2 )
fft(s, t, n/2, 2 )
for k = 0 to n 1
y[k] = q[k mod (n/2)] +
k t[k mod (n/2)]
end
end
12 / 32
Scientific Computing
15 / 32
Michael T. Heath
{ bottom of recursion }
Scientific Computing
16 / 32
Scientific Computing
17 / 32
Complexity of FFT
Scientific Computing
18 / 32
Inverse Transform
Michael T. Heath
Discrete Fourier Transform
Fast Fourier Transform
Applications
n log2 n
384
896
2048
4608
10240
Michael T. Heath
n2
4096
16384
65536
262144
1048576
Scientific Computing
19 / 32
Michael T. Heath
Scientific Computing
20 / 32
Limitations of FFT
Mixed-Radix FFT
Equally spaced
Periodic
Power of two in length
Michael T. Heath
Scientific Computing
21 / 32
Michael T. Heath
Scientific Computing
Applications of DFT
Michael T. Heath
22 / 32
Scientific Computing
23 / 32
Michael T. Heath
Scientific Computing
24 / 32
n1
X
vk umk ,
m = 0, 1, . . . , n 1
k=0
Scientific Computing
25 / 32
Michael T. Heath
Scientific Computing
Wavelets
26 / 32
Scientific Computing
27 / 32
Michael T. Heath
Scientific Computing
28 / 32
Wavelets, continued
Wavelets, continued
Scientific Computing
29 / 32
Michael T. Heath
Scientific Computing
30 / 32
Wavelets, continued
Michael T. Heath
Scientific Computing
Michael T. Heath
Scientific Computing
32 / 32