How to obtain a BCH(51,8) code

639 Views Asked by At

I have to design a decoder for a $\text{BCH}(51,8)$ code with parity check polynomial $h(x) = x^8 + x^7 + x^4 + x^3 + x^2 + x + 1$.

I am puzzled as to how such a code is even obtained. I know that you can shorten a cyclic code by $s$ and go from $\text{BCH}(2^m, k)$ to $\text{BCH}(2^m - s, k - s)$ and then decode it by using the decoder intended for $\text{BCH}(2^m, k)$. However, by going through tables that list all possible codes for a given $m$, I wasn't able to find an $(m, k, s)$ trio such that $\text{BCH}(2^m, k) = \text{BCH}(51, 8)$.

My question is thus: how to construct a $BCH(51,8)$ code and how to decode it?

1

There are 1 best solutions below

1
On BEST ANSWER

@JyrkiLahtonen's comment covers the essential question as to what the $[51,8]$ BCH code is; it is a cyclic (BCH) code of length 51. Furthermore, $h(x)$ is an irreducible polynomial of degree $8$ whose roots are $\alpha, \alpha^2, \alpha^4, \alpha^8, \alpha^{16}, \alpha^{32}, \alpha^{64}=\alpha^{13}$ and $\alpha^{26}$ where $\alpha$ is an element of order $51$ in $\mathbb F_{2^8}$ or GF$(2^8)$, the field of 256 elements. The longest string of successive powers of $\alpha$ that are not roots of $h(x)$ and thus are roots of the generator polynomial $g(x)$ stretches from $\alpha^{33}$ through $\alpha^{51}=1$ which is $19$ elements and so the BCH bound on the minimum distance is $20$; the actual minimum distance is $24$ according to the tables in Peterson and Weldon's Error-Correcting Codes. Standard decoding algorithms (they will operate over $\mathbb F_{2^8}$) for BCH codes can be used to decode this code to correct up to 10 errors. However, as Jyrki's comment below points out, the code is very small and a brute-force approach (compare the received word to all $256$ codewords and pick the closest) might well have comparable or even smaller complexity, as well as allowing for the correction of more errors than the BCH decoder alternative.