You are on page 1of 6

A simple method to do circular convolution

Nasser Abbasi
This is a method to compute the circular convolution for N points, between two sequences, where N is the length of the smaller of the two sequences (or the length of the sequences if they are of equal length). I have not seen this method in any of the textbooks I studied from, so I thought I write a small ll note to show how it works. Let the rst sequence x = f 1 ; 2; 4; 5; 6g and the second sequence h = f7; 8 ; 9; 3g, where the little square around the number indicate the value at time n = 0. We wish to nd y = x ~ h where ~ means circular convolution. The process requires as many main steps as there are entries in the sequence h. Lets see how to nd y[0], this is illustarted in this diagram

Now we calculate y[1], using the same steps as above, but now, in step 4 above, we slide h to the right by 1 position instead of zero. So number of positions to slide h0 is the same as the index of y.This is illustrated by this diagram

Notice that in the above step, we see that the origin (i.e. index n = 0) of sequence x happened to be aligned with the origin of the sequence h0 , this means that y[1] is the origin of the y since this is the index for y being generated in this step.

Now we calculate y[2], using the same steps as in the above, but now, we slide h to the right by 2 positions. This is illustrated by this diagram

Now we calculate y[3], using the same steps as in the above, but now, we slide h to the right by 3 positions. This is illustrated by this diagram

Now we calculate y[4], using the same steps as in the above, but now, we slide h to the right by 4 positions. This is illustrated by this diagram

Now we calculate y[5], using the same steps as in the above, but now, we slide h to the right by 5 positions. This is illustrated by this diagram Since now h0 is completely under x, the process completes. Hence y = f89; 80; 68; 88g

You might also like