Computational Complexity of DFT - Department of …srs1/files/Circuits_10_26.pdf · Computational...
-
Upload
nguyendiep -
Category
Documents
-
view
216 -
download
3
Transcript of Computational Complexity of DFT - Department of …srs1/files/Circuits_10_26.pdf · Computational...
Computational Complexity of DFT
Samantha R. Summerson
26 October, 2009
1 Review DTFT and DFT
Recall the formula for the DTFT and the inverse DTFT:
S(ej2πf
)=
∞∑n=−∞
s(n)e−j2πfn,
s(n) =∫ 1
2
− 12
S(ej2πf
)ej2πfn.
The spectra of discrete-time signals are periodic with a period of 1. The DFT is the DTFT sampled atf = k
N . The formulas for the DFT and the inverse DFT are:
S(k) =N−1∑n=0
s(n)e−j2πkN n,
s(n) =1N
N−1∑k=0
S(k)ej2πkN n.
2 Computational Complexity
The DFT requires 2N2 real multiplies and adds.
N−1∑n=0
s(n)(cos
(2π
k
Nn
)− jsin
(2π
k
Nn
))How can we make this faster? One thing to notice is that we can take advantage of the periodicity of sineand cosine. Unfortunately, this only reduces the number of operations to O
(N2). We need to do something
smarter. The Fast Fourier Transform (FFT) was invented by Gauss in 1805, and later re-discovered byCooley and Tukey in 1965. This methods requires only O (Nlog2(N)) operations. The trick: assume thatN = 2L (if this is not the case, we simply pad our signal with zeros to make its length a power of 2). Westart by re-ordering the terms in the DFT.
S(k) = s(0) + s(2)e−j2π2kN + ...+ s(N − 2)e−j2π
(N−2)kN + s(1)e−j2π
kN + s(3)e−j2π
(2+1)kN + ...+ s(N − 1)e−j2π
(N−1)kN ,
= s(0) + s(2)e−j2π2kN + ...+ s(N − 2)e−j2π
(N−2)kN + e−j2π
kN
(s(1) + s(3)e−j2π
2kN + ...+ s(N − 1)e−j2π
(N−2)kN
),
= s(0) + s(2)e−j2πk
N/2 + ...+ s(N − 2)e−j2π(N/2−1)k
N/2 + e−j2πkN
(s(1) + s(3)e−j2π
kN/2 + ...+ s(N − 1)e−j2π
(N/2−1)kN/2
)We notice that this looks like a sum of two length N
2 DFTs, with one of the DFTs scaled by e−j2πkN (which
we call the twiddle factor). We can continue dividing the DFTs in half, since the orginal DFT was of length
1
that was a power of two, until we have a sum of DFTs of length 2. This method requires O (Nlog2(N))operations.
L 2L
1 22 43 84 165 326 647 1288 2569 51210 102411 204812 4096
2