ECE4253 Digital Communications | |
Department of Electrical and Computer Engineering - University of New Brunswick, Fredericton, NB, Canada | |
On this page, various polynomials can be chosen to demonstrate the structure of BCH codes capable of correcting several bit errors.
The primitive GF(2) polynomial P(x) defines a GF(24) as the set {0, a1, a2,...,a15} modulus P(x) where a is a root of P(x) in GF(24).
GF(16) : P(x) = x4 + x + 1 | ||||||||
| MINIMAL POLYNOMIAL | ||||||||
a0 | = 1 | = 0001 | = 1 | = a15 | = a30 | = a45 | ... | | x+1 |
a1 | = a | = 0010 | = 2 | = a16 | = a31 | = a46 | ... | | x4+x+1 |
a2 | = a2 | = 0100 | = 4 | = a17 | = a32 | = a47 | ... | | x4+x+1 |
a3 | = a3 | = 1000 | = 8 | = a18 | = a33 | = a48 | ... | | x4+x3+x2+x+1 |
a4 | = a+1 | = 0011 | = 3 | = a19 | = a34 | = a49 | ... | | x4+x+1 |
a5 | = a2+a | = 0110 | = 6 | = a20 | = a35 | = a50 | ... | | x2+x+1 |
a6 | = a3+a2 | = 1100 | = 12 | = a21 | = a36 | = a51 | ... | | x4+x3+x2+x+1 |
a7 | = a3+a+1 | = 1011 | = 11 | = a22 | = a37 | = a52 | ... | | x4+x3+1 |
a8 | = a2+1 | = 0101 | = 5 | = a23 | = a38 | = a53 | ... | | x4+x+1 |
a9 | = a3+a | = 1010 | = 10 | = a24 | = a39 | = a54 | ... | | x4+x3+x2+x+1 |
a10 | = a2+a+1 | = 0111 | = 7 | = a25 | = a40 | = a55 | ... | | x2+x+1 |
a11 | = a3+a2+a | = 1110 | = 14 | = a26 | = a41 | = a56 | ... | | x4+x3+1 |
a12 | = a3+a2+a+1 | = 1111 | = 15 | = a27 | = a42 | = a57 | ... | | x4+x3+x2+x+1 |
a13 | = a3+a2+1 | = 1101 | = 13 | = a28 | = a43 | = a58 | ... | | x4+x3+1 |
a14 | = a3+1 | = 1001 | = 9 | = a29 | = a44 | = a59 | ... | | x4+x3+1 |
a15 | = 1 | = 0001 | = 1 | = a30 | = a45 | = a60 | ... | | x+1 |
The terms {an} may be computed directly as xn modulo P(x). Click on one of the 4-bit values above to confirm this calculation using the polynomial calculator.
For this P(x) of degree 4, a complete set of 24 - 1 = 15 non-zero elements is defined. This choice of P(x) is a primitive polynomial in GF(2). ( See the factors of P(x) )
In the above table, each term an is associated with a minimal polynomial. The primitive polynomial P(x) of degree 4 is by definition a factor of x15+1 and the minimal polynomials shown represent all the irreducible factors of x15+1 including P(x). The BCH code generating polynomial is formed from one or more of these minimal polynomials.
The minimal polynomial M(x) associated with a given an is the one for which an is a root; in other words, for which M(an) = 0.
For example, the minimal polynomial for a7 in the table is given as M(x) = x4+x3+1 and, for x = a7:
M( a7 ) = (a7)4 + (a7)3 + 1
M( a7 ) = a28 + a21 + 1
M( a7 ) = ( a3+a2+1 ) + ( a3+a2 ) + 1
M( a7 ) = 0, and therefore a7 is a root of M(x).
Each element an is the root of only one of the minimal polynomials; however, each minimal polynomial may have several roots in {an}. This observation resolves the issue of redundant information raised on the previous page as the terms in {an} which contribute usefully to growing the BCH generator matrix must have different minimal polynomials.
Identifying Minimal Polynomials
The structure imposed by the use of fields based on {an} is revealed by the surprising way in which minimal polynomials are related.
Let the first minimal polynomial have the root a1, where n=(0001) in 4-bit binary, and consider the rotations of these four bits:
(0001) → (0010) → (0100) → (1000)
The terms {a1, a2, a4, a8} share the same minimal polynomial M(x)=x4+x+1.
Let the next minimal polynomial have the root a3, where n=(0011) in 4-bit binary, and consider the rotations of these four bits:
(0011) → (0110) → (1100) → (1001)
The terms {a3, a6, a12, a9} share the same minimal polynomial M(x)=x4+x3+x2+x+1.
Let the next minimal polynomial have the root a5, where n=(0101) in 4-bit binary, and consider the rotations of these four bits:
(0101) → (1010)
The terms {a5, a10} share the same minimal polynomial M(x)=x2+x+1.
Let the next minimal polynomial have the root a7, where n=(0111) in 4-bit binary, and consider the rotations of these four bits:
(0111) → (1110) → (1101) → (1011)
The terms {a7, a14, a13, a11} share the same minimal polynomial M(x)=x4+x3+1.
Creating a BCH Generator Polynomial
A BCH generating polynomial can produce codewords with predictable distance properties given a set of distinct minimal polynomials.
This G(x) is the product of three minimal polynomials for {a1,a3,a5} as:
(10100110111)
The original polynomial P(x) of degree 4 defines a codeword size of n=15 bits where 15 = 24-1; the BCH polynomial G(x) of degree 10 defines 10 parity bits such that k = 15 - 10 = 5 to give (n,k) = (15,5).
This BCH (15,5) code can correct at least 3 bit errors, as specified. (See the codewords and matrices)
|
2024-04-29 17:45:34 ADT
Last Updated: 2010-02-23 |
Richard Tervo [ tervo@unb.ca ] | Back to the course homepage... |