Fast Fourier Transform Dima Kochkov 1 1 Department of Physics - - PowerPoint PPT Presentation

fast fourier transform
SMART_READER_LITE
LIVE PREVIEW

Fast Fourier Transform Dima Kochkov 1 1 Department of Physics - - PowerPoint PPT Presentation

Impact Math part Algorithm References Fast Fourier Transform Dima Kochkov 1 1 Department of Physics University of Illinois at Urbana-Champaign Algorithm interest meeting, 2016 Impact Math part Algorithm References Outline Summation


slide-1
SLIDE 1

Impact Math part Algorithm References

Fast Fourier Transform

Dima Kochkov1

1Department of Physics

University of Illinois at Urbana-Champaign

Algorithm interest meeting, 2016

slide-2
SLIDE 2

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-3
SLIDE 3

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-4
SLIDE 4

Impact Math part Algorithm References

Significance

Fast Fourier Transform is considered to be one of the most important algorithms of 20th century. It performs Discrete Fourier Transform in N log2 N time in comparison to the naive N2. This algorithm is accountable for many advances and wide applicability

  • f Fourier transformation in numerics.
slide-5
SLIDE 5

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-6
SLIDE 6

Impact Math part Algorithm References

Where it is used

Fast Fourier Transform is heavily used in many fields, including, but not limited to: Data analysis (Fourier components) Data compression (Jpeg, MP3, etc) Partial differential equation solvers Big integer multiplication

slide-7
SLIDE 7

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-8
SLIDE 8

Impact Math part Algorithm References

In the literature the term Fast Fourier Transform stands for an algorithm that computes a Discrete Fourier Transform in N log2 N

  • time. There exist a variety of different implementations and
  • generalizations. In this talk I will only concentrate on the central

idea. FFT(~ a) = ~ X : Xj =

k=N−1

X

k=0

e2πi kj

N ak

(1) Which is equivalent to a convolution of a given sequence with a special sequence of elements. In the following sections I will map the problem to a multiplication of polynomials and will closely follow the lecture on FFT by Erik Demaine MIT lecture on FFT

slide-9
SLIDE 9

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-10
SLIDE 10

Impact Math part Algorithm References

Polynomials

A polynomial ring in X over a field K is an algebraic structure that consists of polynomials of variable z ∈ X and coefficients from the field K. PN−1(z) =

j=N−1

X

j=0

ajzj (2) This structure features addition, multiplication and CS-ish addition evaluation operations. In this presentation we will establish a correspondence between vectors and polynomials, as well as different operations on them.

slide-11
SLIDE 11

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-12
SLIDE 12

Impact Math part Algorithm References

Representations

There are several reasonable representations that we might consider: Coefficients aj : ˜ PN−1(z) = Pj=N−1

j=0

ajzj Roots zj : ˜ PN−1(z) = aN−1(z−zN−1)..(z−z1) Samples (zj, ˜ PN−1(zj)) for N different points From now on I will fix the N to be some power of 2 and will use bottom index to indicate different polynomials.

slide-13
SLIDE 13

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-14
SLIDE 14

Impact Math part Algorithm References

Summation

Coefficients Pa(z) + Pb(z) = Pc(z) : cj = aj + bj : add corresponding coefficients N Roots Impossible if arbitrary precision is desired Samples Pa(zj) + Pb(zj) = Pc(zj) : add corresponding values of P N So far : coefficients - ok, Samples - ok, Roots - Boo!

slide-15
SLIDE 15

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-16
SLIDE 16

Impact Math part Algorithm References

Multiplication

Coefficients Pa(z) ∗ Pb(z) = Pc(z) : cj = Pk=N

k=0 ak ∗ bj − k N2

Roots Concatenate the list of roots, update the leading coefficient N Samples Pa(zj) ∗ Pb(zj) = Pc(zj) : multiply corresponding values of P N So far : coefficients - nah, Samples - alpha?, Roots - still boo!

slide-17
SLIDE 17

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-18
SLIDE 18

Impact Math part Algorithm References

Evaluation

Coefficients Pc(z) : add contributions from different powers, N Roots Evaluate multiplication of Q

j(z − zj) N

Samples Have to solve for coefficients system of N linear equations N2 No representation is perfect :-(

slide-19
SLIDE 19

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-20
SLIDE 20

Impact Math part Algorithm References

Evaluation at N points

The algorithm gets its boost by jumping back and forth between

  • representations. We will concentrate on the transformation from

the coefficient representation to the samples representation, since the inverse is similar. To do that we need to evaluate P at N different points. N ∗ N, can we do better?

slide-21
SLIDE 21

Impact Math part Algorithm References

Outline

1

Impact Significance Applications

2

Math part Definitions Ring of Polynomials Representations of polynomials Summation Multiplication Evaluation

3

Algorithm Switching representations Recursive evaluation

4

References

slide-22
SLIDE 22

Impact Math part Algorithm References

Split even and odd powers

We can rewrite evaluation P(z) as a sum of 2 values that can be computed recursively: P(z) =

j=N−1

X

j=0

ajzj =

j= N−1

2

X

j=0

a2jz2j+z

j= N−1

2

X

j=0

a2j+1z2j = Pa(z2)+zPb(z2) (3)

slide-23
SLIDE 23

Impact Math part Algorithm References

Magic!

Now we will use the freedom of choosing sample points to make this algorithm work! Consider the set of roots of unity. [ei π

2 , eiπ, ei 3π 2 , e2π]2 → [−1, 1]

(4) The number of points on which one needs to evaluate consecutive polynomials shrinks by a factor of 2 with every recursion call. That insures the N log2(N) performance.

slide-24
SLIDE 24

Impact Math part Algorithm References

Algorithm

slide-25
SLIDE 25

Impact Math part Algorithm References

courses, books

MIT video lecture on FFT by Erik Demaine lecture on FFT, complexity analysis