ハミング符号による誤り訂正と冗長ビットのパリティ検査

正解は「ア」です。 ハミング符号における冗長ビット(パリティ検査ビット)の検証式は次のとおりです。 ・p1検査: x1 ⊕ x3 ⊕ x4 ⊕ p1 = 0 ・p2検査: x1 ⊕ x2 ⊕ x4 ⊕ p2 = 0 ・p3検査: x1 ⊕ x2 ⊕ x3 ⊕ p3 = 0 受信したハミング符号「1110011」(x1=1, x2=1, x3=1, p3=0, x4=0, p2=1, p1=1)の各パリティビットを検証します。 ・p1: 1 ⊕ 1 ⊕ 0 ⊕ 1 = 1 ≠ 0(誤り検知) ・p2: 1 ⊕ 1 ⊕ 0 ⊕ 1 = 1 ≠ 0(誤り検知) ・p3: 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1 ≠ 0(誤り検知) 3つのパリティ検査式のすべてで誤りが検知されたため、3つの式すべてに含まれているデータビット x1 に誤り(反転)が存在することが分かります。 したがって、x1 を 1 から 0 に反転・訂正すると、正しいハミング符号は「0110011」(選択肢ア)となります。 1010011:x2 のみを反転した値であり、p1検査のエラーを解消できないため不適切です。 1100011:x3 のみを反転した値であり、p2検査のエラーを解消できないため不適切です。 1110111:x4 のみを反転した値であり、p3検査のエラーを解消できないため不適切です。

ハミング符号とは,データに冗長ビットを付加して,1ビットの誤りを訂正できるようにしたものである。ここでは,X1X_1,X2X_2,X3X_3,X4X_4の4ビットから成るデータに,3ビットの冗長ビットP3P_3,P2P_2,P1P_1を付加したハミング符号X1X2X3P3X4P2P1X_1X_2X_3P_3X_4P_2P_1を考える。付加したビットP1P_1,P2P_2,P3P_3は,それぞれ

X1⊕X3⊕X4⊕P1=0X_1 \oplus X_3 \oplus X_4 \oplus P_1 = 0

X1⊕X2⊕X4⊕P2=0X_1 \oplus X_2 \oplus X_4 \oplus P_2 = 0

X1⊕X2⊕X3⊕P3=0X_1 \oplus X_2 \oplus X_3 \oplus P_3 = 0

となるように決める。ここで,⊕\oplusは排他的論理和を表す。

ハミング符号 1110011 には1ビットの誤りが存在する。誤りビットを訂正したハミング符号はどれか。

出典令和4年度 春期 高度情報処理技術者試験 午前Ⅰ
ア
0110011
イ
1010011
ウ
1100011
エ
1110111