Discrete time circular convolution is an operation on two finite length or periodic discrete time signals defined by the sum
(
f ⊛g
)
[
n
]
=
∑
k
=
0
N

1
f
^
[
k
]
g
^
[
n

k
]
(
f ⊛g
)
[
n
]
=
∑
k
=
0
N

1
f
^
[
k
]
g
^
[
n

k
]
(15)for all signals f,gf,g defined on Z[0,N1]Z[0,N1] where f^,g^f^,g^ are periodic extensions of ff and gg. It is important to note that the operation of circular convolution is commutative, meaning that
f
⊛
g
=
g
⊛
f
f
⊛
g
=
g
⊛
f
(16)for all signals f,gf,g defined on Z[0,N1]Z[0,N1]. Thus, the circular convolution operation could have been just as easily stated using the equivalent definition
(
f
⊛
g
)
[
n
]
=
∑
k
=
0
N

1
f
^
[
n

k
]
g
^
[
k
]
(
f
⊛
g
)
[
n
]
=
∑
k
=
0
N

1
f
^
[
n

k
]
g
^
[
k
]
(17)for all signals f,gf,g defined on Z[0,N1]Z[0,N1] where f^,g^f^,g^ are periodic extensions of ff and gg. Circular convolution has several other important properties not listed here but explained and derived in a later module.
Alternatively, discrete time circular convolution can be expressed as the sum of two summations given by
(
f
⊛
g
)
[
n
]
=
∑
k
=
0
n
f
[
k
]
g
[
n

k
]
+
∑
k
=
n
+
1
N

1
f
[
k
]
g
[
n

k
+
N
]
(
f
⊛
g
)
[
n
]
=
∑
k
=
0
n
f
[
k
]
g
[
n

k
]
+
∑
k
=
n
+
1
N

1
f
[
k
]
g
[
n

k
+
N
]
(18) for all signals f,gf,g defined on Z[0,N1]Z[0,N1].
Meaningful examples of computing discrete time circular convolutions in the time domain would involve complicated algebraic manipulations dealing with the wrap around behavior, which would ultimately be more confusing than helpful. Thus, none will be provided in this section. Of course, example computations in the time domain are easy to program and demonstrate. However, disrete time circular convolutions are more easily computed using frequency domain tools as will be shown in the discrete time Fourier series section.
The above operation definition has been chosen to be particularly useful in the study of linear time invariant systems. In order to see this, consider a linear time invariant system HH with unit impulse response hh. Given a periodic system input signal xx we would like to compute the system output signal H(x)H(x). First, we note that the input can be expressed as the circular convolution
x
[
n
]
=
∑
k
=
0
N

1
x
^
[
k
]
δ
^
[
n

k
]
x
[
n
]
=
∑
k
=
0
N

1
x
^
[
k
]
δ
^
[
n

k
]
(19)by the sifting property of the unit impulse function.
By linearity,
H
(
x
[
n
]
)
=
∑
k
=
0
N

1
x
^
[
k
]
H
(
δ
^
[
n

k
]
)
.
H
(
x
[
n
]
)
=
∑
k
=
0
N

1
x
^
[
k
]
H
(
δ
^
[
n

k
]
)
.
(20)Since H(δ[nk])H(δ[nk]) is the shifted unit impulse response h[nk]h[nk], this gives the result
H
(
x
[
n
]
)
=
∑
k
=
0
N

1
x
^
[
k
]
h
^
[
n

k
]
=
(
x
⊛
h
)
[
n
]
.
H
(
x
[
n
]
)
=
∑
k
=
0
N

1
x
^
[
k
]
h
^
[
n

k
]
=
(
x
⊛
h
)
[
n
]
.
(21)Hence, circular convolution has been defined such that the output of a linear time invariant system is given by the convolution of the system input with the system unit impulse response.
It is often helpful to be able to visualize the computation of a circular convolution in terms of graphical processes. Consider the circular convolution of two finite length functions f,gf,g given by
(
f
⊛
g
)
[
n
]
=
∑
k
=
0
N

1
f
^
[
k
]
g
^
[
n

k
]
=
∑
k
=
0
N

1
f
^
[
n

k
]
g
^
[
k
]
.
(
f
⊛
g
)
[
n
]
=
∑
k
=
0
N

1
f
^
[
k
]
g
^
[
n

k
]
=
∑
k
=
0
N

1
f
^
[
n

k
]
g
^
[
k
]
.
(22)The first step in graphically understanding the operation of convolution is to plot each of the periodic extensions of the functions. Next, one of the functions must be selected, and its plot reflected across the k=0k=0 axis. For each n∈Z[0,N1]n∈Z[0,N1], that same function must be shifted left by nn. The pointwise product of the two resulting plots is then computed, and finally all of these values are summed.
"My introduction to signal processing course at Rice University."