BCH code: Difference between revisions

Content deleted Content added
update ref
mNo edit summary
Line 1:
{{short description|Error correction code}}
In [[coding theory]], the '''Bose&ndash;Chaudhuri&ndash;Hocquenghem codes''' ('''BCH codes''') form a class of [[cyclic code|cyclic]] [[Error correction code|error-correcting codes]] that are constructed using [[polynomial]]s over a [[finite field]] (also called a ''[[Finite field|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]].<ref>{{Harvnb|Reed|Chen|1999|p=189}}</ref><ref>{{harvnb|Hocquenghem|1959}}</ref><ref>{{harvnb|Bose|Ray-Chaudhuri|1960}}</ref> The name ''Bose&ndash;Chaudhuri&ndash;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 [[Abstract algebra|algebraic]] method known as [[syndrome decoding]]. This simplifies the design of the decoder for these codes, using small low-power electronic hardware.
Line 82:
 
== Properties ==
 
The generator polynomial of a BCH code has degree at most <math>(d-1)m</math>. Moreover, if <math>q=2</math> and <math>c=1</math>, the generator polynomial has degree at most <math>dm/2</math>.
{{Collapse top|title=Proof}}
Line 135 ⟶ 134:
 
=== Non-systematic encoding: The message as a factor ===
 
The most straightforward way to find a polynomial that is a multiple of the generator is to compute the product of some arbitrary polynomial and the generator. In this case, the arbitrary polynomial can be chosen using the symbols of the message as coefficients.
 
Line 153 ⟶ 151:
 
=== Systematic encoding: The message as a prefix ===
 
A systematic code is one in which the message appears verbatim somewhere within the codeword. Therefore, systematic BCH encoding involves first embedding the message polynomial within the codeword polynomial, and then adjusting the coefficients of the remaining (non-message) terms to ensure that <math>s(x)</math> is divisible by <math>g(x)</math>.