written 2.6 years ago by |
BCH Codes: BCH codes are among the most powerful cyclic block codes and are widely used in wireless applications. For any positive pair of integers m and t, there is a binary (n, k) BCH code with the following parameters:
This code can correct all combinations of t or fewer errors. The generator polynomial for this code can be constructed from the factors of (X2m - 1 + 1). The BCH codes provide flexibility in the choice of parameters (block length, code rate)
Fig: BCH parameters for code lengths up to 28 - 1:
Fig: BCH generator polynomials:
A number of techniques have been designed for BCH decoding that require less memory than a simple table lookup. One of the simplest was proposed by Berlekamp [BERL80]. The central idea is to compute an error-locator polynomial and solve for its roots. The complexity of the algorithm increases only as the square Of the number of errors to be corrected.
Reed-Solomon Codes: Reed-Solomon (RS) codes are a widely used subclass of nonbinary BCH codes. With RS codes, data are processed in chunks of m bits, called symbols. An (n, k) RS code has the following parameters:
Thus, the encoding algorithm expands a block of k symbols to n symbols by adding n - k redundant check symbols. Typically, m is a power of 2; a popular value of m is 8.
RS codes are well suited for burst error correction. They make highly efficient use of redundancy, and block lengths and symbol sizes can be easily adjusted to accommodate a wide range of message sizes. In addition, efficient coding techniques are available for RS codes.