Although it will turn out that cyclic codes are not asymptotically good codes, they are an important class of codes which include many useful and widely implemented short length codes, most notably the Golay codes and the general class of BCH codes. BCH codes have a prescribed minimum distance which means that, by construction, we can bound from below the minimum distance and therefore guarantee some error-correction properties. Cyclic codes also provide examples of linear codes with few weights, which allows us to construct designs via Theorem 4.22. The cyclic structure of these codes will appear again in Chapter 10, when we consider p-adic codes.

5.1 Basic Properties

A linear code C is called cyclic if, for all (c 1, …, c n) ∈ C, the vector (c n, c 1, …, c n−1) ∈ C.

The map

$$\displaystyle \begin{aligned} (c_1,\ldots,c_n) \mapsto c_1+c_2X+\cdots+c_nX^{n-1} \end{aligned}$$

is a bijection between the vectors of \({\mathbb F}_q^n\) and the polynomials in

$$\displaystyle \begin{aligned} {\mathbb F}_q [X]/(X^n-1). \end{aligned}$$

We define the weight wt(u) of a polynomial \(u(X) \in {\mathbb F}_q [X]/(X^n-1)\) of degree less than n, as the weight of the corresponding vector of \({\mathbb F}_q^n\). In other words, the number of non-zero coefficients that it has.

An ideal I of a polynomial ring is a subspace with the property that if f ∈ I, then Xf ∈ I.

Lemma 5.1

A cyclic code C is mapped by the bijection to an ideal I in \({\mathbb F}_q [X]/(X^n-1)\).

Proof

This is precisely the condition that a linear code satisfies to be cyclic. □

We assume that (n, q) = 1 so that the polynomial X n − 1 has no repeated factors in its factorisation, see Section 2.3.

The ring \({\mathbb F}_q [X]/(X^n-1)\) is a principal ideal ring, so I in Lemma 5.1 is a principal ideal. Hence,

$$\displaystyle \begin{aligned} I=\langle g \rangle=\{ fg \ | \ f \in {\mathbb F}_q[X]/(X^n-1)\}\end{aligned} $$

for some polynomial g, which is monic and of lowest degree in the ideal.

Therefore, a cyclic code C is mapped by the bijection to 〈g〉. We will from now on write C = 〈g〉, for some polynomial g.

Lemma 5.2

If C = 〈gis a cyclic code of length n, then g divides X n − 1 and C has dimension at least n −deg g.

Proof

If g(X) does not divide X n − 1, then, using the Euclidean algorithm, we can find polynomials a(X) and b(X) such that

$$\displaystyle \begin{aligned} a(X)g(X)+b(X)(X^n-1)\end{aligned} $$

is equal to the greatest common divisor of g(X) and X n − 1, which has degree less than g. This contradicts the property that g has minimal degree in the ideal I. Therefore, g divides X n − 1.

The polynomials X jg, for j = 0, …, n −deg(g) − 1 are linearly independent polynomials in 〈g〉, so the dimension of C is at least n −deg g. □

In fact, we shall see that the dimension k of C is precisely n −deg g. This follows from the following theorem.

Theorem 5.3

Let C = 〈gbe a cyclic code of length n. The dual code C is the cyclic code \(\langle \overleftarrow {h} \rangle \), where g(X)h(X) = X n − 1 and \(\overleftarrow {h}(X)=X^k h(X^{-1})\).

Proof

Suppose that

$$\displaystyle \begin{aligned} g(X)=\sum_{j=0}^{n-k} g_jX^j \end{aligned}$$

and

$$\displaystyle \begin{aligned} h(X)=\sum_{i=0}^k h_i X^i. \end{aligned}$$

The code 〈g〉 contains the row span of the k × n matrix

$$\displaystyle \begin{aligned} \mathrm{G}=\left( \begin{array}{ccccccc} g_0 & \ldots & g_{n-k} & 0 & \ldots & \ldots & 0 \\ 0 & g_0 & \ldots & g_{n-k} & 0 & \ldots & 0 \\ 0& 0 & \ddots & \ldots & \ddots & \ddots & \vdots \\ \vdots & & \ddots & \ddots & & \ddots & 0 \\ 0 & \ldots & \ldots & 0 & g_0 & \ldots & g_{n-k}\\ \end{array} \right) \end{aligned}$$

