at most minimal polynomials for odd indices each of degree at most . A BCH code has minimal Hamming distance at least . Suppose that is a code word with fewer than non-zero terms. Then Recall that are roots of hence of . This implies that satisfy the following equations, for each : In matrix form, we have The determinant of this matrix equals The matrix is seen to be a Vandermonde matrix, and its determinant is which is non-zero. It therefore follows that hence A BCH code is cyclic. A polynomial code of length is cyclic if and only if its generator polynomial divides Since is the minimal polynomial with roots it suffices to check that each of is a root of This follows immediately from the fact that is, by definition, an th root of unity. Encoding Because any polynomial that is a multiple of the generator polynomial is a valid BCH codeword, BCH encoding is merely the process of finding some polynomial that has the generator as a factor. The BCH code itself is not prescriptive about the meaning of the coefficients of the polynomial; conceptually, a BCH decoding algorithm's sole concern is to find the valid codeword with the minimal Hamming distance to the received codeword. Therefore, the BCH code may be implemented either as a systematic code or not, depending on how the implementor chooses to embed the message in the encoded polynomial. Non-systematic encoding: The message as a factor The most straightforward way to find a polynomial that is a multiple of the generator is to compute the product of some arbitrary polynomial and the generator. In this case, the arbitrary polynomial can be chosen using the symbols of the message as coefficients. As an example, consider the generator polynomial , chosen for use in the (31, 21) binary BCH code used by POCSAG and others. To encode the 21-bit message {101101110111101111101}, we first represent it as a polynomial over : Then, compute (also over ): Thus, the transmitted codeword is {1100111010010111101011101110101}. The receiver can use these bits as coefficients in and, after error-correction to ensure a valid codeword, can recompute Systematic encoding: The message as a prefix A systematic code is one in which the message appears verbatim somewhere within the codeword. Therefore, systematic BCH encoding involves first embedding the message polynomial within the codeword polynomial, and then adjusting the coefficients of the