- property galois.ReedSolomon.is_systematic : bool
Indicates if the code is systematic, meaning the codewords have parity appended to the message.
Examples¶
Construct a non-primitive \(\textrm{RS}(13, 9)\) systematic code over \(\mathrm{GF}(3^3)\).
In [1]: rs = galois.ReedSolomon(13, 9, field=galois.GF(3**3)); rs Out[1]: <Reed-Solomon Code: [13, 9, 5] over GF(3^3)> In [2]: rs.is_systematic Out[2]: True In [3]: rs.G Out[3]: GF([[ 1, 0, 0, 0, 0, 0, 0, 0, 0, 13, 20, 9, 16], [ 0, 1, 0, 0, 0, 0, 0, 0, 0, 14, 12, 7, 6], [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 17, 15, 17, 21], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 12, 25, 19, 13], [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 19, 15, 8, 3], [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 22, 24, 13, 9], [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 10, 9, 18], [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 20, 22, 25, 4], [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 8, 11, 22]], order=3^3)
Construct a non-primitive \(\textrm{RS}(13, 9)\) non-systematic code over \(\mathrm{GF}(3^3)\).
In [4]: rs = galois.ReedSolomon(13, 9, field=galois.GF(3**3), systematic=False); rs Out[4]: <Reed-Solomon Code: [13, 9, 5] over GF(3^3)> In [5]: rs.is_systematic Out[5]: False In [6]: rs.G Out[6]: GF([[ 1, 9, 8, 11, 22, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 1, 9, 8, 11, 22, 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 1, 9, 8, 11, 22, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 1, 9, 8, 11, 22, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 1, 9, 8, 11, 22, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 1, 9, 8, 11, 22, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 1, 9, 8, 11, 22, 0, 0], [ 0, 0, 0, 0, 0, 0, 0, 1, 9, 8, 11, 22, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 8, 11, 22]], order=3^3) In [7]: rs.generator_poly Out[7]: Poly(x^4 + 9x^3 + 8x^2 + 11x + 22, GF(3^3))