15
Note Set #26 FFT Algorithm: Divide & Conquer Viewpoint Reading: Sect. 8.1.2 & 8.1.3 of Proakis & Manolakis EEO 401 Digital Signal Processing Prof. Mark Fowler

Prof. Mark Fowler - Binghamton Personal Page/EE302...Prof. Mark Fowler 2/15 The previous note set’s FFT development was somewhat ad hoc. Here we develop a more formalized & generalized

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Note Set #26• FFT Algorithm: Divide & Conquer Viewpoint• Reading: Sect. 8.1.2 & 8.1.3 of Proakis & Manolakis

    EEO 401 Digital Signal Processing

    Prof. Mark Fowler

  • 2/15

    The previous note set’s FFT development was somewhat ad hoc.Here we develop a more formalized & generalized approach that can be used to develop other FFT approaches.

    To illustrate the basic ideas consider the case of an N-pt DFT where N is not prime can be factored into two integer factors: N LM=

    Can always zero-pad out to appropriate number

    We now can use either of two mappings from 2-D indices l,m to the actual time index n:

    n Ml m= + n l mL= +“Row-Wise Input Mapping” “Column-Wise Input Mapping”

    We use one or the other of these mappings to convert the input to a matrix and then take DFTs along either the rows or columns.

    We now can use either of two mappings from 2-D indices p,q to the actual DFT result index k: k Mp q= + k p qL= +

    “Row-Wise Output Mapping” “Column-Wise Output Mapping”

    Divide & Conquer Approach

  • 3/15

    n Ml m= +

    n l mL= +

    “Row-Wise Input Mapping”

    “Column-Wise Input Mapping”

    DFTs DownColumns

    DFTs AcrossRows

  • 4/15

    Now to illustrate how to use this machinery… Use• Column-wise input mapping• Row-wise output mapping

    1

    0

    [ ] [ ]N

    knN

    nX k x n W

    =

    = ∑n l mL= +k Mp q= +1

    ( )( )

    0 0

    [ , ] [ , ]M L

    Mp q l mLN

    m lX p q x l m W

    −+ +

    = =

    = ∑∑

    1 mq plNmp N L N MN

    MLmp mLq Mpl lqN N N N

    W WW

    W W W W== =

    =

    1

    0 0

    [ , ]

    [ , ]

    [ , ]

    [ , ] [ , ]L M

    lq mq plN N L N M

    l m

    F l q

    G l q

    X p q

    X p q W x l m W W−

    = =

    =

    =

    ∑ ∑

    Compute M-pt DFTs of Rows

    Apply Twiddle Factors

    Compute L-pt DFTs of Colns

  • 5/15

    Illustration of this Approach

    Although this LOOKS more complicated… it is actually more efficient!

    Compute M-ptDFTs of Rows

    Apply Twiddle Factors

    Compute L-ptDFTs of Colns

  • 6/15

    Application to Develop Dec-In-Time Radix-2 FFT Let N = 2vWe apply the divide-and-conquer approach with M = N/2 & L = 2

    n l mL= + “Column-Wise Input Mapping”

    DFTs AcrossRows

    Compute N/2-pt DFTs of Rows

    Apply Twiddle Factors

    Compute 2-pt DFTs of Colns

    Now repeat this for each N/2-pt DFT… Etc., Etc., Etc.

    x[0] x[2] x[4] x[ N – 2]

    x[1] x[3] x[5] x[ N – 1]

  • 7/15

    Application to Develop Dec-In-Frequency Radix-2 FFT N = 2vWe apply the divide-and-conquer approach with M = 2 & L = N/2

    n l mL= + “Column-Wise Input Mapping”

    DFTs Across Rows

    x[0]

    x[1]

    x[N/2 - 1]

    x[N/2]x[N/2+1]

    x[N–1]

    g1[n]

    g2[n]

    kNW

    X[0]X[2]

    X[N–2]

    X[1]X[3]x[0]

    x[1]

    x[N/2 – 1]

    x[2]

    x[N/2]

    x[N/2 + 1]

    x[N/2 + 2]

    x[N – 1]

    2-pt DFT

    N/2-pt DFT

    Compute N/2-pt DFTs of Columns

    Apply Twiddle Factors

    Compute 2-pt DFTs of Rows

    Now repeat this for each

    N/2-pt DFT… Etc., Etc., Etc.

  • 8/15

    N = 8 First Stage of Dec-in-Freq FFT

  • 9/15

    Complete Dec-in-Freq FFT for N = 8 DFT Values are in Bit Reversed Order!

  • 10/15

    Butterfly Structure: DiT vs DiF

    Butterfly Structure: Dec-in-Time

    Butterfly Structure: Dec-in-Freq

  • 11/15

    N=8 D-in-Time FFT w/ BR InputsCan be done “in-place”

    N=8 D-in-Time FFT w/ BR OutputsCan be done “in-place”

    N=8 D-in-Time FFT w/ both sides “Normal Order”Can NOT be done “in-place”

    Diagrams from R. Lyon, Understanding Digital Signal Processing, 3rd Ed., Prentice-Hall, 2011

    3 Different Configurations of D-in-Time FFT

    Writes over Data Needed Later!!

  • 12/15

    N=8 D-in-Freq FFT w/ BR InputsCan be done “in-place”

    N=8 D-in-Freq FFT w/ BR OutputsCan be done “in-place”

    N=8 D-in-Freq FFT w/ both sides “Normal Order”Can NOT be done “in-place”

    Diagrams from R. Lyon, Understanding Digital Signal Processing, 3rd Ed., Prentice-Hall, 2011

    3 Different Configurations of D-in-Freq FFT

    Writes over Data Needed Later!!

  • 13/15

    Implementation Issues

    • We’ve looked at two radix-two methods.- Other radices: 4 & 8- split radix (2 and 4)

    • In-Place computation requires only 2N memory locations- But complicates the indexing & control operations- Doubling the memory to 4N locations can be advantageous

    o Reduces complexity of indexing & controlo Allows natural ordering for both input and output

    • In general, many factors come into play when determining best method- Parallelism, HW vs SW, fixed-point vs floating-point, etc.

    • Also… no need to develop distinct IFFT algorithm

    *1 12 / * 2 /

    0 0

    1 1[ ] [ ] [ ]N N

    j kn N j kn N

    n nx n X k e X k e

    N Nπ π

    − −−

    = =

    = = ∑ ∑ { } { }{ }*

    1[ ] [ ]IDFT X k conj DFT X kN

    =

  • 14/15

    Two Tricks for Real-Valued Signals

    1. Efficient DFT of two Real-Valued Signals

    Let x1[n] and x2[n] be real-valued signals, each length N

    1 2[ ] [ ] [ ]x n x n jx n+

    Then we have* *

    1 2[ ] [ ] [ ] [ ][ ] & [ ]

    2 2x n x n x n x nx n x n

    j+ −

    = =

    Form:

    Thus{ } { } { } { }* *

    1 2

    [ ] [ ] [ ] [ ][ ] & [ ]

    2 2DFT x n DFT x n DFT x n DFT x n

    X k X kj

    + −= =

    But… DFT{ x*[n]} = X*[N – k]

    * *1 2

    1 1[ ] [ ] [ ] & [ ] [ ] [ ]2 2

    X k X k X N k X k X k X N kj

    = + − = − −

  • 15/15

    2. Efficient DFT of 2N-pt Real-Valued Signal

    1 2[ ] [2 ] & [ ] [2 1]x n g n x n g n +

    Let g[n] be a real-valued signal of length 2N

    Then define:

    And: 1 2[ ] [ ] j [ ]x n x n x n= +

    From Trick #1 we have

    * *1 2

    1 1[ ] [ ] [ ] & [ ] [ ] [ ]2 2

    X k X k X N k X k X k X N kj

    = + − = − −

    But using ideas from Dec-in-Time FFT we know1 1

    2 (2 1)2 2

    0 01 1

    2 (2 1)1 2 2 2

    0 0

    [ ] [2 ] [2 1]

    [ ] [ ]

    N Nnk n k

    N Nn nN N

    nk n kN N

    n n

    G k g n W g n W

    x n W x n W

    − −+

    = =

    − −+

    = =

    = + +

    = +

    ∑ ∑

    ∑ ∑

    So then we get1 2 2

    1 2 2

    [ ] [ ] [ ], 0,1, , 1

    [ ] [ ] [ ], 0,1, , 1

    kN

    kN

    G k X k W X k k NG k N X k W X k k N

    = + = −

    + = − = −

    So computing one N-pt DFT of x[n] gets us the 2N-pt DFT of g[n]!

    EEO 401 �Digital Signal Processing�Prof. Mark FowlerSlide Number 2Slide Number 3Slide Number 4Slide Number 5Slide Number 6Slide Number 7Slide Number 8Slide Number 9Slide Number 10Slide Number 11Slide Number 12Slide Number 13Slide Number 14Slide Number 15