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

hammgen

ハミング符号のパリティ チェック行列と生成行列の生成

構文

h = hammgen(m)
h = hammgen(m,pol)
[h,g] = hammgen(...)
[h,g,n,k] = hammgen(...)

説明

すべての構文に対して、符号語長は n です。nm を 2 以上の正の整数とした場合に形式 2m – 1 をもちます。メッセージ長 k は形式 nm をもちます。

h = hammgen(m) は、符号語長が n = 2^m-1 であるハミング符号の mn 列のパリティ チェック行列を生成します。入力 m は 2 以上の正の整数です。コードのメッセージ長は nm です。ハミング符号の生成に使用されるバイナリ原始多項式は、gfprimdf(m) で表される GF(2^m) の既定の原始多項式です。

h = hammgen(m,pol) は、符号語長が n = 2^m-1 であるハミング符号の mn 列のパリティ チェック行列を生成します。入力 m は 2 以上の正の整数です。コードのメッセージ長は、nm です。pol は、ハミング符号生成に使用される GF(2^m) のバイナリ原始多項式の係数を昇べきの順に与える行ベクトルです。あるいは、pol多項式の文字ベクトルとして指定することもできます。hammgen は、pol が実際には原始多項式でない多項式を表現している場合にエラーを生成します。

[h,g] = hammgen(...) は、パリティ チェック行列 h に対応する k 行 n 列の生成行列 g を生成することを除き、h = hammgen(...) と同じです。メッセージ長 k は、n-m または 2^m-1-m に等しくなければなりません。

[h,g,n,k] = hammgen(...) は、符号語長 n とメッセージ長 k も返すこと以外は、[h,g] = hammgen(...) と同じです。

メモ

m の値が 25 よりも小さく原始多項式が GF(2^m) の既定の原始多項式の場合、構文 hammgen(m) は構文 hammgen(m,pol) よりも高速になる可能性が高くなります。

すべて折りたたむ

与えられた符号語長に応じて、ハミング符号行列を生成します。

m=3 のハミング符号に対するパリティ チェック行列 h、生成行列 g、符号語長 n およびメッセージ長 k を生成します。

[h,g,n,k] = hammgen(3)
h = 3×7

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

g = 4×7

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

n = 7
k = 4

原始多項式 D4+D+1D4+D3+1 に対する m=4 のパリティ チェック行列を生成します。

h1 = hammgen(4,'D^4+D+1');
h2 = hammgen(4,'D^4+D^3+1');

組み込まれている 4 行 4 列の単位行列 (h1h2 両方の左端の列) を削除し、2 つの行列が異なることを確認します。

h1(:,5:end)
ans = 4×11

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

h2(:,5:end)
ans = 4×11

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

アルゴリズム

一度に 1 つの m-tuple を処理する gftuple とは異なり、hammgen は 0 ~ 2^m-1 のシーケンス全体を生成します。計算アルゴリズムは、あらかじめ計算されたすべての値を使用して計算結果を生成します。

R2006a より前に導入