メインメニューを開く

差分

m
となる。この時 ''e<sub>i</sub>'' ≠ ''e<sub>j</sub>'' であるため、上記の式は検査行列の任意の2つの列の値排他的論理和が出力される。検査行列の定義より列の値は全て相違となるので 2ビット誤りの時も検査行列との積が零ベクトルになることはない。ただし、別の検査行列の値と一致するため誤訂正を起こすことになる。
 
すなわち単純なハミング符号で誤り検出のみを行うと 2ビットの誤りまで検出できる。しかし、1ビット誤り(訂正可能) 2ビット誤り(訂正不可能)であるかを判断する術がないため、この二つの機能を同時に実装することができない。そこでハミング符号に符号語全体の[[パリティビット]]を付加することで 1ビットの誤り訂正と同時に、2ビットまでの誤りの検出を行うことが可能になるこれを'''拡張ハミング符号'''という。
 
符号の生成は単純なハミング符号で生成された符号語の全ビットの排他的論理和を符号語の末尾に追加する。符号化、復号の例で使用した 1 0 1 1 1 0 0 の場合、パリティビットは 0 なので末尾に 0 を加えた 1 0 1 1 1 0 0 '''0''' になる。復号には、以下のような検査行列を用いる。
10,922

回編集