Title: Fast%20Fourier%20Transform
1Fast Fourier Transform
2Outline (hopefully)
- Finite discrete signals
- Linear shift-invariant filters
- Impulse responses
- Circular convolutions
- Discrete Fourier Transform
- The Fast Fourier Transform
3Continuous signals
4Finite signals
- Usually come from regular discretization
5Finite signals
- Usually come from regular discretization
- Might as well think of them as vectors!
6Discrete Fourier Transform
Complexity O(N2)
FFT is just an O(N log N) algorithm
7Transformations on vectors
8Transformations on vectors
Linear (i.e., matrices)
Shift invariant
(in a circular way)
9Closer look at shift invariance
10Closer look at shift invariance
L is shift invariant iff
11The canonic basis of RN
12How does matrix L look like?
h is the impulse response of L
It captures all information about L!
13How does matrix L look like?
14How do we multiply L by v?
This is why we care about convolutions!
15The circular convolution
Complexity O(N2)
16What we have so far
- We discretized a continuous function turning it
into a vector in RN - We defined a class of transformations from RN to
RN that we care about - Each linear shift-invariant transformations L can
be written as a circular convolution - The convolution is with the impulse response h of
the transformation L - We can compute it in O(N2)
17This is too abstract!
- Want to make a recording of your voice sound as
if you were inside a bathroom? - Your bathroom transform sound in a linear, shift
invariant way. - Record the sound of a clap in the bathroom.
- Record your voice outside.
- Convolve the two signals!
18Easy to do in Matlab
- a wavread('bathroom-ip.wav')
- b wavread('laugh.wav')
- a a / max(abs(a))
- b b / max(abs(b))
- c conv(a, b)
- c c / max(abs(c))
- p audioplayer(c, 44000)
- play(p, 1 length(c))
19Better convolution strategy
O(N2)
Lv
v
convolution
FFT
IFFT
F-1LF F-1v
O(N)
F-1v
product
20Diagonalizing L
- Need a basis of eigenvectors for L. Trick is to
look at P first! - Assume for now that P has distinct eigenvalues.
- If wi is an eigenvector of P, then it is also an
eigenvector of L!
- Lwi is an eigenvector of P, with the same
eigenvalue - We must have
- wi is also eigenvector of L (for some other
eigenvalue) - Since P has a full set of wi, L is diagonalized
by the same wi!
21The eigenvalues of P
Indeed, P has a full set!
22The eigenvectors wk of P
23The eigenvectors wk of P
24Better convolution strategy
O(N2)
Lv
v
convolution
FFT
IFFT
F-1LF F-1v
O(N)
F-1v
product
Not only does F exist. It does not depend on L!
25How do F and F-1 look like?
26How to compute F-1v?
27The eigenvalues of L
Finally!!!
28Discrete Fourier Transform
FFT is just an O(N log N) algorithm
29Better convolution strategy
O(N2)
Lv
v
convolution
FFT
IFFT
F-1LF F-1v
O(N)
F-1v
product
30Fast Fourier Transform
31Fast Fourier Transform
32Better convolution strategy
O(N2)
Lv
v
convolution
FFT
IFFT
F-1LF F-1v
O(N)
F-1v
product
33Easy to do in Matlab
- a wavread('bathroom-ip.wav')
- b wavread('laugh.wav')
- a a / max(abs(a))
- b b / max(abs(b))
- c fftfilt(a, b)
- c c / max(abs(c))
- p audioplayer(c, 44000)
- play(p, 1 length(c))