Main Content

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 2^{m}-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.