JP2007110265A - Decoding apparatus and decoding method - Google Patents

Decoding apparatus and decoding method Download PDF

Info

Publication number
JP2007110265A
JP2007110265A JP2005296994A JP2005296994A JP2007110265A JP 2007110265 A JP2007110265 A JP 2007110265A JP 2005296994 A JP2005296994 A JP 2005296994A JP 2005296994 A JP2005296994 A JP 2005296994A JP 2007110265 A JP2007110265 A JP 2007110265A
Authority
JP
Japan
Prior art keywords
column
row
processing
storage means
data
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.)
Granted
Application number
JP2005296994A
Other languages
Japanese (ja)
Other versions
JP4819470B2 (en
Inventor
Eiji Sakakibara
栄二 榊原
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/en
Priority to KR1020060098636A priority patent/KR100883654B1/en
Publication of JP2007110265A publication Critical patent/JP2007110265A/en
Application granted granted Critical
Publication of JP4819470B2 publication Critical patent/JP4819470B2/en
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

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a decoding apparatus with a reduced circuit scale using a low density parity check code suitable for correcting an error caused in a transmission path for high speed transmission of data and to provide a decoding method. <P>SOLUTION: A check matrix is configured as a set of a plurality of partial matrices the number in the column direction of which is an integer twice the number of column weights and the number in the row direction of which is an integer equal to the number of row weights, wherein the column weight is the number of elements in one column whose value is "1", and the row weight is the number of elements in one row whose value is "1", the row weight of the partial matrices is configured to be all "1", and the sum of the column weight of the (2r-1)th partial matrix and the 2r-th partial matrix (wherein r is a column weight number) which are consecutive in the column direction of the check matrix is configured to be all "1". First and second storage means respectively store row processing arithmetic data and column processing arithmetic data by each same row weight number and each same column weight number as to the elements whose value is "1" in the check matrix. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、復号装置および復号方法に関し、特に、低密度パリティ検査符号のデータの高速伝送を行う伝送路において生じるエラーの訂正を行うのに好適な復号装置および復号方法に関する。   The present invention relates to a decoding apparatus and a decoding method, and more particularly, to a decoding apparatus and a decoding method suitable for correcting errors that occur in a transmission line that performs high-speed transmission of low-density parity check code data.

携帯電話に代表される移動体通信や無線LANなどの通信分野に対する要求は高度化しており、そのための開発および研究が急速に進められている。特に、これらの分野においては、データ転送速度のより高速化が要求されている。データの高速伝送を行う伝送路においてはエラーを生じやすいために、低密度パリティ検査符号などを用いてエラー検出及び訂正を行う誤り訂正技術の開発および研究が盛んに行われている。   The demand for communication fields such as mobile communication typified by mobile phones and wireless LANs has been advanced, and development and research for that purpose have been rapidly advanced. In particular, in these fields, higher data transfer rates are required. Since transmission lines that perform high-speed data transmission are prone to errors, development and research of error correction techniques that perform error detection and correction using a low-density parity check code and the like are being actively conducted.

一般に、このような通信システムにおいては、送信したい情報データが生成行列により符号化され、さらに変調後送信される。受信された符号語は復調された後、検査行列により復号されて、情報データに復元される。   In general, in such a communication system, information data to be transmitted is encoded by a generator matrix and further transmitted after modulation. The received codeword is demodulated and then decoded by a check matrix to be restored to information data.

ここで用いられる低密度パリティ検査(LDPC:Low Density Parity Check)符号とは、「1」の要素が非常に少ない検査行列によって定義される線形符号を言う。また、LDPC符号は2元に限定されることはないが、以下の説明においては簡略化のために2元LDPC符号を用いる。   The low density parity check (LDPC) code used here refers to a linear code defined by a check matrix having very few “1” elements. In addition, although the LDPC code is not limited to binary, in the following description, a binary LDPC code is used for simplification.

このLDPC符号とsum−product復号法との組み合わせにより得られる復号特性は、ターボ符号の性能に匹敵し、符号長が長い場合にはむしろ上回る。すなわち、符号長が長い場合には、周波数利用効率(ビット/秒/Hz)の限界であるシャノン限界に非常に近い性能が得られる。この「シャノン限界」とは、伝送路の周波数帯域とEb/No(ビット当り電力密度対雑音電力密度比をdBで表わす)で決定される。LDPC符号の他の利点として、符号長および符号化率を様々に構成できる柔軟性、良好なブロック誤り率特性、エラーフロア現象の少なさなどがある。   The decoding characteristics obtained by the combination of the LDPC code and the sum-product decoding method are comparable to the performance of the turbo code, and rather better when the code length is long. That is, when the code length is long, performance very close to the Shannon limit, which is the limit of the frequency utilization efficiency (bit / second / Hz), can be obtained. This “Shannon limit” is determined by the frequency band of the transmission line and Eb / No (the power density per bit to noise power density ratio is expressed in dB). Other advantages of the LDPC code include flexibility to configure various code lengths and coding rates, good block error rate characteristics, and low error floor phenomenon.

ところで、上記検査行列を用いた復号には、演算回路、メモリ回路などから構成される復号装置が用いられる(例えば特許文献1)。システム要求の高度化に伴い演算データを一時記憶させるメモリ回路規模は増大する。回路規模の縮小のために、メモリ回路としてはレジスタよりもRAM(Random Access Memory)が適している。
特開2004−364233号公報
By the way, for decoding using the parity check matrix, a decoding device including an arithmetic circuit, a memory circuit, etc. is used (for example, Patent Document 1). As system requirements become higher, the memory circuit scale for temporarily storing operation data increases. In order to reduce the circuit scale, a RAM (Random Access Memory) is more suitable as a memory circuit than a register.
JP 2004-364233 A

しかしながら、RAMを用いた場合、検査行列へのアクセスの際にデータの並べ替えが必要となる。データ並べ替えを行うには、多入力の選択回路を必要とするために、このままでは回路規模の縮小が不十分であり、復号装置のサイズの増大、処理速度の低下及び消費電力の増加などの点で改善すべき余地がある。   However, when RAM is used, data rearrangement is required when accessing the check matrix. In order to perform data rearrangement, since a multi-input selection circuit is required, the circuit scale is not sufficiently reduced as it is, and the size of the decoding device is increased, the processing speed is decreased, and the power consumption is increased. There is room for improvement.

本発明は、かかる課題の認識に基づいてなされたものであり、その目的は、データの高速伝送を行う伝送路において生じるエラーの訂正を行うのに好適な、回路規模が縮小された、低密度パリティ検査符号の復号装置および復号方法を提供することにある。   The present invention has been made on the basis of recognition of such a problem, and an object of the present invention is to achieve a low-density circuit with a reduced circuit scale suitable for correcting an error occurring in a transmission line for performing high-speed data transmission. An object of the present invention is to provide a parity check code decoding apparatus and decoding method.

本発明によれば、受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、
受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、前記行処理演算回路による行処理演算データを記憶する第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記憶手段から列処理に必要な行処理演算データを読み出すことができる。
このようにデータを並び替えずに行処理演算及び列処理演算をそれぞれ並行処理できるので、従来必要とされた選択回路が省略可能となり、回路規模を縮小することができる。
According to the present invention, a row processing arithmetic circuit that performs a row processing operation using a check matrix that performs error correction of a received word;
A column processing arithmetic circuit for executing column processing arithmetic using the check matrix for performing error correction of a received word; first storage means for storing row processing arithmetic data by the row processing arithmetic circuit; and the column processing arithmetic circuit. A second storage means for storing column processing calculation data, wherein the parity check matrix is divided by a multiple of a column weight in the column direction and a set of a plurality of submatrices divided by the number of row weights in the row direction The row weights of the sub-matrices are all set to 1, and the column weight of the (2r-1) -th sub-matrix and the 2r-th sub-matrix (provided that r is a column weight number) and the total column weights are all set to 1, and the first storage means sets the element of “1” of the parity check matrix for each of the same row weight number and the same column weight number. Storing the row processing operation data; The second storage means stores the column processing calculation data for each of the same row weight number and the same column weight number for the element “1” of the parity check matrix, and the row processing calculation circuit includes the second storage means. The column processing operation data read from the column processing data is used for parallel processing of column processing twice the column weight, and the operation data is written to the first storage unit for each row weight number and column weight number. The column processing arithmetic circuit performs the parallel processing of the column processing calculation for the number of row weights using the row processing calculation data read from the first storage means, and calculates the calculation data for each column weight number and row weight number. A low density parity check code decoding apparatus is provided, wherein the low density parity check code is written to each of the second storage means.
According to this decoding apparatus, the parity check matrix is divided into a multiple of column weights in the column direction and configured as a set of a plurality of submatrices divided in the row direction by the number of row weights. The weights are all 1, and the sum of the column weights of the (2r-1) th submatrix and the column weights of the 2rth submatrix that are continuous in the column direction is all 1.
The row processing operation circuit and the column processing operation circuit execute a row processing operation and a column processing operation that perform error correction of the received word using this check matrix, respectively, and the results are used as row processing operation data and column processing operation data. The first storage means and the second storage means are written for each row weight number and column weight number. In the first storage means and the second storage means, the row processing calculation data and the column processing calculation data are stored for each of the same row weight number and the same column weight number for the element “1” of the parity check matrix. Yes.
Here, the row processing arithmetic circuit reads the column processing arithmetic data from the second storage means, and performs parallel processing of the row processing arithmetic twice the column weight. At this time, since the column processing calculation data is written in the second storage means for each row weight number and column weight number by the column processing calculation circuit, the second processing means does not rearrange the data in the row processing calculation circuit. Column processing operation data necessary for row processing can be read out from the.
In addition, the column processing arithmetic circuit reads out the row processing arithmetic data from the first storage means and performs the parallel processing of the column processing arithmetic of the row weight number. At this time, the row processing arithmetic data is also processed by the row processing arithmetic circuit. Since each column weight number is written in the first storage means, the row processing calculation data necessary for the column processing can be read from the first storage means without rearranging the data.
As described above, since the row processing operation and the column processing operation can be performed in parallel without rearranging the data, the conventionally required selection circuit can be omitted, and the circuit scale can be reduced.

また、本発明によれば、受信語のエラー訂正を行う検査行列として、列方向に列重みの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ステップ)、データを並び替えずにすむ。
このように行演算処理及び列演算処理の並行処理に際して、データの並び替えが不要であるので、従来必要とされた選択回路が省略可能となり、回路規模を縮小することができる。
Further, according to the present invention, a plurality of parts formed by dividing the row by the number of row weights in the row direction and dividing the row by the number of row weights in the row direction as a check matrix for error correction of received words A set of matrices, wherein the row weights of the sub-matrices are all set to 1, and the column weight of the (2r-1) th sub-matrix and the 2r-th sub-matrix that are continuous in the column direction of the parity check matrix (Where r is the column weight number) and the total of the column weights is set to 1, and a set of a plurality of sub-matrices is used, and the operation data initialized by inputting the received word data is the first A first step of writing to the storage means for each row weight number and column weight number, and reading the column processing operation data stored in the second storage means for the element “1” of the parity check matrix; By parallel processing of twice the column weight A second step of performing a processing operation and writing the operation data to the first storage unit for each row weight number and column weight number, and storing the element of “1” in the parity check matrix in the first storage unit The row processing calculation data read out, column processing calculation is performed by parallel processing of the number of row weights, and the calculation data is written in the second storage means for each row weight number and column weight number. A third step of calculating a temporary estimated word using calculation data, a fourth step of repeating the second step and the third step a predetermined number of times in this order;
A low-density parity check code decoding method is provided.
According to this decoding method, the parity check matrix is divided as a multiple of the column weights in the column direction and is configured as a set of a plurality of submatrices divided by the number of row weights in the row direction. The weights are all 1, and the sum of the column weights of the (2r-1) th submatrix and the column weights of the 2rth submatrix that are continuous in the column direction is all 1.
First, in the first step, the received word data is written to the second storage means as initialized column processing calculation data. At this time, the initialized column processing calculation data is stored in the second storage unit for each identical row weight number and identical column weight number. Thereby, in the next second step, the column processing calculation data is read from the second storage means without rearranging the data, and the row processing of twice the column weight number is performed for the element “1” of the check matrix. Operations can be processed in parallel.
Then, the parallel processing result of the second step is stored in the first storage unit for each of the same row weight number and the same column weight number as row processing calculation data. As a result, in the next third step, the row processing calculation data is read from the first storage means without rearranging the data, and the column processing calculation of the row weight number is performed in parallel on the element “1” of the check matrix. It can be processed. In addition, the temporary estimated word can be calculated using the row processing calculation data read from the first storage means.
Then, the parallel processing result in the third step is stored in the second storage means for each of the same row weight number and the same column weight number as column processing calculation data. Thereby, after that, even if the parallel processing of the row processing operation and the column processing operation is repeatedly executed a predetermined number of times (fourth step), the data need not be rearranged.
In this way, in the parallel processing of the row arithmetic processing and the column arithmetic processing, it is not necessary to rearrange the data, so that the conventionally required selection circuit can be omitted, and the circuit scale can be reduced.

