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.

## 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)
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)

## 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