C IRCULAR C ONVOLUTION
Sequences of length N and the N –point DFT
FFT[x1 (n)] = X1 (k)
FFT[x2 (n)] = X2 (k)
FFT[x3 (n)] = X3 (k) = X1 (k)X2 (k)
⇐⇒
x3 (n) =
N
−1
X
N x2 (n)
x1 (k)x2 ((n − k)mod N ) = x1 (n) k=0
Notation:
N x2 (n), circular convolution of length N .
x1 (n) Digital Signal Processing
26
L INEAR
Lecture 3
FILTERING USING
x(n)
LTI: h(n)
FFT
y(n)
y(n) = x(n) ∗ h(n)
Y (f ) = X(f )H(f )
The FFT algorithm can be used to calculate y(n) very efficiently.
Problem:
Set N
X(k)H(k) corresponds to circular convolution.
≥ length{h(n)}+length{x(n)} − 1 to avoid aliasing from the circular
convolution.
Long input sequences are divided into segments, using overlap-save or
overlap-add.
Digital Signal Processing
27
Lecture 3
OVERLAP -S AVE
L
zeros
x(n)
M−1
N
y(n)
discard
y(n)
discard
y(n)
discard
y(n)
discard
Digital Signal Processing
28
Lecture 3
OVERLAP -A DD
L
x(n)
zeros
zeros
zeros
M−1
zeros
N
+
+
+
y(n)
L
Digital Signal Processing
29
Lecture 3
C OMPUTATIONS
Computational complexity of overlap-save and overlap-add:
(filter length: M)
N log2 (2N )
multiplications per sample
N −M +1
Direct implementation:
M multiplications per sample
Digital Signal Processing
30
Lecture 3
C OMPUTATIONS ( CONT.)
There is an optimal value of N
= 2p for each filter length M :
M
N
mult./sample
5
16
6.67
10
64
8.15
15
64
8.96
20
128
9.39
50
512
11.06
100
1024
12.18
1000
8192
15.94
Digital Signal Processing
31
Lecture 3
C OMPUTATIONS ( CONT.)
3
10000
Optimal buffer length N
Multiplications per sample
10
2
10
1
10
0
6000
4000
2000
FFT implementation
Direct implementation
0
10
8000
200
400
600
Filter length M
800
0
0
1000
400
600
Filter length M
Optimal FFT length.
Number of multiplications.
Digital Signal Processing
200
32
Lecture 3
800
1000
© Copyright 2026 Paperzz