応用情報技術者 2024年 春期 午前2 問04
問題文
符号長7ビット、情報ビット数4ビットのハミング符号による誤り訂正の方法を、次のとおりとする。
受信した7ビットの符号語(又は1)に対して
(いずれもmod2での計算)
を計算し、の中に少なくとも一つは0でないものがある場合には、
を求めて、左からビット目を反転することによって誤りを訂正する。
受信した符号語が1000101であった場合、誤り訂正後の符号語はどれか。
選択肢
ア:1000001
イ:1000101
ウ:1001101
エ:1010101(正解)
🔒 解説は解答すると表示されます
ハミング符号の誤り訂正【午前2解説】
正解の理由
受信語 1000101 に対して与えられた式でシンドローム を計算すると、
となり、位置番号
が得られます。これは左から3ビット目に単一ビット誤りがあることを示すので、そのビットを反転すると訂正後の符号語は 1010101 となり、選択肢の中では エ が合致します。
解法ステップ
- 受信ビットを左から と読み取る(ここでは )。
- 式に従ってシンドロームを求める(計算は mod 2):
- シンドロームから誤り位置を求める:
- 左から第3ビットを反転する:
- 受信 1000101 → 1(0→1)0 0101 = 1010101
- よって訂正後の符号語は選択肢 エ に一致する。
選択肢別の誤答解説
- ア: 1000001
これは受信語の第5ビット(左から5番目:1→0)を反転した結果であり、シンドロームが示す第3ビット反転とは異なります。したがって不正解。 - イ: 1000101
受信語そのまま。シンドロームが非ゼロであるため誤りが検出されており、そのままは正しくありません。 - ウ: 1001101
これは左から第4ビットを反転した結果(第4ビット 0→1)であり、正しい訂正位置(第3ビット)とは一致しません。 - エ: 1010101
左から第3ビットを反転した結果で、シンドロームに基づく正しい訂正操作に一致します。したがって正解。
よくある誤解
- 「シンドロームが0でなければ必ず誤訂正される」
→ 誤りです。シンドロームが0でなければ何らかの誤りがあることを示します。ハミング(7,4)は最小ハミング距離が3なので、シンドロームが0になる誤り(検出されない誤り)は重み3以上の誤りに限られ、1ビット・2ビット誤りはシンドローム0にはなりません。 - 「ビット位置の番号付け方向を誤る」
→ 問題ごとに「左から何ビット目」と定義される方向を必ず確認してください。方向を間違えると全く異なる位置を反転してしまいます。
補足コラム
この問題で用いられているハミング(7,4)は、パリティ検査を行う3ビットのシンドロームにより単一ビット誤りを検出・訂正します。与えられた検査式を見ると、パリティビットは通常の配置どおり位置 1, 2, 4 に相当し、それぞれが検査するビット集合は
- 位置1の検査: ()
- 位置2の検査: ()
- 位置4の検査: () となっています。シンドロームのビット列 を二進数と見なすと誤り位置を直接示します(ここでは が最下位ビット扱い)。
FAQ
Q1. シンドロームが0なら「誤りなし」と断定して良いですか?
A1. シンドロームが0なら受信語は符号語(検査式を満たす)であり、1ビット誤りや2ビット誤りがあった場合はハミング(7,4)では検出されます。したがってシンドローム0は「少なくとも1ビット誤りはない」ことを意味します。ただし、重み3以上の誤りが符号語と同値(非零の符号語)である場合には検出されません。
A1. シンドロームが0なら受信語は符号語(検査式を満たす)であり、1ビット誤りや2ビット誤りがあった場合はハミング(7,4)では検出されます。したがってシンドローム0は「少なくとも1ビット誤りはない」ことを意味します。ただし、重み3以上の誤りが符号語と同値(非零の符号語)である場合には検出されません。
Q2. 2ビット誤りが発生した場合にどうなるか?
A2. ハミング(7,4)は最小距離3のコードなので、2ビット誤りは検出されます(シンドロームは非ゼロ)。しかし訂正器は単一ビット誤りを仮定して動作するため、シンドロームに従って1ビットを反転すると誤訂正(間違った符号語に修正される)となる可能性があります。
A2. ハミング(7,4)は最小距離3のコードなので、2ビット誤りは検出されます(シンドロームは非ゼロ)。しかし訂正器は単一ビット誤りを仮定して動作するため、シンドロームに従って1ビットを反転すると誤訂正(間違った符号語に修正される)となる可能性があります。
Q3. シンドロームのビット順はどう扱えば良いですか?
A3. 問題の定義に従って のように係数を付けることで、 を最下位(1の位)として扱います。問題文をよく読んでビット重みの取り方を確認してください。
A3. 問題の定義に従って のように係数を付けることで、 を最下位(1の位)として扱います。問題文をよく読んでビット重みの取り方を確認してください。
関連キーワード: ハミング符号, シンドローム, 単一誤り訂正, 最小ハミング距離, パリティビット

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

