Upload
others
View
12
Download
1
Embed Size (px)
Citation preview
組織符号,線形符号 (おさらい)
𝑘𝑘個の情報記号に対して検査記号を求め,それを末尾に追加する
ことで信頼性を高める符号長𝑛𝑛の等長符号を組織符号という
𝑤𝑤 = 𝑥𝑥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)ハミング符号
線形符号の生成行列
線形符号の場合,符号化と復号の計算を行列の式で記述できる
たとえば,(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節)
情報ビット
𝒙𝒙
ハミング距離
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では,𝑡𝑡 について単調減少
間違いの数