また、本発明によれば、受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、前記行処理演算回路による行処理演算データを記憶する第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記載の復号装置と同様にデータの並び替えは不要である。
この結果、選択回路は列処理演算用にのみ設ければよく、従来よりも必要な選択回路数を減数することができ、回路規模を縮小できる。
In addition, according to the present invention, a row processing arithmetic circuit that performs a row processing operation using a check matrix that performs error correction on a received word, and a column processing operation that uses the check matrix that performs error correction on a received word. Column processing arithmetic circuit, first storage means for storing row processing arithmetic data by the row processing arithmetic circuit, second storage means for storing column processing arithmetic data by the column processing arithmetic circuit, and the first storage means A selection circuit that selects and outputs one of the two data stored in the check matrix, and the parity check matrix is divided by a multiple of the column weight in the column direction and the number of row weights in the row direction. The column weights of the (2r-1) th submatrix and the 2rth submatrix that are configured as a set of a plurality of divided submatrices and continuous in the column direction of the parity check matrix (where r is all column weight numbers) The total column weights 1 and the sum of the row weights of two sub-matrices continuous in the row direction among the plurality of sub-matrices is all 2, and the first storage means includes the parity check matrix The row processing calculation data is stored for each of the same row weight number and the same column weight number for the element of “1”, and the second storage means stores the same row weight number for the element of “1” of the parity check matrix. The column processing calculation data is stored for each column weight number, and the row processing calculation circuit uses the column processing calculation data read from the second storage means to perform a row processing calculation of twice the column weight. Parallel processing is performed, and operation data is written to the first storage unit for each row weight number and column weight number, and the column processing operation circuit selects the row processing operation data selected and output by the selection circuit. Use line weight There is provided a low-density parity check code decoding apparatus, wherein the number of column processing operations are processed in parallel, and the operation data is written in the second storage means for each column weight number and row weight number. .
2. The decoding apparatus according to claim 1, wherein the sum of the row weights of two sub-matrices in which the parity check matrix is continuous in the row direction is all 2, and has a higher degree of freedom than the parity check matrix in the decoding apparatus according to claim 1. Making the design easier.
By using the check matrix having such a configuration, in order to perform the column processing calculation of the row weight number in parallel in the column processing calculation circuit, the row processing necessary for the column processing calculation from the first storage means is performed by the selection circuit. The arithmetic data is selected, that is, the data must be rearranged. However, in order to perform the row processing operation of twice the column weight in parallel in the row processing arithmetic circuit, the data as in the decoding device according to claim 1 is used. There is no need to rearrange.
As a result, the selection circuit only needs to be provided for column processing operation, and the number of selection circuits required than before can be reduced, and the circuit scale can be reduced.

また、本発明によれば、受信語のエラー訂正を行う検査行列として、列方向に列重みの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と同様にデータの並び替えは不要である。
この結果、選択回路は列処理演算用にのみに設ければよく、従来よりも必要な選択回路数を減数することができ、回路規模を縮小できる。
Further, according to the present invention, a plurality of parts formed by dividing the row by the number of row weights in the row direction and dividing the row by the number of row weights in the row direction as a check matrix for error correction of received words A set of matrices, the column weights of the (2r-1) th submatrix and the 2rth submatrix (where r is a range of all column weight numbers) consecutive in the column direction of the parity check matrix Of the plurality of sub-matrices configured such that the sum of the row weights of two sub-matrices consecutive in the row direction is all 2 among the plurality of sub-matrices. Using sets,
A first step of writing operation data initialized by inputting received word data into the second storage means for each row weight number and column weight number, and for the element “1” of the parity check matrix The column processing calculation data stored in the second storage means is read out, row processing calculation is performed by parallel processing of twice the column weight, and the calculation data is respectively stored in the first storage means for each row weight number and column weight number. For the second step of writing to the element and the “1” element of the parity check matrix, one of the two row processing calculation data stored in the first storage means is selected and read, and the number of row weights Column processing calculation is performed by parallel processing, and calculation data is written to the second storage unit for each row weight number and column weight number, and a temporary estimated word is calculated using the row processing calculation data. 3 and step, low density parity check decoding process of a code characterized by comprising a fourth step of repeating a predetermined number of times and said third step and said second step in this order is provided.
5. In this decoding method, the sum of row weights of two sub-matrices in which the parity check matrix is continuous in the row direction is all 2, and the degree of freedom is higher than that of the parity check matrix in the decoding method according to claim 4. Making the design easier.
By using the check matrix having such a configuration, in order to perform the column processing calculation of the row weight number in the third step in parallel, the row processing calculation data necessary for the column processing calculation is selected from the first storage means. That is, data rearrangement is required. However, in order to perform parallel processing of row processing twice the column weight in the row processing operation of the second step, data rearrangement is not required as in the fourth aspect. is there.
As a result, the selection circuit need only be provided for column processing operations, and the number of selection circuits required can be reduced as compared with the conventional case, and the circuit scale can be reduced.

本発明によれば、データの高速伝送を行う伝送路において生じるエラーの訂正を行うのに好適な、回路規模が縮小された、低密度パリティ検査符号の復号装置および復号方法が提供される。   According to the present invention, there is provided a low-density parity check code decoding apparatus and decoding method with a reduced circuit scale, suitable for correcting errors occurring in a transmission path for high-speed data transmission.

以下、本発明の実施の形態について、図面を参照しつつ説明する。
図1は、本発明の第1具体例にかかる低密度パリティ検査(LDPC)符号の復号装置24のブロック図である。受信語データはシリアル−パラレル変換回路52、入力バッファ54を通り、制御部40へ入力された受信語有効信号により制御された、列処理演算回路44及び一時推定語演算回路50へ入力される。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram of a low density parity check (LDPC) code decoding apparatus 24 according to a first specific example of the present invention. The received word data passes through the serial-parallel conversion circuit 52 and the input buffer 54, and is input to the column processing arithmetic circuit 44 and the temporary estimated word arithmetic circuit 50 controlled by the received word valid signal input to the control unit 40.

列処理演算回路44で演算された列処理演算データは、第2記憶手段46に並列処理により書き込まれる(但し初回は、初期化ステップである)。行処理演算回路42は、第2記憶手段46のデータを並列処理により読み出し、行処理演算を行う。行処理演算データは、第1記憶手段48へ並列処理により書き込まれる。   The column processing calculation data calculated by the column processing calculation circuit 44 is written in the second storage means 46 by parallel processing (however, the first time is an initialization step). The row processing arithmetic circuit 42 reads the data in the second storage means 46 by parallel processing and performs row processing arithmetic. The row processing calculation data is written to the first storage means 48 by parallel processing.

この行処理演算及び列処理演算が、所定の回数だけ繰り返されたのち、一時推定語演算回路50にて一時推定語が演算されて、出力バッファ56、パラレル−シリアル変換回路58を経由して復号語データとして取り出される。   After the row processing operation and the column processing operation are repeated a predetermined number of times, the temporary estimation word calculation circuit 50 calculates the temporary estimation word and decodes it via the output buffer 56 and the parallel-serial conversion circuit 58. Retrieved as word data.

図2は、図1に例示された本具体例の復号装置24が組み込まれた受信器を表すブロック図である。この受信器は、例えば、携帯電話などの移動無線機器やPDA(Personal Digital Data Assistant)に用いられる。アンテナ20により受信された信号は、復調回路22にて復調され、本具体例による復号装置24により復号される。   FIG. 2 is a block diagram showing a receiver in which the decoding device 24 of this specific example illustrated in FIG. 1 is incorporated. This receiver is used, for example, for mobile wireless devices such as mobile phones and PDAs (Personal Digital Data Assistants). The signal received by the antenna 20 is demodulated by the demodulation circuit 22 and decoded by the decoding device 24 according to this specific example.

さらに、この受信器は、復号された映像信号や音声信号などのデータを処理する映像/音声信号処理回路28、復号装置24や映像/音声信号処理回路28を制御するCPU(Central Processing Unit)26,信号処理された音声信号を外部に発音するスピーカ34、信号処理された映像信号を表示するモニタ32などを備えている。   Further, the receiver includes a video / audio signal processing circuit 28 that processes data such as a decoded video signal and audio signal, and a CPU (Central Processing Unit) 26 that controls the decoding device 24 and the video / audio signal processing circuit 28. , A speaker 34 for generating a signal-processed audio signal to the outside, a monitor 32 for displaying the signal-processed video signal, and the like.

次に、本具体例にかかるLDPC符号の復号に用いる検査行列について詳細に説明する。 図3は、本具体例に用いられるHで表される検査行列10の基本構成を表す。検査行列10は、M行×N列で構成される。また、行はPm個に分割され、列はPn個に分割される。この結果、検査行列10は、(M/Pm)行×(N/Pn)列で構成され、Hsub[i][j]で表される部分行列12がPm×Pn個が集合したと取り扱うことができる。ここで、Pmは列重みを2倍した整数とするので、偶数値となる。また、Pnは、行重みと同一の整数とする。   Next, the parity check matrix used for decoding the LDPC code according to this example will be described in detail. FIG. 3 shows a basic configuration of the parity check matrix 10 represented by H used in this specific example. The parity check matrix 10 includes M rows × N columns. Further, the row is divided into Pm pieces, and the column is divided into Pn pieces. As a result, the parity check matrix 10 is configured with (M / Pm) rows × (N / Pn) columns, and is handled as Pm × Pn sub-matrices 12 represented by Hsub [i] [j]. Can do. Here, since Pm is an integer obtained by doubling the column weight, it is an even value. Also, Pn is the same integer as the row weight.

