-->

CRC calculating and BCH encoding [THEORY]

2019-07-31 20:58发布

问题:

I have question about BCH Encoding. Is BCH Encoding is the same operation like CRC remainder calculation? M(x) mod G(x) = R(x) and R(x) is my BCH code?

回答1:

You are pretty much correct. To be precise, if your generator polynomial is g(x) and your block size is n, then the valid code words are the multiples of g(x) with degree < n.

Lets say you have a message m(x) of degree < k, and g(x) has degree n-k: There are different ways you could turn your message into a unique valid code word. m(x)*g(x) works fine, for example... But we commonly want the code word to start with our actual message, followed by some check bits. In that case, the code word is:

m(x)*x^(n-k) - ( m(x)*x^(n-k) mod g(x) )

Most CRC checks are calculated in exactly this way as well, since CRC codes and BCH codes are both polynomial codes (https://en.wikipedia.org/wiki/Polynomial_code). They just have different generator polynomials.