講義「情報理論」kida/lecture/it_13.pdf講義「情報理論」...

18
講義「情報理論」 第13回 通信路符号化法 (2) 情報理工学部門 情報知識ネットワーク研究室 喜田拓也 2019/7/24 講義資料

Upload: others

Post on 30-May-2020

12 views

Category:

Documents


1 download

TRANSCRIPT

講義「情報理論」

第13回 通信路符号化法(2)

情報理工学部門 情報知識ネットワーク研究室喜田拓也

2019/7/24講義資料

組織符号,線形符号 (おさらい)

𝑘𝑘個の情報記号に対して検査記号を求め,それを末尾に追加する

ことで信頼性を高める符号長𝑛𝑛の等長符号を組織符号という

𝑤𝑤 = 𝑥𝑥1𝑥𝑥2・・・ 𝑥𝑥𝑘𝑘 𝑐𝑐1𝑐𝑐2・・・𝑐𝑐𝑛𝑛−𝑘𝑘符号長𝑛𝑛,情報記号数𝑘𝑘の組織符号を(𝑛𝑛,𝑘𝑘)符号と書く.

(𝑛𝑛,𝑘𝑘) 符号の効率𝜂𝜂は,𝜂𝜂 = ⁄𝑘𝑘 𝑛𝑛

検査記号が情報記号の線形の式で与えられる符号を線形符号と

呼ぶ.線形符号では,任意の二つの符号語について,成分ごとの

和をとったものも符号語になっている.これは線形符号となるための

必要十分条件である

単一パリティ検査符号は,一つの誤りを検出できる誤り検出符号

水平垂直パリティ検査符号は,1個の誤りが訂正でき,2個の誤りを

検出することができる誤り検出訂正符号2

(7,4)ハミング符号 (おさらい)

情報ビット 𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4 に対し,検査ビットを𝑐𝑐1 = 𝑥𝑥1 + 𝑥𝑥3 + 𝑥𝑥4𝑐𝑐2 = 𝑥𝑥1 + 𝑥𝑥2 + 𝑥𝑥3𝑐𝑐3 = +𝑥𝑥2 + 𝑥𝑥3 + 𝑥𝑥4

と計算し,𝒘𝒘 = 𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑐𝑐1, 𝑐𝑐2, 𝑐𝑐3 という

符号語に組織符号化する符号を(7,4)ハミング

符号という

このとき,受信語 𝒚𝒚 = 𝑦𝑦1,𝑦𝑦2, ・・・,𝑦𝑦7 に対す

るシンドローム 𝒔𝒔 = 𝑠𝑠1, 𝑠𝑠2, 𝑠𝑠3 は𝑠𝑠1 = 𝑦𝑦1 + 𝑦𝑦3 + 𝑦𝑦4 + 𝑦𝑦5𝑠𝑠2 = 𝑦𝑦1 + 𝑦𝑦2 + 𝑦𝑦3 + 𝑦𝑦6𝑠𝑠3 = 𝑦𝑦2 + 𝑦𝑦3 + 𝑦𝑦4 + 𝑦𝑦7

であり,これを計算することで誤りを検出・訂正

することができる3

𝑥𝑥1 𝑥𝑥2 𝑥𝑥3 𝑥𝑥4 𝑐𝑐1 𝑐𝑐2 𝑐𝑐30 0 0 0 0 0 01 0 0 0 1 1 00 1 0 0 0 1 11 1 0 0 1 0 10 0 1 0 1 1 11 0 1 0 0 0 10 1 1 0 1 0 01 1 1 0 0 1 00 0 0 1 1 0 11 0 0 1 0 1 10 1 0 1 1 1 01 1 0 1 0 0 00 0 1 1 0 1 01 0 1 1 1 0 00 1 1 1 0 0 11 1 1 1 1 1 1

(7,4)ハミング符号

今日の内容

8.2.2 生成行列と検査行列

8.2.3 一般のハミング符号

8.2.5 ハミング距離と誤り訂正能力

4

線形符号の生成行列

線形符号の場合,符号化と復号の計算を行列の式で記述できる

たとえば,(7,4)ハミング符号の符号語𝒘𝒘は,

