情報理論

誤り訂正検出の原理と
具体的符号
1
誤り検出・訂正の原理
2
通信路モデルにおける誤り
x  ( x1 , x2 ,
通信路
, xn )
y  ( y1 , y2 ,
 xe
 ( x1  e1 ,
e  (e1, e2 ,
, yn )
, xn  en )
, en )
誤りの混入
3
0110
1010
1110
0010
:符号語
1000
0000
1100
0100
0011
0111
1001
0101
0001
0000
0111
0101
0001
1000
0100
0011
1011
通
信
1101
1010
1110
0110
0010
1111
1100
1011
1001
1101
:受信語
1111
4
前のスライドにおいては、
符号は
C  {0000,0011,0101,0110,1001,1010,1100,1111}
である。
このとき符号語 ci  0000  C を伝送したとき、系列
yを受信したとする。
i  0100  C
このとき、 誤り e  0100 が混入される。
i
しかし、受信語がからは誤りが特定されない。
yi  0100
 0101  0001?
 0110  0010?
 0000  0100?
 1100  1000?
5
誤り空間
ei
ci
yi  c i ei
(mod 2)
は省略する。
h( yi , c i )  h(0, ei )  w(ei )
0ベクトルからのハミン
グ距離を考えると便利
なことが多い。
6
誤り空間例
1ビットの誤りが起こるとする。すなわち、
h(0, ei )  w(ei )  1
の誤り空間を考える。
c  C の誤り空間 E (ci )
このとき、各符号語 i
は以下のように表される。
1
c1  0000
1
E (c1 )  {0000,0001,0010,0100,1000}
(2)
c2  1010
1
E (c2 )  {1010,1011,1000,1110,0010}
(1)
7
練習1
情報ビットが4ビットで、偶数パリティのパリティビットが1
ビットの5ビットの符号空間
を考える。
この符号空間において、以下の符号語に対する1ビット
の誤り空間を求めよ。
C
c1  00000
E1 (c1 )
c2  10001
E1 (c2 )
(1)
(2)
(3)
c3  01010
E (c3 )
c4  10111
E1 (c4 )
(4)
1
8
練習2
情報ビットが3ビットで、偶数パリティのパリティビットが1
ビットの4ビットの符号空間
を考える。
この符号空間において、以下の符号語に対する2ビット
の誤り空間を求めよ。
C
(1)
c1  1111
2
(2)
E (c1 )
c2  1010
2
E (c2 )
9
誤り空間と誤り検出
001
101
100
000
011
010
111
110
001
E (c1 )  {000,001,010,100}
100
000
011
010
c1  000
101
111
110
C  {000, 011,101,110}
1
E (ci )  c j   i  j
1
1ビット誤り検出を可能とする関係式。
10
誤り検出の模式図
ei  s
ej  s
cj
ci
h(ci , c j )
s
ビット誤りを検出するためには次式が成り立つ
必要がある。
i, j h(ci , c j )  s 1
11
誤り空間と誤り訂正
001
101
100
000
011
010
c1  000
111
110
001
101
100
000
011
010
111
110
c2  111
1
E
(c2 )  {111,110,101,011}
E (c1 )  {000,001,010,100}
1
E1 (c1 )  E1 (c2 )  
1ビット誤り訂正を可能とする関係式。
12
誤り訂正の模式図
ej  t
ei  t
cj
ci
h(ci , c j )
t
ビット誤りを訂正するためには次式が成り立つ
必要がある。
i, j h(ci , c j )  2t 1
13
誤り訂正の具体的符号
垂直水平パリティ検査符号
ハミング符号
14
垂直水平パリティ符号
1ビット誤り検出可能な符号であるパリティ検査符号の考
え方に基づいて1ビット誤り訂正可能な符号を構成でき
る。
まず、情報ビット4ビット、冗長ビット5ビットからの9ビットの
垂直水平パリティ符号の構成法を示す。
w  ( w1 , w2 ,
, w9 )
 ( x1 , x2 , x3 , x4 , p1 , p2 , p3 , p4 , p5 )
 ( x , p)
