the fast fourier transform (fft)
DESCRIPTION
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.TRANSCRIPT
Chapter 15. The Fast Fourier Transform
09 December 2013
Oka Danil Saputra (20136135) IT Convergence
Kumoh National Institute of Technology
Wireless & Emerging Networking System Laboratory
DOC ID
• 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
• 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
• The function generating the signal is of the form:
Figure 15.1 (b) The discrete fourier transform yields the amplitude and Frequencies of the constituent sine and cosine functions
To calculate the coefficient , for each frequency divide the amplitude by 8 (half of 16, the number of sample point)
• The frequency 1 component is 16𝑖. • The frequency 2 component is -8. • The frequency 3 component is -16𝑖. • The frequency 4 component is 4.
f1 f2 f3 f4
DOC ID
• 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
• This plot can be used as inputs to speech recognition system
with identify spoken through pattern recognition.
Figure 15.2 Discrete fourier transform for human speech
DOC ID
• 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
• 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
• Given an n element vector x, the inverse DFT is:
DOC ID
• For example, to multiply the two polynomials.
• Yielding:
• Convolute the coefficient vectors:
• The result:
DOC ID
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
1. We perform the DFT on the coefficients of p(x).
2. Perform the DFT on the coefficients of q(x).
DOC ID
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
• 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
• 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
• 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+ 𝑖).
Figure 15.4 (a) Recursive implementation of FFT
DOC ID
• 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
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
Iterative algorithm has the same time complexity as the recursive algorithm :
DOC ID
THANK YOU