𝒘𝒘 = (𝑥𝑥1, 𝑥𝑥2 , 𝑥𝑥3 , 𝑥𝑥4 , 𝑥𝑥1+𝑥𝑥3+ 𝑥𝑥4, 𝑥𝑥1+𝑥𝑥2+ 𝑥𝑥3, 𝑥𝑥2+𝑥𝑥3+ 𝑥𝑥4)

と書くことができる.𝒙𝒙 = 𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4 とし,

𝐆𝐆 =

1 0 0 0 1 1 00 1 0 0 0 1 10 0 1 0 1 1 10 0 0 1 1 0 1

という行列𝐆𝐆を考えると,𝒘𝒘 = 𝒙𝒙 𝐆𝐆 として符号化できる

このように,𝑘𝑘個の情報記号からなるベクトル𝒙𝒙に掛けたとき,それに

対応する符号語が生成されるような行列𝐆𝐆を生成行列という

(𝑛𝑛,𝑘𝑘)線形符号の生成行列は 𝑘𝑘 × 𝑛𝑛 行列となる5Try 問8.4

𝑥𝑥1𝑥𝑥2𝑥𝑥3𝑥𝑥4

検査行列とシンドローム

(7,4)ハミング符号のパリティ検査方程式の係数を並べた行列を

𝐇𝐇 =1 0 1 1 1 0 01 1 1 0 0 1 00 1 1 1 0 0 1

とおく.これを用いるとパリティ検査方程式は

𝒘𝒘𝐇𝐇𝑇𝑇 = 𝟎𝟎と書ける.𝐇𝐇𝑇𝑇は𝐇𝐇の転地行列,𝟎𝟎は全成分が0のベクトルを表す.

この行列𝐇𝐇をパリティ検査行列,または単に検査行列と呼ぶ

(𝑛𝑛,𝑘𝑘)線形符号のパリティ検査方程式の数は,検査記号数𝑛𝑛 − 𝑘𝑘に

等しいので,検査行列は 𝑛𝑛 − 𝑘𝑘 × 𝑛𝑛行列となる

検査行列𝐇𝐇を用いると,シンドロームの計算は受信語𝒚𝒚に対して,

𝒔𝒔 = 𝑠𝑠1, 𝑠𝑠2, 𝑠𝑠3 = 𝒚𝒚𝐇𝐇𝑇𝑇 .よって,シンドロームは誤りパターンを𝒆𝒆とすると次が成り立つ.

𝒔𝒔 = 𝒘𝒘 + 𝒆𝒆 𝐇𝐇𝑇𝑇 = 𝒘𝒘𝐇𝐇𝑇𝑇 + 𝒆𝒆𝐇𝐇𝑇𝑇 = 𝒆𝒆𝐇𝐇𝑇𝑇 . 6

𝐇𝐇𝑇𝑇 =

1 1 00 1 11 1 11 0 11 0 00 1 00 0 1

𝑤𝑤1𝑤𝑤2𝑤𝑤3𝑤𝑤4𝑤𝑤5𝑤𝑤6𝑤𝑤7

1つ目

2つ目

3つ目

𝑤𝑤1 𝑤𝑤2 𝑤𝑤3 𝑤𝑤4 𝑤𝑤5 𝑤𝑤6 𝑤𝑤7

Try 問8.5

検査行列𝐇𝐇𝑇𝑇の構成

(7,4)ハミング符号では,3ビットのシンドローム(23 = 8通りある)で

受信語に含まれる単一の誤りを見分けられた

全ゼロ(000)のパターンは誤りがないことを表すので,残り7つの

パターンを使って,ちょうど7ビットの符号語の誤りを識別している

7

誤りパターンシンドローム

𝑒𝑒1 𝑒𝑒2 𝑒𝑒3 𝑒𝑒4 𝑒𝑒5 𝑒𝑒6 𝑒𝑒7 𝑠𝑠1 𝑠𝑠2 𝑠𝑠31 0 0 0 0 0 0 1 1 00 1 0 0 0 0 0 0 1 10 0 1 0 0 0 0 1 1 10 0 0 1 0 0 0 1 0 10 0 0 0 1 0 0 1 0 00 0 0 0 0 1 0 0 1 00 0 0 0 0 0 1 0 0 10 0 0 0 0 0 0 0 0 0

単一誤りに対するシンドローム

検査行列 𝐇𝐇𝑇𝑇 =

