Manipulating Galois Variables

来源:互联网 发布:有组织犯罪知乎 编辑:程序博客网 时间:2024/06/05 17:29
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, enteredit 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 theisa function. An illustration is below.

  • mlvar = eye(3);gfvar = gf(mlvar,3);no = isa(mlvar,'gf'); % False because mlvar is not a Galois arrayyes = 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 ValueArray elements.xMATLAB array of type uint16 that contains the data values from the Galois arrayField order.mInteger of type double that indicates that the Galois array is in GF(2^m)Primitive polynomial.prim_polyInteger of type uint32 that represents the primitive polynomial. The representation is similar to the description inHow Integers Correspond to Galois Field Elements. 
    Note   If the output value is an integer data type and you want to convert it todouble for later manipulation, use the double function.

The code below illustrates the use of these suffixes. The definition ofempr 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.
0 0
原创粉丝点击