下記の検査行列
(1)生成行列
(2)
(3)[1 1 1 1 1 1 0]を受信したときの誤り訂正を実施せよ。
生成行列とは
情報ビットから符号を生成するための行列です。
大前提として、本記事では情報理論の内、符号の誤りを検出する方法の一つを紹介します。
符号とは、情報を表す情報ビットと検査部分を表す検査ビットで分かれています。

検査行列を活用し、誤りを訂正する方法もありますが、本記事では生成行列から誤りを確認する方法を紹介します。
入力符号に生成行列を積算すると、取り得る出力を網羅的に入手できます。取り得る出力どれにも該当しない出力を検出する=誤りであることが分かる大方針の元、説明していきます。
生成行列の求め方
手順1:検査行列 を成分分解する
下記のように分解できます。
検査行列は正方行列ではなく、列の数が行の数より多い行列です。
そのため、行の個数分を単位行列
手順2: を転置する
生成行列
手順1で求めた情報・検査ビット関連行列(転置)をもう一度転置し、行の成分の数だけ単位行列を追加します。
生成する符号の組み合わせを生成行列を用いて求める

入力する符号ベクトルを
求め方の例
例)3行1列ベクトル
生成行列
このとき、(4)式を計算すると
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 1 |
もし、上記の出力以外が出てきたら、それは誤りであることが分かります。
注意点
本問は線形符号であることが前提です。そのため、
線形関数についての詳しい記事は、こちらで説明しています。
解答例
(1)生成行列の求め方
行の個数は3つのため、単位行列は3*3成分である。
一方で、前半の1~4列目の部分は情報・検査ビット関連行列成分。
(2)式より
が得られる。(3)式により、
行の個数が4つのため、単位行列は4*4成分。
(2)符号語の生成
(1)より、行の成分は4つ。よって、入力符号
この時の生成符号は
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 1 | 1 | 1 |
0 | 0 | 1 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 0 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 |
(3)誤り訂正
[1 1 1 1 1 1 0]は、(2)の符号語の一覧表に無いため、誤りである。
最もハミング距離が小さい符号は、[1 1 1 1 1 1 1]のため、これに訂正する。