JP5199255B2 - 近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法 - Google Patents

近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法 Download PDF

Info

Publication number
JP5199255B2
JP5199255B2 JP2009521250A JP2009521250A JP5199255B2 JP 5199255 B2 JP5199255 B2 JP 5199255B2 JP 2009521250 A JP2009521250 A JP 2009521250A JP 2009521250 A JP2009521250 A JP 2009521250A JP 5199255 B2 JP5199255 B2 JP 5199255B2
Authority
JP
Japan
Prior art keywords
node
nodes
check
decoding method
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009521250A
Other languages
English (en)
Other versions
JP2009545220A (ja
Inventor
サヴィン,ヴァレンティン
テナ,ディミトリ
Original Assignee
コミッサリヤ ア レネルジ アトミック
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コミッサリヤ ア レネルジ アトミック filed Critical コミッサリヤ ア レネルジ アトミック
Publication of JP2009545220A publication Critical patent/JP2009545220A/ja
Application granted granted Critical
Publication of JP5199255B2 publication Critical patent/JP5199255B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、遠隔通信またはデータ記録の分野における誤り訂正符号の復号に関する。より詳細には、本発明は、LDPC(Low Density Parity Check[低密度パリティ・チェック])符号またはターボ符号(turbocodes)のような二部グラフ(bipartite graph)において表示できる誤り訂正符号の復号のためのメッセージ・パッシング(message passing)による逐次反復方法に関する。
二部グラフによって表示できる誤り訂正符号は幅広い多様な符号をカバーしており、具体的には、非特許文献1の論文において最初に記載され、最近興味深い属性が再発見されたLDPC符号や画期的な論文である非特許文献2によって導入されたターボ符号がある。
二部グラフは、あらゆるノードが二つの別個の部分集合をなし、単一の部分集合内のどの二つのノードもグラフのエッジによって接続されていない非有向グラフである。
いくつかの誤り訂正符号が二部グラフとして表示できる。グラフは、符号語を形成するシンボルに関連付けられたノードからなる第一の部分集合と、符号制約条件、典型的にはパリティ・チェックに関連付けられたノードからなる第二の部分集合とに分割される。制約条件のグループに関連付けられた二部グラフはタナー・グラフ(Tanner graph)とも呼ばれる。
符号語中のシンボルは通例、ガロア体の元F2={0,1}、つまりビットであるが、より一般には、任意の標数2をもつ体
Figure 0005199255
の、よって2p進アルファベットの元であってもよい。以下では、一般性を失うことなく、p=1の場合、つまり二進符号に限定する。
二部グラフによる追加的な表現符号は、逐次反復的なメッセージ・パッシング(MP)またはBP(Belief Propagation[信頼伝搬])復号を使って復号できる。この復号方法についての一般的な記述は非特許文献3によって与えられている。MP型逐次反復式復号は実際には、復号の分野でよく知られたアルゴリズム、すなわちターボ符号に使われる「前方−後方(forward-backward)」アルゴリズムおよびLDPC符号のためのギャラガー・アルゴリズムの一般化である。
簡単のため、以下には、LDPC符号の枠組みにおけるメッセージ・パッシングによる逐次反復復号の原理の記載が含まれる。線形符号(K,N)を考える。ここで、Kはいくつかの情報ビットを表す符号の大きさ(dimension)であり、Nは前記いくつかの符号化されたビットを表す符号の長さである。M=N−Kはパリティ・ビットの数、すなわちパリティ制約条件の数に等しい。
図1は、線形符号(K,N)のタナー・グラフを示している。グラフの左側は、符号中のビットに対応する、「変数(variable)」型ノードまたは単に「変数」とも呼ばれるノードを示し、右側は、「チェック(check)」型ノードまたはより単純に「チェック」とも呼ばれるパリティ・チェックに対応するノードを示している。このグラフの結合行列は、大きさM×Nをもつ前記符号のパリティ行列に対応する。よって、この二部グラフは、N個の「変数」型ノードおよびM個の「チェック」型ノードを有し、変数ノードnがチェック・ノードmに接続されるのはhmn=1である場合でありかつその場合に限られる。たとえば、図1におけるグラフは符号(10,5)に対応し、次のパリティ行列
Figure 0005199255
をもつ。
一般に、線形符号は二進値の要素をもつ生成行列Gによって定義され、符号語x=(x1,x2,…,xN)は、情報ビットa=(a1,a2,…,aK)をもつ語から
x=aG (2)
によって得られることを想起されたい。すべての符号語はパリティ・チェックを満たすので、関係
H・GT=0 (3)
が得られる。ここで、GTは行列Gの転置を表す。
符号語xは通信チャネル上で伝送されたり、データ担体に記録されたりする。xのノイズ入りバージョン、すなわちy=(y1,y2,…,yN)が受信に際して、あるいは担体を読むときに回復される。復号動作は、観察値yから出発してxを、したがってaを見出すことである。
逐次反復的メッセージ・パッシング復号の原理を記述する前に、以下の記号法について取り決めておく。
H(n)は、二部グラフ中の変数nに関係したすべての試験、つまりノードnに隣接するすべてのノードを表す。
H(m)は、二部グラフ中のチェックmに接続された変数の集合、つまりノードmに隣接するすべてのノードを表す。
αnは二部グラフ中の変数nに関する事前(a priori)情報、つまり符号語中のn番目のビットに関する事前情報を表す。この情報が、受信される信号および伝送チャネルの特性を取り入れるものである。これはデコーダへの入力をなし、通例、ソフトな値の形で、すなわち確率を用いて復調器によって与えられる:
αn=(pn 0,pn 1) (4)
ここで、pn a=Pr(xn=a|yn), a∈{0,1}
あるいはより便利には、対数尤度比(LLR: logarithmic likelihood ratio)の形
Figure 0005199255
で与えられる。こうして、中央化された(centred)ガウス型ホワイトノイズおよびBPSK変調については、復調器は単に
αn=(2/σ2)yn (6)
を計算する。ここで、σ2はノイズ分散である。
αmnは、変数nによってチェックm∈H(n)に伝送されるメッセージを表す。ターボ符号を参照すると、αmnは外来情報(extrinsic information)とも呼ばれる。
βnmは対称的にチェックmによって変数n∈H(m)に伝送されるメッセージを表す。これも外来情報と形容される。
^付きのαnは、変数nに関係した事後(a posteriori)情報を表す。これは、事前情報αnと、復号の間に隣接するチェックから変数nが受信したメッセージβnmとの両方を取り入れている。
 ̄付きのαnは、ソフト値である^付きのαnに対応するハードな値、つまりビットxnについてなされた決定である。
図2は、メッセージ・パッシングによる逐次反復復号の原理を示している。
ステップ210では、メッセージαmnは、変数nおよびチェックm∈H(n)の対のそれぞれについて初期化される。メッセージαmnは、通例、前記の事前情報によって初期化される。すなわち、αmn=αn、∀m∈H(n)。逐次反復カウンタ(iteration counter)Iterも0に初期化される。
この初期化ステップには以下のステップを含む逐次反復ループが続く。
220では、チェックが初期化される。より正確には、各チェックmについて、チェックmから対応する変数n∈H(m)へのメッセージβmnが計算される。すなわち、
βmn=FC({αmn'|n'∈H(m)−{n}}) (7)
ここで、FCはチェック処理関数である。任意の与えられたノードの対m、n∈H(m)について、メッセージβmnは、チェックm自身が変数n'∈H(m)−{n}から受信したメッセージの関数として計算される。結果として、変数ノードから自分自身に回送される外来情報はないことがわかる。チェック処理ステップは水平ステップとも呼ばれる。
230では、変数は対称的に処理される。より正確には、各変数nについて、対応するチェックm∈H(n)に向けられたメッセージαmnが計算される。すなわち、
αmn=FV({βm'n|m'∈H(n)−{m}}) (7')
ここで、変数処理関数はFVと記されている。与えられたノードの対n、m∈H(n)について、メッセージαmnは、変数n自身がチェックm'∈H(n)−{m}から受信したメッセージの関数として計算される。よって、上記のように、ノードから自分自身に回送される外来情報はない。変数処理ステップは垂直ステップとも呼ばれる。
240では、事後情報(^付きのαn)が、事前情報αnと、変数nによってその隣接チェック・ノードm∈H(n)から受信されたメッセージβmnとから推定される。記号的には
Figure 0005199255
と表される。ここで、事後推定関数がFAPと表されている。
250では、ソフトな値(^付きのαn)からハードな値( ̄付きのαn)に対する決定がなされる。すなわち、
Figure 0005199255
ここで、決定関数がFDで表されている。典型的には、BPSK変調について、ソフト値の符号について決定がされる。すなわち、
Figure 0005199255
以下では便宜上、ビットの値はその変調された値と同定される。通常、ビット「0」が値「+1」によって表現され、ビット「1」が値「−1」によって表現される。
260では、ベクトル
Figure 0005199255
が符号語かどうかが検査される。つまり、前記ベクトルがパリティ・チェックを満たすかどうかが検査される。もし満たせば、ステップ265でループは終了され、復号された語は
Figure 0005199255
となる。もし満たさなければ、反復数がステップ267でインクリメントされ、ステップ270における比較が、行われた反復数Iterが閾値Iter_maxに達したかどうかを判定する。もし達していなければ、逐次反復式復号はステップ220にループで戻って継続される。デフォルトでは、復号動作が失敗したと結論され、ループはステップ275で終了される。
逐次反復ループ中のステップの順序は、図2に示された順序とは異なるものであってもよい。特に、変数およびチェックの処理順は逆にでき、メッセージβmnをβmn=0、∀n∈{1,…,N}および∀m∈H(n)と初期化することによって開始することが可能である。
図2に示される逐次反復符号の原理によれば、すべてのチェックがまず処理され、続いてすべての変数が処理されてもよいし、あるいは上述したように、すべての変数がまず処理されて、続いてすべてのチェックが処理されてもよい。これは、「並列スケジューリング(parallel scheduling)」または「洪水スケジューリング(flooding scheduling)」と称される。文献では他の型のスケジューリングも提案されており、それらは二つの範疇に分類されうる。
−シリアル型スケジューリング。「シリアル・スケジューリング(serial scheduling)」、「シャッフルドBP(shuffled-BP)」、「水平シャッフルド(horizontal shuffled)」または「垂直シャッフルド(vertical shuffled)」スケジューリングを含みうる範疇である。シリアル型スケジューリングは、チェックおよび変数に等しく適用可能である。チェックへの適用については、復号は以下の戦略を使う:
・まず、単一のチェックmが変数n∈H(m)に送られるべきメッセージβmnを計算することによって処理される;
・チェックm'∈H(n)−{m}に送られるべき各変数n∈H(m)からのメッセージαm'nが更新され、送信される。これらの変数に関係した事後情報(^付きのαn)も更新される;
・それ以上チェックがなくなるまで、次のチェックが処理され、上記2つのステップが反復される。
同様に、チェックごとの処理の代わりに、変数ごとの処理を採用することができる。想定される場合に依存して、用語「水平シャッフルド」または「垂直シャッフルド」スケジューリングが使用される。
上述した二つのスケジューリング型は、「混合(mixed)」または「グループ・シャッフルド(group shuffled)」スケジューリングの形で混成されることもできる。混合スケジューリングに対応するデコード戦略の記述は、非特許文献4の論文に与えられている。戦略は、ノードのグループによる分割に基づき、処理はグループ内では並列、あるグループから次のグループへは直列である。より正確には、チェック・グループの分布について:
・チェック{m1,m2,…,mg}からなる第一のグループGは、i=1,…,gについて変数n∈H(mi)に送られるべきメッセージβmi nを計算することによって処理される;
・i=1,…,gについて対応するチェックm'∈H(n)−{mi}に送られるべき各変数n∈H(mi)についてのメッセージαm'nが更新され、送信される。これらの変数についての事後情報(^付きのαn)も更新される;
・それ以上チェック・グループがなくなるまで、次のチェック・グループが処理され、上記2つのステップが反復される。
同様に、処理は、チェックのグループごとの分割ではなく、変数のグループごとの分割に基づくこともできる。
図3、図4および図5は、それぞれ並列スケジューリング、シリアル・スケジューリングおよび混合スケジューリングについてのメッセージ・パッシング機構を図的に示している。変数が処理される前にチェックが処理されると想定されている。図3は、チェックの処理における第一のステップ(a)および変数の処理における第一のステップ(b)を示している。図4および図5は、チェックの処理における第一(a)および第二(c)のステップならびに変数の処理における第一のステップ(b)および第二のステップ(d)を示している。図5では、すべてのチェック・ノードは、逐次的に処理されるG1およびG2で表される二つのグループに分割されている。
なお、シリアル・スケジューリングおよび並列スケジューリングは混合スケジューリングの特殊な場合のように考えることもできる。前者は諸グループが単一元に縮小された場合に対応し、後者は一つのグループがすべてのチェック・ノード(および変数ノード)を含む場合に対応する。
LDPC符号について、二つの主要な逐次反復メッセージ・パッシング復号アルゴリズムが知られている。すなわち、「log-BP〔対数BP〕」とも呼ばれるSPA(Sum Product Algorithm[和積アルゴリズム])および「based BP〔基礎付きBP〕」とも呼ばれる「Min-Sum〔最小和〕」アルゴリズムである。これら二つのアルゴリズムの詳細な記述は、非特許文献5の論文によって与えられている。
SPAとMin-Sumアルゴリズムの唯一の相違は、チェック処理ステップにおいてであり、これについては後述する。他のステップは同一である。すなわち:
変数処理ステップ230は次のようにメッセージαmnを計算することからなる:
Figure 0005199255
ここで、B*mnは、コントロールm'∈H(n)−{m}から変数nによって受信されたすべてのメッセージβm'nを表し、Cmnは、これらのチェックのそれぞれについて検証されたパリティ・チェックに対応するイベントを表す。yn値どうしが独立であるとすると、αmnはLLRの形で
Figure 0005199255
のように表せることが示される。
事後情報を推定するステップ240は
Figure 0005199255
を計算することからなる。ここで、BnはすべてのH(n)チェックから変数nによって受信されるメッセージを表し、Cnは、これらのチェックのそれぞれについて検証されたパリティ・チェックに対応するイベントを表す。上と同じ想定に基づき、^付きのαnがLLRの形で
Figure 0005199255
のように表せることが示せる。
式(11)および(13)により、
Figure 0005199255
であることが見出される。その結果、変数処理ステップ230は、事後情報の推定後の、反復工程の終わりに置かれてもよい。表式(14)は、あるノード(m)が外来情報(この場合βmn)を自分自身に返さないことを翻訳したものである。
ハード値決定ステップ250は単に:
Figure 0005199255
によって行われる。ここで、xが正であればsgn(x)=1、そうでなければsgn(x)=−1である。
ステップ260におけるハード値に対するパリティ・チェックの検証は、パリティ・チェックの計算:
Figure 0005199255
を使う。すべてのパリティ・チェックが満たされるのは:
Figure 0005199255
の場合であって、かつこの場合のみである。
SPAアルゴリズムについては、チェック処理ステップ220は次を計算することからなる。
Figure 0005199255
ここで、cm=1は、あるパリティ条件がチェックmについて満足されることを意味し、A*mnは、変数n'∈H(m)−{n}からチェックmによって受信されたすべてのメッセージαmn'を表す。βmn
Figure 0005199255
によって表せることが示される。ここで、
Figure 0005199255
である。
Min-Sumアルゴリズムによるチェックの処理は、表式(19)の単純化に対応する。関数Φ(x)の速い減衰およびΦ(x)がその逆に等しい、すなわちΦ(Φ(x))=xという事実のため、次のような近似:
Figure 0005199255
をすることが正当化できる。
このMin-Sum復号アルゴリズムは、加算、比較および符号変化を実行するだけなので、SPA復号アルゴリズムより著しく単純である。さらに、Min-Sumアルゴリズムの性能はノイズ分散σ2の推定とは独立である。
SPA復号アルゴリズムの性能のほうがMin-Sumアルゴリズムの性能より上ではあるが、SPA復号アルゴリズムの性能は、ノイズ・パワーの推定が悪いとひどく劣化することがありうる。
R・ギャラガー(Gallager)、「低密度パリティ・チェック符号(Low density parity check codes)」、IEEE Trans. Inform. Theory、vol. IT-8、第21-28頁、1962年 C・ベルー(Berrou)ら、「最適に近い誤り訂正符号化および復号:ターボ符号(Near optimum error correcting coding and decoding: turbo-codes)」、IEEE Trans. Inform. Theory、vol. 44、No.10、第1261-1271頁、1996年 N・ウィベリ(Wiberg)、「一般グラフに対する符号および復号(Codes and decoding on general graphs)」、学位論文、1996年 J・チャン(Zhang)ら、「シャッフルド逐次反復復号(Shuffled iterative decoding)」、IEEE Trans. on Comm.、Vol.53、No.2、2005年2月、第209-213頁 W・E・ライアン(Ryan)、「LDPC符号入門(An introduction to LDPC codes)」、『記録システムのための符号化および信号処理のCRCハンドブック(CRC Handbook for coding and signal processing for recording systems)』所収、リンクwww.csee.wvu.edu/wcrl/ldpc.htm
本発明の一般的な目的は、二部グラフによって表現できる誤り訂正符号を復号するための逐次反復式メッセージ・パッシング型復号アルゴリズムであって、現状技術で知られている同じ型のアルゴリズムよりも誤り率(error rate)および収束率(convergence rate)の意味で性能がよいものを提案することである。
本発明の第一の目的は、LDPC符号を復号するための逐次反復式メッセージ・パッシング型復号アルゴリズムであって、SPAアルゴリズムより著しく低い複雑さをもち、その一方で所与の信号対雑音比に対してSPAアルゴリズムに匹敵するまたさらにはよりよい誤り率性能をもち、またノイズ・パワーの推定を必要としないものを提案することである。
本発明のもう一つの個別目的は、LDPC符号を復号するためのメッセージ・パッシング型復号アルゴリズムであって、SPAまたはMin-Sumアルゴリズムより高い収束率をもつものを提案することである。
本発明は、複数の変数ノードおよび複数のチェック・ノードを有する二部グラフにおいて表示できる誤り訂正符号の復号のためのメッセージ・パッシングによる逐次反復的方法であって、複数の復号反復工程の各反復工程について:
・変数ノードまたはチェック・ノードが、これらのノードの近傍において利用可能な復号情報の対応する信頼度(degree of reliability)に応じて分類され、信頼度の高いノードが信頼度の低いノードより前に分類され;
・こうして分類された各ノードが、前記分類によって定義された順序で、少なくとも一つのメッセージを隣接ノードに渡す(pass)、
方法によって定義される。
第一の実施形態によれば、分類されるべき各ノードについて、前記分類は、二部グラフにおいてこのノードから所定の距離以内にあるノードに存在する、またはそのようなノードによって送信もしくは受信された情報の信頼性の指標(measurement)の計算と、こうして得られた指標の値のソート(sorting)を含む。
前記複数の反復工程の各反復工程について、分類されたノードは次いで、前記分類によって定義された順序で逐次的に処理される。分類された各ノードについて、それに隣接するノードに宛てられたメッセージが計算され、前記各隣接ノードについて、該隣接ノードに隣接するノードへのメッセージが計算される。
第二の実施形態によれば、分類されるべき各ノードについて、前記分類は、二部グラフにおいてこのノードから所定の距離以内に位置するノードに存在する、またはそのようなノードによって送信もしくは受信された情報の信頼性の指標の計算を含む。ノードは、前記指標の値の諸区間においてグループ化される。
信頼性指標が整数値を使う場合、前記各整数値について、信頼性指標がこの値に等しくなるノードのインデックスが、それに関連付けられたメモリ・ゾーンに記憶される。
前記複数の反復工程の各反復工程について、ノード・グループは前記分類によって定義された順序で逐次的に処理され、各ノード・グループについて、そのグループ内のノードに隣接するノードへのメッセージが計算され、前記各隣接ノードについて、それ自身が該隣接ノードに隣接するノードへのメッセージが計算される。
ある変形によれば、前記二部グラフにおける各変数ノードについて、前記複数の反復工程の各反復工程は、このノード中にすでに存在する事前情報および隣接チェック・ノードからこのノードによって受信されるメッセージの関数として事後情報を計算するステップをも有する。
この事後情報計算ステップに続いて、前記変数のハードな値についての決定ステップがあってもよい。
次のステップは、こうして得られた変数のハードな値が、グラフ中のすべてのチェック・ノードに関連付けられたパリティ・チェックを満たすかどうかを試験することである。もし満たせば、前記ハードな値によって構成される語が復号された語として与えられる。
有利には、前記分類は、所定数の復号反復工程の後に中断され、本復号方法は次いでその復号反復工程を、前記変数ノードまたは前記チェック・ノードの前記分類なしに続ける。
前記分類は、前記変数の事後の値と事前の値との間の差の絶対値の最小値が所定の閾値より大きい場合、中断される。その際、本復号方法は、その復号反復工程を、前記変数ノードまたは前記チェック・ノードの前記分類なしに続ける。
第一の応用では、前記誤り訂正符号はターボ符号である。
第二の応用では、前記誤り訂正符号は、N個の変数ノードおよびM=N−K個のチェック・ノードをもつ二部グラフによって表されるLDPC符号(K,N)である。
後者の場合、インデックスm∈{1,…,M}をもつチェック・ノードからインデックスn∈{1,…,N}をもつ変数ノードへのβmnメッセージは次のように計算できる:
Figure 0005199255
ここで、αmn'はインデックスn'をもつ変数ノードからインデックスmをもつチェック・ノードへのメッセージを表し、H(m)はインデックスmをもつチェック・ノードに隣接するすべての変数ノードを表し、xが正であればsgn(x)=1、そうでなければsgn(x)=−1であり、
Figure 0005199255
である。
あるいはまた、インデックスm∈{1,…,M}をもつチェック・ノードからインデックスn∈{1,…,N}をもつ変数ノードへのβmnメッセージは次のように計算できる:
Figure 0005199255
ここで、αmn'はインデックスn'をもつ変数ノードからインデックスmをもつチェック・ノードへのメッセージを表し、H(m)はインデックスmをもつチェック・ノードに隣接するすべての変数ノードを表し、xが正であればsgn(x)=1、そうでなければsgn(x)=−1である。
ある例示的な実施形態によれば、前記分類はチェック・ノードに適用され、前記所定の距離は2に等しい。インデックスmをもつチェック・ノードの信頼性指標は次いで次のように計算される:
Figure 0005199255
ここで、H(m)はインデックスmをもつチェック・ノードに隣接する変数ノードの集合を表し、H(n)はインデックスnをもつ変数ノードに隣接するチェック・ノードの集合を表し、Card(.)はある集合のカージナル数(cardinal)を表す。cm=+1であればc=0、cm=−1であればc=δmax+1であり、ここでδmaxは二分グラフ中のチェック・ノードの最大次数(degree)である。cm=+1/cm=−1は、インデックスmをもつチェック・ノードについてパリティ・チェックがそれぞれ満たされている/満たされていないことを意味する。
最後に、本発明は、コンピュータによって実行されたときに上記で定義された復号方法の諸ステップを実装するよう適応されたソフトウェア手段を有するコンピュータ・プログラムに関係する。
(K,N)符号についてのタナー・グラフの例を示す図である。 現状技術に基づいて知られている逐次反復式メッセージ・パッシング復号の原理を図的に示す図である。 並列型スケジューリングに基づくメッセージ・パッシングによる逐次反復式復号の最初のいくつかの反復工程を示す図である。 シリアル型スケジューリングに基づくメッセージ・パッシングによる逐次反復式復号の最初のいくつかの反復工程を示す図である。 混合型スケジューリングに基づくメッセージ・パッシングによる逐次反復式復号の最初のいくつかの反復工程を示す図である。 あるノードの1次の近傍を示す図である。 あるノードの2次の近傍を示す図である。 本発明に基づく、メッセージ・パッシングによる逐次反復式復号の原理を示す図である。 本発明の第一の実施形態に基づく、メッセージ・パッシングによる復号のための逐次反復式方法を示す図である。 本発明の第二の実施形態に基づく、メッセージ・パッシングによる復号のための逐次反復式方法を示す図である。 LDPC符号を復号するための、本発明に基づく復号方法の例示的な適用を示す図である。 特定のLDPC符号について、本発明に基づく復号方法によって得られる誤り率を、現状技術に基づく他の諸方法との比較で示す図である。
いま一度、N個の変数およびM個のチェックをもつ二部グラフによって表現できる誤り訂正符号を考える。
グラフ上の二つのノードν、μをつなぐ、グラフを通る最短経路の長さは距離と呼ばれ、その長さはエッジ数で表されてD(ν,μ)と記される。二部グラフの定義を考えると、同じ型の二つのノードの間の距離は偶数であり、異なる型の二つのノードの間の距離は奇数であることが演繹される。
グラフΓの任意のノードνのd次(order d)の近傍は、νからd以下の距離に位置するノードの集合Vν (d)として定義される。すなわち:
Vν (d)={μ∈Γ|D(μ,ν)≦d} (21)
よって、あるノードの0次の近傍はそのノード自身からなり、1次の近傍は0次の近傍とこのノードに隣接する全ノードとの組み合わせであり、2次の近傍は1次の近傍と1次の近傍中のノードに隣接する全ノードとの組み合わせである、などとなる。n個の変数およびm個のチェックからなる二部グラフについては、これらのノードの0次から2次の近傍は:
Figure 0005199255
によって与えられる。
単集合{n}(または{m})がVn (2)(またはVm (2))の表式に現れていないことに気づかれるであろう。これは、該単集合は、隣接関係の対称性から、組み合わせの第二項にすでに含まれているからである。
一般に、二部グラフのノードνの近傍は、再帰関係
Figure 0005199255
によって得ることができる。
図6Aおよび図6Bは、近傍の概念を説明するために、図1のグラフ上のチェック・ノードmの1次および2次の近傍を示している。前記近傍に属するノードはグレーで示されている。
本記載の残りの部分では、Γのノードνのd次の信頼性指標(order d reliability measurement)という用語が、近傍Vν (d)中の利用可能な復号情報、換言すれば前記近傍に属するノードに存在するまたはそのようなノードによって送信もしくは受信される情報に依存し、復号動作の局所的な信頼度を示す変数fd(ν)を指すために使われることになる。信頼度が高まるとともにfd(ν)が増加するときその指標を「正」と形容し、そうでない場合に「負」と形容することにする。
チェック・ノードmにおいて利用可能な復号情報は、第一に、パリティ・チェックが検証されているかどうかを示す値cmと、第二に、隣接変数ノードn∈H(m)に送信されるβmnメッセージとを含む。値cmおよびメッセージβmnが復号についての信頼性情報を担う。
変数ノードnにおいて利用可能な情報は、事前情報(αn)、事後情報(^付きのαn)、隣接チェック・ノードm∈H(n)に送られるべき外来情報メッセージ(αmn)およびハードな値( ̄付きのαn)を含む。
上記の情報は、ハードな値を除いて、復号についての信頼性情報を担持している。
一般に、LLRの形で表されたソフトな値
Figure 0005199255
を考えると、その絶対値が大きいほど復号は信頼できることになる。
以下は、0次ないし2次について信頼性指標の若干の例示的な、限定するものではない例を含む。
・0次の信頼性指標:
この場合、近傍はノード自身に還元される。変数ノードnの0次の信頼性を測定するために、次の関数を選ぶことができる:
Figure 0005199255
これは、ハードな値
Figure 0005199255
についての信頼の度合い(degree of confidence)を示す。
チェック・ノードmについては、単に次の関数を選ぶことができる:
Figure 0005199255
パリティ・チェックが満たされていたとすると(cm=1)、満たされていなかった場合よりも復号が信頼できることは理解できる。
・1次の信頼性指標:
ここでもまた、変数ノードとチェック・ノードについて処理が異なる。変数ノードについては、次の関数
Figure 0005199255
の一つが1次の信頼性指標として選べる。
表式(27)は、パリティ・チェックが検証されている、変数ノードnに接続されたチェック・ノードmの数を表す。
表式(28)は、符号の不規則性(換言すれば、複数の変数ノードが異なる次数(degree)をもつ可能性)取り入れ、検証されたおよび検証されていないパリティ・チェックのサマリーを生成する。
表式(27')および(28')は、正の指標(27)および(28)に対応する負の指標である。
(29)に表されている信頼性指標は、隣接チェック・ノードから受信される信頼性情報の縮小(reduction)に基づいているので、保守的なものである。
チェック・ノードmについては、1次の信頼性指標について次の関数
Figure 0005199255
の一つを選ぶことができる。
表式(30)は、チェックmが接続されている変数の信頼性(事後情報)の最小値を示す。
表式(31)は同様の基準を表しているが、外来情報に適用される。表式(29)と対応していることに気づかれるであろう。
表式(32)は二つの情報項目のデカルト積を表し、結果としてそれらを統合して取り入れている。第一のものはパリティ・チェックの検証についてであり、第二のものは(30)と同様に事後情報についてである。
・2次の信頼性指標:
変数ノードnについては次の関数
Figure 0005199255
を選ぶことができる。
表式(33)は負の復号信頼性指標を表す。これは、変数nに関係したチェックの数であって、パリティ条件が満たされておらず、変数nがこれらのチェックに隣接するすべての変数の間で最も信頼できないものであるようなものを示す。実は、測定値(33)は、指標(27')と(30)の合成と考えることができる。
チェック・ノードmについては次の関数のうちの一つを選ぶことができる。
Figure 0005199255
ここで、cm=+1であればc=0、cm=−1であればc=δmax+1であり、ここでδmaxはチェック・ノードの最大の次数(degree)、すなわち
Figure 0005199255
である。
表式(34)は、mのm自身を除いた次数2の近傍中において、満たされていないパリティ・チェックの数を与え、復号信頼性の負の指標を表している。表式(34)の二番目の等号は、当該近傍に長さ4のサイクルがない場合にのみ満たされることを注意しておく。実際上、タナー・グラフが可能な最長のサイクルをもつような符号が使われるので、この等号は通例検証される。
表式(35)はmに隣接する、m自身を除いた、少なくとも一つの満たされていないチェックに接続されている変数の数を示し、結果として、復号信頼性の負の指標を表している。和の記号の中にある項は0または1に等しいので、この測定値の値は0からδmaxの間である。
表式(35)は、ノードmについてパリティ・チェックが検証されているかどうかに依存した区別をしない。この情報を取り入れるために、チェックmの検証に依存する値をもつバイアスcが表式(36)に導入された。上述したバイアス値(c=0、δmax+1)について、信頼性指標は検証されたチェックについては0からδmaxの間の値に等しく、検証されたチェックについてはδmax+1から2δmax+1までの値に等しい。これは、上で定義した意味において負の信頼性指標であることを注意しておく。すなわち、チルダ付きf2(m)の値が小さいほどチェックmの値は信頼できる。よって、(35)の値に関わりなく、検証されたチェックの信頼度は、検証されていないチェックの信頼度よりも常に大きい。
上で定義された関数のいくつか、特に関数(34)ないし(36)は整数値であることを注意しておく。したがって、これらの関数はマイクロプロセッサ実装に特に好適である。
重要なことに、上で定義された関数のいくつか、特に関数(34)ないし(36)は、ハードな値cmしか使っていない。
Figure 0005199255
であるから、ノイズ・パワー(σ2)の値はこれらの関数の計算に現れていないことが見て取れる。
本発明の基本的な概念は、グラフのノードをその信頼性に応じて分類し、最も信頼できるノードまたはノードのグループから始めて、シリアルまたは混合型スキームを使ったメッセージ・パッシングによって復号を行うということである。これは復号性能を、収束率およびビット誤り率(BER: bit error rate)の両方の面で著しく改善する。
最も信頼できるノードによって伝送されるメッセージが、隣接ノードを復号するのに最も効率的に寄与できることは理解されるであろう。よって、ある反復工程から次の反復工程へ、そしてノードからノードへの信頼性の高速の伝搬があり、これに相関して諸反復工程が進行するにつれて外来情報の絶対値の著しい増加がある。
図7は、本発明に基づく復号の原理を図的に示している。のちに詳述する初期化段階710ののち、反復工程ループが始まる。グラフのチェック・ノードまたは変数ノードが720において信頼度に依存して分類される。ここでは、チェック・ノードが分類されると想定する。変数ノードの分類は対称的な諸ステップにつながる。
ステップ730ではシリアル処理または混合処理が行われる。シリアル型処理について、チェック・ノードが逐次的に処理され、各チェック・ノードに隣接する変数ノードも、最も信頼できるチェック・ノードから始まって信頼度が低下していく順序で、逐次的に処理される。混合型の処理については、チェック・ノードは信頼性グループに分類されている。第一のグループは最も信頼できるノードからなり、第二のグループはそれよりは信頼できないノードからなる、などである。変数ノードおよび第一のグループ中のチェック・ノードに対して並列処理がなされ、次いで次のグループの変数ノードおよびチェック・ノードに対して並列処理がなされ、それ以上グループがなくなるまで続けられる。ステップ740、750、760、765、767、770、775はそれぞれ図2のステップ240、250、260、265、267、270、275と同一であり、よってこれ以上詳細に述べることはしない。
図8は、シリアル・スケジューリングを使った本発明のある実施形態のさらなる詳細を示している。
ステップ810でメッセージαmnおよびβmnが初期化される。たとえば、変数nおよびチェックm∈H(n)の対のそれぞれについて、αmnはαmn=αnと初期化される。同様に、チェックmおよび変数n∈H(m)の対のそれぞれについて、βmnはβmn=0と初期化される。
次いでステップ820で、前記チェックは、信頼性指標
Figure 0005199255
を使って信頼度の降順にソートされる。還元すれば、正の指標については、チェックは
Figure 0005199255
となるようソートされ、負の指標については逆順にソートされる。デカルト積指標(たとえば(32)参照)については、その指標が正か負かに依存して辞書順関係または逆辞書順関係が使われる。また、チェック・ノードのカウンタをj=0と初期化する。
次いで825で現在のチェックm=mjが選択され、830で変数n∈H(m)が処理される。換言すれば、αmn=FV({βm'n|m’∈H(n)−{m}})が計算される。
次いでステップ835は現在チェック処理mを行う。換言すれば、n∈H(m)についてβmn=FC({αmn'|n’∈H(m)−{n}})が計算される。
ある変形実施形態によれば、ステップ830と935は逆にされる。
ステップ837でチェック・ノード・カウンタがインクリメントされ、ステップ839で全部処理されたかどうかを見出す試験がなされる。もしまだである場合には、処理はループでステップ825に戻り、それ以外の場合には、処理は、それぞれ事後情報の計算、ハード値の決定およびパリティ・チェックの検証を表すステップ840ないし860に続く。ステップ840、850、860、865、867、870、875はそれぞれ図2のステップ240、250、260、265、267、270、275と同一である。
ある代替的な実施形態によれば、チェックではなく変数がソートされる。その場合、内側のループ825ないし839は変数一つずつに適用されていき、前と同じようにして、現在の変数が、それに隣接するチェックの処理の前または後に、処理されうる。
図9は、混合スケジューリングを使った本発明のある実施形態を示している。
ステップ910では、図8のステップ810でのように、メッセージαmnおよびβmnが初期化される。
ステップ920では、すべてのチェック・ノードまたは変数ノードが、それぞれ異なる信頼性クラスに対応するグループに分割される。たとえば、信頼性クラス(reliability class)は信頼性指標の値のある区間によって定義される。この実施形態は、指標が整数値を使うときに特に有利である。その場合、ある整数値に、あるいは複数の連続する整数値にある範囲を割り当て、ノードのインデックスを対応するクラスの関数としてテーブルに記憶することができる。以後、異なる信頼性クラスをφ01,…,φωと記すことにする。ここで、φ0は信頼度が最も高いクラス、φωは信頼度が最も低いクラスである。G0,G1,…,Gωは対応するノード・グループである。以下では前記の分割はチェック・ノードに対してなされたと想定する。
また、信頼性クラスのカウンタをj=0に初期化する。
ステップ925では、現在の信頼性クラスφjに対応するノードのグループ、つまりGjを選択する。
ステップ930では、変数n∈H(m)、∀m∈Gjが並列に処理される。換言すれば、メッセージαmn=FV({βm'n|m'∈H(n)−{m}})、∀m∈Gj、∀n∈H(m)が計算される。
ステップ935では、チェックm∈Gjが並列に処理される。換言すれば、メッセージβmn=FC({αmn'|n'∈H(m)−{n}})、∀m∈Gj、∀n∈H(m)が計算される。
ある変形実施形態によれば、ステップ930と935は逆にされる。
ステップ937ではクラス・カウンタがインクリメントされ、ステップ939で全部処理されたかどうかを判定するべく試験される。もしまだである場合には、処理はループでステップ925に戻り、それ以外の場合には、処理は、それぞれ事後情報の計算、ハード値の決定およびパリティ・チェックの検証を表すステップ940ないし960に続く。ステップ940、950、960、965、967、970、975はそれぞれ図2のステップ240、250、260、265、267、270、275と同一である。
図10は、整数値をもつ信頼性指標に基づく、混合スケジューリングによるLDPC符号の復号への、本発明の個別的な適用を示している。この場合、(36)で定義されたチェック・ノードに対する負の指標を選んだ。
ステップ1010では、ソフトな事後の値(^付きのαn)が対応する観察
Figure 0005199255
によって初期化され、βmnメッセージは0によって初期化される。
また、反復カウンタも0に初期化する。
ステップ1015では、ハードな値についての決定がなされる。すなわち、
Figure 0005199255
とする。
ステップ1020は
Figure 0005199255
の値を計算する。ここで、cmはパリティ・チェック
Figure 0005199255
である。
ステップ1023は、χ=Mかどうかを、つまりすべてのパリティ・チェックが検証されているかどうかを試験する。もしそうであれば、ステップ1025で、符号語を提供することによって復号アルゴリズムは終了される。もしそうでなければ、処理は、指標(36)を使ってチェック・ノードの信頼性指標を計算することによってステップ1027に続く。この指標は0,1,…,2δmax+1のうちの整数値に等しいことを想起されたい。ここで、δmaxはチェック・ノードの最大の次数である。この場合、信頼性クラスを整数値、つまりφ01,…,φωによって割り当てる。ここで、ω=2δmax+1であり、φjは指標の値に対応し、j∈{0,1,…,2δmax+1}である。
ステップ1029では、現在の信頼性クラスφjに対応するノードのグループ、つまりGjが選ばれる。
ステップ1030では、変数n∈H(m)、∀m∈Gjの処理が並列になされる。換言すれば、メッセージ
Figure 0005199255
が計算される。
ステップ1035ではチェックm∈Gjが並列に処理される。換言すれば、変数n∈H(m)、∀m∈Gjに送られるべきメッセージ、具体的には、SPA処理については
Figure 0005199255
簡略化されたMin-Sum型処理については
Figure 0005199255
が計算される。図にはこの後者の場合が示されている。次いでステップ1040で事後情報が
Figure 0005199255
を使って計算される。
和の中で使われているチェックm∈H(n)の一部はグループGjの一部を形成しない可能性があり、よって、これらのチェックを起源とするメッセージβmnはステップ1035で計算され直さなかったことを注意しておく。さらに、変数nはいくつかのチェックm∈H(n)に隣接するので、事後情報の前記計算は、H(n)のチェックが処理されるにつれ複数回なされることになる。ステップ1040における和が複数回計算されるのを防ぎ、変更されなかった一部のメッセージβmnが毎回再計算されるのを防ぐため、ステップ1035および1040は有利には次の演算を含む単一のステップによって置き換えられる。
∀m∈Gj、∀n∈H(m)
・古いメッセージを引く:
Figure 0005199255
・新しいメッセージを計算する:
Figure 0005199255
・前記新しいメッセージを足すことによって事後情報を更新する:
Figure 0005199255
このようにして、チェックm∈H(n)によって変数nに送られた新しいメッセージが計算される際に事後情報が更新される。これは、事後情報の計算のために実行される演算の数を著しく減らすことができる。
次のステップ1043は信頼性クラス・カウンタをインクリメントし、次いでステップ1045ですべてのクラスが処理されたかどうかを試験する。もしまだである場合には、ステップ1029が繰り返されて次の信頼性クラスが処理される。もしそうである場合には、ステップ1050で反復カウンタがインクリメントされる。ステップ1053は、停止基準が満たされているかどうか、換言すれば最大反復回数に達しているかどうかを試験する。もしそうであれば、ステップ1055でループは終了され、復号は失敗したと結論される。もしそうでなければ、処理は新しい反復工程のためにステップ1015にループで戻る。
図10において、ハードな値についての決定ステップおよびパリティ・チェックの検証のためのステップが、信頼性計算およびノード処理のステップに先行していることが見て取れる。これは、ここで使われる信頼性指標(表式(36))がハード決定cmを必要とし、結果としてハード決定が前もって計算されることを要求するという事実のためである。
図10に示されるアルゴリズムは、現状技術に基づくSPAまたはMin-Sumアルゴリズムよりやや複雑なだけである。他方、近傍信頼性によるスケジューリングは、同じ信号対雑音比(SNR)についてより低いビット誤り率(BER)に達するための収束を加速する。あるいはまた、同じ設定された値の誤り率について、本発明に基づく復号方法は、より低い符号化利得をもつ符号を使うことができる。
図11は、従来技術のMin-SumおよびSPAアルゴリズムのビット誤り率(BER)の面での性能を、広い範囲の信号対雑音比について、Min-Sum-FVと記される近傍信頼性によるスケジューリングを使ったMin-Sumアルゴリズムと比較している。使用された符号は不規則なLDPC符号[1008,2016]および[4032,8064]であり、したがって1/2の効率をもつ。反復数は、上記三つのアルゴリズムについて200に等しい。
本発明に基づくMin-Sum-FVアルゴリズムが、複雑さは著しく低くなったにもかかわらず、従来技術のSPAアルゴリズムより優れていることが観察される。
図7ないし図10に示された本発明に基づく復号方法では、近傍信頼性によるスケジューリングが復号期間を通じて使用されることが想定されている。ある変形によれば、このスケジューリングは初期の反復工程の間にのみ、観察値からノイズを取り除くために適用され、次いで通常の処理に移行することができる。移行基準は、反復回数Iterfであってもよいし、あるいは有利には外来情報の絶対値とある基準閾値との比較に基づいていてもよい。たとえば、逐次反復式復号において、最小信頼性閾値をTfで表すものとして、
Figure 0005199255
となるやいなや、Min-Sumまたは通常のSPA処理に復帰することができる。この変形は、復号された値が十分信頼できるようになり、収束が確実となるとすぐ、ノードのソートまたは分類を防止する。
本発明は、二部グラフによって表現できる誤り訂正符号、特にLDPC符号またはターボ符号の復号に適用可能である。本発明は、データ記録または遠隔通信の分野において、特に、すでにLDPC符号を使っている遠隔通信システム、たとえばIEEE 802.3a(10ギガビット毎秒イーサネット(登録商標))、DVB-S2(衛星ビデオ放送)、IEEE 802.16(WiMAX)といった規格に準拠する遠隔通信システムのために、あるいはこれらの符号を使うことができる遠隔通信システム、たとえばIEEE 802.11(WLAN)およびIEEE 802.20(移動体ブロードバンド無線アクセス)といった規格を満たすシステムのために使用できる。

Claims (17)

  1. 複数の変数ノードおよび複数のチェック・ノードを有する二部グラフによって表現できる誤り訂正符号の復号のためのメッセージ・パッシングによる逐次反復式方法であって、複数の復号反復工程の各反復工程について:
    ・変数ノードまたはチェック・ノードが、これらのノードの近傍(Vn (d)、Vm (d))において利用可能な復号情報の対応する信頼度に応じて分類され(720)、ノードの近傍において利用可能な復号情報の前記信頼度は、前記二部グラフにおいてこのノードから1より大きな所定の距離(d)以内にある全ノードに存在する、またはそのようなノードによって送信もしくは受信された情報の信頼性の指標
    Figure 0005199255
    から得られ、信頼度の高いノードが信頼度の低いノードより前に分類され;
    ・こうして分類された各ノードが(725)、前記分類によって定義された順序で、少なくとも一つのメッセージ(αmn、βmn)を隣接ノードに渡す、
    方法。
  2. 請求項1記載の復号方法であって、前記ノードの分類はさらに、こうして得られた該ノードのそれぞれの信頼性の指標の値ソートすることによって行われる、復号方法。
  3. 請求項2記載の復号方法であって、前記複数の反復工程の各反復工程について、分類されたノードは、前記分類によって定義された順序で逐次的に処理され、分類された各ノードについて(825)、それに隣接するノードに宛てられたメッセージが計算され(85)、前記各隣接ノードについて、該隣接ノードに隣接するノードへのメッセージが計算される(830)、復号方法。
  4. 請求項1記載の復号方法であって、前記ノードの分類はさらに、前記指標の値の諸区間において該ノードをグループ化することによって行われる、復号方法。
  5. 前記信頼性指標が整数値を使い、前記各整数値について、信頼性指標がこの値に等しくなるノードのインデックスが、それに関連付けられたメモリ・ゾーンに記憶される、請求項4記載の復号方法。
  6. 請求項4または5記載の復号方法であって、前記複数の反復工程の各反復工程について、ノード・グループは前記分類によって定義された順序で逐次的に処理され、各ノード・グループ(Gj)について、そのグループ内のノードに隣接するノードへのメッセージが計算され(935)、前記各隣接ノードについて、それ自身が該隣接ノードに隣接するノードへのメッセージも計算される、復号方法。
  7. 請求項1ないし6のうちいずれか一項記載の復号方法であって、前記二部グラフにおける各変数ノードについて、前記複数の反復工程の各反復工程は、このノード中にすでに存在する事前情報(αn)および隣接チェック・ノードからこのノードによって受信されるメッセージ(βmn)の関数として事後情報
    Figure 0005199255
    を計算するステップ(740、840、940)をも有する、復号方法。
  8. 前記の事後情報計算ステップに続いて、前記変数のハードな値
    Figure 0005199255
    についての決定ステップ(750、850、950)がある、請求項7記載の復号方法。
  9. 請求項8記載の復号方法であって、次のステップ(760、860、960)が、前記のようにして得られた変数のハードな値が、グラフ中のすべてのチェック・ノードに関連付けられたパリティ・チェックを満たすかどうかを試験し、もし満たせば、前記ハードな値によって構成される語が復号された語として提供される、復号方法。
  10. 請求項1ないし9のうちいずれか一項記載の復号方法であって、前記分類は、所定数の復号反復工程(Iterf)の後に中断され、当該復号方法は次いでその復号反復工程を、前記変数ノードまたは前記チェック・ノードの前記分類なしに続ける、復号方法。
  11. 請求項7記載の復号方法であって、前記分類は、前記変数の事後の値と事前の値との間の差の絶対値の最小値が所定の閾値(Tf)より大きい場合、中断され、その際、当該復号方法は、その復号反復工程を、前記変数ノードまたは前記チェック・ノードの前記分類なしに続ける、復号方法。
  12. 前記誤り訂正符号がターボ符号である、請求項1ないし11のうちいずれか一項記載の復号方法。
  13. 前記誤り訂正符号が、N個の変数ノードおよびM=N−K個のチェック・ノードをもつ二部グラフによって表現されるLDPC符号(K,N)である、請求項1ないし11のうちいずれか一項記載の復号方法。
  14. 請求項13記載の復号方法であって、インデックスm∈{1,…,M}をもつチェック・ノードからインデックスn∈{1,…,N}をもつ変数ノードへのβmnメッセージが次のように計算され:
    Figure 0005199255
    ここで、αmn'はインデックスn'をもつ変数ノードからインデックスmをもつチェック・ノードへのメッセージを表し、H(m)はインデックスmをもつチェック・ノードに隣接するすべての変数ノードを表し、xが正であればsgn(x)=1、そうでなければsgn(x)=−1であり、
    Figure 0005199255
    である、復号方法。
  15. 請求項13記載の復号方法であって、インデックスm∈{1,…,M}をもつチェック・ノードからインデックスn∈{1,…,N}をもつ変数ノードへのメッセージβmnは次のように計算され:
    Figure 0005199255
    ここで、αmn'はインデックスn'をもつ変数ノードからインデックスmをもつチェック・ノードへのメッセージを表し、H(m)はインデックスmをもつチェック・ノードに隣接するすべての変数ノードを表し、xが正であればsgn(x)=1、そうでなければsgn(x)=−1である、復号方法。
  16. 請求項5および15に記載の復号方法であって、前記分類はチェック・ノードに適用され、前記所定の距離は2に等しく、インデックスmをもつチェック・ノードの信頼性指標が次のように計算され:
    Figure 0005199255
    ここで、H(m)はインデックスmをもつチェック・ノードに隣接する変数ノードの集合を表し、H(n)はインデックスnをもつ変数ノードに隣接するチェック・ノードの集合を表し、Card(.)はある集合のカージナル数を表し、cm=+1であればc=0、cm=−1であればc=δmax+1であり、ここでδmaxは二分グラフ中のチェック・ノードの最大次数であり、cm=+1/cm=−1は、インデックスmをもつチェック・ノードについてパリティ・チェックがそれぞれ満たされている/満たされていないことを意味する、復号方法。
  17. コンピュータによって実行されたときに、請求項1ないし16のうちいずれか一項記載の復号方法のステップを実装するよう適応されたソフトウェア手段を有するコンピュータ・プログラム。
JP2009521250A 2006-07-27 2007-07-25 近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法 Expired - Fee Related JP5199255B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0653148A FR2904499B1 (fr) 2006-07-27 2006-07-27 Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage.
FR06/53148 2006-07-27
PCT/EP2007/057644 WO2008012318A1 (fr) 2006-07-27 2007-07-25 Procédé de décodage à passage de messages avec ordonnancement selon une fiabilité de voisinage.

Publications (2)

Publication Number Publication Date
JP2009545220A JP2009545220A (ja) 2009-12-17
JP5199255B2 true JP5199255B2 (ja) 2013-05-15

Family

ID=37989156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009521250A Expired - Fee Related JP5199255B2 (ja) 2006-07-27 2007-07-25 近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法

Country Status (10)

Country Link
US (1) US8245115B2 (ja)
EP (1) EP2047605B1 (ja)
JP (1) JP5199255B2 (ja)
KR (1) KR101431162B1 (ja)
CN (1) CN101496292B (ja)
AT (1) ATE454750T1 (ja)
DE (1) DE602007004224D1 (ja)
ES (1) ES2339295T3 (ja)
FR (1) FR2904499B1 (ja)
WO (1) WO2008012318A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219878B1 (en) 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8219873B1 (en) * 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
US8935601B1 (en) 2008-12-03 2015-01-13 Marvell International Ltd. Post-processing methodologies in decoding LDPC codes
US8918696B2 (en) 2010-04-09 2014-12-23 Sk Hynix Memory Solutions Inc. Implementation of LDPC selective decoding scheduling
US9055065B2 (en) * 2011-11-21 2015-06-09 Red Hat, lnc. Managing participant order in distributed transactions
US9203432B2 (en) * 2012-08-28 2015-12-01 Marvell World Trade Ltd. Symbol flipping decoders of non-binary low-density parity check (LDPC) codes
US9191256B2 (en) 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US20140019879A1 (en) * 2013-02-01 2014-01-16 Concurix Corporation Dynamic Visualization of Message Passing Computation
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130227529A1 (en) 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
FR3003711B1 (fr) 2013-03-21 2015-04-17 Commissariat Energie Atomique Systeme de communication cooperatif a strategie de retransmission de paquets adaptive
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
US10346292B2 (en) 2013-11-13 2019-07-09 Microsoft Technology Licensing, Llc Software component recommendation based on multiple trace runs
US9772927B2 (en) 2013-11-13 2017-09-26 Microsoft Technology Licensing, Llc User interface for selecting tracing origins for aggregating classes of trace data
US10075190B2 (en) * 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
KR102504550B1 (ko) * 2015-12-28 2023-02-28 삼성전자주식회사 저밀도 패리티 검사 코드를 지원하는 통신 시스템에서 신호를 수신하는 장치 및 방법
CN106936444B (zh) * 2015-12-29 2020-09-01 北京航空航天大学 一种集合译码方法和集合译码器
EP3242405B1 (en) * 2016-05-02 2024-02-21 Université de Bretagne Sud Non-binary check node processing with pre-sorted input
KR102626162B1 (ko) * 2016-06-14 2024-01-18 삼성전자주식회사 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
KR20180009558A (ko) 2016-07-19 2018-01-29 삼성전자주식회사 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
US10530392B2 (en) * 2017-07-31 2020-01-07 Codelucida, Inc. Vertical layered finite alphabet iterative decoding
FR3072851B1 (fr) * 2017-10-23 2019-11-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'allocation de ressources de transmission a apprentissage par renforcement
CN110569974B (zh) * 2018-06-06 2021-08-24 天津大学 可包含人造碱基的dna存储分层表示与交织编码方法
CN109586844B (zh) * 2018-10-30 2020-08-04 北京航空航天大学 一种基于集合的非均等保护译码方法及***

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450535A (en) * 1993-09-24 1995-09-12 At&T Corp. Graphs employing clusters
FR2753026B1 (fr) * 1996-08-28 1998-11-13 Pyndiah Ramesh Procede de transmission de bits d'information avec codage correcteur d'erreurs, codeur et decodeur pour la mise en oeuvre de ce procede
US7085969B2 (en) * 2001-08-27 2006-08-01 Industrial Technology Research Institute Encoding and decoding apparatus and method
US6704376B2 (en) * 2002-01-23 2004-03-09 Bae Systems Information And Electronic Systems Integration Inc. Power and confidence ordered low complexity soft turbomud with voting system
US7020829B2 (en) * 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
EP1414158A1 (en) * 2002-10-24 2004-04-28 STMicroelectronics N.V. Method of decoding an incident turbo-code encoded signal in a receiver, and corresponding receiver, in particular for mobile radio systems
US7484158B2 (en) * 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
US7174495B2 (en) * 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
JP2005210238A (ja) * 2004-01-21 2005-08-04 Nec Corp ターボ復号装置及びその方法並びにその動作プログラム
JP4296949B2 (ja) * 2004-02-03 2009-07-15 ソニー株式会社 復号装置及び方法、並びに情報処理装置及び方法
US7251769B2 (en) * 2004-03-17 2007-07-31 Lucent Technologies Inc. Methods and apparatus for communication using generalized low density parity check codes
JP3891186B2 (ja) * 2004-03-22 2007-03-14 住友電気工業株式会社 復号装置および前処理装置
JP3875693B2 (ja) * 2004-03-24 2007-01-31 株式会社東芝 Lpc符号を用いた符号化ビットのマッピング方法及び送信装置
KR100594818B1 (ko) * 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
JP4138700B2 (ja) * 2004-05-31 2008-08-27 株式会社東芝 復号装置および復号回路
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
US20060195765A1 (en) * 2005-02-28 2006-08-31 Texas Instruments Incorporated Accelerating convergence in an iterative decoder
JP4519694B2 (ja) * 2005-03-29 2010-08-04 財団法人北九州産業学術推進機構 Ldpc符号検出装置及びldpc符号検出方法
KR100943623B1 (ko) * 2005-09-30 2010-02-24 삼성전자주식회사 저밀도 패러티 검사 부호의 천공기법
CN101432970B (zh) * 2006-04-28 2012-11-14 英特尔公司 使用最小和原理的低密度奇偶校验码的多阈消息传递解码
KR100981501B1 (ko) * 2006-11-06 2010-09-10 연세대학교 산학협력단 통신 시스템에서 신호 송신 장치 및 방법

Also Published As

Publication number Publication date
FR2904499B1 (fr) 2009-01-09
JP2009545220A (ja) 2009-12-17
FR2904499A1 (fr) 2008-02-01
KR101431162B1 (ko) 2014-08-18
CN101496292B (zh) 2014-02-19
EP2047605B1 (fr) 2010-01-06
US20090313525A1 (en) 2009-12-17
EP2047605A1 (fr) 2009-04-15
ES2339295T3 (es) 2010-05-18
WO2008012318A1 (fr) 2008-01-31
KR20090048465A (ko) 2009-05-13
ATE454750T1 (de) 2010-01-15
US8245115B2 (en) 2012-08-14
CN101496292A (zh) 2009-07-29
DE602007004224D1 (de) 2010-02-25

Similar Documents

Publication Publication Date Title
JP5199255B2 (ja) 近傍信頼性に依存するスケジューリングを用いたメッセージ・パッシングによる復号方法
Sarkis et al. Fast list decoders for polar codes
Elkelesh et al. Belief propagation decoding of polar codes on permuted factor graphs
Angarita et al. Reduced-complexity min-sum algorithm for decoding LDPC codes with low error-floor
JP3807484B2 (ja) 確率依存グラフにおいて汎用の符号を復号化するための方法および装置
Trifonov et al. Generalized concatenated codes based on polar codes
JP4199279B2 (ja) 低密度パリティ検査コードの符号化方法
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
Sarkis et al. Increasing the speed of polar list decoders
CA2663235A1 (en) Stochastic decoding of ldpc codes
US8201049B2 (en) Low density parity check (LDPC) decoder
Aurora et al. Low-complexity software stack decoding of polar codes
US20080195898A1 (en) Message- passing and forced convergence decoding method
Levin et al. Lazy scheduling forLDPC decoding
Mitchell et al. Spatially coupled generalized LDPC codes: Asymptotic analysis and finite length scaling
JP2007512741A (ja) 信頼性のないメッセージの交換を取消す信念伝播復号化器
Hashemi et al. A tree search approach for maximum-likelihood decoding of Reed-Muller codes
Saeedi et al. Systematic design of low-density parity-check code ensembles for binary erasure channels
Sarkis et al. Reduced-latency stochastic decoding of LDPC codes over GF (q)
Sarkis et al. Unrolled polar decoders, part ii: Fast list decoders
Chang et al. Adaptive group shuffled decoding for LDPC codes
Ma et al. Statistical learning aided decoding of BMST tail-biting convolutional code
Yacoub List message passing decoding of non-binary low-density parity-check codes
Islam LDPC Codes Incorporating Source, Noise, and Channel Memory
Knudsen et al. Adaptive soft-decision iterative decoding using edge local complementation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121107

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees