情報理論

前回の練習問題
6個の情報記号を,以下のように配置し,水平垂直パリティ検
査符号を構成する.
a1 a2 a3 p1
この符号の検査行列を求めよ
a4 a5 a6 p2
110111001010 を復号せよ
q1 q2 q3 r
p1 = x1 + x2 + x3
1 1
p2 =
x4 + x5 + x6

q1 = x1
+ x4
0 0
検査行列 
q2 =
x2
+ x5
1 0
q3 =
x3
+ x6
H 
r = x1 + x2 + x3 + x4 + x5 + x6
0 1
0 0
T
T
H(1 1 0 1 1 1 0 0 1 0 1 0) = (0 1 1 0 0 1)

これは4列目と等しい ⇒ 4ビット目が誤っている  1 1
復号結果は 110011001010
1 0 0 0
0 1 1 1
0 1 0 0
0 0 1 0
1 0 0 1
1 1 1 1




I




1
前回の練習問題
(15, 11)ハミング符号について,
検査行列(のひとつ)を作成せよ
1

1
1

1
1 1 1 0 1 1 1 0 0 0 1 0 0 0

1 1 0 1 1 0 0 1 1 0 0 1 0 0
1 0 1 1 0 1 0 1 0 1 0 0 1 0

0 1 1 1 0 0 1 0 1 1 0 0 0 1
生成行列を求めよ
(右の行列)








I








1 1 1 1

1 1 1 0
1 1 0 1

1 0 1 1
0 1 1 1

1 1 0 0
1 0 1 0

1 0 0 1

0 1 1 0
0 1 0 1

0 0 1 1
2
本日の講義:符号の性能評価
与えられたパラメータ (符号長,情報記号数)に対し,
非常に多くの線形符号が存在し得る
性能の良い符号もあれば,悪い符号もある
符号の性能を測る指標が必要
本日の内容:
最小ハミング距離を使った性能評価
符号の重み分布を使った性能評価
3
系列の類似度と符号の能力
符号語 u を送信,途中で誤りが発生し,系列 v が受信
常識的な通信路であれば...
u と v の違いは少しだけのはず
符号語 u
受信系列 v
ビット誤り率 0.1 の BSC で 000 を送信;
000 となる確率:0.729
001 となる確率:0.081
011 となる確率:0.009
111 となる確率:0.001
もし,符号語どうしが接近していると,誤りの影響を受けやすい
v
u
誤り検出不能
v
u
誤り検出可能
4
系列と系列の「距離」を定義する
a=(a1, a2,..., an) と b=(b1, b2,..., bn) を,同じ長さの系列とする.
a と bのハミング距離 dH(a, b) : 系列中で異なる記号の個数
dH(0100,1101) = 2
厳密に書くと, d H (a , b) 
dH(000, 011) = 2
dH(010, 110) = 1
dH(000, 111) = 3
dH(011, 011) = 0
0 x  y
a (ai , bi ), ただし,a( x, y )  
1 x  y
i 1
n

ビット誤り率 p の BSCに長さ n の系列 u を送信したとき,
dH(u, v) = i である系列 v が受信される確率は (1-p)n-ipi
p < 0.5 のとき,i に関して単調減少:大規模な誤りは発生しにくい
5
符号語と符号語の距離
長さ4の符号を考える...
4次元超立方体を考え,各頂点を系列に対応付けると,
符号 = 頂点の部分集合
C1={0000, 1100, 0011, 1111}
どの符号語間も,ハミング
距離が2以上離れている
良い
C2={0000, 0001, 1110, 1111}
符号語間のハミング距離が
1のところがある
悪い
6
最小ハミング距離
符号の「良さ」の一指標として,最小ハミング距離を考える
符号 C の最小ハミング距離
d min  min{ d H (a, b) | a, b  C, a  b}.
C1={0000, 1100, 0011, 1111}
C2={0000, 0001, 1110, 1111}
最小ハミング距離は2
最小ハミング距離は1
7
最小ハミング距離の例
1 0 0 1 1 0


