Main Content

cyclpoly

バイナリ巡回符号の生成多項式の生成

説明

pol = cyclpoly(N,K) は、コードワード長 N とメッセージ長 K をもつ巡回符号に対する 1 つの自明でない生成多項式を表す行ベクトルを返します。

pol = cyclpoly(N,K,opt) は、コードワード長 N とメッセージ長 K をもつ巡回符号に対する 1 つ以上の自明でない生成多項式を探索します。出力 pol は、多項式の重みを指定する opt の値によって異なります。

すべて折りたたむ

[15,4] 巡回符号の生成多項式を作成します。

入力 'all' を使用して、[15,4] 巡回符号用に考えられるすべての生成多項式を表示します。入力 'max' を使用して、1+x+x2+x3+x5+x7+x8+x11 が、非ゼロ項の数が最大となるような多項式の 1 つであることを示します。

c1 = cyclpoly(15,4,'all')
c1 = 3×12

     1     1     0     0     0     1     1     0     0     0     1     1
     1     0     0     1     1     0     1     0     1     1     1     1
     1     1     1     1     0     1     0     1     1     0     0     1

c2 = cyclpoly(15,4,'max')
c2 = 1×12

     1     1     1     1     0     1     0     1     1     0     0     1

このコマンドは、3 つの非ゼロ項をもつ [15,4] 巡回符号に対する生成多項式がないことを示します。

c3 = cyclpoly(15,4,3)
Warning: No cyclic generator polynomial satisfies the given constraints.
c3 =

     []

入力引数

すべて折りたたむ

コードワード長。正の整数として指定します。

メッセージ長。正の整数として指定します。

重みのオプション。次のように指定します。

  • 'min' — 可能な最小重みをもつ 1 つの生成多項式

  • 'max' — 可能な最大重みをもつ 1 つの生成多項式

  • 'all' — すべての生成多項式

  • 正の整数 — この重みをもつすべての生成多項式

出力引数

すべて折りたたむ

生成多項式の係数。昇べきの順に並べた生成多項式の係数を表すバイナリ値を含む行ベクトルまたは行列として返されます。出力が行列の場合、各行は個々の多項式を表します。

データ型: double

詳細

すべて折りたたむ

生成多項式

生成多項式は、[N,K] 巡回ブロック符号を処理するのに必要なパラメーターです。巡回符号は、多項式が符号化過程を完全に決定できるような代数的性質をもちます。生成多項式は、多項式 xN – 1 を除算する (NK) 次の多項式です。詳細については、線形ブロック符号のパラメーターの設定を参照してください。

アルゴリズム

生成多項式は、(NK) 次の多項式をループ処理し、それらの多項式のうち多項式 xN – 1 を割り切るものを見つけることで求められます。opt を省略した場合、cyclpoly はこの条件を満たす最初に見つかった多項式を返します。opt'min' または 'max' の場合、cyclpoly は、それぞれ可能な最小重みまたは最大重みをもつ生成多項式を返します。opt'all' の場合、cyclpoly は、この条件を満たすものとして見つかったすべての多項式を、バイナリ行ベクトルから成る行列で返します。この行列の各行は、個々の多項式を表します。

バージョン履歴

R2006a より前に導入