15
情報ビット
列に関する
冗長ビット
u11
u12
r1
u21 u22
c1 c2
r2
s
行に関する
冗長ビット
全体の
冗長ビット
w  (u11, u12 , u21, u22 , r1, r2 , c1, c2 , s)
ただし、冗長ビットは次式で定める。
r2  u21  u22
r1  u11  u12
c1  u11  u21 c2  u12  u22
s  r1  r2  c1  c2  u11  u12  u21  u22
16
垂直水平パリティ符号における誤り訂
正の原理
i
j
列の誤り検出
行の誤り検出
誤っている (i, j ) 要素を
特定→1ビット誤り訂正
17
垂直水平パリティ符号における誤り訂
正能力
2ビット誤りを検出可能であるが、丸
と四角のどちらがあやまりかを判定
できない。
2ビット誤りを検出可能である。行は
特定できるが、どの列がは特定不
能。
2ビット誤りを検出可能である。列は
特定できるが、どの行かは特定不
能。
18
一般的な垂直水平パリティ符号
c
r
r c
r 1
c 1
r c
一般に、情報ビットが
であるとき、
符号ビットを (r  1)  (c  1) として構成できる。
したがって冗長ビットは r  c  1 である。
19
例
w  (u11, u12 , u21, u22 , r1, r2 , c1, c2 , s)
の垂直水平パリティ符号を考える。このとき、次の情報
ビットから垂直水平符号を求めよ。
x  0101  u11u12u21u22
 r1  u11  u12  0  1  1, r2  u21  u22  0  1  1,
c1  u11  u21  0  0  0, r2  u12  u22  1  1  0,
s  u11  u12  u21  u22  0
w  (0,1,0,1,1,1,0,0,0)
20
練習
w  (u11, u12 , u21, u22 , r1, r2 , c1, c2 , s)
の垂直水平パリティ符号を考える。このとき、次の情報
ビットから垂直水平パリティ符号を求めよ。
(1)
x1  0001
(2)
(3)
x2  1001
x3  1101
(4)
x4  1110
21
例
w  (u11, u12 , u21, u22 , r1, r2 , c1, c2 , s)
の垂直水平パリティ符号を考える。このとき、次の符号か
ら誤りを訂正せよ。
w  000111000
e
0 0 1
0 1 1
パリティの検査から、
u21 が誤っていることが判明する。
0 0 0
したがって、正しい符号は以下である。
w  010111000
22
練習
w  (u11, u12 , u21, u22 , r1, r2 , c1, c2 , s)
の垂直水平パリティ符号を考える。このとき、このとき、次
の符号から誤りを訂正せよ。
(1)
(2)
(3)
w  100101011
e
1
w 2  111101101
e
w 3  100110110
e
(4)
w 4  111001010
e
23
ハミング符号
垂直水平パリティ符号より効率的に冗長ビットを作り出す
方法が知られている。
まず、情報ビット4ビット、冗長ビット3ビットからの7ビットのハ
ミング符号の構成法を示す。(これを(7,4)ハミング符号とい
う。)
w  (w1 , w2 ,
, w7 )
 ( x1 , x2 , x3 , x4 , p1 , p2 , p3 )
 ( x, p)
(7, 4) ハミング符号という。
( n, k ) 符号
n : 符号総長
k : 情報ビット長
24
(7,4)ハミング符号
w  (w1 , w2 ,
, w7 )
 ( x1 , x2 , x3 , x4 , p1 , p2 , p3 )
 ( x, p)
冗長ビットを次の規則で定める。
p1  x1  x2  x3
(mod 2) での演算。
(mod 2) は省略する。
p2  x2  x3  x4
p3  x1  x2
 x4
25
検査方程式
w  (w1 , w2 ,
, w7 )  ( x1 , x2 , x3 , x4 , p1 , p2 , p3 )
に対して、冗長ビットの決め方から次の関係式が成り立つ。
 w1  w2  w3  w5  0 ( x1  x2  x3  p1  0)

 w2  w3  w4  w6  0 ( x2  x3  x4  p2  0)
 w  w  w  w  0 ( x  x  x  p  0)
2
4
7
1
2
4
3
 1