G   0 1 0 1 0 1  から生成される線形符号の最小ハミング距離は3
0 0 1 0 1 1


000000
001011
010101
011110
100110
101101
110011
111000
000000 001011 010101 011110 100110 101101 110011 111000
0
3
3
4
3
4
4
3
3
0
4
3
4
3
3
4
3
4
0
3
4
3
3
4
4
3
3
0
3
4
4
3
3
4
4
3
0
3
3
4
4
3
3
4
3
0
4
3
4
3
3
4
3
4
0
3
3
4
4
3
4
3
3
0
線形符号ならば,もっと簡単に最小ハミング距離を計算できる
8
最小ハミング重み
系列 u のハミング重み:u に含まれる1の個数
符号 C の最小ハミング重み:
C の符号語のハミング重みの最小値(ゼロ系列を除く)
符号語
000000
001011
010101
011110
100110
101101
110011
111000
ハミング重み
0
3
3
4
3
4
4
3
000000
001011
010101
011110
100110
101101
110011
111000
000000 001011 010101
0
3
3
3
0
4
3
4
0
4
3
3
3
4
4
4
3
3
4
3
3
3
4
4
同一
9
最小ハミング距離と最小ハミング重み
定理 :
線形符号の最小ハミング距離は,最小ハミング重みに等しい
証明 :
• u, v を最小ハミング距離にある符号語とする (dH(u, v)=dmin)
• 線形符号なので,u + v も C の符号語となる
• u と v で記号が異なるところ…u + v の記号は1
• u と v で記号が同じところ…u + v の記号は0
• よって u + v の重み(出現する 1の個数)は,dmin.
u+v
v
u
0
01100
+) 01001
00101
10
線形符号の最小ハミング距離
(9, 4) 水平垂直パリティ検査符号:最小ハミング距離は4
000000000
0
010010011
4
100010101
4
110000110
4
000101011
4
010111000
4
100111110
6
110101101
6
001001101
4
011011110
6
101011000
4
111001011
6
001100110
4
011110101
6
101110011
6
111100000
4
(7, 4) ハミング符号:最小ハミング距離は3.
0000000 1000101 0100111 0010110 0010110 1010011 0110001 1110100
0
3
4
3
3
4
3
4
0001011 1001110 0101100 1101001 0011101 1011000 0111010 1111111
3
4
3
4
4
3
4
7
11
一般のハミング符号の最小ハミング距離
定理:ハミング符号の最小ハミング距離は3である
証明方針:検査行列を H=(h1, h2, ..., hn) とする
hi は互いに異なる非ゼロ列ベクトル
全ての非ゼロベクトルが H の列ベクトルとして出現
i1, i2, ..., iw ビット目が1 ,他が0の重み w の系列 u を考える.
u が符号語 ⇔ HuT = hi1 + hi2 + ... + hiw= 0.
w = 1 の場合:hi1 = 0 となり,hi1 が非ゼロであることに矛盾
w = 2 の場合:hi1 + hi2 = 0より hi1 = hi2 で,hi1 ≠ hi2 に矛盾
以上より,ハミング符号は重み2以下の符号語を含まない.
12
証明の続き
定理:ハミング符号の最小ハミング距離は3である
[証明の続き]
ハミング符号は重み2以下の符号語を含まない.
w = 3 の場合: HuT = hi1 + hi2 + hi3
hi1 + hi2 は非ゼロなので, h = hi1 + hi2 となるような
列ベクトル h が検査行列の中に必ず存在する
hi1 + hi2 = hi3 となる i3 が必ず存在する
i1, i2, i3 ビット目が 1 である系列 u に対し,HuT = 0
すなわち,重み3の符号語は必ず存在する.
⇒ ハミング符号の最小ハミング距離は3である.
13
最小ハミング距離と誤りの個数
最小ハミング距離 dmin=3:
どの符号語も,互いに最低3ビット以上異なる.
送信符号語が誤って他の符号語になるのは,
3ビット以上の誤りが発生したときのみ.
「ある符号語から1ビットだけ誤って得られる系列」が,
「他の符号語から1ビットだけ誤って得られる系列」と
一致することはない.
誤り 誤り 誤り
誤り
誤り
14
最小ハミング距離と復号領域
dmin=3:各符号語を中心として,領土を設定する.
• 領土の半径を1にしても,領土どうしは重ならない.
• 領土の半径を2にすると,領土どうしが重なってしまう.
復号の原理:dmin=3 の場合,
• 各符号語を中心に半径1の領土を設定
• 受信系列が符号語 u の領土に入ったら,その系列は u に復号
復号領域
dmin=3 ならば,復号領域の半径は最大でも1までしか取れない
復号領域の半径が1 ⇒ 1ビット誤りを訂正可能
15
最小ハミング距離と誤り訂正能力
 1
