JP4062435B2 - 誤り訂正符号復号装置 - Google Patents

誤り訂正符号復号装置 Download PDF

Info

Publication number
JP4062435B2
JP4062435B2 JP2002350846A JP2002350846A JP4062435B2 JP 4062435 B2 JP4062435 B2 JP 4062435B2 JP 2002350846 A JP2002350846 A JP 2002350846A JP 2002350846 A JP2002350846 A JP 2002350846A JP 4062435 B2 JP4062435 B2 JP 4062435B2
Authority
JP
Japan
Prior art keywords
decoding
message
node function
decoding method
error correction
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
JP2002350846A
Other languages
English (en)
Other versions
JP2004186940A (ja
Inventor
利彦 岡村
啓晃 穴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2002350846A priority Critical patent/JP4062435B2/ja
Priority to US10/721,099 priority patent/US7373581B2/en
Publication of JP2004186940A publication Critical patent/JP2004186940A/ja
Application granted granted Critical
Publication of JP4062435B2 publication Critical patent/JP4062435B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • 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/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • 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/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は誤り訂正符号化および復号処理に関し、特に低密度パリティ検査符号(Low-Density Parity-Check Code, 以下、LDPC符号と略す)に対する復号装置に関する。
【0002】
【従来の技術】
誤り訂正符号は符号化、復号という処理によってデータ伝送時に混入するノイズの影響を低減する技術である。符号化は送信するデータに冗長を付加する処理であり、符号化されたデータを符号語と呼ぶ。通信路に送出された符号語はノイズの影響を受けて受信時には符号語の一部のビットが反転するといったエラーが起こる。復号はこのエラーの影響を受けた受信語から冗長を利用してデータを復元する処理である。
【0003】
LDPC符号は1960年代に提案された誤り訂正符号であるが、ターボ符号との関連が指摘され、1990年代後半になって注目を集めるようになった(例えば、非特許文献1参照。)。
【0004】
【非特許文献1】
D.J.C.Macky and R.M.Neal, “Good error correcting codes based on very sparse matrices,” IEEE Transactions on Information Theory 45 pp.399-431, 1999
【0005】
誤り訂正符号は、一般に推定処理である復号処理が符号化処理に比べて複雑となる。特に、訂正能力の高い大きな符号長の符号で最尤復号、もしくはそれに近い復号性能を出す場合には非常に複雑度が高い処理が必要となる。
【0006】
LDPC符号は、非常に0の多いパリティ検査行列を持つ、ということで特徴付けられ、この性質から比較的効率の良い高性能復号法が存在している。この復号方法はメッセージ・パッシング復号方式(Message-Passing decoding, 以下、MP復号と略す)と呼ばれている。
【0007】
以下、LDPC符号のMP復号について説明を行う。尚、簡単のために符号はバイナリであり、変調方式はBPSKでエラーなしの場合は符号語のビット0に対しては+1、ビット1には−1という軟判定値が受信値となるとする。
【0008】
LDPC符号におけるMP復号は、パリティ検査行列に対応するタナーグラフと呼ばれる2分グラフを用いて説明される。図14にパリティ検査行列Hと対応するタナーグラフGの例を示す。
【0009】
タナーグラフGのノードは、変数ノードとチェックノードとの2種類に分類される。変数ノードは行列Hの列、つまり符号語ビットに対応する。チェックノードは行列Hの行に対応する。これに対して行列Hで1が立っている関係にあるノード間をエッジで結ぶことによって対応するグラフが構成され、このグラフを行列Hに対するタナーグラフと呼ぶ。
【0010】
LDPC符号の復号法はグラフのエッジに割り当てられた“メッセージ”と呼ばれる量をノードにおいて反復的に更新することで実行される。メッセージはチェックノードから変数ノードと、変数ノードからチェックノードとの2種類が存在し、それぞれノードで計算された符号語ビットの信頼度情報に相当する。
【0011】
変数ノード、チェックノードでのアルゴリズムについては幾つかの方法が知られている。
【0012】
最も復号特性が良い方法の一つとしてsum-productアルゴリズムがある。ここでは比較的複雑度の小さいmin-sumアルゴリズムとよばれる方法について説明する。
【0013】
ある変数ノードに対応する符号語ビットの受信値をr、この変数ノードへのチェックノードからのメッセージをc(1),(2), …, c(d_v)とおく(d_vはこの変数ノードから出ているエッジの個数)。この変数ノードはc(1)に対応するエッジの終点のチェックノードに対しては[式1]で表されるv(1)を送出する。
[式1] v(1) ← r + c(2) + … + c(d_v)
v(i) (i=2,…,d)についても同様にrとc(j)(j≠i)との和として算出する。
【0014】
一方、あるチェックノードへのメッセージをv(1),…,v(d_c) としたとき(d_cはこのチェックノードから出ているエッジの個数)、このチェックノードはv(1)に対応するエッジの終点の変数ノードに対して[式2]で表されるc(1)を送出する。
[式2] c(1) ← sgn(v(2),…,v(d_c))・min{|v(2)|,…,|v(d_c)|}
ここでsgn(v(2), …,v(d_c))はv(i)(i=2,…,d_c)の正負の符号(+1または-1)を乗じた値であり、|a|はaの絶対値、minは最小値を選択する関数である。
【0015】
c(i)(i=2,…,d)についても同様にv(j)(j≠i)を用いて算出する。
【0016】
LDPC符号ではノードあたりのエッジの個数が小さいため、[式1]、[式2]の処理の複雑度は小さくて済む。
【0017】
すべてのノードに対して一通り[式1]及び[式2]を実行する処理の単位を1 iteration処理と呼ぶことにする。MP復号はこの1 iteration処理を繰り返すことで遂行される。繰り返し回数は通常10から30回程度である。
【0018】
最終的な0,1の判定(硬判定)は各符号語ビットにおいて、[式3] の正負を判定することによって行われる。
[式3] r+c(1)+ … +c(d_v)
この硬判定結果がすべてのチェックノードを満たした時点でMP復号の反復処理は終了する。
【0019】
グラフG全体をそのまま装置化できれば高速化が期待できるが、LDPC符号は通常長い符号長(1000〜)で使用するため、これは困難となる。そこで、メッセージをメモリに格納し、回路を共有してグラフGのノードを部分的に並列に動作させて装置複雑度とスループットの調節を図ることになる。
【0020】
この方針に沿って、はじめに部分的に並列に動作する復号器を設計し、それに合致する符号を構成する符号化方式設計がある(例えば、非特許文献2)。
【0021】
【非特許文献2】
E.Bautillon, J.Castura, and F.R.Kschischang, “Decoder-First Code Design”, the 2ndInternational Symposium on Turbo Codes and Related Topics, pp.459-462, 2000
【0022】
図15は非特許文献2に開示された復号器の構成図である。
【0023】
図15の復号器について説明する。
【0024】
メモリ手段1501は受信値および[式2]のメッセージc(i)を保持し、図15の復号器ではこれを複数個持つ。
【0025】
アドレス発生手段1502は、メモリ手段1501にアクセスするアドレスを発生し、メモリ手段1501と1対1に対応している。
【0026】
変数ノード関数手段1503は、[式1]の処理を実行する回路であり、メモリ手段1501と1対1に対応している。
【0027】
チェックノード関数手段1504は、[式2]の処理を実行する回路である。入出力の個数はタナーグラフにおけるチェックノードのエッジの個数と一致している。
【0028】
シャッフルネットワーク手段1505は、変数ノード関数手段1503とチェックノード関数手段1504との接続を定める。
【0029】
この復号器では個々の変数ノード関数手段1503は、メモリ手段1501と1対1に対応しているため、メモリ手段1501へのアクセスの衝突なしに並列に動作させることが可能である。
【0030】
なおかつ、このとき個々のチェックノード関数への全入力が一斉に得られるようになっているため、チェックノード関数手段1505も並列に動作させることができる。
【0031】
このように図15の復号器を用いて効率よく部分的な並列処理を実現できる。
【0032】
【発明が解決しようとする課題】
しかしながら、図15の復号器はその構成が最適化されているわけではなく、より簡易な構成にできる可能性がある。このとき、符号性能の劣化がないようにしなければならない。
【0033】
また、非特許文献2ではアドレス発生手段やシャッフルネットワーク手段を具体的にどのように与えるのか述べられていない。
【0034】
さらに、図15の構成ではシャッフルネットワークがすべての変数ノード関数手段の出力を置換する形態となっているため、実装時のリソースの都合でさらに小さな部分で並列化を行うときには処理を制御するスケジュールが複雑になる恐れがあった。
【0035】
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的はLDPC符号の復号装置において従来装置と比べて簡易で、かつ柔軟度の高い並列復号器を提供することにある。
【0036】
【課題を解決するための手段】
本発明の目的を達成する第1の発明は、低密度パリティ検査符号のメッセージ・パッシング復号方式に基づく復号装置であって、
前記低密度パリティ検査符号のパリティ検査行列は、置換行列のクロネッカー積の構造を持つ成分から構成され、
受信値および前記復号方式の過程で発生するメッセージを格納する複数のメモリ手段と、
前記クロネッカー積の成分を構成する一方の置換行列に対応し、その置換行列の複数の置換に基づいて、前記メモリ手段のアドレスを発生する複数のアドレス発生手段と、
前記複数のアドレス発生手段の発生したアドレスに基づいて、前記複数のメモリ手段から受信値又はメッセージを読み出す、前記復号方式における複数の変数ノード関数手段と、
前記復号方式における複数のチェックノード関数手段と、
前記クロネッカー積の成分を構成する他方の置換行列に対応し、その置換行列の複数の置換に基づいて、前記変数ノード関数手段と前記チェックノード関数手段との接続を定める複数のシャッフルネットワーク手段とを有し、
復号過程において、前記アドレス発生手段における前記置換の変更と、前記シャッフルネットワーク手段における前記置換の変更とを同一周期で行うことを特徴とする。
【0037】
本発明の目的を達成する第2の発明は、上記第1の発明において、前記アドレス発生手段は1個で、すべての前記メモリ手段に対してアドレスを発生し、
前記シャッフルネットワーク手段は1個で、すべての前記変数ノード関数手段と接続されることを特徴とする。
【0038】
本発明の目的を達成する第3の発明は、上記第1又は第2の発明において、前記メモリ手段は前記メッセージとともにその和を格納することを特徴とする。
【0039】
本発明の目的を達成する第4の発明は、上記第1、第2又は第3の発明において、前記アドレス発生手段をカウンタで実現することを特徴とする。
【0040】
本発明の目的を達成する第5の発明は、上記第1、第2、第3又は第4の発明において、前記シャッフルネットワーク手段の置換をガロア体演算に基づき決定することを特徴とする。
【0041】
本発明の目的を達成する第6の発明は、上記第1、第2、第3、第4又は第5の発明において、前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段の出力であるメッセージを1より小さい係数を乗じて補正することを特徴とする。
【0042】
本発明の目的を達成する第7の発明は、上記第1、第2、第3、第4、第5又は第6の発明において、前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段は入力メッセージの絶対値の最小値とそのインデックス、および入力メッセージの2番目の最小値および入力メッセージの正負の情報を保持することを特徴とする。
【0043】
本発明の目的を達成する第8の発明は、上記第1、第2、第3、第4、第5、第6又は第7の発明において、前記アドレス発生手段のみを変更することで異なる符号の復号に対応することを特徴とする。
【0044】
本発明の目的を達成する第9の発明は、上記第1、第2、第3、第4、第5、第6、第7又は第8の発明において、前記アドレス発生手段および前記シャッフルネットワーク手段の一つに対応する前記変数ノード関数手段の組に対して、その出力において符号語ビットが非常に高い確率で0であるというメッセージを常に送信する機能を設けることで不均一低密度パリティ検査符号の復号を実現することを特徴とする。
【0045】
本発明の目的を達成する第10の発明は、低密度パリティ検査符号のメッセージ・パッシング復号方式に基づく復号を行わせるプログラムであって、
前記低密度パリティ検査符号のパリティ検査行列は、置換行列のクロネッカー積の構造を持つ成分から構成され、
前記プログラムはコンピュータを、
前記クロネッカー積の成分を構成する一方の置換行列に対応し、その置換行列の複数の置換に基づいて、受信値および前記復号方式の過程で発生するメッセージを格納する複数のメモリ手段のアドレスを発生する複数のアドレス発生手段と
前記複数のアドレス発生手段の発生したアドレスに基づいて、前記複数のメモリ手段から受信値又はメッセージを読み出す、前記復号方式における複数の変数ノード関数手段と、
前記復号方式における複数のチェックノード関数手段と、
前記クロネッカー積の成分を構成する他方の置換行列に対応し、その置換行列の複数の置換に基づいて、前記変数ノード関数手段と前記チェックノード関数手段との接続を定める複数のシャッフルネットワーク手段として機能させ、
復号過程において前記アドレス発生手段における前記置換の変更と前記シャッフルネットワーク手段における前記置換の変更とを同一周期で行わせることを特徴とする。
【0046】
本発明の目的を達成する第11の発明は、上記第10の発明において、前記メモリ手段に前記メッセージとともにその和が格納されていることを特徴とする。
【0047】
本発明の目的を達成する第12の発明は、上記第10又は第11の発明において、前記プログラムが、前記シャッフルネットワーク手段における置換をガロア体演算に基づき決定することを特徴とする。
【0048】
本発明の目的を達成する第13の発明は、上記第10、第11又は第12の発明において、前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段の出力であるメッセージを1より小さい係数を乗じて補正することを特徴とする。
【0049】
本発明の目的を達成する第14の発明は、上記第10、第11、第12又は第13の発明において、前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段は入力メッセージの絶対値の最小値とそのインデックス、および入力メッセージの2番目の最小値および入力メッセージの正負の情報を保持することを特徴とする。
【0050】
本発明の目的を達成する第15の発明は、上記第10、第11、第12、第13又は第14の発明において、前記アドレス発生手段の機能のみを変更することで異なる符号の復号に対応することを特徴とする。
【0051】
本発明の目的を達成する第16の発明は、上記第10、第11、第12、第13、第14又は第15の発明において、前記アドレス発生手段および前記シャッフルネットワーク手段の一つに対応する前記変数ノード関数手段の組に対して、その出力において符号語ビットが非常に高い確率で0であるというメッセージを常に送信する機能を設けることで不均一低密度パリティ検査符号の復号を実現することを特徴とする。
【0052】
本発明の目的を達成する第17の発明は、低密度パリティ検査符号のメッセージ・パッシング復号方式に基づく復号方法であって、
前記低密度パリティ検査符号のパリティ検査行列は置換行列のクロネッカー積の構造を持つ成分から構成され、
前記クロネッカー積の成分を構成する一方の置換行列に対応し、その置換行列の複数の置換に基づいて、受信値および復号方式の過程で発生するメッセージが格納されたメモリのから受信値およびメッセージを読み出すアドレスを発生するステップと、
前記クロネッカー積の成分を構成するもう一方の置換行列に対応し、前記アドレス発生の置換の変更と同一周期で変更される前記置換行列の置換に基づいて、前記復号方式における複数の変数ノード関数と前記復号方式における複数のチェックノード関数とを結びつけるステップと
を有することを特徴とする。
【0053】
本発明の目的を達成する第18の発明は、上記第17の発明において、前記メモリには、メッセージとともにその和が格納されていることを特徴とする。
【0054】
本発明の目的を達成する第19の発明は、上記第17又は第18の発明において、変数ノード関数とチェックノード関数とを結びつけは、ガロア体演算に基づき決定することを特徴とする。
【0055】
本発明の目的を達成する第20の発明は、上記第17、第18又は第19の発明において、前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数の出力であるメッセージを1より小さい係数を乗じて補正することを特徴とする。
【0056】
本発明の目的を達成する第21の発明は、上記第17、第18、第19又は第20の発明において、前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数は入力メッセージの絶対値の最小値とそのインデックス、および入力メッセージの2番目の最小値および入力メッセージの正負の情報を保持することを特徴とする。
【0057】
本発明の目的を達成する第22の発明は、上記第17、第18、第19、第20又は第21の発明において、メモリのアドレスの発生を変更することにより、異なる符号の復号に対応することを特徴とする。
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0058】
図1を参照すると、本発明は受信値およびMP復号で必要なメッセージを格納するメモリ手段101と、メモリ手段101にアクセスするアドレスを発生するアドレス発生手段102と、MP復号における変数ノードの処理を行う変数ノード関数手段103と、MP復号におけるチェックノードの処理を行うチェックノード関数手段104と、変数ノード手段103とチェックノード手段104とを接続するシャッフルネットワーク手段105とを含む。
【0059】
これらの構成要素の概略を図1に基づいて述べる。以下、K及びDは復号器によって決定される整数で、kは1からK、 dは1からDまでの任意の整数をとるものとする。
【0060】
メモリ手段101は、符号語ビットの組に対応するM(1,1)からM(K,D)までのDK個のメモリから成るメモリ群で、変数ノードに対応する受信値および変数ノードへの入力となるメッセージを格納する。エッジの本数が大きく、メッセージの量が大きい場合はM(k,d)も複数のメモリを用いて実現する場合もある。
【0061】
アドレス発生手段102は、AG(1)からAG(K)までのK個の回路から成る。
【0062】
AG(k)は同一値域を持つ複数の置換に基づきアドレスを発生し、M(k,1)からM(k,D)までのD個のメモリに対してアドレスを発生する。各AG(k)は複数の置換を周期的に使用する。尚、AG(k)はリアルタイムでアドレスを生成する回路として実現する場合もあるし、メモリ(ROM)を利用して実現する場合もある。
【0063】
変数ノード関数手段103はMP復号における変数ノード処理を実行するVN(1,1)からVN(K,D)までのDK個の回路から成る。各VN(k,d)はメモリ手段102のM(k,d)から受信値、メッセージを読み込み、チェックノード関数手段の入力となる一つの出力を生成する。また、VN(k,d)はメモリ手段M(k,d)への書き込みを制御する機能も持つ。この機能は別途手段を用意して対処することも可能である。
【0064】
チェックノード関数手段104は、MP復号におけるチェックノード処理を実行するCN(1)からCN(D)までのD個の回路から成る。複数の変数ノード生成手段103で生成されたメッセージを読み込み、それぞれの変数ノードの入力となるメッセージを生成する。生成されたメッセージはメモリ手段101に格納される。
【0065】
シャッフルネットワーク手段105は、変数ノード関数手段103とチェックノード関数手段104とを連結するSN(1)からSN(K)までのK個の回路から成る。SN(k)はVN(k,1)からVN(k,D)とCN(1)からCN(D)のそれぞれ1つの入出力インターフェースが1対1に対応するように接続する。各SN(k)は集合{1,2,…,D}上の複数の置換を用いて実現される。
【0066】
次に、図2、3、4、5を参照して本実施の形態の全体の動作について詳細に説明する。
【0067】
図2は本発明の復号装置の動作の概略を示したフローチャートである。
【0068】
まず、受信値を用いてメモリ手段101を初期化する(ステップ201)。
【0069】
次に、アドレス発生手段102、シャッフルネットワーク手段105の設定を行う(ステップ202)。
【0070】
続いて、設定されたアドレス発生手段102、シャッフルネットワーク手段105の下でメモリ手段101、変数ノード関数手段103およびチェックノード関数手段104を動作させてメッセージ更新処理を行う(ステップ203)。
【0071】
次にMP復号における1 iteration処理が終了したかどうかを判断する(図2のステップ204)。
【0072】
終了していない場合には、ステップ202に戻りアドレス発生手段102、シャッフルネットワーク手段105を次の設定としてメッセージ更新処理を行う。
【0073】
ステップ204で1 iteration処理が終了している場合には、復号処理を終了するかどうか判断する(図2のステップ205)。この終了判定は硬判定結果がパリティ検査行列のすべてのチェックを満たすかどうかで判断する。硬判定結果はメモリ手段101に格納する方法も、別のメモリ手段を用意して格納する方法も考えられる。
【0074】
ステップ205で終了と判定された場合には、復号結果を出力して復号処理を終了する(図2のステップ206)。終了と判定されなかった場合には、ステップ201に戻り、アドレス発生手段102、シャッフルネットワーク手段105を1 iteration処理の開始時の設定として復号処理を継続する。
【0075】
図3、4はステップ202から205の処理の流れを詳しく示した図である。
【0076】
図3は本発明の復号装置で適用されるLDPC符号のパリティ検査行列の構成を示している。
【0077】
パリティ検査行列301は置換行列R(j,k)をJ×K個並べるパリティ検査符号の構成を示している。パリティ検査行列のブロックR(j,k)の構造式302はR(j, k)が更に二つの置換行列Q(j, k)とP(j, k)のクロネッカー積で表されていることを示している。R(j,k)はQ(j,k)の要素が1の場合にはP(j,k), 0の場合にはP(j,k)と同じ大きさの零行列で置き換えることで定義される行列である。
【0078】
図1のDはP(j, k)の大きさに対応している。Q(j,k) が大きさEのとき、
R(j,k)はDEの大きさの置換行列となる。
【0079】
図4は図3のパリティ検査行列に対して、アドレス発生手段102およびシャッフルネットワーク手段105の個数Kが図3の検査行列の列ブロックの個数と一致している場合のステップ202から205までの処理フローについて、特にステップ202について詳述した流れ図である。
【0080】
まず、パリティ検査行列の行ブロックのインデックスjを初期値(j=1)に設定する(ステップ401)。
【0081】
次に、アドレス発生手段102であるAG(1)からAG(K)をQ(j,1)からQ(j,K)に、シャッフルネットワーク手段105であるSN(1)からSN(K)をP(j,1)からP(j,K)に設定する(ステップ402)。
【0082】
メッセージ更新処理のステップ403は後で詳述する。
【0083】
次に、jを1インクリメントしてj=J+1となったら1 iteration処理終了と判定する(ステップ404、405)。
【0084】
1 iteration処理が終了していないときにはステップ402に戻る。そうでないときにはステップ205と同一に終了判定をする(ステップ406)。
【0085】
終了と判定されなかったときにはステップ401に戻り新たなiteration処理を開始する。
【0086】
図5は図4のステップ403のメッセージ更新処理を説明する図である。以下、kは1からKまでのすべての整数をとり、dは1からDまでのすべての整数をとるとする。
【0087】
置換行列Q(j,k)の大きさをEとして、Q(j,k)[e]でQ(j,k)のe行目で1が立っている位置を表すとする。まずQ(j,k)の行のインデックスeを初期設定(e=1)する(ステップ501)。
【0088】
次に、アドレス発生手段102のAG(k)ではQ(j,k)[e]を発生する(ステップ502)。
【0089】
続いて、変数ノード関数手段103のVN(k,d)はメモリ手段M(k,d)からQ(j,k)[e]に基づいて決定されるアドレスの受信値、メッセージを読み込み、チェックノード関数手段105へのメッセージを生成する。また、直前のステップでチェックノード関数手段で生成されたメッセージを用いてM(k,d)における直前のステップで指定されたアドレスの内容を更新する(ステップ503)。
【0090】
次にVN(k,1)からVN(k, D)で生成されたメッセージをシャッフルネットワーク手段SN(k)を介してチェックノード関数手段105へ送出する(ステップ504)。
【0091】
SN(k)は、置換行列P(j,k)で決定される順序で変数ノード関数手段とチェックノード関数手段とを連結している。
【0092】
次に、チェックノード関数手段ではメッセージを生成する(ステップ505)。ここでCN(d)は各エッジに対してメッセージを生成する。
【0093】
CN(d)で生成されたメッセージは、SN(k)に基づき変数ノード関数手段へ返される(ステップ506)。
【0094】
次に、eを1インクリメントしてe=E+1となったらAG(k)がQ(j,k)に、SN(k)がP(j,k)に基づく処理は終了であると判定する(ステップ507、508)。
【0095】
そうでないときにはステップ502に戻り処理を継続する。ステップ501から507までの処理はパイプライン化して行うことが可能である。
【0096】
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
【0097】
本発明における大きな特徴の一つはシャッフルネットワーク手段105がSN(1)からSN(K)までの複数の局所的なシャッフルネットワークで構成されている点である。
【0098】
なお、かつアドレス発生手段102もシャッフルネットワーク手段105と同一の単位でメモリ手段へのアドレスを発生しているために、この構成単位に基づいた任意の並列度で実装することが可能となる。つまり図3のパリティ検査行列における列ブロックの個数に依らずに図1においてKの大きさを適切に設定して、並列度と装置複雑度を調節した実装を行うことが可能となる。
【0099】
本発明における第2の発明の実施の形態は図1で特にK=1の場合を示しており、図6を参照するとメモリ手段601( M(1),…,M(D))と、アドレス発生手段602(AG)と、変数ノード関数手段603(VN(1),…,VN(D))と、シャッフルネットワーク手段604(SN)と、チェックノード関数手段605(CN(1),…,CN(d))で構成される。アドレス発生手段602は1個の回路で共有し、図1の102と比較してより多くのアドレスパタンを生成できるようにする必要がある。同様にシャッフルネットワーク手段604は1個の回路からなり、図1の104と比較してより多くの置換を表すことが可能であるようにする必要がある。チェックノード関数手段205は図1の105と比較して一度の入力数が小さくなるためにより簡単な構成とすることも可能である。
【0100】
図7は図3のパリティ検査行列を持つLDPC符号に対して図6の復号器を適用したときの処理の詳細な流れ図である(図5、図6との対比)。図7でjは図3のパリティ検査行列の行方向のブロックのインデックス、kは列方向のブロックのインデックスを表す。
【0101】
また、eは図3のQ(j,k) (大きさE)の行のインデックスを表す。まずjを初期設定(j=1)する(ステップ701)。次にeを初期設定(e=1)する(ステップ702)。
【0102】
次に、kを初期設定(k=1)する(ステップ703)。設定されたj,kに基づいてアドレス生成手段602であるAG, シャッフルネットワーク手段604であるSNをそれぞれQ(j,k), P(j,k)に設定する(ステップ704)。
【0103】
次にAGでM(1),…,M(D)のアドレスQ(j,k)[e]を発生する(ステップ705)。
【0104】
次に、変数ノード関数手段603のVN(d)において読み込んだ情報に基づいてメッセージを生成するとともに、以前にチェックノード関数手段605で生成されたメッセージを用いてM(d)の内容を更新する(ステップ706)。
【0105】
次に、ステップ706で生成されたメッセージを、SNを通してチェックノード関数手段605へ送出する(ステップ707)。
【0106】
次に、チェックノード関数手段605のCN(d)においてメッセージ更新処理を行う(ステップ708)。ここで図5のステップ505と異なり、CN(d)では全入力が揃っていないため、各ステップではメッセージ生成の途中の段階までを行っておくことになる。次にSNを通じて、CN(d)で以前に生成されたメッセージの中で生成されたものを変数ノード関数手段に送出する(ステップ709)。これがステップ706のM(d)更新のためのメッセージとなる。
【0107】
次に、列方向のインデックスを更新して、列方向の処理が終了しているかどうかを判定する(ステップ710,711)。
【0108】
終了している場合にはCN(d)においてメッセージを生成する(ステップ712)。
【0109】
次に、Q(j,k)のインデックスを更新して、Q(j,k)の次の列についてメッセージ更新を行うかどうかを判定する(ステップ713,714)。
【0110】
図7のステップ715、716、717は図4の404、405、406と同一である。
【0111】
【実施例】
次に、具体的な実施例を用いて本実施の形態の動作を説明する。
【0112】
復号の前に符号化の方法であるが、これは図8に示すように、情報Uに対してパリティ検査行列に乗じて0になるように冗長Pを付加する処理を符号器801で行う。
【0113】
このときに使用する行列は復号器で使用するHそのものではなく、符号化が容易になるように列を入れ替えた行列H’が用いられることがある。
【0114】
この場合には復号器の順序になるようにインターリーブ803を介して送信する。
【0115】
次に図3のパリティ検査行列の具体例を図9に示す。図9はJ=2, K=3の場合で、パリティ検査行列構成要素901はQ(j,k)の例を示している(大きさE=2)。
【0116】
901において例えばQ(2,1)は左下の2×2の部分行列、Q(1,3)は右上の2×2の部分行列に対応する。パリティ検査行列構成要素902のP(j,k)の例についても同様である(大きさD=3)。パリティ検査行列903は901のQ(j,k)と902のP(j,k)のクロネッカー積で表される置換を部分行列とするパリティ検査行列である。
【0117】
以下、図9のパリティ検査行列に基づいて図1の復号器の実施例を述べる。
【0118】
図10(a)はメモリ手段101の構成例を示しており、M(k,d)の各エントリが何番目の符号語ビットのデータを保持しているかを示している。例えばM(1,1)は第1、4番目の符号語ビット、M(2,1)第7,10番目の符号語ビットに対応するデータを保持していることを示している。一般にM(k,d)はDおきのE個の符号語ビットに対応するデータを保持している。図10(b)はM(k,d)の一つのエントリの構造を示している。
【0119】
図9のパリティ検査行列のグラフでは変数ノードのエッジの個数は2のため、2個のメッセージc(1),c(2)と受信値から構成されている。
【0120】
以下、図5、6の処理の流れを図9のパリティ検査行列の場合について述べる。
【0121】
最初にステップ401でj=1に設定され、AG(1), AG(2),AG(3),SN(1),SN(2),SN(3)は、それぞれQ(1,1),Q(1,2),Q(1,3),P(1,1),P(1,2),P(1,3)に基づいて設定される。
【0122】
次にステップ501でe=1に設定され、AG(1), AG(2), AG(3)でアドレスが発生される。
【0123】
図9の901のQ(j,k)は2種類の置換から構成されており、(j,k)=(1,1),(1,3),(2,2)については式[式4] というアドレスを発生する。
[式4] Q(j,k)[1] = 1, Q(j,k)[2] = 2
また、(j,k)=(1,2),(2,1),(2,3)については、式[式5] というアドレスを発生する。
[式5] Q(j,k)[1] = 2, Q(j,k)[2] = 1
よってj=1,e=1でAG(1),AG(2),AG(3)で発生されるアドレスは[式4]、[式5]からそれぞれ1, 2, 1である。このアドレスに対する符号語ビットのインデックスは図10から順に1,2,3,10,11,12,13,14,15となる。当然であるが、図9の903の行列で最初の3行で要素が1である列番号に対応していることに注意する。
【0124】
第m番目の符号語ビットに対応する図11のメッセージ、受信値をc(m,1),c(m,2),r(m)で表すとする。このときVN(k,d)で[式1]に基づいて生成されるメッセージv(k,d)は次のようになる。
[式6]
VN(1,1): v(1,1) ← r(1) + c(1,2)
VN(1,2): v(1,2) ← r(2) + c(2,2)
VN(1,3): v(1,3) ← r(3) + c(3,2)
VN(2,1): v(2,1) ← r(10) + c(10,2)
VN(2,2): v(2,2) ← r(11) + c(11,2)
VN(2,3): v(2,3) ← r(12) + c(12,2)
VN(3,1): v(3,1) ← r(13) + c(13,2)
VN(3,2): v(3,2) ← r(14) + c(14,2)
VN(3,3): v(3,3) ← r(15) + c(15,2)
シャッフルネットワーク手段SN(1), SN(2), SN(3)は、902のP(1,1),P(1,2),P(1,3)の置換行列に基づくため、チェックノード関数手段CN(1),CN(2),CN(3)への入力は次のようになる。
CN(1): v(1,3), v(2,1), v(3,2)
CN(2): v(1,2), v(2,2), v(3,3)
CN(3): v(1,1), v(2,3), v(3,1)
CN(1), CN(2), CN(3)では[式2]に基づいてメッセージが生成される。
【0125】
ここで生成されるメッセージは[式6]から次のものである。
[式7]
CN(1): c(3,1), c(10,1), c(14,1)
CN(2): c(2,1), c(11,1), c(15,1)
CN(3): c(1,1), c(12,1), c(13,1)
ここで生成されたメッセージはSN(1), SN(2), SN(3)を介して送出され、M(k,d)を更新する。
【0126】
次のステップであるj=1, e=2ではステップ508の分岐からAG(k),SN(k)は、そのままで、M(k,d)でのアドレスがQ(j,k)[2]に対応する符号語ビットに関してのメッセージの処理を実行する。このとき、[式6]、[式7]は以下のようになる。
【0127】
VN(1,1): v(1,1) ← r(1) + c(4,2)
VN(1,2): v(1,2) ← r(2) + c(5,2)
VN(1,3): v(1,3) ← r(3) + c(6,2)
VN(2,1): v(2,1) ← r(10) + c(7,2)
VN(2,2): v(2,2) ← r(11) + c(8,2)
VN(2,3): v(2,3) ← r(12) + c(9,2)
VN(3,1): v(3,1) ← r(13) + c(16,2)
VN(3,2): v(3,2) ← r(14) + c(17,2)
VN(3,3): v(3,3) ← r(15) + c(18,2)
CN(1): c(6,1), c(7,1), c(17,1)
CN(2): c(5,1), c(8,1), c(18,1)
CN(3): c(4,1), c(9,1), c(16,1)
次のステップであるj=2,e=1の場合はステップ405の分岐からステップ402に戻り、AG(1),AG(2),AG(3),SN(1),SN(2),SN(3)はそれぞれQ(2,1),Q(2,2),Q(2,3),P(2,1),P(2,2),P(2,3)に設定される。このとき[式6]、[式7]は以下のようになる。
【0128】
VN(1,1): v(1,1) ← r(4) + c(4,1)
VN(1,2): v(1,2) ← r(5) + c(5,1)
VN(1,3): v(1,3) ← r(6) + c(6,1)
VN(2,1): v(2,1) ← r(7) + c(7,1)
VN(2,2): v(2,2) ← r(8) + c(8,1)
VN(2,3): v(2,3) ← r(9) + c(9,1)
VN(3,1): v(3,1) ← r(16) + c(16,1)
VN(3,2): v(3,2) ← r(17) + c(17,1)
VN(3,3): v(3,3) ← r(18) + c(18,1)
CN(1): c(6,2), c(8,2), c(16,2)
CN(2): c(4,2), c(9,2), c(18,2)
CN(3): c(5,2), c(7,2), c(17,2)
同様にj=2,e=2の処理を実行して1 iteration処理が終了する。
【0129】
以下、図1の構成要素のヴァリエーションについて述べる。
変数ノードの次数が高いときには図11に示すように、メモリ手段の各エントリにおいてrの代わりにrとメッセージの和を保持しておく方法も考えられる。図11では[式1]の処理が一度の減算で済むため、変数ノードの次数が高い場合には計算量の削減を図ることができる。
【0130】
次に、アドレス発生手段102については簡単な回路によってアドレスを発生することで装置複雑度を低減することができる。最も簡単な置換は巡回置換であり、これはカウンタを巡回的に用いて実現できる。カウンタの初期値を変更することで異なる置換を表すことができ、カウンタの周期を変えることで異なる符号長の符号の復号も実行可能となる。
【0131】
アドレス発生手段を巡回置換で構成した場合にはシャッフルネットワーク手段105はそれよりは複雑な置換とすることで符号性能を向上させることができる。この中でも回路としての実装が容易なものとして、ガロア体の乗除算や指数・対数演算を用いる方法が挙げられる。
【0132】
チェックノード関数手段105はMP復号をmin-sumアルゴリズムとすることで比較的実装が容易となるが、このとき復号性能が最良の場合であるsum-productアルゴリズムに比べて劣化する。この問題に対してチェックノードで生成されるメッセージに対しては1より小さい正数を乗ずることで特性を改善することができる。
【0133】
図6の第2の実施の形態において、チェックノード関数手段605は各ステップで1入力ずつ得ることになる。[式2]のmin-sumアルゴリズムを用いている場合には図12に示すようにチェックノード関数手段を簡易に実現することが可能となる。変数ノード関数手段からのメッセージは分離手段1200で絶対値部分と正負の符号部分に分離される。絶対値部分は二つの比較器1201、1204を用いて最小のもの二つを求める。レジスタ1202は最小の絶対値を、レジスタ1205は2番目に小さい絶対値を保持する。レジスタ1203は最小の絶対値となるインデックスを保持する。一方、正負の符号部分はレジスタ1206に保持するとともに全体の排他的論理和もレジスタ1207に保持しておく。これだけの情報を保持すれば[式2]の出力を各エッジに対して生成することは容易に行うことができる。
【0134】
以上、図3のパリティ検査行列ように行、列の1の個数が一定の正則なLDPC符号について実施例を示してきたが、本発明は非正則なLDPC符号の復号にも適用可能である。図4の(P(j,k)), (Q(j,k))においていくつかのブロックを零行列に置き換えることによって非正則なLDPC符号を構成することができる。
【0135】
このとき図1、6に示した復号器を適用することができる。図1の復号器の場合、零行列に当たる部分に対しては0である確率が非常に高いと常に設定することで対処することができる。また、図6の復号器では零行列にあたる部分は単にスキップすればよい。
【0136】
図13は優れた符号特性が得られる非正則なパリティ検査行列の例で、J=5,K=10の図4の行列において置換行列をいくつか零行列に置き換えたものである(Pは置換行列、0は零行列)。本発明ではこのように置換行列を並べたパリティ検査行列を持つ符号の復号器として動作するため、与えられたJ,Kの下で最適な非正則なパリティ検査行列の構成を求めることが容易となる。
【0137】
尚、上述の第1の実施の形態及び第2の実施の形態における、アドレス発生手段102と、変数ノード関数手段103と、チェックノード関数手段104と、シャッフルネットワーク手段105との全部又は一部をプログラムで動作するCPUやMPUによって置き換えても良い。
【0138】
【発明の効果】
第1の効果は、アドレス発生手段102およびシャッフルネットワーク手段を複数の置換として実現し、かつアドレス発生手段を複数のメモリ手段に対応させることで符号性能を保ったまま装置規模削減を図ることができることである。
【0139】
符号性能を保つことができる理由は、アドレス発生手段102とシャッフルネットワーク手段105における置換を同一周期で変更するために図3に示すパリティ検査行列を持つLDPC符号の復号に対応でき、このパリティ検査行列の中では性能の良い符号が構成できるためである。
【0140】
第2の効果は、並列度と装置規模のトレードオフの調節が可能な柔軟な装置構成を与えることができることにある。その理由は、シャッフルネットワーク手段105の各シャッフルネットワークが変数ノード関数手段103の一部のものと局所的に連結されているために、この単位の倍数で任意の並列度で実装しても回路を実行するスケジュールが容易に組めることにある。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の構成を示すブロック図である。
【図2】第1の実施の形態の動作の流れ図である。
【図3】第1の実施の形態に適用されるLDPC符号のパリティ検査行列の構成である。
【図4】第1の実施の形態の図3のパリティ検査行列に対する動作を示す流れ図である。
【図5】第1の実施の形態の図3のパリティ検査行列に対する動作を示す流れ図である。
【図6】本発明の第2の実施の形態の構成を示すブロック図である。
【図7】第2の実施の形態の動作の流れ図である。
【図8】本発明の復号装置に対する符号化装置のブロック図である。
【図9】第1の実施の形態に適用されるLDPC符号のパリティ検査行列の例を示す図である。
【図10】第1の実施の形態におけるメモリ手段の構成例を示す図である。
【図11】第1の実施の形態におけるメモリ手段の構成例を示す図である。
【図12】第2の実施の形態におけるチェックノード関数手段の構成例を示す図である。
【図13】本発明が適用される非正則なLDPC符号のパリティ検査行列の例を示す図である。
【図14】 LDPC符号のパリティ検査行列とそのタナーグラフの例を示す図である。
【図15】復号装置の従来例を示す図である。
【符号の説明】
101、601、1501 メモリ手段
102、602、1502 アドレス発生手段
103、603、1503 変数ノード関数手段
104、605、1504 チェックノード関数手段
105、604、1505 シャッフルネットワーク手段

Claims (22)

  1. 低密度パリティ検査符号のメッセージ・パッシング復号方式に基づく復号装置であって、
    前記低密度パリティ検査符号のパリティ検査行列は、置換行列のクロネッカー積の構造を持つ成分から構成され、
    受信値および前記復号方式の過程で発生するメッセージを格納する複数のメモリ手段と、
    前記クロネッカー積の成分を構成する一方の置換行列に対応し、その置換行列の複数の置換に基づいて、前記メモリ手段のアドレスを発生する複数のアドレス発生手段と、
    前記複数のアドレス発生手段の発生したアドレスに基づいて、前記複数のメモリ手段から受信値又はメッセージを読み出す、前記復号方式における複数の変数ノード関数手段と、
    前記復号方式における複数のチェックノード関数手段と、
    前記クロネッカー積の成分を構成する他方の置換行列に対応し、その置換行列の複数の置換に基づいて、前記変数ノード関数手段と前記チェックノード関数手段との接続を定める複数のシャッフルネットワーク手段とを有し、
    復号過程において、前記アドレス発生手段における前記置換の変更と、前記シャッフルネットワーク手段における前記置換の変更とを同一周期で行うことを特徴とする誤り訂正符号復号装置。
  2. 前記アドレス発生手段は1個で、すべての前記メモリ手段に対してアドレスを発生し、
    前記シャッフルネットワーク手段は1個で、すべての前記変数ノード関数手段と接続されることを特徴とする請求項1に記載の誤り訂正符号復号装置。
  3. 前記メモリ手段は前記メッセージとともにその和を格納することを特徴とする請求項1又は請求項2に記載の誤り訂正符号復号装置。
  4. 前記アドレス発生手段をカウンタで実現することを特徴とする請求項1から請求項3のいずれかに記載の誤り訂正符号復号装置。
  5. 前記シャッフルネットワーク手段の置換をガロア体演算に基づき決定することを特徴とする請求項1から請求項4のいずれかに記載の誤り訂正符号復号装置。
  6. 前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段の出力であるメッセージを1より小さい係数を乗じて補正することを特徴とする請求項1から請求項5のいずれかに記載の誤り訂正符号復号装置。
  7. 前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段は入力メッセージの絶対値の最小値とそのインデックス、および入力メッセージの2番目の最小値および入力メッセージの正負の情報を保持することを特徴とする請求項1から請求項6のいずれかに記載の誤り訂正符号復号装置。
  8. 前記アドレス発生手段のみを変更することで異なる符号の復号に対応することを特徴とする請求項1から請求項7のいずれかに記載の誤り訂正符号復号装置。
  9. 前記アドレス発生手段および前記シャッフルネットワーク手段の一つに対応する前記変数ノード関数手段の組に対して、その出力において符号語ビットが非常に高い確率で0であるというメッセージを常に送信する機能を設けることで不均一低密度パリティ検査符号の復号を実現することを特徴とする請求項1から請求項8のいずれかに記載の誤り訂正符号復号装置。
  10. 低密度パリティ検査符号のメッセージ・パッシング復号方式に基づく復号を行わせるプログラムであって、
    前記低密度パリティ検査符号のパリティ検査行列は、置換行列のクロネッカー積の構造を持つ成分から構成され、
    前記プログラムはコンピュータを、
    前記クロネッカー積の成分を構成する一方の置換行列に対応し、その置換行列の複数の置換に基づいて、受信値および前記復号方式の過程で発生するメッセージを格納する複数 のメモリ手段のアドレスを発生する複数のアドレス発生手段と
    前記複数のアドレス発生手段の発生したアドレスに基づいて、前記複数のメモリ手段から受信値又はメッセージを読み出す、前記復号方式における複数の変数ノード関数手段と、
    前記復号方式における複数のチェックノード関数手段と、
    前記クロネッカー積の成分を構成する他方の置換行列に対応し、その置換行列の複数の置換に基づいて、前記変数ノード関数手段と前記チェックノード関数手段との接続を定める複数のシャッフルネットワーク手段として機能させ、
    復号過程において前記アドレス発生手段における前記置換の変更と前記シャッフルネットワーク手段における前記置換の変更とを同一周期で行わせる
    ことを特徴とするプログラム。
  11. 前記メモリ手段に前記メッセージとともにその和が格納されていることを特徴とする請求項10に記載のプログラム。
  12. 前記プログラムは、前記シャッフルネットワーク手段における置換をガロア体演算に基づき決定することを特徴とする請求項10又は請求項11に記載のプログラム。
  13. 前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段の出力であるメッセージを1より小さい係数を乗じて補正することを特徴とする請求項10から請求項12のいずれかに記載のプログラム。
  14. 前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数手段は入力メッセージの絶対値の最小値とそのインデックス、および入力メッセージの2番目の最小値および入力メッセージの正負の情報を保持することを特徴とする請求項10から請求項13のいずれかに記載のプログラム。
  15. 前記アドレス発生手段の機能のみを変更することで異なる符号の復号に対応することを特徴とする請求項10から請求項14のいずれかに記載のプログラム。
  16. 前記アドレス発生手段および前記シャッフルネットワーク手段の一つに対応する前記変数ノード関数手段の組に対して、その出力において符号語ビットが非常に高い確率で0であるというメッセージを常に送信する機能を設けることで不均一低密度パリティ検査符号の復号を実現することを特徴とする請求項10から請求項15のいずれかに記載のプログラム。
  17. 低密度パリティ検査符号のメッセージ・パッシング復号方式に基づく復号方法であって、
    前記低密度パリティ検査符号のパリティ検査行列は置換行列のクロネッカー積の構造を持つ成分から構成され、
    前記クロネッカー積の成分を構成する一方の置換行列に対応し、その置換行列の複数の置換に基づいて、受信値および復号方式の過程で発生するメッセージが格納されたメモリのから受信値およびメッセージを読み出すアドレスを発生するステップと、
    前記クロネッカー積の成分を構成するもう一方の置換行列に対応し、前記アドレス発生の置換の変更と同一周期で変更される前記置換行列の置換に基づいて、前記復号方式における複数の変数ノード関数と前記復号方式における複数のチェックノード関数とを結びつけるステップと
    を有することを特徴とする誤り訂正符号復号方法。
  18. 前記メモリには、メッセージとともにその和が格納されていることを特徴とする請求項17に記載の訂正符号復号方法。
  19. 変数ノード関数とチェックノード関数とを結びつけは、ガロア体演算に基づき決定することを特徴とする請求項17又は請求項18に記載の誤り訂正符号復号方法。
  20. 前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数の出力であるメッセージを1より小さい係数を乗じて補正することを特徴とする請求項17から請求項19のいずれかに記載の誤り訂正符号復号方法。
  21. 前記復号方式はmin-sumアルゴリズムに基づき、前記チェックノード関数は入力メッセージの絶対値の最小値とそのインデックス、および入力メッセージの2番目の最小値および入力メッセージの正負の情報を保持することを特徴とする請求項17から請求項20のいずれかに記載の誤り訂正符号復号方法。
  22. メモリのアドレスの発生を変更することにより、異なる符号の復号に対応することを特徴とする請求項17から請求項21のいずれかに記載の誤り訂正符号復号方法。
JP2002350846A 2002-12-03 2002-12-03 誤り訂正符号復号装置 Expired - Fee Related JP4062435B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002350846A JP4062435B2 (ja) 2002-12-03 2002-12-03 誤り訂正符号復号装置
US10/721,099 US7373581B2 (en) 2002-12-03 2003-11-26 Device, program, and method for decoding LDPC codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002350846A JP4062435B2 (ja) 2002-12-03 2002-12-03 誤り訂正符号復号装置

Publications (2)

Publication Number Publication Date
JP2004186940A JP2004186940A (ja) 2004-07-02
JP4062435B2 true JP4062435B2 (ja) 2008-03-19

Family

ID=32752921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002350846A Expired - Fee Related JP4062435B2 (ja) 2002-12-03 2002-12-03 誤り訂正符号復号装置

Country Status (2)

Country Link
US (1) US7373581B2 (ja)
JP (1) JP4062435B2 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7673223B2 (en) 2001-06-15 2010-03-02 Qualcomm Incorporated Node processors for use in parity check decoders
US7317756B2 (en) 2001-12-06 2008-01-08 Pulse-Link, Inc. Ultra-wideband communication apparatus and methods
US8045935B2 (en) 2001-12-06 2011-10-25 Pulse-Link, Inc. High data rate transmitter and receiver
US7349478B2 (en) * 2001-12-06 2008-03-25 Pulse-Link, Inc. Ultra-wideband communication apparatus and methods
KR101058324B1 (ko) * 2003-02-26 2011-08-22 콸콤 인코포레이티드 멀티-레벨 퍼뮤테이션을 사용한 저밀도 패리티 검사(ldpc)코드 동작들을 수행하는 방법 및 장치
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
JP3891186B2 (ja) 2004-03-22 2007-03-14 住友電気工業株式会社 復号装置および前処理装置
US7685497B2 (en) * 2004-03-31 2010-03-23 Nxp B.V. Method and apparatus for efficient computation of check equations in periodical low density parity check (LDPC) codes
US7581157B2 (en) * 2004-06-24 2009-08-25 Lg Electronics Inc. Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system
JP4282558B2 (ja) 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
US7395490B2 (en) * 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7127659B2 (en) * 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
KR100846869B1 (ko) 2004-12-16 2008-07-16 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법
EP1829223B1 (en) * 2004-12-22 2013-02-13 LG Electronics Inc. Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
CN101091321A (zh) * 2004-12-29 2007-12-19 英特尔公司 用于低密度奇偶校验码的多门限解码的固定门限和信道估计
TWI291290B (en) * 2005-04-21 2007-12-11 Univ Nat Chiao Tung Method for updating check-node of low-density parity-check (LDPC) codes decoder and device using the same
JP4622654B2 (ja) 2005-04-25 2011-02-02 ソニー株式会社 復号装置および復号方法
CN101233693B (zh) * 2005-05-13 2012-11-14 日本电气株式会社 利用ldpc编码的编码器和解码器
JP2006340016A (ja) * 2005-06-01 2006-12-14 Toshiba Microelectronics Corp 誤り訂正符号復号装置及びそれを用いた復号方法
JP4526451B2 (ja) 2005-06-30 2010-08-18 ルネサスエレクトロニクス株式会社 復号装置と方法並びにプログラム
JP4526450B2 (ja) * 2005-06-30 2010-08-18 ルネサスエレクトロニクス株式会社 復号装置と方法並びにプログラム
JP4730592B2 (ja) * 2005-07-11 2011-07-20 ソニー株式会社 復号装置および復号方法
EP1909395B1 (en) * 2005-07-13 2019-11-20 Mitsubishi Electric Corporation Communication apparatus and decoding method
KR100791225B1 (ko) * 2005-12-01 2008-01-03 한국전자통신연구원 유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법
US8122315B2 (en) 2005-12-01 2012-02-21 Electronics And Telecommunications Research Institute LDPC decoding apparatus and method using type-classified index
JP4807063B2 (ja) 2005-12-20 2011-11-02 ソニー株式会社 復号装置、制御方法、およびプログラム
DE112005003790B4 (de) * 2005-12-26 2013-03-07 Intel Corporation Verallgemeinerter Mehrschwellen-Decodierer für Codes für Paritätsprüfungen geringer Dichte
US8219886B1 (en) * 2006-01-20 2012-07-10 Marvell International Ltd. High density multi-level memory
US7971130B2 (en) 2006-03-31 2011-06-28 Marvell International Ltd. Multi-level signal memory with LDPC and interleaving
JP5146322B2 (ja) * 2006-12-07 2013-02-20 日本電気株式会社 復号装置、復号方法
KR100975695B1 (ko) 2007-02-02 2010-08-12 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
FR2912574B1 (fr) * 2007-02-13 2010-09-17 Commissariat Energie Atomique Procede de decodage a passage de messages et a convergence forcee.
KR101370903B1 (ko) * 2007-03-16 2014-03-10 엘지전자 주식회사 Ldpc 코드를 이용한 부호화 및 복호화 방법
US8418023B2 (en) * 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
US20090013239A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
US8010881B2 (en) * 2007-07-02 2011-08-30 Broadcom Corporation Multi-code LDPC (low density parity check) decoder
JP4645640B2 (ja) * 2007-11-30 2011-03-09 住友電気工業株式会社 復号器、受信装置及び符号化データの復号方法
JP5333233B2 (ja) 2007-12-13 2013-11-06 日本電気株式会社 復号装置、データ蓄積装置、データ通信システム、および復号方法
US8156409B2 (en) * 2008-02-29 2012-04-10 Seagate Technology Llc Selectively applied hybrid min-sum approximation for constraint node updates of LDPC decoders
CN101803205B (zh) * 2008-08-15 2013-12-18 Lsi公司 近码字的ram列表解码
WO2010036209A1 (en) * 2008-09-26 2010-04-01 Agency For Science, Technology And Research Decoding circuit and encoding circuit
US20100169735A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Low density parity check code row update instruction
US8327234B2 (en) * 2009-02-27 2012-12-04 Research In Motion Limited Code block reordering prior to forward error correction decoding based on predicted code block reliability
TWI425519B (zh) * 2009-12-09 2014-02-01 Nat Chip Implementation Ct Nat Applied Res Lab 低複雜度低密度同位元檢查碼解碼器之記憶體配置方法及其解碼器結構
US8418019B2 (en) * 2010-04-19 2013-04-09 Lsi Corporation Systems and methods for dynamic scaling in a data decoding system
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US9944520B2 (en) 2013-01-15 2018-04-17 Alcatel Lucent Syndrome of degraded quantum redundancy coded states
US9286154B2 (en) 2013-06-07 2016-03-15 Alcatel Lucent Error correction for entangled quantum states
GB2517850B (en) 2013-08-27 2015-08-05 Imagination Tech Ltd An improved decoder for low-density parity-check codes
TWI551058B (zh) * 2014-05-09 2016-09-21 衡宇科技股份有限公司 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
US9762262B2 (en) 2014-06-18 2017-09-12 Alcatel Lucent Hardware-efficient syndrome extraction for entangled quantum states
CN107305510B (zh) * 2016-04-21 2020-12-15 合肥兆芯电子有限公司 数据处理方法、存储器存储装置及存储器控制电路单元
ES2835053B2 (es) 2019-12-18 2022-06-16 Univ Almeria Metodo, dispositivo y sistema para el almacenamiento, la codificacion y la decodificacion de informacion basada en codigos con capacidad de deteccion de errores

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673223B2 (en) * 2001-06-15 2010-03-02 Qualcomm Incorporated Node processors for use in parity check decoders
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7395487B2 (en) * 2002-08-15 2008-07-01 Broadcom Corporation Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder
US7120856B2 (en) * 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
US20060085720A1 (en) * 2004-10-04 2006-04-20 Hau Thien Tran Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes

Also Published As

Publication number Publication date
US7373581B2 (en) 2008-05-13
JP2004186940A (ja) 2004-07-02
US20040153938A1 (en) 2004-08-05

Similar Documents

Publication Publication Date Title
JP4062435B2 (ja) 誤り訂正符号復号装置
JP4389373B2 (ja) 2元巡回符号を反復型復号するための復号器
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US8347170B2 (en) Method and apparatus for performing decoding using LDPC code
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
KR101227264B1 (ko) Ldpc 코드용 디코더
EP1829223B1 (en) Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
CN108183713B (zh) 基于改进型最小和算法的ldpc译码器及其译码方法
JP4320418B2 (ja) 復号装置および受信装置
EP3110009A1 (en) Encoding method, decoding method, encoding device and decoding device for structured ldpc
JP4651600B2 (ja) 低密度パリティ検査復号器における検査ノード更新方法
WO2006075382A1 (ja) 符号化方法、復号方法及びそれらの装置
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
JP2017531392A (ja) 前方誤り訂正および並列復号を有する光コヒーレント受信機
CN114499541A (zh) 分层译码方法、装置、终端设备及介质
JP5148586B2 (ja) 復号装置および復号方法
KR20160002946A (ko) 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치
KR101307733B1 (ko) 블록 레이어 기반의 비 이진 qc-ldpc 부호의 복호 장치 및 그 방법
JP5523064B2 (ja) 復号装置及び方法
JP4492352B2 (ja) 復号装置及びその方法並びにプログラム
KR101221062B1 (ko) 가변 usc 부호를 이용한 부호화 및 복호화 방법
CN106911337B (zh) 数据处理方法、装置和解码器
EP3591845A1 (en) Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070803

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: 20071205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071218

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4062435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees