yn=∑k=0N-1hn-kmodNxk
y
n
k
0
N
1
h
n
k
N
x
k
(4)
y=
h
⊛
N
x
y
h
⊛
N
x
(5)
yn=
h
⊛
N
x
n
y
n
h
⊛
N
x
n
(6)
Since impulse response
hh completely describes
ℋℋ, we often write:
Figure 2 and Figure 3.
Define the time reversal matrix
ℛℛ as a matrix that
reverses the time axis of a column vector (Figure 4).
ℛhk=h-kmodN
ℛ
h
k
h
k
N
(7)
h0modNh-1modNh-2modNh-3modN=h0modNh3modNh2modNh1modN=1000000100100100h0modNh1modNh2modNh3modN
h
0
N
h
-1
N
h
-2
N
h
-3
N
h
0
N
h
3
N
h
2
N
h
1
N
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
h
0
N
h
1
N
h
2
N
h
3
N
(8)
Given circulant
ℋ=132213321
ℋ
1
3
2
2
1
3
3
2
1
zeroth column
h0c=123
h
0
c
1
2
3
zeroth row
ℛh0cT=132T=132
ℛ
h
0
c
1
3
2
1
3
2
So circular convolution can be written as
this
yn=
inner product of row
n
of
ℋ
(turned into a column)
=<x,
row
n
of
ℋ
tipped into a column
>
y
n
inner product of row
n
of
ℋ
(turned into a column)
x
row
n
of
ℋ
tipped into a column
but row
nn of
ℋ
ℋ tipped into a
column vector is
hnrT=
C
n
h0T=
C
n
ℛh0c
h
n
r
C
n
h
0
C
n
ℛ
h
0
c
(9)
which is the circular shift of the zeroth row and where
h0T=ℛh0c
h
0
ℛ
h
0
c
and is the time reversed column.
& so...
yn=<x,
C
n
ℛh0c>
y
n
x
C
n
ℛ
h
0
c
(10)
for
ℝN
N
; put a * in second entry for
ℂN
N
.
modN
N
operations are natural on a circle!
Since they are naturally N
N-periodic (Figure 5).
We can put
xx on a
circle/wheel (
Figure 6).
To do a circular shift by m
m,
C
m
x
C
m
x
: just spin the wheel counter-clockwise
mm units and read off the new signal.
Time reversal,
ℛx
ℛ
x
: just read off wheel in clockwise direction
(Figure 8).
Cyclic convolution works
modN
N
is equivalent to "on the wheel," where the cylinder
analogy is powerful.
yn=∑m=0N-1xmhn-mmodN
y
n
m
0
N
1
x
m
h
n
m
N
(11)
Plot
hm
h
m
(backwards on cylinder) (Figure 10).
Spin
h-m
h
m
nn steps to implement
hn-mmodN
h
n
m
N
anti-clockwise.
Multiply pointwise
xm
x
m
wheel and
hn-mmodN
h
n
m
N
wheel. The sum equals
yn
y
n
.
Repeat steps 3 and
4 for all n
n.