35
The importance of this
is
that, for cyclic codes, it
is
not necessary to hold matrices
G.
H, nor to perform calculations with them. (When the codes are binary, we may
replace all minus signs with plus signs in the above description.) Note that
in
G
(and H) all rows are formed from cyclic rotations and additions of one basic row.
3.2
THE
ROOTS
OF
g(x)
AND
THE NULL MATRIX
Since
g(x)
divides all codewords and also
(x
n
-
1),
the roots of
g(x)
are roots
of
all
codewords and
of
(x
n
-
1).
If
a
is
a root of
g(x),
since an = 1 the
order
of x
divides n.
In general
g(x)
factorizes into one
or
more irreducible polynomials (irreduci-
ble over our basic field,
e.g., GF(2», so the roots of
g(x)
lie in some extension
field.
For
example, if
g(x)
is
itself irreducible
of
degree
m,
the roots
of
g(x)
(see
Appendix C) are
a
2
,
a
4
.••
a
2m
-
1
and lie in the field GF(2
m
).
Each root satisfies
x"
=
1,
with n = 2
m
-
L
If
g(x)
is
primitive, no smaller value of n is possible,
since the
order
of a
is
(2
m
-
1).
If
g(x)
is irreducible but not primitive, n divides
(2
m
-
1).
If
g(x)
is
the product
of
two
or
more irreducible polynomials, the value
of
n
is
the lowest common multiple
of
the order of the roots
of
those irreducible
factors
of
g(x).
In (3.1)
we
had
an example of
g(x)
primitive with m =
4,
n = 2 m - 1 =
15.
As
an example of a nonprimitive irreducible
g(x)
consider
g(x)
=
X4
+ x
3
+ x
2
+ X + L
If
a
is
a root, we have as + a
4
+ a
3
+ a
2
+ a =
0;
therefore a
5
= L Thus, a
has
order
5, and
g(x)
divides
(x
5
-
1) =
(x
5
+ 1). In fact
(x
5
+
1)
=
g(x)
(x
+ 1).
In this case n =
5,
n - k =
4,
k = 1 and we have a (cyclic) (5,1) repetition code.
(Repetition codes are obviously cyclic.)
For
an example
of
g(x)
not being irreducible, consider
g(x)
=
(x
3
+x
+
1)
(x
+ 1) =
X4
+ x
3
+ x
2
+
1.
The
order
of
the roots of
(x
3
+ x + 1), which
is
primi-
tive, is
7.
The
order of the root
of
(x
+
1)
is
L
The
least common multiple
is
7.
Therefore, n = 7 and
we
can form
[
1001110
1
G = 0100111
0011101
H = 1110100
l
1011000j
1100010
0110001
Adding all the rows of H together gives the row (1111111), which shows that this
0,3)
code has even parity,
as
is
obvious from looking at the rows of G.
It
is
also
obvious that since
(x
+
1)
is
a factor
of
all codewords, substituting x = 1 in those
codewords results in adding together
the
nonzero coefficients to produce a zero
result, that
is,
even parity. This technique
is
general, in the sense that
we
can
convert any
(n,
k)
code with n = 2
m
-
1 and n - k = m based on a primitive
g(x),