k = unencoded message length
n = encoded message length
m = symbol size in bits
d = hamming distance
t = number of correctable symbols
cylclic codes = any circular bit-shif of a codeword is another valid codeword
liner codes = any sum of two valid codewords is is another valid codeword
cyclic codes are represented as polynomials, and for the calculations we need to do, we start with writing the message as a polynomial.
convertion from message space to codeword space is achieved by:
multiplying the message polynomial by a special generator polynomial
online BCH code generator http://www.ece.unb.ca/cgi-bin/tervo/bch.pl
https://www.thonky.com/qr-code-tutorial/format-version-information