Main Content

gf

説明

x_gf = gf(x) は、行列 x からガロア体 (GF) 配列 GF(2) を作成します。

x_gf = gf(x,m) は、行列 x からガロア体配列を作成します。ガロア体は 2m 個の要素をもち、m は 1 ~ 16 の整数です。

x_gf = gf(x,m,prim_poly) は、原始多項式 prim_poly を使用して行列 x からガロア体配列を作成します。

すべて折りたたむ

01 から成る行列を指定します。

x = [0 1 1; 0 1 0; 1 1 1];

x から GF(2) 配列を作成します。

x_gf = gf(x)
 
x_gf = GF(2) array. 
 
Array elements = 
 
   0   1   1
   0   1   0
   1   1   1

ガロア体の次数を 16 に設定します。ここで、次数は 2m と等しくなります。0 ~ 2m-1 の範囲の要素から成る行列を指定します。ガロア体配列を作成します。

m = 4;
x = [3 2 9; 1 2 1];
y = gf(x,m)
 
y = GF(2^4) array. Primitive polynomial = D^4+D+1 (19 decimal)
 
Array elements = 
 
   3   2   9
   1   2   1

整数のシーケンスを作成します。GF(25) のガロア体配列を作成します。

x = [17 8 11 27];
y = gf(x,5)
 
y = GF(2^5) array. Primitive polynomial = D^5+D^2+1 (37 decimal)
 
Array elements = 
 
   17    8   11   27

GF(25) に対して可能なすべての原始多項式を求めます。

pp = primpoly(5,'all')
 
Primitive polynomial(s) = 
 
D^5+D^2+1
D^5+D^3+1
D^5+D^3+D^2+D^1+1
D^5+D^4+D^2+D^1+1
D^5+D^4+D^3+D^1+1
D^5+D^4+D^3+D^2+1
pp = 6×1

    37
    41
    47
    55
    59
    61

10 進数の 59 相当の原始多項式を使用してガロア体配列を生成します。

z = gf(x,5,'D5+D4+D3+D+1')
 
z = GF(2^5) array. Primitive polynomial = D^5+D^4+D^3+D+1 (59 decimal)
 
Array elements = 
 
   17    8   11   27

関数 genpoly2b を使用して、対応するガロア体配列値と生成多項式の有効性指標を返します。

有効なガロア体配列オブジェクトを作成します。

genpoly = gf([1 1 6],3)
 
genpoly = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   1   1   6
[b,ecode] = genpoly2b(genpoly,3,11)
b = 1
ecode = 1

入力引数

すべて折りたたむ

入力行列。すべての値がゼロ以上である行列として指定します。関数は、この値を使用して GF 配列を作成します。

  • prim_poly 入力引数を指定しない場合、x の各要素は範囲 [0, 2m–1] の整数でなければなりません。

  • prim_poly 入力引数を指定した場合、x の各要素は 0 または 1 でなければなりません。

データ型: double

原始多項式の次数。1 ~ 16 の正の整数として指定します。関数は、この値を使用して GF の要素の個々の値を計算します。

データ型: double

原始多項式。次のオプションのいずれかとして指定します。

  • バイナリ行ベクトル — このベクトルは、prim_poly の係数を昇べきの順に指定します。

  • 文字ベクトルまたは string スカラー — この値は、prim_poly をテキスト表現で定義します。詳細については、多項式の文字ベクトルを参照してください。

  • 正の整数 — この値は、prim_poly を範囲 [(2m + 1), (2m+1 – 1)] で定義します。

prim_poly を指定しない場合に各ガロア体配列 GF(2m) に使用される既定の原始多項式の一覧については、既定の原始多項式を参照してください。

データ型: double | char | string

出力引数

すべて折りたたむ

ガロア体配列。MATLAB が整数の配列ではなくガロア体配列として認識する変数として返されます。結果として、変数を操作すると、MATLAB は変数で指定されるガロア体内で動作します。たとえば、関数logをガロア配列に適用する場合、MATLAB は、実数または複素数の体ではなく、そのガロア体内で対数を計算します。

詳細

すべて折りたたむ

既定の原始多項式

次の表は、各ガロア体配列 GF(2m) に使用される既定の原始多項式をまとめています。異なる原始多項式を使用するには、入力引数として prim_poly を指定します。prim_poly は [(2m + 1), (2m+1 – 1)] の範囲内で、既約多項式を示さなければなりません。詳細については、原始多項式と元の表現を参照してください。

m の値既定の原始多項式整数表現
1D + 13
2D2 + D + 17
3D3 + D + 111
4D4 + D + 119
5D5 + D2 + 137
6D6 + D + 167
7D7 + D3 + 1137
8D8 + D4 + D3 + D2 + 1285
9D9 + D4 + 1529
10D10 + D3 + 11033
11D11 + D2 + 12053
12D12 + D6 + D4 + D + 14179
13D13 + D4 + D3 + D + 18219
14D14 + D10 + D6 + D + 117475
15D15 + D + 132771
16D16 + D12 + D3 + D + 169643

ガロアの計算

次の表にガロア体配列に対してサポートされる演算を示します。

操作説明
+ -ガロア配列の加算と減算
* / \ガロア配列の行列乗算および除算
.* ./ .\ガロア配列の要素単位の乗算および除算
^ガロア配列の行列のべき乗
.^ガロア配列の要素単位のべき乗
' .'ガロア配列の転置
==, ~=ガロア配列の関係演算子
allガロア ベクトルのすべての要素が非ゼロの場合、True になる
anyガロア ベクトルのいずれかの要素が非ゼロの場合、True になる
convガロア ベクトルの畳み込み
convmtxガロア体ベクトルの畳み込み行列
deconv逆畳み込みと多項式の除算
det正方ガロア行列の行列式
dftmtxガロア体の離散フーリエ変換行列
diag対角ガロア行列とガロア行列の対角
fft離散フーリエ変換
filter (gf)ガロア体に対する 1 次元デジタル フィルター
ifft逆離散フーリエ変換
invガロア行列の逆行列
lengthガロア ベクトルの長さ
logガロア体の対数
luガロア配列の LU 分解
minpolガロア要素の最小多項式を求める
mldivideガロア配列の行列左除算 \
polyvalガロア体の多項式を評価
rankガロア配列のランク
reshapeガロア配列を形状変更
rootsガロア体の多項式の根を求める
sizeガロア配列のサイズ
trilガロア配列の下三角部分の抽出
triuガロア配列の上三角部分の抽出

バージョン履歴

R2006a より前に導入