2 6 the fast fourier transform
play

2.6 The Fast Fourier Transform Algorithms (S.Dasgupta, - PowerPoint PPT Presentation

2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation 2.6 The Fast Fourier Transform Algorithms (S.Dasgupta, C.H.Papadimitriou, U.V.Vazirani) Natalia Kotsani


  1. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation 2.6 The Fast Fourier Transform Algorithms (S.Dasgupta, C.H.Papadimitriou, U.V.Vazirani) Natalia Kotsani Algorithms and Complexity I, MPLA January 16, 2014 2.6 The Fast Fourier Transform

  2. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Table of contents 2.6.0 Introduction History of the FFT Why multiplying polynomials? Brute-force 2.6.1 An alternative representation of polynomials An important property Extended representations Sketch of the FFT 2.6.2 Evaluation by divide-and-conquer Point value representation The recursion The complex n th roots of unity 2.6.3 Interpolation Inversion Formula The FFT algorithm Transform circuit 2.6 The Fast Fourier Transform

  3. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation History of the FFT History of the FFT ◮ 1965, publication (J.W. Culey, J.W. Tukey) ◮ 1963, presentation at IBM (J.W. Tukey) ◮ late 1930s, usage for hand calculations ◮ early 1800s, paper on interpolation, in Latin (C.F.Gauss) J.W Tukey was reluctant to publish FFT because he felt that this was a simple observation that was probably already known. Typical of the period: algorithms were considered second class mathematical objects 2.6 The Fast Fourier Transform

  4. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Why multiplying polynomials? Why multiplying polynomials? Multiplying polynomials is crucial for signal processing. A signal is any quantity that is a function of time (capture a human voice by measuring fluctuations in air pressure, the pattern of stars in the night sky, by measuring brightness as a function of angle etc.). In order to extract information from a signal, we need to first digitize it by sampling and, then, to put it through a system that will transform it. The output is called the response of the system: 2.6 The Fast Fourier Transform

  5. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Why multiplying polynomials? Why multiplying polynomials? 2.6 The Fast Fourier Transform

  6. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Brute-force Multiplying polynomials: Brute-force Divide-and-conquer: fast algorithms for multiplying integers and matrices; next target is polynomials. ( a 0 + a 1 x + ... + a d x d ) · ( b 0 + b 1 x + ... + b d x d ) = c 0 + c 1 x + ... + c 2 d x 2 d A ( x ) · B ( x ) = C ( x ) (1 + 2 x + 3 x 2 ) · (2 + x + 4 x ) = 2 + 5 x + 12 x 2 + 11 x 3 + 12 x 4 c 0 = a 0 b 0 = 2 c 1 = a 0 b 1 + a 1 b 0 = 5 c 2 = a 0 b 2 + a 1 b 1 + a 2 b 0 = 12 k c k = a 0 b k + a 1 b k − 1 + ... + a k b 0 = � a i b k − 1 i =0 (convolution of the input vectors a and b, denoted c = a ⊗ b ) Complexity: Θ( d 2 ) 2.6 The Fast Fourier Transform

  7. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation An important property An important property Fact A degree-d polynomial is uniquely characterized by its values at any d + 1 distinct points. We can specify a degree-d polynomial A ( x ) = a 0 + a 1 x + ... + a d x d by either one of the following: ◮ Its coefficients a 0 , a 1 , ..., a d ◮ The values A ( x 0 ) , A ( x 1 ) , ..., A ( x d ) The second is the more attractive for polynomial multiplication! C ( x ) = A ( x ) · B ( x ) ⇒ C ( x k ) = A ( x k ) · B ( x k ), for any point x k 2.6 The Fast Fourier Transform

  8. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Extended representations Extended representations We must face the problem, however, that degree ( C ) = degree ( A ) + degree ( B ) ◮ if A and B are of degree-bound d, then C is of degree-bound 2d We must therefore begin with extended point-value representations for A and for B consisting of 2d point-value pairs each. Complexity: Θ( d ) 2.6 The Fast Fourier Transform

  9. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Sketch of the FFT Sketch of the FFT We expect the input polynomials, and also their product, to be specified by coefficients. So we need: ◮ evaluation: translate from coefficients to values, which is just a matter of evaluating the polynomial at the chosen points, ◮ multiplication: in the value representation, ◮ interpolation: translate back to coefficients. 2.6 The Fast Fourier Transform

  10. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Sketch of the FFT Sketch of the FFT 2.6 The Fast Fourier Transform

  11. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Point value representation Evaluation Theorem (Uniqueness of an interpolating polynomial) For any set { ( x 0 , y 0 ) , ( x 1 , y 1 ) ..., ( x n , y n ) } of n point-value pairs such that all the x k values are distinct, there is a unique polynomial A ( x ) of degree-bound n such that y k = A ( x k ) for k = 0 , ..., n − 1 . 2.6 The Fast Fourier Transform

  12. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Point value representation Alexandre-Th´ eophile Vandermonde (1735-1796) A.T.Vandermonde was a French musician, mathematician and chemist who worked with B´ ezout and Lavoisier; his name is now principally associated with determinant theory in mathematics. He was born in Paris, and died there. Vandermonde was a violinist, and became engaged with mathematics only around 1770. In M´ emoire sur la r´ esolution des ´ equations (1771) he reported on symmetric functions and solution of cyclotomic polynomials. In Remarques sur des problemes de situation (1771) he studied knight’s tours: ”Whatever the twists and turns of a system of threads in space, one can always obtain an expression for the calculation of its dimensions, but this expression will be of little use in practice. The craftsman who fashions a braid, a net, or some knots will be concerned, not with questions of measurement, but with those of position: what he sees there is the manner in which the theads are interlaced”. The same year he was elected to the French Academy of Sciences. M´ emoire sur des irrationnelles de diff´ erents ordres avec une application au cercle (1772) was on combinatorics, and M´ emoire sur l’´ elimination (1772) on the foundations of determinant theory. These papers were presented to the Acad´ emie des Sciences, and constitute all his published mathematical work. 2.6 The Fast Fourier Transform

  13. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Point value representation Point value representation Computing a point-value representation for a polynomial given in coefficient form is in principle straightforward: ◮ select n distinct points x 0 , x 1 , ..., x n ◮ evaluate A ( x k ) for k = 0 , 1 , ..., n Horners method A ( x 0 ) = a 0 + x 0 ( a 1 + x 0 ( a 2 + ... + x 0 ( a n − 2 + x 0 ( a n − 1 )) ... )) Complexity: O ( n 2 ). 2.6 The Fast Fourier Transform

  14. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Point value representation Picking the n points Computing a point-value representation for a polynomial given in coefficient form is in principle straightforward: ◮ select n distinct points x 0 , x 1 , ..., x n ◮ evaluate A ( x k ) for k = 0 , 1 , ..., n Horners method A ( x 0 ) = a 0 + x 0 ( a 1 + x 0 ( a 2 + ... + x 0 ( a n − 2 + x 0 ( a n − 1 )) ... )) Horners method Complexity: Θ( n ) Evaluation Complexity: Θ( n 2 ) IF we choose the points x k cleverly, we can accelerate this computation to run in time Θ( nlgn )! 2.6 The Fast Fourier Transform

  15. 2.6.0 Introduction 2.6.1 An alternative representation of polynomials 2.6.2 Evaluation by divide-and-conquer 2.6.3 Interpolation Point value representation Picking the n points Heres an idea for how to pick the n points at which to evaluate a polynomial A ( x ) of degree n − 1: positive-negative pairs ± x 1 , ± x 2 , ..., ± x n / 2 − 1 the even powers of x i coincide with those of x i (overlapping). ◮ 3 + 4 x + 6 x 2 + 2 x 3 + x 4 + 10 x 5 = (3 + 6 x 2 + x 4 ) + x (4 + 2 x 2 + 10 x 4 ) A ( x ) = A e ( x 2 ) + xA o ( x 2 ) ◮ A e ( · ) polynomial with the even-numbered coefficients (degree ≤ n / 2 − 1) ◮ A o ( · ) with the odd-numbered coefficients (degree ≤ n / 2 − 1) ◮ the terms polynomial in parentheses are polynomials in x 2 evaluating A(x) at n paired points ± x 1 , ± x 2 , ..., ± x n / 2 − 1 reduces to evaluating A e ( x ) and A o ( x ) (which each have half the degree of A ( x )) at n / 2 points, x 2 0 , ..., x 2 n / 2 − 1 2.6 The Fast Fourier Transform

Recommend


More recommend