and the code \(\langle \overleftarrow {h} \rangle \) contains the row span of the (n − k) × n matrix

$$\displaystyle \begin{aligned} \mathrm{H}=\left( \begin{array}{ccccccc} h_k & \ldots & h_{0} & 0 & \ldots & \ldots & 0 \\ 0 & h_k & \ldots & h_{0} & 0 & \ldots & 0 \\ 0& 0 & \ddots & \ldots & \ddots & \ddots & \vdots \\ \vdots & & \ddots & \ddots & & \ddots & 0 \\ 0 & \ldots & \ldots & 0 & h_k & \ldots & h_{0}\\ \end{array} \right). \end{aligned}$$

The scalar product between the s-th row of G and the r-th row of H, where s ∈{1, …, k} and r ∈{1, …, n − k} is

$$\displaystyle \begin{aligned} \sum_{i=s}^{k+r} g_{i-s}h_{k+r-i}, \end{aligned}$$

which is the coefficient of X k+rs in gh. Since \(1 \leqslant k+r-s \leqslant n-1\), this coefficient is zero and so GHt = 0.

Since

$$\displaystyle \begin{aligned} n=\dim C+\dim C^{\perp} \geqslant \mathrm{rank}(\mathrm{G})+\mathrm{rank}(\mathrm{H}) =n, \end{aligned} $$
(5.1)

the theorem follows. □

Corollary 5.4

The code C = 〈gof length n has dimension n −deg g.

Proof

Let G and H be as in the previous proof. Equation (5.1) implies that the dimension of C is the rank of G, which is k. □

Example 5.5 (perfect ternary Golay code)

Consider the factorisation of X 11 − 1 over \({\mathbb F}_3\). As in Section 2.3, we calculate the cyclotomic subsets of the multiples of 3 modulo 11,

$$\displaystyle \begin{aligned} \{0 \}, \{1,3,9,5,4\}, \{2,6,7,10,8\}. \end{aligned}$$

According to Lemma 2.12, there are two factors of degree 5 which are

$$\displaystyle \begin{aligned} (X-\alpha)(X-\alpha^3)(X-\alpha^9)(X-\alpha^5)(X-\alpha^4) \end{aligned}$$

and

$$\displaystyle \begin{aligned} (X-\alpha^2)(X-\alpha^6)(X-\alpha^7)(X-\alpha^{10})(X-\alpha^{8}), \end{aligned}$$

where α is a primitive 11-th root of unity in \({\mathbb F}_{3^5}\).

Suppose that

$$\displaystyle \begin{aligned} X^5+a_4X^4+a_3X^3+a_2X^2+a_1X+a_0 \end{aligned}$$

is the first of these factors. Then a 0 = −α 22 = −1. Since the roots of the first factor are the reciprocals of the roots of the second factor, the second factor is

$$\displaystyle \begin{aligned} X^5-a_1X^4-a_2X^3-a_3X^2-a_4X-1. \end{aligned}$$

It is fairly easy to deduce from this that the factorisation is

$$\displaystyle \begin{aligned} X^{11}-1=(X-1)(X^5-X^3+X^2-X-1)(X^5+X^4-X^3+X^2-1). \end{aligned}$$

The cyclic code C = 〈X 5 − X 3 + X 2 − X − 1〉 over \({\mathbb F}_3\) is the perfect ternary Golay code of length 11. To prove that this is a perfect code we need to show that the minimum weight of a non-zero codeword is 5 (and hence the minimum distance is 5 according to Lemma 4.1) and observe that

$$\displaystyle \begin{aligned} \Big(1+2{11 \choose 1}+4{11 \choose 2} \Big) 3^6=3^{11}, \end{aligned}$$

so the sphere-packing bound of Theorem 3.9 is attained.

Adding a column of 1’s to the generator matrix

