Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos...

10
Fast Fourier Transform Fast Fourier Transform

Transcript of Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos...

Page 1: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

Fast Fourier TransformFast Fourier Transform

Page 2: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

DefinitionDefinition

• All Periodic Waves Can be Generated All Periodic Waves Can be Generated by Combining Sin and Cos Waves of by Combining Sin and Cos Waves of Different FrequenciesDifferent Frequencies

• Number of Frequencies may not be Number of Frequencies may not be finitefinite

• Fourier Transform Decomposes a Fourier Transform Decomposes a Periodic Wave into its Component Periodic Wave into its Component FrequenciesFrequencies

Page 3: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

DFT DefinitionDFT Definition

• Sample consists of n points, wave amplitude Sample consists of n points, wave amplitude at fixed intervals of time:at fixed intervals of time:(p(p00,p,p11,p,p22, ..., p, ..., pn-1n-1) (n is a power of 2)) (n is a power of 2)

• Result is a set of complex numbers giving Result is a set of complex numbers giving frequency amplitudes for sin and cos frequency amplitudes for sin and cos componentscomponents

• Points are computed by polynomial:Points are computed by polynomial:P(x)=pP(x)=p00+p+p11x+px+p22xx22+ ... +p+ ... +pn-1n-1xxn-1n-1

Page 4: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

DFT Definition, continuedDFT Definition, continued

• The complete DFT is given byThe complete DFT is given byP(1), P(P(1), P(), P(), P(22), ... ,P(), ... ,P(n-1n-1))

• Must be a Primitive nth Root of UnityMust be a Primitive nth Root of Unity

• nn=1, if 0<i<n then =1, if 0<i<n then ii 1 1

Page 5: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

Primitive Roots of UnityPrimitive Roots of Unity

• ii is an nth root of unity (not primitive)is an nth root of unity (not primitive)• n/2n/2 = -1 = -1• if 0if 0jjn/2-1 then n/2-1 then (n/2)+j(n/2)+j = - = -jj

• if n is even and if n is even and is a primitive nth root of is a primitive nth root of unity, then unity, then 22 is a primitive n/2 root of is a primitive n/2 root of unityunity

• Example: Example: == cos(2cos(2//nn) + ) + iisin(2sin(2//nn))

i

i

n

0

1

0 i

i

n

0

1

0

Page 6: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

Divide and ConquerDivide and Conquer

• Compute an n-point DFT using one or Compute an n-point DFT using one or more n/2-point DFTsmore n/2-point DFTs

• Need to find Terms involving Need to find Terms involving 22 in in following polynomialfollowing polynomial

• P(P()=p)=p00+p+p11+p+p2222+p+p3333+p+p4444+ ... +p+ ... +pn-1n-1n-1n-1

Here They AreHere They Are

Page 7: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

Even/Odd SeparationEven/Odd Separation

• P(P()= P)= P11(()+P)+P22(())

• PP11(()=p)=p00+p+p2222+p+p4444+ ... +p+ ... +pn-2n-2n-2n-2

• PP11(()=P)=Pe e ((22)=p)=p00+p+p22+p+p4411+...+p+...+pn-2n-2(n-2)/2(n-2)/2

• PP22(()=p)=p11+p+p3333+p+p5555+ ... +p+ ... +pn-1n-1n-1n-1

• PP22(()= )= P P33(()=p)=p11+p+p3322+... +p+... +pn-1n-1n-2n-2

• PP33(()=P)=Poo((22)= p)= p11+p+p33+... +p+... +pn-1n-1(n-2)/2(n-2)/2

• P(P()= P)= Pee((22)+ )+ PPoo((22))

• PPe e & P& Po o come from n/2 point FFTscome from n/2 point FFTs

Page 8: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

The AlgorithmThe AlgorithmDFFT(P:Array;k,m:Integer):Array;begin If k=0 Then DFFT[0]=P[0];DFFT[1]=P[0]; Else Evens = DFFT(EvenElemOf(P),k-1,2m); Odds = DFFT(OddElemOf(P),k-1,2m); For i := 0 to 2k-1-1 Do x := Odds[j]*mj

DFFT[j] := Evens[j] + x DFFT[2k-1+j] := Evens[j] - x End For End Ifend

Page 9: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

Iterative AlgorithmIterative AlgorithmFor i := 0 To n-2 By 2 DoFor i := 0 To n-2 By 2 Do T[i] = p[T[i] = p[f(i)f(i)] + p[] + p[f(t+1)f(t+1)];]; T[i+1] := p[T[i+1] := p[f(i)f(i)] - p[] - p[f(t+1)f(t+1)];];End ForEnd Form := n/2; n := 2;m := n/2; n := 2;For k := lg n - 2 To 0 By -1 DoFor k := lg n - 2 To 0 By -1 Do m := m/2; n := 2*n;m := m/2; n := 2*n; For i := 0 To (2For i := 0 To (2kk-1)*n By n Do-1)*n By n Do For j := 0 To (n/2)-1 DoFor j := 0 To (n/2)-1 Do x := x := mjmj * T[i+n/2+j]; * T[i+n/2+j]; T[i+n/2+j] := T[i+j] - x;T[i+n/2+j] := T[i+j] - x; T[i+j] := T[i+j] + x;T[i+j] := T[i+j] + x; End ForEnd For End ForEnd ForEnd ForEnd For

Page 10: Fast Fourier Transform. Definition All Periodic Waves Can be Generated by Combining Sin and Cos Waves of Different FrequenciesAll Periodic Waves Can be.

What is f(i)?What is f(i)?

000000 000 000 -- 000 000 000 000 - - 000000 000000

001001 010 010 -- 010010 100 100 - 100- 100 100100

010010 100 100 - - 100100 010 - 010 - 010010 010010

011011 110 110 - 110- 110 110110 - 110- 110 110110

100100 001 - 001 - 001001 001001 - - 001001 001001

101101 011 - 011011 - 011 101101 - 101 - 101 101101

110110 101 - 101 - 101101 011 - 011 - 011011 011011

111111 111 - 111111 - 111 111 - 111111 - 111 111111

i f(i)