JP4819470B2 - 復号装置および復号方法 - Google Patents

復号装置および復号方法 Download PDF

Info

Publication number
JP4819470B2
JP4819470B2 JP2005296994A JP2005296994A JP4819470B2 JP 4819470 B2 JP4819470 B2 JP 4819470B2 JP 2005296994 A JP2005296994 A JP 2005296994A JP 2005296994 A JP2005296994 A JP 2005296994A JP 4819470 B2 JP4819470 B2 JP 4819470B2
Authority
JP
Japan
Prior art keywords
column
row
processing
weight
storage means
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.)
Active
Application number
JP2005296994A
Other languages
English (en)
Other versions
JP2007110265A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to JP2005296994A priority Critical patent/JP4819470B2/ja
Priority to KR1020060098636A priority patent/KR100883654B1/ko
Publication of JP2007110265A publication Critical patent/JP2007110265A/ja
Application granted granted Critical
Publication of JP4819470B2 publication Critical patent/JP4819470B2/ja
Active 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics

Description

本発明は、復号装置および復号方法に関し、特に、低密度パリティ検査符号のデータの高速伝送を行う伝送路において生じるエラーの訂正を行うのに好適な復号装置および復号方法に関する。
携帯電話に代表される移動体通信や無線LANなどの通信分野に対する要求は高度化しており、そのための開発および研究が急速に進められている。特に、これらの分野においては、データ転送速度のより高速化が要求されている。データの高速伝送を行う伝送路においてはエラーを生じやすいために、低密度パリティ検査符号などを用いてエラー検出及び訂正を行う誤り訂正技術の開発および研究が盛んに行われている。
一般に、このような通信システムにおいては、送信したい情報データが生成行列により符号化され、さらに変調後送信される。受信された符号語は復調された後、検査行列により復号されて、情報データに復元される。
ここで用いられる低密度パリティ検査(LDPC:Low Density Parity Check)符号とは、「1」の要素が非常に少ない検査行列によって定義される線形符号を言う。また、LDPC符号は2元に限定されることはないが、以下の説明においては簡略化のために2元LDPC符号を用いる。
このLDPC符号とsum−product復号法との組み合わせにより得られる復号特性は、ターボ符号の性能に匹敵し、符号長が長い場合にはむしろ上回る。すなわち、符号長が長い場合には、周波数利用効率(ビット/秒/Hz)の限界であるシャノン限界に非常に近い性能が得られる。この「シャノン限界」とは、伝送路の周波数帯域とEb/No(ビット当り電力密度対雑音電力密度比をdBで表わす)で決定される。LDPC符号の他の利点として、符号長および符号化率を様々に構成できる柔軟性、良好なブロック誤り率特性、エラーフロア現象の少なさなどがある。
ところで、上記検査行列を用いた復号には、演算回路、メモリ回路などから構成される復号装置が用いられる(例えば特許文献1)。システム要求の高度化に伴い演算データを一時記憶させるメモリ回路規模は増大する。回路規模の縮小のために、メモリ回路としてはレジスタよりもRAM(Random Access Memory)が適している。
特開2004−364233号公報
しかしながら、RAMを用いた場合、検査行列へのアクセスの際にデータの並べ替えが必要となる。データ並べ替えを行うには、多入力の選択回路を必要とするために、このままでは回路規模の縮小が不十分であり、復号装置のサイズの増大、処理速度の低下及び消費電力の増加などの点で改善すべき余地がある。
本発明は、かかる課題の認識に基づいてなされたものであり、その目的は、データの高速伝送を行う伝送路において生じるエラーの訂正を行うのに好適な、回路規模が縮小された、低密度パリティ検査符号の復号装置および復号方法を提供することにある。
本発明によれば、受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、
受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、前記行処理演算回路による行処理演算データを記憶する第1記憶手段と、前記列処理演算回路による列処理演算データを記憶する第2記憶手段と、を備え、前記検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成され、前記部分行列の行重みはすべて1であるように構成され、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rは列重み番号)の列重みの合計はすべて1であるように構成され、前記第1記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記行処理演算データを記憶し、前記第2記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記列処理演算データを記憶し、前記行処理演算回路は、前記第2記憶手段から読み出された列処理演算データを用いて列重みの2倍数の行処理演算を並行処理し、演算データを行重み番号及び列重み番号ごとに、前記第1記憶手段にそれぞれに書き込み、前記列処理演算回路は、前記第1記憶手段から読み出された前記行処理演算データを用いて行重みの数の列処理演算を並行処理し、演算データを列重み番号及び行重み番号ごとに、前記第2記憶手段にそれぞれに書き込むことを特徴とする低密度パリティ検査符号の復号装置が提供される。
この復号装置によれば、検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成されると共に、部分行列の行重みは全て1で、列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列の列重みとの合計が全て1であるように構成されている。
行処理演算回路及び列処理演算回路は、この検査行列を用いて受信語のエラー訂正を行う行処理演算及び列処理演算をそれぞれ実行し、その結果を行処理演算データ及び列処理演算データとして、行重み番号及び列重み番号ごとに第1記憶手段及び第2記憶手段のそれぞれ書き込む。第1記憶手段及び第2記憶手段では、検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに、行処理演算データ及び列処理演算データをそれぞれ記憶するようになっている。
ここで、行処理演算回路は、第2記憶手段から列処理演算データを読み出して、列重みの2倍数の行処理演算を並行処理する。このとき列処理演算データは、列処理演算回路によって行重み番号及び列重み番号ごとに第2記憶手段に書き込まれているので、行処理演算回路では、データを並び替えずとも、第2記憶手段から行処理に必要な列処理演算データを読み出すことができる。
また、列処理演算回路は、第1記憶手段から行処理演算データを読み出して行重み数の列処理演算を並行処理するが、このときも行処理演算データが行処理演算回路によって行重み番号及び列重み番号ごとに第1記憶手段に書き込まれているので、データを並び替えずとも、第1記憶手段から列処理に必要な行処理演算データを読み出すことができる。
このようにデータを並び替えずに行処理演算及び列処理演算をそれぞれ並行処理できるので、従来必要とされた選択回路が省略可能となり、回路規模を縮小することができる。
また、本発明によれば、受信語のエラー訂正を行う検査行列として、列方向に列重みの2倍数で分割し、行方向に行重みの数で行を分割することにより形成した複数の部分行列の集合であって、前記部分行列の行重みはすべて1であるように構成され、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rは列重み番号)の列重みの合計はすべて1であるように構成された、複数の部分行列の集合を用い、受信語データを入力することにより初期化された演算データを第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第1ステップと、前記検査行列の「1」の要素に対して、前記第2記憶手段に記憶された列処理演算データを読み出し、列重みの2倍数の並行処理により行処理演算を行い、演算データを第1記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第2ステップと、前記検査行列の「1」の要素に対して、前記第1記憶手段に記憶された前記行処理演算データを読み出し、行重みの数の並行処理により列処理演算を行い、演算データを前記第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込むと共に、前記行処理演算データを用いて一時推定語を演算する第3ステップと、前記第2ステップと前記第3ステップとをこの順に所定の回数繰り返す第4ステップと、
を備えたことを特徴とする低密度パリティ検査符号の復号方法が提供される。
この復号方法によれば、検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成されると共に、部分行列の行重みは全て1で、列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列の列重みとの合計が全て1であるように構成されている。
まず、第1ステップにおいて、受信語データを初期化された列処理演算データとして第2記憶手段に書き込む。このとき、初期化された列処理演算データは、同一行重み番号及び同一列重み番号ごとに第2記憶手段に記憶される。これにより、次の第2ステップでは、第2記憶手段からデータを並び替えずに列処理演算データを読み出して、検査行列の「1」の要素に対して、列重み数の2倍の行処理演算を並行処理することができる。
そして、第2ステップの並行処理結果は、行処理演算データとして、同一行重み番号及び同一列重み番号ごとに第1記憶手段に記憶される。これにより、次の第3ステップでは、第1記憶手段からデータを並び替えずに行処理演算データを読み出して、検査行列の「1」の要素に対して、行重み数の列処理演算を並行処理できる。また、第1記憶手段から読み出した行処理演算データを用いて一時推定語の演算も行うことができる。
そして、第3ステップに並行処理結果は、列処理演算データとして、同一行重み番号及び同一列重み番号ごとに第2記憶手段に記憶される。これにより、以降、行処理演算及び列処理演算の並行処理を所定回数繰り返し実行しても(第4ステップ)、データを並び替えずにすむ。
このように行演算処理及び列演算処理の並行処理に際して、データの並び替えが不要であるので、従来必要とされた選択回路が省略可能となり、回路規模を縮小することができる。
また、本発明によれば、受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、前記行処理演算回路による行処理演算データを記憶する第1記憶手段と、前記列処理演算回路による列処理演算データを記憶する第2記憶手段と、前記第1記憶手段に記憶された2つのデータのうちのいずれかを選択して出力する選択回路と、を備え、前記検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成され、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rはすべての列重み番号の範囲)の列重みの合計はすべて1であるように構成され、前記複数の部分行列のうち、行方向に連続した2つの部分行列の行重みの合計はすべて2であるように構成され、前記第1記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記行処理演算データを記憶し、前記第2記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記列処理演算データを記憶し、前記行処理演算回路は、前記第2記憶手段から読み出された列処理演算データを用いて列重みの2倍数の行処理演算を並行処理し、演算データを行重み番号及び列重み番号ごとに、前記第1記憶手段にそれぞれに書き込み、前記列処理演算回路は、前記選択回路により選択して出力された前記行処理演算データを用いて行重みの数の列処理演算を並行処理し、演算データを列重み番号及び行重み番号ごとに、前記第2記憶手段にそれぞれに書き込むことを特徴とする低密度パリティ検査符号の復号装置が提供される。
この復号装置においては、検査行列が行方向に連続した2つの部分行列の行重みの合計がすべて2であるように構成し、請求項1記載の復号装置における検査行列よりも自由度を持たせ、設計を容易にしている。
このような構成の検査行列を用いることにより、列処理演算回路で行重み数の列処理演算を並行処理するためには、選択回路によって、第1記憶手段から該列処理演算に必要な行処理演算データを選択する、すなわちデータの並び替えが必要となるが、行処理演算回路で列重みの2倍数の行処理演算を並行処理するためには、請求項1記載の復号装置と同様にデータの並び替えは不要である。
この結果、選択回路は列処理演算用にのみ設ければよく、従来よりも必要な選択回路数を減数することができ、回路規模を縮小できる。
また、本発明によれば、受信語のエラー訂正を行う検査行列として、列方向に列重みの2倍数で分割し、行方向に行重みの数で行を分割することにより形成した複数の部分行列の集合であって、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rはすべての列重み番号の範囲)の列重みの合計はすべて1であるように構成され、前記複数の部分行列のうち、行方向に連続した2つの部分行列の行重みの合計はすべて2であるように構成された、複数の部分行列の集合を用い、
受信語データを入力しすることにより初期化された演算データを第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第1ステップと、前記検査行列の「1」の要素に対して、前記第2記憶手段に記憶された列処理演算データを読み出し、列重みの2倍数の並行処理により行処理演算を行い、演算データを第1記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第2ステップと、前記検査行列の「1」の要素に対して、前記第1記憶手段に記憶された2つの前記行処理演算データのいずれかを選択して読み出して、行重みの数の並行処理により列処理演算を行い、演算データを前記第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込むと共に、前記行処理演算データを用いて一時推定語を演算する第3ステップと、前記第2ステップと前記第3ステップとをこの順に所定の回数繰り返す第4ステップと、を備えたことを特徴とする低密度パリティ検査符号の復号方法が提供される。
この復号方法においては、検査行列が行方向に連続した2つの部分行列の行重みの合計がすべて2であるように構成し、請求項4記載の復号方法における検査行列よりも自由度を持たせ、設計を容易にしている。
このような構成の検査行列を用いることにより、第3ステップの行重み数の列処理演算を並行処理するためには、第1記憶手段から該列処理演算に必要な行処理演算データを選択する、すなわちデータの並び替えが必要となるが、第2ステップの行処理演算で列重みの2倍数の行処理演算を並行処理するためには、請求項4と同様にデータの並び替えは不要である。
この結果、選択回路は列処理演算用にのみに設ければよく、従来よりも必要な選択回路数を減数することができ、回路規模を縮小できる。
本発明によれば、データの高速伝送を行う伝送路において生じるエラーの訂正を行うのに好適な、回路規模が縮小された、低密度パリティ検査符号の復号装置および復号方法が提供される。
以下、本発明の実施の形態について、図面を参照しつつ説明する。
図1は、本発明の第1具体例にかかる低密度パリティ検査(LDPC)符号の復号装置24のブロック図である。受信語データはシリアル−パラレル変換回路52、入力バッファ54を通り、制御部40へ入力された受信語有効信号により制御された、列処理演算回路44及び一時推定語演算回路50へ入力される。
列処理演算回路44で演算された列処理演算データは、第2記憶手段46に並列処理により書き込まれる(但し初回は、初期化ステップである)。行処理演算回路42は、第2記憶手段46のデータを並列処理により読み出し、行処理演算を行う。行処理演算データは、第1記憶手段48へ並列処理により書き込まれる。
この行処理演算及び列処理演算が、所定の回数だけ繰り返されたのち、一時推定語演算回路50にて一時推定語が演算されて、出力バッファ56、パラレル−シリアル変換回路58を経由して復号語データとして取り出される。
図2は、図1に例示された本具体例の復号装置24が組み込まれた受信器を表すブロック図である。この受信器は、例えば、携帯電話などの移動無線機器やPDA(Personal Digital Data Assistant)に用いられる。アンテナ20により受信された信号は、復調回路22にて復調され、本具体例による復号装置24により復号される。
さらに、この受信器は、復号された映像信号や音声信号などのデータを処理する映像/音声信号処理回路28、復号装置24や映像/音声信号処理回路28を制御するCPU(Central Processing Unit)26,信号処理された音声信号を外部に発音するスピーカ34、信号処理された映像信号を表示するモニタ32などを備えている。
次に、本具体例にかかるLDPC符号の復号に用いる検査行列について詳細に説明する。 図3は、本具体例に用いられるHで表される検査行列10の基本構成を表す。検査行列10は、M行×N列で構成される。また、行はPm個に分割され、列はPn個に分割される。この結果、検査行列10は、(M/Pm)行×(N/Pn)列で構成され、Hsub[i][j]で表される部分行列12がPm×Pn個が集合したと取り扱うことができる。ここで、Pmは列重みを2倍した整数とするので、偶数値となる。また、Pnは、行重みと同一の整数とする。
さらに、本具体例においては、行方向に沿って奇数である(2r−1)番目と偶数である2r番目(但し、r=1,2、・・・、Pm/2)の部分行列Hsub[2r−1][c]及びHsub[2r][c](但し、c=1,2、・・・、Pn)とにおいて、列重みの和を1とする。一方、各部分行列における行重みはそれぞれに1とする。なお行重みとは、ひとつの行における「1」の要素の数を表す。同様に、列重みとは、ひとつの列における「1」の要素の数を表す。
図4は、部分行列12の一例をより具体的に表す図である。Hsub[2r−1][c]およびHsub[2r][c]で表される、列方向に沿って連続した2個の部分行列12の各要素が、それぞれに例示される。「列方向に沿って連続する」ことを以下では、「縦に連続する」と表現する。行重みはそれぞれに1とされ、列数はN/Pnとされる。また、列重みは、2個の部分行列のいずれかの列において1とされ、縦に連続した2個の部分行列の列重みの和は1となる。
次に、このような検査行列10を用いてエラー検出及びエラー訂正を行うための演算式を理解するのに必要なタナーグラフについて説明する。
図5は、M行×N列なる検査行列におけるタナーグラフであり、N個のビット・ノード(○印で表す)とM個のチェック・ノード(□印で表す)とからなる。そして、検査行列において、「1」なる要素の行と列に対応するノード間を線で結ぶ。LDPC符号の復号は、このようなタナーグラフにおけるビット・ノード、チェック・ノード間のメッセージである対数尤度比(LLR:Log-Likelihood Ratio)のやりとりを繰り返すことにより復号を行う。
次に、このようなタナーグラフを用いて行う演算ステップについて説明する。検査行列10における要素をHmnと表し、m行目において「1」となる要素を有する列番号の集合N(m)、及びn列目において「1」となる要素を有する行番号の集合M(n)を以下のように定義する。