さらに、本具体例においては、行方向に沿って奇数である(2r−1)番目と偶数である2r番目(但し、r=1,2、・・・、Pm/2)の部分行列Hsub[2r−1][c]及びHsub[2r][c](但し、c=1,2、・・・、Pn)とにおいて、列重みの和を1とする。一方、各部分行列における行重みはそれぞれに1とする。なお行重みとは、ひとつの行における「1」の要素の数を表す。同様に、列重みとは、ひとつの列における「1」の要素の数を表す。   Further, in this specific example, the (2r−1) th and odd 2rth (where r = 1, 2,..., Pm / 2) submatrix Hsub [ 2r-1] [c] and Hsub [2r] [c] (where c = 1, 2,..., Pn), the sum of column weights is 1. On the other hand, the row weight in each submatrix is set to 1. The row weight represents the number of “1” elements in one row. Similarly, the column weight represents the number of “1” elements in one column.

図4は、部分行列12の一例をより具体的に表す図である。Hsub[2r−1][c]およびHsub[2r][c]で表される、列方向に沿って連続した2個の部分行列12の各要素が、それぞれに例示される。「列方向に沿って連続する」ことを以下では、「縦に連続する」と表現する。行重みはそれぞれに1とされ、列数はN/Pnとされる。また、列重みは、2個の部分行列のいずれかの列において1とされ、縦に連続した2個の部分行列の列重みの和は1となる。   FIG. 4 is a diagram illustrating an example of the submatrix 12 more specifically. Each element of the two sub-matrices 12 represented by Hsub [2r-1] [c] and Hsub [2r] [c] that are continuous along the column direction is illustrated. Hereinafter, “continuous along the column direction” is expressed as “continuous vertically”. Each row weight is set to 1, and the number of columns is set to N / Pn. Also, the column weight is 1 in any column of the two sub-matrices, and the sum of the column weights of the two vertically continuous sub-matrices is 1.

次に、このような検査行列10を用いてエラー検出及びエラー訂正を行うための演算式を理解するのに必要なタナーグラフについて説明する。
図5は、M行×N列なる検査行列におけるタナーグラフであり、N個のビット・ノード(○印で表す)とM個のチェック・ノード(□印で表す)とからなる。そして、検査行列において、「1」なる要素の行と列に対応するノード間を線で結ぶ。LDPC符号の復号は、このようなタナーグラフにおけるビット・ノード、チェック・ノード間のメッセージである対数尤度比(LLR:Log-Likelihood Ratio)のやりとりを繰り返すことにより復号を行う。
Next, a Tanner graph necessary for understanding an arithmetic expression for performing error detection and error correction using such a check matrix 10 will be described.
FIG. 5 is a Tanner graph in a parity check matrix of M rows × N columns, and is composed of N bit nodes (represented by ◯ marks) and M check nodes (represented by □ marks). In the parity check matrix, the nodes corresponding to the row and column of the element “1” are connected by a line. The decoding of the LDPC code is performed by repeatedly exchanging a log likelihood ratio (LLR) which is a message between a bit node and a check node in such a Tanner graph.

次に、このようなタナーグラフを用いて行う演算ステップについて説明する。検査行列10における要素をHmnと表し、m行目において「1」となる要素を有する列番号の集合N(m)、及びn列目において「1」となる要素を有する行番号の集合M(n)を以下のように定義する。

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

また、ビット・ノードからチェック・ノードへ送られるメッセージをZmnとし、チェック・ノードからビット・ノードへ送られるメッセージをLmnと定義する。さらに、受信語からのメッセージをynと定義する。
Next, calculation steps performed using such a Tanner graph will be described. An element in the parity check matrix 10 is represented as Hmn, a set N (m) of column numbers having an element “1” in the m-th row, and a set M of row numbers having an element “1” in the n-th column ( n) is defined as follows.

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

Further, a message sent from the bit node to the check node is defined as Zmn, and a message sent from the check node to the bit node is defined as Lmn. Further, a message from the received word is defined as yn.

まず、図6は、行処理演算におけるノード間のやり取りを表すタナーグラフである。チェック・ノードmからビット・ノードN(m)=n1へ渡されるメッセージLmn1は、当該チェック・ノードmに結びついているビット・ノードのうち、当該メッセージが渡されるビット・ノードn1を除く他のビット・ノードからのメッセージ(Zmn2,Zmn3,・・・)から演算される。このときの演算式の一例を以下に示す。   First, FIG. 6 is a Tanner graph showing exchange between nodes in the row processing calculation. The message Lmn1 passed from the check node m to the bit node N (m) = n1 is a bit node connected to the check node m other than the bit node n1 to which the message is passed -It is calculated from the messages (Zmn2, Zmn3, ...) from the nodes. An example of the arithmetic expression at this time is shown below.

Figure 2007110265

tanh関数を用いた演算式は、sgn関数のproductとmin関数との積として近似することができる。
Figure 2007110265

An arithmetic expression using the tanh function can be approximated as a product of the product of the sgn function and the min function.

ここで、sgn関数は、以下の(2)式で示される。なお、演算式は(1)式に限定されることは無く、例えば、Gallagerのf関数などとすることができる。   Here, the sgn function is expressed by the following equation (2). The arithmetic expression is not limited to the expression (1), and may be, for example, Gallager's f function.

Figure 2007110265
Figure 2007110265

また、図7は、列処理演算におけるノード間のやりとりを表すタナーグラフである。ビット・ノードnからチェック・ノードm1へ渡されるメッセージZm1nは、当該ビット・ノードnに結びついているチェック・ノードのうち、当該メッセージが渡されるチェック・ノードm1を除く他のチェック・ノードからのメッセージ(Lm2n,Lm3n、・・・)から演算される。このときの演算式を、以下に示す。   FIG. 7 is a Tanner graph showing exchanges between nodes in the column processing operation. The message Zm1n passed from the bit node n to the check node m1 is a message from a check node other than the check node m1 to which the message is passed among the check nodes linked to the bit node n. (Lm2n, Lm3n,...) An arithmetic expression at this time is shown below.

Figure 2007110265
Figure 2007110265

Zmnは、Lm'nのsumと受信語ynとの和で表される。LDPC符号の復号処理は、上記のような処理を繰り返すので「sum−product復号法」とも呼ばれる。この場合、時間計算量は符号長について線形時間であり、この復号アルゴリズムは本質的に並列アルゴリズムであるために並列分散型ハードウェア実装に適している。   Zmn is represented by the sum of the sum of Lm′n and the received word yn. The LDPC code decoding process is also referred to as a “sum-product decoding method” because the above process is repeated. In this case, the time complexity is linear time with respect to the code length, and since this decoding algorithm is essentially a parallel algorithm, it is suitable for a parallel and distributed hardware implementation.

次に、復号処理の流れを説明する。
図8は、本具体例にかかる復号方法を表わすフロー図である。まず、符号語を受信する(S100)。次に、反復回数をカウントするカウンタTをT=1に初期化し、Hmn=1であるすべての要素に対して、受信語ynを用いてZmn=ynのように初期化する(S102)。より具体的には、第1記憶手段48から列処理演算回路44への入力データをすべて「0」とする。こうすると、列処理演算回路44からの出力が受信語ynのみとなり、第2記憶手段46のデータを受信語に初期化できる。
Next, the flow of decoding processing will be described.
FIG. 8 is a flowchart showing the decoding method according to this example. First, a code word is received (S100). Next, a counter T for counting the number of iterations is initialized to T = 1, and all elements with Hmn = 1 are initialized to Zmn = yn using the received word yn (S102). More specifically, all input data from the first storage means 48 to the column processing arithmetic circuit 44 is set to “0”. In this way, the output from the column processing arithmetic circuit 44 is only the received word yn, and the data in the second storage means 46 can be initialized to the received word.

次に、第2記憶手段46から列処理演算データを読み出し、行処理演算を列重みの2倍数で並行処理を行い、検査行列10における「1」の要素に対応してチェック・ノードからビット・ノードへ渡される演算データを第1記憶手段48を構成する第1メモリ素子群に行重み番号及び列重み番号ごとにそれぞれ記憶させる。この行処理演算は、(1)式を用いてすべてのm、nに対して実行される(S104)。以下において、「行処理」とは、列処理演算データの読み出し、行処理演算、第1記憶手段への書き込みを含むものとする。また、「行重み番号」とは、検査行列の同一行の「1」なる要素に対して、当該要素の列番号の小さい順に1から割り振った番号である。同様に、「列重み番号」とは、検査行列の同一列の「1」なる要素に対して、当該要素の行番号の小さい順に1から割り振った番号である。   Next, the column processing calculation data is read from the second storage means 46, the row processing calculation is performed in parallel with a multiple of the column weight, and the bit ··· from the check node corresponding to the element “1” in the check matrix 10 The operation data passed to the node is stored in the first memory element group constituting the first storage means 48 for each row weight number and column weight number. This row processing operation is executed for all m and n using equation (1) (S104). In the following, “row processing” includes reading column processing operation data, row processing operation, and writing to the first storage means. The “row weight number” is a number assigned from 1 to the element “1” in the same row of the parity check matrix in ascending order of the column number of the element. Similarly, the “column weight number” is a number assigned from 1 to the element “1” in the same column of the parity check matrix in ascending order of the row number of the element.

次に、第1記憶手段48から行処理演算データを読み出し、列処理演算を行重みの数で並行処理を行い、検査行列における「1」の要素に対応してビット・ノードからチェック・ノードへ渡される演算データを第2記憶手段46を構成する第2メモリ素子群に行重み番号及び列重み番号ごとにそれぞれ記憶させる。この列処理演算は、(3)式を用いてすべてのm,nに対して実行される。また、一時推定語cnの演算を(4)式を用いてすべてのm、nに対して実行する(S106)。以下において、「列処理」とは、行処理演算データの読み出し、列処理演算、第2記憶手段への書き込みを含むものとする。   Next, the row processing operation data is read from the first storage means 48, the column processing operation is performed in parallel with the number of row weights, and from the bit node to the check node corresponding to the element “1” in the check matrix. The passed calculation data is stored in the second memory element group constituting the second storage means 46 for each row weight number and column weight number. This column processing operation is executed for all m and n using equation (3). Further, the calculation of the temporary estimated word cn is executed for all m and n using the equation (4) (S106). In the following, “column processing” includes reading of row processing operation data, column processing operation, and writing to the second storage means.

Figure 2007110265

次に、反復回数判定を行う(S108)。ここでカウンタT<itであれば、カウンタTをインクレメントして、行処理演算を行うステップS104へ戻る。この繰り返しサイクルは、T=itとなるまで継続される。ここで、例えば,it=50とすることができるがこれに限定される必要はなく、収束が早ければitはより小であっても良い。T=itで復号処理は終了する(S110)。
Figure 2007110265