$$\displaystyle \begin{aligned} \left(\begin{array}{ccccccccccc} -1 & -1 & 1 & -1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & -1 & -1 & 1 & -1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & -1 & -1 & 1 & -1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & -1 & -1 & 1 & -1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & -1 & -1 & 1 & -1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & -1 & -1 & 1 & -1 & 0 & 1 \\ \end{array} \right) \end{aligned}$$

we get a generator matrix of a self-dual code \(\overline {C}\) of length 12. This we can check by computing the scalar product of any two rows and verifying that it is zero (modulo 3). Since this code is self-dual, the codewords have weights which are multiples of 3. If we can rule out the possibility that a codeword has weight 3, which we will in Section 5.3, then the minimum weight of a non-zero codeword of \(\overline {C}\) is 6, which implies that the minimum weight of a non-zero codeword of the cyclic code 〈X 5 − X 3 + X 2 − X − 1〉 is 5. Therefore, C is a [11, 6, 5]3 code and \(\overline {C}\) is a [12, 6, 6]3 code. \(\blacksquare \)

5.2 Quadratic Residue Codes

Let n and q be primes for which q is a square in \({\mathbb F}_n\), where we consider the field \({\mathbb F}_n \cong {\mathbb Z}/n{\mathbb Z}\) to be addition and multiplication modulo n, defined on the set {0, 1, …, n − 1}.

Let α be a primitive n-th root of unity in some extension field of \({\mathbb F}_q\).

Define

$$\displaystyle \begin{aligned} g(X)=\prod (X-\alpha^r), \end{aligned}$$

where the product runs over the non-zero squares r in \({\mathbb F}_n\).

Lemma 5.6

The polynomial g(X) divides X n − 1 in \({\mathbb F}_q[X]\).

Proof

Since q is a square in \({\mathbb F}_n\), the map

$$\displaystyle \begin{aligned} r \mapsto qr \end{aligned}$$

is a bijection from the squares of \({\mathbb F}_n\) to the squares of \({\mathbb F}_n\), for all non-zero squares \(r \in {\mathbb F}_n\).

Hence,

$$\displaystyle \begin{aligned} g(X)=\prod (X-\alpha^r)=\prod (X-\alpha^{rq}), \end{aligned}$$

where the product runs over the non-zero squares r in \({\mathbb F}_n\).

Lemma 2.11 implies that \(g(X) \in {\mathbb F}_q[X]\) and note that the roots of g(X) are distinct n-th roots of 1. □

Since g(X) is a factor of X n − 1, we can define the cyclic code 〈g〉 of length n over \({\mathbb F}_q\). This code is called the quadratic residue code.

We can obtain evidence that the minimum distance of a quadratic residue code is quite good from the following theorems.

Theorem 5.7

If u ∈〈gand u(1) ≠ 0, then \(\mathrm {wt}(u)^2 \geqslant n\).

Proof

Since u ∈〈g〉, the n-th roots of unity α r of \({\mathbb F}_q\), where r is a non-zero square in \({\mathbb F}_n\), are zeros of u(X).

Let t be a non-square of \({\mathbb F}_n\). The n-th roots of unity α s of \({\mathbb F}_q\), where s is a non-square in \({\mathbb F}_n\), are zeros of u(X t), since the product of two non-squares is a square. Therefore, all the n-th roots of unity of \({\mathbb F}_q\), except 1, are zeros of u(X)u(X t). Hence,

$$\displaystyle \begin{aligned} u(X)u(X^t)=(1+X+\cdots+X^{n-1})v(X), \end{aligned}$$

for some polynomial v(X). Since u(1) ≠ 0, we have that v(1) ≠ 0.

Therefore, in the ring \({\mathbb F}_q[X]/(X^n-1)\),

$$\displaystyle \begin{aligned} u(X)u(X^t)=(1+X+\cdots+X^{n-1})v(1), \end{aligned}$$

since v(X) = v(1) + (X − 1)v 1(X), for some polynomial v 1(X).

