I am trying to decode BCH codes using Peterson (PGZ) algorithm and have run into a problem I've not been able to find listed elsewhere.
I've found choice of polynomial to be important during the process (different irreducible polynomials yield different primitive elements), since I'm dealing with small codes (max 512 data bits, upto 4 errors) this can be resolved by trial and error.
For example, for BCH(15,7,5) the galois field is GF(2^4) and available irreducible polynomials are x^4+x+1, x^4+x^3+1, and x^4+x^3+x^2+x+1 which may or may not result in different primitive elements for the field, and thus the representation of field elements in terms of power of alpha also changes. This leads to different syndromes (again in terms of alpha) which again results in different coefficients of the error locator polynomial.
I have two questions about this decoding procedure:
- Right now I'm using trial and error to find which polynomial to use, is there a way of selecting the correct polynomial(s)? Earlier I was under the impression that the choice of polynomial did not matter.
- Some irreducible polynomials do not create a complete field - there are repeating elements, is this correct behaviour? I was under the impression all irreducible polynomials should give a field of unique elements. For ex, for GF(2^6) the polynomial x^6 + x^4 + x^2 + x + 1 gives 20 unique elements and then starts repeating elements.
Any help is appreaciated. Thanks
I am implementing this in verilog, a table that physically becomes a small ROM on a chip is preferable to larger matrix multiplication circuitry
– Ayush Rawal Dec 24 '24 at 13:13