m the definitions, we can also say that a given word of d'symbols Xj in r(80m) is a code word if and only if the polynomial has all the elements ac+j as radix. The construction we have described assures to the BCH code a minimum Hamming distance equal to 8 and the ability to correct up to 8 independent errors for each code word. RS codes are particular BCH codes, where c=0 and the generating polynomial is given by (5.48) As far as decoding is concerned, there are many algorithms to decode BCH codes; we will describe the most used here, due to its easy implementation at high speed. At the decoder the received word composed by d'symbols is considered as a polynomial generated by the channel, adding to the sent polynomial t(x) an error polynomial e(x) SO that correcting errors means determining e(x) and subtracting it. The algorithm steps are essentially three: 1. Compute the I syndromes Ei of the received word, which are defined as Eg=t(ac+1). It is evident that if all the syndromes are zero the word is a code word and it is considered correct. If not, there are errors to correct. 2. Starting from the syndromes find the error polynomial e(x). 3. Reconstruct the correct code word as c(x)= t(x)-e(x). The second step, that is the core of the algorithm, is not obvious, and it is not within the scope of this section to detail a procedure to determine the error polynomial starting from the syndromes. There are two main algorithms to do that: the Peterson-Gorenstein-Zierler algorithm and the Berlekamp-Massey algorithm, both based on a set of linear operations on matrixes and vectors in the space g(sm). Both the algorithms for their nature are well adapted to be implemented in a dedicated signal-processing circuit, and this is the reason for the wide adoption especially of the RS codes, for which the algorithm can be further simplified. In general, the BCH decoder has the bock scheme represented in Figure 5.59. 5.8.5.3 Turbo Codes The BCH codes, and the RS that are a particular class of BCH, guarantee a simple coding/ deco