Since u(X) has wt(u) terms, this implies that \(\mathrm {wt}(u)^2 \geqslant n\). □

Theorem 5.8

If n ≡−1 mod 4, u ∈〈gand u(1) ≠ 0, then \(\mathrm {wt}(u)^2 -\mathrm {wt}(u) + 1\geqslant n\).

Proof

If n ≡−1 mod 4, then − 1 is a non-square in \({\mathbb F}_n\), since (−1)(n−1)∕2 = −1. Therefore, in the proof of Theorem 5.7, we can take t = −1. Then,

$$\displaystyle \begin{aligned} u(X)u(X^{-1})=(1+X+\cdots+X^{n-1})v(1). \end{aligned}$$

In the product there are at least wt(u) terms of u(X) which multiply with a term of u(X −1) to give a constant term, since X jX j = 1. Hence,

$$\displaystyle \begin{aligned} \mathrm{wt}(u)^2 -\mathrm{wt}(u)\geqslant n-1. \end{aligned}$$

Example 5.9 (perfect binary Golay code)

Consider the quadratic residue code with n = 23 and q = 2. Let 𝜖 be a primitive element of \({\mathbb F}_{2^{11}} \cong {\mathbb F}_2[X]/(X^{11}+X^2+1)\) and let α = 𝜖 89. Then α is a primitive 23-rd root of unity. By Lemma 5.6, the factorisation of X 23 − 1 in \({\mathbb F}_2[X]\) has a factor

$$\displaystyle \begin{aligned} g(X)=\prod_{r \in S} (X-\alpha^r), \end{aligned}$$

where S = {1, 2, 4, 8, 16, 9, 18, 13, 3, 6, 12} is the set of non-zero squares of \({\mathbb F}_{23}\).

If α j is a root of g(X), then α j is not, which implies that

$$\displaystyle \begin{aligned} X^{23}-1=(X-1)g(X)\overleftarrow{g}(X). \end{aligned}$$

Solving this polynomial identity we deduce that one of g(X) or \(\overleftarrow {g}(X)\) is

$$\displaystyle \begin{aligned} X^{11}+X^9+X^7+X^6+X^5+X+1. \end{aligned}$$

By checking that the sum of the roots of g(X) is zero, we deduce that this polynomial is g(X).

The quadratic residue code 〈g〉 is the perfect binary Golay code of length 23. By Corollary 5.4, it has dimension 12.

Observe that

$$\displaystyle \begin{aligned} \Big(1+{23 \choose 1}+{23 \choose 2}+{23 \choose 3}\Big)2^{12}=2^{23}, \end{aligned}$$

so the bound in Theorem 3.9 is attained.

The following matrix is a generator matrix for the code 〈g〉:

$$\displaystyle \begin{aligned} \left(\begin{array}{ccccccccccccccccccccccc} 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 &0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {} 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {} 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0& 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {} 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {} 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ {} 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ {} 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ {} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 &0 & 0 & 0 \\ {} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ {} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 \\ {} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1& 0 \\ {} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 \\ {} \end{array}\right) \end{aligned}$$

Adding a column of 1’s to this matrix we get a generator matrix for a 12-dimensional linear code \(\overline {C}\) of length 24. One can verify that all codewords of \(\overline {C}\) have weights which are multiples of four, see Exercise 5.3. We shall prove in Section 5.3 that the cyclic code 〈g〉 has minimum weight at least 5. Therefore, the minimum weight of a non-zero codeword of \(\overline {C}\) is 8, which implies that the minimum weight of a non-zero codeword of 〈g〉 is 7. By Lemma 4.1, the minimum distance of 〈g〉 is 7. Hence, 〈g〉 is a [23, 12, 7]2 code and \(\overline {C}\) is a [24, 12, 8]2 code. \(\blacksquare \)

5.3 BCH Codes

Let α be a primitive n-th root of unity in \({\mathbb F}_{q^m}\). BCH codes are a class of cyclic codes in which we choose α so that \(\alpha ,\alpha ^2,\ldots ,\alpha ^{d_0-1}\) are roots of a low degree polynomial g of \({\mathbb F}_q[X]\), for some d 0 < n. This allows us to bound the minimum distance of the code 〈g〉. The lower the degree of g, the larger the dimension (and hence the size) of the code.