1 1 00 1 11 1 11 0 11 0 00 1 00 0 1

2𝑚𝑚 −𝑚𝑚 − 1= 23 − 3 − 1= 4.

この部分は固定的(𝑚𝑚次単位行列)

この部分は行を並べ替えたものも使える

生成行列𝐆𝐆の構成

検査行列𝐇𝐇𝑇𝑇から,対応する生成行列𝐆𝐆を機械的に構成できる

1. 𝐆𝐆の左の部分は常に𝑘𝑘 × 𝑘𝑘単位行列

2. 𝐆𝐆の右の部分に検査行列の転置𝐇𝐇𝑇𝑇の上部𝑘𝑘行を配置する

8

検査行列𝐇𝐇𝑇𝑇 =

1 0 11 1 11 1 00 1 11 0 00 1 00 0 1

生成行列 𝐆𝐆 =

1 0 0 0 1 0 10 1 0 0 1 1 10 0 1 0 1 1 00 0 0 1 0 1 1

𝑚𝑚 × 𝑛𝑛検査行列𝐇𝐇 = 𝑃𝑃 𝐸𝐸𝑚𝑚

𝑘𝑘 × 𝑛𝑛 生成行列 𝐆𝐆 = 𝐸𝐸𝑘𝑘 𝑃𝑃𝑇𝑇

𝑃𝑃: 𝑚𝑚 × 𝑘𝑘 行列,𝐸𝐸𝑚𝑚: 𝑚𝑚 × 𝑚𝑚単位行列

Try 問8.6~8.9

𝑃𝑃𝑇𝑇の部分をコピー

この部分は固定的(𝑘𝑘次単位行列)

一般のハミング符号

任意の𝑚𝑚 ≥ 2について,符号語長が𝑛𝑛 = 2𝑚𝑚 − 1,情報ビットが

𝑘𝑘 = 2𝑚𝑚 −𝑚𝑚 − 1となるハミング符号を構成することができる

(与えられた𝑚𝑚に対して,𝑚𝑚 × 𝑛𝑛の検査行列𝐇𝐇 = 𝑃𝑃 𝐸𝐸𝑚𝑚 および𝑘𝑘 × 𝑛𝑛の

生成行列𝐆𝐆 = 𝐸𝐸𝑘𝑘 𝑃𝑃𝑇𝑇 を構成して,下図のように符号化・復号すればよい)

9

𝒙𝒙 = 𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑘𝑘

𝒚𝒚

𝒘𝒘 = 𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑘𝑘 , 𝑐𝑐1, 𝑐𝑐2, … , 𝑐𝑐𝑚𝑚= 𝒙𝒙𝐆𝐆

符号化

𝒘𝒘

シンドロームパターン 𝒔𝒔 = 𝒚𝒚𝐇𝐇𝑻𝑻 を計算.もし𝒔𝒔 ≠ 𝟎𝟎かつ 𝒔𝒔が𝐇𝐇𝑇𝑇の第 𝑖𝑖 行目と一致するならば,𝑦𝑦𝑖𝑖 = 𝑦𝑦𝑖𝑖 + 1 と訂正する.

復号

𝒚𝒚𝒚訂正済の系列

通信

※ ハードウェア化すれば,各ビットを並列に処理することが可能(8.2.4節)

情報ビット

𝒙𝒙

ちょっと休憩

10

ハミング距離

2つの𝑛𝑛次元ベクトル 𝒖𝒖 = (𝑢𝑢1,𝑢𝑢2, ・・・,𝑢𝑢𝑛𝑛),𝒗𝒗 = (𝑣𝑣1, 𝑣𝑣2, ・・・, 𝑣𝑣𝑛𝑛)に対して,ハミング距離𝑑𝑑H 𝒖𝒖,𝒗𝒗 を次のように定義する.

𝑑𝑑H 𝒖𝒖,𝒗𝒗 ≜�𝑖𝑖=1

𝑛𝑛

𝛿𝛿 𝑢𝑢𝑖𝑖 ,𝑣𝑣𝑖𝑖 . ただし,𝛿𝛿 𝑢𝑢, 𝑣𝑣 = �0 𝑢𝑢 = 𝑣𝑣 ,1 𝑢𝑢 ≠ 𝑣𝑣 .

