ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

rsgenpoly

リード・ソロモン コードの生成多項式

構文

genpoly = rsgenpoly(n,k)
genpoly = rsgenpoly(n,k,prim_poly)
genpoly = rsgenpoly(n,k,prim_poly,b)
[genpoly,t] = rsgenpoly(...)

説明

genpoly = rsgenpoly(n,k) は、リード・ソロモン コードの狭義の生成多項式を返します。このコードの符号語長は n でメッセージ長は k です。符号語長 n は、3から 16 までのある整数 m に対し 2m-1 の形式でなければなりません。

また、n-k は偶数の整数でなければなりません。出力 genpoly は生成多項式の係数を降べきの順に並べたガロア行ベクトルです。狭義の生成多項式は (X - Alpha1)(X - Alpha2)...(X - Alpha2t) です。ここで各項は以下のとおりです。

  • Alpha は体 GF(n+1) の既定の原始多項式の根を表します。

  • t はコードの誤り訂正能力 (n-k)/2 を表します。

genpoly = rsgenpoly(n,k,prim_poly) は、上記構文と基本的に同じですが、prim_poly が Alpha を根としてもつ GF(n+1) の原始多項式を指定する点が異なります。prim_poly は、バイナリ表現が原始多項式の係数である整数です。既定の原始多項式 GF(n+1) を使用するには、prim_poly[] に設定します。

genpoly = rsgenpoly(n,k,prim_poly,b) は生成多項式 (X - Alphab)(X - Alphab+1)...(X - Alphab+2t-1) を返します。ここで各項は以下のとおりです。

  • b は整数値です。

  • Alpha は prim_poly の根です。

  • t はコードの誤り訂正能力 (n-k)/2 です。

[genpoly,t] = rsgenpoly(...) は、コードの誤り訂正能力である t を返します。

下記の例は、[7,3] リード・ソロモン コードに対する生成多項式を表すガロア行ベクトルを作成します。ベクトル g および g2 は、異なる原始元 A については、ともに狭義の生成多項式を表します。より具体的には g2 は、A が GF(8) の既定原始多項式 D3 + D + 1 ではなく、原始多項式 D3 + D2 + 1 の根となるように定義されます。ベクトル g3 は生成多項式 (X - A3)(X - A4)(X - A5)(X - A6) を表します。ここで、A は GF(8) の D3 + D2 + 1 の根です。

g = rsgenpoly(7,3)
g2 = rsgenpoly(7,3,13) % Use nondefault primitive polynomial.
g3 = rsgenpoly(7,3,13,3) % Use b = 3.

出力は以下のようになります。

g = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
     1     3     1     2     3

 
g2 = GF(2^3) array. Primitive polynomial = D^3+D^2+1 (13 decimal)
 
Array elements = 
 
     1     4     5     1     5

 
g3 = GF(2^3) array. Primitive polynomial = D^3+D^2+1 (13 decimal)
 
Array elements = 
 
     1     7     1     6     7

別の例として、下記のコマンドは [15,11] リード・ソロモン コードの既定の狭義の生成多項式が X4 + (A3 + A2 + 1)X3 + (A3 + A2)X2 + A3X + (A2 + A + 1) であることを示します。ここで、A は GF(16) は既定の原始多項式の根です。

gp = rsgenpoly(15,11)
gp = GF(2^4) array. Primitive polynomial = D^4+D+1 (19 decimal)
 
Array elements = 
 
     1    13    12     8     7

その他の例については、「リード・ソロモン コードのパラメーター」を参照してください。

制限

n および k の差は偶数の整数でなければなりません。n の最大許容値は 65535 です。

参考

| |

この情報は役に立ちましたか?