Main Content

gfdeconv

ガロア体上の多項式を除算

説明

[q,r] = gfdeconv(b,a) は、GF(2) 多項式の係数を昇べきの順に指定する行ベクトルとして、商 q と剰余 r を返します。返されるベクトルは、ba で除算した結果です。ab、および q は GF(2) 内にあります。

詳細については、ヒントを参照してください。

[q,r] = gfdeconv(b,a,p) は、2 つの GF(p) 多項式を除算します。ここで、p は素数です。ba、および q は同じガロア体にあります。baq、および r は、昇べきの順の係数をもつ多項式です。各係数の範囲は、[0, p–1] です。

[q,r] = gfdeconv(b,a,field) は、2 つの GF(pm) 多項式を除算します。ここで、field は GF(pm) のすべての要素の m 組を含む行列です。p は素数、m は正の整数です。ba、および q は同じガロア体にあります。

この構文では、各係数は指数形式で指定されます。具体的には、[-Inf, 0, 1, 2, ...] の形式です。指数形式の要素は、GF(pm) の原始元 α に対応する field 要素 [0, 1, α, α2, ...] を表します。

すべて折りたたむ

ガロア体 GF(3) で、x+x3+x41+x で 3 回除算します。多項式を行ベクトル、文字ベクトル、および string として表します。

p = 3;

多項式を行ベクトルを使用して表し、GF(3) 内で除算します。

b = [0 1 0 1 1];
a = [1 1];
[q_rv,r_rv] = gfdeconv(b,a,p)
q_rv = 1×4

     1     0     0     1

r_rv = 2

出力を確認するために、元のガロア体の多項式を、商と除数の積に剰余を加算した結果と比較します。

bnew = gfadd(gfconv(q_rv,a,p),r_rv,p);
isequal(b,bnew)
ans = logical
   1

多項式を文字ベクトルを使用して表し、GF(3) 内で除算します。

b = 'x + x^3 + x^4';
a = '1 + x';
[q_cv,r_cv] = gfdeconv(b,a,p)
q_cv = 1×4

     1     0     0     1

r_cv = 2

多項式を string を使用して表し、GF(3) 内で除算します。

b = "x + x^3 + x^4";
a = "1 + x";
[q_s,r_s] = gfdeconv(b,a,p)
q_s = 1×4

     1     0     0     1

r_s = 2

関数gfprettyを使用して、剰余のない結果を多項式型で表示します。

gfpretty(q_s)
 
                                         3
                                    1 + X 

ガロア体 GF(3) で、xk-1 (k1+x2 により割り切れる [2, 8] の範囲) の形式の多項式を出力します。最小次数 2 の GF(p) 上の既約多項式は、pm-1 よりも小さい正の整数 k に対して -1 +xk を割り切れない場合に限り、原始多項式です。詳細については、関数 gfprimck を参照してください

GF(3) 上の 1+x2 の既約性は、出力である多項式と共に、1+x2 が GF(32) に対する原始多項式ではないことを示しています。

p = 3; m = 2;
a = [1 0 1]; % 1+x^2
for ii = 2:p^m-1
   b = gfrepcov(ii); % x^ii
   b(1) = p-1; % -1+x^ii
   [quot,remd] = gfdeconv(b,a,p);
   % Display -1+x^ii if a divides it evenly.
   if remd==0
      multiple{ii}=b;
      gfpretty(b)
   end
end
 
                                         4
                                    2 + X 
 
                                         8
                                    2 + X 

入力引数

すべて折りたたむ

ガロア体の多項式。行ベクトル、文字ベクトル、または string として指定します。b は、Communications Toolbox での多項式の表現または数値ベクトルのいずれかにできます。

ab は、両方とも GF(p) 多項式または GF(pm) 多項式でなければなりません。ここで、p は素数です。p の値は、含まれている場合は指定された値、省略されている場合は 2 になり、field が指定されている場合は暗黙的に決まります。

例: '1 + x' は、文字ベクトルとして表された GF(24) の多項式です。

データ型: double | char | string

ガロア体の多項式。行ベクトル、文字ベクトル、または string として指定します。a は、Communications Toolbox での多項式の表現または数値ベクトルのいずれかにできます。

ab は、両方とも GF(p) 多項式または GF(pm) 多項式でなければなりません。ここで、p は素数です。p の値は、含まれている場合は指定された値、省略されている場合は 2 になり、field が指定されている場合は暗黙的に決まります。

例: [1 2 3 4] は、行ベクトルとして表された GF(5) の多項式 1+2x+3x2+4x3 です。

データ型: double | char | string

素数。素数として指定します。

データ型: double

GF(pm) のすべての要素の m 組。行列として指定します。field は、同じ原始元に対応して配置された GF(pm) のすべての要素をリストする行列です。GF(pm) のすべての要素の m 組を生成するには、次を使用します。

field =gftuple([-1:p^m-2]',m,p)
指数形式で指定された係数は、GF(pm) の体の元を表します。これらの形式の説明は、ガロア体の元の表現を参照してください。

データ型: double

出力引数

すべて折りたたむ

ガロア体の多項式。昇べきの順に並べた多項式の係数の行ベクトルとして返されます。qba で除算した商で、入力多項式と同じガロア体にあります。

除算の剰余。昇べきの順に並べた多項式の係数のスカラーまたは行ベクトルとして返されます。rba で除算した剰余です。

ヒント

  • 関数 gfdeconv は、GF(pm) の計算を行います。ここで、p は素数、m は正の整数です。この関数は、ガロア体上の多項式を除算します。GF(2m) で実行するには、ガロア配列に対して gf オブジェクトの関数 deconv を使用します。詳細については、多項式の乗算と除算を参照してください。

  • ガロア体の要素を除算するために、gfdeconv の代わりに gfdiv を使用することもできます。代数的には、ガロア体上の多項式の除算は、多項式の係数を含むベクトルの逆畳み込みと等価です。この逆畳み込み操作では、同じガロア体上の演算が使用されます。

バージョン履歴

R2006a より前に導入