Cyclic Codes - Michigan State University
Chapter 8
Cyclic Codes
Among the first codes used practically were the cyclic codes which were generated using shift registers. It was quickly noticed by Prange that the class of cyclic codes has a rich algebraic structure, the first 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 shift:
c = (c0, c1, c2 . . . , cn-2, cn-1) C
if and only if
c~ = (cn-1, c0, c1 . . . , cn-3, cn-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 sum-0 codes over any field.
Notice that this shift invariance criterion does not depend at all upon the code being linear. It is possible to define 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.
cyclic code
8.1 Basics
It is convenient to think of cyclic codes as consisting of polynomials as well as codewords. With every word
a = (a0, a1, . . . , ai, . . . , an-2, an-1) F n
101
102
CHAPTER 8. CYCLIC CODES
we associate the polynomial of degree less than n a(x) = a0 + a1x + ? ? ? + aixi + ? ? ? + an-1xn-1 F [x]n .
code polynomial
(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.
With this convention, the shifted codeword c~ has associated code polynomial
c~(x) = cn-1 + c0x + c1x2 + ? ? ? + cixi+1 + ? ? ? + cn-2xn-1 .
Thus c~(x) is almost equal to the product polynomial xc(x). More precisely,
c~(x) = xc(x) - cn-1(xn - 1) .
Therefore c~(x) also has degree less than n and is equal to the remainder when xc(x) is divided by xn - 1. In particular
c~(x) = xc(x) (mod xn - 1) .
That is, c~(x) and xc(x) are equal in the ring of polynomials F [x] (mod xn - 1), where arithmetic is done modulo the polynomial xn - 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 xn - 1, belongs to C then we may write
f (x) C (mod xn - 1) .
With these notational conventions in mind, we see that our definition of the cyclic code C has the pleasing polynomial form
c(x) C (mod xn - 1)if and only ifxc(x) C (mod xn - 1) .
Since additional shifts do not take us out of the cyclic code C, we have xic(x) C (mod xn - 1) ,
for all i. By linearity, for any ai F , aixic(x) C (mod xn - 1)
and indeed
d
aixi c(x) C (mod xn - 1) ,
i=0
That is, for every polynomial a(x) =
d i=0
aixi
F [x],
the
product
a(x)c(x)
(or more properly a(x)c(x) (mod xn - 1) ) still belongs to C. This observation,
due to Prange, opened the way for the application of algebra to cyclic codes.
8.1. BASICS
103
( 8.1.1) Theorem. Let C = {0} be a cyclic code of length n over F . (1) Let g(x) be a monic code polynomial of minimal degree in C. Then g(x)
is uniquely determined in C, and
C = { q(x)g(x) | q(x) F [x]n-r } ,
where r = deg(g(x)). In particular, C has dimension n - r. (2) The polynomial g(x) divides xn - 1 in F [x].
Proof. As C = {0}, it contains nonzero code polynomials, each of which has a unique monic scalar multiple. Thus there is a monic polynomial g(x) in C of minimal degree. Let this degree be r, unique even if g(x) is not.
By the remarks preceding the theorem, the set of polynomials
C0 = { q(x)g(x) | q(x) F [x]n-r }
is certainly contained in C, since it is composed of those multiples of the code polynomial g(x) with the additional property of having degree less than n. Under addition and scalar multiplication C0 is an F -vector space of dimension n - r. The polynomial g(x) is the unique monic polynomial of degree r in C0.
To prove (1), we must show that every code polynomial c(x) is an F [x]multiple of g(x) and so is in the set C0. By the Division Algorithm A.2.5 we have
c(x) = q(x)g(x) + r(x) ,
for some q(x), r(x) F [x] with deg(r(x)) < r = deg(g(x)). Therefore
r(x) = c(x) - q(x)g(x) .
By definition c(x) C and q(x)g(x) is in C0 (as c(x) has degree less than
n). Thus by linearity, the righthand side of this equation is in C, hence the
remainder term r(x) is in C. If r(x) was nonzero, then it would have a monic
scalar multiple belonging to C and of smaller degree than r. But this would
contradict the original choice of g(x). Therefore r(x) = 0 and c(x) = q(x)g(x),
as desired.
Next let
xn - 1 = h(x)g(x) + s(x) ,
for some s(x) of degree less than deg(g(x)). Then, as before,
s(x) = (-h(x))g(x) (mod xn - 1)
belongs to C. Again, if s(x) is not zero, then it has a monic scalar multiple
belonging to C and of smaller degree than that of g(x), a contradiction. Thus
s(x) = 0 and g(x)h(x) = xn - 1, as in (2).
2
The polynomial g(x) is called the generator polynomial for the code C. The polynomial h(x) F [x] determined by
g(x)h(x) = xn - 1
generator polynomial
104
CHAPTER 8. CYCLIC CODES
check polynomial
is the check polynomial of C. Under some circumstances it is convenient to consider xn - 1 to be the
generator polynomial of the cyclic code 0 of length n. Then by the theorem, there is a one-to-one correspondence between cyclic codes of length n and monic divisors of xn - 1 in F [x].
Example. Consider length 7 binary cyclic codes. We have the factorization into irreducible polynomials
x7 - 1 = (x - 1)(x3 + x + 1)(x3 + x2 + 1) .
Since we are looking at binary codes, all the minus signs can be replaced by plus signs:
x7 + 1 = (x + 1)(x3 + x + 1)(x3 + x2 + 1) .
As there are 3 irreducible factors, there are 23 = 8 cyclic codes (including 0 and F72). The 8 generator polynomials are:
(i) (ii) (iii) (iv) (v) (vi) (vii) (viii)
1=1
x+1=x+1 x3 + x + 1 = x3 + x + 1 x3 + x2 + 1 = x3 + x2 + 1 (x + 1)(x3 + x + 1) = x4 + x3 + x2 + 1 (x + 1)(x3 + x2 + 1) = x4 + x2 + x + 1 (x3 + x + 1)(x3 + x2 + 1) = x6 + x5 + x4 + x3 + x2 + x + 1 (x + 1)(x3 + x + 1)(x3 + x2 + 1) = x7 + 1
Here in (i) the polynomial 1 generates all F72. In (ii) we find the parity check code and in (vii) the repetition code. As mentioned before, in (viii) we view the 0-code as being generated by x7 + 1.
The polynomials of (iii) and (iv) have degree 3 and so generate [7, 4] codes, which we shall later see are Hamming codes. The [7, 3] codes of (v) and (vi) are the duals of the Hamming codes.
( 8.1.2 ) Problem. How many cyclic codes of length 8 over F3 are there? Give a generator polynomial for each such code.
( 8.1.3 ) Problem. Prove that there is no cyclic code that is (equivalent to) an [8, 4] extended binary Hamming code.
( 8.1.4 ) Problem. Let cyclic code C have generator polynomial g(x). Prove that C is contained in the sum-0 code if and only if g(1) = 0.
( 8.1.5 ) Problem. Let C be a cyclic code. Let C- be the code resulting from shortening C at a single position, and let C- be the code resulting from puncturing C
at a single position.
(a) Give all C for which C- is cyclic. (b) Give all C for which C- is cyclic.
The check polynomial earns its name by the following
8.1. BASICS
105
( 8.1.6) Proposition. If C is the cyclic code of length n with check polynomial h(x), then
C = { c(x) F [x]n | c(x)h(x) = 0 (mod xn - 1) } .
Proof. The containment in one direction is easy. Indeed if c(x) C, then by Theorem 8.1.1 there is a q(x) with c(x) = q(x)g(x). But then
c(x)h(x) = q(x)g(x)h(x) = q(x)(xn - 1) = 0 (mod xn - 1) .
Now consider an arbitrary polynomial c(x) F [x]n with c(x)h(x) = p(x)(xn - 1), say.
Then
c(x)h(x) = p(x)(xn - 1) = p(x)g(x)h(x) ,
hence
(c(x) - p(x)g(x))h(x) = 0 .
As g(x)h(x) = xn - 1, we do not have h(x) = 0. Therefore
c(x) - p(x)g(x) = 0 and c(x) = p(x)g(x) ,
as desired.
2
If we are in possession of a generator polynomial g(x) =
r j=0
gj
xj
for
the
cyclic code C, then we can easily construct a generator matrix for C. Consider
g0 g1 ? ? ? ? ? ? ? ? ? ? ? ? gr-1 gr 0 0 . . . 0
0 g0 g1 ? ? ? ? ? ? ? ? ? ? ? ? gr-1 gr 0 . . . 0
G
=
...
... . . . . . . . . . . . .
...
... ... ... ...
...
...
... . . . . . . . . . . . .
...
... ... ... ...
...
0 0 . . . 0 g0 g1 ? ? ? ? ? ? ? ? ? ? ? ? gr-1 gr
The matrix G has n columns and k = n - r rows; so the first row, row g0, finishes with a string of 0's of length k - 1. Each successive row is the cyclic shift of the previous row: gi = g~i-1, for i = 1, . . . , k - 1. As g(x)h(x) = xn - 1, we have
g0h0 = g(0)h(0) = 0n - 1 = 0 .
In particular g0 = 0 (and h0 = 0). Therefore G is in echelon form (although likely not reduced). In particular the k = dim(C) rows of G are linearly independent. Clearly the rows of G belong to C, so G is indeed a generator matrix for C, sometimes called the cyclic generator matrix of C.
cyclic generator matrix
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- 1 5 equations find the solution set of each equation if
- free discord nitro codes 2021 get free discord nitro
- linear codes mathematical and statistical sciences
- owner s manual m750138b 1 item number serial number
- d c generators
- cyclic groups christian brothers university
- free discord nitro codes generator gp8 ¢ discordnitrofree
- aston academy gcse physics home
- generating uniform random numbers
- section i 6 cyclic groups
Related searches
- michigan state university job postings
- michigan state university philosophy dept
- michigan state university online degrees
- michigan state university employee discounts
- michigan state university employee lookup
- michigan state university employee portal
- michigan state university employee salaries
- michigan state university admissions
- michigan state university employee benefits
- michigan state university website
- michigan state university employee directory
- michigan state university deadline