code can detect, but not correct, in a received code word), and a degree of complexity of the encode and decode algorithms. 5.8.5.2 BCH and the Reed-Solomon Codes The category of codes that are more effective in providing a good error correction capa- bility with simple implementation algorithms are the Bose-Chaudhuri-Hocquenghem (BCH) codes (named after their inventors). Reed-Solomon (RS) codes, even if historically invented independently, are a category of BCH codes and are the most used in high-speed transmission. The encoding algorithm of BCH codes is based on the multiplication of the mth degree polynomial representing the message word by a generating degree I polynomial g(x) SO as to derive the dth degree polynomial representing the code word. The encoder can thus be implemented as a very simple linear feedback shift register (LFSR) as shown in Figure 5.65. The characteristics of a particular BCH code depend on the choice of the generating polynomial. To describe the way in which the generating polynomial is constructed, let us fix a gen- erating prime number 80, which is introduced to construct the code in g(sm). Naturally in many cases of interest so = 2. c(x) = m(x) g(x) FIGURE 5.65 Bock scheme of a BCH encoder. Technology for Telecommunications: Integrated Optics and Microelectronics To search a code with a given Hamming distance, start to choose two positive integers d and C such that d and so are reciprocally prime in 9(sm) (their unique common divisor is 1) and m is the multiplicative order of so modulo d. To construct the generating polynomial it is needed to find the elements (ac+), j=1, where a is a primitive dth root of unit in g(sm). In correspondence of each of the ac+j it is pos- sible to find a minimal polynomial over ((s), that is the minimum degree polynomial in the considered field with leading coefficient equal to 1 and having ac+j as radix; let us call it H;(X). The BCH code-generating polynomial is given by g(x) = 1cm(H,(x), j=1, s), where 1cm() indicates the lowest common multiple. Fro