# Lecture 9: Convolution Using the DFT

We have seen the convolution theorem over and over: convolution in time is the transform of multiplication in the frequency domain. By numerically computing the transform using the DFT, we can compute convolutions of sequences. There are some issues to be very careful of, however, since the DFT imposes certain requirements on the signals. We will worry later about this. For the moment, consider the computational complexity. Suppose I have a sequence of points and another sequence also of points. We know that the convolution will have points. Computation of each of the outputs requires approximately computations. The overall complexity for computing convolution is therefore .

But here is the neat thing: We compute the DFT of
and the DFT of
, multiply the points in the frequency domain, then transform back:

This sure seems like the long way around the barn! But, consider the number of computations if we do the DFTs using FFTs: Each transform requires operations, the multiplication is , and the inverse transform is . The overall computation is . (That's how orders are computed!). So it requires fewer computations (by far!) than straightforward convolution, at least of is large enough. This is, in fact, the way M ATLAB computes its convolutions. This is also the way that symbolic packages (such as Mathematica) compute their multiplications of large integers.

Now the issues regarding use of the DFT for convolution. Recall that
the DFT always assumes that the signal is
*
periodic
*
. This is the
key to understanding the convolution. The convolution is done on
*
periodic
*
signals, where the period is the number of points in the
DFT, and the result of the convolution is periodic also. Suppose that
we are dealing with
-point DFTs. We can define a convolution which
is periodic with period
by

The notation is used to indicate that the difference is taken modulo . Suppose , and is a sequence 6 points long and is a sequence 10 points long. Draw sequences, and their 10-periodic extensions. Show graphically what the periodic convolution is.

**The periodic convolution is the convolution computed when DFTs are used.**

Suppose we don't want the effects of the circular convolution; we just want regular linear convolution. What we need to do is zero pad. If is a sequence of length and is a sequence of length , then their convolution will have points. If we take a DFT with at least that many points, there will be no wrap around. Show pictures.