Fast Fourier Transform Irina Bobkova. Overview I. Polynomials II. The DFT and FFT III. Efficient implementations IV. Some problems.

Slides:



Advertisements
Similar presentations
Fast Fourier Transform for speeding up the multiplication of polynomials an Algorithm Visualization Alexandru Cioaca.
Advertisements

Parallel Fast Fourier Transform Ryan Liu. Introduction The Discrete Fourier Transform could be applied in science and engineering. Examples: ◦ Voice recognition.
The Discrete Fourier Transform. The spectrum of a sampled function is given by where –  or 0 .
LECTURE Copyright  1998, Texas Instruments Incorporated All Rights Reserved Use of Frequency Domain Telecommunication Channel |A| f fcfc Frequency.
Polynomial and FFT. Topics 1. Problem 2. Representation of polynomials 3. The DFT and FFT 4. Efficient FFT implementations 5. Conclusion.
Instructor Neelima Gupta Table of Contents Divide and Conquer.
Fast Fourier Transform Lecture 6 Spoken Language Processing Prof. Andrew Rosenberg.
FFT1 The Fast Fourier Transform. FFT2 Outline and Reading Polynomial Multiplication Problem Primitive Roots of Unity (§10.4.1) The Discrete Fourier Transform.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Richard Fateman CS 282 Lecture 101 The Finite-Field FFT Lecture 10.
CSE 421 Algorithms Richard Anderson Lecture 15 Fast Fourier Transform.
FFT(Fast Fourier Transform). p2. FFT Coefficient representation: How to evaluate A(x 0 )?
FFT1 The Fast Fourier Transform by Jorge M. Trabal.
Princeton University COS 423 Theory of Algorithms Spring 2002 Kevin Wayne Fast Fourier Transform Jean Baptiste Joseph Fourier ( ) These lecture.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 16: Application-Driven Hardware Acceleration (1/4)
CSE 421 Algorithms Richard Anderson Lecture 13 Divide and Conquer.
Fast Fourier Transform (FFT) (Section 4.11) CS474/674 – Prof. Bebis.
Introduction to Algorithms
ON MULTIVARIATE POLYNOMIAL INTERPOLATION
The Fourier series A large class of phenomena can be described as periodic in nature: waves, sounds, light, radio, water waves etc. It is natural to attempt.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 14 Instructor: Paul Beame.
Fast Fourier Transforms
Efficiant polynomial interpolation algorithms
Divide-and-Conquer 7 2  9 4   2   4   7
CHAPTER 8 DSP Algorithm Implementation Wang Weilian School of Information Science and Technology Yunnan University.
1 Chapter 5 Divide and Conquer Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.
CS 6068 Parallel Computing Fall 2013 Lecture 10 – Nov 18 The Parallel FFT Prof. Fred Office Hours: MWF.
1 Divide & Conquer Algorithms Part 4. 2 Recursion Review A function that calls itself either directly or indirectly through another function Recursive.
Project 2 due … Project 2 due … Project 2 Project 2.
FFT1 The Fast Fourier Transform. FFT2 Outline and Reading Polynomial Multiplication Problem Primitive Roots of Unity (§10.4.1) The Discrete Fourier Transform.
5.6 Convolution and FFT. 2 Fast Fourier Transform: Applications Applications. n Optics, acoustics, quantum physics, telecommunications, control systems,
The Fast Fourier Transform
Karatsuba’s Algorithm for Integer Multiplication
Applied Symbolic Computation1 Applied Symbolic Computation (CS 300) Karatsuba’s Algorithm for Integer Multiplication Jeremy R. Johnson.
The Fast Fourier Transform and Applications to Multiplication
Inverse DFT. Frequency to time domain Sometimes calculations are easier in the frequency domain then later convert the results back to the time domain.
1 Fast Polynomial and Integer Multiplication Jeremy R. Johnson.
Divide and Conquer. Recall Divide the problem into a number of sub-problems that are smaller instances of the same problem. Conquer the sub-problems by.
Professor A G Constantinides 1 Discrete Fourier Transforms Consider finite duration signal Its z-tranform is Evaluate at points on z-plane as We can evaluate.
Fast Fourier Transform (FFT) Problem: we need an efficient way to compute the DFT. The answer is the FFT. Consider a data sequence and its DFT: We can.
Fast Fourier Transforms. 2 Discrete Fourier Transform The DFT pair was given as Baseline for computational complexity: –Each DFT coefficient requires.
Divide and Conquer Faculty Name: Ruhi Fatima Topics Covered Divide and Conquer Matrix multiplication Recurrence.
Applied Symbolic Computation1 Applied Symbolic Computation (CS 567) The Fast Fourier Transform (FFT) and Convolution Jeremy R. Johnson TexPoint fonts used.
May 9, 2001Applied Symbolic Computation1 Applied Symbolic Computation (CS 680/480) Lecture 6: Multiplication, Interpolation, and the Chinese Remainder.
week 8Complexity of Algorithms1 Elementary Number Theory Given positive integers a and b, we use the notation a¦b to indicated that a divides b, i.e.,
Chapter 2 Divide-and-Conquer algorithms
An Iterative FFT We rewrite the loop to calculate nkyk[1] once
Chapter 2 Divide-and-Conquer algorithms
Data Structures and Algorithms (AT70. 02) Comp. Sc. and Inf. Mgmt
Polynomial + Fast Fourier Transform
Applied Symbolic Computation
September 4, 1997 Applied Symbolic Computation (CS 300) Fast Polynomial and Integer Multiplication Jeremy R. Johnson.
Applied Symbolic Computation
Polynomials and the FFT(UNIT-3)
Applied Symbolic Computation
DFT and FFT By using the complex roots of unity, we can evaluate and interpolate a polynomial in O(n lg n) An example, here are the solutions to 8 =
September 4, 1997 Applied Symbolic Computation (CS 300) Fast Polynomial and Integer Multiplication Jeremy R. Johnson.
The Fast Fourier Transform
Advanced Algorithms Analysis and Design
Applied Symbolic Computation
Applied Symbolic Computation
September 4, 1997 Applied Symbolic Computation (CS 567) Fast Polynomial and Integer Multiplication Jeremy R. Johnson.
Applied Symbolic Computation
Richard Anderson Lecture 14 Inversions, Multiplication, FFT
Applied Symbolic Computation
The Fast Fourier Transform
MA5242 Wavelets Lecture 1 Numbers and Vector Spaces
Applied Symbolic Computation
Divide-and-Conquer 7 2  9 4   2   4   7
Fast Polynomial and Integer Multiplication
Presentation transcript:

Fast Fourier Transform Irina Bobkova

Overview I. Polynomials II. The DFT and FFT III. Efficient implementations IV. Some problems

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

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.

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)

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.

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.

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.

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

Fast Fourier Transform So, the problem of evaluating A(x) reduces to: 1.Evaluating the degree-bound n/2 polynomials 2. Combining the results

Recursive FFT

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)

More effective implementations The for loop involves computing the value twice.We can change the loop(the butterfly operation):.

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

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/ 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

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

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.

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.