Next, the number of iterations is determined (S108). Here, if the counter T <it, the counter T is incremented and the process returns to step S104 where the row processing calculation is performed. This repeated cycle continues until T = it. Here, for example, it can be set to 50, but it is not necessary to be limited to this, and it may be smaller if convergence is quick. The decoding process ends when T = it (S110).

最終的に、エラー訂正がなされた一時推定語cnが得られる。
ここで、再び図1に例示される復号装置24に戻って、その構成要素に関し補足説明を行う。受信語データはまずシリアル−パラレル変換を行うS/P回路52へ入力される。入力バッファ54は、受信語を記憶するメモリから構成される。この入力バッファ54は、列処理演算において並列処理ができるように、ひとつの受信語から列処理演算に必要なデータを複数同時に出力できるように構成される。具体的には、入力バッファへの書き込み時に、データの並べ替えを行う。
Finally, the temporary estimated word cn subjected to error correction is obtained.
Here, it returns to the decoding apparatus 24 illustrated in FIG. 1 again, and it demonstrates supplementarily regarding the component. The received word data is first input to the S / P circuit 52 that performs serial-parallel conversion. The input buffer 54 includes a memory that stores received words. The input buffer 54 is configured to be able to simultaneously output a plurality of data necessary for the column processing operation from one received word so that parallel processing can be performed in the column processing operation. Specifically, the data is rearranged when writing to the input buffer.

出力バッファ56は、一時推定語演算データを記憶するメモリにより構成される。この一時推定語は、パラレル−シリアル変換を行うP/S回路58へ入力される。制御部40は、入力バッファ54、第1記憶手段48、第2記憶手段46、行処理演算回路42列処理演算回路44、出力バッファ56などの動作を制御する。
なお、行処理演算に必要なデータの総ビット数は、
量子化ビット数×行重み×Pm(列重みの2倍)
と表わされる。
The output buffer 56 is configured by a memory that stores temporary estimated word calculation data. This temporary estimated word is input to the P / S circuit 58 that performs parallel-serial conversion. The control unit 40 controls operations of the input buffer 54, the first storage unit 48, the second storage unit 46, the row processing arithmetic circuit 42, the column processing arithmetic circuit 44, the output buffer 56, and the like.
Note that the total number of bits of data required for the row processing operation is
Quantization bit number x row weight x Pm (twice the column weight)
It is expressed as

また、列処理演算に必要な第1記憶手段48から読み出されるデータの総ビット数は、
量子化ビット数×列重み×Pn(行重み)
と表わされる。
The total number of bits of data read from the first storage means 48 required for the column processing calculation is
Quantization bit number x column weight x Pn (row weight)
It is expressed as

さらに、一時推定語演算に必要な第1記憶手段48からの読み出しデータの総ビット数は、
量子化ビット数×列重み×Pn(行重み)
と表わされる。
Furthermore, the total number of bits of read data from the first storage means 48 required for the temporary estimated word calculation is
Quantization bit number x column weight x Pn (row weight)
It is expressed as

さらに、入力バッファ54からの読み出しデータの総ビット数は、
量子化ビット数×Pn(行重み)
と表わされる。
Further, the total number of bits of read data from the input buffer 54 is
Quantization bit number x Pn (row weight)
It is expressed as

次に、行処理演算回路42、第1記憶手段48、列処理演算回路44、第2記憶手段46間で実行されるデータの受け渡しに関して、より詳細に説明をする。ここで第1記憶手段48、及び第2記憶手段46を構成するメモリ素子群としては、例えばデュアルポートRAMを用いることができる。   Next, data transfer executed between the row processing arithmetic circuit 42, the first storage means 48, the column processing arithmetic circuit 44, and the second storage means 46 will be described in more detail. Here, as a memory element group constituting the first storage unit 48 and the second storage unit 46, for example, a dual port RAM can be used.

図9は、デュアルポートメモリであるデュアルポートRAM60を記憶手段のメモリ素子群として用いた場合の、記憶データの構成の一例を示す図である。この記憶データの構成は、図3に例示される検査行列10を構成する部分行列12のうち、列に沿って(2r−1)番目と2r番目(但し、r=1,2、・・・、Pm/2)を一組とした行列と対応させる。すなわち、このような2個が組み合わされた部分行列はそれぞれ行重みが1であり、列重みが1とできる。   FIG. 9 is a diagram showing an example of the configuration of stored data when the dual port RAM 60 which is a dual port memory is used as a memory element group of the storage means. The configuration of this stored data is (2r-1) th and 2rth (where r = 1, 2,...) Along the column of the partial matrix 12 constituting the parity check matrix 10 illustrated in FIG. , Pm / 2) to correspond to a set of matrices. That is, each of the two sub-matrices combined can have a row weight of 1 and a column weight of 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へ記憶させることができる。   As a result, each dual port RAM 60 can store the calculation result corresponding to the element “1” of the submatrix having the row weight 1 and the column weight 1. Therefore, the first storage means 48 and the second storage means 46 are composed of Pn × Pm / 2 dual port RAMs 60. In FIG. 9, Pn is matched with the row weight, and Pm / 2 is matched with the column weight. In this specification, the position is represented by the expression RAM [j] [k], k is a “row weight number”, and j is a “column weight number”. Although not shown, each port of the dual port RAM 60 is used to access each element of the submatrix 12 illustrated in FIG. Further, the calculation data can be stored in the dual port RAM 60 in the order of row numbers.

続いて、検査行列Hの行重みを7とし(Pn=7を意味する)、列重みを3(Pm=6を意味する)とした場合についてより具体的に説明をする。ここで、復号方法の流れは、図8に例示されるフロー図に従うものとする。   Next, the case where the row weight of the parity check matrix H is 7 (meaning Pn = 7) and the column weight is 3 (means Pm = 6) will be described more specifically. Here, the flow of the decoding method is assumed to follow the flowchart illustrated in FIG.

図10は、行処理演算ステップ(S104)における記憶手段と行処理演算回路42との接続を表わすブロック図である。行処理演算においては、始めに第2記憶手段46から必要データを読み出す。この場合、検査行列の同一行の「1」なる要素に対応するデータが必要である。本具体例においては行重みが7であるので、1行あたり7個のデータ(ビット・ノード数に対応)が必要である。図6には、7個のビット・ノードが例示されている。また、行処理は列重み3の2倍数である6並列処理が行われるので7個×6(行)=42個のデータが必要となる。   FIG. 10 is a block diagram showing the connection between the storage means and the row processing arithmetic circuit 42 in the row processing arithmetic step (S104). In the row processing calculation, first, necessary data is read from the second storage means 46. In this case, data corresponding to the element “1” in the same row of the parity check matrix is required. In this specific example, since the row weight is 7, 7 pieces of data (corresponding to the number of bit nodes) are required per row. FIG. 6 illustrates seven bit nodes. In addition, since 6 parallel processing, which is twice the column weight 3, is performed in the row processing, 7 × 6 (rows) = 42 pieces of data are required.

1行分のデータは、行重み番号(k)の番号順に第2メモリ素子群の対応するデュアルポートRAM47に記憶されている。このデータは、行番号順に記憶させてあるので、7個すべてのデュアルポートRAMに行番号を示す同一のアドレスを与えることにより、1回のアクセスで7個のデータを並列に読み出すことができる。また、第2記憶手段46もデュアルポートRAMであるので、2行分のデータを同時に読み出すことができる。   The data for one row is stored in the corresponding dual port RAM 47 of the second memory element group in the order of the row weight number (k). Since this data is stored in the order of row numbers, seven data can be read out in parallel by one access by giving the same address indicating the row number to all seven dual port RAMs. Further, since the second storage means 46 is also a dual port RAM, two rows of data can be read simultaneously.

さらに、このデュアルポートRAM構成を、列重みと同数の3組配置することにより、7個×6(行)=42個のデータを同時に読み出すことができる。このように、読み出された列処理データは、行ごとに行処理演算回路42へ入力される。この場合、行処理演算回路42も6並列分配置することにより、6行分の行処理演算が並列処理できる。   Furthermore, by arranging this dual port RAM configuration in the same number as three column weights, 7 × 6 (rows) = 42 data can be read simultaneously. Thus, the read column processing data is input to the row processing arithmetic circuit 42 for each row. In this case, the row processing arithmetic circuit 42 is also arranged in six parallels, so that the row processing arithmetic for six rows can be processed in parallel.

行処理演算回路42における演算データは、第1記憶手段48を構成するデュアルポートRAM49へ、書き込まれる。42個の演算データは、6並列処理により1回のアクセスで書き込み可能である。   The operation data in the row processing operation circuit 42 is written to the dual port RAM 49 constituting the first storage means 48. 42 pieces of calculation data can be written in one access by 6 parallel processing.

図11は、列処理演算ステップ(S106)における記憶手段と列処理演算回路との接続を表わすブロック図である。列処理演算においては、始めに第1記憶手段48から必要データを読み出す。この場合、検査行列の同一列の「1」なる要素に対応するデータが必要である。本具体例においては列重みが3であるので、1列当たり3個のデータ(チェック・ノード数に対応)が必要である。図7には、3個のチェック・ノードが例示されている。また、列処理は7並列処理が行われるので3個×7(列)=21個のデータが必要となる。   FIG. 11 is a block diagram showing the connection between the storage means and the column processing arithmetic circuit in the column processing arithmetic step (S106). In the column processing calculation, first, necessary data is read from the first storage unit 48. In this case, data corresponding to the element “1” in the same column of the parity check matrix is necessary. In this specific example, since the column weight is 3, three data (corresponding to the number of check nodes) are required per column. FIG. 7 illustrates three check nodes. In addition, since 7 parallel processes are performed in the column processing, 3 × 7 (columns) = 21 data are required.

1列分のデータは、列重み番号(j)の番号順に第1メモリ素子群の対応するデュアルポートRAM49に記憶されている。このデータは、1回のアクセスで3個のデータを読み出すことができる。また、このデュアルポートRAM構成を、行重みと同数の7組配置することにより3個×7(列)=21個のデータを同時に読み出すことができる。ここで、第1記憶手段48を構成するデュアルポートRAM49は行番号順にデータが記憶されているので、当該データの読み出しアドレスは、当該データの行番号に対応したアドレスを指定する必要がある。この読み出しアドレスの指定は、制御部40において行う。   The data for one column is stored in the corresponding dual port RAM 49 of the first memory element group in the order of the column weight number (j). As this data, three pieces of data can be read out by one access. In addition, by arranging the dual port RAM configuration in the same number as the row weight, seven sets of 3 × 7 (columns) = 21 data can be read simultaneously. Here, since the dual port RAM 49 constituting the first storage means 48 stores data in the order of row numbers, it is necessary to designate an address corresponding to the row number of the data as the read address of the data. This read address is designated by the control unit 40.

図12は、このアドレス指定を説明する図である。列番号変換メモリ64を用いて列番号から行番号に対応するアドレスへの変換を行う。当該メモリのアドレスに列処理演算対象の列番号を与える。列処理演算対象の列数は7であるが、ひとつの列番号から当該21個分の行番号に対応したアドレスが出力されるように、あらかじめメモリ内容を設定しておくことで変換を実現する。   FIG. 12 is a diagram for explaining this address designation. The column number conversion memory 64 is used to convert the column number into an address corresponding to the row number. The column number of the column processing calculation target is given to the memory address. The number of columns subject to column processing calculation is 7, but conversion is realized by setting memory contents in advance so that addresses corresponding to the 21 row numbers are output from one column number. .

