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 F∗q.
The resulting linear isometry group thus is F∗q ≀ 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 gi(αi) = 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≤m(αij− α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