応用情報技術者 2012年 秋期 午前2 問03
問題文
4ビットから成る情報ビットに対して、
を満たす冗長ビットを付加した符号を送信する。
受信符号が、送信符号と高々1ビットしか異ならないとき、
がそれぞれ0になるかどうかによって、正しい情報ビットを求めることが可能である。
であるとき、正しい情報ビットはどれか。ここで、は、を割った余りを表す。
選択肢
ア:0100
イ:1000
ウ:1100
エ:1101(正解)
🔒 解説は解答すると表示されます
ハミング符号のシンドローム【午前2解説】
正解の理由
受信符号 に対して与えられた3つのパリティ検査式を評価すると、シンドロームが になります。このシンドロームは「どの位置が誤っているか」を示す列ベクトルと一致し、その結果ビット4が誤っていることが分かります。ビット4を反転すると送信符号は となり、情報ビット は になります。よって選択肢エが正しい選択です。
解法ステップ
- 受信ビットを確認する: 。
- 各パリティ検査式を受信ビットで評価してシンドロームを求める。
- よって 。
- パリティ検査式の係数から各ビット位置 に対応する列ベクトル(パリティ行列の列)を作る。各列は「その位置のビットが各検査式に含まれるか」を示す。
- 列1 = [1,1,0], 列2 = [1,1,1], 列3 = [1,0,1], 列4 = [0,1,1], 列5 = [1,0,0], 列6 = [0,1,0], 列7 = [0,0,1]
- シンドローム と一致する列を探すと列4 = [0,1,1] が一致する ⇒ 誤りは位置4。
- 受信ビットの位置4を反転する:。送信符号は 。情報ビット 。
選択肢別の誤答解説
- ア: 0100
もし元の情報が 0100 であれば送信符号のビット列は異なり、今回のシンドロームからは位置4だけの誤りでは説明できません。具体的には今回のシンドロームは位置4の誤りを指し示すため、情報が0100になるためのビット反転は整合しません。 - イ: 1000
同様に、1000 を情報とする送信符号と受信符号との差は単一ビットの反転で説明できない(位置の不一致)ため不正解です。 - ウ: 1100
1100 の場合は位置4が0であるが、今回の解析で位置4を反転すると情報は1101になり、1100 とは一致しません。したがって不正解です。 - エ: 1101
上記手順どおり誤りが位置4であるため、位置4を反転すると情報は 1101 になり、選択肢エが整合します(正解)。
(各誤答を示すために送信符号全体を再構成して検証することもできますが、シンドローム照合だけで単一誤り位置は一意に決定できます。)
よくある誤解
- シンドロームを「7進数」など別の基数で解釈する誤り。シンドロームはパリティ検査の結果を並べた二値ベクトルであり、基数の話ではありません。正しくは各パリティ検査式に対応するビット順での列ベクトルとして扱い、パリティ行列の列と比較します。
- ビット順の取り扱いミス。どの検査式が のどれに対応するかを明確にしないまま「逆順で解釈」すると誤った誤り位置を得ます。必ず問題で与えられた検査式の順序に従ってシンドロームを作ること。
- 「シンドロームが0なら必ず正しい」と考える誤解。シンドロームが なら単一ビット誤りはないが、複数ビット誤りや別の伝送障害が存在する可能性は残ります(本問は「高々1ビット」前提)。
補足コラム
本問はハミング系の線形符号(7,4符号)に基づく典型的なシンドロームデコーディング問題です。一般に符号のパリティ検査行列 を使うと、受信ベクトル に対するシンドローム (演算はGF(2))は誤りパターンの線形結合として表されます。単一誤りの場合、 は誤った位置に対応する の列そのものになるため、一致する列を見つけるだけで誤り位置が特定できます。これが「シンドローム照合」による単一誤り訂正の原理です。
FAQ
Q1. シンドロームが (0,0,0) だったらどうする?
A1. 単一ビット誤りは起きていないと判断しますが、複数ビット誤りや検査式の設定ミスの可能性は残ります。本問題の前提では「高々1ビット」なので (0,0,0) ならそのまま受信ビットが正しいと見做します。
A1. 単一ビット誤りは起きていないと判断しますが、複数ビット誤りや検査式の設定ミスの可能性は残ります。本問題の前提では「高々1ビット」なので (0,0,0) ならそのまま受信ビットが正しいと見做します。
Q2. シンドロームを二進数にしてその数値を位置とみなしてよいか?
A2. 問題ごとにパリティ検査式の割り当て方が異なるため、暗黙に「二進数の数値=位置」になるとは限りません。今回は列ベクトル [s1,s2,s3] が位置4の列と一致したため位置4と判断しました。一般には「H の列と比較する」方法が確実です。
A2. 問題ごとにパリティ検査式の割り当て方が異なるため、暗黙に「二進数の数値=位置」になるとは限りません。今回は列ベクトル [s1,s2,s3] が位置4の列と一致したため位置4と判断しました。一般には「H の列と比較する」方法が確実です。
Q3. 複数ビット誤りは検出・訂正できるか?
A3. (7,4) の標準ハミング符号は単一ビット誤りの検出と訂正が可能ですが、2ビット以上の誤りは必ず訂正できるわけではなく、誤検出や誤訂正に至る可能性があります。
A3. (7,4) の標準ハミング符号は単一ビット誤りの検出と訂正が可能ですが、2ビット以上の誤りは必ず訂正できるわけではなく、誤検出や誤訂正に至る可能性があります。
関連キーワード: ハミング符号、シンドローム、パリティ検査行列、単一誤り訂正、符号理論

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