N(m)={n:Hmn=1}
M(n)={m:Hmn=1}

また、ビット・ノードからチェック・ノードへ送られるメッセージをZmnとし、チェック・ノードからビット・ノードへ送られるメッセージをLmnと定義する。さらに、受信語からのメッセージをynと定義する。
まず、図6は、行処理演算におけるノード間のやり取りを表すタナーグラフである。チェック・ノードmからビット・ノードN(m)=n1へ渡されるメッセージLmn1は、当該チェック・ノードmに結びついているビット・ノードのうち、当該メッセージが渡されるビット・ノードn1を除く他のビット・ノードからのメッセージ(Zmn2,Zmn3,・・・)から演算される。このときの演算式の一例を以下に示す。
Figure 0004819470

tanh関数を用いた演算式は、sgn関数のproductとmin関数との積として近似することができる。
ここで、sgn関数は、以下の(2)式で示される。なお、演算式は(1)式に限定されることは無く、例えば、Gallagerのf関数などとすることができる。
Figure 0004819470
また、図7は、列処理演算におけるノード間のやりとりを表すタナーグラフである。ビット・ノードnからチェック・ノードm1へ渡されるメッセージZm1nは、当該ビット・ノードnに結びついているチェック・ノードのうち、当該メッセージが渡されるチェック・ノードm1を除く他のチェック・ノードからのメッセージ(Lm2n,Lm3n、・・・)から演算される。このときの演算式を、以下に示す。
Figure 0004819470
Zmnは、Lm'nのsumと受信語ynとの和で表される。LDPC符号の復号処理は、上記のような処理を繰り返すので「sum−product復号法」とも呼ばれる。この場合、時間計算量は符号長について線形時間であり、この復号アルゴリズムは本質的に並列アルゴリズムであるために並列分散型ハードウェア実装に適している。
次に、復号処理の流れを説明する。
図8は、本具体例にかかる復号方法を表わすフロー図である。まず、符号語を受信する(S100)。次に、反復回数をカウントするカウンタTをT=1に初期化し、Hmn=1であるすべての要素に対して、受信語ynを用いてZmn=ynのように初期化する(S102)。より具体的には、第1記憶手段48から列処理演算回路44への入力データをすべて「0」とする。こうすると、列処理演算回路44からの出力が受信語ynのみとなり、第2記憶手段46のデータを受信語に初期化できる。
次に、第2記憶手段46から列処理演算データを読み出し、行処理演算を列重みの2倍数で並行処理を行い、検査行列10における「1」の要素に対応してチェック・ノードからビット・ノードへ渡される演算データを第1記憶手段48を構成する第1メモリ素子群に行重み番号及び列重み番号ごとにそれぞれ記憶させる。この行処理演算は、(1)式を用いてすべてのm、nに対して実行される(S104)。以下において、「行処理」とは、列処理演算データの読み出し、行処理演算、第1記憶手段への書き込みを含むものとする。また、「行重み番号」とは、検査行列の同一行の「1」なる要素に対して、当該要素の列番号の小さい順に1から割り振った番号である。同様に、「列重み番号」とは、検査行列の同一列の「1」なる要素に対して、当該要素の行番号の小さい順に1から割り振った番号である。
次に、第1記憶手段48から行処理演算データを読み出し、列処理演算を行重みの数で並行処理を行い、検査行列における「1」の要素に対応してビット・ノードからチェック・ノードへ渡される演算データを第2記憶手段46を構成する第2メモリ素子群に行重み番号及び列重み番号ごとにそれぞれ記憶させる。この列処理演算は、(3)式を用いてすべてのm,nに対して実行される。また、一時推定語cnの演算を(4)式を用いてすべてのm、nに対して実行する(S106)。以下において、「列処理」とは、行処理演算データの読み出し、列処理演算、第2記憶手段への書き込みを含むものとする。
Figure 0004819470

