Circular Convolution
Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.
Part a.
Write a Python program called conv
to compute the convolution of two discrete-time signals:
x_1[n] and x_2[n].
Assume that the signal x_1[n] is zero outside the range 0\le n\lt N_1 and
that the signal x_2[n] is zero outside the range 0\le n\lt N_2.
Represent these signals as Python lists x_1
and x_2
where the first element in each list represents the value of the signal
at n=0 and the lengths of x_1
and x_2
are N_1 and N_2 respectively.
Demonstrate the use of your program by convolving two rectangular pulses: one of length 3 and the other of length 7.
Part b.
Write a Python program called circconv
to compute the circular convolution of two discrete-time signals:
x_1[n] and x_2[n], as described in the previous part.
Inputs to circconv
should include the two input lists
as well as the analysis width N of the circular convolution.
Demonstrate the use of your program by circularly convolving two rectangular pulses that are each of length 32 using an analysis width of N=32. Compare the result of circular convolution with that of conventional convolution. Briefly explain the relation of these two results.
Part c.
Let x_3[n] represent the following signal:
Compare the result with an analogous circular convolution, where the analysis window is N=32. Briefly explain how the two results differ.