d
t max   min  とする ( x  は x 以下の最大整数)
 2 
dmin=7, tmax=3
tmax
tmax
tmax
dmin=8, tmax=3
tmax
復号領域の半径をtmaxにしても,復号領域どうしは重ならない
⇒ 符号 C は,tmaxビットの誤りを訂正可能
誤り訂正可能ビット数
16
最小ハミング距離と誤り訂正能力の例
dmin
tmax
3
1
4
1
5
2
6
2
7
3
8
3
17
復号領域の大きさ
 1
d
t max   min  は,符号の持つ最大誤り訂正能力.
 2 
復号領域の半径をtmax未満に設定してもOK:限界距離復号法
tmax
t
どの復号領域にも属さない
これらの系列に対しては誤りの検出
だけを行い,訂正を行わない
18
復号領域の大きさと誤り確率
送信符号語
t
受信語
正しく復号
誤り検出
誤って復号
復号領域の半径と各種復号結果の確率
半径
正しく復号
誤り検出
誤って復号
大
大
小
大
小
小
大
小
環境と要求により,復号領域を適切に設計する必要がある
19
直感的なイメージ:復号領域の大きさ
A
A
B
B
C
C
D
狙った的に当たる確率…大
他の的に当たる確率…大
的から外れる確率…小
D
狙った的に当たる確率…小
他の的に当たる確率…小
的から外れる確率…大
20
ここまでのまとめ
最小ハミング距離を使った性能評価
誤り訂正可能ビット数は,最小ハミング距離から決まる
最小ハミング距離が大きければ,誤り訂正能力も大きい
21
ハミング距離による性能評価
最小ハミング距離 d のとき...
符号語中に発生する (d – 1)/2 ビット以下の誤りを訂正可能
同じ符号長で同じ最小ハミング距離なら,同じ性能か?
結論から言うと,同じとは限らない
より精密な性能評価を行う手段が必要
22
着眼点:符号語の分布と符号の性能
• 符号語が近接しているほど,誤って復号する可能性が高い
• 符号語の近くにある他の符号語は,少ないほうが良い
A
B
最小ハミング距離が同じでも,A より B のほうが望ましい
23
重み分布を用いた特性評価
C={000000,100111,010110,110001,
001011,101100,011101,111010}.
• ビット誤り率 p の2元対称通信路
• 限界距離復号法による1ビット誤り訂正
重み0の符号語; 1個
重み3の符号語; 4個
重み4の符号語; 3個
符号の重み分布
(weight distribution)
線形符号の場合...
ゼロ系列を送信して得られる系列を復号し,
• 正しく復号される確率
• 誤って復号される確率
• 訂正不可能な誤りが検出される確率
を評価すればよい.
24
正しく復号される確率
ビット誤り率 p の通信路に 000000 を送信した場合:
• 正しく復号される:受信語が 000000 の復号領域に属するとき
000000 の復号領域は,
{000000, 000001, 000010, 000100, 001000, 010000, 100000}
復号領域中の個数
000000 が受信される確率
(1 – p)6
重み 1 の系列が受信される確率 p( 1 – p)5
1
小計
(1 – p)6
6
6p( 1 – p)5
正しく復号される確率は Pc = (1 – p)6 + 6p(1-p)5
25
誤って復号される確率(1)
ビット誤り率 p の通信路に 000000 を送信した場合:
• 符号語 001011 に誤って復号される:
受信語が 001011 の復号領域に属するとき
{001011, 001010, 001001, 001111, 000011, 011011, 101011}
復号領域中の個数
001011 が受信される確率 p3(1 – p)3
1
小計
p3(1 – p)3
重み 2 の系列が受信される確率 p2( 1 – p)4
3
3p2( 1 – p)4
重み 4 の系列が受信される確率 p4( 1 – p)2
3
3p4( 1 – p)2
001011 に誤って復号される確率:3p2(1 – p)4 + p3(1 – p)3 + 3p4(1 – p)2
重み 3 の符号語のひとつに誤って復号される確率
26
誤って復号される確率(2)
ビット誤り率 p の通信路に 000000 を送信した場合:
• 符号語 100111 に誤って復号される:
受信語が100111 の復号領域に属するとき
{100111, 100110, 100101, 100011, 101111, 110111, 000111}
復号領域中の個数
100111 が受信される確率 p4(1 – p)2
1
小計
p4(1 – p)2
重み 3 の系列が受信される確率 p3( 1 – p)3
4
4p3( 1 – p)3
重み 5 の系列が受信される確率 p5( 1 – p)
2
2p5( 1 – p)
100111 に誤って復号される確率: 4p3(1 – p)3 + p4(1 – p)2 + 2p5(1 – p)
重み 4 の符号語のひとつに誤って復号される確率
27
誤って復号される確率(3)
C={000000,100111,010110,110001,
001011,101100,011101,111010}.
重み0の符号語; 1個
重み3の符号語; 4個
重み4の符号語; 3個
誤って復号される確率
Pe = 4×(重み 3 のひとつの符号語に誤って復号される確率)
+ 3×(重み 4 のひとつの符号語に誤って復号される確率)
= 4×(3p2(1 – p)4 + p3(1 – p)3 + 3p4(1 – p)2 )
+ 3×(4p3(1 – p)3 + p4(1 – p)2 + 2p5(1 – p))
= 12p2(1 – p)4 + 16p3(1 – p)3 + 15p4(1 – p)2 + 6p5(1 – p).
訂正不可能な誤りが検出される確率 Pd = 1 – Pc – Pe.
28
確率
特性評価の結果
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
Pc
Pe
Pd
0
0.1
0.2
0.3
0.4
0.5
ビット誤り率
29
性能比較例
(7,4)ハミング符号:
符号語:
0000000, 1000101, 0100111, 0010110,
0010110, 1010011, 0110001, 1110100,
0001011, 1001110, 0101100, 1101001,
0011101, 1011000, 0111010, 1111111
重み 符号語数
0
1
3
7
4
7
7
1
(9, 4)水平垂直パリティ検査符号
符号語:
000000000, 000101011, 001001101, 001100110,
010010011, 010111000, 011011110, 011110101,
100010101, 100111110, 101011000, 101110011,
110000110, 110101101, 111001011, 111100000
重み 符号語数
0
1
4
9
6
6
30
ハミング符号と水平垂直パリティ検査符号
この環境では,ハミング符号のほうが良いように思えるが...
31
再送が可能な環境での評価
誤りを検出した場合,一回だけ再送を許すとすると...
再送が可能で,ビット誤り率が 0.28 以下ならば,
水平垂直パリティ検査符号のほうが有利
32
本日のまとめ
最小ハミング距離を使った性能評価
簡単でわかりやすいが,大雑把な評価しかできない
符号の重み分布を使った性能評価
少し複雑な計算が必要,大規模符号の評価は困難
与えられた環境設定で,定量的な性能評価が可能
33
練習問題
以下の検査行列を持つ線形符号 C を考える
C の重み分布を求めよ
C の誤り特性評価を行い,式とグラフで各確率を示せ
1

1
H 
1

0
1 1 0 1 0 0 0

1 0 1 0 1 0 0
.

0 1 1 0 0 1 0

1 1 1 0 0 0 1
34