(57)【要約】      （修正有）【課題】雑音を有するチャネルを介して受信されたシンボルから成るブロックを誤り訂正符号から成る符号語に復号するための多段復号器を提供する。【解決手段】復号器は、順次接続された複数のサブ復号器から成り、次段のサブ復号器は、前段のサブ復号器よりも遅い処理時間及び良好なワード誤り率を有し、次段のサブ復号器は、前段の復号器が、シンボルから成るブロックシーケンスの復号に失敗した場合にのみ実行され、最後のサブ復号器は、終了条件に達するまで実行される。【選択図】図２
2010178328.tif 000002
【特許請求の範囲】
【請求項１】
雑音を有するチャネルを介して受信されたシンボルから成るブロックを、誤り訂正符号から成る符号語に復号するための多段復号器であって、
順次接続された複数のサブ復号器を備え、次段のサブ復号器は、前段のサブ復号器よりも遅い処理時間及び良好なワード誤り率を有し、前記次段のサブ復号器は、前記前段の復号器が、シンボルから成るブロックシーケンスの復号に失敗した場合にのみ実行され、最後のサブ復号器は、終了条件に達するまで実行される、シンボルから成るブロックを復号するための多段復号器。
【請求項２】
前記複数のサブ復号器は、順次接続された
量子化信念伝搬（ＱＢＰ）サブ復号器、
非量子化信念伝搬（ＵＢＰ）サブ復号器、及び
混合整数線形計画（ＭＩＬＰ）サブ復号器、
から成る、請求項１に記載の多段復号器。
【請求項３】
前記最後のＭＩＬＰサブ復号器の実行はさらに、
最尤符号語が見つかるまで又は或る最大個数のバイナリ制約が前記ＭＩＬＰサブ復号器に追加されるまでのいずれかまでバイナリ制約を反復的に追加すること、
をさらに含む、請求項２に記載の多段復号器。
【請求項４】
前記複数のサブ復号器の個数及び選択は、特定の低密度パリティ検査（ＬＤＰＣ）符号について設計される、請求項１に記載の多段復号器。
【請求項５】
反復復号方法を使用するいずれのサブ復号器も、アクティブ集合反復復号方法を使用する、請求項１に記載の多段復号器。
【請求項６】
前記チャネルはバイナリ対称チャネルであり、前記アクティブ集合復号器は、反復信念伝搬復号器をさらに備え、前記反復信念伝搬復号器は、
検査ノードの集合、
変数ノードの集合、及び
前記検査ノードの集合と前記変数ノードの集合との間でメッセージを渡す手段、
を備え、前記検査ノードからの発信メッセージの集合は、前記検査ノードへの着信メッセージの集合が変化する場合にのみ更新され、前記変数ノードからの前記発信メッセージの集合は、該変数ノードへの前記着信メッセージが変化する場合にのみ更新される、
請求項５に記載の多段復号器。
【請求項７】
前記発信メッセージの集合は、前記着信メッセージの集合の前記変化がしきい値を超えるときに更新される、請求項６に記載の多段復号器。
【請求項８】
前記更新されるノードは、ノードのアクティブ集合に追加される、請求項６に記載の多段復号器。
【請求項９】
前記チャネルはバイナリ対称チャネルであり、前記アクティブ集合復号器は反復信念伝搬復号器をさらに備え、前記反復信念伝搬復号器は、
検査ノードの集合、及び
変数ノードの集合、
を備え、各変数ノードは信念を有し、前記変数ノードからの発信メッセージの集合は、前記信念が変化した場合にのみ更新され、前記検査ノードからの発信メッセージの集合は、該検査ノードへの前記着信メッセージが変化した場合にのみ更新される、請求項５に記載の多段復号器。
【請求項１０】
前記変数ノードからの前記発信メッセージは、前記変数ノードの信念の前記変化がしきい値を超えた場合にのみ更新され、前記検査ノードからの前記発信メッセージの集合は、前記検査ノードへの前記着信メッセージの集合の前記変化が前記しきい値を超えた場合にのみ更新される、請求項９に記載の多段復号器。
【請求項１１】
前記更新されるノードは、ノードのアクティブ集合に追加される、請求項９に記載の多段復号器。
【請求項１２】
前記誤り訂正符号は、低密度パリティ検査符号、ターボ符号、ターボ積符号、繰り返し累積符号、ルビー変換符号、及びラプタ符号から成る群から選択される、請求項１に記載の多段復号器。
【請求項１３】
前記複数のサブ復号器は、順次接続された
量子化信念伝搬（ＱＢＰ）サブ復号器、
非量子化信念伝搬（ＵＢＰ）サブ復号器、及び
線形計画サブ復号器、
から成る、請求項１に記載の多段復号器。
【請求項１４】
雑音を有するチャネルを介して受信されたシンボルから成るブロックを、誤り訂正符号から成る符号語に復号する方法であって、該方法のステップを実行するためのプロセッサを備え、該方法は、
第１の復号器で前記シンボルから成るブロックを復号するステップ、及び
前記第１の復号器による前記復号が失敗した場合には、該第１の復号器よりも遅い処理時間及び良好なワード誤り率を有する第２の復号器で前記シンボルから成るブロックを復号するステップ、
を含む、シンボルから成るブロックを復号するための方法。
【請求項１５】
雑音を有するチャネルを介して受信されたシンボルから成るブロックを、誤り訂正符号から成る符号語に復号する方法であって、該方法のステップを実行するためのプロセッサを備え、該方法は、
第１の復号器で前記シンボルから成るブロックを復号するステップ、
前記第１の復号器による前記復号が失敗した場合には、該第１の復号器よりも遅い処理時間及び良好なワード誤り率を有する第２の復号器で前記シンボルから成るブロックを復号するステップ、及び
前記第２の復号器による前記復号が失敗した場合には、該第２の復号器よりも遅い処理時間及び良好なワード誤り率を有する第３の復号器で前記シンボルから成るブロックを復号するステップ、
を含む、シンボルから成るブロックを復号するための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、誤り訂正符号の符号語を復号することに関し、より詳細には、多段復号器を使用して符号語を復号することに関する。
【背景技術】
【０００２】
誤り訂正符号
データ記憶及び通信の分野における基本的な問題は、誤り訂正符号（ＥＣＣ）の実用的な復号方法の開発である。
【０００３】
誤り訂正符号の１つの非常に重要な部類は、線形ブロック誤り訂正符号の部類である。別段の指定のない限り、本明細書において「符号」と言うときは、いずれも線形ブロック誤り訂正符号を指す。
【０００４】
これらの符号の背後にある基本的なアイデアは、Ｎ個のシンボルから成るブロックを使用して、Ｋ個の情報シンボルから成るブロックを符号化することである。ここで、Ｎ＞ｋである。付加されたＮ−ｋビットは、破損した信号が、雑音を有するチャネルを介して受信されたとき又は傷害のある記憶媒体から取り出されたときに、それらの破損した信号を訂正するのに使用される。
【０００５】
符号のすべての制約条件を満たす、Ｎ個のシンボルから成るブロックは、「符号語」と呼ばれ、ｋ個の情報シンボルから成る対応するブロックは、「情報ブロック」と呼ばれる。これらのシンボルは、ｑ項アルファベットから引き出されるものと仮定される。
【０００６】
重要な特別の場合はｑ＝２のときである。この場合、符号は、「バイナリ」符号と呼ばれる。本明細書で与える例では、バイナリ符号が前提とされる。ただし、本明細書で説明する復号方法の、ｑ＞２を有するｑ項符号への一般化が、通例可能である。バイナリ符号は、実際に使用される最も重要な符号である。
【０００７】
線形ブロック誤り訂正符号による従来の「チャネル符号化」では、ソースは、ｋ個のシンボルｕ［ａ］から成る情報ブロックを生成する。この情報ブロックは、誤り訂正符号の符号化器に渡される。符号化器は、Ｎ個のシンボルを含む符号語ｘ［ｎ］を生成する。この符号語は、次に、チャネルを通じて送信される。このチャネルでは、符号語は、場合によっては破損されて、信号ｙ［ｎ］になる可能性がある。破損した信号ｙ［ｎ］は、次に、復号器に渡され、復号器は、符号語ｘ［ｎ］を復元したものｚ［ｎ］の出力を試みる。
【０００８】
符号パラメータ
バイナリ線形ブロック符号は、ブロック長Ｎを有する２ｋ個の可能な符号語の集合によって定義される。パラメータｋは、時に、符号の「次元」と呼ばれる。符号は、通常、Ｎ及びｋが大きいときにはるかに効率的なものとなる。しかしながら、パラメータＮ及びｋのサイズが増加するにつれて、破損したメッセージの復号の困難さも増加する。
【０００９】
２つの符号語間のハミング距離は、２つの語において異なるシンボルの個数として定義される。符号の距離ｄは、その符号におけるすべての符号語対間の最小ハミング距離として定義される。より大きな値のｄを有する符号ほど、より優れた誤り訂正能力を有する。パラメータＮ及びｋを有する符号は、［Ｎ，ｋ］符号として参照される。距離ｄも判明している場合、符号は［Ｎ，ｋ，ｄ］符号として参照される。
【００１０】
符号パリティ検査行列表現
線形符号は、パリティ検査行列によって表すことができる。バイナリ［Ｎ，ｋ］符号を表すパリティ検査行列は、Ｍ行及びＮ列を有する０及び１から成る行列である。パリティ検査行列のＮ列は、符号のＮ個のシンボルに対応する。行列の線形独立な行の個数はＮ−ｋ個である。
【００１１】
パリティ検査行列の各行は、パリティ検査制約を表す。特定の行によって表される制約に関与するシンボルは、その行において非ゼロのシンボルを有する列に対応する。パリティ検査制約によって、それらのシンボルのモジュロ２の加重和が強制的に０に等しくされる。例えば、バイナリ符号の場合、パリティ検査行列
【００１２】
【数１】
2010178328.tif 000003
【００１３】
は、３つの制約
ｘ［１］＋ｘ［２］＋ｘ［３］＋ｘ［５］＝０、
ｘ［２］＋ｘ［３］＋ｘ［４］＋ｘ［６］＝０、及び
ｘ［３］＋ｘ［４］＋ｘ［５］＋ｘ［７］＝０
を表す。ここで、ｘ［ｎ］は、第ｎビットの値であり、バイナリシンボルの加算は、０＋０＝１＋１＝０及び０＋１＝１＋０＝１となるようなモジュロ２算術のルールを使用して行われる。
【００１４】
符号のグラフモデル
線形符号のパリティ検査行列は、多くの場合、当該技術分野において「タナーグラフ」とも呼ばれるグラフモデルを使用して表される。タナーグラフは、符号語シンボルに対応する「変数ノード」及びパリティ制約に対応する「制約ノード」の２種類のノードを有する二部グラフである。したがって、符号を表すパリティ検査行列の各列につき１つの変数ノードがあり、パリティ検査行列の各行につき１つの制約ノードがある。変数ノードは、対応するシンボルが制約式にある場合に、タナーグラフの制約ノードに接続される。したがって、パリティ検査行列の各非ゼロのエントリーについて変数ノードと制約ノードとを接続する線がある。
【００１５】
タナーグラフに容易に変換することができる、符号の他のグラフモデルが存在する。例えば、G. David Forneyは、変数がグラフの線によって表され、符号シンボルが変数間の等式制約として表される「ファクタグラフ」表現を広めた。これについては、非特許文献１を参照されたい。本明細書では、タナーグラフの点から復号方法を説明するが、これらの復号方法を、他のグラフモデルと連携するように変換する方法は、よく理解されている。
【００１６】
誤り訂正符号復号器
誤り訂正符号の復号器の作業は、送信された符号語がチャネルにおいて破損した後に受信信号を受け取り、送信された符号語の復元を試みることである。符号語の復号の失敗数を最小にするという点で最適な復号器は、受信信号が与えられた場合に、最も確からしい符号語を出力する。この最適な復号器は、「最尤」復号器として知られている。最尤（ＭＬ）復号器であっても、チャネルの雑音が十分に大きい場合には、時に復号誤りを起こし、送信された符号語でない符号語を出力する。
【００１７】
反復復号器
実際には、誤り訂正符号の特別な部類についてしか最尤復号器を構成することができない。反復方法に基づいた最適でない近似的な復号器に多くの関心が持たれてきた。これらの反復復号方法の１つは、「信念伝搬」（ＢＰ）と呼ばれる。R. Gallagerは、これをその名称で呼んではいなかったが、低密度パリティ検査（ＬＤＰＣ）符号用のＢＰ復号方法を１９６３年に最初に記載した。
【００１８】
ターボ符号
１９９３年に、「ターボ符号」として知られている新しい部類の符号について非常にうまく動作する同様の反復方法が示された。ターボ符号の成功によって、部分的には、ＬＤＰＣ符号及び反復復号方法に対する関心が再度新たに大きく持たれるようになった。ターボ符号及びＬＤＰＣ符号の双方、並びに「ターボ積符号」及び「繰り返し累積符号」等の他の関連符号について反復復号方法の性能を改善するために、近年、かなりの量の研究が行われている。例えば、IEEE Communications Magazineの２００３年８月の特集号が、この研究に充てられた。概観については、非特許文献２及び非特許文献３を参照されたい。
【００１９】
多くのターボ符号及びＬＤＰＣ符号は、ランダムな構成を使用して構成される。例えば、GallagerのオリジナルのバイナリＬＤＰＣ符号は、パリティ検査行列の点から定義され、このパリティ検査行列は０及び１のみから成り、少数の１が、所定の確率分布に従って行列内にランダムに配置される。一方、反復復号器は、有限幾何によって定義された符号のような規則的な構成によって定義される符号に適用されることにも成功してきた。これについては、非特許文献４を参照されたい。一般に、相対的に少数の非ゼロのエントリーを有するパリティ検査行列ならば、ランダムな構成を有しようが、規則的な構成を有しようが、そのパリティ検査行列を有する符号について反復復号器はうまく動作する。
【００２０】
ＢＰに基づくＬＤＰＣ符号の復号器を有するシステムでは、システムは、符号を指定するパリティ検査行列によって与えられるように、反復的に受信シンボルを処理して、制約に基づき各シンボルの信頼性を改善する。
【００２１】
最初の反復では、ＢＰ復号器は、入力としてチャネルエビデンス（channel evidence）のみを使用し、各シンボルから、そのシンボルを伴うパリティ検査制約へのソフト出力メッセージを生成する。シンボルから制約へメッセージを送信するステップは、時に、「垂直」ステップと呼ばれる。次に、シンボルからのメッセージは、近接した制約において処理され、シンボルへ新しいメッセージをフィードバックする。このステップは、時に、「水平」ステップと呼ばれる。復号反復プロセスは、一定の終了条件が満たされるまで、垂直ステップと水平ステップとを交互に続ける。その時点で、最後の復号反復からのシンボルの出力信頼性尺度に基づいて各シンボルの硬判定が行われる。
【００２２】
ＢＰ復号器のメッセージは、上述したタナーグラフを使用して視覚化することができる。垂直ステップメッセージは、変数ノードから制約ノードに向かう一方、水平ステップメッセージは、制約ノードから変数ノードに向かう。
【００２３】
メッセージ更新ルールの正確な形態及びメッセージの意味は、使用されるＢＰ方法の特定の変形に従って変化する。２つの特に一般的なメッセージ更新ルールは、「積和（sum-product）」ルール及び「最小和（min-sum）」ルールである。これらの従来技術のメッセージ更新ルールは、非常によく知られており、これらのメッセージ更新ルールを近似したものも、実際にうまく動作することが判明している。さらに詳細な内容は、参照により本明細書に援用される特許文献１に記載されている。
【００２４】
ＢＰ方法のいくつかの変形では、メッセージは、ビットが０又は１のいずれかである対数尤度を表す。ＢＰ方法及び誤り訂正符号へのその応用に関するより背景的な資料については、非特許文献５を参照されたい。
【００２５】
量子化信念伝搬
実際には、ＢＰ復号器を実施する一般的な方法は、メッセージをいくつかの少数の可能な値に量子化することである。例えば、復号器は、値＋１及び−１を有するメッセージのみを使用することができる。量子化ＢＰ（ＱＢＰ）復号器は、可能なメッセージの個数が増加するにつれて、より強力になる傾向があり、それによって、非量子化ＢＰ復号器をより良く近似する。他方、可能なメッセージの個数が増加するにつれて、量子化ＢＰ復号器を実施するコスト及び複雑さも同様に増加する傾向がある。
【００２６】
別のＱＢＰ復号器は、当該技術分野で「アルゴリズムＥ（Algorithm-E）」として知られている。これについては、非特許文献６を参照されたい。この復号器は、特に関心があるので、バイナリ対称チャネル（ＢＳＣ）上でＬＤＰＣ符号を復号するためのその機能をここで詳細に説明する。
【００２７】
アルゴリズムＥ復号器は、ＢＳＣから受信されたシンボルの入力シーケンスを復号する。このシンボルの入力シーケンスは、ベクトルｙによって表される。位置ｎにおける０のシンボルがｙｎ＝１にマッピングされ、位置ｎにおける１のシンボルがｙｎ＝−１にマッピングされるように２相位相シフトキーイング（ＢＰＳＫ）が使用される。
【００２８】
Ｈ＝［Ｈｍｍ］をＬＤＰＣ符号のＭ×Ｎパリティ検査行列とする。検査ｊに関与する変数ノードの集合は、Ｎ（ｊ）＝｛ｋ：Ｈｊｋ＝１｝によって表記され、変数ｋが関与する検査の集合は、Ｑ（ｋ）＝｛ｊ：Ｈｊｋ＝１｝と表記される。Ｎ（ｊ）＼ｋは、変数ｋが除外された集合Ｎ（ｊ）であり、Ｑ（ｋ）＼ｊは、検査ｊが除外された集合Ｑ（ｋ）である。
【００２９】
アルゴリズムＥ復号器は、ＢＰメッセージを−１、０、又は＋１の値に量子化する。ｉ番目の反復に関連したメッセージ及び信念は、
ｕ（ｉ）ｍｎ：検査ノードｍから変数ノードｎに渡されるメッセージ、
ｖ（ｉ）ｍｎ：変数ノードｎから検査ノードｍに渡されるメッセージ、及び
ｖ（ｉ）ｎ：変数ノードｎの信念、
と表記される。
【００３０】
「アルゴリズムＥ」復号器のステップは、次の通りである。
【００３１】
ステップ１：１≦ｍ≦Ｍ及び各ｎ∈Ｎ（ｍ）について、
【００３２】
【数２】
2010178328.tif 000004
【００３３】
を処理する。
ステップ２：１≦ｎ≦Ｎ及び各ｍ∈Ｑ（ｎ）について、
【００３４】
【数３】
2010178328.tif 000005
【００３５】
を処理する。ここで、ｗ（ｉ）は、適切に選択された重みであり、
【００３６】
【数４】
2010178328.tif 000006
【００３７】
である。ここで、ｘ＞０の場合にはｓｇｎ（ｘ）＝１であり、ｘ＜０の場合にはｓｇｎ（ｘ）＝−１であり、ｓｇｎ（０）＝０である。
ステップ３：ｖ（ｉ）ｎ＜０の場合には
【００３８】
【数５】
2010178328.tif 000007
【００３９】
となり、ｖ（ｉ）ｎ＞０の場合には
【００４０】
【数６】
2010178328.tif 000008
【００４１】
となり、ｖ（ｉ）ｎ＝０の場合には
【００４２】
【数７】
2010178328.tif 000009
【００４３】
をランダムに選択するようなベクトル
【００４４】
【数８】
2010178328.tif 000010
【００４５】
を構成する。
【００４６】
【数９】
2010178328.tif 000011
【００４７】
又はＩｍａｘに達した場合には、復号反復を停止し、復号された符号語として、
【００４８】
【数１０】
2010178328.tif 000012
【００４９】
を出力する。そうでない場合には、ｉ：＝ｉ＋１に設定し、ステップ１に進む。
【００５０】
ビットフリッピング復号器
ビットフリッピング（ＢＦ）復号器は、ＢＰ復号器と同様に動作する反転復号器である。これらの復号器は、幾分、より単純である。ＬＤＰＣ符号のビットフリッピング復号器も、長い歴史を有し、またGallagerがＬＤＰＣ符号を紹介した１９６０年代初期にGallagerによって提案された。ビットフリッピング復号器では、各符号語ビットは、最初に、チャネル出力に基づいて０又は１となるように割り当てられる。次に、各反復において、各パリティ検査のシンドロームが計算される。パリティ検査のシンドロームは、パリティ検査が満たされた場合には０であり、パリティ検査が満たされない場合には１である。次に、各ビットについて、そのビットを含むすべてのパリティ検査のシンドロームが検査される。所定のしきい値よりも大きな複数のパリティ検査が満たされない場合、対応するビットがフリッピングされる。すべてのパリティ検査が満たされるまで又は所定の最大反復回数に達するまで、反復は続く。
【００５１】
反復的に復号することができる他の符号
反復復号方法を使用して復号を成功させることができる他の多くの符号がある。それらの符号は、文献で既知であり、それらの符号はあまりにも多いので、それらをすべて詳細に説明することはできない。それらの符号の最も注目すべきもののいくつかは、ターボ符号（非特許文献７参照）、不規則ＬＤＰＣ符号（非特許文献８参照）、繰り返し累算符号（非特許文献９参照）、ＬＴ符号（非特許文献１０参照）、及びラプタ（Raptor）符号（非特許文献１１参照）である。
【００５２】
線形計画復号器及び適応型線形計画復号器
ＬＤＰＣ符号の代替的な復号方法は、線形計画法（ＬＰ）に基づいている。ＬＰ復号は、ＢＰ復号では利用可能でないいくつかの魅力的な特徴を有する。ＬＰ復号器は、確定的に収束する。復号器が符号語をいつ出力しようとも、その符号語は、最尤解であることが保証される。ＬＰ復号器が非バイナリ解に収束するとき、明確に定義された「疑似符号語」が見つけられている。
【００５３】
ＭＬ復号問題は、次の整数最適化問題（integer optimization problem）、すなわち
【００５４】
【数１１】
2010178328.tif 000013
【００５５】
を条件として、
【００５６】
【数１２】
2010178328.tif 000014
【００５７】
を最小にする、という問題と等価である。ここで、γは、負の対数尤度の既知のベクトルであり、Ｔは転置演算子であり、ｎ番目のエントリーは、
【００５８】
【数１３】
2010178328.tif 000015
【００５９】
として定義される。
【００６０】
チャネルがＢＳＣであるとき、受信されたＢＰＳＫシンボルがｙｎ＝−１である場合にはγｎ＝ｌｏｇ［ｐ／（１−ｐ）］であり、受信されたＢＰＳＫシンボルがｙｎ＝１である場合にはγｎ＝ｌｏｇ［（１−ｐ）／ｐ］である。
【００６１】
上記整数最適化問題における変数及び制約はバイナリである。この問題の緩和されたＬＰバージョンでは、各シンボル
【００６２】
【数１４】
2010178328.tif 000016
【００６３】
は、対応する変数
【００６４】
【数１５】
2010178328.tif 000017
【００６５】
に緩和され、この対応する変数は、０と１との間の値を取ることができる。各パリティ検査は、符号語が満たさなければならない複数の局所線形制約に置き換えられる。これらの制約の交わりは、ＬＰソルバが操作するポリトープを定義する。ポリトープのバイナリ頂点は、符号Ｃの符号語に対応する。ＬＰ最適条件がこのような頂点にあるとき、ＬＰが満たされ、ＭＬ解が見つけられる。非バイナリ解は、疑似符号語と呼称される。
【００６６】
あいにく、ＬＰ復号は、ＢＰ復号よりも複雑である。１つの手法は、適応型線形計画（ＡＬＰ）復号器を使用することによって計算負荷を削減する。これについては、非特許文献１２を参照されたい。
【００６７】
混合整数線形計画復号器
ＬＰ復号問題の解が非バイナリであるとき、オリジナルのＬＰ緩和を厳しくしたもの（tightening）を見つけるように動機付けられる。厳しくすることの目的は、いずれのバイナリ頂点も除去することなく、以前最適であった疑似符号語を除去する変更されたＬＰ問題を生成し、それによって、変更されたＬＰ問題の解をＭＬ解に持って行くことである。
【００６８】
１つの手法は、少数の整数制約を追加することであり、その結果、混合整数線形計画法（ＭＩＬＰ）となる。詳細には、ＭＩＬＰ復号器では、その値が０．５に最も近いシンボルを識別することができる。このインデックス
【００６９】
【数１６】
2010178328.tif 000018
【００７０】
について、復号器は、整数制約
【００７１】
【数１７】
2010178328.tif 000019
【００７２】
を含み、この整数制約を含むＬＰ復号器を再実行する。整数制約を追加した後であっても、ＭＩＬＰ復号器が復号に失敗した場合、より多くの整数制約を追加することができる。Draper他による関連出願では、この手法がＬＤＰＣ符号に使用される。
【００７３】
同じ符号の異なる復号器の性能
各異なるタイプの符号について、複数の異なる復号器が一般に利用可能である。例えば、ＬＤＰＣ符号については、（数ある中でも）ビットフリッピング復号器、異なる量子化レベルの量子化ＢＰ復号器、積和方法又は最小和方法を使用するＢＰ復号器、ＬＰ復号器、及びＭＩＬＰ復号器の中から選択することができる。
【００７４】
例えばリード・ソロモン符号のような他の既知の符号については、バーレカンプ・マッセイ（Berlekamp-Massey）復号方法のような符号化の教科書に見られる「古典的」な復号方法、又は信念伝搬に基づくより新しい復号方法、又はリスト復号方法を含めて、非常に多数の異なる復号方法も存在する。
【００７５】
異なる復号方法は、一般に、復号器の誤り率を信号対雑音比（ＳＮＲ）の関数としてプロットすることによって比較される。２つの一般的な尺度は、「ワード誤り率」（ＷＥＲ）及び「ビット誤り率」（ＢＥＲ）である。ＷＥＲは、送信された符号語に正しく復号されないブロックの割合を測定するものである。ＢＥＲは、誤って復号されるビットの割合を測定するものである。本明細書では、ＷＥＲに注目する。特定の信号対雑音比において、或る復号器のＷＥＲが別の復号器よりも低い場合に、その復号器は、その別の復号器よりも「良好である」か又は「強力である」。
【００７６】
図３は、同じ符号に対して操作を行う異なる復号器についてＷＥＲをＳＮＲの関数として示す。この例では、復号器Ａ  ３１０は、低い信号対雑音比については復号器Ｂよりも良好であるが、復号器Ｂ  ３２０は、高い信号対雑音比については復号器Ａよりも良好である。図４は、復号器Ａ  ４１０があらゆるＳＮＲにおいて復号器Ｂ  ４２０よりも良好に動作する一例を示す。
【００７７】
復号器の処理時間
多くの場合、復号器のＷＥＲ性能と復号器がブロックを処理するのに要する時間との間にトレードオフがある。一例として、ＢＰ復号器は、終了する前に１ブロック当たりより多くの反復動作が可能である場合、より良好なＷＥＲ性能を有する。単純な復号器は、処理時間が少ないが、ＷＥＲ性能が不十分である傾向がある一方、より複雑な復号器は、処理時間がより長くなるが、ＷＥＲ性能がより良好になる傾向がある。時に、或る復号器は、第２の復号器よりも数桁良好なＷＥＲを有するが、同様に、第２の復号器よりも数桁良くない処理時間を有する。
【先行技術文献】
【特許文献】
【００７８】
【特許文献１】２００８年５月１３日にYedidia他に発行された米国特許第７，３７３，５８５号「Combined-replica group-shuffled iterative decoding for error-correcting codes」
【非特許文献】
【００７９】
【非特許文献１】G. D. Forney著「Codes on Graphs: Normal Realizations」, IEEE Transactions on Information Theory, February 2001, vol. 47, pp. 520-548
【非特許文献２】C. Berrou著「The Ten-Year-Old Turbo Codes are entering into Service」, IEEE Communications Magazine, vol. 41, pp. 110-117, August 2003
【非特許文献３】T. Richardson及びR. Urbanke著「The Renaissance of Gallager's Low-Density Parity Check Codes」, IEEE Communications Magazine, vol. 41, pp. 126-131, August 2003
【非特許文献４】Y. Kou、S. Lin、及びM. Fossorier著「Low Density Parity Check Codes Based on Finite Geometries: A Rediscovery and More」, IEEE Transactions on Information Theory, vol. 47, pp. 2711-2736, November, 2001
【非特許文献５】F. R. Kschischang、B. J. Frey、及びH. -A. Loeliger著「Factor Graphs and the Sum-Product Algorithm」, IEEE Transactions on Information Theory, vol. 47, pp. 498-519, February 2001
【非特許文献６】Richardson他著「The capacity of low-density parity-check codes under message-passing decoding」, IEEE Trans. Inform. Theory, vol. 47, pp. 599-618, Feb. 2001
【非特許文献７】C. Berrou及びA. Glavieux著「Near-Optimum Error-Correcting Coding and Decoding: Turbo-codes」, IEEE Transactions in Communications, vol. 44, pp. 1261-1271, October 1996
【非特許文献８】M. A. Shokrollahi、D. A. Spielman、M. G. Luby、及びM. Mitzenmacher著「Improved Low-Density Parity Check Codes Using Irregular Graphs」, IEEE Trans. Information Theory, vol. 47, pp. 585-598, February 2001
【非特許文献９】D. Divsalar、H. Jin、及びR. J. McEliece著「Coding Theorems for Turbo-like' Codes」, Proc. 36th Allerton Conference on Communication, Control, and Computing, pp. 201-210, September, 1998
【非特許文献１０】M. Luby著「LT Codes」, Proc. Of the 43 Annual IEEE Symposium on Foundations of Computer Science, pp. 271-282, Nov. 2002
【非特許文献１１】A. Shokrollahi著「Raptor Codes」, Proceedings of the IEEE International Symposium on Information Theory, p. 36, July 2004
【非特許文献１２】Taghavi他著「Adaptive methods for linear programming decoding」, IEEE Transactions on Information Theory, vol. 54, no. 12, pp. 5386-5410, Dec. 2008
【発明の概要】
【発明が解決しようとする課題】
【００８０】
性能と処理時間との間のトレードオフを解消する復号器、すなわち、優れた性能及び少ない処理時間を同時に有する復号器を構成することが非常に望ましい。
【課題を解決するための手段】
【００８１】
本発明のアイデアは、対象となる動作領域においてサブ復号器のワード誤り率（ＷＥＲ）の性能の点で順序付けることができる複数のサブ復号器を単一の多段復号器に結合することである。最初のサブ復号器は最低性能の復号器であり、最後のサブ復号器は最良性能の復号器である。サブ復号器は、その処理時間の点でも順序付けが可能である。最初のサブ復号器は、１ブロック当たりの処理時間が最も短い一方、最後のサブ復号器は、１ブロック当たりの処理時間が最も長い。
【００８２】
本発明の実施の形態は、量子化信念伝搬（ＱＢＰ）サブ復号器、非量子化信念伝搬（ＵＢＰ）サブ復号器、及び混合整数線形計画（ＭＩＬＰ）サブ復号器又は線形計画復号器を順次結合する多段復号器を提供する。各サブ復号器は、前段のサブ復号器が有効な符号語への収束に失敗したときにのみ起動される。
【００８３】
より高速なＱＢＰサブ復号器及びＵＢＰサブ復号器は、ほとんどの誤りを訂正することができ、短い平均復号時間を与える。稀な場合ではあるが、ＱＢＰサブ復号器及びＵＢＰサブ復号器の双方が失敗したときにのみ、それよりも低速であるが、より良好な性能の線形計画復号器又はＭＩＬＰサブ復号器が使用される。
【００８４】
結果は、従来のＢＰ復号と比較して、多段復号器のＷＥＲが大きく改善されていることを示す。この改善は、高いＳＮＲ領域において特に顕著である。多段復号器は、ＬＤＰＣ符号の復号を大幅に高速化することもできる。一定の符号について、本発明は、線形計画復号器又はＭＩＬＰ復号器のみを使用するよりもはるかに低い複雑さで、高いＳＮＲ領域において最適なＭＬ復号性能に効率良く近づくことができる。
【００８５】
本発明は、メッセージが変化するときに検査ノード及び変数ノードのみを更新することによってＱＢＰ復号器も改善する。高いＳＮＲでは、変数ノード及び検査ノードからのごく少数のメッセージしか更新する必要がない。したがって、復号には、従来のＱＢＰ復号器と比較して、ごく少数の計算しか必要とされない。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施形態による多段復号器のブロック図である。
【図２】本発明の実施形態による量子化信念伝搬復号のフロー図である。
【図３】例示の復号器についてワード誤り率の性能を信号対雑音比の関数として比較するグラフである。
【図４】例示の復号器についてワード誤り率の性能を信号対雑音比の関数として比較するグラフである。
【発明を実施するための形態】
【００８７】
図１は、本発明の実施形態による低密度パリティ検査（ＬＤＰＣ）符号の多段復号器１００を示す。この復号器は、量子化信念伝搬（ＱＢＰ）サブ復号器１１０、非量子化ＢＰ（ＵＢＰ）サブ復号器１２０、及び線形計画（ＬＰ）復号器又は混合整数線形計画（ＭＩＬＰ）サブ復号器１３０を含む。これらのサブ復号器は、順次接続されている。
【００８８】
多段復号器１００は、雑音を有するチャネル１０２を介して送信された符号語ｘ  １０１を受信する。サブ復号器１１０は、符号語１０１の復号を試みる。サブ復号器１１０が失敗した場合、サブ復号器１２０が復号を試みる。サブ復号器１２０が失敗した場合、終了条件に達するまで、サブ復号器１３０が復号を試みる。サブ復号器は、シーケンスの次段のサブ復号器が前段のサブ復号器よりも遅い処理時間（Ｔ）及び良好なワード誤り率（ＷＥＲ）を有するように、すなわち、ＴＱＢＰ＜＜ＴＵＢＰ＜＜ＴＭＩＬＰであり、且つ、ＷＥＲＱＢＰ＞＞ＷＥＲＵＢＰ＞＞ＷＥＲＭＩＬＰであるように配列されている。
【００８９】
「復号失敗」は、指定された復号器が有効な符号語の出力に失敗することを示す。例えば、ＱＢＰ復号器は、収束に失敗する場合がある。復号器が、有効ではあるが、正しくない符号語を出力する場合、これは、復号器の「成功」であり、後続の復号器の実行をトリガしない。もちろん、送信された符号語と一致しない復号の「成功」は、ＷＥＲに寄与する。
【００９０】
ＭＩＬＰサブ復号器１３０は、次のように動作する。サブ復号器１３０は、まず、標準的なＬＰ復号の実行を試みる。それが失敗した場合、最も信頼性の低い復号ビットについて整数制約が追加される。復号が再び失敗した場合、別の整数制約が追加され、復号が成功するまで又は整数制約の或る最大個数に達するまで同様に別の整数制約が追加される。ＭＩＬＰサブ復号器は、整数制約の最大個数が大きいほどより良好に動作するが、最悪の場合の処理時間もより長くなる。
【００９１】
驚くことに、本発明の多段復号器は、本明細書で説明及び図示するように配列されると、最も高速の段とほぼ同程度に高速であり、最も低速の段とほぼ良好のＷＥＲを有する。以下の解析は、本明細書で説明するように配列された多段復号器の１ブロック当たりの平均処理時間を近似するのに使用される。所与のサブ復号器段が１ブロック当たりＴの処理時間を要し、ＷＥＲのワード誤り率を有すると仮定した場合、多段復号器は、約
【００９２】
【数１８】
2010178328.tif 000020
【００９３】
の１ブロック当たりの平均処理時間を有する。ここで、ＴＱＢＰは、ＱＢＰサブ復号器１１０の１ブロック当たりの平均処理時間であり、ＴＵＢＰは、ＵＢＰサブ復号器１２０の１ブロック当たりの平均処理時間であり、ＴＭＩＬＰは、ＭＩＬＰサブ復号器１３０の１ブロック当たりの平均処理時間であり、ＷＥＲＱＢＰは、ＱＢＰサブ復号器１１０のＷＥＲであり、ＷＥＲＱＢＰ−ＵＢＰは、ＭＩＬＰサブ復号器を有しない、ＱＢＰサブ復号器及び後続のＵＢＰサブ復号器から成る２段復号器のＷＥＲである。
【００９４】
したがって、ＷＥＲＱＢＰ＜＜ＴＱＢＰ／ＴＵＢＰ、且つ、ＷＥＲＱＢＰ−ＵＢＰ＜＜ＴＱＢＰ／ＴＭＩＬＰである限り、１ブロック当たりの平均処理時間は、復号器１１０の平均処理時間とほぼ同じになる。同時に、シミュレーションは、多段復号器のＷＥＲ性能が、少なくともその最後のサブ復号器１３０と常にほぼ同程度に良好であることを示す。本発明の多段復号器のコンセプトは、順次配列される追加の復号器に対して開放的であることに留意すべきである。例えば、段数及び復号器の選択は、特定のＬＤＰＣ符号について最適に設計することができる。
【００９５】
「アクティブ集合」反復復号器
従来のＢＰ復号器等の従来の反復復号器では、検査ノード及び変数ノードからのすべてのメッセージが、各反復において更新される。しかしながら、これは、着信メッセージが最後の反復以後変化していないノードについては必要とすべきではない。例えば、ＢＳＣの場合、十分高い信号対雑音比（ＳＮＲ）では、チャネルは少数の送信ビットしか反転しないので、従来のＢＰ復号器のほとんどのメッセージを復号中に更新する必要は決してなく、復号の複雑さを大幅に削減することができる。
【００９６】
本発明の「アクティブ集合」反復復号器の基本的なアイデアは、変化したメッセージの集合を追跡し、その集合の着信メッセージを有するノードからのメッセージのみを更新することである。
【００９７】
「アクティブ集合」反復復号器を使用して得られる高速化は、単一のプロセッサ又は少数のプロセッサがメッセージのそれぞれの更新を担当する場合に特に重要である。変化していないメッセージを再計算する時間をプロセッサに浪費させることが望まれていない。
【００９８】
アクティブ集合反復復号器は、多くの異なる符号、チャネル、及び復号方法について構成することができる。
【００９９】
バイナリ対称チャネル上におけるＬＤＰＣ符号のアルゴリズムＥ復号器の特定の実施形態についてアクティブ集合復号器を説明する。入力ビットシーケンスがベクトルｙによって表されるものと仮定し、位置ｎにおける０のシンボルがｙｎ＝１にマッピングされ、位置ｎにおける１のシンボルがｙｎ＝−１にマッピングされるように２相位相シフトキーイング（ＢＰＳＫ）が使用されるものと仮定する。
【０１００】
Ｈ＝［Ｈｍｎ］をＬＤＰＣ符号のＭ×Ｎパリティ検査行列とする。検査ｊに関与する変数ノードの集合は、Ｎ（ｊ）＝｛ｋ：Ｈｊｋ＝１｝によって表記され、変数ｋが関与する検査の集合は、Ｑ（ｋ）＝｛ｊ：Ｈｊｋ＝１｝と表記される。Ｎ（ｊ）＼ｋは、符号語シンボルｋが除外された集合Ｎ（ｊ）であり、Ｑ（ｋ）＼ｊは、検査ｊが除外された集合Ｑ（ｋ）である。
【０１０１】
アルゴリズムＥ復号器は、ＢＰメッセージを−１、０、又は＋１の値に量子化することを思い出されたい。ｉ番目の反復に関連したメッセージ及び信念は、
ｕ（ｉ）ｍｎ：検査ノードｍから変数ノードｎに渡されるメッセージ、
ｖ（ｉ）ｍｎ：変数ノードｎから検査ノードｍに渡されるメッセージ、及び
ｖ（ｉ）ｎ：変数ノードｎの信念、
と表記される。
【０１０２】
アクティブ集合アルゴリズムＥ復号器（ＱＢＰ）１１０について、Ａｖ及びＡｃをそれぞれ変数ノード及び検査ノードのアクティブ集合と定義する。これらのアクティブ集合は、更新されるノードのみを含む。これは、すべてのノードが各反復中にアクティブであり更新される従来技術の反復復号器とは対照的である。
【０１０３】
アクティブ集合アルゴリズムＥ反復復号器のステップは、以下の通りである。
【０１０４】
初期化２０１：ｉ＝１に設定し、Ａｃ＝φ、すなわち、空（empty）に設定し、反復の最大回数をＩｍａｘに設定する。各検査ノードｍ及び各変数ノードｎについて、ｖ（０）ｍｎ＝１及びｕ（０）ｍｎ＝１に設定する。各ｎについて、ｖ（０）ｎ＝ｙｎに設定する。ｙｎ＝−１である場合、すべてのｍ∈Ｑ（ｎ）についてｖ（０）ｍｎ＝−１に設定し、これらのｍをＡｃに追加する。
【０１０５】
ステップ１  ２１０：Ａｖ＝φ、すなわち、空（empty）に設定する。各ｍ∈Ａｃ及び各ｎ∈Ｎ（ｍ）について、
【０１０６】
【数１９】
2010178328.tif 000021
【０１０７】
を処理し、すべてのこれらの変数ノードｎを集合Ａｖに追加する。
【０１０８】
ステップ２  ２２０：Ａｃ＝φ、すなわち、空（empty）に設定する。各ｎ∈Ａｖ及び各ｍ∈Ｑ（ｎ）について、
【０１０９】
【数２０】
2010178328.tif 000022
【０１１０】
を処理する。ここで、ｗ（ｉ）は、適切に選択された重みである。
【０１１１】
ｖ（ｉ）ｍｎ≠ｖ（ｉ−１）ｍｎの場合（２２５）、このｍをＡｃに追加し（２５６），
【０１１２】
【数２１】
2010178328.tif 000023
【０１１３】
を再計算する（２２７）。ここで、ｘ＞１についてｓｇｎ（ｘ）＝１であり、ｘ＜１についてｓｇｎ（ｘ）＝−１であり、ｓｇｎ（０）＝０である。
【０１１４】
ステップ３  ２３０：ｖ（ｉ）ｎ＜０の場合には
【０１１５】
【数２２】
2010178328.tif 000024
【０１１６】
となり、ｖ（ｉ）ｎ＞０の場合には
【０１１７】
【数２３】
2010178328.tif 000025
【０１１８】
となり、ｖ（ｉ）ｎ＝０の場合には
【０１１９】
【数２４】
2010178328.tif 000026
【０１２０】
をランダムに選択するようなベクトル
【０１２１】
【数２５】
2010178328.tif 000027
【０１２２】
を作成する。
【０１２３】
【数２６】
2010178328.tif 000028
【０１２４】
又はＩｍａｘに達した場合には、復号反復を停止し、復号された符号語として、
【０１２５】
【数２７】
2010178328.tif 000029
【０１２６】
を出力する。そうでない場合には、ｉ：＝ｉ＋１に設定し、ステップ１に進む。
【０１２７】
このアクティブ集合アルゴリズムＥ復号器は、従来のアルゴリズムＥ復号器と同じ性能を有するが、単一のプロセッサ又は少数のプロセッサのみがメッセージを計算するのに使用される場合、１ブロック当たりの処理時間はより少なくなる。
【０１２８】
バイナリ入力対称チャネルによる線形符号の復号器のソフトウェアシミュレーションでは、同じ符号語（通常、すべて０の符号語が便宜上使用される）があらゆるブロックで送信されるという単純化した仮定を行うことができることに留意されたい。この理由は、送信されたあらゆる可能な符号語について復号器の性能が同一であるからである。
【０１２９】
同一の符号語があらゆるブロックについて送信されると仮定したとき、アクティブ集合復号器の初期化ステップは、さらに大きく高速化される可能性がある。
【０１３０】
例えば、ＢＳＣ上におけるＬＤＰＣの本発明のアクティブ集合アルゴリズムＥ復号器について、同じ符号語が各ブロックについて送信される場合には、ブロックの復号に成功したときはいつでも、次のブロックの初期化ステップは、新しく反転されたビットの位置を記録するのにＯ（Ｎｐ）の時間しか要しない。ここで、ｐはチャネルの交叉確率である。そうでない場合において、任意の符号語の送信が認められるならば、すべての受信シンボルを等確率で＋１又は−１に初期化する必要があるので、必然的にＯ（Ｎ）の時間を要する。
【０１３１】
表Ｉは、長さ１９０８で符号化率８／９のＬＤＰＣ符号について、従来の量子化復号器（Ｅ）、本発明のアクティブ集合量子化復号器（高速Ｅ）によって必要とされる更新回数を示す。
【０１３２】
【表１】
2010178328.tif 000030
【０１３３】
表Ｉにおいて、「変数更新」は、各ブロックについてステップ２で処理される変数ノードの平均個数を表し、「検査更新」は、各ブロックについてステップ１で処理される検査ノードの平均個数を意味する。これらの統計値は、１００，０００個の送信ブロックにわたって平均することにより得られたものである。明らかに、本発明の復号器１１０は、すべての態様において従来の量子化復号器よりも性能が優れている。本発明の復号器は、相対的に小さな交叉確率について特に効果的である。これは、発明者が高いＳＮＲで符号の性能を調べるのに特に有用である。
【０１３４】
バイナリ対称チャネル（ＢＳＣ）についてアクティブ集合復号器を詳細に説明した。他のチャネル及び他の符号についてアクティブ集合復号器を構成することも可能である。これらの可能性のいくつかについて更新する必要があるメッセージの個数を制限するには、変化すると考えられるメッセージについて発生するに違いないメッセージの変化の量にしきい値を設定することが好ましい場合がある。メッセージが十分に変化する場合にのみ、すなわち、変化が所定のしきい値よりも大きい場合にのみ、そのメッセージが影響を与えるノードがアクティブ集合に追加される。変数ノードについての別の可能性は、変数ノードにおいて「信念」を追跡し、信念が十分に変化する場合にのみ、変数ノードがアクティブ集合に追加されるというものである。
【０１３５】
本発明の実施形態は、低密度パリティ検査符号；ルビー（Luby）変換符号及びラプタ符号を含むファウンテン符号；ターボ符号；繰り返し累積符号；並びに反復信念伝搬復号器又はビットフリッピング復号器を使用して復号することができる他の関連符号を含めて、多くの異なる誤り訂正符号と共に使用することができることに留意されたい。
【０１３６】
本発明を好ましい実施形態の例として説明してきたが、本発明の精神及び範囲内において他のさまざまな適合及び変更を行えることが理解されるべきである。したがって、本発明の真の精神及び範囲内に入るこのようなすべての変形及び変更を包含することが添付の特許請求の範囲の目的である。
【図１】
2010178328.tif 000031
【図２】
2010178328.tif 000032
【図３】
2010178328.tif 000033
【図４】
2010178328.tif 000034
【外国語明細書】
2010178328.tif 000035
2010178328.tif 000036
2010178328.tif 000037
2010178328.tif 000038
2010178328.tif 000039
2010178328.tif 000040
2010178328.tif 000041
2010178328.tif 000042
2010178328.tif 000043
2010178328.tif 000044
2010178328.tif 000045
2010178328.tif 000046
2010178328.tif 000047
2010178328.tif 000048
2010178328.tif 000049
2010178328.tif 000050
2010178328.tif 000051
2010178328.tif 000052
2010178328.tif 000053
2010178328.tif 000054
2010178328.tif 000055
2010178328.tif 000056
2010178328.tif 000057
2010178328.tif 000058
2010178328.tif 000059
2010178328.tif 000060
2010178328.tif 000061
2010178328.tif 000062
2010178328.tif 000063
2010178328.tif 000064
2010178328.tif 000065
2010178328.tif 000066
2010178328.tif 000067
2010178328.tif 000068
2010178328.tif 000069