Transcript PowerPoint

chapter 3:
エラーから情報を守る
1
chapter 3の目的
通信路で発生する誤りを検出し,訂正する技術について学ぶ
現実の通信環境では...
“送信情報 = 受信情報” の保証はない
無線通信...雑音により,信号波形が崩れる
CD, DVD...キズや埃により,読み取り障害が発生
「“0” を送ったはずなのに,“1”が届いてしまう」⇒ 誤りの発生
2
デジタル通信と誤り
デジタル通信では,1ビットの誤りでも影響が大きい
A
B
C
D
符号語
0
10
110
111
AC
0110
1110
0100
DA
ABA
誤りを「減らす」ことはできても,完全に「なくす」ことは難しい
無線通信 ... 送信電力の増加 ⇒ 消費電力の増加
CD, DVD ... 記録密度の抑制 ⇒ データ容量の低下
3
通信路符号化
誤りの発生... 送信情報の一部が,途中で失われることに相当
途中で一部が失われても,必要十分な量の情報が届くよう,
余分な情報を事前に上乗せして送信すればよい
=
な情報を付加する
やみくもに冗長な情報を付加すればよいというわけではない
誤りの訂正に効果的な,適切な符号化方式が必要
⇒ 通信路符号化
4
2つの符号化
chapter 2 ... 情報源符号化
情報源からの出力に対する符号化
コンパクトな情報表現を与える
chapter 3 ... 通信路符号化
通信路への入力に対する符号化
誤りに強い情報表現を与える
どちらも「符号化」だが,目的とする方向性が異なる
5
「符号化」の複層構造
アプリケーション
送信者
受信者
情報源符号化
符号化
復号
情報保護
暗号化
復号
通信路符号化
符号化
復号
通信路
6
chapter 3 の構成
通信路のモデル化
通信路符号化の概要
線形符号
定義と基本的な性質
生成行列・検査行列と符号化・復号
ハミング符号
線形符号の性能評価
シャノンの通信路符号化定理
7
通信路のモデル
以下の議論では,デジタル通信路を仮定
入出力には,記号が用いられる
1記号の入力に 対し,必ず1記号の出力が得られる
遅延や消失は,モデルとしては考えない
入力記号と出力記号の関係は,確率的に与えられる
入力
(送信側)
変調器
デジタル
通信路
アナログ
通信路
出力
(受信側)
復調器
8
2元対称通信路
2元対称通信路 (binary symmetric channel, BSC)
入力記号 = 出力記号 = {0, 1}
確率 𝑝で,記号の 0 と 1が反転するような通信路
p =ビット誤り率(通常は p < 0.5)
0
0
出力
入力
1
1–p
p
p
1–p
1
00000 を送信したとき...
00000が受信される確率 = 1 − 𝑝 5
00001が受信される確率 = 1 − 𝑝 4 𝑝
00011が受信される確率 = 1 − 𝑝 3 𝑝2
...
9
2元消失通信路
2元消失通信路 (binary erasure channel, BEC)
入力記号= {0, 1},出力記号 = {0, 1, X}
確率 𝑝で,ナゾの Xが出力される通信路
X=「ここに 0 か 1 があったが,消えてしまった」 【消失】
0
p
p
1–p
0
X
1
出力
入力
1
1–p
1–p–q
0
p 0
q
X
q p
1
1
1–p–q
消失と誤りの両方が
発生する複雑なモデル
10
通信路符号化:準備
本講義では,以下のような通信路符号化方式を考える
符号化器への入力: 𝑘 ビットのバイナリデータ
符号化器の出力(符号語): 𝑛 ビットのバイナリデータ
𝑘<𝑛
データ = 系列 = ベクトル
𝑏1 𝑏2 ⋯ 𝑏𝑚 = (𝑏1 , 𝑏2 , … , 𝑏𝑚 )
加減算はビット単位の2進演算
001 + 101 = 100
XORと考えてもOK
𝑉𝑘
𝑉𝑛
11
符号化と復号
符号化: 任意の 𝑘 ビットデータから,𝑛 ビットの符号語を計算する
𝑉𝑘
𝑉𝑛
符号化
復号
符号 𝐶= 符号語の集合
復号: (誤りを含む可能性のある)任意の 𝑛 ビットから,
【誤り検出】 誤りの有無を判定する
【誤り訂正】 送信されたであろう符号語を推定する
復号が,符号化の逆操作になっていないことに注意
12
復号能力の限界
【誤り検出】 誤りの有無を判定する
誤りが多数発生し,他の符号語になってしまう場合も
「検出できない誤り」もある
【誤り訂正】 送信されたであろう符号語を推定する
送信されたであろう符号語=ある確率を最大にする符号語
復号結果が間違っていることも
通信路符号化の性能には,限界がある
符号の作り方を工夫すれば,性能を向上させることができる
13
良い符号とは?
𝑉𝑛
符号 𝐶 は
の部分集合
𝑉 𝑛 には 2𝑛 個の系列
𝐶 には 2𝑘 個の系列(符号語)
2𝑛
 全部で 𝑘 通りの符号が存在
