• 検索結果がありません。

Viterbi 復号の特性

ドキュメント内 符号理論NOTE (ページ 77-87)

第 8 章 たたみ込み符号 65

8.4 Viterbi 復号の特性

78 第8章 たたみ込み符号

8.4.1 何を知りたいのかを決めておこう

Viterbi復号の特性を調べると言っても, いまいち, 何が知りたいのかがハッキリと分からない(抽象的す

ぎる). そこで, 一体これから何を調べたいのかを, ここでハッキリと理解しておこう. この理解をキッチリ としているかどうかで,これからの理解のスムーズさが大幅に変わってくる.

Def : これから調べること

³

送信者が全零系列(すなわち,ゼロベクトル)を送信したとき,Viterbi復号によって誤りが発生(すな わち, ゼロベクトルを送ったのに1を含む系列に復号されてしまう)する確率について調べる.

µ ´

8.4.2 イベント誤り

Viterbi復号の特性を考える上で欠かせない概念として,イベント誤り(event error)を定義しよう.

Def : イベント誤り

³

全零系列を復号した系列(復号系列)が, 全零系列から離れ, 再び合流するまでの誤りを, イベント誤り (event error)と呼ぶ.

µ ´

イベント誤りのイメージは,以下のトレリス線図を見れば掴みやすいだろう.

時点 0 1 2 3 4

(00) (00)

(01)

(10)

(11)

r3r4 r5r6 r7r8

r1r2

00 00 00 00

em1em2

em3em4 em5em6

em7em8

em = [em1,· · · , em8]により作られる1つの経路が, 1つのイベント誤りを表す. 全零系列から離れ,

び合流していることがわかるだろう. イベント誤り ek を, 第kのイベント誤りと呼ぶことにする. また,

R= [r1, r2,· · ·, r8]は,受信系列(硬判定復号後の系列)である.

復号により誤りが発生するとは, Rが全零系列ではない系列となってしまう(もともとの送信系列は全零な のだから,復号されたRも, 本来ならば全零にならなければならない)ことを指す. このことから, 復号の誤 りが発生したかどうかを知るためには,以下の判断を行う必要があることがわかる.

受信系列Rは,0(全零系列)と見なすべきか?em(あるイベント誤り)と見なすべきか?

8.4 Viterbi復号の特性 79

そして, Rをどう見なすかを決定するために用いる指標は,Hamming距離である.

Def : Rはどう見なす?

³

Rを受信系列,emをあるイベント誤り(第mイベント誤り)であるとしたとき,

dH(R,0)dH(R,em) ⇒ R0であっただろうと見なす.

dH(R,0)dH(R,em) ⇒ Remであっただろうと見なす.

µ ´

¨

§

¥

例¦em = [01110100],0= [00000000],R= [00101001]. このとき,Rは, 0であった可能性と, em であっ た可能性,どちらが高いだろうか?

 dH(R),0) =3, dH(R,em) =5.

 ∴dH(R.0)dH(R,em)より,Rは,emであった可能性が高い.

つまるところ, Hamming距離が短いほうが似ているんだから,そっちだった可能性のほうが高いんじゃない の.という至極当然のことを言っているだけなのだが, この条件はこれからずっと有効なので是非ここで理解 しておいてほしい.

8.4.3 イベント誤り確率

あるイベント誤りemを考えたときに,0が誤ってemに復号されてしまう*9確率が一体どの程度になるの かを考えよう. そのためにまず, イベント誤り確率を定義する.

Def : イベント誤り確率Pem

³

全零系列0が,あるイベント誤りemに復号される確率をemのイベント誤り確率と呼び,Pemと表す.

µ ´

このPemは具体的にどうやって計算すれば求められるのだろうか. その計算式を今から導き出そう.

まず,たたみ込み符号の復号においては2元対称通信路を考えていたため,0を1と復号してしまう確率と,1 を0と復号してしまう確率は一定である. その確率をpbと表すことにしよう.

今,送信系列として全零系列を考えていたので,Rのシンボルがもし1と見なされてしまったら,それは誤り が発生したということになる. 誤りが発生する確率はpbであるので,Rの1つのシンボルが1であると見な される確率はpbである. またそれゆえに, Rのひとつのシンボルが0と見なされる確率は1−pbである.

0 0 0 0 0 0

↑ ↑ ↑ ↑ ↑ 1−pb

R r1 r2 r3 r4 r5

↓ ↓ ↓ ↓ ↓ pb

1 1 1 1 1 1

