BCH (Bose, Chaudhuri, and Hocquenghem) codes are a class of cyclic codes that include both binary and multilevel codes for forward error correction (FEC). Cyclic codes are a popular class of FEC codes because their relatively simplistic structure leads to ease of implementation in software and hardware, while being robust to bursty errors. Contact us to discuss your error correction application requirements. Binary BCH Codes Binary BCH codes are specified as BCH (n, k), with bit symbols. This means that the encoder takes k data bits, appends n - k parity bits, and produces a codeword of n bits. Figure 1 uses BCH (15, 11) as an example. Figure 1. BCH Codeword Breakdown The operations of the encoder and decoder of binary BCH codes can be simplified in comparison to non-binary BCH codes. This results from the generator polynomials being binary polynomials, and once the error locations have been determined in the decoder, the bits of the received word have to be reversed. Unlike non-binary codes which usually require the use of Forney’s algorithm to determine the error correction value. As with all VOCAL software libraries, optimized algorithms are available in both ANSI C and platform specific versions. Supported platforms include many leading DSP and non-hardware accelerated general purpose systems from TI, ADI, ARM, MIPS, AMD, Intel and other vendors.