Download presentation
Presentation is loading. Please wait.
Published byLionel Goodman Modified over 9 years ago
1
Fast Fourier Transform Irina Bobkova
2
Overview I. Polynomials II. The DFT and FFT III. Efficient implementations IV. Some problems
3
A polynomial in the variable x over an algebraic field F is representation of a function A(x) as a formal sum Coefficient representation Point-value representation Coefficient representation Point-value representation Adding Multiplication Representation of polynomials
4
Interpolation Interpolation-the inverse of evaluation –determining the coefficient form from a point-value representation Lagrange’s formula The coefficients can be computed in time Exercise. Prove it. Thus, n-point evaluation and interpolation are well-defined inverse operations between two representations. The algorithms described above for these problems take time.
5
Fast multiplication Question.Can we use the linear-time multiplication method for polynomials in point-value form to expedite polynomial multiplication in coefficient form? Answer.Yes, but we are to be able to convert quickly from one form to another. Ordinary multiplication Time Θ(n²) Pointwise multiplication Time Θ(n) Evaluation Time Θ(n lg n) Interpolation Time Θ(n lg n)
6
Complex roots of unity There are exactly n complex roots of unity.They form a cyclic multiplication group: The value is called the primitive root of unity; all of the other complex roots are powers of it.
7
Discrete Fourier Transform Let F(x) be the polynomial with degree- bound n, which is a power of 2. is a primitive n-th root of unity. Let.Then The vector is called the Discrete Fourier Transform of vector a. The matrix is denoted by.
8
How to find F n -1 ? Proposition. Let be a primitive l-th root of unity over a field L.Then Proof. The l =1 case is immediate since =1. Since is a primitive l-th root, each k,k 0 is a distinct l-th root of unity. Comparing the coefficients of Z l-1 on the left and right hand sides of this equation proves the proposition.
9
Inverse matrix to F n Proposition. Let ω be an n-th root of unity.Then, Proof. The i=j case is obvious.If i j then will be a primitive root of unity of order l, where l|n.Applying the previous proposition completes the proof. So, Evaluating y= F n ( ) a Interpolationa= y
10
Fast Fourier Transform So, the problem of evaluating A(x) reduces to: 1.Evaluating the degree-bound n/2 polynomials 2. Combining the results
11
Recursive FFT
12
Time of the Recursive-FFT To determine the running time of procedure Recursive-FFT, we note, that exclusive of the recursive calls, each invocation takes time Θ(n), where n is the length of the input vector.The recurrence for the running time is therefore T(n) = 2T(n/2) + Θ(n) = Θ(n log n)
13
More effective implementations The for loop involves computing the value twice.We can change the loop(the butterfly operation):.
14
Iterative FFT 1) We take the elements in pairs, compute the DFT of each pair, using one butterfly operation, and replace the pair with its DFT 2) We take these n/2 DFT’s in pairs and compute the DFT of the four vector elements. We take 2 (n/2)-element DFT’s and combine them using n/2 butterfly operations into the final n-element DFT
15
Iterative-FFT.Code. 0,4,2,6,1,5,3,7 000,100,010,110,001,101,011,111 000,001,010,011,100,101,110,111 BIT-REVERSE-COPY(a,A) n length [a] for k 0 to n-1 do A[rev(k)] a k ITERATIVE-FFT 1.BIT-REVERSE-COPY(a,A) 2.n length [a] 3.for s 1 to log n 4. do m 2 s 5. m e 2 i/m 6. for j 0 to n-1 by m 1 7. for j 0 to m/2-1 8. do for k j to n-1 by m 9. do t A[k+m/2] 10. u A[k] 11. A[k] u+t 12. A[k+m/2] u-t 13. m 14.return A
16
A parallel FFT circuit a 0 y 0 a 1 y 1 a 2 y 2 a 3 y 3 a 4 y 4 a 5 y 5 a 6 y 6 a 7 y 7
17
Problem: evaluating all derivatives of a polynomial at a point a.Given coefficients b 0,b 1,…, b n-1 such that Show how to compute A (t) (x 0 ), for t=0,1,2,…,n-1, in O(n) time. b.Explain how to find b 0,b 1,…, b n-1 in O(n lg n) time, given A( ) for k=0,1,2,…,n-1.
18
Problem: Toeplitz matrices A Toeplitz matrix is an n × n matrix, such that for i=2,3,…,n and j=2,3,…,n. a.Is the sum of two Toeplitz matrices necessarily Toeplitz? What about the product? b.Describe how to represent a Toeplitz matrix so that two n × n Toeplitz matrices can be added in O(n) time. c.Give an O(n lg n)-time algorithm for multiplying an n × n Toeplitz matrix by a vector of length n. Use your representation from part (b). d.Give an efficient algorithm for multiplying two n × n Toeplitz matrices. Analyze its running time.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.