【0001】 【発明の属する技術分野】 本発明は、一般に、データ記憶とデータ伝送用の誤り訂正符号の分野に関し、より詳しくは、中間的長さのデータブロックに対して、誤り訂正符号を評価および最適化することに関する。 【0002】 【従来の技術】 データ記憶とデータ通信の分野の基本的な問題は、所与のブロック長と伝送速度のデータに最適または準最適な誤り訂正符号(ECC)を生成し、これらの誤り訂正符号を実際的に復号することもできる点である。 この問題は、今や、短いブロック長(例えば、長さN<100ビットのブロック)でも、また非常に長いブロック長(例えば、N>10 6ビット)でも、ほぼ解決されている。 しかしながら、多くの用途、例えば無線通信で用いられる誤り訂正符号は、一般に、中間的な範囲(およそN=2000ビット)のブロック長を有する。 これらのブロック長に最適な符号を生成することが、今なお問題となっている。 【0003】 多くが最適または準最適であることがわかっている短いブロック長では、多数の誤り訂正符号が知られている。 このブロック長が充分短い限り、これらのECCは、最尤復号器を用いて、実際的に、かつ最適に復号できる。 【0004】 非常に長いブロック長に最適な符号を見つけ出す問題は、一般化パリティ検査行列で定義されたパリティ検査符号によって、本質的に解決されてきた。 これらのタイプの符号は、「低密度のパリティ検査符号」(MIT Press1963年発行のResearch Monograph Series第21巻)の中で、RGGallager氏により初めて述べられたが、最近まで、正しく評価されなかった。 もっと最近では、疎な一般化パリティ検査行列で定義された改良符号、例えば、ターボ符号、イレギュラー低密度パリティ検査(LDPC)符号、Kanter−Saad符号、反復・累積符号、イレギュラー反復・累積符号が述べられた。 【0005】 これらの改良された符号は、特に注目すべき3つの利点を持っている。 第1に、これらの符号は、BP(belief propagation)反復復号法を用いて、効率的に復号できる。 第2に、これらの符号の性能は、理論上、無限ブロック長の限界において、密度変化法を用いて解析できることが多い。 第3に、密度変化法を用いれば、これらの符号が準最適な符号であることを実証できる。 無限ブロック長の限界において、これらの符号のBP復号法は、あるしきいレベルよりも低い雑音レベルを有するすべてのデータブロックを復号する。 また、そのしきいレベルは、シャノン限界から遠くないことが多い。 【0006】 改良符号を生成する好ましい従来技術の方法は、密度変化を用いて、無限ブロック長の限界に符号を最適化し、縮小バージョンであっても準最適な符号が得られると期待することであった。 この方法の問題点は、N<10 4では、少なくとも、このブロック長が、無限ブロック長の限界から、なお著しく遠いことである。 特に、無限ブロック長の計算により予測されたしきいレベルよりもずっと低い雑音レベルで、多くの復号失敗が認められる。 さらに、密度変化法から得られた符号を縮小する方法が、必ずしもあるとも限らない。 【0007】 例えば、N→∞限界において所与の速度の、もっともよく知られたイレギュラーLDPC符号は、何百、あるいは、何千ものパリティ検査に関与すべき変数ノードを持つことが多く、このことから、総体的なパリティ検査数が100以下であるときには、まったく意味がない。 【0008】 (二元消失通信路(BEC)用の密度変化法) この密度変化法は、二元消失通信路では単純である。 二元消失通信路は、3つの出力シンボル、すなわち、0、1、消失(疑問符「?」で表現できる)を有する2元入力通信路である。 この方法は、本発明による方法に対して重要なバックグラウンドであるから、さらに細かく違いを識別する。 【0009】 (パリティ検査符号) 線形ブロック2進誤り訂正符号は、パリティ検査行列の点から定義できる。 パリティ検査行列Aでは、列は、送信変数ビットを表わし、また行は、変数ビット間の線形の拘束または検査を定める。 さらに具体的には、行列Aは、一組の有効なベクトルまたは符号語zを定義し、zの各成分が0か1のいずれかであり、また次式が成り立つようにしている。 【0010】 A Z =0 (1) 【0011】 式中、すべての乗算と加算は、モジュロ2である。 【0012】 このパリティ検査行列がN個の列とN−k個の行を有する場合には、このパリティ検査は、ブロック長Nと伝送速度k/Nの誤り訂正符号を定める。 ただし、これらの行の一部が線形従属である場合にはこの限りではなく、このような場合、これらのパリティ検査の一部は冗長であり、またその符号は、実際には、さらに速い伝送速度を持つ。 【0013】 図1に示されるように、パリティ検査行列ごとに、対応するタナーグラフがある。 R. M. タナー氏の「低複雑度符号への再帰的方法」(1981年発行のIEEE Trans.Info.Theory,IT−27、533〜547ページ)を参照のこと。 タナーグラフ100は、円で表わされる変数ノードiと、四角で表わされるチェックノードaという2つのタイプのノードを有する2部グラフである。 タナーグラフでは、各変数ノードは、変数ノードiの検査に関与するチェックノードに連結される。 例えば、次式のパリティ検査行列【0014】 【数1】
【0015】 は、図1に示される2部タナーグラフで表わされる。
【0016】
実施の用途では、これらのグラフは、一般に、任意の数の異なるやり方で連結された何千ものノード(多数のループを有する)を含むものであることが理解されよう。 このようなグラフを解析して、最適な構成を決定することは困難である。
【0017】
パリティ検査行列で定義された誤り訂正符号は線形符号である。 これは、各符号語が、他の符号語の線形組合せであることを意味している。 検査行列では、それぞれ長さNである2
k個の可能な符号語がある。 上述の例では、これらの符号語は、000000、001011、010110、011101、100110、101101、110011、111000である。 線形の性質のために、これらの符号語はどれも、代表的なものである。 それゆえ、符号を解析するために、通常は、すべて零の符号語が送られるものと仮定される。 【0018】
(BECでのBP(belief propagation)復号法)
入力ビットは、確率xを有する消失として2元消失通信路を通り、確率1−xで正確に受け取られる。 BECは、ビットを0から1に(あるいは、その逆に)、絶対に切り換えないことに留意することが重要である。 すべて零の符号語が送られる場合には、受け取られる語は、完全に、ゼロと消失から成っていなければならない。
【0019】
受信機は、BP復号器を使用して、離散的メッセージをタナーグラフのノード間に通すことで、これらの入力ビットを復号する。 メッセージm
iaは、各変数ノードiから、各変数ノードiに連結された各チェックノードaへ送られる。 このメッセージは、変数ノードiの状態を表わす。 一般に、このメッセージは、3つの状態の1つ、すなわち1、0、または? であることができるが、すべて零の符号語がいつでも送られるために、m iaが値1を持つ可能性は無視できる。 【0020】
同様に、各チェックノードaから、各チェックノードに連結されたすべての変数ノードiへ送られるメッセージm
aiがある。 これらのメッセージは、変数ノードが、どのような状態にあるべきかについての、チェックノードaから変数ノードiへの指示語と解される。 このメッセージは、このチェックノードに連結された他の変数ノードの状態に基づいている。 これらのcheck−to−bitメッセージは、原則として、0、1、または? の値を取ることができるが、やはり、すべて零の符号語が送られるときには、0と? の2つのメッセージしか妥当でない。 【0021】
BEC用のBP復号プロセスにおいて、変数ノードiからチェックノードaへのメッセージm
iaは、そのようなメッセージがBECでは常に正しいために、非消失受信メッセージに等しいか、あるいは、入ってくるメッセージがすべて消失であるときには、消失に等しい。 この検査に関与する別のノードから入ってくるどんなメッセージも消失であるときには、チェックノードaから変数ノードiへのメッセージm aiは、消失であり、そうでなければ、メッセージm aiは、この検査に関与する他のノードから入ってくるすべてのメッセージの2進和の値を取る。 【0022】
BP復号は、反復復号である。 これらのメッセージを初期設定して、この通信路では消失されないすべての変数ノードが、対応する受信ビットに等しいメッセージを送り出し、また他のすべてのメッセージが、当初、消失であるようにする。 BPメッセージ・プロセスの反復は、終局的には定常メッセージに収束する。 なぜなら、BP復号の収束は、特に単純なBECでは保証されるが、それ以外の通信路では保証されないからである。 入ってくる非消失メッセージがない場合を除き、任意の消失された変数ノードの最終復号値は、まさに、そのノードに入ってくる任意の非消失メッセージの値である。 このような場合、BP復号プロセスは終了し、特定の変数ノードを復号しそこなう。
【0023】
(密度変化)
ここでは、多数のブロックにわたるBP復号に対する平均失敗確率を考察する。 このメッセージm
iaが消失である確率を表わす実数p iaは、各メッセージm iaと関連付けられる。 同様に、メッセージm aiが消失である確率を表わす実数q aiは、各メッセージm aiと関連付けられる。 密度変化法では、確率p iaとq aiは、誤り訂正符号を表わすタナーグラフがループを持たない限り、正確なやり方で決定される。 【0024】
p
iaの式は、以下である。 【0025】
【数2】
【0026】
式中、b∈N(i)\aは、チェックノードaを除き、隣接変数ノードiに直結されたすべてのチェックノードを表わす。 この式は、メッセージm
iaが消失であるためには、変数ノードiを送信時に消失しなければならず、また他の検査から入ってくるメッセージもすべて、消失であるという事実から、導き出すことができる。 もちろん、入ってくるメッセージが相関関係にある場合には、この式は、正確ではない。 しかしながら、ループを持たないタナーグラフでは、入ってくるメッセージはそれぞれ、他のすべてのメッセージとは無関係である。 【0027】
同様に、以下の式【0028】
【数3】
【0029】
は、入ってくるメッセージがすべて、ゼロか1のいずれかの状態にあるときに、メッセージq
aiも、0または1の状態でしかあり得ないという事実から、導き出すことができる。 【0030】
密度変化の式(3)と(4)は、反復により解くことができる。 この反復がq
aiメッセージから始まる限り、適切な初期設定は、変数ノードからチェックノードへのあらゆるメッセージに対してp ia =xであり、またチェックノードから変数ノードへのあらゆるメッセージに対してq ai =0である。 BECの密度変化式は、最終的に収束する。 これは、ループを持たないグラフにおいて定義された符号に対して保証できる。 変数ノードiにて復号しそこなう確率であるb iを、次式から決定することができる。 【0031】
【数4】
【0032】
(小符号の正確な解)
上述の通り、密度変化式(3),(4),(5)は、この符号が、ループ無しのタナーグラフ表現を持つときに、正確である。
【0033】
次式のパリティ検査行列で定義され、かつ、図2に示される対応するタナーグラフで表現された誤り訂正符号を考えてみる。
【0034】
【数5】
【0035】
この符号は、0000、0011、1101、1110という4つの符号語を有する。 0000のメッセージが送られる場合には、0000、000? 、00?0、00? ? 、0?00などの16個の可能な受信メッセージがある。 n
e個の消失を有するメッセージを受け取る確率は、x ne (1−x) 4−neである。 メッセージは、BP復号器により、部分的にまたは完全に復号されることもある。 例えば、受信メッセージ? 00? は、0000に完全に復号されるが、ただし、メッセージ0? ? ? は、部分的にのみ00? ? に復号される。 なぜなら、送信符号語が、実際に0000または0011であったかどうか判定するのに充分な情報がないからである。 【0036】
所与のビットが復号後に消失にとどまる正確な確率を、確率によって重みを付けられた16個の可能な受信メッセージにわたって合計することで、決定することは容易である。 例えば、第1のビットは、次のメッセージの1つ(すなわち、???0、??0?、または、????)を受け取ったときに、消失としてのみ復号される。 したがって、第1のビットが復号されない正確な確率は、2x
3 (1−x)+x 4 =2x 3 −x 4である。 【0037】
的を最後のビットに絞る場合には、このメッセージは、次のメッセージの1つ(すなわち、00??、0???、?0??、??0?、または、????)を送る場合を除き、復号される。 それゆえ、第4のビットが復号されない総体的な確率は、x
2 (1−x) 2 +3x 3 (1−x)+x 4 =x 2 +x 3 −x 4である。 密度変化法では、p 11 、p 21 、p 22 、p 32 、p 42 、q 11 、q 12 、q 22 、q 23 、q 24 、b 1 、b 2 、b 3 、b 4の変数の値は、次式で決定される。 【0038】
p
11 =x (7) p
21 =xq 22 (8) p
22 =xq 12 (9) p
32 =x (10) p
42 =xq 11 =p 21 (11) q
12 =p 11 (12) q
22 =1−(1−p 32 )(1−p 42 ) (13) q
23 =1−(1−p 22 )(1−p 42 ) (14) q
24 =1−(1−p 22 )(1−p 42 ) (15) および、
b
1 =xq 11 (16) b
2 =xq 12 q 22 (17) b
3 =xq 23 (18) b
4 =xp 24 (19) 【0039】
上記の式を解けば、次式が得られる。
【0040】
p
11 =x (20) p
21 =2x 2 −x 3 (21) p
22 =x 2 (22) p
32 =x (23) p
42 =x (24) p
11 =2x 2 −x 3 (25) および、
q
12 =x (26) q
22 =2x−x 2 (27) q
23 =x+x 2 −x 3 (28) q
24 =x+x 2 −x 3 (29) および、
b
1 =2x 3 −x 4 (30) b
2 =2x 3 −x 4 (31) b
3 =x 2 +x 3 −x 4 (32) b
4 =x 2 +x 3 −x 4 (33) 【0041】
b
1とb 4の結果を調べれば、密度変化の解が、この符号用の直接のアプローチと正確に一致することが示される。 【0042】
(長いブロック長の限界)
タナーグラフのすべての局所近傍が同一である場合には、密度変化式を簡約することができる。 例えば、各変数ノードiが、d
v個のパリティ検査に連結され、また各チェックノードaがd c個の変数ノードに連結される場合には、すべてのp iaは、同一値pに等しく、すべてのq aiは、同一値qに等しく、すべてのb iは、同一値bに等しい。 したがって、 【0043】
【数6】
および、
【数7】
【0044】
これらの式は、N→∞限界において有効である(d
v ,d c )のレギュラーGallager符号用の密度変化式である。 レギュラーGallager符号は、各行が、正確にd c個の1を含み、また各列が、正確にd v個の1を含むという制限を特徴とする疎なランダム・パリティ検査行列である。 【0045】
これらの式が、無限ブロック長の限界において有効であるという直観的な理由は、N→∞のときに、レギュラーGallager符号のタナーグラフの代表的ループのサイズが無限大となり、したがって、ノードに入ってくるすべてのメッセージが別々となり、またレギュラーGallager符号は、ループなしのグラフ上で定義された符号として挙動する。 d
vとd cの特定の値に対して、式(34)と(35)を解くと、x cという臨界消失限度値よりも下で、p=q=b=0である解が得られる。 これは、復号が完全であるということを意味している。 x cよりも上では、bは、非零の解を持ち、この解は、復号失敗に相当する。 値x cは、数値的に容易に決定できる。 例えば、d v =3およびd c =5の場合には、x c ≒0.51757である。 【0046】
これらの密度変化計算は、イレギュラーGallager符号、あるいは、近傍が異なる有限数の異なるノード・クラスを有するイレギュラー反復・累積符号のような他の符号に一般化できる。 このような一般化では、一般に、それぞれのノード・クラスを離れるメッセージに対して1つの方程式がある連立方程式を導き出すことができる。 これらの連立方程式を解くことにより、やはり、臨界しきい値x
cを求めることができ、このしきい値よりも下では、復号が完全である。 したがって、このような符号は、最大雑音しきい値x cを有する符号を見つけることで、N→∞限界において最適化できる。 【0047】
【発明が解決しようとする課題】
あいにく、密度変化法は、有限ブロック長の符号では、誤りがある。 どんな有限符号に対しても方程式(3)と(4)を解くことが可能であると考え、しかも、ループの存在を無視することが、それほど重大な誤りではないと期待する場合もある。 しかしながら、これは、レギュラーGallager符号を考慮すればわかるように、うまくいかない。 有限ブロック長のレギュラーGallager符号用の方程式(3)、(4)、(5)は、無限ブロック長の限界において求めることになる解とちょうど同じ解を持ち、したがって、いかなる有限サイズの影響も予測しないであろう。 しかしながら、有限ブロック長のレギュラーGallager符号の実際の性能は、このような単純な方法で予測されるものよりもかなり悪いことが知られている。
【0048】
それゆえ、従来技術の方法の問題を伴わない有限長の誤り訂正符号を正しく評価する方法が必要である。
【0049】
【課題を解決するための手段】
本発明は、2元消失通信路、または加法白色ガウス雑音通信路において、有限サイズのデータブロックに対して誤り訂正符号を評価する方法を提供する。 誤り訂正符号は、列が変数ビットを表わし、行がパリティビットを表わす一般化パリティ検査行列によって定義される。 この行列の表記法では、この通信路を通じては送られない「隠れ」変数ビットは、この一般化パリティ検査行列の対応する列の上に、横線で表わされる。 この一般化パリティ検査行列は、2部グラフとして表わされる。 2部グラフ中のノードの数が、所定のしきい値よりも小さくなるまで、この2部グラフ中の単一ノードを、反復的に繰り込む。
【0050】
反復的な繰り込みの間、目標ノードとして、特定の変数ノードを選択し、その目標ノードと、2部グラフ中の他のあらゆるノードとの距離を測定する。 次に、「葉」変数ノードが少なくとも1つある場合には、目標ノードからもっとも遠い葉変数ノードを繰り込む。 そうでなければ、目標ノードからもっとも遠い葉チェックノードを繰り込み、また、そうでなければ、目標ノードからもっとも遠く、かつもっとも少ない直結チェックノードを有する変数ノードを繰り込む。 葉ノードは、このグラフ中の他の1つのノードだけに連結される。
【0051】
このグラフ中のノードの数が、所定のしきい値よりも少ないときには、目標ノードに対する復号失敗率が、正確に決定される。
【0052】
本発明は、雑音の関数としての復号失敗の点から最高の性能を有する、指定したデータブロックサイズと伝送速度の誤り訂正符号を探すことで、誤り訂正符号を最適化する方法を提供する。 最適な符号の探索を導くために、送信変数ビットに対する復号失敗率を利用する。
【0053】
【発明の実施の形態】
(繰り込み群法)
本発明は、「実空間」の繰り込み群変換を用いることで、誤り訂正符号を評価する。 本発明の繰り込み群(RG)法は、「相転移と臨界現象」(1976年版第6巻、監修者C.Domb氏およびM.S.Green氏、AcademicPress,London)の中で、T. Niemeijer氏とJ. M. J. van Leeuwen氏により述べられた磁気スピン系の解析のための技法から修正変更されたものである。 繰り込み群は、データの記憶および伝送に用いられる誤り訂正符号に、かつて応用されたことはなかった。
【0054】
大きいが、ただし、有限の誤り訂正符号の性能を評価するために、本発明では、大きい符号を、同一の、またはほぼ同一の性能(すなわち、復号失敗率)を有するわずかに小さい符号に反復的に代える。 特に、本発明では、その反復法の各段階にて、タナーグラフと、一組の確率変数p
iaおよびq aiを、タナーグラフのノードにより送られたメッセージと関連付けておく。 本発明を記述する目的で、タナーグラフと、pおよびqの変数との組合せを、「修飾タナーグラフ」と呼ぶ。 【0055】
本発明のRG法の基本は、RG変換であり、このRG変換を使って、本発明では、この修飾タナーグラフ中の単一ノードを反復的に排除し(すなわち、「繰り込み」)、また、pおよびqのメッセージの残りの値を調整して、少ない方の誤り訂正符号の復号失敗率を、その代えられた符号にできる限り近づけるようにしている。
【0056】
したがって、繰り込み段階ごとに、本発明の符号を表わす修飾タナーグラフが、1ノードだけ収縮し、このような処理は、このグラフが、最終的に、誤り訂正符号の性能を効率的なやり方で決定できるくらい小さくなるまで、続けられる。 これと対照的に、従来技術の密度変化法は、ノード数、あるいは、ノードを互いに連結する方法を絶対に変更しない。 言い換えれば、それらのグラフは静的であるが、一方、本発明のグラフは、繰り込みの間、動的に変化する。 本発明のグラフが充分小さいとき、例えば、残りのノードの数が、所定のしきい値よりも少ないときには、その失敗率は、容易に決定できる。 一実施形態において、本発明では、このグラフを、単一ノードまで縮小する。
【0057】
図9は、本発明による一般的な方法900のステップを示している。 復号失敗率b
iを決定する本発明の修飾タナーグラフ中の選択「目標」変数ノードiごとに、このグラフからの単一ノード(目標ノード以外)を、所定のしきい値950に達するまで、繰り返して繰り込む。 このしきい値は、所望のノード数、あるいは、残りのノードに対する所望の失敗率として表わすことができる。 ノードは、以下のように、繰り込まれる。 【0058】
他のあらゆるノードと、「目標」ノードiとの間の「距離」を測定する(910)。 2つのノード間の距離は、一方のノードから他方のノードに移動するのに通るノードの最小数(すなわち、介在するノードの数)である。
【0059】
「葉」変数ノードがあれば、「目標」ノードからもっとも遠い葉変数ノードを繰り込む(920)。 あるノードは、それが、グラフ中の他の1つのノードにしか連結されないときには、葉ノードである。 距離の結合は、ランダムに断たれることがある。
【0060】
そうでなく、「葉」変数ノードがなければ、「目標」ノードからもっとも遠い「葉」チェックノードを繰り込む(930)。 この場合も、結合が、ランダムに断たれることがある。
【0061】
そうでなく、「葉」チェックノードがなければ、「目標」ノードからもっとも遠い変数ノードの中から、最小数のチェックノードに直結された1つの変数ノードを繰り込む(940)。 この場合も、結合が、ランダムに断たれることがある。
【0062】
これらの繰り込みステップは、このグラフを、所望のノード数まで縮小するまで、反復的に繰り返される。 これらのステップの詳細は、以下でさらに詳しく説明される。
【0063】
上記のステップは、所望数の目標ノードに適用できる。 例えば、グラフ中のあらゆるノードの平均失敗率を決定できる。 実施の用途では、この繰り込みは、同じノードの群を表わす目標ノードに適用される。 この場合、このノード群が、誤り訂正能力に関して、「強い」のか「弱い」のかを判定できる。 この場合、この情報を使用すれば、誤り訂正符号の総体的な性能を向上させることができる。 例えば、弱い群のノードは、さらに多くのパリティ検査に連結できる。 したがって、本発明は、構造化されたやり方で誤り訂正符号を向上させる手段を提供する。
【0064】
(ループを有さない修飾タナーグラフ用のRG変換)
はじめに、ループのないタナーグラフを考慮に入れて、このような誤り訂正符号に対して、正確な失敗率を得るのに充分なRG変換を決定する。 次に、RG変換を拡大して、ループを有するタナーグラフに対して、優れた近似結果を得る。
【0065】
本発明では、常に、その修飾タナーグラフを初期設定して、すべてのb
l =x、p ia =x、すべてのq ai =0が成り立つようにする。 本発明は、指定した目標変数ノードiでの復号失敗率b iに関与している。 本発明の方法900は、目標変数ノードi自体以外のノードを、上述のように、一度に1つ、繰り返して繰り込むことで、b iを得る。 【0066】
第1の可能性は、目標ノードiに連結されたもっとも遠い「葉」変数ノードを繰り込むことである。 この葉ノードが「消える」と、p
iaとq aiも捨てられることが明らかである。 本発明では、目標ノードiから他の変数ノードjに至るすべてのq aj変数も繰り込む。 このような繰り込みに関する本発明の式は、次式で示される。 【0067】
q
aj ←1−(1−q aj )(1−p ia ) (37) 【0068】
式中、左向きの矢印は、q
ajの旧値を新値に代えることを示している。 q ajの繰り込みごとに、その値が増すことに注目されたい。 【0069】
単一の変数ノードにしか連結されない「葉」チェックノードaを繰り込むときに、目標ノードiが結び付けられている他のチェックノードbに至るすべてのp
ib変数の値を調整する。 この繰り込み群変換は、次式である示される。 【0070】
p
ib ←p ib q ai (38) 【0071】
p
ibの繰り込みごとに、その値が減ることに注目されたい。 また一方では、次式のように、b iも繰り込まなければならない。 【0072】
b
i ←b i q ai (39) 【0073】
ステップ940の繰り込みは、ループの多いグラフについて、以下でさらに詳しく述べる。
【0074】
「目標」ノードiだけが残っているときには、平均失敗率のRG予測として、ノードb
iの現時点の値を使用する。 上述の通り、これらのステップは、任意の数の目標ノードに対して、繰り返すことができる。 【0075】
(例)
本発明によるRG法をよりよく説明するために、以下の単純な例を与える。 次式のパリティ検査行列により定義された誤り訂正符号を想起されたい。
【0076】
【数8】
【0077】
第2の変数ノードb
2での復号失敗率を決定したい。 p=p 21 =p 22 =p 32 =p 42 =x、q 11 =q 12 =q 22 =q 23 =q 24 =0、およびb 2 =0を初期設定する。 【0078】
図3(a)に示されるように、本発明では、この符号のために、タナーグラフを修飾した。 変数ノード2以外の変数ノードのすべては葉ノードであり、したがって、それらの変数ノードのどれでも繰り込むことができる。 本発明の一般的な方法900により、ノード2からもっとも遠いノードを繰り込んで、結合をランダムに断つ。 変数ノード4を選択する場合には、p
42とq 24を捨てて、式(37)を用いて、新値q 22 =xとq 23 =xを得る。 【0079】
縮小サイズの新たなタナーグラフが、図3(b)に示されている。 次に、変数ノード3を繰り込む。 ノードp
32とq 23を捨てて、ノードq 22を、値1−(1−x) 2 =2x−x 2に繰り込む。 さらに小さい修飾タナーグラフが図3(c)に示されている。 次に、変数ノード1を繰り込む。 ノードp 11とq 11を捨てて、さらに小さい繰り込まれた値q 12 =xを得る。 このタナーグラフは、図3(d)に示されている。 次に、チェックノード2を繰り込む。 ノードp 22とq 22を捨てて、図3(e)のタナーグラフに関して図示されるようにp 21 =b 2 =2x 2 −x 3を得ることができる。 最後に、チェックノード1を繰り込む。 これは、単一の変数ノード、すなわち、元の目標ノード2だけを残し、b 2は、上述のように、その正確な失敗率b 2 =2x 3 −x 4に繰り込まれる。 【0080】
この例により、ループを持たないグラフ上で定義された符号語に対して、RG法がなぜ正確であるのか明らかになる。 RG変換は、本質的に、従来技術の密度変化式を再構成するものであり、このような誤り訂正符号に対して、密度変化が正確であることはわかっている。 本発明のRG法の利点は、ループを「有する」2部グラフで表わされる誤り訂正符号に対して、RG法が、さらに優れた近似を与えることである。 優れた誤り訂正符号は、中位のサイズでも、常にループを持つことがよくわかっている。 その主な理由として、ループは、実質的に符号のサイズを大きくすることなく、冗長さを提供するからである。
【0081】
(ループを有するグラフ用のRG法)
ループを有するグラフで表わされる誤り訂正符号では、終局的には、「葉」ノードではないノードを繰り込まなければならない(940)。 本発明では、非葉チェックノードを絶対に繰り込む必要がないことに留意されたい。 これを行うために、はじめに、目標ノードiに連結されたすべてのチェックノードa、bなどを収集し、q
ai 、q bi 、p ia 、p ibなどを捨てる。 ノードiに結び付けられた任意の所与のチェックノード(例えば、チェックノードa)では、ノードaに結び付けられた他のすべての変数ノードjも収集して、q ajの値を繰り込む。 【0082】
q
aj変数の繰り込みも、様々な精度で行うことができる。 もっとも単純な方法は、直接、式(37)を利用する。 この方法の問題は、p iaの値が、常に過大評価であることである。 p iaは、繰り込みごとに「減る」ことを想起されたい。 i番目のノードを繰り込んだ後で、そのノードが葉ノードになるから、p iaは、まだ完全には繰り込まれておらず、したがって、過大評価される。 【0083】
直接、p
iaを使用する代わりに、p iaに連結されたあらゆるチェックノードを繰り込んだ後で、p iaが取る値を使用することもできる。 すなわち、式(37)中のp iaを、次式で与えられた実効値p ia effに代えることもできる。 【0084】
【数9】
【0085】
その一方、q
biの値は過小評価であることがわかっている。 なぜなら、q biの値も、まだ完全には繰り込まれておらず、したがって、p ia effも過小評価であるからである。 さらに別のレベルに進むことで、このような誤りを訂正しようとすることもできる。 p ia effを評価する前に、はじめに、p ia effに流れ込むq biを再評価する。 したがって、式(37)中のp iaを、次式で与えられた実効値p ia effに代える。 【0086】
【数10】
【0087】
式中、q
bi effは、さらに次式で与えられる。 【0088】
【数11】
【0089】
これらのすべての式をまとめて、最終的に、次式のRG変換を得る。
【0090】
【数12】
【0091】
式(44)のRG変換は、さらに詳しく説明するに値する。
【0092】
図4において、変数ノードiが、a、b、cの3つのチェックノードに結び付けられ、かつ、チェックノードaが変数ノードjに結び付けられたタナーグラフが示されている。 チェックノードbおよびcは、k、l、m、nと標記された変数ノードに連結される。 変数ノードiを通る情報を考慮に入れて、チェックノードaが変数ノードjに消失メッセージを送る確率q
ajを知りたい。 【0093】
本発明では、チェックノードaが変数ノードjに消失メッセージを送る、以前のある累積確率q
ajをすでに得ている。 なぜなら、以前に、他のノードを、すでに繰り込まれたチェックノードaに結び付けているからである。 【0094】
消失メッセージの新たな確率は、以下の論理的推論から決定できる。
「m
ajは、それがすでに消失であった場合、あるいは、m iaが消失であり、かつ、 (m
biまたはm kbまたはm lbが消失であり)、かつ、(m ciまたはm mcまたはm ncが消失である)場合に、消失である。 」 【0095】
このような論理的推論を、確率用の式に変換することは簡単である。 論理的推論において、2つのメッセージに対して「m
1およびm 2 」を得れば、これらの項を、対応する確率用の(p 1 p 2 )に変換するが、一方、「m 1またはm 2 」は、(1−(1−p 1 )(1−p 2 ))に変換される。 図4用の本発明の論理的推論全体を、確率用の式に変換すれば、式(44)のRG変換の一例を復元することができる。 【0096】
本発明では、常に、q
aj用のRG変換を、繰り込んでいる変数ノードiを中心とする局所近傍の論理に一致させる。 実際、式(44)に与えられたRG変換は、ノードiの局所近傍がツリー型であれば、適切であり、また、この局所近傍にループがあれば、調整されるべきである。 【0097】
例えば、図5のグラフは、変数ノードkをbとcの2つのチェックノードに結び付け、さらに、これら2つのノードをそれぞれ、繰り込まれる変数ノードiに結び付けた場合を示している。 チェックノードbまたはcを繰り込む前に、変数ノードkが消失を送出する確率p
kbとp kcは、p kbとp kcのすべての繰り込みが、相前後して起こるために、同一でなければならないことに留意されたい。 【0098】
したがって、チェックノードaが、消失メッセージを変数ノードjに送るかどうかについての論理的推論は、以下の通りである。
「m
ajは、それがすでに消失であった場合、あるいは、((m iaが消失であり)、 かつ、
((m
kbが消失であり)、あるいは、(m biおよびm ciが消失である)))場合に、消失である。 」 【0099】
繰り込みプロセスのこの段階では、m
kbが消失である場合に、m kcも消失でなければならない。 本発明の論理的推論をRG変換に変えると、次式を得る。 【0100】
q
aj ←1−(1−q aj )(1−p ij (1−(1−p kb )(1−q bi q ci )))(45) 【0101】
正しく処理されたノードを中心とする近傍のサイズを大きくすれば、非葉変数ノードiを繰り込む段階を、さらに正確にすることができる。 もちろん、この近傍のサイズを大きくすると、さらに優れた計算法を用いて、精度を上げることに対処しなければならない。
【0102】
図10は、葉ノードではない変数ノードを繰り込む方法(すなわち、図9のステップ940)を要約している。
【0103】
ステップ1010は、繰り込まれる変数ノードに連結されたa、bなどのすべてのチェックノードを列挙して、これらのチェックノードと変数ノードとの間のすべての確率変数p
ia 、p ib 、q ai 、q biなどを捨てる。 【0104】
隣接するチェックノードの1つaに結び付けられた変数ノードjごとに、以下のサブステップにより、q
ajの値を繰り込む。 【0105】
ステップ1020は、局所近傍において、繰り込まれる変数ノードiから所定の距離までの、あらゆるチェックノードと変数ノードを見つける。 これらの距離は、上述のように測定される。
【0106】
論理的推論を利用して、消失メッセージのどのような組合せにより、チェックノードaから変数ノードjへのメッセージも消失となるのか決定する1030。
【0107】
上述の通り、この論理的推論を、q
aj用のRG変換に変える1040。 【0108】
(RG変換の正確な完了)
上述の通り、本発明のRG法は、「目標」ノードiのみを残すまで、常にノードを繰り込み、次に、復号失敗率b
iを決定することができる。 その一方、本発明では、正確な決定を行うのに充分な数のノードを繰り込むこともできる。 【0109】
この正確な決定を説明する目的で、代りに、N個のノードのタナーグラフと、このグラフのノードiごとの関連消失確率x
iを用いて、誤り訂正符号を表わす。 この「消失グラフ」は、上述の修飾タナーグラフ301〜305とは異なる。 この復号失敗率は、消失グラフに対して正確に決定できるが、ただし、その正確な計算は、消失確率グラフ中のノードの数が少ない場合にのみ、実施可能である。 消失確率グラフに対して、復号失敗率を正確に決定する方法を述べ、次に、本発明による修飾グラフを、同等な消失グラフに変換する方法を述べる。 【0110】
所与のノードiの復号失敗率を正確に決定するために、すべて零のメッセージから全消失のメッセージに及ぶ2
N個の可能な受信メッセージすべてを生成し、BP復号器を用いて、メッセージをそれぞれ復号する。 【0111】
各メッセージは、次式の確率を持つ。
【0112】
p=Пx
i П(1−x j ) (46) 【0113】
式中、第1の積は、消失されるあらゆるノードにわたり、また第2の積は、消失されないあらゆるノードにわたる。 ノードiが消失に復号する確率のすべての可能な受信メッセージにわたって加重平均を取ることで、b
iを決定する。 この正確な計算の複雑性がO(2 N )であるために、本発明では、小さいNに限定したが、それでも、充分なノードを繰り込んだ後で、正確な計算に切り替えれば、ある精度を得ることができる。 【0114】
正確な最終計算における1つの微妙な違いは、本発明において、タナーグラフと、変数ノードiごとの関連消失確率x
iを用いて、誤り訂正符号を表わすことである。 これと対照的に、一般のRG法は、ただ修飾タナーグラフだけを使用する。 幸いにも、修飾タナーグラフを消失グラフに変換することが可能である。 RG法の各段階において、チェックノードaから出るあらゆる確率q aiは等しく(すなわち、q ai =q a )、また変数ノードiから出るあらゆる確率p iaは等しい(すなわち、p ia =p i )ことに留意されたい。 【0115】
p
ka =q aの確率を持つ新たな変数ノードkを、消失グラフ中のノードaに追加することで、すべてのq a確率をゼロに等しく設定できる。 修飾タナーグラフが残るときには、q確率がすべてゼロになるようにし、また、各変数ノードから出るp ia確率がすべて、p iに等しくなるようにしている。 本発明では、p iを、これらの変数ノードの消失確率と解する。 【0116】
図6は、修飾タナーグラフ601を、消失確率を持つ等価消失タナーグラフ602に拡張する一例を示している。
【0117】
(一般化パリティ検査行列への拡大)
一般化パリティ検査行列は、ターボ符号、Kanter−Saad符号、反復・累積符号などの最新の誤り訂正符号の多くを定義している。 一般化パリティ検査行列では、「隠れ」ノードを表わすために、パリティ検査行列に、付加的な列を追加している。 隠れノードは、他のノードには渡されない状態変数を持っている。 すなわち、隠れノードの状態は「隠される」。 これらの隠れ状態変数について望ましい表記法は、対応する列上の水平線である。 例えば、第1の変数ノードが隠れノードである符号を示すために、次のように書き表す。
【0118】
【数13】
【0119】
変数ノードが、本発明のグラフィカルモデルにおいて、隠れノードであることを示すために、塗りつぶし円ではなくて、白抜き円を用いている。 このようなグラフは、タナーグラフを一般化したものであって、「Wibergグラフ」と呼ばれる。 N. Wiberg氏の「一般的なグラフでの符号と復号」(1996年リンチェピング大学博士論文)、および、N. Wiberg氏らの「一般的なグラフでの符号と反復復号」(1995年発行のEuro.Trans.Telecomm第6巻、513〜525ページ)を参照のこと。
【0120】
図7は、この一般化パリティ検査行列または式(47)によって定義された誤り訂正符号を表わすWibergグラフを示している。
【0121】
本発明のRG法900を一般化して、Wibergグラフを処理するために、通常の送信変数ノードに対して行うのと同様に、消失率xではなくて、隠れノードから出る確率p
iaを1に初期設定する。 これは、隠れノードが常に消失される一方で、通常の変数ノードが、xの確率で消失されるという事実を反映している。 【0122】
(数値シミュレーションとの比較)
ここで、本発明のRG法のいくつかの実験予測を述べる。 N=36およびk=36と一致するパリティ検査行列により、(3,5)レギュラーGallager誤り訂正符号を定義する。 すなわち、このパリティ検査行列内の36行の各行は、1である5つのエントリを有し、その残りはゼロである。 また60列の各列は、ゼロである3つのエントリを有する。 隠れノードはない。 どの2つのパリティ検査も、2つ以上の変数ノードを共有しない。 これは、ノードのすべての局所近傍がツリー型であることを意味している。 それゆえ、非葉変数ノードを繰り込むときはいつでも、RG変換(44)を利用する。 7つのノードが残されるまでノードを繰り込み、次に、このような決定を正確に終了する。
【0123】
x=0とx=1との間において、0.05の間隔で消失率xを考慮に入れる。 RG近似を利用するときに、すべてのノードiにわたって復号失敗率b
iを平均して、総体的なビット誤り率を得る。 本願発明者らの実験は、それぞれの消失率での1000回の試行を含むが、標準BP復号法により復号する。 【0124】
図8は、本願発明者による実験結果を示している。 図8では、x軸は消失率であり、またy軸はビット誤り率である。 曲線801は、従来技術の密度変化予測であり、曲線802は、RG理論的予測であり、白抜き円803は、本願発明者による実験結果である。 図8は、密度変化予測が、しきい値型の挙動を持ち、短いブロック長または中位のブロック長に対しては完全に誤っているが、しかるに、本発明によるRG法は誤っていないことを明確に示している。
【0125】
(ガウス雑音通信路への拡張)
本発明のRG法を拡張して、RG法を加法的白色ガウス雑音(AWGN)通信路にも使用できるようにする。 これは、「ガウス近似を用いた、低密度パリティ検査符号のSum−Product復号の解析」(IEEE Trans.Info.Theory、2001年発行、第47巻、第2号、657〜670ページ)の中でChung氏らにより述べられたような、AWGN通信路用の密度変化に、ガウス近似を適応させることで行う。 はじめに、この近似を説明する。
【0126】
AWGN通信路では、0と1の2つの可能な入力しかないが、出力は、一組の実数である。 xが入力である場合には、出力は、y=(−1)
x +zである。 式中、zは、零平均と分散σ 2を有するガウス確率変数である。 この符号中の受信ビットiごとに、対数尤度比m i 0 =ln(p(y i |x l =0)/p(y i |x l =1))は、この送信ビットiがゼロであった相対対数尤度比を決定する(ただし、受信実数をy iとする)。 【0127】
この誤り訂正符号は、上述のように、一般化パリティ検査行列によって定義される。 すべて零の符号語が送られ、その復号プロセスは、sum−productのBPプロセスである。 このような復号プロセスにおいて、実数値のメッセージは、互いの関数として、反復的に解かれる。 使用されるタイプの実数値のメッセージは、変数ノードiからチェックノードaへのm
ia 、および、チェックノードaから変数ノードiへのm aiである。 【0128】
メッセージm
iaは、変数ノードiが、ゼロか1のいずれかであるその確率を、チェックノードaに知らせるときに用いる対数尤度比である。 例えば、m ia →∞は、ノードiが確かにゼロであることを意味するが、一方、m ia =1は、変数ノードiが、ln(p(x l =0)/p(x l =1))=1であることをチェックノードaに信号で知らせていることを意味している。 メッセージm aiは、変数ノードiの状態についての、チェックノードaから変数ノードiへの情報と解される対数尤度比である。 【0129】
sum−product復号では、これらのメッセージは、以下の更新ルールにより、反復的に解かれる。
【0130】
【数14】
【0131】
ノードiが隠れノードである場合には、m
i 0は省略されて、次式となる: 【0132】
【数15】
【0133】
AWGN通信路用の密度変化法では、確率分布が、あらゆる可能な受信ブロックにわたっての平均値であるようなメッセージに対して、確率分布p(m
ia )とp(m ai )を考慮に入れる。 すべてのxに対してf(x)=f(−x)e xである場合には、分布f(x)は、一致したと呼ばれる。 この一致条件は、sum−product復号のもとでのあらゆるメッセージに対して、メッセージ確率分布用に保存される。 【0134】
確率分布p(m
ia )とp(m ai )が、ガウス分布として近似される場合には、この一致条件は、これらの分布の平均μが、分散σ 2 ×σ 2 =2μに関係することを意味する。 このことは、これらのメッセージ確率分布が、単一のパラメータ、すなわち、それらの平均で特徴づけられることを意味する。 【0135】
したがって、これらのメッセージ確率分布がガウス分布であるという近似を行うことで、AWGN通信路用の密度変化式を、変数ノードiからチェックノードaへのメッセージの確率分布の平均u
ia 、および、チェックノードaから変数ノードiへのメッセージの確率分布の平均v aiに対して、首尾一貫した式に縮小することができる。 これらの式は、次式である。 【0136】
【数16】
【0137】
式中、u
0はm i 0の平均値であって、隠れノードに対しては省かれて、次式となる。 【0138】
【数17】
【0139】
式中、φ(x)は、次式によって定義された関数である。
【0140】
【数18】
【0141】
(AWGN通信路用のRG変換)
ガウス近似のもとでのAWGN通信路用の密度変化式(50)および(51)は、BEC通信路用の密度変化式(4)および(3)の類似物である。 AWGN通信路用の本発明のRG処理法は、BEC通信路用のものとほぼ同一である。 主な違いは、RG変換を変更することである。
【0142】
ちょうど前例と同じように、ツリー型のグラフ用の密度変化式を正確に再現する一組のRG変換を構築する。 本願発明者は、u
aiとv iaの変数を、連結ノードのそれぞれの対の間に保つことで、その符号用の修飾Tanner/Wibergグラフを生成する。 u ai変数は、無限大に初期設定されるが、一方、v ia変数は、u 0に初期設定される。 ただし、i番目のノードが隠れノードである場合にはこの限りではなく、この場合、v iaは、ゼロに初期設定される。 本発明ではまた、v ia変数のように初期設定される変数h I (b iに類似している)をBECにも導入する。 【0143】
変数ノードiに連結された葉チェックノードaを繰り込む場合には、iに結び付けられた他のチェックノードbを見出して、以下のRG変換を適用する。
【0144】
v
ib ←v ib +u ai (53) 【0145】
および、
h
i ←h i +u ai (54) 【0146】
チェックノードaに連結された葉変数ノードiを繰り込む場合には、チェックノードaに結び付けられた他の変数ノードjを見出して、以下のRG変換を適用する。
【0147】
u
aj ←φ −1 (1−(1−φ(u aj ))(1−φ(v ia ))) (55) 【0148】
v
ibを繰り込むごとに、v ibの大きさが増す一方で、u ajを繰り込むごとに、u ajの大きさが減ることに留意されたい。 【0149】
a、bなどのチェックノードに連結された非葉変数ノードiを繰り込むときには、u
ajのような変数を繰り込む。 ここで、jは、チェックノードaに連結された他の変数ノードである。 ちょうどBECの場合のように、ノードiを中心とするノードの局所近傍を考慮に入れる。 例えば、iに連結されたチェックノード、および、これらのチェックノードに連結された他の変数ノードの近傍がツリー型である場合には、以下のRG変換を利用する。 【0150】
【数19】
【0151】
式中、
【数20】
【0152】
RG法は、ビット誤り率の決定まで、BECの場合のように進行する。 AWGN通信路では、RG法を中止した後で、「目標」ノードまでずっと繰り込むことは、常態では不便である。 なぜなら、グラフ中にほんの数個のノードしかなくても正確な計算を行うことは容易でないからである。
【0153】
目標ノードiを除いたすべてのノードを繰り込んでしまうと、h
iの最終繰り込み値が残される。 このガウス近似から、ゼロとして復号されているノードi用の確率分布が、平均h iと分散2h iを有するガウス分布であることがわかる。 復号失敗は、この確率分布のうち、ゼロよりも小さい部分に一致する。 したがって、ノードiでのビット誤り率(ber i )に対する本発明の予測は、次式である。 【0154】
【数21】
【0155】
(誤り訂正符号の生成)
もっとも良く知られている実施可能な誤り訂正符号を生成する指針として、密度変化法が用いられてきたことを考慮に入れると、本発明のRG法を用いて、さらに良い符号を生成することができる。 本発明によるRG法を用いれば、任意の一般化パリティ検査行列により定義された符号を入力して、ノードごとのビット誤り率の予測を、出力として得ることができる。
【0156】
可能な改良符号の空間を誘導探索するために、目的関数に、この出力を利用できる。 例えば、AWGN通信路用に、できる限り小さい信号対雑音比(SN比)にて、10
−4よりも小さいビット誤り率を達成するN=100のブロック長、伝送速度1/2の符号(隠れ状態はない)を見出そうとすることができる。 これは、本発明のRG法を利用して、また任意の公知の探索技法(例えば、グリーディ下降、模擬アニーリング法、発生論的処理法など)を利用して有効なパリティ検査行列の空間を探索して、正確なブロック長と伝送速度の符号を反復的に評価することで行う。 【0157】
本発明では、長所のある正確な測度、すなわち、無限ブロック長の限界におけるしきい値ではなく、ビット誤り率自体に、直接に的を絞っているために、本発明による探索は、従来技術の密度変化処理を用いて得られた結果に改良を加える。 本発明では、ノードごとに、ビット誤り率に関する情報を持っているために、このような探索を導くことができる。 例えば、付加的なパリティ検査ノードを追加することで、高いビット誤り率を有する弱い変数ノードを「強くする」ことがもっともなこともある。 あるいは、これらの弱いノードを、隠れノードに変え、したがって、その伝送速度を高めることで、低いビット誤り率を有する強いノードを「弱める」こともある。
【0158】
その一方、あらゆるノードのビット誤り率を決定することで、探索が減速する。 少なくとも長いブロック長では、これらのノードの局所近傍の点から定義された少数の異なるノード・クラスだけしかない符号に制限することは、それだけの価値がある場合もある。 もっともよく知られている符号の大部分は、このタイプのものである。 本発明では、変数ノードごとにビット誤り率を決定するのではなく、それぞれのクラスの変数ノードの代表的なただ1つのノードだけに、ビット誤り率を決定することができる。
【0159】
例えば、レギュラーGallager符号では、各ノードは、同一の局所近傍を有し、したがって、その近傍のすべてのノードを代表するものとして、どんなノードでも選択できる。 この方法で為された誤りは、同一クラスの異なるノードのビット誤り率を比較することで評価される。 実際の有限サイズのレギュラーGallager符号では、RG法が、これらのノードのそれぞれに対して非常に類似した予測を与えることがわかり、したがって、これらのノードのすべてを代表するものとして単一の変数ノードだけを考慮に入れることで為される誤りは、極めて小さい。
【0160】
本発明は、好ましい実施形態の例示として述べられてきたが、他の様々な改造や変更は、本発明の意図および範囲内で行うことができるものとする。 それゆえ、併記の特許請求の範囲の目的は、本発明の真の意図および範囲に入るものとして、このような変形や変更をすべて含むものである。
【図面の簡単な説明】
【図1】 ループを含む誤り訂正符号を表わす従来技術の2部グラフである。
【図2】 単純な従来技術の誤り訂正符号を表わす従来技術の2部グラフである。
【図3a】 本発明により繰り込まれた2部グラフである。
【図3b】 本発明により繰り込まれた2部グラフである。
【図3c】 本発明により繰り込まれた2部グラフである。
【図3d】 本発明により繰り込まれた2部グラフである。
【図3e】 本発明により繰り込まれた2部グラフである。
【図4】 本発明により繰り込まれる2部グラフである。
【図5】 繰り込まれる、ループを有する2部グラフである。
【図6】 繰り込まれる2部グラフの拡張を示す図である。
【図7】 繰り込まれる一般化パリティ検査行列を表わす、ループを有する2部グラフである。
【図8】 誤り訂正符号を評価する方法を比較したグラフである。
【図9】 本発明による繰り込み群法の流れ図である。
【図10】 ループ付きのグラフに対する、本発明による方法の流れ図である。
|