Upload
dearprasanta6015
View
232
Download
0
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