Main Content

cyclgen

巡回符号のパリティ チェック行列と生成行列の生成

構文

h = cyclgen(n,pol)
h = cyclgen(n,pol,opt)
[h,g] = cyclgen(...)
[h,g,k] = cyclgen(...)

説明

すべての構文に対して、コードワード長は n でメッセージ長は k です。多項式は次数-(n-k) を x^n-1 で除算したものの場合にのみ、コードワード長 n、メッセージ長 k の巡回符号を生成できます (2 進体 GF(2) において、x^n-1 は x^n+1 と同じです)。これは、kn から生成多項式の次数を引いたものと等しいことを意味します。

h = cyclgen(n,pol) は、コードワード長 n をもつ組織バイナリ巡回符号に対して (n-k) 行 n 列のパリティ チェック行列を生成します。行ベクトル pol は、次数-(n-k) の生成多項式のバイナリ係数を昇べきの順に与えます。あるいは、pol を多項式の文字ベクトルとして指定することもできます。詳細については、Communications Toolbox での多項式の表現を参照してください。

h = cyclgen(n,pol,opt) は、引数 opt が行列が組織コードと非組織コードのどちらに対応するかを決定すること以外は、上記の構文と同じです。opt の値は、'system' および 'nonsys' です。

[h,g] = cyclgen(...) は、パリティ チェック行列 h に対応する kn 列の生成行列 g を生成することを除き、h = cyclgen(...) と同じです。

[h,g,k] = cyclgen(...) はメッセージ長 k も返すことを除き、[h,g] = cyclgen(...) と同じです。

すべて折りたたむ

コードワード長 7 とメッセージ長 4 をもつバイナリ巡回符号に対するパリティ チェック行列と生成行列を作成します。

cyclpoly を使用して、生成多項式を作成します。

pol = cyclpoly(7,4);

パリティ チェック行列と生成行列を作成します。パリティ チェック行列 parmat では、3 行 3 列の単位行列が左端の列に組み込まれています。

[parmat,genmat,k] = cyclgen(7,pol)
parmat = 3×7

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

genmat = 4×7

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

k = 4

内部の符号が組織的ではないパリティ チェック行列を作成します。行列 parmatn には、3 行 3 列の単位行列は組み込まれていません。

parmatn = cyclgen(7,pol,'nonsys')
parmatn = 3×7

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

(7,3) バイナリ巡回符号に対するパリティ チェック行列と生成行列を作成します。これは組織的符号であるため、parmat2 の左端の列に 4 行 4 列の単位行列があります。

parmat2 = cyclgen(7,'1 + x^2 + x^3 + x^4')
parmat2 = 4×7

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

バージョン履歴

R2006a より前に導入