+ All Categories
Home > Documents > Prof. Mark Fowler - Binghamton Personal Page/EE302...Prof. Mark Fowler 2/15 The previous note...

Prof. Mark Fowler - Binghamton Personal Page/EE302...Prof. Mark Fowler 2/15 The previous note...

Date post: 25-Jan-2021
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
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
Transcript
  • 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


Recommended