この関係式を検査方程式という。誤りが混入しなければ、
検査方程式を満足するはずである。
26
シンドローム
検査方程式から、誤りの位置を特定するための情報を抽
出することができる。受信語が y  ( y1 , y2 , , y7 )
であるとき、受信語から次式で定義される3ビット s1s2 s3
をシンドロームという。
 s1  y1  y2  y3  y5

 s2  y2  y3  y4  y6
s  y  y  y  y
1
2
4
7
 3
受信語の誤り位
置を診断するた
めの情報
検査方程式の右辺で、送信記号 wi
を受信記号 y
に置き換える。
i
27
誤りベクトルとシンドローム
 s1  y1  y2  y3  y5

 s2  y2  y3  y4  y6
s  y  y  y  y
1
2
4
7
 3
通信路により誤りの混入
 s1   w1  e1    w2  e2    w3  e3    w5  e5 

  s2   w2  e2    w3  e3    w4  e4    w6  e6 
 s  w  e   w  e   w  e   w  e 
1
1
2
2
4
4
7
7
 1
 s1  e1  e2  e3  e5

  s2  e2  e3  e4  e6
s  e  e  e  e
 3 1 2 4 7
検査方程式より
28
ハミング符号の誤り訂正原理
7ビットからなる符号には、1ビット誤りベクトルは7個しかない。
正しい場合を含めて8通りを区別できれば良い。
e1 e2
1 0
0 1
0 0
0 0
0 0
0 0
0 0
0 0
e3
0
0
1
0
0
0
0
0
e4
0
0
0
1
0
0
0
0
e5
0
0
0
0
1
0
0
0
e6
0
0
0
0
0
1
0
0
e7
0
0
0
0
0
0
1
0
s1
1
1
1
0
1
0
0
0
s2
0
1
1
1
0
1
0
0
s3
1
1
0
1
0
0
1
0
29
一般のハミング符号
( n, k )
符号長:
情報ビット長:
ハミング符号
n  2 1
m
k  n  m  2 1  m
m
冗長ビット長:
nk  m
シンドローム長:
m
30
例
w  ( x1, x2 , x3 , x4 , p1, p2、, p3次のように冗長ビットを
)
定める(7,4)ハミング符号を考える。
p1  x1  x2  x3
p2  x2  x3  x4
p3  x1  x2  x4
このとき、次の情報ビットに対して符号語を求めよ。
x  0101
p1  x1  x2  x3  0  1  0  1
p2  x2  x3  x4  1  0  1  0
p3  x1  x2  x4  0  1  1  0
 w  ( x, p)  0101100
31
練習
w  ( x1, x2 , x3 , x4 , p1, p、2 , p3 )
に対して、 次のように
冗長ビットを定める(7,4)ハミング符号を考える。
p1  x1  x2  x3
p2  x2  x3  x4
p3  x1  x2  x4
このとき、次の情報ビットに対して符号語を求めよ。
(1)
(3)
x1  0001
x3  1101
(2)
(4)
x2  1001
x4  1110
32
例
w  ( x1, x2 , x3 , x4 , p1, 、
p2 , p3 )
に対して、次のように
冗長ビットを定める(7,4)ハミング符号を考える。
p1  x1  x2  x3
p2  x2  x3  x4
p3  x1  x2  x4
このとき、次の受信語に対して誤り訂正を行え。
y   y1, y2 ,
, y7   0111100
まず、シンドロームを求める。
s1  y1  y2  y3  y5  0  1  1  1  1
s2  y2  y3  y4  y6  1  1  1  0  1
s3  y1  y2  y4  y7  0  1  1  0  0
33
よって、シンドローム s  s1s2 s3  110 より、誤りベクトル
が一意に e  (e1 , e2 ,
, e7 )  0010000 と特定できる。
したがって、次のように誤り訂正できる。
y   y1, y2 ,
, y7   0111100
w  y  e  0111100  0010000
 0101100
34
練習
w  ( x1, x2 , x3 , x4 , p1, 、
p2 , p3 )
に対して、次のように
冗長ビットを定める(7,4)ハミング符号を考える。
p1  x1  x2  x3
p2  x2  x3  x4
p3  x1  x2  x4
このとき、次の受信語に対して誤り訂正を行え。
(1)
y1  1001011
(3)
y3  1101011
(2)
y2  1001001
(4)
y4  0110001
35