Question 2 of 6: Eight-point circular convolution versus linear convolution
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
Notes on this paper
Paper format. National Exams May 2018 — 16-Elec-B1, Digital Signal Processing. Three hours, closed book; one approved Casio or Sharp calculator and one double-sided aid sheet of tables and formulas are permitted. Six questions are printed and five constitute a complete paper, each worth 12 points; the marking scheme published on page 1 breaks those 12 points down part by part. All six questions are solved below, because the set is intended as a study resource rather than as a three-hour sitting.
Reference texts. A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, 3rd ed., Pearson, 2010 — the source of the z-transform tables, the DFT property list and the sampling relations reproduced on pages 6–8 of this exam. J. G. Proakis and D. G. Manolakis, Digital Signal Processing: Principles, Algorithms and Applications, 4th ed., Pearson, 2007. S. K. Mitra, Digital Signal Processing: A Computer-Based Approach, 4th ed., McGraw-Hill, 2011 — filter structures, transposition and linear-phase FIR types.
Figure data. The eight-sample reading is the one used below, and it is what makes the requested eight-point circular convolution well posed.
Question 2: Eight-point circular convolution versus linear convolution (12 marks)
[Figure not reproduced: Figure 2.1 — the two exam sequences redrawn from the source figure: $x_1[n]$ occupies $0 \le n \le 7$ and $x_2[n]$ occupies $1 \le n \le 3$. See the official exam paper.]
Given.
$n$
0
1
2
3
4
5
6
7
$x_1[n]$
1
2
1
1
2
1
1
2
$x_2[n]$
0
1
3
2
0
0
0
0
Both sequences are zero outside the interval shown, and the circular convolution length is $N = 8$.
Find. The eight-point circular convolution $x_3[n]$, the support end-points and the sample values of the linear convolution $x_4[n]$, and a demonstration that aliasing $x_4$ with period 8 reproduces $x_3$.
Approach. Use the circular convolution theorem — a product of DFTs corresponds to a circular convolution — in its time-domain form, exploiting the fact that $x_2$ has only three non-zero taps; then compute the linear convolution and fold it modulo 8.
State the theorem in the form that does the work. The circular convolution theorem says that if $X_1[k]$ and $X_2[k]$ are the eight-point DFTs of the two sequences, then
$$X_3[k] = X_1[k]\,X_2[k] \quad\Longleftrightarrow\quad x_3[n] = \sum_{m=0}^{7} x_1[m]\,x_2\big[((n-m))_8\big].$$
Multiplying two eight-point DFTs by hand is far more work than evaluating the right-hand sum, and the theorem is precisely the licence to use one in place of the other.
Collapse the sum using the three non-zero taps of $x_2$. Because $x_2[1] = 1$, $x_2[2] = 3$, $x_2[3] = 2$ and $x_2$ is zero elsewhere, the circular sum reduces to three circularly shifted copies of $x_1$:
$$x_3[n] = 1\cdot x_1\big[((n-1))_8\big] + 3\cdot x_1\big[((n-2))_8\big] + 2\cdot x_1\big[((n-3))_8\big].$$
Every index is taken modulo 8, which is the only difference between this and the ordinary linear convolution.
Locate the support of the linear convolution. Linear convolution adds the supports. The earliest non-zero product pairs $x_1[0]$ with $x_2[1]$, and the latest pairs $x_1[7]$ with $x_2[3]$:
$$\boxed{\,n_{\text{first}} = 0 + 1 = 1\,} \qquad\text{and}\qquad \boxed{\,n_{\text{last}} = 7 + 3 = 10.\,}$$
So $x_4[n]$ occupies $1 \le n \le 10$, a run of ten samples — two more than the eight-point circular result can hold, which is exactly why parts (a) and (e) differ.
Compute the linear convolution. With the same three-tap collapse but without the modulo,
$$x_4[n] = x_1[n-1] + 3x_1[n-2] + 2x_1[n-3],$$
which gives, for $n = 1$ through $10$,
$$x_4[n] = \{\,1,\;5,\;9,\;8,\;7,\;9,\;8,\;7,\;8,\;4\,\}.$$
The total again checks against the product of the two DC sums, $\sum x_4 = 66 = 11 \times 6$.
Fold the linear result to recover the circular one. An $N$-point circular convolution is the linear convolution aliased with period $N$:
$$x_3[n] = \sum_{r=-\infty}^{\infty} x_4[n + 8r], \qquad 0 \le n \le 7.$$
Only $x_4[8] = 7$, $x_4[9] = 8$ and $x_4[10] = 4$ lie outside the eight-point window, so they wrap onto $n = 0, 1, 2$ respectively:
$$\begin{aligned}
x_3[0] &= x_4[0] + x_4[8] = 0 + 7 = 7, \\
x_3[1] &= x_4[1] + x_4[9] = 1 + 8 = 9, \\
x_3[2] &= x_4[2] + x_4[10] = 5 + 4 = 9,
\end{aligned}$$
while $x_3[n] = x_4[n]$ untouched for $3 \le n \le 7$. The result is $\{7,9,9,9,8,7,9,8\}$, identical to part (a), which is the verification part (e) asks for.
Figure 2.2 — top: the linear convolution $x_4[n]$ on $1 \le n \le 10$ (part d). Bottom: the eight-point circular convolution $x_3[n]$, obtained either directly (part a) or by wrapping the three tail samples of $x_4$ back onto $n = 0,1,2$ (part e).
Quantity
Result
(a) $x_3[n]$, $n = 0\ldots7$
7, 9, 9, 9, 8, 7, 9, 8
(b) First non-zero sample of $x_4$
$n = 1$
(c) Last non-zero sample of $x_4$
$n = 10$
(d) $x_4[n]$, $n = 1\ldots10$
1, 5, 9, 8, 7, 9, 8, 7, 8, 4
(e) Samples corrupted by wrap-around
$n = 0,1,2$ only; $x_3[n] = x_4[n]$ for $3 \le n \le 7$