Suppose that \(g(X) \in {\mathbb F}_q[X]\) is the polynomial of minimal degree such that

$$\displaystyle \begin{aligned} g(\alpha^j)=0, \end{aligned}$$

for j = 1, …, d 0 − 1.

The code 〈g〉 is called a BCH code, after Bose, Ray-Chaudhuri and Hocquenghem who introduced this family of cyclic codes. The parameter d 0 is called the prescribed minimum distance because of the following theorem.

Theorem 5.10

The dimension of the BCH codegis at least n  m(d 0 − 1) and its minimum distance is at least d 0.

Proof

Let j ∈{1, …, d 0 − 1}. By Lemma 2.11, the polynomial

$$\displaystyle \begin{aligned} (X-\alpha^j)(X-\alpha^{jq})\cdots(X-\alpha^{jq^{m-1}}) \end{aligned}$$

is in \({\mathbb F}_{q}[X]\). Clearly, it is zero at α j. Since this polynomial has degree m this implies that there is a polynomial of degree m(d 0 − 1) in \({\mathbb F}_{q}[X]\) which is zero at α j, for all j = 1, …, d 0 − 1.

Thus, the degree of g is at most m(d 0 − 1) so, by Corollary 5.4, the dimension of 〈g〉 is at least n − m(d 0 − 1).

Suppose that there is an f ∈〈g〉 for which wt(f) is at most d 0 − 1. Then

$$\displaystyle \begin{aligned} f(X)=b_1X^{k_1}+\cdots+b_{d_0-1}X^{k_{d_0-1}},\end{aligned} $$

for some \(k_1,\ldots ,k_{d_0-1}\).

Since f ∈〈g〉,

$$\displaystyle \begin{aligned} f(\alpha^j)=0\end{aligned} $$

for all j = 1, …, d 0 − 1. Writing this in matrix form these equations are

$$\displaystyle \begin{aligned} \left(\begin{array}{cccc} \alpha^{k_1} & \alpha^{k_2} & \ldots & \alpha^{k_{d_0-1}} \\ \alpha^{2k_1} & \alpha^{2k_2} & \ldots & \alpha^{2k_{d_0-1}} \\ . & . & . & . \\ \alpha^{(d_0-1)k_1} & \alpha^{(d_0-1)k_2} & \ldots & \alpha^{(d_0-1)k_{d_0-1}} \\ \end{array}\right)\left(\begin{array}{c} b_1 \\ b_2 \\ . \\ . \\b_{d_0-1} \end{array}\right)=0. \end{aligned}$$

The determinant of the matrix is

$$\displaystyle \begin{aligned} \prod_{i \neq j} (\alpha^{k_i}-\alpha^{k_j}), \end{aligned}$$

which is non-zero. This implies that the only solution to the above system is f(X) = 0. Hence, the minimum weight of a non-zero codeword of the cyclic code 〈g〉 is at least d 0. The lemma follows since, by Lemma 4.1, the minimum weight of a non-zero codeword of a linear code is equal to its minimum distance. □

Example 5.11

Let α be a primitive 31-st root of unity in \({\mathbb F}_{32}\). By Lemma 2.12, we obtain the factorisation of X 31 − 1 over \({\mathbb F}_2\) by considering the cyclotomy classes

$$\displaystyle \begin{aligned} &\{1,2,4,8,16\}, \ \{3,6,12,24,17\},\ \{5,10,20,9,18\}, \ \{7,14,28,25,19\}, \\ &\quad \{11,22,13,26,21\}. \end{aligned} $$

The i-th cyclotomy class gives a polynomial f i(X) in \({\mathbb F}_2[X]\) which is zero at α j for j in the cyclotomy class. For example,

$$\displaystyle \begin{aligned} f_1(X)=(X-\alpha)(X-\alpha^2)(X-\alpha^4)(X-\alpha^8)(X-\alpha^{16}) \end{aligned}$$

