Create Galois field array
x_gf = gf(x,m)
x_gf = gf(x,m,prim_poly)
x_gf = gf(x)
x_gf = gf(x,m)
creates
a Galois field array from the matrix x
. The Galois
field has 2^m
elements, where m
is
an integer between 1 and 16. The elements of x
must
be integers between 0 and 2^m-1
. The output x_gf
is
a variable that MATLAB recognizes as a Galois field array, rather
than an array of integers. As a result, when you manipulate x_gf
using
operators or functions such as +
or det
,
MATLAB works within the Galois field you have specified.
Note:
To learn how to manipulate |
x_gf = gf(x,m,prim_poly)
is
the same as the previous syntax, except it uses the primitive polynomial prim_poly
to
define the field. prim_poly
is a polynomial
character vector or the integer representation of a primitive
polynomial. For example, the number 37 represents the polynomial D^5+D^2+1
because the binary form of 37 is 1 0 0 1 0 1. For more information
about the primitive polynomial, see Specifying the Primitive Polynomial.
x_gf = gf(x)
creates
a GF(2) array from the matrix x
. Each element of x
must
be 0 or 1
.
The table below lists the primitive polynomial that gf
uses
by default for each Galois field GF(2^m
). To use
a different primitive polynomial, specify prim_poly
as
an input argument when you invoke gf
.
m | Default Primitive Polynomial | Integer Representation |
---|---|---|
1 | D + 1 | 3 |
2 | D^2 + D + 1 | 7 |
3 | D^3 + D + 1 | 11 |
4 | D^4 + D + 1 | 19 |
5 | D^5 + D^2 + 1 | 37 |
6 | D^6 + D + 1 | 67 |
7 | D^7 + D^3 + 1 | 137 |
8 | D^8 + D^4 + D^3 + D^2 + 1 | 285 |
9 | D^9 + D^4 + 1 | 529 |
10 | D^10 + D^3 + 1 | 1033 |
11 | D^11 + D^2 + 1 | 2053 |
12 | D^12 + D^6 + D^4 + D + 1 | 4179 |
13 | D^13 + D^4 + D^3 + D + 1 | 8219 |
14 | D^14 + D^10 + D^6 + D + 1 | 17475 |
15 | D^15 + D + 1 | 32771 |
16 | D^16 + D^12 + D^3 + D + 1 | 69643 |