*9すなわち,何か適当なイベント誤りを1つ作って,全零系列がそれに復号されるということ.

80 第8章 たたみ込み符号

次に,以下の例を考えてみよう.

wH(em)*10=dm=4とする.

このとき,全零系列が誤ってemに復号されてしまうのはどのような場合だろうか?ちょっと考えてみよう. dm=4のイベント誤りの例として, em= [0111001]を考える. このとき,全零系列が誤ってemと見なされ てしまう(すなわち, dH(R,0)dH(R,em)となる)のは,受信系列Rのビットのうち,emの1の部分に対 応する部分のうち, 任意の2ビット以上が1となったときである.

0 0 0 0 0 0 0 0 R 0 1 1 0 0 0 0 em 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 R 0 1 0 1 0 0 0 em 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 R 0 1 0 1 0 0 1 em 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 R 0 1 1 1 0 0 0 em 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 R 0 1 1 1 0 0 1 em 0 1 1 1 0 0 1

これらのすべての場合において,dH(R, 0)dH(R,em)となる. よって,Remと見なされてしまうとい うことなので,誤りが発生していることになる. このように, 一般に,Rがイベント誤りem と見なされてし まうのは, Rのビットのうちemと対応する場所(ビット数dm)にdm/2個以上の1が発生してしまった場 合である. ただし, dm/2が自然数とならない場合は,桁上げすることとする*11.

Thm : Rがイベント誤りemと見なされる条件

³

Rのうち,emの1に対応する部分(その部分のビット数はdm)で任意のdd2me個以上の1が発生した ならば,Remと見なされる. すなわち,誤りが発生する.

ただし,dxe,xの桁上げを表す. f(x) =dxeのとき,fを天井関数(ceiling function)と呼ぶ.

µ ´

*10イベント誤りemHamming重み(すなわち,1の数)のこと.覚えてるかな?

*11たとえば,dm=3ならば,dm=2=1:5となり,整数とならない. この場合は,桁の切り上げを行い,2個以上の1Rに発生 したときに誤った復号が行われると考える.

8.4 Viterbi復号の特性 81

先程のdm =4のイベント誤りの例についてもう一度考えよう. Rのある1ビットが1となる確率はpb, 0 となる確率は1−pbであったので,Rの中のemの1に対応する部分のうち,ある2(=dd2me)ビットが1と なる確率はp2b(1−pb)4−2である. そして,4ビットのうち 2ビットが1となるパターン数はdmC2=4C2

個存在するため,4ビット中の::::::任意の2ビットが1となる(つまり, すべてのパターンの合計)確率は,

dmC2p2b(1−pb)dm−2=4C2p2b(1−pb)4−2 となる. 同様に,3ビットの1が生じる確率は,

dmC3p3b(1−pb)dm−3=4C3p3b(1−pb)4−3 となり, 4ビットの1が生じる確率は,

dmC4p4b(1−pb)dm−4=4C4p4b(1−pb)4−4

として求められる. これで,Rがイベント誤りemと見なされてしまうすべてのパターンを網羅したことにな るので, このすべての確率の和をとればemのイベント誤り確率 Pemが求められるはずである. よって,

Pem= X4 r=2

dmCrprb(1−pb)dm−r.

という結果が得られる. 今までは dm=4の場合のみを考えてきたが,一般の場合にも同様の議論によりイベ ント誤り確率Pemを求めることができる. 以下にその結果を示そう.

Thm : イベント誤り確率

³

受信系列Rが,イベント誤りemに見なされてしまう確率, すなわちemのイベント誤り確率Pemは, 以下のように求められる. ただし,dm =wH(em)である.

Pem=

dm

X

r=ddm2 e

dmCrprb(1−pb)dm−r.

µ ´

8.4.4 上界

このようにして,上手にイベント誤り確率Pemを求めることができた. が,この式はなかなか複雑であり, 計算をするために結構な手間がかかってしまう. そこで,このPemを,上界を使って::::::::::::::::押さえ込んでやることを 考えよう. その前に,まずは上界とは何かを定義しよう.

Def : 上界(upper bound)

³

ある関数f(x)が,どんなxに対しても,

f(x)M を満たすとき,Mをf(x)の上界(upper bound)と呼ぶ.

f(x)が上界を持つとき,f(x)は上に有界であるという. 上界のうち最小のものを上限と呼ぶ.

µ ´

82 第8章 たたみ込み符号

上界の考え方はちょっとわかりにくいので,詳しく考えておこう. 例えば,以下の関数を考える. f(x) =2.

