The discrete Fourier transform has many applications in science and engineering. For example, it is often used in digital signal processing applications such as voice recognition and image processing.
1. Wireless & Emerging Networking System Laboratory
Chapter 15.
The Fast Fourier
Transform
09 December 2013
Oka Danil Saputra (20136135)
IT Convergence
Kumoh National Institute of Technology
2. • Represent continuous function by sinusoidal (sine and cosine)
functions.
• Discrete fourier transform 𝑓 𝑘 as a sequence function in
time domain to another sequence frequency domain 𝑓 𝑗 .
DOC ID
3. • Example of the discrete fourier transform.
Figure 15.1 (a) A set of 16 data points representing sample of signal strength in the
time interval 0 to 2𝜋.
DOC ID
4. • The function generating the signal is of the form:
f1
f2
f3
f4
To calculate the coefficient , for each frequency divide the
amplitude by 8 (half of 16, the number of sample point)
•
•
•
•
Figure 15.1 (b) The discrete fourier transform
yields the amplitude and Frequencies of the
constituent sine and cosine functions
DOC ID
The frequency 1 component is 16𝑖.
The frequency 2 component is -8.
The frequency 3 component is -16𝑖.
The frequency 4 component is 4.
5. • The generating signal are:
Figure 15.1 (c) A plot of the four constituent functions and their sum a continuous function.
(d) A plot of the continuous function and the original 16 sample
DOC ID
6. Figure 15.2 Discrete fourier transform for human speech
• This plot can be used as inputs to speech recognition system
with identify spoken through pattern recognition.
DOC ID
7. • Given an 𝑛 element vector 𝑥, the DFT is the matrix-vector
product
, where is the
primitive 𝑛th root of unity.
• Example, compute DFT of the vector (2,3) where the primitive
square root of unity is -1.
• Compute the DFT of the vector (1,2,4,3) using the primitive
fourth root of unity, which is 𝑖.
DOC ID
8. •
Let’s put the DFT for previous section where we have a vector of 16 complex.
•
The DFT of this vector is:
•
To determine the coefficients of the sine and cosine, we examine the
nonzero element in the first half.
•
Thus the combination of sine and cosine functions making up the curve is:
DOC ID
9. • Given an n element vector x, the inverse DFT is:
DOC ID
10. • For example, to multiply the two polynomials.
• Yielding:
• Convolute the coefficient vectors:
• The result:
DOC ID
11. Another way to multiply two polynomials of degree n-1 is:
1. To evaluate at the n complex 𝑛th roots of unity.
2. Perform an element-wise multiplication of the polynomials
value at these points.
3. Interpolate the results to produce the coefficients of the
product polynomial.
DOC ID
12. 1. We perform the DFT on the coefficients of p(x).
2. Perform the DFT on the coefficients of q(x).
DOC ID
13. 3. We perform an element-wise multiplication.
4. Last step, perform the inverse DFT on the product vector.
5. The vector produced by the inverse DFT contains the
coefficients.
DOC ID
14. • The FFT uses a divide-and-conguer strategy to evaluate a
polynomial of degree n at the n complex nth roots of unity.
• Having Lemma: If 𝑛 is an even positive number, then the
squares of the 𝑛 complex 𝑛th roots of units are identical to the
𝑛/2 complex (𝑛/2)th root of unity.
DOC ID
15. •
The most natural way to express the FFT algorithm is using recursion.
The time complexity of this algorithm
is easy to determine. Lets T(n) denote
the time needed to perform the FFT
on a polynomial of degree n.
DOC ID
16. • Figure 15.4 illustrates the derivation of an iterative algorithm
from recursive algorithm.
• Performing the FFT on input vector (1,2,4,3) produces the
result vector (10,-3-𝑖,0,-3+ 𝑖).
DOC ID
Figure 15.4 (a) Recursive implementation of FFT
17. • In figure 15.4b we look inside the functions and determine
exactly which operations are performed for each invocation.
• The expressions of form a+b(c) and a-b(c) correspond the
pseudocode statements.
Figure 15.4 (b) Determining which computations
are performed for each function invocation
DOC ID
18. Iterative algorithm:
•
After an initial permutation step, the algorithm will iterate log n time.
•
Each iteration corresponds to a horizontal layer in Figure 15.4c.
•
Within an iteration the algorithm updates value for each of the 𝑛 indices.
Figure 15.4 (c) Tracking the flow of data values
DOC ID