すなわち,𝑑𝑑H(𝒖𝒖,𝒗𝒗)は,𝒖𝒖 と 𝒗𝒗の互いに異なる成分の数である

ハミング距離は距離の3公理を満たす

11

任意の 𝑛𝑛 次元ベクトル 𝑣𝑣1, 𝑣𝑣2, 𝑣𝑣3 に対して以下のことが成り立つ.

i. 𝑑𝑑H 𝑣𝑣1, 𝑣𝑣2 ≥ 0 であり,等号が成立するのは 𝑣𝑣1 = 𝑣𝑣2 のときに限るii. 𝑑𝑑H 𝑣𝑣1, 𝑣𝑣2 = 𝑑𝑑H 𝑣𝑣2, 𝑣𝑣1iii. 𝑑𝑑H 𝑣𝑣1, 𝑣𝑣2 + 𝑑𝑑H 𝑣𝑣2,𝑣𝑣3 ≥ 𝑑𝑑H 𝑣𝑣1,𝑣𝑣3 (三角不等式)

距離の3公理

ハミング重み

𝑛𝑛次元ベクトル𝒗𝒗に対し,ハミング重み𝑤𝑤H(𝒗𝒗)を次のように定義する.

𝑤𝑤H 𝒗𝒗 ≜ 𝑑𝑑H 𝒗𝒗,𝟎𝟎 (𝟎𝟎はすべての成分が0のベクトル)

すなわち,𝑤𝑤H 𝒗𝒗 は𝑣𝑣の0でない成分の数である

たとえば,𝒗𝒗 = 1, 1, 0, 0 に対して,𝑤𝑤H 𝒗𝒗 = 2 となる

ハミング距離はハミング重みを用いて次のように表せる.

𝑑𝑑H(𝒖𝒖,𝒗𝒗) = 𝑤𝑤H(𝒖𝒖 − 𝒗𝒗).たとえば,𝒖𝒖 = (1, 1, 0, 0),𝒗𝒗 = (0, 1, 1, 0) に対して,

𝑑𝑑H 𝒖𝒖,𝒗𝒗 = 𝑤𝑤H 𝒖𝒖-𝒗𝒗 = 𝑤𝑤H 1,0,1,0 = 2 .

符号語𝒘𝒘を送り𝑡𝑡個の誤りが生じて𝒚𝒚 = 𝒘𝒘 + 𝒆𝒆が受信されたとする.

このとき,次が成り立つ.

𝑑𝑑H 𝒘𝒘,𝒚𝒚 = 𝑤𝑤H 𝒆𝒆 = 𝑡𝑡 .12

符号の最小距離と最小ハミング重み

与えられた2元符号Cに関して,任意の2つの異なる符号語の間の

ハミング距離の最小値,すなわち,

𝑑𝑑min ≜ min𝒖𝒖,𝒗𝒗∈𝐶𝐶, 𝒖𝒖≠𝒗𝒗

𝑑𝑑H 𝒖𝒖,𝒗𝒗

を,符号Cの最小ハミング距離(または単に最小距離)と呼ぶ

13

定義8.12

与えられた2元符号Cに関して,全ゼロを除くすべての符号語の

ハミング重みの最小値

𝑤𝑤min ≜ min𝒘𝒘∈C, 𝒘𝒘≠𝟎𝟎

𝑤𝑤H(𝒘𝒘)

を,符号Cの最小ハミング重みと呼ぶ

定義8.13

計算が面倒

計算が楽!

線形符号の最小ハミング距離

証明: 定義より.

𝑑𝑑min = min𝒖𝒖,𝒗𝒗∈C, 𝒖𝒖≠𝒗𝒗

𝑑𝑑H(𝒖𝒖,𝒗𝒗)

= min𝒖𝒖,𝒗𝒗∈C, 𝒖𝒖≠𝒗𝒗

𝑤𝑤H(𝒖𝒖-𝒗𝒗)

= min𝒘𝒘∈C, 𝒘𝒘≠𝟎𝟎

𝑤𝑤H(𝒘𝒘)

= 𝑤𝑤min

14

線形符号だから,符号語どうしの和(差)も符号語になる

線形符号では,最小ハミング重みと最小距離が一致する

定理8.5

