8 Kundur Overlap Save Add

Embed Size (px)

Citation preview

  • 7/27/2019 8 Kundur Overlap Save Add

    1/15

    Overlap-Save and Overlap-Add

    Dr. Deepa Kundur

    University of Toronto

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 1 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    The Discrete Fourier Transform Pair

    DFT and inverse-DFT (IDFT):

    X(k

    ) =

    N1

    n=0

    x(n

    )ej2k

    nN

    ,k

    = 0, 1, . . . ,N 1

    x(n) =1

    N

    N1k=0

    X(k)ej2knN , n = 0, 1, . . . , N 1

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 2 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Important DFT Properties

    Property Time Domain Frequency DomainNotation: x(n) X(k)Periodicity: x(n) = x(n + N) X(k) = X(k+ N)Linearity: a1x1(n) + a2x2(n) a1X1(k) + a2X2(k)Time reversal x(N n) X(N k)

    Circular time shift: x((n l))N X(k)ej2kl/NCircular frequency shift: x(n)ej2ln/N X((k l))NComplex conjugate: x(n) X(N k)Circular convolution: x1(n) x2(n) X1(k)X2(k)

    Multiplication: x1(n)x2(n)1NX1(k) X2(k)

    Parsevals theorem:N1

    n=0 x(n)y(n) 1

    N

    N1k=0 X(k)Y

    (k)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 3 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Circular Convolution

    x1(n) x2(n)F X1(k)X2(k)

    Q: What is circular convolution?

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 4 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    2/15

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Circular Convolution

    Assume: x1(n) and x2(n) have support n = 0, 1, . . . , N 1.

    Examples: N= 10 and support: n = 0, 1, . . . , 9

    -1 0

    n-2-3 1 2 3 6 8754 9 101 2 3 6 8754 9 10

    1

    1 1 1 2

    54

    -1 10

    n-2-3 2 3

    1

    6 87 96 87 9 1 0 1 1 1 2 54-1 0

    n-2-3

    1

    1 2 3 6 87 9 10 1 1 1 2

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 5 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Circular Convolution

    Assume: x1(n) and x2(n) have support n = 0, 1, . . . , N 1.

    x1(n) x2(n) =N1k=0

    x1(k)x2((n k))N

    =

    N1

    k=0

    x2(k)x1((n k))N

    where (n)N = n mod N = remainder ofn/N.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 6 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and Periodic Repetition

    (n)N = n mod N = remainder ofn/N

    Example: N= 4

    n -4 -3 -2 -1 0 1 2 3 4 5 6 7 8

    (n)4 0 1 2 3 0 1 2 3 0 1 2 3 0

    n

    N= integer +

    nonneg integer < N

    N

    5

    4= 1 +

    1

    4

    2

    4= 1 +

    2

    4

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 7 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and Periodic Repetition

    (n)N = n mod N = remainder ofn/N

    Example: N= 4

    n -4 -3 -2 -1 0 1 2 3 4 5 6 7 8

    (n)4 0 1 2 3 0 1 2 3 0 1 2 3 0

    x((n))4 will be periodic with period 4. The repeated pattern will beconsist of: {x(0), x(1), x(2), x(3)}.

    Thus, x((n))N is a periodic signal comprised of the followingrepeating pattern: {x(0), x(1), x(N 2), x(N 1)}.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 8 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    3/15

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Overlap During Periodic Repetition

    A periodic repetition makes an aperiodic signal x(n), periodic toproduce x(n).

    x(n) =

    l=x(n lN)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 9 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Overlap During Periodic Repetition

    A periodic repetition makes an aperiodic signal x(n), periodic toproduce x(n).

    There are two important parameters:

    1. smallest support length of the signal x(n)

    2. period N used for repetition that determines the period of x(n) smallest support length > period of repetition

    there will be overlap

    smallest support length period of repetition there will be no overlap

    x(n) can be recovered from x(n)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 10 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Periodic Repetition: Example N = 4

    -1 10n

    x(n)

    = x(n)

    -2-3-4-5-6-7 2 3 4 5 6 7

    1

    2

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    1

    2

    x(n)support length = 4 = N

    no overlap

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    x(n)

    +

    l=0

    x(n-N)

    +

    l=1

    +

    x(n+N)

    l=-1

    +

    x(n+2N)

    l=-2

    x(n-2N)

    l=2

    . . .. . .

    ~

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 11 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Period Repetition: Example N = 4

    1

    =x(n)

    x(n)

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    1

    2

    support length = 6 > N

    overlap

    n-1 1

    0-2-3-4-5-6-7 2 3 4 5 6 7

    2

    1

    x(n)

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    l=0 l=1

    + +

    l=-1

    + + +

    l=-2 l=2

    . . .. . .

    ~

    x(n)x(n-N)x(n+N)

    x(n+2N) x(n-2N)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 12 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    4/15

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and the Periodic Repetition

    Assume: x(n) has support n = 0, 1, . . . , N 1.

    x((n))N = x(n mod N) = x(n) =

    l=

    x(n lN)

    Note: Because the support size and period size are the same, there isno overlap when taking the periodic repetition x((n))N.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 13 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and the Periodic Repetition

    n

    x(n)

    1

    2

    -1 10-2-3-4-5-6-7 2 3 4 5 6 7

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 14 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and the Periodic Repetition

    1 1

    2

    0

    n

    x(n)

    1

    2

    -1 10-2-3-4-5-6-7 2 3 4 5 6 7

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 15 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and the Periodic Repetition

    1 1

    2

    0

    2

    11

    0

    n

    x(n)

    1

    2

    -1 10-2-3-4-5-6-7 2 3 4 5 6 7

    x((n))N

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 16 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    5/15

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and the Periodic Repetition

    1 1

    2

    0

    2

    11

    0

    12

    8

    4

    0

    -4

    13

    951-3

    14

    10

    6

    2

    -2

    15

    11

    7 3 -1

    n

    x(n)

    1

    2

    -1 10-2-3-4-5-6-7 2 3 4 5 6 7

    x((n))N

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 17 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Modulo Indices and the Periodic Repetition

    n-1 10-2-3-4-5-6-7 2 3 4 5 6 7 . ..

    1

    2

    x(n)~

    1 1

    2

    0

    2

    11

    0

    12

    8

    4

    0

    -4

    13

    951-3

    14

    10

    6

    2

    -2

    15

    11

    7 3 -1

    n

    x(n)

    1

    2

    -1 10-2-3-4-5-6-7 2 3 4 5 6 7

    x((n))N

    Therefore x((n))N = x(n).

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 18 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Circular Convolution: One Interpretation

    Assume: x1(n) and x2(n) have support n = 0, 1, . . . , N 1.

    To computeN1

    k=0 x1(k)x2((n k))N (orN1

    k=0 x2(k)x1((n k))N):

    1. Take the periodic repetition ofx2(n) with period N:

    x2(n) =

    l=

    x2(n lN)

    2. Conduct a standard linear convolution ofx1(n) and x2(n) forn = 0, 1, . . . , N 1:

    x1(n) x2(n) = x1(n) x2(n) =

    k=

    x1(k)x2(n k) =N1

    k=0

    x1(k)x2(n k)

    Note: x1(n) x2(n) = 0 for n < 0 and n N.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 19 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Circular Convolution: One Interpretation

    N1

    k=0 x1(k) x2((n k))N =N1

    k=0 x1(k) x2(n k)

    . . . which makes sense, since x((n))N = x(n).

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 20 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    6/15

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Circular Convolution: Another InterpretationAssume: x1(n) and x2(n) have support n = 0, 1, . . . , N 1.

    To computeN1

    k=0 x1(k)x2((n k))N (orN1

    k=0 x2(k)x1((n k))N):

    1. Conduct a linear convolution ofx1(n) and x2(n) for all n:

    xL(n) = x1(n) x2(n) =

    k=x1(k)x2(n k) =

    N1

    k=0x1(k)x2(n k)

    2. Compute the periodic repetition ofxL(n) and window the result forn = 0, 1, . . . , N 1:

    x1(n) x2(n) =

    l=

    xL(n lN), n = 0, 1, . . . , N 1

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 21 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Using DFT for Linear Convolution

    Therefore, circular convolution and linear convolution are related asfollows:

    xC(n) = x1(n) x2(n) =

    l=

    xL(n lN)

    for n = 0, 1, . . . , N 1

    Q: When can one recover xL(n) from xC(n)?When can one use the DFT (or FFT) to compute linear convolution?

    A: When there is no overlap in the periodic repetition ofxL(n).When support length of xL(n) N.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 22 / 58

    Overlap-Save and Overlap-Add Circular and Linear Convolution

    Using DFT for Linear Convolution

    Let x(n) have support n = 0, 1, . . . , L 1.Let h(n) have support n = 0, 1, . . . , M 1.

    We can set N L + M 1 and zero pad x(n) and h(n) to havesupport n = 0, 1, . . . , N 1.

    1. Take N-DFT of x(n) to give X(k), k= 0 , 1, . . . , N 1.

    2. Take N-DFT ofh(n) to give H(k), k= 0, 1, . . . , N 1.

    3. Multiply: Y(k) = X(k) H(k), k= 0, 1, . . . , N 1.

    4. Take N-IDFT ofY(k) to give y(n), n = 0, 1, . . . , N 1.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 23 / 58

    Overlap-Save and Overlap-Add Filtering of Long Data Sequences

    Filtering of Long Data Sequences

    The input signal x(n) is often very long especially in real-timesignal monitoring applications.

    For linear filtering via the DFT, for example, the signal must belimited size due to memory requirements.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 24 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    7/15

    Overlap-Save and Overlap-Add Filtering of Long Data Sequences

    Filtering of Long Data Sequences

    Recall, for N= 8 the 8-FFT is given by

    X(0)

    X(1)

    X(2)

    X(3)

    X(4)

    X(5)

    X(6)

    X(7)

    x(1)

    x(5)

    x(3)

    x(7)

    x(0)

    x(4)

    x(2)

    x(6)

    Stage 1 Stage 2 Stage 3

    -1

    -1

    -1

    -1 -1

    -1 -1

    -1

    -1

    -1

    -1

    -1

    0W

    8

    0W

    8

    0W

    8

    0W

    8

    0W

    8

    0W

    8

    1W

    8

    2W

    8

    2W8

    0W

    8

    2W

    83

    W8

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 25 / 58

    Overlap-Save and Overlap-Add Filtering of Long Data Sequences

    Filtering of Long Data Sequences

    All N-input samples are required simultaneously by the FFToperator.

    Complexity ofN-FFT is Nlog(N).

    IfN is too large as for long data sequences, then there is asignificant delay in processing that precludes real-timeprocessing.

    signal

    inputsignal

    outputData Acquisition

    Delay

    Data Processing

    Delay

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 26 / 58

    Overlap-Save and Overlap-Add Filtering of Long Data Sequences

    Filtering of Long Data Sequences

    Strategy:

    1. Segment the input signal into fixed-size blocks prior toprocessing.

    2. Compute DFT-based linear filtering of each block separately viathe FFT.

    3. Fit the output blocks together in such a way that the overalloutput is equivalent to the linear filtering ofx(n) directly.

    Main advantage: samples of the output y(n) = h(n) x(n) willbe available real-time on a block-by-block basis.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 27 / 58

    Overlap-Save and Overlap-Add Filtering of Long Data Sequences

    Filtering of Long Data Sequences

    Goal: FIR filtering: y(n) = x(n) h(n)

    Two approaches to real-time linear filtering of long inputs:

    Overlap-Add Method Overlap-Save Method

    Assumptions: FIR filter h(n) length = M Block length = L M

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 28 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    8/15

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Method

    Overlap-Add Method

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 29 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Method

    Deals with the following signal processing principles:

    The linear convolution of a discrete-time signal of length L and adiscrete-time signal of length M produces a discrete-time

    convolved result of length L + M 1.

    Addititvity:

    (x1(n)+x2(n)) h(n) = x1(n) h(n)+x2(n) h(n)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 30 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    -1 10n

    -2-3 2 3

    1

    x(n)

    h(n)

    6 87 96 87 9

    *

    h(n)*=

    +

    + +. . .

    h(n)*

    h(n)*

    10

    -1 10n

    -2-3 2 3 4 5

    4 5

    4 5

    1

    x (n)1

    2

    3

    6 87 96 87 9

    10

    -1 10n

    -2-3 2 3

    1

    x (n)

    6 87 96 87 9

    10

    -1 10n

    -2-3 2 3

    1

    x (n)

    6 87 96 87 9

    10

    L=4

    L=4

    L=4

    L=4

    L=4

    L=4

    L=4 Input x(n) is dividedinto non-overlappingblocks xm(n) each oflength L.

    Each input blo ckxm(n) is individuallyfiltered as it is receivedto produce the outputblock ym(n).

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 31 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Filtering Stage

    makes use of the N-DFT and N-IDFT where: N= L + M 1

    Thus, zero-padding ofx

    (n

    ) andh

    (n

    ) that are of lengthL,M< N is required.

    The actual implementation of the DFT/IDFT will use theFFT/IFFT for computational simplicity.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 32 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    9/15

    Overlap-Save and Overlap-Add Overlap-Add Method

    Using DFT for Linear Convolution

    Let xm(n) have support n = 0, 1, . . . ,L 1.Let h(n) have support n = 0, 1, . . . , M 1.

    We set N L + M 1 (the length of the linear convolution result)and zero pad xm(n) and h(n) to have support n = 0, 1, . . . ,N 1.

    1. Take N-DFT of xm(n) to give Xm(k), k= 0 , 1, . . . , N 1.

    2. Take N-DFT ofh(n) to give H(k), k= 0, 1, . . . , N 1.

    3. Multiply: Ym(k) = Xm(k) H(k), k= 0, 1, . . . , N 1.

    4. Take N-IDFT ofYm(k) to give ym(n), n = 0, 1, . . . , N 1.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 33 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    Linear Convolution via the DFTLength of linear convolution result = Length of DFT

    -1 10

    n

    x(n)

    = x(n)

    -2-3-4-5-6-7 2 3 4 5 6 7

    1

    2

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    1

    2

    x(n)support length = 4 = N

    no overlap

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    x(n)

    +

    l=0

    x(n-N)

    +

    l=1

    +

    x(n+N)

    l=-1

    +

    x(n+2N)

    l=-2

    x(n-2N)

    l=2

    . . .. . .

    ~

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 34 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    -1 10n

    -2-3 2 3

    1

    x(n)

    h(n)

    6 87 96 87 9

    *

    h(n)*=

    +

    + +. . .

    h(n)*

    h(n)*

    10

    -1 10n

    -2-3 2 3 4 5

    4 5

    4 5

    1

    x (n)1

    2

    3

    6 87 96 87 9

    10

    -1 10n

    -2-3 2 3

    1

    x (n)

    6 87 96 87 9

    10

    -1 10n

    -2-3 2 3

    1

    x (n)

    6 87 96 87 9

    10

    L=4

    L=4

    L=4

    L=4

    L=4

    L=4

    L=4 Input x(n) is dividedinto non-overlappingblocks xm(n) each oflength L.

    Each input blo ckxm(n) is individuallyfiltered as it is receivedto produce the outputblock ym(n).

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 35 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    -1 10n

    -2-3 2 3

    1

    x(n)

    h(n)

    6 87 96 87 9

    *

    =

    +

    + + . . .

    10

    -1 10n

    -2-3 2 3 4 5

    4 5

    4 5

    1

    y (n)1

    2

    3

    6 87 96 87 9

    10

    -1 10n

    -2-3 2 3

    1

    y (n)

    6 7

    6 8

    7

    9 10

    -1 10n

    -2-3 2 3

    1

    y (n)

    6 87 96 87 9

    10

    L=4 L=4 L=4

    L=4

    L=4

    L=4

    M-1=2

    L=4

    These extraM-1 samples (i.e.,tail)

    due to convolution expanding

    the support must be added to the

    begininning of the next output

    block

    M-1=2

    M-1=2

    ADD

    to

    next

    block

    ADD

    to

    next

    block

    Output blocks ym(n)must be fitted togetherappropriately to gener-ate:

    y(n) = x(n) h(n)

    The support overlapamongst the ym(n)blocks must be ac-counted for.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 36 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    10/15

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Addition Stage

    From the Addititvity property, since:

    x(n) = x1(n) + x2(n) + x3(n) + =

    m=1

    xm(n)

    x(n) h(n) = (x1(n) + x2(n) + x3(n) + ) h(n)= x1(n) h(n) + x2(n) h(n) + x3(n) h(n) +

    =

    m=1

    xm(n) h(n) =

    m=1

    ym(n)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 37 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    -1 10n

    -2-3 2 3

    1

    x(n)

    h(n)

    6 87 96 87 9

    *

    =

    +

    + + . . .

    ---

    10

    -1 10n

    -2-3 2 3 4 5

    4 5

    4 5

    1

    y (n)1

    2

    3

    6 87 96 87 9

    10

    -1 10n

    -2-3 2 3

    1

    y (n)

    6 7

    6 8

    7

    9 10

    -1 10n

    -2-3 2 3

    1

    y (n)

    6 87 96 87 9

    10

    L=4 L=4 L=4

    L=4

    L=4

    L=4

    M-1=2

    L=4

    These extraM-1 samples (i.e.,tail)

    due to convolution expanding

    the support must be added to the

    begininning of the next output

    block

    M-1=2

    M-1=2

    ADD

    to

    next

    block

    ADD

    to

    next

    block

    Output blocks ym(n)must be fitted togetherappropriately to gener-ate:

    y(n) = x(n) h(n)

    The support overlapamongst the ym(n)blocks must be ac-counted for.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 38 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    Input signal:

    Output signal:

    zeros

    zeros

    zeros

    Add

    points Add

    points

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 39 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Method

    1. Break the input signal x(n) into non-overlapping blocks xm(n) of length L.

    2. Zero pad h(n) to be of length N= L + M 1.

    3. Take N-DFT ofh(n) to give H(k), k= 0, 1, . . . , N 1.

    4. For each block m:

    4.1 Zero pad xm(n) to be of length N= L + M 1.4.2 Take N-DFT ofxm(n) to give Xm(k), k= 0, 1, . . . , N 1.4.3 Multiply: Ym(k) = Xm(k) H(k), k= 0 , 1, . . . , N 1.

    4.4 Take N-IDFT ofYm(k) to give ym(n), n = 0 , 1, . . . , N 1.

    5. Form y(n) by overlapping the last M 1 samples ofym(n) with the firstM 1 samples ofym+1(n) and adding the result.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 40 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    11/15

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Method: Cautionary Note

    If you DO NOT overlap and add, but only append the output blocksym(n) for m = 1, 2, . . ., then you will not get the true y(n) sequence.

    Q: What sequence will you obtain instead?

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 41 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Method: Cautionary Note

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 42 / 58

    Overlap-Save and Overlap-Add Overlap-Add Method

    Overlap-Add Method: Cautionary Note

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 43 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Method

    Overlap-Save Method

    Overlap-[Discard] Method

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 44 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    12/15

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Method

    Deals with the following signal processing principles:

    The N= (L + M 1)-circular convolution of a discrete-timesignal of length N and a discrete-time signal of length M usingan N-DFT and N-IDFT.

    Time-Domain Aliasing:

    xC(n) =

    l=

    xL(n lN) support=M+ N 1

    , n = 0, 1, . . . , N 1

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 45 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    1

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    1

    2

    N < L+M-1overlap since

    n-1 10-2-3-4-5-6-7 2 3 4 5 6 7

    2

    1

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    + +

    + + +. . .. . .

    . . .

    y (n+2N)L

    y (n-2N)L

    y (n)L

    y (n)L

    Add and keep points only

    at n=0, 1, ...,N-1

    corruption from

    previous repetitions

    linear

    convolution

    result

    circular

    convolution

    result

    at n=M-1, M, ..., N-1

    y (n)C

    y (n)L=

    Ly (n+N)

    Ly (n-N)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 46 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Method

    Convolution ofxm(n) with support n = 0, 1, . . . ,N 1 and h(n)with support n = 0, 1, . . . , M 1 via the N-DFT will produce aresult yC,m(n) such that:

    yC,m(n) = aliasing corruption n = 0, 1, . . . , M 2yL,m(n) n = M 1,M, . . . , N 1where yL,m(n) = xm(n) h(n) is the desired output.

    The first M 1 points of a the current filtered output blockym(n) must be discarded.

    The previous filtered block ym1(n) must compensate byproviding these output samples.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 47 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Input Segmentation Stage

    1. All input blocks xm(n) are of length N = (L + M 1) andcontain sequential samples from x(n).

    2. Input blockxm(n

    ) form

    > 1 overlaps containing the firstM 1points of the previous block xm1(n) to deal with aliasing

    corruption.

    3. For m = 1, there is no previous block, so the first M 1 pointsare zeros.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 48 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    13/15

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Input Segmentation Stage

    point

    overlap

    point

    overlap

    zeros

    Input signal blocks:

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 49 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Input Segmentation Stage

    x1(n) = {0, 0, . . . 0 M 1 zeros

    , x(0), x(1), . . . , x(L 1)}

    x2(n) = {x(LM+ 1), . . . x(L 1)

    last M 1 points from x1(n), x(L), . . . , x(2L 1)}

    x3(n) = {x(2LM+ 1), . . . x(2L 1) last M 1 points from x2(n)

    , x(2L), . . . , x(3L 1)}

    ...

    The last M 1 points from the previous input block must be savedfor use in the current input block.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 50 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Filtering Stage

    makes use of the N-DFT and N-IDFT where: N= L + M 1

    Only a one-time zero-padding ofh(n) of length M L < N isrequired to give it support n = 0, 1, . . . , N 1.

    The input blocks xm(n) are of length N to start, so nozero-padding is necessary.

    The actual implementation of the DFT/IDFT will use theFFT/IFFT for computational simplicity.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 51 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Using DFT for Circular Convolution

    N= L + M 1.Let xm(n) have support n = 0, 1, . . . ,N 1.Let h(n) have support n = 0, 1, . . . , M 1.

    We zero pad h(n) to have support n = 0, 1, . . . ,N 1.

    1. Take N-DFT ofxm(n) to give Xm(k), k= 0 , 1, . . . , N 1.

    2. Take N-DFT ofh(n) to give H(k), k= 0, 1, . . . , N 1.

    3. Multiply: Ym(k) = Xm(k) H(k), k= 0 , 1, . . . , N 1.

    4. Take N-IDFT ofYm(k) to give yC,m(n), n = 0, 1, . . . , N 1.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 52 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    14/15

    Overlap-Save and Overlap-Add Overlap-Save Method

    Circular Convolution via the DFTLength of linear convolution result > Length of DFT

    1

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    1

    2

    N < L+M-1overlap since

    n-1 10-2-3-4-5-6-7 2 3 4 5 6 7

    2

    1

    -1 10n

    -2-3-4-5-6-7 2 3 4 5 6 7

    + +

    + + +. . .. . .

    . . .

    y (n+2N)L

    y (n-2N)L

    y (n)L

    y (n)L

    Add and keep points only

    at n=0, 1, ...,N-1

    corruption from

    previous repetitions

    linear

    convolution

    result

    circular

    convolution

    result

    at n=M-1, M, ..., N-1

    y (n)C

    y (n)L=

    Ly (n+N)

    Ly (n-N)

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 53 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Output Blocks

    yC,

    m(n) = aliasing n = 0, 1, . . . , M 2yL,m(n) n = M 1,M, . . . , N 1

    where yL,m(n) = xm(n) h(n) is the desired output.

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 54 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save [Discard] Output Blocks

    y1(n) = {y1(0), y1(1), . . . y1(M 2) M 1 points corrupted from aliasing

    , y(0), . . . , y(L 1)}

    y2(n) = {y2(0), y2(1), . . . y2(M 2)

    M 1 points corrupted from aliasing

    , y(L), . . . , y(2L 1)}

    y3(n) = {y3(0), y3(1), . . . y3(M 2) M 1 points corrupted from aliasing

    , y(2L), . . . , y(3L 1)}

    where y(n) = x(n) h(n) is the desired output.

    The first M 1 points of each output block are discarded.

    The remaining L points of each output block are appended to formy(n).

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 55 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Output Stage

    Discard

    points Discard

    points Discard

    points

    Output signal blocks:

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 56 / 58

  • 7/27/2019 8 Kundur Overlap Save Add

    15/15

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Method

    1. Insert M 1 zeros at the beginning of the input sequence x(n).

    2. Break the padded input signal into overlapping blocks xm(n) of lengthN= L + M 1 where the overlap length is M 1.

    3. Zero pad h(n) to be of length N= L + M 1.

    4. Take N-DFT ofh(n) to give H(k), k= 0, 1, . . . , N 1.

    5. For each block m:

    5.1 Take N-DFT ofxm(n) to give Xm(k), k= 0, 1, . . . , N 1.5.2 Multiply: Ym(k) = Xm(k) H(k), k= 0 , 1, . . . , N 1.

    5.3 Take N-IDFT ofYm(k) to give ym(n), n = 0, 1, . . . , N 1.

    5.4 Discard the first M 1 points of each output block ym(n).

    6. Form y(n) by appending the remaining (i.e., last) L samples of each blockym(n).

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 57 / 58

    Overlap-Save and Overlap-Add Overlap-Save Method

    Overlap-Save Method

    Discard

    points Discard

    points Discard

    points

    Output signal blocks:

    point

    overlap

    point

    overlap

    zeros

    Input signal blocks:

    Dr. Deepa Kundur (University of Toronto) Overlap-Save and Overlap-Add 58 / 58