おしょうしな日記 Thanks 101

科学・技術をわかりやすい言葉で解説。「おしょうしな」とは、山形おきたま弁で「ありがとう」の意味。

ハミング符号の原理(2)

2008-12-22 21:33:23 | 科学・技術
【表1:パリティ生成表】

    (1**) (*1*) (**1)
a 011     a   a
b 101 b       b
c 110 c   c
d 111 d   d   d
--------------------------
    p1   p2   p3

上記表1において、a、b、c、d は、情報ビットの4ビット。
情報ビットは、それぞれ、右のアドレス(011番地など)に書き込まれる。

(1**) は、最上位ビットが 1 であるアドレス。* は任意の数字。
(1**) に該当するアドレス 101、110、110番地に記憶される情報ビット b,c,d に基づいて検査ビット(パリティビット) p1 を作成。p2、p3 についても同様に作成。

表1の a、b、c、d に 1 又は 0 の数値を入れて、縦に加算して、p1、p2、p3 を求めることができます。

数式で書くと次のとおり。
p1 =  b+c+d
p2 = a +c+d
p3 = a+b +d   (記号 + は、EXOR、排他的論理和を示す。)

この計算で求めたパリティビット p1,p2,p3 をそれぞれメモリのアドレス 100、010、001番地に記憶。

【表2:シンドローム生成表】

      (1**) (*1*) (**1)
a  011      a   a
b  101  b       b
c  110  c   c
d  111  d   d   d
p1 100  p1
p2 010     p2
p3 001         p3
--------------------------
      s1   s2   s3 (←書込み時は、0 0 0 になるように、p1,p2,p3 を定めた)

読み出しデータ(a,b,c,d, p1,p2,p3)の数値を表2に入れて、各列ごとに縦に足し算(モジュロ2加算、2を法とする加算)をして、(s1,s2,s3)求めることができます。

数式は、次のとおり。
s1 =  b+c+d+p1
s2 = a +c+d  +p2
s3 = a+b +d   +p3

【表3:シンドローム表】

      s1   s2   s3
a  011  0    1   1
b  101  1    0   1
c  110  1    1    0
d  111  1    1   1
p1 100  1   0   0
p2 010  0   1   0
p3 001  0   0   1
エラー無し 0   0   0

このように、シンドロームとエラービット(反転ビット)のアドレスが同じになるのが、特徴です。

詳しい解説は、下記を参照。
ハミング符号の原理(1)
ハミング符号の原理(2)
ハミング符号の原理(3)
ハミング符号の原理(4) -拡大ハミング符号-
ハミング符号の原理(5) -グレイ・ハミング符号-
ハミング符号の原理(6) -巡回ハミング符号-

モジュロ2演算


最新の画像もっと見る

コメントを投稿