ハミング符号とは,データに冗長ビットを付加して,1ビットの誤りを訂正できるようにしたものである。
ここでは,X_1,X_2,X_3,X_4の4ビットから成るデータに,3ビットの冗長ビットP_3,P_2,P_1を付加したハミング符号X_1X_2X_3P_3X_4P_2P_1を考える。
付加したビットP_1,P_2,P_3は,それぞれ
X_1⊕X_3⊕X_4⊕P_1=0
X_1⊕X_2⊕X_4⊕P_2=0
X_1⊕X_2⊕X_3⊕P_3=0
となるように決める。
ここで,⊕は排他的論理和を表す。
ハミング符号1110011には1ビットの誤りが存在する。
誤りビットを訂正したハミング符号はどれか。
正答1
解説
正解は1です。
ハミング符号では、受信した符号を三つの検査式に代入し、どの式が成り立たないかの組合せから誤りビットの位置を特定します。
受信した1110011は、X_1=1、X_2=1、X_3=1、P_3=0、X_4=0、P_2=1、P_1=1です。
【計算】
1式目はX_1⊕X_3⊕X_4⊕P_1=1⊕1⊕0⊕1=1となり、成り立ちません。
2式目はX_1⊕X_2⊕X_4⊕P_2=1⊕1⊕0⊕1=1となり、成り立ちません。
3式目はX_1⊕X_2⊕X_3⊕P_3=1⊕1⊕1⊕0=1となり、成り立ちません。
三つの式すべてに含まれるビットはX_1だけです。
よって誤りはX_1であり、X_1を1から0に反転すると0110011になります。
【選択肢別解説】
1:○ X_1を反転した0110011です。
代入すると三つの式がすべて0になり、正しい符号であることが確かめられます。
2:× 1010011はX_2を反転したものです。
X_2が誤りなら2式目と3式目だけが不成立になるはずで、1式目も不成立という結果と合いません。
3:× 1100011はX_3を反転したものです。
X_3が誤りなら1式目と3式目だけが不成立になるはずで、結果と合いません。
4:× 1110111はX_4を反転したものです。
X_4が誤りなら1式目と2式目だけが不成立になるはずで、結果と合いません。
【ポイント】
不成立になった式に共通して含まれ、成立した式には含まれないビットが誤りの位置です。
三つとも不成立なら、三つの式すべてに現れるビットを探します。