Discrete Fourier Transform - VLSI Signal Processing Lab,...

of 23 /23
[email protected] 1 Discrete Fourier Transform Discrete Fourier transform (DFT) pairs kn N j kn N N k kn N N n kn N e W N n W k X N n x N k W n x k X π 2 1 0 1 0 where , 1 , , 1 , 0 , ] [ 1 ] [ 1 , , 1 , 0 , ] [ ] [ = = = = = = = K K DFT/IDFT can be implemented by using the same hardware It requires N 2 complex multiplications and N(N-1) complex additions N complex multiplications N-1 complex additions

Embed Size (px)

Transcript of Discrete Fourier Transform - VLSI Signal Processing Lab,...

  • [email protected] 1

    Discrete Fourier Transform Discrete Fourier transform (DFT) pairs

    knN

    jknN

    N

    k

    knN

    N

    n

    knN

    eW

    NnWkXN

    nx

    NkWnxkX

    2

    1

    0

    1

    0

    where

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

    1,,1,0 ,][][

    =

    =

    =

    ==

    ==

    K

    K

    DFT/IDFT can be implemented by using the same hardware It requires N2 complex multiplications and N(N-1) complex additions

    N complex multiplicationsN-1 complex additions

  • [email protected] 2

    Decimation in Time

    N+2(N/2)2 complex multiplications vs. N2 complex multiplication

    twiddle factor

  • [email protected] 3

  • [email protected] 4

    Flow Graph of the DIT FFT

  • [email protected] 5

  • [email protected] 6

    8-point DIT DFT

  • [email protected] 7

    Remarks It requires v=log2N stages Each stage has N complex multiplications and N complex

    additions The number of complex multiplications (as well as additions)

    is equal to N log2N By symmetry property, we have (butterfly operation)

    222 NN

    jrN

    NN

    rN

    NrN WeWWWW ===

    +

    2 complex multiplications2 complex additions

    1 complex multiplications2 complex additions

  • [email protected] 8

    8-point FFT

    Normal orderBit-Reversed order

  • [email protected] 9

    In-Place Computation

    Stage 1

    X0[000]

    X0[001]

    X0[010]

    X0[011]

    X0[100]

    X0[101]

    X0[110]

    X0[111]

    X1[000]

    X1[001]

    X1[010]

    X1[011]

    X1[100]

    X1[101]

    X1[110]

    X1[111]

    X2[000]

    X2[001]

    X2[010]

    X2[011]

    X2[100]

    X2[101]

    X2[110]

    X2[111]

    Stage 3Stage 2

    X3[000]

    X3[001]

    X3[010]

    X3[011]

    X3[100]

    X3[101]

    X3[110]

    X3[111]

    The same register array can be used in each stage

  • [email protected] 10

    8-point FFT

    Normal order Bit-reversed orderThe original from given by Cooly& Tukey (DIT FFT)

  • [email protected] 11

    Normal-Order Sorting v.s. Bit-Reversed Sorting

    Normal Order Bit-reversed Order

    even

    odd

    top

    bottom

  • [email protected] 12

    DFT v.s. Radix-2 FFT DFT: N2 complex multiplications and N(N-1)

    complex additions Recall that each butterfly operation requires one

    complex multiplication and two complex additions FFT: (N/2) log2N multiplications and N log2N

    complex additions

    In-place computations: the input and the output nodes for each butterfly operation are horizontally adjacent only one storage arrays will be required

  • [email protected] 13

    Alternative Form

    Normal order Normal orderTwo complex storage arrays are necessary !!

  • [email protected] 14

    Alternative Form

    X1[000]

    X1[001]

    X1[010]

    X1[011]

    X1[100]

    X1[101]

    X1[110]

    X1[111]

    X2[000]

    X2[001]

    X2[010]

    X2[011]

    X2[100]

    X2[101]

    X2[110]

    X2[111]Stage 1

    Parallel processing:4 BF units

    X1[000]

    X1[001]

    X1[010]

    X1[011]

    X1[100]

    X1[101]

    X1[110]

    X1[111]

    X2[000]

    X2[001]

    X2[010]

    X2[011]

    X2[100]

    X2[101]

    X2[110]

    X2[111]

    Stage 1

    Sequential processing:1 BF unit

    The same register array can be used Two register arrays are required

  • [email protected] 15

    Alternative Form 2

    The geometry of each stage is identicalBit-reversed order Normal order

  • [email protected] 16

    Decimation in Frequency (DIF) Recall that the DFT is

    DIT FFT algorithm is based on the decomposition of the DFT computations by forming small subsequences in time domain index n: n=2 or n=2+1

    One can consider dividing the output sequence X[k], in frequency domain, into smaller subsequences: k=2r or k=2r+1:

    [ ] 10 ,][1

    0

    =

    =

    NkWnxkXN

    n

    nkN

    Substitution of variables

  • [email protected] 17

    DIF FFT Algorithm (1)

    is just N/2-point DFT. Similarly,

  • [email protected] 18

    DIF FFT Algorithm (2)

    v=log2N stages, each stage has N/2 butterfly operation.

    (N/2)log2N complex multiplications, N complex additions

  • [email protected] 19

    Remarks The basic butterfly operations for DIT FFT and DIF FFT

    respectively are transposed-form pair.

    The I/O values of DIT FFT and DIF FFT are the same Applying the transpose transform to each DIT FFT

    algorithm, one obtains DIF FFT algorithm

    DIF BF unitDIT BF unit

  • [email protected] 20

    Implementation Issues Radix-2, Radix-4, Radix-8, Split-Radix,Radix-22, , I/O Indexing In-place computation

    Bit-reversed sorting is necessary Efficient use of memory Random access (not sequential) of memory. An address

    generator unit is required. Good for cascade form: FFT followed by IFFT (or vice

    versa) E.g. fast convolution algorithm

    Twiddle factors Look up table CORDIC rotator

  • [email protected] 21

    Recall Linear Convolution

  • [email protected] 22

    Fast Convolution with the FFT Given two sequences x1 and x2 of length N1 and N2

    respectively Direct implementation requires N1N2 complex

    multiplications Consider using FFT to convolve two sequences:

    Pick N, a power of 2, such that NN1+N2-1 Zero-pad x1 and x2 to length N Compute N-point FFTs of zero-padded x1 and x2, one

    obtains X1 and X2 Multiply X1 and X2 Apply the IFFT to obtain the convolution sum of x1 and

    x2 Computation complexity: 2(N/2) log2N + N + (N/2)log2N

  • [email protected] 23

    Other Fast Algorithm for DFT Goertzel Algorithm

    By reformulating DFT as a convolution it is not restricted to computation of the DFT but any

    desired set of samples of the Fourier transform of a sequence

    Winograd Algorithm An efficient algorithm for computing short convolutions The number of multiplication complexity is of order

    O(N), however the number of addition complexity is significantly increased.

    Chirp Transform Algorithm