In
coding theory
Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and computer data storage, data sto ...
, the Bose–Chaudhuri–Hocquenghem codes (BCH codes) form a class of
cyclic error-correcting codes that are constructed using
polynomial
In mathematics, a polynomial is a Expression (mathematics), mathematical expression consisting of indeterminate (variable), indeterminates (also called variable (mathematics), variables) and coefficients, that involves only the operations of addit ...
s over a
finite field
In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field (mathematics), field that contains a finite number of Element (mathematics), elements. As with any field, a finite field is a Set (mathematics), s ...
(also called a ''
Galois field''). BCH codes were invented in 1959 by French mathematician
Alexis Hocquenghem, and independently in 1960 by
Raj Chandra Bose and
D. K. Ray-Chaudhuri. The name ''Bose–Chaudhuri–Hocquenghem'' (and the acronym ''BCH'') arises from the initials of the inventors' surnames (mistakenly, in the case of Ray-Chaudhuri).
One of the key features of BCH codes is that during code design, there is a precise control over the number of symbol errors correctable by the code. In particular, it is possible to design binary BCH codes that can correct multiple bit errors. Another advantage of BCH codes is the ease with which they can be decoded, namely, via an
algebraic method known as
syndrome decoding. This simplifies the design of the decoder for these codes, using small low-power electronic hardware.
BCH codes are used in applications such as satellite communications,
compact disc
The compact disc (CD) is a Digital media, digital optical disc data storage format co-developed by Philips and Sony to store and play digital audio recordings. It employs the Compact Disc Digital Audio (CD-DA) standard and was capable of hol ...
players,
DVDs,
disk drives,
USB flash drive
A flash drive (also thumb drive, memory stick, and pen drive/pendrive) is a data storage device that includes flash memory with an integrated USB interface. A typical USB drive is removable, rewritable, and smaller than an optical disc, and u ...
s,
solid-state drives, and
two-dimensional bar codes.
Definition and illustration
Primitive narrow-sense BCH codes
Given a
prime number
A prime number (or a prime) is a natural number greater than 1 that is not a Product (mathematics), product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime ...
and
prime power with positive integers and such that , a primitive narrow-sense BCH code over the
finite field
In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field (mathematics), field that contains a finite number of Element (mathematics), elements. As with any field, a finite field is a Set (mathematics), s ...
(or Galois field) with code length and
distance
Distance is a numerical or occasionally qualitative measurement of how far apart objects, points, people, or ideas are. In physics or everyday usage, distance may refer to a physical length or an estimation based on other criteria (e.g. "two co ...
at least is constructed by the following method.
Let be a
primitive element of .
For any positive integer , let be the
minimal polynomial with coefficients in of .
The
generator polynomial of the BCH code is defined as the
least common multiple
In arithmetic and number theory, the least common multiple (LCM), lowest common multiple, or smallest common multiple (SCM) of two integers ''a'' and ''b'', usually denoted by , is the smallest positive integer that is divisible by both ''a'' and ...
.
It can be seen that is a polynomial with coefficients in and divides .
Therefore, the
polynomial code defined by is a cyclic code.
Example
Let and (therefore ). We will consider different values of for based on the reducing polynomial , using primitive element . There are fourteen minimum polynomials with coefficients in satisfying
:
The minimal polynomials are
:
The BCH code with
has the generator polynomial
:
It has minimal
Hamming distance
In information theory, the Hamming distance between two String (computer science), strings or vectors of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number ...
at least 3 and corrects up to one error. Since the generator polynomial is of degree 4, this code has 11 data bits and 4 checksum bits. It is also denoted as: (15, 11) BCH code.
The BCH code with
has the generator polynomial
:
It has minimal Hamming distance at least 5 and corrects up to two errors. Since the generator polynomial is of degree 8, this code has 7 data bits and 8 checksum bits. It is also denoted as: (15, 7) BCH code.
The BCH code with
has the generator polynomial
:
It has minimal Hamming distance at least 7 and corrects up to three errors. Since the generator polynomial is of degree 10, this code has 5 data bits and 10 checksum bits. It is also denoted as: (15, 5) BCH code. (This particular generator polynomial has a real-world application, in the "format information" of the
QR code.)
The BCH code with
and higher has the generator polynomial
:
This code has minimal Hamming distance 15 and corrects 7 errors. It has 1 data bit and 14 checksum bits. It is also denoted as: (15, 1) BCH code. In fact, this code has only two codewords: 000000000000000 and 111111111111111 (a trivial
repetition code
In coding theory, the repetition code is one of the most basic linear error-correcting codes. In order to transmit a message over a noisy channel that may corrupt the transmission in a few places, the idea of the repetition code is to just repeat ...
).
General BCH codes
General BCH codes differ from primitive narrow-sense BCH codes in two respects.
First, the requirement that
be a primitive element of
can be relaxed. By relaxing this requirement, the code length changes from
to
the
order of the element
Second, the consecutive roots of the generator polynomial may run from
instead of
Definition. Fix a finite field
where
is a prime power. Choose positive integers
such that
and
is the
multiplicative order
In number theory, given a positive integer ''n'' and an integer ''a'' coprime to ''n'', the multiplicative order of ''a'' modulo ''n'' is the smallest positive integer ''k'' such that a^k\ \equiv\ 1 \pmod n.
In other words, the multiplicative orde ...
of
modulo
As before, let
be a
primitive th root of unity in
and let
be the
minimal polynomial over
of
for all
The generator polynomial of the BCH code is defined as the
least common multiple
In arithmetic and number theory, the least common multiple (LCM), lowest common multiple, or smallest common multiple (SCM) of two integers ''a'' and ''b'', usually denoted by , is the smallest positive integer that is divisible by both ''a'' and ...
Note: if
as in the simplified definition, then
is 1, and the order of
modulo
is
Therefore, the simplified definition is indeed a special case of the general one.
Special cases
* A BCH code with
is called a ''narrow-sense BCH code''.
* A BCH code with
is called ''primitive''.
The generator polynomial
of a BCH code has coefficients from
In general, a cyclic code over
with
as the generator polynomial is called a BCH code over
The BCH code over
and generator polynomial
with successive powers of
as roots is one type of
Reed–Solomon code where the decoder (syndromes) alphabet is the same as the channel (data and generator polynomial) alphabet, all elements of
. The other type of Reed Solomon code is an
original view Reed Solomon code which is not a BCH code.
Properties
The generator polynomial of a BCH code has degree at most
. Moreover, if
and
, the generator polynomial has degree at most
.
Each minimal polynomial
has degree at most
. Therefore, the least common multiple of
of them has degree at most
. Moreover, if
then
for all
. Therefore,
is the least common multiple of at most
minimal polynomials
for odd indices
each of degree at most
.
A BCH code has minimal Hamming distance at least
.
Suppose that
is a code word with fewer than
non-zero terms. Then
: