G60超_資格合格体験記!

60代で無資格から資格取得にチャレンジするプログ!

ハミング符号とは?データの誤りを訂正する方法

通信に関する理論は情報処理技術者試験にでることがあります。

データの伝送上の誤りをハミング符号というものを用いて誤りを見つけ訂正します。

数学的な問題となるので解答を出すまでに少しややこしいですが、しっかり覚えて正答がでるようにしたいものです。

さあ、いきましょう!

【総合】

1.ハミング符号

データに冗長ビットを付加して,1ビの誤りを訂正できるようにします。

2.今回の定義

データがX1,X2,X3,X4の4ビットから構成されるとして

かつ、3ビットの冗長ビットP3,P2,P1を付加します。

全体のハミング符号は  X1 X2 X3 P3 X4 P2 P1 となります。

付加ビットP1,P2,P3は,それぞれ

 式① X1 xor X3 xor X4 xor P1 = 0  

 式② X1 xor X2 xor X4 xor P2 = 0  

 式③ X1 xor X2 xor X3 xor P3 = 0

となるように定める。

※xor=排他的論理和

3.問題

ハミング符号 1110011 には1ビットの誤りが存在します。

誤りビットを訂正したハミング符号はどれですか。

 

4.解説

1110011をx1~x4又はP1~P3に左端から当てはめます。

1 1 1 0 0 1 1

↓  ↓ ↓ ↓ ↓ ↓ ↓   

X1 X2  X3  P3 X4 P2 P1

ですので

X1=1、X2=1、X3=1、P3=0、X4=0、P2=1、P1=1

となります。

これを式①②③に代入し検証します。

式① X1 xor X3 xor X4 xor P1 = 0  

 結果 1   xor 1   xor  0  xor 1  =  1 

式② X1 xor X2 xor X4 xor P2 = 0

   結果  1  xor  1  xor  0  xor  1   =  1    

式③ X1 xor X2 xor X3 xor P3 = 0

   結果  1  xor  1  xor  1  xor  0   =  1  

全ての検証結果が1になり、全ての式に共通するのがX1=1なので

X1がビット誤りとなります。

訂正後のハミング符号はX1=1を反転させX1=0とした

0110011となります。

 

どうでしょうか?

説明するつもりで書いてみましたが理解していただけましたでしょうか?

それでは皆さん合格に向けて頑張ってください!