is in \({\mathbb F}_2[X]\) and is zero at α j for j ∈{1, 2, 4, 8, 16}.

Let

$$\displaystyle \begin{aligned} g(X)=f_1(X)f_2(X)f_3(X). \end{aligned}$$

According to Corollary 5.4, the cyclic code 〈g〉 is a 16-dimensional linear code.

Since 1, 2, 3, 4, 5 and 6 appear in the first three cyclotomic subsets,

$$\displaystyle \begin{aligned} g(\alpha^j)=0, \end{aligned}$$

for j = 1, …, 6. Theorem 5.10 implies that 〈g〉 is a \([31,16,\geqslant 7]_2\) code. It is in fact a [31, 16, 7]2 code. Since there exists a [31, 16, 8]2 code, 〈g〉 is not an optimal linear code for this length and dimension. \(\blacksquare \)

Example 5.12 (shortened Reed–Solomon code)

Let α be a primitive (q − 1)-st root of unity in \({\mathbb F}_{q}\). By Theorem 2.4, the polynomial X q−1 − 1 factorises into linear factors over \({\mathbb F}_q\). Each cyclotomy class has size 1 and the factors are

$$\displaystyle \begin{aligned} f_i(X)=X-\alpha^i, \end{aligned}$$

for i = 0, …, q − 2.

Let

$$\displaystyle \begin{aligned} g(X)=f_1(X)f_2(X)\cdots f_{d-1}(X). \end{aligned}$$

According to Corollary 5.4, 〈g〉 is a (n − d + 1)-dimensional linear code of length n. According to Theorem 5.10, 〈g〉 has minimum distance at least d. This is an example of an MDS code, which we will study in more depth in Chapter 6. \(\blacksquare \)

Example 5.13

In Example 5.9, the numbers 1, 2, 3 and 4 appear in the same cyclotomy class, so Theorem 5.10 implies that the binary Golay code has weight at least 5. As observed in Example 5.9, this implies that the extended binary Golay code \(\overline {C}\) has no codewords of weight 4, which implies that the minimum distance of \(\overline {C}\) is 8. This, in turn, implies that the minimum distance of the binary Golay code is 7. \(\blacksquare \)

Example 5.14

Theorem 5.10 generalises in a straightforward way to Exercise 5.5. We can now establish that the minimum distance of the ternary Golay code is 5. By Exercise 5.5, since 3, 4 and 5 appear in the same cyclotomy class (and 6, 7 and 8 appear in the same cyclotomy class), the ternary Golay code in Example 5.5 has minimum distance at least 4. Therefore, the extended code \(\overline {C}\) has no codewords of weight three, so the weight of a non-zero codeword of the extended code is either 6, 9 or 12. As observed in Example 5.5, this implies that the minimum distance of the ternary Golay code is 5.

\(\blacksquare \)

The following theorem, which we quote without proof, states that there is no sequence of asymptotically good BCH codes.

Theorem 5.15

There is no infinite sequence of [n.k, d]q BCH codes for which both δ = dn and R = kn are bounded away from zero.

5.4 Comments

The introduction of cyclic codes and quadratic residue codes is widely accredited to Eugene Prange and Andrew Gleason who proved the automorphism group of an extended quadratic residue code has a subgroup which is isomorphic to either PSL(2, p) or SL(2, p), see [12]. The Golay codes were discovered by Golay [27]. The BCH codes were introduced by Bose and Ray-Chaudhuri in [13] and independently by Hocquenghem in [38]. The fact that long BCH codes are asymptotically bad is proven by Lin and Welden in [47]. The code in Exercise 5.7 is a Zetterberg code, one of a family of [4m + 1, 4m + 1 − 4m, 5]2 codes.

5.5 Exercises

5.1

