• No results found

Cyclic Codes

In document Hulpke - Combinatorics (2017) (Page 163-167)

Note IX.23: This is the full group of isometries of Hamming space: Pick a “base”

element v = (a, a, . . . , a). By considering code elements at distance 1 to v and dis-tance 1 to each other, we can establish a permutation of coordinates. What remains are symbol permutations.

As usual, we call two codes equivalent if they can be mapped to each other under an isometry. The automorphism group of a code is the set of those isometries that map the set of code words back in the code.

When considering linear codes, the zero word has a special role and needs to be preserved. Furthermore we cannot permute the alphabet – Fqarbitrarily, but need to do so in a way that is compatible with vector space operations, that is we need to replace the set of all permutations Sqof the alphabet with scalar multiplication by nonzero elements, the group Fq.

The resulting linear isometry group thus is Fq ≀ Sn. It elements, can be repre-sented by monomial matrices, that is matrices that have exactly one nonzero entry in every row and column. In this representation the action on F qnis simply by matrix multipliction.

If q = 2, there is no nontrivial scalar multiplication and the linear isometry group becomes simply Sn.

IX.5 Cyclic Codes

An important subclass of linear codes are cyclic codes: they allow for tyeh constrcu-tion of interesting codes, they connect coding theorey to fundamenta concepts in abstract algebra and — this is what gives them practical relevance — the existence of practical methods for decoding (which we shall not go into detail of).

Definition IX.24: A linear code C ⊂ Fnq is cyclic, if cyclic permutations of code-words are also codecode-words, that is C is (as a set) invariant under the permutation action of the cyclic group ⟨(1, 2, 3, . . . , n)⟩.

Assume that gcd(n, q) = 1 and let R = Fq[x] the polynomial ring and the ideal I = (xn− 1) ⊲ R. Then Fnq is isomorphic (as a vector space) with Fq[x]/I, the isomorphism being simply

(a0, a1, . . . , an−1) ↔ I + a0+ a1x + ⋯ + an−1xn−1.

In this representation, cyclic permutation corresponds to multiplication by x, as I + axn−1⋅ x = +axn = I − a(xn− 1) + axn = I + a. That means that a code C, considered as a subset of R/I, is cyclic if and only if it is (as a set) invariant under multiplication by x.

Since C is a linear subspace, this is equivalent to invariance under multiplication by arbitrary polynomials, that is

Proposition IX.25: A cyclic code of length n is an ideal in Fq[x]/(xn− 1).

We know from abstract algebra that ideals of a quotient ring R/I correspond to ideals I ≤ J ⊲ R (as J/I). Furthermore Fq[x] is a principal ideal domain, that is every ideal is generated by a polynomial.

Lemma IX.26: Let R be a ring and a, b ∈ R. Then (a) ⊂ (b) if and only if b ∣ a in R.

Proof: The statement (a) ⊂ (b) is equivalent to a ∈ (b). By definition this is if and only if there exists r ∈ R such that a = rb, that is b ∣ a. ◻

We thus get

Theorem IX.27: The cyclic codes of length n over Fqare given by the divisors of xn− 1 over Fq.

Note IX.28: This is the reason for the condition that gcd(n, q) = 1. Otherwise q = paand p ∣ n but

xn− 1 = (xnp)p− 1 ≡ (xnp − 1)p (mod p) is a power.

If C = (I+g(x)) for a cyclic code C ≤ Fq[x]/(xn−1), we call g(x) the generator polynomial of C and h(x) = (xn− 1)/g(x) the parity check polynomial of C.

Considered as a polynomial, we have that the code words c ∈ C are simply multiples of g, we that get that an arbitrary polynomial f (x) ∈ C if and only if f (x)h(x) ≡ 0 (mod xn− 1).

Example: For n = 7 and q = 2 we have that x7− 1 = (x + 1)(x3+ x + 1)(x3+ x2+ 1).

Thus g(x) = x3+ x2+ 1 creates a cyclic code of length 7 and 27−3= 24 = 16 code words, and check polynomial h(x) = x4+ x3+ x2+ 1.