𝑑𝑑H(𝒖𝒖,𝒗𝒗) = 𝑤𝑤H(𝒖𝒖 − 𝒗𝒗) だから

いったい何の意味があるの・・・?

符号の誤り訂正能力と関係があります!

最小距離と誤り訂正能力の関係

限界距離復号法:

𝑑𝑑min ≥ 2𝑡𝑡1 + 1 を満たす整数𝑡𝑡1を定め,𝑡𝑡1以下の誤り訂正を行う

𝑡𝑡1の最大値𝑡𝑡0 = (𝑑𝑑min-1)/2 を符号Cの誤り訂正能力という

𝑡𝑡2 = 𝑑𝑑min-2𝑡𝑡1-1 とおくと,𝑡𝑡1 + 1 ≤ 𝑡𝑡 ≤ 𝑡𝑡1 + 𝑡𝑡2個の誤りについ

て,訂正はできないが検出は可能

𝑡𝑡1 を大きくする

正しく復号される確率は増大

誤って復号される確率も増大

𝑡𝑡1 を小さくする

正しく復号される確率は減少する

検出可能な誤りの個数が増える(検出できれば,再送要求などの救済措置ができる)

15

𝑡𝑡1は選べる

𝒘𝒘1𝒘𝒘3

𝒘𝒘2

𝑑𝑑min𝑑𝑑min以上𝑡𝑡1

𝑡𝑡2 + 1

𝛺𝛺1

𝛺𝛺2

𝛺𝛺3

𝑡𝑡1 + 𝑡𝑡2

𝑡𝑡1

誤り訂正能力の例

ハミング符号

符号語長に関係なくすべて,最小距離𝑑𝑑min = 3 (定理8.6)

誤り訂正能力𝑡𝑡0 = 1( (7,4)ハミング符号の場合,最小距離𝑑𝑑min=最小ハミング重み=3 )

水平垂直パリティ検査符号

最小距離𝑑𝑑min = 4 ,誤り訂正能力 𝑡𝑡0 = 1単一誤り訂正・2重誤り検出符号

16

𝑡𝑡1 訂正可能な誤り 訂正できないが検出可能な誤り

0 - 1~4個

1 1個 2~3個

2 2個 -

【例】 𝑑𝑑min = 5 の符号による誤りの訂正と検出

限界距離復号法と最尤復号法の違い

ビット誤り率 𝑝𝑝 < 0.5 の2元対称通信路(BSC)を考える

符号語𝒘𝒘を送って,𝒚𝒚が受信される確率は,𝑡𝑡 = 𝑑𝑑H(𝒘𝒘,𝒚𝒚)とすると,

𝑃𝑃 𝒚𝒚 𝒘𝒘 = 𝑝𝑝𝑡𝑡 1-𝑝𝑝 𝑛𝑛−𝑡𝑡.最尤復号法の場合

𝒚𝒚が受信されたとき,𝑃𝑃(𝒚𝒚|𝒘𝒘)が最大となる符号語𝒘𝒘に復号

𝑝𝑝 < 0.5のBSCでは,𝑡𝑡 = 𝑑𝑑H(𝒘𝒘,𝒚𝒚) が最小となる𝒘𝒘に復号

𝒚𝒚とハミング距離が一番近い符号語𝒘𝒘が送られたと常に推定

限界距離復号法の場合

𝒚𝒚が受信されたとき,ハミング距離𝑡𝑡 = 𝑑𝑑H(𝒘𝒘,𝒚𝒚)が𝑡𝑡1以下の最も

近い符号語𝒘𝒘に復号

どの𝒘𝒘についても 𝑑𝑑H 𝒘𝒘,𝒚𝒚 > 𝑡𝑡1 となった場合は推定を放棄

正しく復号される確率 𝑃𝑃𝑐𝑐 ○ 最尤復号法 > 限界距離復号法

誤って復号される確率 𝑃𝑃𝑒𝑒 最尤復号法 > 限界距離復号法 ○

実現の容易さ 最尤復号法 < 限界距離復号法 ○ 17

𝑝𝑝 < 0.5では,𝑡𝑡 について単調減少

間違いの数

今日のまとめ

8.2.2 生成行列と検査行列

8.2.3 一般のハミング符号

8.2.5 ハミング距離と誤り訂正能力

次回

巡回符号

18