Generator polynomial of BCH code
genpoly = bchgenpoly(n,k)
genpoly = bchgenpoly(n,k,prim_poly)
genpoly = bchgenpoly(n,k,prim_poly,outputFormat)
[genpoly,t] = bchgenpoly(...)
genpoly = bchgenpoly(n,k) returns
the narrow-sense generator polynomial of a BCH code with codeword
length n and message length k.
The codeword length n must have the form 2m-1
for some integer m between 3 and 16. The output genpoly is
a Galois row vector that represents the coefficients of the generator
polynomial in order of descending powers. The narrow-sense generator
polynomial is LCM[m_1(x), m_2(x), ..., m_2t(x)], where:
LCM represents the least common multiple,
m_i(x) represents the minimum polynomial corresponding
to αi, α is a root of the default
primitive polynomial for the field GF(n+1),
and t represents the error-correcting capability of the code.
Note
Although the bchgenpoly function performs
intermediate computations in GF(n+1), the final
polynomial has binary coefficients. The output from bchgenpoly is
a Galois vector in GF(2) rather than in GF(n+1).
genpoly = bchgenpoly(n,k,prim_poly) is
the same as the syntax above, except that prim_poly specifies
the primitive polynomial for GF(n+1) that has Alpha
as a root. prim_poly is either a polynomial
character vector or an integer whose binary representation
indicates the coefficients of the primitive polynomial in order of
descending powers. To use the default primitive polynomial for GF(n+1),
set prim_poly to [].
genpoly = bchgenpoly(n,k,prim_poly,outputFormat) is
the same as the previous syntax, except that outputFormat specifies
output data type. The value of outputFormat can
be ‘gf' or 'double' corresponding
to Galois field and double data types respectively. The default value
of outputFormat is 'gf'.
[genpoly,t] = bchgenpoly(...) returns t,
the error-correction capability of the code.
The maximum allowable value of n is 65535.
[1] Peterson, W. Wesley, and E. J. Weldon, Jr., Error-Correcting Codes, 2nd ed., Cambridge, MA, MIT Press, 1972.