While this is a slick way of constructing codes, we have not yet said a single word about their ultimate purpose, error correction; respectively the minimum distance of cyclic codes.

The first step on that path will be to look at a different version of check matrix:

Theorem IX.29: Let C ⊂ Fq[x]/(xn−1) be a cyclic code with generator polynomial g of degree n − k, and let α1, . . . , αn−kbe the roots of g. Then

H =

⎛⎜

1 α1 α12 ⋯, α1n−1

⋮ ⋮ ⋮ ⋮

1 αn−k α2n−k ⋯, αn−1n−k

⎞⎟

is a check matrix for C, that is f (x) = ∑ fixi∈ Fq[x]/(xn− 1) is in the code if and only if ( f0, . . . , fn−1) ⋅ HT = 0.

Proof: The criterion is that for all j we have 0 = ∑ fiαij= f (αj). This is the case if

and only if g(x) ∣ f (x), that is if f (x) ∈ C. ◻

IX.5. CYCLIC CODES 157 Note IX.30: By expressing the αijas (column) coefficient vectors in an Fqbasis of a suitable field Fqm ≤ Fqn(that is multiplying the number of rows by a factor) we can replace H with an Fqmatrix.

We now can use Proposition IX.13 on this matrix H to determine the minimum distance. We note that rows associated to roots of the same minimal polynomial do not contribute to further checking.

Lemma IX.31: Suppose that g(x) = ∏mi=1gi(x) as a product of (different) irre-ducible polynomials over Fq and that (after reordering) we have gii) = 0 for i = 1, . . . , m. Then

(that is we only take one root for each irreducible factor) is a check matrix for C.

Proof: Let β be a root of g that is not amongst α1, . . . , αm. Then (WLOG) β and α = α1must be roots of the same irreducible factor of g. This implies that there is a Galois automorphism σ of the field extension Fq(α) = Fq(β) that will map α → β.

But then for any f (x) ∈ Fq[x] we have that

σ ( f (α)) = f (σ (α)) = f (β).

As σ(0) = 0 the statement follows. ◻

Note IX.32: The reader might wonder whether these check matrices H violate the theorems we have proven about rank and number of rows of these matrices. They don’t, because they are not defined over Fqbut over an extension – If α is of degree m we would need to replace the row for α by m rows, representing α (and its powers similarly) with coefficients with respect to an Fq-basis.

Example: Let n = 15 and q = 2. We take

g(x) = (x4+ x + 1) ⋅ (x4+ x3+ x2+ x + 1) ∣ x15− 1,

that is deg(g) = 8 and it defines a code of dimension 15 − 8 = 7. Let α be a root of p1(x) = x4+ x + 1 in F16, then p1(x) = (x − α)(x − α2)(x − α4)(x − α8) (the other roots must be images of the first under the Frobenius automorphism), α is a generators of the multiplicative group of F16(explicit calculation), and (also explicit calculation) we have that α3is a root of x4+ x3+ x2+ x + 1. Thus we can take the

or – removing some rows as in the prior lemma –

H =( 1 α α2 ⋯, α14 1 α3 α6 ⋯, α42 ) .

Lemma IX.33 below shows that any four columns of this matrix H are linearly independent, thus g defines a code of minimum distance d ≥ 5.

The minimum bound in this example follows from the following technical lem-ma:

Lemma IX.33: Let α be an element of multiplicative order n (also called an primitive n-th root of unity) and b > 0. Then any m columns of the m × n matrix

and we get by the usual determinant rules that

det(M) = αb(i1+i2+⋯+im)det(M0)

But M0is a Vandermonde matrix, so det(M0) = ∏

1≤ j<k≤mij− αik) /= 0,

since all powers of α will be different. ◻

We generalize this result to a class of groups that was discovered independently by R.C. Bose (as in previous chapters) and D.K. Ray-Chaudhuri, as well as by A. Hocquenghem and which are named after these discoverers.

IX.6. PERFECT CODES 159

In document Hulpke - Combinatorics (2017) (Page 163-167)