Let \(\overline {C}\) be the extended ternary Golay code from Example 5.5.

  1. i.

    Verify that the factorisation of X 11 − 1 in \({\mathbb F}_3[X]\) is as in Example 5.5.

  2. ii.

    Prove that the weight enumerator of \(\overline {C}\) is

    $$\displaystyle \begin{aligned} A(X)=1+264X^6+440X^9+24X^{12}. \end{aligned}$$
  3. iii.

    Let S be the set of 12 points of PG(5, 3) obtained from the set of columns of a generator matrix of the code \(\overline {C}\). Label the points of S by the elements of {1, …, 12} and define a set D of 6-subsets to be the points of S which are dependent (i.e. are contained in a hyperplane of PG(5, 3)). Prove that D is a 5-(12, 6, 1) design.

  4. iv.

    Verify that Theorem 4.22 implies that the set of supports of the codewords of weight 6 of \(\overline {C}\) is a 5-(12, 6, 1) design.

5.2

Prove that in Example 5.9 the code \(\langle \overleftarrow {g} \rangle \) is equivalent to the codeg〉.

5.3

  1. i.

    Prove that the extended Golay code over \({\mathbb F}_2\), the code \(\overline {C}\) in Example 5.9, is self-dual and that the weights of the codewords of \(\overline {C}\) are multiples of 4.

  2. ii.

    Prove that the weight enumerator of the code \(\overline {C}\) is

    $$\displaystyle \begin{aligned} A(X)=1+759X^8+2576X^{12}+759X^{16}+X^{24}. \end{aligned}$$
  3. iii.

    Apply Theorem 4.22 to construct a 5-(24, 8, 1) design.

5.4

Investigate the observation that if n ≡−1 modulo 4 andgis a quadratic residue code, then the reverse of the polynomial (X n − 1)∕(X − 1)g(X) is g(X). Does this imply that the extension of the codegis self-dual?

5.5

Suppose that \(g(X) \in {\mathbb F}_q[X]\) is the polynomial of minimal degree such that

$$\displaystyle \begin{aligned} g(\alpha^j)=0, \end{aligned}$$

for j = ℓ + 1, …, ℓ + d 0 − 1.

Prove that the dimension ofgis at least n  m(d 0 − 1) and the minimum distance ofgis at least d 0.

5.6

Construct the largest possible BCH code with the following parameters.

  1. i.

    A binary code of length 15 with minimum distance at least 5.

  2. ii.

    A binary code of length 31 with minimum distance at least 11.

  3. iii.

    A ternary code of length 13 with minimum distance at least 7.

Compare the dimension of the codes with the Griesmer bound, the sphere-packing bound and the Gilbert–Varshamov bound.

5.7

  1. i.

    Prove that X 17 + 1 factorises in \({\mathbb F}_2[X]\) as (X + 1)f(X)g(X), where

    $$\displaystyle \begin{aligned} f(X)=\overleftarrow{f}(X)=X^8+X^7+X^6+\cdots \end{aligned}$$

    and \(g(X)=\overleftarrow {g}(X)\).

  2. ii.

    Construct a [17, 9, 5]2 code.

  3. ii.

    Construct a [18, 9, 6]2 code.

5.8

  1. i.

    Prove that the polynomial X 11 + 1 factorises in \({\mathbb F}_4[X]\) into two irreducible factors of degree 5 and one of degree 1.

  2. ii.

    Using one of the factors of degree 5, construct a [11, 6, d]4 code C.

  3. iii.

    Prove that C is a \([11,6,\geqslant 4]_4\) code.

  4. iv.

    With the aid of a computer, or not, verify that C is a [11, 6, 5]4 code.

5.9

  1. i.

    Prove that the polynomial X 17 + 1 factorises in \({\mathbb F}_4[X]\) into four irreducible factors of degree 4 and one of degree 1.

  2. ii.

    Construct a \([17,9, \geqslant 7]_4\) code.

  3. iii.

    Let g(X) = X 8 + eX 7 + X 6 + X 5 + (1 + e)X 4 + X 3 + X 2 + eX + 1, where e is an element of \({\mathbb F}_4\) such that e 2 = e + 1. Prove that g divides X 17 + 1.

  4. iv.

    Assuming that the code in ii. isg, prove that the minimum distance of the code constructed in ii. is 7.