この関数の上界は, 2以上のすべての実数である. なぜなら,2以上の実数Mをとれば, 必ずf(x)Mが満 たされるからだ. このように,上界というものはいくつでも存在する. そして,上界のうち最小のものは 2で あるから,f(x)の上限は2である. このように,上限は唯一だ.

上界のイメージは,以下のような例を使うとわかりやすい. 例えば,今あなたの目の前にとても高いビルがあ るとする. そのビルが一体何mなのかを一目見てハッキリと知ることはできない(すなわち, ビルの高さの 上限を求めることはできない)が,「まあ,100m以下ではあるだろう」と,大雑把な値でビルの高さを評価す ることができる. この「100m」という値は, ビルの高さの上界である. ビルの高さは「1000m以下だ」とも,

「10000m以下だ」とも言えるので,上界はいくつでも考えられる. が,上界のうち最小のもの(すなわち, ビ ルの本当の高さ,上限)はただ1つしか存在しない. このことは,上限が唯一であることと対応する.

8.4.5 Bhattacharyya バウンド

emのイベント誤り確率Pemの上界について考える. このことはすなわち,「まあPemはこの数よりは小 さいですよ」と言えるその「数」を求めることに相当する.

その数を導くには, 高度な確率統計学の知識, そして, 洞察力を必要とするので, ここでは, Pemを上界を 使って不等式で評価した結果のみを示すことにしよう. その時に用いる上界をBhattacharyya*12バウンド (Bhattacharyya bound)と呼ぶ.

Thm : Bhattacharyyaバウンド

³

Pem­ 2p

pb(1−pb)

®dm

µ ´

8.4.6 ユニオンバウンド

そして, Bhattacharyyaバウンドを用いて, Viterbi復号によって何か(すなわち, 何でも良い)イベント

誤りが生じてしまう確率の上界を導いてみよう. その確率をPbと置くと,Pbは,イベント誤りe1またはe2

または· · · または em または · · · が生じる確率であるから,

Pb=P(e1te2t · · · temt · · ·) =P Ã1

G

k=1

ek

!

=P(e1) +P(e2) +· · ·+P(em) +· · ·= X1 k=1

P(ek)

ただし,tは, 直和集合(共通部分が存在しない和集合)を表すこととする. このように,結局,すべてのイベ ント誤りが発生する確率の和によってPbが求められるので,Pbは以下のように変形できる.

Pb=【Hamming重みが1であるようなイベント誤り発生確率の和】+· · ·

+【Hamming重みがmであるようなイベント誤り発生確率の和】+· · ·

*12「ばたちゃりや」と読む.

8.4 Viterbi復号の特性 83

さらにこの式についても,次のように変形することができる.

Pb=A1【Hamming重みが1であるようなイベント誤り発生確率】+· · ·

+Am【Hamming重みがmであるようなイベント誤り発生確率】+· · ·

=A1Pe1+A2Pe2+· · ·+AmPem+· · ·= X1 k=1

AkPek

ただし,Ak は, Hamming重みがkであるようなイベント誤りの総数である. このようにして, Pbを変形す

ることができた. あとは,それぞれのPekをBhattacharyyaバウンドを使って評価すると, PbA1

­ 2p

pb(1−pb)

® +A2

­ 2p

pb(1−pb)

®2

+· · ·= X1 k=1

Ak

­ 2p

pb(1−pb)

®k

このように,Rが,何かのイベント誤りに復号されてしまう確率Pbの上界を求めることができた. この上界 をユニオンバウンド(union bound)と呼ぶ.

Thm : ユニオンバウンド

³

全零系列0を送信したとき, 受信系列Rが何かのイベント誤りに復号されてしまう確率 Pb について, 以下の評価が成り立つ.

PbX1

k=1

Ak

­ 2p

pb(1−pb)

®k

.

µ ´

8.4.7 ユニオンバウンドを実際に求めるには

さて,このようにユニオンバウンドによるPbの評価を求めることができた. しかし, Hamming重みkの イベント誤りの総数Akは一般に求めることが難しいので,ユニオンバウンドを求めるためにも工夫が必要と なる. そこで, ユニオンバウンドをうまく求める方法を, 符号器の状態遷移図を使って考えてみよう. そのた めに,以下のような状態遷移図を考える.

00

01

10

11

状態遷移図におけるイベント誤りは, 例えば太線の矢印で示している経路のように,00からスタートし, 最終 的にまた00に戻る経路により表される. そして,そのような経路は無数に存在する.

ドキュメント内 符号理論NOTE (ページ 77-87)

関連したドキュメント