Transcript pptx
10.誤り検出符号と誤り訂正符号
1
• 誤り検出符号
– パリティ検査符号
• 誤り訂正符号
– 垂直水平パリティ符号
– ハミング符号
2
誤り検出符号
(パリティ検査符号)
3
通信路符号と冗長性
ここからは、通信路符号化において、主に2元符号を考察してい
く。通信路アルファベットを B {0,1} とする。
(定義)情報ビットと検査ビット
通信路符号語は、情報源符号語に加えて意識的に冗長部分
を付加して構成される。情報を表す記号列を情報部分といい、
冗長性を表す記号列を冗長部分という。特に、2元符号の場
合、情報部分を情報ビット、冗長部分を検査ビットという。
4
通信路符号の数学的表現
情報ビ ッ ト
w ( w1 , w2 ,
, wn ) ( x1 ,
nビ ッ ト
冗長ビ ッ ト
, x k , p1 ,
kビ ッ ト
, pnk )
n kビ ッ ト
( x, p)
(通信路)符号語=情報部分+冗長部分
ただし、
x ( x1 , x2 ,
, xk )
p ( p1, p2 ,
, pn k )
1 i k , wi xi B {0,1}
k 1 i n, wi pi k B {0,1}
5
パリティ(遇奇性)
(定義)パリティ
n
符号語 w w1 , , wn B
に対して、次式が
成り立つとき、偶数パリティを持つという。
w1 w2
wn 0
n
wi (mod 2) 0
i 1
また、次式が成り立つとき、奇数パリティを持つという。
w1 w2
wn 1
n
wi (mod 2) 1
i 1
6
例
次の符号が偶数パリティを持つか、奇数パリティを持つ
かを判定せよ。
w ( w1 ,
, wn )
(0, 0,1,1, 0,1, 0,1)
略記法
00110101
w mod 2 4
i
(mod 2) 0
よって、偶数パリティを持つ。
これ以降では、
mod 2
符号に現れる1の
個数が偶数
を省略することもある。
7
練習
次の式を計算せよ。
(1)
1 0 11 0 11
(2)
11 0 0 0 11
(3)
10 10 0 10
(4)
3 4 7 5 8 9 1 (mod 2)
(5)
9 3 6 4 8 7 5 (mod 2)
(6)
5 4 3 8 6 9 2 (mod 2)
8
練習
次の符号が偶数パリティを持つか、奇数パリティを持つ
かを判定せよ。
(1)
(1,1,1,0,1,1,0,1)
(2) (0,1, 0,1,1, 0,1,1)
(3) (0, 0, 0,1,1, 0,1,1)
(4)
10111000
11001100
(6) 01001100
(5)
9
パリティ検査(符号)
1番単純な通信路符号としてパリティ検査について考える。パ
リティ検査は1誤り検出符号になっている。
パリティ検査符号は以下の符号語の形式になる。
w ( x1 , x2 ,
, xn 1 , p )
n 1ビ ッ ト
情報ビット
1 ビッ ト
冗長ピット
これらに関係する概念を順にみていく。
10
パリティ検査(符号)の定義
(定義)パリティ検査(符号)
1ビットの検査ビット(パリティビット) p B を持ち、偶数パリ
ティだけを符号語とするような符号を(偶数)パリティ検査符号と
n 1
いう。情報ビットを x ( x1 , , xn 1 ) B とすると次式が
成り立つ。
w ( x1 ,
x1
, xn 1 , p) B n
xn 1 p 0
p x1
xn 1
偶数パリティ検査では、
情報ビットが偶数パリティを持
てばパリティビットは0で、
奇数パリティを持てばパリティ
ビットは1。
11
例
次の情報源符号語から、偶数パリティ検査符号を構成せよ。
(1)
x1 ( x ,
, x ) (1,0,1,1,1,0,0) 1011100
1
1
1
7
p1 x11 mod 2 4 (mod 2) 0
よって、以下のように通信路符号語が得られる。
w1 ( x11 ,
, x71 , p1 ) (1,0,1,1,1,0,0,0) (1011100,0)
10111000
(2)
x2 ( x12 ,
p x
2
2
1
略記法
, x72 ) (0,1,1,1,1,0,1) 0111101
mod 2 5 (mod 2) 1
よって、以下のように通信路符号語が得られる。
w2 ( x12 ,
, x72 , p2 ) (0,1,1,1,1,0,1,1) (0111101,1)
01111011
12
練習
以下のような情報源記号が与えられているとき、偶数
パリティ検査符号を求めよ。
(4)
x1 (1,1,1, 0,1,1, 0)
x2 (0,1, 0,1,1, 0,1)
x3 (0,0,0,1,1,0,1)
x4 1011100
(5)
x5 1100110
(6)
x6 0100110
(1)
(2)
(3)
13
偶数パリティ符号における符号語
HC (1)
0
HC (2)
00
01
HC (3) 001
000
011
010
1
:符号語
10
11
101
100
111
110
14
HC (4)
0010
0000
1010
0110
1000
1100
0100
0011
0111
1110
1011
1111
0001
0101
1001
1101
:符号語
15
練習
情報ビットが4ビット x B で、パリティビットが1ビット p B
5
の偶数パリティ符号 w B
を考える。この符号語になりえ
るハイパーキューブ HC (5) 上頂点を図示せよ。
4
16
パリティ検査符号の誤り検出原理
性質:パリティ検査符号語間のハミング距離
偶数パリティ検査符号 W において、
各符号語 i, j, i j, wi , wj W
のハミング距離
で以下が成り立つ。
d h ( wi , w j ) 2( s 1)
s 1
証明
各符号語 wi , w j W は全て偶数パリティを持つので、ハ
ミング距離が dh (wi , w j ) 1 となることは無い。また、異
なる符号語では、 dh (wi , w j ) 0 となることも無い。
QED
17
パリティ検査符号の情報伝送速度
情報ビットが n 1 で、検査ビットが1ビットの
n ビットのパリティ検査符号
w ( x1 , x2 ,
, xn 1 , p )
n 1ビ ッ ト
の情報速度
RP
1 ビッ ト
は次式で表わされる。
n 1
RP
[bit / 記号]
n
情報速度=
情報ビット長
符号長
18
誤り訂正符号
19
代表的誤り訂正符号
垂直水平パリティ符号
パリティ検査符号の拡張による誤り訂正符号
ハミング符号
誤りベクトルの考察による誤り訂正符号
20
垂直水平パリティ符号
21
垂直水平パリティ符号
1ビット誤り検出可能な符号であるパリティ検査符号の考
え方を拡張し、1ビット誤り訂正可能な符号を構成できる。
まず、情報ビット4ビット、冗長ビット5ビットからの9ビットの
垂直水平パリティ符号の構成法を示す。
w ( w1 , w2 ,
, w9 )
( x1 , x2 , x3 , x4 , p1 , p2 , p3 , p4 , p5 )
( x , p)
22
情報ビット
列に関する
冗長ビット
x11
x12
r1
x21
c1
x22
c2
r2
p
行に関する
冗長ビット
全体の
冗長ビット
w ( x11 , x12 , x21, x22 , r1, r2 , c1, c2 , p)
ただし、冗長ビットは次式で定める。
r2 x21 x22
r1 x11 x12
c1 x11 x21 c2 x12 x22
p r1 r2 c1 c2 x11 x12 x21 x22
23
垂直水平パリティ符号における誤り訂
正の原理
i
j
列の誤り検出
行の誤り検出
誤っている (i, j ) 要素を
特定→1ビット誤り訂正
24
垂直水平パリティ符号における誤り訂
正能力
2ビット誤りを検出可能であるが、
丸と四角のどちらの組が誤りかは
を判定できない。
2ビット誤りを検出可能である。行
は特定できるが、どの列がは特定
不能。
2ビット誤りを検出可能である。列
は特定できるが、どの行かは特定
不能。
25
一般的な垂直水平パリティ符号
c
r
r c
r 1
c 1
r c
一般に、情報ビットが
であるとき、
符号ビットを (r 1) (c 1) として構成できる。
したがって冗長ビットは r c 1 である。
26
例
w ( x11 , x12 , x21, x22 , r1, r2 , c1, c2 , p)
の垂直水平パリティ符号を考える。このとき、次の情報
ビットから垂直水平符号を求めよ。
x 0101 x11x12 x21x22
r1 x11 x12 0 1 1, r2 x21 x22 0 1 1,
c1 x11 x21 0 0 0, r2 x12 x22 1 1 0,
s x11 x12 x21 x22 0
w (0,1,0,1,1,1,0,0,0)
27
練習
w ( x11 , x12 , x21, x22 , r1, r2 , c1, c2 , p)
の垂直水平パリティ符号を考える。このとき、次の情報
ビットから垂直水平パリティ符号を求めよ。
(1)
(2)
(3)
x1 0001
x2 1001
x3 1101
(4)
x4 1110
28
誤り訂正例
w ( x11 , x12 , x21, x22 , r1, r2 , c1, c2 , p)
の垂直水平パリティ符号を考える。このとき、次の符号か
ら誤りを訂正せよ。
y w e 000111000
0 0 1
0 1 1
0 0 0
パリティの検査から、
x21 が誤っていることが判明する。
行ベクトル毎、列ベクトル毎にパリティ検査を
行い、誤りっている行と列の交差している箇所
が誤りである。
誤りベクトルと、正しい符号は以下である。
e 010000000 w y e 010111000
29
練習
w ( x11 , x12 , x21, x22 , r1, r2 , c1, c2 , p)
の垂直水平パリティ符号を考える。このとき、このとき、次
の符号から誤りを訂正せよ。
(1)
(2)
(3)
(4)
y1 100101011
y2 111101101
y3 100110110
y4 111001010
30
垂直水平パリティ符号の符号語間距離
w ( x11 , x12 , x21, x22 , r1, r2 , c1, c2 , p)
で定義される垂直水平パリティ符号のの各符号語間の距離に
おいて、次式がなりたつ。
i, j, i j dh (wi , w j ) 3
wi xi , pi
dh ( xi , x j ) 1
dh ( xi , x j ) 2
w j x j , pj
において、
のとき、行と列の検査1ビットづつ異なる。
のとき、少なくとも行と列のどちらかが、
31
検査ビットが2か所異なる。
垂直水平パリティ符号の情報速度
w ( x11 , x12 , x21, x22 , r1, r2 , c1, c2 , p)
で定義される2×2の情報ビットを持つ垂直水平パリティ符号
の情報速度 RVHP (2 2)
は、次式で表わされる。
4
RVHP (2 2)
[bit / 記号]
9
より一般に、 r c の情報ビットを持つ垂直水平パリティ符
号の情報速度 RVHP (r c) は、次式で表らわされる。
rc
RVHP (r c)
[bit / 記号]
(r 1)(c 1)
32
ハミング符号
33
ハミング符号
垂直水平パリティ符号より効率的に冗長ビットを作り出
す方法が知られている。
まず、情報ビット4ビット、冗長ビット3ビットからの7ビットのハ
ミング符号の構成法を示す。(これを(7,4)ハミング符号とい
う。)
w (w1 , w2 ,
, w7 )
( x1 , x2 , x3 , x4 , p1 , p2 , p3 )
( x, p)
(7, 4) ハミング符号という。
( n, k ) 符号
n : 符号総長
k : 情報ビット長
34
(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
なぜ、この式で定義する
かは、後で示す。
35
検査方程式
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
この関係式を検査方程式という。誤りが混入しなければ、
検査方程式を満足するはずである。
36
シンドローム
検査方程式から、誤りの位置を特定するための情報を抽
出することができる。受信語が 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
37
誤りベクトルとシンドローム
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
検査方程式より
38
ハミング符号の誤り訂正原理
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
各列がシンドロー
ムの定義式に対応
する。
s3 e1 e2 e4 e7
p3 x1 x2 x4
各行の誤りベクトル
に2進数を割り当て
る。
39
例
w ( x1, x2 , x3 , x4 , p1, p2 , p、3 )
次のように冗長ビットを
定める(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
40
練習
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
41
例
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
42
よって、シンドローム s s1s2 s3 110 より、誤りベクトル
が一意に e (e1 , e2 ,
, e7 ) 0010000 と特定できる。
したがって、次のように誤り訂正できる。
y y1, y2 ,
, y7 0111100
w y e 0111100 0010000
0101100
43
練習
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
44
一般のハミング符号
( n, k )
ハミング符号
n 2 1
m
情報ビット長:
k n m 2 1 m
冗長ビット長: n k m
シンドローム長: m
符号長:
m
W 000,111 は、
n 3, m 2, k 1 となり、
ちなみに、符号
(3、1)ハミング符号。
45
練習
2ビットのシンドロームを持つ、
義せよ。
(3,1) ハミング符号を定
46
ハミング符号の符号語間距離
w ( x1, x2 , x3 , x4 , p1, p、2 , p3 )
に対して、次のように冗長
ビットを定める(7,4)ハミング符号を考える。
p1 x1 x2 x3 p2 x2 x3 x4 p3 x1 x2 x4
このとき、次式が成り立つ。
i, j, i j dh (wi , w j ) 3
wi xi , pi w j x j , p j
において、
dh ( xi , x j ) 1
のとき、定義より少なくとも冗長ビットが2
ビットは異なる。(例えば、 x1 が異なれば、 p1 と p3 も異
なる。)
dh ( xi , x j ) 2
のとき、定義より少なくとも冗長ビットが
1ビット異なる。(例えば、x1 とx2 が異なれば、p2 も異なる。)
47
ハミング符号の情報速度
w ( x1, x2 , x3 , x4 , p1, p2 , p3 )
で定義される(7,4)ハミング符号の情報速度
は、次式で表わされる。
RH (7, 4)
4
RH (7, 4)
[bit / 記号]
7
より一般に、シンドローム長が m のハミング符号は、情報
ビットが、
n 2 1
m
冗長ビットが
k n m 2 m 1
m
の (2 1, 2 m 1) ハミング符号になり、情報速度は
次式表わされる。
m
m
m
2
m 1
m
m
RH (2 1, 2 m 1)
[bit / 記号]
m
2 1
48