応用情報技術者 2022年 春期 午前2 問04
問題文
ハミング符号とは、データに冗長ビットを付加して、1ビットの誤りを訂正できるようにしたものである。ここでは、、、、の4ビットから成るデータに、3ビットの冗長ビット、、を付加したハミング符号を考える。
付加ビット、、は、それぞれ
となるように決める。ここで、⊕は排他的論理和を表す。
ハミング符号1110011には1ビットの誤りが存在する。誤りビットを訂正したハミング符号はどれか。
選択肢
ア:0110011(正解)
イ:1010011
ウ:1100011
エ:1110111
🔒 解説は解答すると表示されます
ハミング符号の誤り訂正【午前2解説】
正解の理由
受信符号 1110011 に対して、与えられた3つのパリティ検査式を受信ビットで評価すると、各検査の結果(シンドローム)が 検査 , 検査 , 検査 となります。これを( の順に)シンドローム とすると、誤り位置は (最初のビット)を示します。したがって を反転すると訂正後符号は 0110011 となり、これが選択肢の ア に一致します。よって ア が正解です。
解法ステップ
- 受信符号の各ビットに位置番号を割り当てる(コードの並びは )。受信 1110011 なら
- pos1:, pos2:, pos3:, pos4:, pos5:, pos6:, pos7:。
- 各パリティ検査式を受信ビットで評価してシンドロームを求める。
- 検査:
- 計算: → 結果 (不一致)
- 検査:
- 計算: → 結果
- 検査:
- 計算: → 結果
- 検査:
- シンドロームを として、どのビットがその組合せに対応するかを確認する(下記の対応参照)。 は位置1()に対応するため、位置1のビットを反転する。
- 位置1を にすると訂正後符号は 0110011、すなわち選択肢 ア。
対応の導出(簡潔): 各位置がどの検査に含まれるかを列挙すると、誤りがその位置にあるときに該当検査が1となるため、検査の組合せ=位置の識別子になります。
選択肢別の誤答解説
- ア(0110011): 受信 1110011 の位置1を反転した符号。上記のシンドローム と一致するので正しい。
- イ(1010011): 受信から見ると位置2 を反転した結果(pos2: )。位置2 に誤りがある場合のシンドロームは となるため、今回の と不一致で誤り。
- ウ(1100011): 位置3 を反転した結果(pos3: )。位置3 のシンドロームは であり、今回の と不一致。
- エ(1110111): 位置5()を反転した結果(pos5: )。位置5 のシンドロームは であり、今回の と不一致。
(要するに、他の選択肢はそれぞれ別の1ビットを反転した結果であり、実際のシンドロームが指す位置とは合致しないため誤りです)
よくある誤解
- パリティ検査の順序を逆に扱う: の検査結果をどの順序で並べるかで示す二進数が変わり、誤り位置を誤判定することがある。問題でどの検査がどのビットに対応しているかを明確にしてから対応付けすること。
- 計算を省略して「1つだけ違うビットを見つける」だけで終える:実際には各検査式の XOR を具体的に計算し、どの検査が1であるか(シンドローム)を確かめる必要がある。
- パリティビットとデータビットの配置を混同する:問題文の符号配置(ここでは )を読み違えると検査の対象集合がずれ、誤った位置を導いてしまう。
補足コラム
この問題は代表的なハミング符号(7,4)の応用です。一般の考え方は次のとおりです。
- 各パリティ検査は「どの位置を監視しているか」を示す列(列ベクトル)を持ちます。誤りが1ビットであれば、その列ベクトルがシンドロームになります。
- 実務的には送信側で各パリティビットを設定する際、検査式(ここでは 等)を満たすように を決めます。受信側は同じ式に受信ビットを代入してシンドロームを得ます。
- シンドロームが の場合は「誤りなし(または偶数個の誤りで検出できない場合)」を意味し、非ゼロなら単一ビットの位置を指します。
符号化時のパリティビット決定例(参考):
, , (符号化では右辺が0となるようにを選ぶ)
FAQ
Q. シンドロームが だったら必ず誤りはないのですか?
A. 単一ビット誤りであれば は「誤りなし」を意味しますが、2ビット誤りなど特定の複数ビット誤りは検出できない場合があります(Hamming(7,4) は単一誤り訂正・二重誤り検出は保証しない構成もあるため注意)。
A. 単一ビット誤りであれば は「誤りなし」を意味しますが、2ビット誤りなど特定の複数ビット誤りは検出できない場合があります(Hamming(7,4) は単一誤り訂正・二重誤り検出は保証しない構成もあるため注意)。
Q. シンドロームのビット並びはどのように扱えばよいですか?
A. 問題文で各検査式がどのパリティに対応するかが示されているので、その順序に従って のように統一して扱ってください。並びを誤ると位置識別が逆転します。
A. 問題文で各検査式がどのパリティに対応するかが示されているので、その順序に従って のように統一して扱ってください。並びを誤ると位置識別が逆転します。
Q. 今回のような問題で速く解くコツは?
A. 受信ビットを素早く位置ごとに書き出し、各検査式を順に XOR で計算してシンドロームを出す習慣をつけることです。手順化すれば確実かつ速く解けます。
A. 受信ビットを素早く位置ごとに書き出し、各検査式を順に XOR で計算してシンドロームを出す習慣をつけることです。手順化すれば確実かつ速く解けます。
関連キーワード: ハミング符号、シンドローム、パリティ検査、XOR、符号語、誤り訂正、(7,4)符号

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

