Chapter 8
Cyclic Codes
Among the
fi
rst codes used practically were the cyclic codes which were gen
erated using shift registers.
It was quickly noticed by Prange that the class
of cyclic codes has a rich algebraic structure, the
fi
rst indication that algebra
would be a valuable tool in code design.
The linear code
C
of length
n
is a
cyclic code
if it is invariant under a cyclic
cyclic code
shift:
c
= (
c
0
, c
1
, c
2
. . . , c
n
−
2
, c
n
−
1
)
∈
C
if and only if
˜
c
= (
c
n
−
1
, c
0
, c
1
. . . , c
n
−
3
, c
n
−
2
)
∈
C .
As
C
is invariant under this single right cyclic shift, by iteration it is invariant
under any number of right cyclic shifts. As a single left cyclic shift is the same
as
n
−
1 right cyclic shifts,
C
is also invariant under a single left cyclic shift and
hence all left cyclic shifts. Therefore the linear code
C
is cyclic precisely when
it is invariant under all cyclic shifts.
There are some obvious examples of cyclic codes.
The
0
code is certainly
cyclic as is
F
n
.
Less trivially, repetition codes are cyclic.
The binary parity
check code is also cyclic, and this goes over to the sum0 codes over any
fi
eld.
Notice that this shift invariance criterion does not depend at all upon the
code being linear. It is possible to de
fi
ne nonlinear cyclic codes, but that is rarely
done. The history of cyclic codes as shift register codes and the mathematical
structure theory of cyclic codes both suggest the study of cyclic invariance in
the context of linear codes.
8.1
Basics
It is convenient to think of cyclic codes as consisting of polynomials as well as
codewords. With every word
a
= (
a
0
, a
1
, . . . , a
i
, . . . , a
n
−
2
, a
n
−
1
)
∈
F
n
101
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
102
CHAPTER 8.
CYCLIC CODES
we associate the polynomial of degree less than
n
a
(
x
) =
a
0
+
a
1
x
+
· · ·
+
a
i
x
i
+
· · ·
+
a
n
−
1
x
n
−
1
∈
F
[
x
]
n
.
(We see here why in this chapter we index coordinates from 0 to
n
−
1.) If
c
is
a codeword of the code
C
, then we call
c
(
x
) the associated
code polynomial
.
code polynomial
With this convention, the shifted codeword ˜
c
has associated code polynomial
˜
c
(
x
) =
c
n
−
1
+
c
0
x
+
c
1
x
2
+
· · ·
+
c
i
x
i
+1
+
· · ·
+
c
n
−
2
x
n
−
1
.
Thus ˜
c
(
x
) is almost equal to the product polynomial
xc
(
x
). More precisely,
˜
c
(
x
) =
xc
(
x
)
−
c
n
−
1
(
x
n
−
1)
.
Therefore ˜
c
(
x
) also has degree less than
n
and is equal to the remainder when
xc
(
x
) is divided by
x
n
−
1. In particular
˜
c
(
x
) =
xc
(
x
) (mod
x
n
−
1)
.
That is, ˜
c
(
x
) and
xc
(
x
) are equal in the ring of polynomials
F
[
x
] (mod
x
n
−
1),
where arithmetic is done modulo the polynomial
x
n
−
1.
If
c
(
x
) is the code polynomial associated with some codeword
c
of
C
, then
we will allow ourselves to abuse notation by writing
c
(
x
)
∈
C .
Indeed, if
f
(
x
) is any polynomial of
F
[
x
] whose remainder, upon division by
x
n
−
1, belongs to
C
then we may write
f
(
x
)
∈
C
(mod
x
n
−
1)
.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Spring '09
 profnaganagi
 Coding theory, Hamming Code

Click to edit the document details