第1記憶手段48から読み出したデータは、列ごとに列処理演算回路44へ入力される。列処理演算回路44は7並列処理が可能とされる。また、一時推定語演算回路50も7並列処理が可能とされる。   The data read from the first storage means 48 is input to the column processing arithmetic circuit 44 for each column. The column processing arithmetic circuit 44 can perform seven parallel processing. In addition, the temporary estimated word calculation circuit 50 can perform 7 parallel processing.

次に、列処理演算回路44からの出力データを、第2記憶手段46を構成するデュアルポートRAM47へ書き込む。21個のデータは均等に書き込まれるので、1回のアクセスですべてのデータの書き込みが可能である。   Next, the output data from the column processing arithmetic circuit 44 is written into the dual port RAM 47 constituting the second storage means 46. Since 21 pieces of data are written evenly, all data can be written in one access.

次に、比較例との対比により、第1具体例における利点をより明確にする。
図13は、比較例にかかるLDPC符号の復号装置を表わすブロック図である。なお、第1具体例と同様の構成要素には同一番号を付して詳細な説明を省略する。本比較例においては、検査行列を行方向及び列方向に分割して、並列処理を行うことにより復号処理時間を短縮している。また、回路規模を縮小するために、第1記憶手段48及び第2記憶手段46にはRAMが用いられており、かつ並列処理のためにRAMは複数個が用いられている。さらに、検査行列においては図14に例示されるようにランダムに「1」が配置されている。本比較例においては、検査行列の行重みを4、列重みを3としている。
Next, the advantages of the first specific example will be made clearer by comparison with the comparative example.
FIG. 13 is a block diagram showing an LDPC code decoding apparatus according to a comparative example. In addition, the same number is attached | subjected to the component similar to a 1st example, and detailed description is abbreviate | omitted. In this comparative example, the parity check processing time is shortened by dividing the parity check matrix in the row direction and the column direction and performing parallel processing. In order to reduce the circuit scale, a RAM is used for the first storage means 48 and the second storage means 46, and a plurality of RAMs are used for parallel processing. Further, in the parity check matrix, “1” is randomly arranged as illustrated in FIG. In this comparative example, the check matrix has a row weight of 4 and a column weight of 3.

まず、比較例の行処理演算につき説明する。
図15は、検査行列の一例を表わす図である。
また、図16は、行処理演算時のメモリ接続を表わすブロック図である。第2記憶手段46及び第1記憶手段48は100列ごとにデータを列番号順に記憶させている
検査行列における1行目の「1」の要素が、4列目、201列目、480列目、998列目であったとすると、当該要素に対するデータが、記憶手段を構成するRAMに散在する。この結果、各RAMの出力から行処理演算に必要なデータのみを選択するための選択回路66が必要となる。また、演算データを各RAMへ書き込む際にも、当該行の4個の「1」の要素に対応する複数のRAMに、対応するデータを選択して渡すための選択回路66が必要となる。
First, the row processing calculation of the comparative example will be described.
FIG. 15 is a diagram illustrating an example of a parity check matrix.
FIG. 16 is a block diagram showing a memory connection at the time of row processing calculation. The second storage means 46 and the first storage means 48 store the data in every 100 columns in the order of the column numbers. The element “1” in the first row in the check matrix is in the fourth, 201th, and 480th columns. , 998, the data for the element is scattered in the RAM constituting the storage means. As a result, the selection circuit 66 for selecting only the data necessary for the row processing operation from the output of each RAM is required. Further, when writing the operation data into each RAM, a selection circuit 66 for selecting and passing the corresponding data to a plurality of RAMs corresponding to the four “1” elements in the row is required.

次に、比較例の列処理演算につき説明する。
図17は、検査行列の一例を表わす図である。
また、図18は、列処理演算時のメモリ接続を表わすブロック図である。第2記憶手段46及び第1記憶手段48は100行ごとのデータを行番号順に記憶させている。
Next, the column processing operation of the comparative example will be described.
FIG. 17 is a diagram illustrating an example of a parity check matrix.
FIG. 18 is a block diagram showing memory connections at the time of column processing calculation. The second storage means 46 and the first storage means 48 store data for every 100 rows in the order of row numbers.

検査行列の「1」の要素がランダムに配置されており、一列目の「1」の要素が、2行目、152行目、450行目であったとすると、当該要素に対するデータは、各RAMに散在する。この結果、各RAMの出力から列処理演算に必要なデータのみを選択する選択回路66が必要になる。また、演算データを各RAMへ書き込む際も、当該列の3個の「1」の要素に対応する複数のRAMに、対応するデータを選択して渡すための選択回路66が必要となる。   If the “1” element of the parity check matrix is randomly arranged and the “1” element in the first column is in the second, 152th, and 450th rows, the data for that element is stored in each RAM. Scattered. As a result, a selection circuit 66 that selects only data necessary for column processing operation from the output of each RAM is required. Further, when writing the operation data into each RAM, a selection circuit 66 for selecting and passing the corresponding data to a plurality of RAMs corresponding to the three “1” elements in the column is required.

以上説明したように、比較例においては、検査行列が「1」をランダムに配置する構成である場合、第1記憶手段48及び第2記憶手段46の入力及び出力側には選択回路66が必要である。この選択回路66は、並列処理数分必要である。演算処理時間を短縮するために並列処理数を増やすと、それに応じて選択回路66も増える。この選択回路66は回路規模が大となり、装置の大型化および消費電力増大を招く。   As described above, in the comparative example, when the check matrix is “1” randomly arranged, the selection circuit 66 is necessary on the input and output sides of the first storage unit 48 and the second storage unit 46. It is. This selection circuit 66 is required for the number of parallel processes. When the number of parallel processes is increased in order to shorten the arithmetic processing time, the number of selection circuits 66 is increased accordingly. The selection circuit 66 has a large circuit scale, leading to an increase in the size of the device and an increase in power consumption.

これに対して、第1具体例においては、検査行列を(行重み×列重みの2倍)数の部分行列に分割し、複数のRAMに「1」を分散させている。これにより、第1記憶手段48、第2記憶手段46の記憶データを並び替えずとも、行処理演算及び列処理演算をそれぞれ並行処理できると共に、デュアルポートRAM60を用いることで、データの読み出し、書込み時間を低減することもできる。これにより、(行重み×列重み)数のデュアルポートRAM60に、行重み番号(k)及び列重み番号(j)に対応したデータを記憶させることが可能となるので、選択回路66が不要であり、回路規模を7から20%縮小できる。この結果、演算処理時間の短縮、小型、低消費電力が可能な復号装置が実現できる。   On the other hand, in the first specific example, the parity check matrix is divided into (number of row weights × twice column weights) sub-matrices, and “1” is distributed to a plurality of RAMs. Thus, the row processing operation and the column processing operation can be performed in parallel without rearranging the storage data of the first storage unit 48 and the second storage unit 46, and data can be read and written by using the dual port RAM 60. Time can also be reduced. As a result, the data corresponding to the row weight number (k) and the column weight number (j) can be stored in the (port weight × column weight) number of dual port RAMs 60, so that the selection circuit 66 is unnecessary. Yes, the circuit scale can be reduced by 7 to 20%. As a result, it is possible to realize a decoding device capable of shortening the calculation processing time, miniaturizing, and reducing power consumption.

次に、本発明の第2具体例にかかる低密度パリティ検査符号の復号装置及び復号方法について説明する。
図19は、第2具体例における検査行列の一例である。各部分行列において、「1」の要素はランダムに配置されているが、行重みは、0、1,2のいずれかとされ、列重みは、0または1とされる。
Next, a low-density parity check code decoding apparatus and decoding method according to the second specific example of the present invention will be described.
FIG. 19 is an example of a parity check matrix in the second specific example. In each submatrix, elements of “1” are arranged at random, but the row weight is 0, 1, or 2, and the column weight is 0 or 1.

ここで、縦に連続した(2r−1)番目と2r番目(但し、r=1,2、・・・、Pm/2)の部分行列をあわせた行列における列重みの合計をすべて1とする。また、行方向に沿って連続した2個のペア部分行列を合わせた行列の行重みをすべて2とする。なお、「行方向に沿って連続する」ことを以下では、「横に連続する」と呼ぶことにする。   Here, the sum of the column weights in the matrix that is a combination of the (2r-1) th and 2rth (r = 1, 2,..., Pm / 2) sub-matrices that are vertically continuous is set to 1. . Further, all the row weights of the matrix obtained by combining two paired partial matrices along the row direction are set to 2. Hereinafter, “continuous along the row direction” will be referred to as “continuous sideways”.

図19の例においては、列ブロック番号=2であるHsub[2r−1][2]とHsub[2r][2]とが縦に連続して配置され、列ブロック=3であるHsub[2r―1][3]とHsub[2r][3]とが縦に連続して配置されている。   In the example of FIG. 19, Hsub [2r−1] [2] and Hsub [2r] [2] whose column block number = 2 are arranged vertically and continuously, and Hsub [2r whose column block = 3. -1] [3] and Hsub [2r] [3] are arranged vertically continuously.

一方、列ブロック=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番などの組み合わせを任意に選択できる。   On the other hand, Hsub [2r-1] [2] belonging to the column block = 2 and Hsub [2r-1] [3] belonging to the column block = 3 constitute a horizontally continuous pair submatrix. Hsub [2r] [2] belonging to the column block = 2 and Hsub [2r] [3] belonging to the column block = 3 form a horizontally continuous pair submatrix. The position of this pair submatrix is not particularly limited. For example, combinations of column block numbers such as Nos. 1 and 2, Nos. 2 and 3, Nos. 3 and 4, Nos. 4 and 5, etc. can be arbitrarily selected.

次に、第2具体例における処理の流れを、より詳細に説明する。
図20は、各部分行列12を2行×4列とし、列ブロック番号=2及び列ブロック番号=3に属する部分行列により横に連続したペア部分行列13を2組縦に連続して設けた検査行列の例である。この場合、2個のペア行列13において、行重みをすべて2としている。2個のペア部分行列13以外の部分行列においては行重みをすべて1とする。また、2組のペア部分行列13は、縦方向に(2r−1)番目と2r番目(但し、rは1〜Pm/2の自然数のひとつ)の部分行列に位置する。
Next, the flow of processing in the second specific example will be described in more detail.
In FIG. 20, each submatrix 12 has 2 rows × 4 columns, and two sets of paired submatrixes 13 that are laterally continuous by partial matrices belonging to column block number = 2 and column block number = 3 are provided vertically. It is an example of a check matrix. In this case, the row weights are all set to 2 in the two pair matrices 13. In the submatrices other than the two pair submatrices 13, the row weights are all set to 1. The two pairs of sub-matrixes 13 are positioned in the (2r-1) th and 2r-th (where r is one of natural numbers from 1 to Pm / 2) sub-matrices in the vertical direction.

第2具体例においても、行処理演算は第1具体例と同様であるので、列処理演算のみについて説明を行う。図20に例示される検査行列において、各部分行列の1列目、2列目に対する列処理演算対象の「1」の要素の行重み番号は、列ブロック番号と一致するので、第1具体例と同様の列処理演算を行うことができる。   Also in the second specific example, the row processing calculation is the same as in the first specific example, so only the column processing calculation will be described. In the parity check matrix illustrated in FIG. 20, the row weight number of the element “1” that is the column processing calculation target for the first column and the second column of each submatrix matches the column block number. The same column processing operation can be performed.

また、各部分行列の3列目の列処理演算において、列ブロック番号が1、及び列ブロック番号が4以上における列処理演算対象の「1」の要素の行重み番号は、列ブロック番号と一致しているので、第1具体例と同様の列処理演算を行うことができる。   Further, in the column processing calculation of the third column of each submatrix, the row weight number of the element “1” that is the column processing calculation target with the column block number of 1 and the column block number of 4 or more is equal to the column block number. Therefore, the same column processing operation as that in the first specific example can be performed.

次に、第1具体例とは列処理演算が異なる列ブロック番号=2及び列ブロック番号=3について以下に説明を行う。
図21は、列処理演算におけるメモリ接続を表わすブロック図である。第1具体例の対応するブロック図は図11に例示されており、図20は第1具体例と異なる箇所のみを表わしている。
Next, column block number = 2 and column block number = 3, which are different from the first specific example, will be described below.
FIG. 21 is a block diagram showing memory connections in column processing operations. A corresponding block diagram of the first specific example is illustrated in FIG. 11, and FIG. 20 represents only a part different from the first specific example.

列ブロック番号=3における3列目、すなわち検査行列10における11列目における列処理演算対象の「1」の要素は、4行目、6行目、9行目のそれぞれ位置している。これらを{要素(4,11)、要素(6,11)、要素(9,11)}と表記する。さらに、当該要素の行重み番号、列重み番号を{重み(k=行重み番号、j=列重み番号)}と表記する。   The element “1” of the column processing calculation target in the third column in the column block number = 3, that is, the eleventh column in the parity check matrix 10 is located in the fourth row, the sixth row, and the ninth row, respectively. These are expressed as {element (4, 11), element (6, 11), element (9, 11)}. Further, the row weight number and the column weight number of the element are expressed as {weight (k = row weight number, j = column weight number)}.

要素(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)へ渡される。   This is the weight (k = 2, j = 1) of the element (4, 11), and the weight number is different from the column block number. In this case, the data is stored in RAM-A [1] [2] (k = 2, j = 1) constituted by the dual port RAM in FIG. Reading of the data is performed using the port 2 of the RAM-A [1] [2]. The read data is transferred to the column processing arithmetic circuit 44 (# 3) by controlling the selection circuit 66 by the selection instruction circuit 72 (# 3).

一方、要素(6,11)及び要素(9,11)の行重み番号は3であり列ブロック番号=3と一致する。この場合は、当該データをRAM−A[2][3]及びRAM−A[3][3]からそれぞれ読み出し、選択指示回路72(#3)により選択回路66を制御することにより列処理演算回路44(#3)へ渡される。このように、列処理演算に必要なデータ3個は、すべて同時に対応するデュアルポートRAMから読み出される。   On the other hand, the row weight number of the element (6, 11) and the element (9, 11) is 3, which matches the column block number = 3. In this case, the data is read from the RAM-A [2] [3] and RAM-A [3] [3], respectively, and the selection instruction circuit 72 (# 3) controls the selection circuit 66 to perform column processing calculation. It is passed to the circuit 44 (# 3). As described above, all three pieces of data necessary for the column processing calculation are simultaneously read from the corresponding dual port RAM.

続いて列処理演算データが列処理演算回路44(#3)からデュアルポートRAM49である、RAM−B[1][2]、RAM−B[2][3]、RAM−B[3][3]へ書き込まれるが、この際、RAM−B[1][2] への書き込みにはポート2を使い、それ以外はポート1を使って書き込む。このように、すべてのデータをデュアルポートRAM49へ同時に書き込むことができる。   Subsequently, the column processing calculation data is the dual port RAM 49 from the column processing calculation circuit 44 (# 3), RAM-B [1] [2], RAM-B [2] [3], RAM-B [3] [ 3]. At this time, port 2 is used for writing to RAM-B [1] [2], and port 1 is used for the other cases. In this way, all data can be written to the dual port RAM 49 simultaneously.

続いて、列ブロック番号=2における3列目の列処理演算について説明する。この場合、列処理演算対象の「1」の要素の行重み番号はすべて2であり、列ブロック番号と一致する。従って、RAM−A[1][2]、RAM−A[2][2]、RAM−A[3][2]のポート1からデータを同時に読み出し、選択指示回路70(#2)により選択回路66を制御することにより列ブロック番号=2の3列目の列処理演算に必要なデータを列処理演算回路44(#2)へ渡す。   Next, the column processing calculation for the third column in column block number = 2 will be described. In this case, all the row weight numbers of the element “1” to be subjected to the column processing calculation are 2, which matches the column block number. Accordingly, data is simultaneously read from port 1 of RAM-A [1] [2], RAM-A [2] [2], RAM-A [3] [2], and selected by the selection instruction circuit 70 (# 2). By controlling the circuit 66, the data necessary for the column processing operation of the third column of the column block number = 2 is passed to the column processing arithmetic circuit 44 (# 2).

列処理演算データは、RAM−B[1][2]、RAM−B[2][2]、RAM−B[3][2]のポート1を使い各メモリにそれぞれ書き込まれる。なお、選択指示回路70(#2)及び72(#3)は、メモリを用いて実現できる。メモリのアドレスに列処理演算対象の列番号を与え、データバスからあらかじめ検査行列に対応した選択指示信号を記憶しておく。   Column processing operation data is written to each memory using port 1 of RAM-B [1] [2], RAM-B [2] [2], RAM-B [3] [2]. The selection instruction circuits 70 (# 2) and 72 (# 3) can be realized using a memory. The column number of the column processing calculation target is given to the memory address, and the selection instruction signal corresponding to the check matrix is stored in advance from the data bus.

次に、各部分行列の4列目の列処理演算について説明する。列ブロック番号=1及び列ブロック番号=4以上における列処理演算対象の「1」の要素の行重み番号は、列ブロック番号と一致するので、第1具体例と同様にできる。列ブロック番号=2及び列ブロック番号=3の列処理演算を図21のメモリ接続を用いて説明する。   Next, the column processing operation for the fourth column of each submatrix will be described. Since the row weight number of the element “1” to be subjected to the column processing calculation in the column block number = 1 and the column block number = 4 or more matches the column block number, it can be the same as in the first specific example. The column processing operation of column block number = 2 and column block number = 3 will be described using the memory connection in FIG.

列ブロック番号=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へ渡される。
The element of “1” in the fourth column in the column block number = 2, that is, the column operation target in the eighth column of the parity check matrix 10 is located in the second row, the seventh row, and the ninth row. These are expressed as {element (2, 8), element (7, 8), element (9, 8)}. Further, the weight (k = 3, j = 1) of the element (2, 8) is different from the column block number = 2. In this case, the data is stored in RAM-A [1] [3] (k = 3, j = 1).
The data is read out using port 2 of RAM-A [1] [3]. Subsequently, the data is transferred to the column processing arithmetic circuit 44 by the selection circuit 66 controlled by the selection instruction circuit 72 (# 3).

一方、要素(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を使う。   On the other hand, the row weight number of element (7, 8) and element (9, 8) is 2, which matches the column block number. Therefore, the data is read from RAM-A [2] [2] and RAM-A [3] [2], selected by the selection circuit 66, and passed to the column processing arithmetic circuit 44. For this purpose, all three pieces of data necessary for the column processing calculation are simultaneously read from the RAM-A. The column processing operation data is written into RAM-B [1] [3], RAM-B [2] [2], RAM-B [3] [2]. At this time, RAM-B [1] [3] ], Port 2 is used for writing, and port 1 is used otherwise.

列ブロック番号=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に同時書き込みできる。   The row weights of the “1” elements to be subjected to the column processing calculation in the fourth column of the column block number = 3 are all 3, which matches the column block number. Therefore, data is simultaneously read from port 1 of RAM-A [1] [3], RAM-A [2] [3], and RAM-A [3] [3]. Controlled to select output. As a result, data necessary for the column processing calculation of the fourth column with column block number = 3 is passed to the column processing arithmetic circuit 44 (# 3). Column processing operation data is written into each memory using port 1 of RAM-B [1] [3], RAM-B [2] [3], RAM-B [3] [3]. In this way, all data can be written to the dual port RAM 49 simultaneously.

第2具体例においては、選択指示回路及び最小限の選択回路が必要である。しかし、図13に例示される比較例に対して選択回路数は極めて少ないので、回路規模の増大は最小限にすることができる。   In the second specific example, a selection instruction circuit and a minimum selection circuit are required. However, since the number of selection circuits is extremely small compared to the comparative example illustrated in FIG. 13, an increase in circuit scale can be minimized.

第2具体例の利点は、第1具体例と比べて検査行列10の設計が容易となることである。LDPC符号の復号のための検査行列を構成する方法のひとつに、乱数を用いて列置換を行うGallagerによる構成法がある。第2具体例においては、横方向ペア部分行列13により、検査行列構成により自由度をもたせることができるので、設計がより容易となる。   The advantage of the second specific example is that the design of the check matrix 10 is easier than that of the first specific example. One method of constructing a parity check matrix for decoding an LDPC code is a construction method using Gallager that performs column replacement using random numbers. In the second specific example, the horizontal pair submatrix 13 can provide a degree of freedom due to the check matrix configuration, so that the design becomes easier.

さらに、第1具体例と同様に、第2具体例においても、検査行列を部分行列に分割し、「1」を分散させている。また、デュアルポートRAM60を用いて、データ読み出し、書きこみ時間を低減している。この結果、行重み×列重み数のデュアルポートRAM60に、行重み番号(k)及び列重み番号(j)に対応したデータを記憶させることが可能となるので、選択回路数を低減できる。この結果、演算処理時間の短縮、小型、低消費電力が可能な復号装置が実現できる。   Further, similarly to the first specific example, also in the second specific example, the parity check matrix is divided into partial matrices, and “1” is distributed. Further, the dual port RAM 60 is used to reduce data read / write time. As a result, data corresponding to the row weight number (k) and the column weight number (j) can be stored in the dual port RAM 60 of row weight × column weight number, so that the number of selection circuits can be reduced. As a result, it is possible to realize a decoding device capable of shortening the calculation processing time, miniaturizing, and reducing power consumption.

第1具体例及び第2具体例において説明したようなLDPC符号の復号装置及び復号方法を用いることにより、データの高速伝送路において生じるエラー検出及び訂正することができる。この結果、ブロック誤り率が低く、エラーフロアの少ない高速伝送路が実現できる。   By using the LDPC code decoding apparatus and decoding method as described in the first specific example and the second specific example, it is possible to detect and correct errors occurring in a high-speed data transmission path. As a result, a high-speed transmission line with a low block error rate and a small error floor can be realized.

以上、図面を参照しつつ本発明の実施の形態について説明した。しかし本発明は、これら具体例には限定されない。例えば、LDPC復号装置を構成する記憶手段、メモリ素子、演算回路、S/P回路、P/S回路、バッファ回路などに関して、また復号方法に関して、当業者が各種の設計変更を加えたものであっても、本発明の要旨を有する限り本発明の範囲に包含される。   The embodiments of the present invention have been described above with reference to the drawings. However, the present invention is not limited to these specific examples. For example, those skilled in the art have made various design changes with respect to storage means, memory elements, arithmetic circuits, S / P circuits, P / S circuits, buffer circuits, etc. constituting the LDPC decoding device, and decoding methods. However, as long as it has the gist of the present invention, it is included in the scope of the present invention.

本発明の第1具体例にかかる低密度パリティ検査(LDPC)符号の復号装置のブロック図である。It is a block diagram of the decoding apparatus of the low density parity check (LDPC) code concerning the 1st example of this invention. 第1具体例にかかる復号装置が組み込まれた受信器を表わすブロック図である。It is a block diagram showing the receiver incorporating the decoding apparatus concerning a 1st specific example. 第1具体例におけるLDPC符号の検査行列を表わす図である。It is a figure showing the parity check matrix of the LDPC code in a 1st specific example. 第1具体例におけるLDPC符号の検査行列の一例を表わす図である。It is a figure showing an example of the check matrix of the LDPC code in the 1st example. タナーグラフを表わす図である。It is a figure showing a Tanner graph. 行処理演算処理を説明するためのタナーグラフである。It is a Tanner graph for demonstrating line processing calculation processing. 列処理演算処理を説明するためのタナーグラフである。It is a Tanner graph for demonstrating a column process calculation process. 本具体例にかかる低密度パリティ検査符号の復号方法を説明するフロー図である。It is a flowchart explaining the decoding method of the low density parity check code concerning this example. 第1具体例におけるデュアルポートRAMの構成を表わす図である。It is a figure showing the structure of the dual port RAM in a 1st example. 第1具体例にかかる復号装置におけるデュアルポートRAMと行処理演算回路との接続を表わすブロック図である。It is a block diagram showing the connection of the dual port RAM and row processing arithmetic circuit in the decoding apparatus concerning the 1st specific example. 第1具体例にかかる復号装置におけるデュアルポートRAMと列処理演算回路との接続を表わすブロック図である。It is a block diagram showing the connection of dual port RAM and a column processing arithmetic circuit in the decoding apparatus concerning a 1st specific example. 列番号変換メモリを表わす図である。It is a figure showing a column number conversion memory. 比較例にかかるLDPC符号の復号装置を表わすブロック図である。It is a block diagram showing the decoding apparatus of the LDPC code concerning a comparative example. 比較例における検査行列の一例である。It is an example of the check matrix in a comparative example. 比較例における行処理演算を説明するための検査行列の一例である。It is an example of the check matrix for demonstrating the row processing calculation in a comparative example. 比較例における行処理演算時のメモリ接続を表わすブロック図である。It is a block diagram showing the memory connection at the time of the row processing calculation in a comparative example. 比較例における列処理演算を説明するための検査行列の一例である。It is an example of the check matrix for demonstrating the column processing calculation in a comparative example. 比較例における列処理演算時のメモリ接続表わすブロック図である。It is a block diagram showing the memory connection at the time of the column processing calculation in a comparative example. 第2具体例における検査行列である。It is a check matrix in the second specific example. 第2具体例における検査行列のより詳細な例である。It is a more detailed example of the check matrix in the second specific example. 第2具体例における列処理演算時のメモリ接続を表わすブロック図である。It is a block diagram showing the memory connection at the time of the column processing calculation in the second specific example.

符号の説明Explanation of symbols

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 選択指示回路
10 Check Matrix 12 Submatrix 13 Lateral Pair Submatrix 20 Antenna 22 Demodulator 24 Decoder 26 CPU
28 Video / Audio Signal Processing Circuit 32 Monitor 34 Speaker 40 Control Unit 42 Row Processing Operation Circuit 44 Column Processing Operation Circuit 46 Second Storage Unit 47 Dual Port RAM
48 First storage means 49 Dual port RAM
50 Temporary Estimated Word Calculation Circuit 52 S / P Circuit 54 Input Buffer 56 Output Buffer 58 P / S Circuit 60 RAM
64 column number conversion memory 66 selection circuit 70 selection instruction circuit 72 selection instruction circuit

Claims (10)

受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、
受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、
前記行処理演算回路による行処理演算データを記憶する第1記憶手段と、
前記列処理演算回路による列処理演算データを記憶する第2記憶手段と、
を備え、
前記検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成され、
前記部分行列の行重みはすべて1であるように構成され、
前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rは列重み番号)の列重みの合計はすべて1であるように構成され、
前記第1記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記行処理演算データを記憶し、
前記第2記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記列処理演算データを記憶し、
前記行処理演算回路は、前記第2記憶手段から読み出された列処理演算データを用いて列重みの2倍数の行処理演算を並行処理し、演算データを行重み番号及び列重み番号ごとに、前記第1記憶手段にそれぞれに書き込み、
前記列処理演算回路は、前記第1記憶手段から読み出された前記行処理演算データを用いて行重みの数の列処理演算を並行処理し、演算データを列重み番号及び行重み番号ごとに、前記第2記憶手段にそれぞれに書き込むことを特徴とする低密度パリティ検査符号の復号装置。
A row processing arithmetic circuit that performs a row processing operation using a check matrix that performs error correction of a received word;
A column processing arithmetic circuit that performs column processing arithmetic using the parity check matrix that performs error correction of a received word;
First storage means for storing row processing calculation data by the row processing calculation circuit;
Second storage means for storing column processing calculation data by the column processing calculation circuit;
With
The check matrix is configured as a set of a plurality of sub-matrices divided in the column direction by a multiple of the column weight and divided in the row direction by the number of row weights,
The row weights of the sub-matrixes are all configured to be 1,
The sum of the column weights of the (2r-1) th submatrix that is continuous in the column direction of the parity check matrix and the column weights of the 2rth submatrix (where r is a column weight number) are all 1. ,
The first storage means stores the row processing calculation data for each of the same row weight number and the same column weight number for the element “1” of the parity check matrix,
The second storage means stores the column processing calculation data for each of the same row weight number and the same column weight number for the element “1” of the parity check matrix,
The row processing arithmetic circuit performs a parallel processing of a row processing operation of twice the column weight using the column processing arithmetic data read from the second storage means, and calculates the arithmetic data for each row weight number and column weight number. Write to each of the first storage means,
The column processing arithmetic circuit performs parallel processing on the number of row weights of column processing arithmetic using the row processing arithmetic data read from the first storage means, and calculates the arithmetic data for each column weight number and row weight number. A low-density parity check code decoding apparatus, wherein the low-density parity check code is written in each of the second storage means.
前記第1記憶手段は、前記検査行列における2つの行のすべての「1」の要素に対応する行処理演算データを、列重み番号と行重み番号との組み合わせに対応させて、同時に2行書き込み可能な2ポートを有する複数のデュアルポートRAMを有することを特徴とする請求項1記載の復号装置。   The first storage means writes row processing operation data corresponding to all “1” elements of two rows in the parity check matrix to two combinations of column weight numbers and row weight numbers at the same time. 2. The decoding apparatus according to claim 1, comprising a plurality of dual port RAMs having two possible ports. 前記第2記憶手段は、前記検査行列における2つの行のすべての「1」の要素に対応する列処理演算データを、列重み番号と行重み番号との組み合わせに対応させて、同時に2行読み出し可能な2ポートを有する複数のデュアルポートRAMを有することを特徴とする請求項1または2に記載の復号装置。   The second storage means reads column processing operation data corresponding to all “1” elements of two rows in the parity check matrix in correspondence with combinations of column weight numbers and row weight numbers, and simultaneously reads out two rows. 3. The decoding apparatus according to claim 1, further comprising a plurality of dual port RAMs having two possible ports. 受信語のエラー訂正を行う検査行列として、列方向に列重みの2倍数で分割し、行方向に行重みの数で行を分割することにより形成した複数の部分行列の集合であって、前記部分行列の行重みはすべて1であるように構成され、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rは列重み番号)の列重みの合計はすべて1であるように構成された、複数の部分行列の集合を用い、
受信語データを入力することにより初期化された列処理演算データ第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第1ステップと、
前記検査行列の「1」の要素に対して、前記第2記憶手段に記憶された列処理演算データを読み出し、列重みの2倍数の並行処理により行処理演算を行い、演算データを第1記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第2ステップと、
前記検査行列の「1」の要素に対して、前記第1記憶手段に記憶された前記行処理演算データを読み出し、行重みの数の並行処理により列処理演算を行い、演算データを前記第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込むと共に、前記行処理演算データを用いて一時推定語を演算する第3ステップと、
前記第2ステップと前記第3ステップとをこの順に所定の回数繰り返す第4ステップと、
を備えたことを特徴とする低密度パリティ検査符号の復号方法。
As a check matrix for error correction of received words, it is a set of a plurality of sub-matrices formed by dividing the column direction by a multiple of the column weight and dividing the row by the number of row weights in the row direction, The row weights of the submatrices are all set to 1, and the column weight of the (2r-1) th submatrix and the 2rth submatrix (where r is a column weight number) that are continuous in the column direction of the parity check matrix. ) Using a set of sub-matrices constructed such that the sum of column weights is all 1,
A first step of writing each of the row weight number and the column weight number in the column processing calculation data second storage means initialized by inputting the received word data;
For the element “1” of the parity check matrix, column processing calculation data stored in the second storage means is read out, row processing calculation is performed by parallel processing of twice the column weight, and the calculation data is stored in the first memory. A second step of writing to the means for each row weight number and column weight number;
For the element “1” of the parity check matrix, the row processing calculation data stored in the first storage means is read, column processing calculation is performed by parallel processing of the number of row weights, and the calculation data is converted into the second data. A third step of writing to the storage means for each row weight number and each column weight number, and calculating a temporary estimated word using the row processing calculation data;
A fourth step in which the second step and the third step are repeated a predetermined number of times in this order;
A method for decoding a low-density parity check code.
受信語のエラー訂正を行う検査行列を用いて行処理演算を実行する行処理演算回路と、
受信語のエラー訂正を行う前記検査行列を用いて列処理演算を実行する列処理演算回路と、
前記行処理演算回路による行処理演算データを記憶する第1記憶手段と、
前記列処理演算回路による列処理演算データを記憶する第2記憶手段と、
前記第1記憶手段に記憶された2つのデータのうちのいずれかを選択して出力する選択回路と、
を備え、
前記検査行列は、列方向に列重みの2倍数で分割され、行方向に行重みの数で分割された複数の部分行列の集合として構成され、
前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rはすべての列重み番号の範囲)の列重みの合計はすべて1であるように構成され、
前記複数の部分行列のうち、行方向に連続した2つの部分行列の行重みの合計はすべて2であるように構成され、
前記第1記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記行処理演算データを記憶し、
前記第2記憶手段は、前記検査行列の「1」の要素について、同一行重み番号及び同一列重み番号ごとに前記列処理演算データを記憶し、
前記行処理演算回路は、前記第2記憶手段から読み出された列処理演算データを用いて列重みの2倍数の行処理演算を並行処理し、演算データを行重み番号及び列重み番号ごとに、前記第1記憶手段にそれぞれに書き込み、
前記列処理演算回路は、前記選択回路により選択して出力された前記行処理演算データを用いて行重みの数の列処理演算を並行処理し、演算データを列重み番号及び行重み番号ごとに、前記第2記憶手段にそれぞれに書き込むことを特徴とする低密度パリティ検査符号の復号装置。
A row processing arithmetic circuit that performs a row processing operation using a check matrix that performs error correction of a received word;
A column processing arithmetic circuit that performs column processing arithmetic using the parity check matrix that performs error correction of a received word;
First storage means for storing row processing calculation data by the row processing calculation circuit;
Second storage means for storing column processing calculation data by the column processing calculation circuit;
A selection circuit that selects and outputs one of the two data stored in the first storage means;
With
The check matrix is configured as a set of a plurality of sub-matrices divided in the column direction by a multiple of the column weight and divided in the row direction by the number of row weights,
The sum of the column weights of the (2r-1) th submatrix and the 2rth submatrix (where r is the range of all column weight numbers) that is continuous in the column direction of the parity check matrix is all 1. Configured as
Among the plurality of sub-matrices, the sum of row weights of two sub-matrices continuous in the row direction is configured to be 2,
The first storage means stores the row processing calculation data for each of the same row weight number and the same column weight number for the element “1” of the parity check matrix,
The second storage means stores the column processing calculation data for each of the same row weight number and the same column weight number for the element “1” of the parity check matrix,
The row processing arithmetic circuit performs a parallel processing of a row processing operation of twice the column weight using the column processing arithmetic data read from the second storage means, and calculates the arithmetic data for each row weight number and column weight number. Write to each of the first storage means,
The column processing arithmetic circuit performs parallel processing of column processing operations for the number of row weights using the row processing arithmetic data selected and output by the selection circuit, and calculates the arithmetic data for each column weight number and row weight number. A low-density parity check code decoding apparatus, wherein the low-density parity check code is written in each of the second storage means.
前記第1記憶手段は、前記検査行列の2つの行のすべての「1」の要素に対応する行処理演算データを同時に2行書き込み可能な2ポートを有する複数のデュアルポートRAMを有することを特徴とする請求項5記載の復号装置。   The first storage means includes a plurality of dual-port RAMs having two ports capable of simultaneously writing two rows of row processing operation data corresponding to all “1” elements of two rows of the parity check matrix. The decoding device according to claim 5. 前記第2記憶手段は、前記検査行列の2つの行のすべての「1」の要素に対応する列処理演算データを同時に2行読み出し可能な2ポートを有する複数のデュアルポートRAMを有することを特徴とする請求項5または6に記載の復号装置。   The second storage means includes a plurality of dual port RAMs having two ports capable of simultaneously reading two rows of column processing operation data corresponding to all “1” elements of two rows of the parity check matrix. The decoding device according to claim 5 or 6. 前記第2記憶手段は、前記行方向に連続した2つの部分行列において、2つの列のすべての「1」の要素に対応する列処理演算データを同時に書き込み可能なデュアルポートRAMを有することを特徴とする請求項5〜7のいずれか1つに記載の復号装置。   The second storage means includes a dual port RAM capable of simultaneously writing column processing operation data corresponding to all “1” elements of two columns in two sub-matrices continuous in the row direction. The decoding device according to any one of claims 5 to 7. 前記第1記憶手段は、前記行方向に連続した2つの部分行列において、2つの列のすべての「1」の要素に対応する行処理演算データを同時に読み出し可能なデュアルポートRAMを有することを特徴とする請求項5〜8のいずれか1つに記載の復号装置。   The first storage means has a dual port RAM capable of simultaneously reading out row processing operation data corresponding to all “1” elements in two columns in two sub-matrices continuous in the row direction. The decoding device according to any one of claims 5 to 8. 受信語のエラー訂正を行う検査行列として、列方向に列重みの2倍数で分割し、行方向に行重みの数で行を分割することにより形成した複数の部分行列の集合であって、前記検査行列の列方向に連続した(2r−1)番目の部分行列の列重みと2r番目の部分行列(但し、rはすべての列重み番号の範囲)の列重みの合計はすべて1であるように構成され、前記複数の部分行列のうち、行方向に連続した2つの部分行列の行重みの合計はすべて2であるように構成された、複数の部分行列の集合を用い、
受信語データを入力することにより初期化された演算データを第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第1ステップと、
前記検査行列の「1」の要素に対して、前記第2記憶手段に記憶された列処理演算データを読み出し、列重みの2倍数の並行処理により行処理演算を行い、演算データを第1記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込む第2ステップと、
前記検査行列の「1」の要素に対して、前記第1記憶手段に記憶された2つの前記行処理演算データのいずれかを選択して読み出して、行重みの数の並行処理により列処理演算を行い、演算データを前記第2記憶手段に行重み番号及び列重み番号ごとにそれぞれに書き込むと共に、前記行処理演算データを用いて一時推定語を演算する第3ステップと、
前記第2ステップと前記第3ステップとをこの順に所定の回数繰り返す第4ステップと、
を備えたことを特徴とする低密度パリティ検査符号の復号方法。
As a check matrix for error correction of received words, it is a set of a plurality of sub-matrices formed by dividing the column direction by a multiple of the column weight and dividing the row by the number of row weights in the row direction, The sum of the column weights of the (2r-1) th submatrix that continues in the column direction of the check matrix and the column weights of the 2rth submatrix (where r is the range of all column weight numbers) is all 1. Using a set of a plurality of sub-matrices configured such that the total of the row weights of two sub-matrices continuous in the row direction among the plurality of sub-matrices is all 2,
A first step of writing operation data initialized by inputting received word data to the second storage means for each row weight number and column weight number;
For the element “1” of the parity check matrix, column processing calculation data stored in the second storage means is read out, row processing calculation is performed by parallel processing of twice the column weight, and the calculation data is stored in the first memory. A second step of writing to the means for each row weight number and column weight number;
For one “1” element of the parity check matrix, one of the two row processing calculation data stored in the first storage means is selected and read out, and column processing calculation is performed by parallel processing of the number of row weights. And writing calculation data to the second storage means for each row weight number and column weight number, and calculating a temporary estimated word using the row processing calculation data;
A fourth step in which the second step and the third step are repeated a predetermined number of times in this order;
A method for decoding a low-density parity check code.
JP2005296994A 2005-10-11 2005-10-11 Decoding device and decoding method Active JP4819470B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005296994A JP4819470B2 (en) 2005-10-11 2005-10-11 Decoding device and decoding method
KR1020060098636A KR100883654B1 (en) 2005-10-11 2006-10-10 Method and Apparatus for decording low density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005296994A JP4819470B2 (en) 2005-10-11 2005-10-11 Decoding device and decoding method

Publications (2)

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

Family

ID=38035782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005296994A Active JP4819470B2 (en) 2005-10-11 2005-10-11 Decoding device and decoding method

Country Status (2)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008072247A (en) * 2006-09-12 2008-03-27 Fujitsu Ltd Operation control data generation method of ldpc decoder, and ldpc decoder
JP2010130342A (en) * 2008-11-27 2010-06-10 Sumitomo Electric Ind Ltd Decoder
JP2011182474A (en) * 2011-06-20 2011-09-15 Panasonic Corp Decoding method and decoding apparatus
WO2012017652A1 (en) * 2010-08-06 2012-02-09 パナソニック株式会社 Error correcting decoding device and error correcting decoding method
KR101304570B1 (en) * 2012-01-30 2013-09-05 연세대학교 산학협력단 Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof
US9141470B2 (en) 2012-03-19 2015-09-22 Panasonic Corporation Decoding device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102002933B1 (en) 2012-04-09 2019-07-23 삼성전자주식회사 Method for operating memory controller and devices having the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005045735A (en) * 2003-07-25 2005-02-17 Sony Corp Code detecting apparatus and method, decoding apparatus and method, and information processing apparatus and method
JP2005506733A (en) * 2001-10-10 2005-03-03 フラリオン テクノロジーズ,インコーポレーテッド Node processor used in parity check decoder

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (en) * 2004-01-03 2005-07-08 이광재 The construction method of semi-algebra low density parity check codes and encoder

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005506733A (en) * 2001-10-10 2005-03-03 フラリオン テクノロジーズ,インコーポレーテッド Node processor used in parity check decoder
JP2005045735A (en) * 2003-07-25 2005-02-17 Sony Corp Code detecting apparatus and method, decoding apparatus and method, and information processing apparatus and method

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008072247A (en) * 2006-09-12 2008-03-27 Fujitsu Ltd Operation control data generation method of ldpc decoder, and ldpc decoder
JP2010130342A (en) * 2008-11-27 2010-06-10 Sumitomo Electric Ind Ltd Decoder
WO2012017652A1 (en) * 2010-08-06 2012-02-09 パナソニック株式会社 Error correcting decoding device and error correcting decoding method
JP2012039371A (en) * 2010-08-06 2012-02-23 Panasonic Corp Error correction decoder and error correction decoding method
CN103069720A (en) * 2010-08-06 2013-04-24 松下电器产业株式会社 Error correcting decoding device and error correcting decoding method
US8996965B2 (en) 2010-08-06 2015-03-31 Panasonic Intellectual Property Management Co., Ltd. Error correcting decoding device and error correcting decoding method
JP2011182474A (en) * 2011-06-20 2011-09-15 Panasonic Corp Decoding method and decoding apparatus
KR101304570B1 (en) * 2012-01-30 2013-09-05 연세대학교 산학협력단 Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof
US9141470B2 (en) 2012-03-19 2015-09-22 Panasonic Corporation Decoding device

Also Published As

Publication number Publication date
KR100883654B1 (en) 2009-02-18
JP4819470B2 (en) 2011-11-24
KR20070040314A (en) 2007-04-16

Similar Documents

Publication Publication Date Title
KR101789959B1 (en) Encoding Method, Decoding Method, Encoding device and Decoding Device for Structured LDPC
US11323134B2 (en) Encoding method and device and decoding method and device for structured LDPC
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
KR101203340B1 (en) Turbo ldpc decoding
US7373581B2 (en) Device, program, and method for decoding LDPC codes
US8347170B2 (en) Method and apparatus for performing decoding using LDPC code
CA2798963C (en) Apparatus and method for layered decoding in a communication system using low-density partiy-check codes
JP4819470B2 (en) Decoding device and decoding method
US20100269011A1 (en) Apparatus and method for decoding low density parity check code using prototype matrix
WO2004019268A1 (en) Methods and apparatus for encoding ldpc codes
WO2007034870A1 (en) Decoding device, and receiving device
JP4832447B2 (en) Decoding apparatus and method using channel code
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
JP5510447B2 (en) Decoding device and decoding method
US11075650B1 (en) Sub-matrix reduction for quasi-cyclic LDPC codes
Kim et al. Flexible LDPC decoder architecture for high-throughput applications
JP4492352B2 (en) Decoding apparatus, method thereof, and program
KR100678521B1 (en) Apparatus and method for coding of irregular low density parity check code

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