Chapter 9: BCH, Reed-Solomon, and Related Codes
Draft of February 23, 2001 Chapter 9: BCH, Reed-Solomon, and Related Codes 9.1 Introduction. In Chapter 7 we gave one useful generalization of the (7, 4) Hamming code of the Introduction: the family of (2m − 1, 2m − m − 1) single error-correcting Hamming Codes. In Chapter 8 we gave a further generalization, to a class of codes capable of correcting a single burst of errors. In this Chapter, however, we will give a far more important and extensive generalization, the multiple-error correcting BCH and Reed-Solomon Codes. To motivate the general definition, recall that the parity-check matrix of a Hamming Code of length n =2m − 1 is given by (see Section 7.4) H =[v0 v1 ··· vn−1 ] , (9.1) m m where (v0, v1,...,vn−1) is some ordering of the 2 − 1 nonzero (column) vectors from Vm = GF (2) . The matrix H has dimensions m × n, which means that it takes m parity-check bits to correct one error. If we wish to correct two errors, it stands to reason that m more parity checks will be required. Thus we might guess that a matrix of the general form v0 v1 ··· vn−1 H2 = , w0 w1 ··· wn−1 where w0, w1,...,wn−1 ∈ Vm, will serve as the parity-check matrix for a two-error-correcting code of length n. Since however the vi’s are distinct, we may view the correspondence vi → wi as a function from Vm into itself, and write H2 as v0 v1 ··· vn−1 H2 = . (9.3) f(v0) f(v1) ··· f(vn−1) But how should the function f be chosen? According to the results of Section 7.3, H2 will define a n two-error-correcting code iff the syndromes of the 1 + n + 2 error pattern of weights 0, 1 and 2 are all distinct.
[Show full text]