UNB ECE4253 Digital Communications
Department of Electrical and Computer Engineering - University of New Brunswick, Fredericton, NB, Canada

BCH Code Generator

On this page, various polynomials can be chosen to demonstrate the structure of BCH codes capable of correcting several bit errors.


Creating a BCH Generator Polynomial

A BCH generating polynomial can produce codewords with predictable distance properties given a set of distinct minimal polynomials.

  1. Let t be the number of bit errors to be corrected. The required Hamming distance is D=2t+1
  2. Identify a set of minimal polynomials from {an} for n= 1 to 2t.
  3. Reduce the set by deleting any duplicate minimal polynomials.
  4. The BCH generating polynomial G(x) is the product of the remaining minimal polynomials.

Generator Polynomial G(x) for BCH Code (D=5) based on P(x) = x5+x2+1
To achieve t=2, using four terms i=(1 .. 4) reduced to two unique terms i=(1,3)
Terms having duplicate minimal polynomials are not used.

This G(x) is the product of two minimal polynomials for {a1,a3} as:

G(x) = (x5+x2+1) (x5+x4+x3+x2+1) 

G(x) = x10+x9+x8+x6+x5+x3+1

(11101101001)

The original polynomial P(x) of degree 5 defines a codeword size of n=31 bits where 31 = 25-1; the BCH polynomial G(x) of degree 10 defines 10 parity bits such that k = 31 - 10 = 21 to give (n,k) = (31,21).

This BCH (31,21) code can correct at least 2 bit errors, as specified. (See the codewords and matrices)

This is the polynomial found in paging systems using the POCSAG protocol. Robust error control is necessary in the one-way pager broadcast system. Pager messages are sent as a number of 32-bit words, where each word is a (31,21) BCH codeword and an even parity bit, making a (32,21) extended BCH code. In this way, each 32-bit word carries 21 information bits.


Select a primitive polynomial P(x) and specify the target number of bits to correct t

2024-10-31 21:18:29 ADT
Last Updated: 2010-02-23
Richard Tervo [ tervo@unb.ca ] Back to the course homepage...