2
𝑉𝑛
𝑉𝑘
00
01
10
11
000
011
101
110
𝐶
どの符号を選ぶのが良いか?
誤り訂正能力が高いこと
符号化,復号操作が容易に行えること
線形符号 (linear code) と呼ばれる符号が有利
14
線形符号
符号化が簡単
復号が,比較的簡単に行える場合が多い
誤り訂正能力の高い符号の設計法がいくつか知られている
性能評価が比較的行いやすい.
現実世界で利用されている符号のほとんどが線形符号
15
この後の筋書き
線形符号
定義と基本的な性質
線形符号の符号化
線形符号の復号
ハミング符号
今回
次回
定義の前に,簡単な例を2つ紹介...
16
偶パリティ符号
偶パリティ符号(even parity code)の符号化操作:
情報 𝑎1 , 𝑎2 , … , 𝑎𝑘 ∈ 𝑉 𝑘 に対し...
𝑝 = 𝑎1 + 𝑎2 + ⋯ + 𝑎𝑘 mod 2 を計算する
(𝑎1 , 𝑎2 , … , 𝑎𝑘 , 𝑝) を (𝑎1 , 𝑎2 , … , 𝑎𝑘 )の符号語とする
𝑘 = 3の場合 000
001
010
011
100
101
110
111
p=0+1+1=0
0000
0011
0101
0110
1001
1010
1100
1111 符号 C
17
偶パリティ符号の特徴
0000
0011
0101
0110
1001
1010
1100
1111
符号 C
符号長は 𝑛 = 𝑘 + 1
符号化操作は,
もともと送りたかった情報記号の後に,
検査記号(冗長記号)を付け足す
情報記号
1010
検査記号
符号語に含まれる1の個数は,かならず偶数
情報記号中に1が偶数個 ⇒ 𝑝 = 0
情報記号中に1が奇数個 ⇒ 𝑝 = 1
(符号語の中に発生する奇数ビットの誤り検出が可能)
18
偶パリティ符号の性能
送信した符号語に
奇数個の誤りが発生した場合 ... 誤りを検出可能
偶数個の誤りが発生した場合 ... 誤りを検出できない
いずれにせよ,誤りを訂正する能力はない
0個
1010
送信符号語:1010
偶数個
奇数個
0000 1001
0011
0101 1100
0110 1111
0001
0010
0100
0111
1000
1011
1101
1110
𝐶
19
水平垂直パリティ検査符号
水平垂直パリティ検査符号の符号化:
情報記号を長方形状に並べる
水平方向および垂直方向に偶パリティ符号化を行う
冗長記号を一次元に配列し,情報記号に付加する
k = 9 の場合: (a1, a2, ..., a9) の符号化
a1
a2
a3
p
1
a4
a5
a6
p2
a7
a8
a9
p3
q1
q2
q3
p1 = a1 + a2 + a3
p2 = a4 + a5 + a6
p3 = a7 + a8 + a9
q1 = a1 + a4 + a7
q2 = a2 + a5 + a8
q3 = a3 + a6 + a9
r = a1 + a2 + ... + a9
r 符号語は
(a1, a2, ..., a9, p1, p2, p3, q1, q2, q3, r)
20
符号化の例
011100101 を符号化すると,符号語は 0111001010100101
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0111001010100101
情報記号
検査記号
特徴
水平垂直パリティ検査符号は,組織符号
𝑘 = 𝑎𝑏 のとき,符号長は 𝑛 = 𝑎𝑏 + 𝑎 + 𝑏 + 1
(符号語の中に発生する1ビットの誤り訂正が可能)
21
水平垂直パリティ検査符号の性能(1)
符号語中の1ビット誤りを訂正可能
受信語を,送信語と同じ順番で並べ,
各行および列の1の個数を数える
誤りが発生しなかったとき
⇒ 全ての行,列は偶数個の1を含む
1ビット誤りが発生したとき,
⇒ 1が奇数個ある行,列が,それぞれ1個ずつ存在
⇒ その行と列が交差するところが誤りを含む
010110101
受信語
011110101
誤りを訂正
0
1
1 偶
0
1
0 奇
1
0
1 偶
奇
偶
偶
22
水平垂直パリティ検査符号の性能(2)
2ビット誤りが発生したとき,
実際の誤り
どちらのパターンかわからない
1が奇数個の行,列が
2つずつ存在することになる
誤りが発生していることはわかるが,訂正はできない
23
水平垂直パリティ検査符号の性能(3)
実際の誤り
1が奇数個の列が2つある.
全ての行は,偶数個の1を含む
誤りが発生していることはわかるが,訂正はできない
24
線形符号の定義
以下のように構成される符号を線形符号と呼ぶ:
符号語=(𝑘ビットの情報記号)+(𝑚ビットの検査記号)
(𝑥1 , 𝑥2 , … , 𝑥𝑘 , 𝑝1 , 𝑝2 , … , 𝑝𝑚 )
情報記号 検査記号(冗長記号)
検査記号は,情報記号の線形式により求められる
𝑝1 = 𝑎1,1 𝑥1 + 𝑎1,2 𝑥2 + ⋯ +𝑎1,𝑘 𝑥𝑘
𝑝2 = 𝑎2,1 𝑥1 + 𝑎2,2 𝑥2 + ⋯ +𝑎2,𝑘 𝑥𝑘
⋮
𝑝𝑚 = 𝑎𝑚,1 𝑥1 + 𝑎𝑚,2 𝑥2 + ⋯ +𝑎𝑚,𝑘 𝑥𝑘
(𝑎𝑖,𝑗 ∈ 0,1 )
25
線形符号の例
偶パリティ符号:(𝑥1 , 𝑥2 , 𝑥3 , 𝑝1 )
𝑝1 = 𝑥1 + 𝑥2 + 𝑥3
水平垂直パリティ検査符号:(𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑝1 , 𝑝2 , 𝑝3 , 𝑝4 , 𝑝5 )
𝑥1
𝑥2 𝑝1
𝑝1 = 𝑥1 +𝑥2
𝑝2 =
𝑥3 𝑥4 𝑝2
𝑝3 = 𝑥1
𝑝3
𝑝4 =
𝑝4 𝑝5
𝑥3 +𝑥4
+𝑥3
𝑥2
+𝑥4
𝑝5 = 𝑥1 +𝑥2 +𝑥3 +𝑥4
26
線形符号の性質
符号 𝐶 が線形符号であれば...
定理1: 0, … , 0 ∈ 𝐶
証明:
検査記号は情報記号の線形式で定まるため,
𝑥1 , … , 𝑥𝑘 = (0, … , 0)なら 𝑝1 , … , 𝑝𝑚 = (0, … , 0),
よって 𝑥1 , … , 𝑥𝑘 , 𝑝1 , … , 𝑝𝑚 = 0, … , 0 ∈ 𝐶
定理2:任意の符号語𝒖, 𝒗 ∈ 𝐶に対し,𝒖 + 𝒗 ∈ 𝐶
証明:
次ページで...
27
定理2の証明(その1)
まずは補題を示す
補題:任意の線形関数 𝑓(𝑥1, … , 𝑥𝑘 )について,
𝑓 𝑢1 , … , 𝑢𝑘 + 𝑓 𝑣1 , … , 𝑣𝑘 = 𝑓 𝑢1 + 𝑣1 , … , 𝑢𝑘 + 𝑣𝑘
証明:
𝑓 𝑥1, 𝑥2, … , 𝑥𝑘 = 𝑎1 𝑥1 + ⋯ + 𝑎𝑘 𝑥𝑘 とすると
左辺=𝑎1 𝑢1 + ⋯ + 𝑎𝑘 𝑢𝑘 + 𝑎1 𝑣1 + ⋯ + 𝑎𝑘 𝑣𝑘
=𝑎1 𝑢1 + 𝑣1 + ⋯ + 𝑎𝑘 (𝑢𝑘 + 𝑣𝑘 )=右辺
28
定理2の証明(その2)
定理2:任意の符号語𝒖, 𝒗 ∈ 𝐶に対し,𝒖 + 𝒗 ∈ 𝐶
証明:
𝑖番目の検査記号を与える線形式を 𝑓𝑖 (𝑥1 , … , 𝑥𝑘 )とすると
𝒖 = ( 𝑢1
+𝒗=(
, … , 𝑢𝑘
𝑣1 , … ,
, … , 𝑓𝑖 𝑢1 , … , 𝑢𝑘
𝑣𝑘 , … ,
𝑓𝑖 𝑣1 , … , 𝑣𝑘
,…)
,…)
𝒖 + 𝒗 = ( 𝑢1 + 𝑣1 , … , 𝑢𝑘 + 𝑣𝑘, … , 𝑓𝑖 𝑢1 , … , 𝑢𝑘 + 𝑓𝑖 𝑣1 , … , 𝑣𝑘 , … )
= ( 𝑢1 + 𝑣1 , … , 𝑢𝑘 + 𝑣𝑘, … ,
𝑓𝑖 𝑢1 + 𝑣1 , … , 𝑢𝑘 + 𝑣𝑘 ,
∈𝐶
前ページの補題を使用
…)
29
線形符号の性質(一部再掲)
符号 𝐶 が線形符号であれば...
定理1: 0, … , 0 ∈ 𝐶
定理2:任意の符号語𝒖, 𝒗 ∈ 𝐶に対し,𝒖 + 𝒗 ∈ 𝐶
定理2は,「必要十分条件」のカタチで証明できる...
定理2+:
𝐶が線形符号 iff 任意の符号語𝒖, 𝒗 ∈ 𝐶に対し𝒖 + 𝒗 ∈ 𝐶
30
線形符号の構成例
𝑘 = 3の場合:情報記号列は (𝑥1, 𝑥2, 𝑥3)
検査記号を適当に定義する.
𝑝1 = 𝑥1 + 𝑥2
⇒ 符号語は (𝑥1, 𝑥2, 𝑥3, 𝑝1, 𝑝2)
𝑝2 =
𝑥2 + 𝑥3
00000
00101
01011
01110
10010
10111
11001
11100
00000
00000
00101
01011
01110
10010
10111
11001
11100
00101
00101
00000
01110
01011
10111
10010
11100
11001
01011
01011
01110
00000
00101
11001
11100
10010
10111
01110
01110
01011
00101
00000
11100
11001
10111
10010
10010
10010
10111
11001
11100
00000
00101
01011
01110
10111
10111
10010
11100
11001
00101
00000
01110
01011
11001
11001
11100
10010
10111
01011
01110
00000
00101
11100
11100
11001
10111
10010
01110
01011
00101
00000
31
6回目のまとめ
通信路符号化の基礎
線形符号
例:偶パリティ符号,水平垂直パリティ検査符号
定義
基本的な性質
32