You are on page 1of 10

Review of Circular Convolution

For DFT, time domain circular convolution implies


frequency domain multiplication, and vice versa.

Circular Convolution of two N-point sequences:


x3[n] x1[n] x2 [n] x2 [n] x1[n]
N 1 N 1
x2 [m]x1[((n m)) N ] x2 [m]x1[(n m) mod N ]
m 0 m 0

circular convolution

Symbol for representing circular convolution: or N .


Speeding up Circular Convolution Using FFT
Circular convolution can be computed more efficiently
by using FFT.
Direct circular convolution of two lengh-N sequences:
takes the time complexity of O(N2).
Circular convolution by FFT and inverse FFT:
Apply FFT to the length-N signal (transform to the
frequency domain by FFT)
Perform multiplication in the frequency domain, and
then apply inverse FFT (inverse transform to the
time domain)
Since both FFT and inverse FFT take O(Nlog(N)) and
multiplication takes O(N), the time complexity is
O(Nlog(N)).
Linear Convolution Using FFT
However, linear convolution cannot be speeded up
directly by FFT, since multiplication in the frequency
domain of DFT (FFT) implies circular convolution but not
linear convolution.

How can we speed up linear convolution by FFT?

Trick: Seeking the relationships between linear


convolution and circular convolution.

A useful property
The linear convolution of two finite-length sequences
(with lengths being L and P respectively) is equivalent
to circular convolution of the two N-point (N L+P1)
sequences obtained by zero padding.
Block convolution (for fast implementing an FIR
filter)

FIR filtering is equal to the linear convolution of


a finite-length impulse response.

To avoid delay in processing, and also to make


efficient computation, we would like to segment
the signal into sections of length L.

Each L-length sequence can then be convolved


with the finite-length impulse response and the
filtered sections fitted together in an
appropriate way. called block convolution.
Block convolution (for fast implementing an FIR filter)

When each section is sufficiently large, we


usually use circular convolution (instead of linear
convolution) to compute each section.
Because circular convolutions can be computed
more efficiently than linear convolution.
Overlapping Method

Review of property
The linear convolution of two finite-length sequences
(with lengths being L and P respectively) is equivalent
to circular convolution of the two N-point (N L+P1)
sequences obtained by zero padding.

Based on this property, the overlapping-add technique is


developed for fast computation of linear convolution or FIR
filter (referred to as a kind of block convolution).
Overlapping-add method (for implementing an FIR filter)
When segmenting into L-length non-overlapping segments, the
signal x[n] can be represented as

x[n] x [n rL]
m
r

x[n rL] 0 n L 1
where xr [n]
0 otherwise

Because convolution is an LTI operation, it follows that



y[n] x[n] h[n] y [n rL]
m
r

where yr [n] xr [n] h[n]


Overlapping-add method (for implementing an FIR filter)

Since xr[n] is of length L and h[n] is of length P,


each yr[n] has length (L+P1).

So, we can use zero-padding to form two N point


sequences, N=L+P1, for both xr[n] and h[n].
Performing N-point circular convolution (instead of
linear convolution) to compute yr[n].

In practice, we can also choose N as an integer


power of 2 and N>L+P-1, when applying a radix-2
FFT algorithm.
For example, consider two sequences h[n] and x[n]
as follows.
Segmenting x[n] into L-
length sequences.
Each segment is
padded by P1 zero
values.

Fir filtering by using the


overlapping-add
method.