次に、反復回数判定を行う(S108)。ここでカウンタT<itであれば、カウンタTをインクレメントして、行処理演算を行うステップS104へ戻る。この繰り返しサイクルは、T=itとなるまで継続される。ここで、例えば,it=50とすることができるがこれに限定される必要はなく、収束が早ければitはより小であっても良い。T=itで復号処理は終了する(S110)。
最終的に、エラー訂正がなされた一時推定語cnが得られる。
ここで、再び図1に例示される復号装置24に戻って、その構成要素に関し補足説明を行う。受信語データはまずシリアル−パラレル変換を行うS/P回路52へ入力される。入力バッファ54は、受信語を記憶するメモリから構成される。この入力バッファ54は、列処理演算において並列処理ができるように、ひとつの受信語から列処理演算に必要なデータを複数同時に出力できるように構成される。具体的には、入力バッファへの書き込み時に、データの並べ替えを行う。
出力バッファ56は、一時推定語演算データを記憶するメモリにより構成される。この一時推定語は、パラレル−シリアル変換を行うP/S回路58へ入力される。制御部40は、入力バッファ54、第1記憶手段48、第2記憶手段46、行処理演算回路42列処理演算回路44、出力バッファ56などの動作を制御する。
なお、行処理演算に必要なデータの総ビット数は、
量子化ビット数×行重み×Pm(列重みの2倍)
と表わされる。
また、列処理演算に必要な第1記憶手段48から読み出されるデータの総ビット数は、
量子化ビット数×列重み×Pn(行重み)
と表わされる。
さらに、一時推定語演算に必要な第1記憶手段48からの読み出しデータの総ビット数は、
量子化ビット数×列重み×Pn(行重み)
と表わされる。
さらに、入力バッファ54からの読み出しデータの総ビット数は、
量子化ビット数×Pn(行重み)
と表わされる。
次に、行処理演算回路42、第1記憶手段48、列処理演算回路44、第2記憶手段46間で実行されるデータの受け渡しに関して、より詳細に説明をする。ここで第1記憶手段48、及び第2記憶手段46を構成するメモリ素子群としては、例えばデュアルポートRAMを用いることができる。
図9は、デュアルポートメモリであるデュアルポートRAM60を記憶手段のメモリ素子群として用いた場合の、記憶データの構成の一例を示す図である。この記憶データの構成は、図3に例示される検査行列10を構成する部分行列12のうち、列に沿って(2r−1)番目と2r番目(但し、r=1,2、・・・、Pm/2)を一組とした行列と対応させる。すなわち、このような2個が組み合わされた部分行列はそれぞれ行重みが1であり、列重みが1とできる。
この結果、デュアルポートRAM60の各々に、行重み1かつ列重み1の部分行列の「1」の要素に対応した演算結果を記憶させることができる。従って第1記憶手段48及び第2記憶手段46は、Pn個×Pm/2個のデュアルポートRAM60から構成される。図9において、Pnを行重みと一致させ、Pm/2を列重みと一致させる。本明細書においては、RAM[j][k]なる表現により位置を表わすことにし、kを「行重み番号」、jを「列重み番号」とする。なお、図示していないが、デュアルポートRAM60の各ポートが、図3に例示される部分行列12の各要素へのアクセスに使用される。また、演算データは、行番号順にデュアルポートRAM60へ記憶させることができる。
続いて、検査行列Hの行重みを7とし(Pn=7を意味する)、列重みを3(Pm=6を意味する)とした場合についてより具体的に説明をする。ここで、復号方法の流れは、図8に例示されるフロー図に従うものとする。
図10は、行処理演算ステップ(S104)における記憶手段と行処理演算回路42との接続を表わすブロック図である。行処理演算においては、始めに第2記憶手段46から必要データを読み出す。この場合、検査行列の同一行の「1」なる要素に対応するデータが必要である。本具体例においては行重みが7であるので、1行あたり7個のデータ(ビット・ノード数に対応)が必要である。図6には、7個のビット・ノードが例示されている。また、行処理は列重み3の2倍数である6並列処理が行われるので7個×6(行)=42個のデータが必要となる。
1行分のデータは、行重み番号(k)の番号順に第2メモリ素子群の対応するデュアルポートRAM47に記憶されている。このデータは、行番号順に記憶させてあるので、7個すべてのデュアルポートRAMに行番号を示す同一のアドレスを与えることにより、1回のアクセスで7個のデータを並列に読み出すことができる。また、第2記憶手段46もデュアルポートRAMであるので、2行分のデータを同時に読み出すことができる。
さらに、このデュアルポートRAM構成を、列重みと同数の3組配置することにより、7個×6(行)=42個のデータを同時に読み出すことができる。このように、読み出された列処理データは、行ごとに行処理演算回路42へ入力される。この場合、行処理演算回路42も6並列分配置することにより、6行分の行処理演算が並列処理できる。
行処理演算回路42における演算データは、第1記憶手段48を構成するデュアルポートRAM49へ、書き込まれる。42個の演算データは、6並列処理により1回のアクセスで書き込み可能である。
図11は、列処理演算ステップ(S106)における記憶手段と列処理演算回路との接続を表わすブロック図である。列処理演算においては、始めに第1記憶手段48から必要データを読み出す。この場合、検査行列の同一列の「1」なる要素に対応するデータが必要である。本具体例においては列重みが3であるので、1列当たり3個のデータ(チェック・ノード数に対応)が必要である。図7には、3個のチェック・ノードが例示されている。また、列処理は7並列処理が行われるので3個×7(列)=21個のデータが必要となる。
1列分のデータは、列重み番号(j)の番号順に第1メモリ素子群の対応するデュアルポートRAM49に記憶されている。このデータは、1回のアクセスで3個のデータを読み出すことができる。また、このデュアルポートRAM構成を、行重みと同数の7組配置することにより3個×7(列)=21個のデータを同時に読み出すことができる。ここで、第1記憶手段48を構成するデュアルポートRAM49は行番号順にデータが記憶されているので、当該データの読み出しアドレスは、当該データの行番号に対応したアドレスを指定する必要がある。この読み出しアドレスの指定は、制御部40において行う。
図12は、このアドレス指定を説明する図である。列番号変換メモリ64を用いて列番号から行番号に対応するアドレスへの変換を行う。当該メモリのアドレスに列処理演算対象の列番号を与える。列処理演算対象の列数は7であるが、ひとつの列番号から当該21個分の行番号に対応したアドレスが出力されるように、あらかじめメモリ内容を設定しておくことで変換を実現する。
第1記憶手段48から読み出したデータは、列ごとに列処理演算回路44へ入力される。列処理演算回路44は7並列処理が可能とされる。また、一時推定語演算回路50も7並列処理が可能とされる。
次に、列処理演算回路44からの出力データを、第2記憶手段46を構成するデュアルポートRAM47へ書き込む。21個のデータは均等に書き込まれるので、1回のアクセスですべてのデータの書き込みが可能である。
次に、比較例との対比により、第1具体例における利点をより明確にする。
図13は、比較例にかかるLDPC符号の復号装置を表わすブロック図である。なお、第1具体例と同様の構成要素には同一番号を付して詳細な説明を省略する。本比較例においては、検査行列を行方向及び列方向に分割して、並列処理を行うことにより復号処理時間を短縮している。また、回路規模を縮小するために、第1記憶手段48及び第2記憶手段46にはRAMが用いられており、かつ並列処理のためにRAMは複数個が用いられている。さらに、検査行列においては図14に例示されるようにランダムに「1」が配置されている。本比較例においては、検査行列の行重みを4、列重みを3としている。
まず、比較例の行処理演算につき説明する。
図15は、検査行列の一例を表わす図である。
また、図16は、行処理演算時のメモリ接続を表わすブロック図である。第2記憶手段46及び第1記憶手段48は100列ごとにデータを列番号順に記憶させている
検査行列における1行目の「1」の要素が、4列目、201列目、480列目、998列目であったとすると、当該要素に対するデータが、記憶手段を構成するRAMに散在する。この結果、各RAMの出力から行処理演算に必要なデータのみを選択するための選択回路66が必要となる。また、演算データを各RAMへ書き込む際にも、当該行の4個の「1」の要素に対応する複数のRAMに、対応するデータを選択して渡すための選択回路66が必要となる。
次に、比較例の列処理演算につき説明する。
図17は、検査行列の一例を表わす図である。
また、図18は、列処理演算時のメモリ接続を表わすブロック図である。第2記憶手段46及び第1記憶手段48は100行ごとのデータを行番号順に記憶させている。
検査行列の「1」の要素がランダムに配置されており、一列目の「1」の要素が、2行目、152行目、450行目であったとすると、当該要素に対するデータは、各RAMに散在する。この結果、各RAMの出力から列処理演算に必要なデータのみを選択する選択回路66が必要になる。また、演算データを各RAMへ書き込む際も、当該列の3個の「1」の要素に対応する複数のRAMに、対応するデータを選択して渡すための選択回路66が必要となる。
以上説明したように、比較例においては、検査行列が「1」をランダムに配置する構成である場合、第1記憶手段48及び第2記憶手段46の入力及び出力側には選択回路66が必要である。この選択回路66は、並列処理数分必要である。演算処理時間を短縮するために並列処理数を増やすと、それに応じて選択回路66も増える。この選択回路66は回路規模が大となり、装置の大型化および消費電力増大を招く。
これに対して、第1具体例においては、検査行列を(行重み×列重みの2倍)数の部分行列に分割し、複数のRAMに「1」を分散させている。これにより、第1記憶手段48、第2記憶手段46の記憶データを並び替えずとも、行処理演算及び列処理演算をそれぞれ並行処理できると共に、デュアルポートRAM60を用いることで、データの読み出し、書込み時間を低減することもできる。これにより、(行重み×列重み)数のデュアルポートRAM60に、行重み番号(k)及び列重み番号(j)に対応したデータを記憶させることが可能となるので、選択回路66が不要であり、回路規模を7から20%縮小できる。この結果、演算処理時間の短縮、小型、低消費電力が可能な復号装置が実現できる。
次に、本発明の第2具体例にかかる低密度パリティ検査符号の復号装置及び復号方法について説明する。
図19は、第2具体例における検査行列の一例である。各部分行列において、「1」の要素はランダムに配置されているが、行重みは、0、1,2のいずれかとされ、列重みは、0または1とされる。
ここで、縦に連続した(2r−1)番目と2r番目(但し、r=1,2、・・・、Pm/2)の部分行列をあわせた行列における列重みの合計をすべて1とする。また、行方向に沿って連続した2個のペア部分行列を合わせた行列の行重みをすべて2とする。なお、「行方向に沿って連続する」ことを以下では、「横に連続する」と呼ぶことにする。
図19の例においては、列ブロック番号=2であるHsub[2r−1][2]とHsub[2r][2]とが縦に連続して配置され、列ブロック=3であるHsub[2r―1][3]とHsub[2r][3]とが縦に連続して配置されている。
一方、列ブロック=2に属するHsub[2r−1][2]と列ブロック=3に属するHsub[2r−1][3]とは横に連続したペア部分行列を構成している、同様に、列ブロック=2に属するHsub[2r][2]と列ブロック=3に属するHsub[2r][3]とは横に連続したペア部分行列を構成している。このペア部分行列の位置は、特に限定されない。例えば、列ブロック番号が、1番と2番、2番と3番、3番と4番、4番と5番などの組み合わせを任意に選択できる。
次に、第2具体例における処理の流れを、より詳細に説明する。
図20は、各部分行列12を2行×4列とし、列ブロック番号=2及び列ブロック番号=3に属する部分行列により横に連続したペア部分行列13を2組縦に連続して設けた検査行列の例である。この場合、2個のペア行列13において、行重みをすべて2としている。2個のペア部分行列13以外の部分行列においては行重みをすべて1とする。また、2組のペア部分行列13は、縦方向に(2r−1)番目と2r番目(但し、rは1〜Pm/2の自然数のひとつ)の部分行列に位置する。
第2具体例においても、行処理演算は第1具体例と同様であるので、列処理演算のみについて説明を行う。図20に例示される検査行列において、各部分行列の1列目、2列目に対する列処理演算対象の「1」の要素の行重み番号は、列ブロック番号と一致するので、第1具体例と同様の列処理演算を行うことができる。
また、各部分行列の3列目の列処理演算において、列ブロック番号が1、及び列ブロック番号が4以上における列処理演算対象の「1」の要素の行重み番号は、列ブロック番号と一致しているので、第1具体例と同様の列処理演算を行うことができる。
次に、第1具体例とは列処理演算が異なる列ブロック番号=2及び列ブロック番号=3について以下に説明を行う。
図21は、列処理演算におけるメモリ接続を表わすブロック図である。第1具体例の対応するブロック図は図11に例示されており、図20は第1具体例と異なる箇所のみを表わしている。
列ブロック番号=3における3列目、すなわち検査行列10における11列目における列処理演算対象の「1」の要素は、4行目、6行目、9行目のそれぞれ位置している。これらを{要素(4,11)、要素(6,11)、要素(9,11)}と表記する。さらに、当該要素の行重み番号、列重み番号を{重み(k=行重み番号、j=列重み番号)}と表記する。
要素(4,11)の重み(k=2、j=1)であり、列ブロック番号とは重み番号が異なる。この場合、当該データは図21におけるデュアルポートRAMで構成されるRAM−A[1][2](k=2、j=1)に記憶されている。当該データの読み出しは、RAM−A[1][2]のポート2を使って行われる。この読み出しデータは、選択指示回路72(#3)により選択回路66を制御することにより列処理演算回路44(#3)へ渡される。
一方、要素(6,11)及び要素(9,11)の行重み番号は3であり列ブロック番号=3と一致する。この場合は、当該データをRAM−A[2][3]及びRAM−A[3][3]からそれぞれ読み出し、選択指示回路72(#3)により選択回路66を制御することにより列処理演算回路44(#3)へ渡される。このように、列処理演算に必要なデータ3個は、すべて同時に対応するデュアルポートRAMから読み出される。
続いて列処理演算データが列処理演算回路44(#3)からデュアルポートRAM49である、RAM−B[1][2]、RAM−B[2][3]、RAM−B[3][3]へ書き込まれるが、この際、RAM−B[1][2] への書き込みにはポート2を使い、それ以外はポート1を使って書き込む。このように、すべてのデータをデュアルポートRAM49へ同時に書き込むことができる。
続いて、列ブロック番号=2における3列目の列処理演算について説明する。この場合、列処理演算対象の「1」の要素の行重み番号はすべて2であり、列ブロック番号と一致する。従って、RAM−A[1][2]、RAM−A[2][2]、RAM−A[3][2]のポート1からデータを同時に読み出し、選択指示回路70(#2)により選択回路66を制御することにより列ブロック番号=2の3列目の列処理演算に必要なデータを列処理演算回路44(#2)へ渡す。
列処理演算データは、RAM−B[1][2]、RAM−B[2][2]、RAM−B[3][2]のポート1を使い各メモリにそれぞれ書き込まれる。なお、選択指示回路70(#2)及び72(#3)は、メモリを用いて実現できる。メモリのアドレスに列処理演算対象の列番号を与え、データバスからあらかじめ検査行列に対応した選択指示信号を記憶しておく。
次に、各部分行列の4列目の列処理演算について説明する。列ブロック番号=1及び列ブロック番号=4以上における列処理演算対象の「1」の要素の行重み番号は、列ブロック番号と一致するので、第1具体例と同様にできる。列ブロック番号=2及び列ブロック番号=3の列処理演算を図21のメモリ接続を用いて説明する。
列ブロック番号=2における4列目、すなわち検査行列10の8列目の列演算対象の「1」の要素は、2行目、7行目、9行目に位置する。これらを、{要素(2,8)、要素(7,8)、要素(9,8)}と表記する。また、要素(2,8)の重み(k=3、j=1)であり、列ブロック番号=2と重み番号が異なる。この場合、データはRAM−A[1][3](k=3、j=1)に記憶されている。
当該データは、RAM−A[1][3]のポート2を使って読み出される。続いて、選択指示回路72(#3)により制御された選択回路66により当該データが列処理演算回路44へ渡される。
一方、要素(7,8)、要素(9,8)の行重み番号は2であり、列ブロック番号と一致する。従って、当該データはRAM−A[2][2]、RAM−A[3][2]から読み出され、選択回路66により選択されて列処理演算回路44へ渡される。この用に、列処理演算に必要なデータ3個は、すべて同時にRAM−Aから読み出される。列処理演算データは、RAM−B[1][3],RAM−B[2][2],RAM−B[3][2]に書き込まれるが、この際RAM−B[1][3]への書き込みにはポート2を使い、それ以外にはポート1を使う。
列ブロック番号=3の4列目における列処理演算対象の「1」の要素の行重みはすべて3であり、列ブロック番号と一致する。従って、RAM−A[1][3]、RAM−A[2][3]、RAM−A[3][3]のポート1からデータが同時に読み出され、選択回路66はポート1からの出力を選択するように制御される。この結果、列ブロック番号=3の4列目の列処理演算に必要なデータが列処理演算回路44(#3)へ渡される。列処理演算データは、RAM−B[1][3]、RAM−B[2][3]、RAM−B[3][3]のポート1を使い各メモリに書き込まれる。このようにして、すべてのデータをデュアルポートRAM49に同時書き込みできる。
第2具体例においては、選択指示回路及び最小限の選択回路が必要である。しかし、図13に例示される比較例に対して選択回路数は極めて少ないので、回路規模の増大は最小限にすることができる。
第2具体例の利点は、第1具体例と比べて検査行列10の設計が容易となることである。LDPC符号の復号のための検査行列を構成する方法のひとつに、乱数を用いて列置換を行うGallagerによる構成法がある。第2具体例においては、横方向ペア部分行列13により、検査行列構成により自由度をもたせることができるので、設計がより容易となる。
さらに、第1具体例と同様に、第2具体例においても、検査行列を部分行列に分割し、「1」を分散させている。また、デュアルポートRAM60を用いて、データ読み出し、書きこみ時間を低減している。この結果、行重み×列重み数のデュアルポートRAM60に、行重み番号(k)及び列重み番号(j)に対応したデータを記憶させることが可能となるので、選択回路数を低減できる。この結果、演算処理時間の短縮、小型、低消費電力が可能な復号装置が実現できる。
第1具体例及び第2具体例において説明したようなLDPC符号の復号装置及び復号方法を用いることにより、データの高速伝送路において生じるエラー検出及び訂正することができる。この結果、ブロック誤り率が低く、エラーフロアの少ない高速伝送路が実現できる。
以上、図面を参照しつつ本発明の実施の形態について説明した。しかし本発明は、これら具体例には限定されない。例えば、LDPC復号装置を構成する記憶手段、メモリ素子、演算回路、S/P回路、P/S回路、バッファ回路などに関して、また復号方法に関して、当業者が各種の設計変更を加えたものであっても、本発明の要旨を有する限り本発明の範囲に包含される。
本発明の第1具体例にかかる低密度パリティ検査(LDPC)符号の復号装置のブロック図である。 第1具体例にかかる復号装置が組み込まれた受信器を表わすブロック図である。 第1具体例におけるLDPC符号の検査行列を表わす図である。 第1具体例におけるLDPC符号の検査行列の一例を表わす図である。 タナーグラフを表わす図である。 行処理演算処理を説明するためのタナーグラフである。 列処理演算処理を説明するためのタナーグラフである。 本具体例にかかる低密度パリティ検査符号の復号方法を説明するフロー図である。 第1具体例におけるデュアルポートRAMの構成を表わす図である。 第1具体例にかかる復号装置におけるデュアルポートRAMと行処理演算回路との接続を表わすブロック図である。 第1具体例にかかる復号装置におけるデュアルポートRAMと列処理演算回路との接続を表わすブロック図である。 列番号変換メモリを表わす図である。 比較例にかかるLDPC符号の復号装置を表わすブロック図である。 比較例における検査行列の一例である。 比較例における行処理演算を説明するための検査行列の一例である。 比較例における行処理演算時のメモリ接続を表わすブロック図である。 比較例における列処理演算を説明するための検査行列の一例である。 比較例における列処理演算時のメモリ接続表わすブロック図である。 第2具体例における検査行列である。 第2具体例における検査行列のより詳細な例である。 第2具体例における列処理演算時のメモリ接続を表わすブロック図である。
符号の説明
10 検査行列
12 部分行列
13 横方向ペア部分行列
20 アンテナ
22 復調回路
24 復号装置
26 CPU
28 映像/音声信号処理回路
32 モニタ
34 スピーカ
40 制御部
42 行処理演算回路
44 列処理演算回路
46 第2記憶手段
47 デュアルポートRAM
48 第1記憶手段
49 デュアルポートRAM
50 一時推定語演算回路
52 S/P回路
54 入力バッファ
56 出力バッファ
58 P/S回路
60 RAM
64 列番号変換メモリ
66 選択回路
70 選択指示回路
72 選択指示回路

Claims (10)

  1. 受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、
    受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、
    前記行処理演算回路による行処理演算データを記憶する第1記憶手段と、
    前記列処理演算回路による列処理演算データを記憶する第2記憶手段と、を備え、
    前記検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成され、
    前記部分行列の行重みはすべて1であるように構成され、
    前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rは列重み番号)の列重みの合計はすべて1であるように構成され、
    前記第1記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記行処理演算データを記憶し、
    前記第2記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記列処理演算データを記憶し、
    前記行処理演算回路は、前記第2記憶手段から読み出された列処理演算データを用いて列重みの2倍数の行処理演算を並行処理し、演算データを行重み番号及び列重み番号ごとに、前記第1記憶手段にそれぞれに書き込み、
    前記列処理演算回路は、前記第1記憶手段から読み出された前記行処理演算データを用いて行重みの数の列処理演算を並行処理し、演算データを列重み番号及び行重み番号ごとに、前記第2記憶手段にそれぞれに書き込み、
    前記列重みは前記部分行列の列重みであり、前記行重みは前記部分行列の行重みである
    ことを特徴とする低密度パリティ検査符号の復号装置。
  2. 前記第1記憶手段は、前記検査行列における2つの行のすべての「1」の要素に対応する行処理演算データを、列重み番号と行重み番号との組み合わせに対応させて、同時に2行書き込み可能な2ポートを有する複数のデュアルポートRAMを有する
    ことを特徴とする請求項1記載の復号装置。
  3. 前記第2記憶手段は、前記検査行列における2つの行のすべての「1」の要素に対応する列処理演算データを、列重み番号と行重み番号との組み合わせに対応させて、同時に2行読み出し可能な2ポートを有する複数のデュアルポートRAMを有する
    ことを特徴とする請求項1または2に記載の復号装置。
  4. 受信語のエラー訂正を行う検査行列として、列方向に列重みの2倍数で分割し、行方向に行重みの数で行を分割することにより形成した複数の部分行列の集合であって、前記部分行列の行重みはすべて1であるように構成され、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rは列重み番号)の列重みの合計はすべて1であるように構成された、複数の部分行列の集合を用い、
    受信語データを入力することにより初期化された列処理演算データ第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第1ステップと、
    前記検査行列の「1」の要素に対して、前記第2記憶手段に記憶された列処理演算データを読み出し、列重みの2倍数の並行処理により行処理演算を行い、演算データを第1記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第2ステップと、
    前記検査行列の「1」の要素に対して、前記第1記憶手段に記憶された前記行処理演算データを読み出し、行重みの数の並行処理により列処理演算を行い、演算データを前記第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込むと共に、前記行処理演算データを用いて一時推定語を演算する第3ステップと、
    前記第2ステップと前記第3ステップとをこの順に所定の回数繰り返す第4ステップと、を有し、
    前記列重みは前記部分行列の列重みであり、前記行重みは前記部分行列の行重みである
    ことを特徴とする低密度パリティ検査符号の復号方法。
  5. 受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、
    受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、
    前記行処理演算回路による行処理演算データを記憶する第1記憶手段と、
    前記列処理演算回路による列処理演算データを記憶する第2記憶手段と、
    前記第1記憶手段に記憶された2つのデータのうちのいずれかを選択して出力する選択回路と、を備え、
    前記検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成され、
    前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rはすべての列重み番号の範囲)の列重みの合計はすべて1であるように構成され、
    前記複数の部分行列のうち、行方向に連続した2つの部分行列の行重みの合計はすべて2であるように構成され、
    前記第1記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記行処理演算データを記憶し、
    前記第2記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記列処理演算データを記憶し、
    前記行処理演算回路は、前記第2記憶手段から読み出された列処理演算データを用いて列重みの2倍数の行処理演算を並行処理し、演算データを行重み番号及び列重み番号ごとに、前記第1記憶手段にそれぞれに書き込み、
    前記列処理演算回路は、前記選択回路により選択して出力された前記行処理演算データを用いて行重みの数の列処理演算を並行処理し、演算データを列重み番号及び行重み番号ごとに、前記第2記憶手段にそれぞれに書き込み、
    前記列重みは前記部分行列の列重みであり、前記行重みは前記部分行列の行重みである
    ことを特徴とする低密度パリティ検査符号の復号装置。
  6. 前記第1記憶手段は、前記検査行列の2つの行のすべての「1」の要素に対応する行処理演算データを同時に2行書き込み可能な2ポートを有する複数のデュアルポートRAMを有する
    ことを特徴とする請求項5記載の復号装置。
  7. 前記第2記憶手段は、前記検査行列の2つの行のすべての「1」の要素に対応する列処理演算データを同時に2行読み出し可能な2ポートを有する複数のデュアルポートRAMを有する
    ことを特徴とする請求項5または6に記載の復号装置。
  8. 前記第2記憶手段は、前記行方向に連続した2つの部分行列において、2つの列のすべての「1」の要素に対応する列処理演算データを同時に書き込み可能なデュアルポートRAMを有する
    ことを特徴とする請求項5〜7のいずれか1つに記載の復号装置。
  9. 前記第1記憶手段は、前記行方向に連続した2つの部分行列において、2つの列のすべての「1」の要素に対応する行処理演算データを同時に読み出し可能なデュアルポートRAMを有する
    ことを特徴とする請求項5〜8のいずれか1つに記載の復号装置。
  10. 受信語のエラー訂正を行う検査行列として、列方向に列重みの2倍数で分割し、行方向に行重みの数で行を分割することにより形成した複数の部分行列の集合であって、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rはすべての列重み番号の範囲)の列重みの合計はすべて1であるように構成され、前記複数の部分行列のうち、行方向に連続した2つの部分行列の行重みの合計はすべて2であるように構成された、複数の部分行列の集合を用い、
    受信語データを入力することにより初期化された演算データを第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第1ステップと、
    前記検査行列の「1」の要素に対して、前記第2記憶手段に記憶された列処理演算データを読み出し、列重みの2倍数の並行処理により行処理演算を行い、演算データを第1記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第2ステップと、
    前記検査行列の「1」の要素に対して、前記第1記憶手段に記憶された2つの前記行処理演算データのいずれかを選択して読み出して、行重みの数の並行処理により列処理演算を行い、演算データを前記第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込むと共に、前記行処理演算データを用いて一時推定語を演算する第3ステップと、
    前記第2ステップと前記第3ステップとをこの順に所定の回数繰り返す第4ステップと、を有し、
    前記列重みは前記部分行列の列重みであり、前記行重みは前記部分行列の行重みである
    ことを特徴とする低密度パリティ検査符号の復号方法。
JP2005296994A 2005-10-11 2005-10-11 復号装置および復号方法 Active JP4819470B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005296994A JP4819470B2 (ja) 2005-10-11 2005-10-11 復号装置および復号方法
KR1020060098636A KR100883654B1 (ko) 2005-10-11 2006-10-10 저밀도 패러티 검사 부호의 복호장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005296994A JP4819470B2 (ja) 2005-10-11 2005-10-11 復号装置および復号方法

Publications (2)

Publication Number Publication Date
JP2007110265A JP2007110265A (ja) 2007-04-26
JP4819470B2 true JP4819470B2 (ja) 2011-11-24

Family

ID=38035782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005296994A Active JP4819470B2 (ja) 2005-10-11 2005-10-11 復号装置および復号方法

Country Status (2)

Country Link
JP (1) JP4819470B2 (ja)
KR (1) KR100883654B1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4748007B2 (ja) * 2006-09-12 2011-08-17 富士通株式会社 Ldpc復号器の演算制御データ生成方法及びldpc復号器
JP4755238B2 (ja) * 2008-11-27 2011-08-24 住友電気工業株式会社 復号器
JP5485069B2 (ja) 2010-08-06 2014-05-07 パナソニック株式会社 誤り訂正復号装置及び誤り訂正復号方法
JP5171997B2 (ja) * 2011-06-20 2013-03-27 パナソニック株式会社 復号方法及び復号装置
KR101304570B1 (ko) * 2012-01-30 2013-09-05 연세대학교 산학협력단 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
WO2013140727A1 (ja) 2012-03-19 2013-09-26 パナソニック株式会社 復号装置
KR102002933B1 (ko) 2012-04-09 2019-07-23 삼성전자주식회사 메모리 컨트롤러의 동작 방법과 상기 메모리 컨트롤러를 포함하는 장치들

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
JP2005045735A (ja) * 2003-07-25 2005-02-17 Sony Corp 符号検出装置及び方法、復号装置及び方法、並びに情報処理装置及び方法
WO2005050987A1 (en) 2003-11-20 2005-06-02 Electronics And Telecommunications Research Institute Apparatus and method of decision feedback equalization in terrestrial digital broadcasting receiver
KR20050071842A (ko) * 2004-01-03 2005-07-08 이광재 반 집합 대수 엘디피씨 부호의 구성 방법 및 부호화 장치

Also Published As

Publication number Publication date
KR100883654B1 (ko) 2009-02-18
JP2007110265A (ja) 2007-04-26
KR20070040314A (ko) 2007-04-16

Similar Documents

Publication Publication Date Title
US11323134B2 (en) Encoding method and device and decoding method and device for structured LDPC
KR101789959B1 (ko) 구조적 ldpc의 인코딩 방법, 디코딩 방법, 인코딩 장치 및 디코딩 장치
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US10511326B2 (en) Systems and methods for decoding error correcting codes
KR101203340B1 (ko) 터보 ldpc 디코딩
US8347170B2 (en) Method and apparatus for performing decoding using LDPC code
US7373581B2 (en) Device, program, and method for decoding LDPC codes
JP4819470B2 (ja) 復号装置および復号方法
US11115051B2 (en) Systems and methods for decoding error correcting codes
CA2798963C (en) Apparatus and method for layered decoding in a communication system using low-density partiy-check codes
US20100269011A1 (en) Apparatus and method for decoding low density parity check code using prototype matrix
WO2004019268A1 (en) Methods and apparatus for encoding ldpc codes
JPWO2014069464A1 (ja) 誤り訂正符号化方法および誤り訂正符号化装置
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
US20110179337A1 (en) Memory utilization method for low density parity check code, low density parity check code decoding method and decoding apparatus thereof
US8214717B2 (en) Apparatus and method for decoding LDPC code based on prototype parity check matrixes
US10727869B1 (en) Efficient method for packing low-density parity-check (LDPC) decode operations
WO2017193614A1 (zh) 结构化ldpc的编码、译码方法及装置
US11075650B1 (en) Sub-matrix reduction for quasi-cyclic LDPC codes
JP4492352B2 (ja) 復号装置及びその方法並びにプログラム
KR100678521B1 (ko) 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110901

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4819470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250