您的位置:首页 > 其它

Manipulating Galois Variables

2016-07-18 16:10 232 查看
Communications Toolbox
 

   

Manipulating Galois Variables

This section describes techniques for manipulating Galois variables or for transferring information between Galois arrays and ordinary MATLAB arrays.

Note   These techniques are particularly relevant if you write M-file functions that process Galois arrays. For an example of this type of usage, enter
edit gf/conv
in the Command Window and examine the first several lines of code in the editor window.
Determining Whether a Variable Is a Galois Array

To find out whether a variable is a Galois array rather than an ordinary MATLAB array, use the
isa
function. An illustration is below.

mlvar = eye(3);
gfvar = gf(mlvar,3);
no = isa(mlvar,'gf'); % False because mlvar is not a Galois array
yes = isa(gfvar,'gf'); % True because gfvar is a Galois array


Extracting Information From a Galois Array

To extract the array elements, field order, or primitive polynomial from a variable that is a Galois array, append a suffix to the name of the variable. The table below lists the exact suffixes, which are independent of
the name of the variable.

InformationSuffixOutput Value
Array elements
.x
MATLAB array of type
uint16
that contains the data values from the Galois array
Field order
.m
Integer of type
double
that indicates that the Galois array is in GF(
2^m
)
Primitive polynomial
.prim_poly
Integer of type
uint32
that represents the primitive polynomial. The representation is similar to the description in

How Integers Correspond to Galois Field Elements.
 
Note   If the output value is an integer data type and you want to convert it to
double
for later manipulation, use the
double
function.
The code below illustrates the use of these suffixes. The definition of
empr
uses a vector of binary coefficients of a polynomial to create a Galois array in an extension field. Another part of the example retrieves the primitive polynomial for the field and converts it to a binary vector representation having the
appropriate number of bits.

% Check that e solves its own minimal polynomial.
e = gf(5,4); % An element of GF(16)
emp = minpol(e); % The minimal polynomial, emp, is in GF(2).
empr = roots(gf(emp.x,e.m)) % Find roots of emp in GF(16).
% Check that the primitive element gf(2,m) is
% really a root of the primitive polynomial for the field.
primpoly_int = double(e.prim_poly);
mval = e.m;
primpoly_vect = gf(de2bi(primpoly_int,mval+1,'left-msb'),mval);
containstwo = roots(primpoly_vect); % Output vector includes 2.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: