# Ass.Prof.Dr.

Thamer Information Theory 4th Class in Communications

BCH Codes

The Bose, Chaudhuri, and Hocquenghem (BCH) codes form a large class of powerful random error-correcting cyclic codes. This class of codes is a remarkable generalization of the Hamming codes for multiple-error correction. Binary BCH codes were discovered by Hocquenghem in 1959 and independently by Bose and Chaudhuri in 1960 . For any positive integers m(m ≥ 3) and t (t< 2m-1), there exists a binary BCH code with the following parameters:

Clearly, this code is capable of correcting any combination of t or fewer errors in a block of n = 2 m — l digits. We call this code a t-error-correcting BCH code. The generator polynomial of this code is specified in terms of its roots from the Galois field GF(2m). Let be a primitive m element in GF(2 ). The generator polynomial g(X) of the t-errorcorrecting BCH code of length 2 m — l is the lowest-degr ee polynomia l over GF(2) which has ….(1) As its roots [i.e., g( i) = 0 for 1 ≤ i ≤2t. It follows that g(X) has

,

2

, .. .,

2t

and their conjugates as all its roots.

1

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

Let Φi(X) be the minimal polynomial of i. Then g(X) must be the leas t comm on m ultip le (LCM) of Φ1(X) , Φ2(X) , ….. Φ2t (X), that is,

…(2) The generator polynomial g(X) of the binary t-errorcorrecting BCH code of length 2 m — 1 given by (2) can be reduced to

…(3) Since the degree of each minimal polynomial is m or less, the degree of g(X) is at most mt. That is, the number of paritycheck digits, n — k, of the code is at most equal to mt. There is no simple formula for enumerating n — k, but if t is small, n — k is exactly equal to mt. The parameters for all binary BCH codes of length 2m — 1 with m ≤ 10 , are given in Table 1. The BCH codes defined above are usually called prim itive (or narr ow-se nse) BCH codes.

2

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

3

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

Example 1: Let a be a primitive element of the Galois field GF(24) given by Table 2 , such that 1 + + 4 = 0. From Table 3 , we find that the minimal polynomials of are

,

3

, and

5

4

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

5

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

It follows from (3) that the double-error-correcting BCH code of length n = 24 — 1 = 1 5 is generated by

Thus, the code is a (15, 7) cyclic code with d m i n ≥ 5. Since the generator polynomial is code polynomial of weight 5, the minimum distance of this code is exactly 5. EXAMPLE 2: The triple-error-correcting BCH code of length 15 is generated by

This triple-error-correcting BCH code is a (15, 5) cyclic code with d m i n ≥ 7. Since the weight of the generator polynomial is 7, the minimum distance of this code is exactly 7.

Using the primitive polynomial p (X) = 1 + X + X 6 , we may construct the Galois field GF(26) as shown in Table 4. The minimal polynomials of the elements in GF(26) are listed in Table

6

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

5. Using (3), we find the generator polynomials of all the BCH codes of length 63 as shown in Table 6.

7

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

8

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

9

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

10

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

H matrix (i.e. the parity-check matrix) of the BCH code is given as

…(4) Note that the entries of H are elements in GF(2 ). Each element in GF(2m) can be represented by a w-tuple over GF(2). If each entry of H is replaced by its corresponding m-tuple over GF(2) arranged in column form, we obtain a binary parity-check matrix for the code.

m

Example 3: Consider the double-error-correcting BCH code of length n = 2" — 1 =15. From Example 1 we know that this is a (15, 7) code. Let be a primitive element in GF(24). Then the parity-check matrix of this code is Using (4) we get that:

11

**Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications
**

15 Using Table 2, the fact that = 1, and representing each entry of H by its corresponding 4-tuple, we obtain the following binary parity-check matrix for the code:

The t-error-correcting BCH code denned above indeed has minimum distance at least 2t + 1. The parameter 2t + 1 is usually called the desig ned d istance of the /-error-correcting BCH code. The true minimum distance of a BCH code may or may not be equal to its designed distance. There are many cases where the true minimum distance of a BCH code is equal to its designed distance. However, there are also cases where the true minimum distance is greater than the designed distance.

12

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

**REED-SOLOMON CODES
**

In addition to the binary codes, there are non binary codes. In fact, if p is a prime number and q is any power of p, there are codes with symbols from the Galois field GF(q). These codes are called q-ary c odes . The special subclass of q-ary BCH codes for which s = 1 is the most important subclass of q-ary BCH codes. The codes of this subclass are usually called the Re ed-Solomon codes in honor of their discoverers . A t-error-correcting Reed-Solomon code with symbols from GF(q) has the following parameters:

We consider Reed-Solomon codes with code symbols from the Galois field GF(2m) (i.e., q = 2m). Let be a primitive element in GF(2m). The generator polynomial of a primitive t-errorcorrecting Reed-Solomon code of length 2m — 1 is

…(5)

13

Ass.Prof.Dr.Thamer Information Theory 4th Class in Communications

The code generated by g(X) is an (n, n — 2t) cyclic code which consists of those polynomials of degree n — 1 or less with coefficients from GF(2m) that are multiples of g(X). Encoding of this code is similar to the binary case. EXAMPLE: Consider a triple-error-correcting Reed-Solomon code with symbols from GF(24). The generator polynomial of this code is

H.W: Find the generator polynomial g(X) for a double-error correcting Reed- Salmon Code (RS) with GF(8) which are generated by X3 + X2 + 1?

14