JP2011082865A - Decoder - Google Patents

Decoder Download PDF

Info

Publication number
JP2011082865A
JP2011082865A JP2009234457A JP2009234457A JP2011082865A JP 2011082865 A JP2011082865 A JP 2011082865A JP 2009234457 A JP2009234457 A JP 2009234457A JP 2009234457 A JP2009234457 A JP 2009234457A JP 2011082865 A JP2011082865 A JP 2011082865A
Authority
JP
Japan
Prior art keywords
probability
probability calculation
processing
sum
calculated
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
JP2009234457A
Other languages
Japanese (ja)
Other versions
JP5434454B2 (en
Inventor
Bun Ki
▲ぶん▼ 季
Makoto Hamaminato
真 濱湊
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009234457A priority Critical patent/JP5434454B2/en
Publication of JP2011082865A publication Critical patent/JP2011082865A/en
Application granted granted Critical
Publication of JP5434454B2 publication Critical patent/JP5434454B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a decoder that can calculate an accurate posterior probability during data collision in Layered algorithm. <P>SOLUTION: The decoder decodes parity-check decoded reception signals by conducting probability operation processing for each of a plurality of hierarchies of test matrixes in parallel by Layered decoding algorithm, and it includes a probability operation processing section for conducting probability operation processing in parallel, and a probability operation processing control section that controls the probability operation processing section to divide the probability operation processing within one hierarchy among the plurality of hierarchies into probability operation processing in plural steps while keeping the parallelism and taking data collision into account, conduct a plurality of probability operation processing in parallel including probability operation that are calculated without being influenced by the data collision in the first-step processing, and conduct probability operation processing in parallel that are calculated while using the results of probability operation up to the (n-1)-th step processing in the n-th processing. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本願開示は、一般に復号化装置に関し、詳しくはLDPC符号に対する復号化装置に関する。   The present disclosure relates generally to a decoding device, and more particularly to a decoding device for an LDPC code.

LDPC(Low Density Parity Check:低密度パリティ検査)とは、送信信号がチャネル雑音により誤って受信された場合に、その誤りを訂正する手法の一つである。LDPC符号を用いた送受信方式では、誤り訂正を行うためにLDPC検査行列Hが用いられる。送信信号Txは、送信側においてH×Tx=0となるようにして送信している。従って送信した信号が受信側で正しく受信された場合には、受信信号RxはH×Rx=0という条件を満たすことになる。このH×Rxという計算をパリティ検査と呼ぶ。   LDPC (Low Density Parity Check) is one of techniques for correcting an error when a transmission signal is erroneously received due to channel noise. In a transmission / reception scheme using an LDPC code, an LDPC check matrix H is used to perform error correction. The transmission signal Tx is transmitted so that H × Tx = 0 on the transmission side. Therefore, when the transmitted signal is correctly received on the receiving side, the received signal Rx satisfies the condition of H × Rx = 0. This calculation of H × Rx is called a parity check.

図1は、LDPC符号を用いた送受信モデルを示す図である。送信側10からH×Tx=0となるように送信した送信信号Tx=[001001]が、伝送路においてチャネル雑音を受け、受信信号Rx=[011001]として受信側12に受信される。この受信信号Rxに対するパリティ検査H×Rxの結果はゼロにならず、受信信号Rxには誤りがあることが分かる。受信側12では、LDPC復号化を行なうLDPC復号器を用いて、H×Rx=0となるように誤り訂正を行う。これにより誤り訂正後の受信信号Rx’=[001001]が得られる。   FIG. 1 is a diagram illustrating a transmission / reception model using an LDPC code. A transmission signal Tx = [001001] transmitted from the transmission side 10 so that H × Tx = 0 is received by the reception side 12 as a reception signal Rx = [011001], receiving channel noise in the transmission path. The result of the parity check H × Rx for the received signal Rx is not zero, and it can be seen that the received signal Rx has an error. On the receiving side 12, error correction is performed so that H × Rx = 0 using an LDPC decoder that performs LDPC decoding. As a result, the error-corrected received signal Rx ′ = [001001] is obtained.

図2は、パリティ検査で用いる行列計算の定義を示す図である。図2に示すように、パリティ検査の行列計算では、通常の行列演算の積和計算において「積」が論理積(&)演算となり、「和」が排他的論理和(XOR)となった演算を行なう。   FIG. 2 is a diagram illustrating the definition of matrix calculation used in the parity check. As shown in FIG. 2, in the parity check matrix calculation, “product” is a logical product (&) operation and “sum” is an exclusive logical sum (XOR) in a normal product-sum calculation. To do.

図3は、LDPC検査行列及び確率メッセージについて説明するための図である。LDPC検査行列は図3に示すようにM×Nの行列であり、各列をb1乃至bNで示し、各行をc1乃至cMで示す。b1乃至bNはビットノード、c1乃至cMはチェックノードと呼ばれる。検査行列Hのm行n列の要素が“1”であれば、チェックノードcmからビットノードbnへの確率メッセージαmnと、ビットノードbnからチェックノードcmへの確率メッセージβmnとが定義される。即ち、検査行列Hにおいて値が“1”である要素に対応するビットノードbnとチェックノードcmとの組に対して、確率メッセージαmnとβmnとが定義される。これらの確率メッセージは、受信信号の確率を高めるためにチェックノードとビットノードの間で交換される。各ビットノードbnに対して受信信号の事後確率sumが定義される。 FIG. 3 is a diagram for explaining an LDPC parity check matrix and a probability message. As shown in FIG. 3, the LDPC parity check matrix is an M × N matrix, each column is denoted by b1 to bN, and each row is denoted by c1 to cM. b1 to bN are called bit nodes, and c1 to cM are called check nodes. If the element of m rows and n columns of the check matrix H is “1”, a probability message α mn from the check node cm to the bit node bn and a probability message β mn from the bit node bn to the check node cm are defined. The That is, probability messages α mn and β mn are defined for a set of bit node bn and check node cm corresponding to an element whose value is “1” in parity check matrix H. These probability messages are exchanged between the check node and the bit node to increase the probability of the received signal. A posterior probability sum n of the received signal is defined for each bit node bn.

LDPC復号処理では、受信信号の確率的な信頼度情報から算出した確率情報を更新していくことにより、パリティ検査結果がゼロになるような受信信号を求める。LDPC復号アルゴリズムとして、良好な訂正能力を持つLayered復号アルゴリズムが一般的に用いられる。   In the LDPC decoding process, the probability information calculated from the probabilistic reliability information of the received signal is updated to obtain a received signal with a parity check result of zero. As the LDPC decoding algorithm, a Layered decoding algorithm having a good correction capability is generally used.

図4はLayeredアルゴリズムを用いたLDPC復号器の構成の一例を示す図である。LDPC復号器20は、確率演算処理部21とパリティ検査部22とを含む。LDPC復号器20への入力λは受信信号から導出した値で、送信信号が0なのか1なのかを確率的に表した事前確率であり、LLR(Log-Likelihood Ratio)と呼ばれる。LDPC復号器20の出力Rx’は誤り訂正後の受信信号である。確率演算処理部21は、事前確率λに基づいて事後確率sumを求め、反復処理により事後確率sumを更新していくことにより、確率を高める処理を行なう。この確率演算処理は、受信信号の確率的な信頼度を表わす事前確率から、パリティチェックに基づく受信信号の拘束条件を考慮して事後確率を求めることに相当する。パリティ検査部22は、事後確率sumを用いてRx’を算出してパリティ検査H×Rx’の演算を行なう。このパリティ検査の結果がゼロであるか否かに基づいて、復号処理を終了するか或いは事後確率sumをフィードバックして反復処理をもう一回繰返すかが制御される。 FIG. 4 is a diagram showing an example of the configuration of an LDPC decoder using the Layered algorithm. The LDPC decoder 20 includes a probability calculation processing unit 21 and a parity check unit 22. The input λ to the LDPC decoder 20 is a value derived from the received signal, which is a priori probability that represents whether the transmission signal is 0 or 1 and is called LLR (Log-Likelihood Ratio). The output Rx ′ of the LDPC decoder 20 is a received signal after error correction. The probability calculation processing unit 21 obtains the posterior probability sum n based on the prior probability λ n and updates the posterior probability sum by iterative processing, thereby performing a process for increasing the probability. This probability calculation processing corresponds to obtaining the posterior probability from the prior probability representing the probabilistic reliability of the received signal in consideration of the constraint condition of the received signal based on the parity check. The parity check unit 22 calculates Rx ′ using the posterior probability sum and performs a parity check H × Rx ′ calculation. Based on whether the result of this parity check is zero or not, it is controlled whether to end the decoding process or feed back the posterior probability sum to repeat the iterative process once more.

確率演算処理部21は、ビットノード処理部25、チェックノード処理部26、及び事後確率更新処理部27を含む。ビットノード処理部25は、事前確率λ又は事後確率sumと確率メッセージαmnとを用いて確率メッセージβmnを算出する。具体的には、初期状態においては事後確率sumとして事前確率λを用いて確率メッセージβmnを算出し、その後の反復処理では事後確率更新処理部27が求めたsumを用いて確率メッセージβmnを算出する。チェックノード処理部26は、確率βmnを用いて確率αmnを更新する。事後確率更新処理部27は、ビットノード処理部25で算出したβmnとチェックノード処理部26で算出したαmnとを用いて事後確率sumを更新する。 The probability calculation processing unit 21 includes a bit node processing unit 25, a check node processing unit 26, and a posterior probability update processing unit 27. The bit node processing unit 25 calculates the probability message β mn using the prior probability λ n or the posterior probability sum n and the probability message α mn . Specifically, to calculate the probability that the message beta mn with prior probability lambda n as posterior probabilities sum n in the initial state, probability that the message using the sum n posterior probability updating unit 27 is determined in a subsequent iteration β mn is calculated. The check node processing unit 26 updates the probability α mn using the probability β mn . The posterior probability update processing unit 27 updates the posterior probability sum n using β mn calculated by the bit node processing unit 25 and α mn calculated by the check node processing unit 26.

ビットノード処理部25が実行するビットノード処理f(sum,αmn)は、具体的には以下のように計算される。
βmn=f(sum,αmn)=sum−αmn (1)
また、事後確率更新処理部27が計算する事後確率更新処理f(αmn,βmn)は、具体的には以下のように計算される。
sum=f(αmn,βmn)=βmn+αmn (2)
上記のビットノード処理と事後確率更新処理との間においてチェックノード処理により更新後のαmnを計算し、更新後のαmnを用いて事後確率更新処理を実行することで、事後確率sumの確率を繰り返し処理により順次高めていくことができる。なおLayeredアルゴリズムでは、チェックノード処理におけるαmnの計算式の違いにより、Layered BPアルゴリズム、Layered Min-sumアルゴリズム、及びLayered Normalized Min-sumアルゴリズム等がある。
The bit node processing f b (sum n , α mn ) executed by the bit node processing unit 25 is specifically calculated as follows.
β mn = f b (sum n , α mn ) = sum n −α mn (1)
Further, the posterior probability update processing f smn , β mn ) calculated by the posterior probability update processing unit 27 is specifically calculated as follows.
sum n = f smn , β mn ) = β mn + α mn (2)
The updated α mn is calculated by the check node process between the bit node process and the posterior probability update process, and the posterior probability update process is executed using the updated α mn , so that the posterior probability sum n Probability can be increased sequentially by iterative processing. Note that the Layered algorithm includes a Layered BP algorithm, a Layered Min-sum algorithm, a Layered Normalized Min-sum algorithm, and the like depending on the calculation formula of α mn in the check node processing.

Layered復号アルゴリズムは、検査行列を階層と呼ばれる複数の行ブロックに分割し確率演算処理を行うアルゴリズムである。例えば、M×NのLDPC検査行列を、各階層がP行からなるL個の階層に分割して確率演算処理を行う。   The Layered decoding algorithm is an algorithm that divides a parity check matrix into a plurality of row blocks called hierarchies and performs a probability calculation process. For example, the M × N LDPC parity check matrix is divided into L hierarchies each having P rows, and the probability calculation process is performed.

図5は、各階層がP行からなるL個の階層に分割したLDPC検査行列を示す図である。図6は、1階層内でのLayeredアルゴリズムの実行順序を示す図である。図7は、複数の階層でのLayeredアルゴリズムの実行順序を示す図である。前述の説明のように、検査行列の要素が“1”である位置(αmn及びβmnが定義されている位置)に対して確率演算処理が実行される。この際、1階層の中では、図6に示されるように、Layered復号アルゴリズムの確率演算処理(ビットノード処理部、チェックノード処理部、及び事後確率更新処理部)が順番に実行される。またビットノード処理部、チェックノード処理部、及び事後確率更新処理部の各々は、1階層内のP行に対して並列に実行される。ここで階層lに対する確率演算処理により求められたn列目の事後確率をsum と表わす。図6に示されるように、階層l−1の事後確率に基づいて階層lの事後確率を求める処理、即ちsum l−1→βmn→αmn→sum を順次計算する処理が1階層内で実行される。 FIG. 5 is a diagram illustrating an LDPC parity check matrix that is divided into L layers each having P rows. FIG. 6 is a diagram showing the execution order of the Layered algorithm in one layer. FIG. 7 is a diagram illustrating the execution order of the Layered algorithm in a plurality of layers. As described above, the probability calculation process is performed on the position where the element of the parity check matrix is “1” (the position where α mn and β mn are defined). At this time, in one layer, as shown in FIG. 6, the probability calculation processing (bit node processing unit, check node processing unit, and posterior probability update processing unit) of the Layered decoding algorithm is executed in order. In addition, each of the bit node processing unit, the check node processing unit, and the posterior probability update processing unit is executed in parallel for P rows in one hierarchy. Here, the posterior probability of the nth column obtained by the probability calculation processing for the hierarchy l is represented as sum n l . As shown in FIG. 6, the process of obtaining the posterior probability of the hierarchy l based on the posterior probability of the hierarchy l-1, that is, the process of sequentially calculating sum n l-1 → β mn → α mn → sum n l is 1 Executed in the hierarchy.

上記のsum l−1→βmn→αmn→sum を順次計算する処理を纏めてsum =fl(sum l−1)と表わすと、複数の階層における確率演算処理は図7のように示すことができる。図7に示すように、第1階層の事後確率sum は初期値sum に基づいて計算し、第2階層の事後確率sum は第1階層の事後確率sum に基づいて計算し、第3階層の事後確率sum は第1階層の事後確率sum に基づいて計算する。以降、各階層について同様にして事後確率を求めていく。 When the above sum n l-1 → β mn → α mn → sum n l are sequentially expressed as sum n l = fl (sum n l−1 ), the probability calculation processing in a plurality of layers is shown in FIG. 7 can be shown. As shown in FIG. 7, the posterior probability sum n 1 of the first layer is calculated based on the initial value sum n 0, and the posterior probability sum n 2 of the second layer is based on the posterior probability sum n 1 of the first layer. The third layer posterior probability sum n 3 is calculated based on the first layer posterior probability sum n 2 . Thereafter, the posterior probability is obtained in the same manner for each layer.

上記の処理において、第l階層の事後確率sum は第l−1階層の事後確率sum l−1に基づいて計算しており、この第l階層内での事後確率sum は各P行の値“1”の位置に対して同時に実行される。このような処理では、検査行列によるデータ衝突という問題が起こる場合がある。 In the above processing, the posterior probability sum n l of the l-th layer is calculated based on the posterior probability sum n l- 1 of the l- 1th layer, and the posterior probability sum n l in this l-th layer is It is executed simultaneously for the position of the value “1” in the P row. Such processing may cause a problem of data collision due to the check matrix.

図8は、データ衝突の発生を示す図である。図8に示すように1つの階層l中の同一の列に2つ“1”が存在する場合を考える。Layeredアルゴリズムでは、上段側の“1”の位置に対する事後確率sum (sum (1)として示す)の計算が、1つ前の階層の事後確率sum l−1に基づいて計算される。またそれと並行して、下段側の“1”の位置に対する事後確率sum (sum (2)として示す)の計算も、1つ前の階層の事後確率sum l−1に基づいて計算される。本来であれば、上段の事後確率sum (1)の計算により事後確率sum が更新されているので、下段側の“1”の位置に対する事後確率sum (2)の計算は、更新後の事後確率sum (1)の値に基づいて行なうことが好ましい。しかしながらLayeredアルゴリズムでは計算処理の効率化のためにP行に対して並列処理を行なっているので、同一列に複数の“1”が存在する場合には、間違った値を用いて確率演算するというデータ衝突問題が起こる。このデータ衝突が発生すると、間違った値を用いるため、誤差を生じ、その結果、誤り訂正能力に影響を与えてしまう。このようなデータ衝突問題は、同一階層内の同一列に複数個の“1”がある検査行列に対して発生する。 FIG. 8 is a diagram illustrating the occurrence of data collision. Consider a case where two “1” s exist in the same column in one hierarchy l as shown in FIG. In the Layered algorithm, the posterior probability sum n l (shown as sum n l (1)) for the position “1” on the upper side is calculated based on the posterior probability sum n l−1 of the previous layer. The In parallel with this, the calculation of the posterior probability sum n l (shown as sum n l (2)) for the position of “1” on the lower side is also based on the posterior probability sum n l−1 of the previous hierarchy. Calculated. It would otherwise, since the posterior probabilities sum n l by calculation of the upper posterior probabilities sum n l (1) has been updated, the calculation of the posterior probability sum n l (2) with respect to the position of the lower side "1" Preferably, this is performed based on the value of the updated posterior probability sum n l (1). However, in the Layered algorithm, parallel processing is performed on P rows in order to increase the efficiency of calculation processing. Therefore, when multiple “1” s exist in the same column, probability calculation is performed using an incorrect value. A data collision problem occurs. When this data collision occurs, an incorrect value is used, so that an error occurs, and as a result, the error correction capability is affected. Such a data collision problem occurs for a check matrix having a plurality of “1” s in the same column in the same hierarchy.

非特許文献1は、近似によりデータ衝突を解決する手法を開示する。この手法は、ある階層においてデータ衝突が起こっている列に対して、当該階層の処理が終わってから、更新後の2個の事後確率を加算して求めた和から前階層の事後確率を減算する処理を実行する。この後処理により、事後確率の近似計算を行う。この処理では、あくまで近似処理が行なわれるだけであり、正しい事後確率値を用いて計算しているのではない。このような事後確率の近似処理では、受信BER(Bit Error Rate)特性が劣化し、劣悪な受信環境において安定した受信ができない。   Non-Patent Document 1 discloses a method for solving data collision by approximation. This method subtracts the posterior probability of the previous hierarchy from the sum obtained by adding the two posterior probabilities after the update for the column where data collision occurs in a hierarchy. Execute the process. By this post-processing, approximate calculation of the posterior probability is performed. In this processing, only approximation processing is performed, and calculation is not performed using correct posterior probability values. In such an a posteriori probability approximation process, the reception BER (Bit Error Rate) characteristics deteriorate, and stable reception cannot be performed in a poor reception environment.

国際公開第WO2004/107585号パンフレットInternational Publication No. WO2004 / 107585 Pamphlet 特開2006−191246号公報JP 2006-191246 A 特開2004−186940号公報JP 2004-186940 A 特開2006−304130号公報JP 2006-304130 A

Arthur Segard, Francois Verdier, David Declercq and Pascal Urard, “ADVB-S2 Compliant LDPC Decoder Integrating the Horizontal Shuffle Scheduling,”ISPACS 2006, pp. 1013-1016, Dec. 2006Arthur Segard, Francois Verdier, David Declercq and Pascal Urard, “ADVB-S2 Compliant LDPC Decoder Integrating the Horizontal Shuffle Scheduling,” ISPACS 2006, pp. 1013-1016, Dec. 2006

以上を鑑みると、Layeredアルゴリズムにおいてデータ衝突時に正しい事後確率値を計算可能な復号化装置が望まれる。   In view of the above, a decoding device that can calculate a correct posterior probability value at the time of data collision in the Layered algorithm is desired.

パリティチェック符号化された受信信号に対して、Layered復号化アルゴリズムにより検査行列の複数の階層の階層毎に確率演算処理を並列に実行して復号処理を行なう復号化装置は、前記確率演算処理を並列に実行する確率演算処理部と、前記確率演算処理部を制御することにより、前記複数の階層のうちの1つの階層内での確率演算処理を、並列性を維持しつつデータ衝突を考慮して複数段の確率演算処理に分け、第1段の処理ではデータ衝突の影響を受けずに計算する確率演算を含む複数の確率演算処理を並列に実行させ、第n段の処理においては第n−1段までの処理の確率演算結果を用いて計算する確率演算処理を並列に実行させる確率演算処理制御部とを含む。   A decoding apparatus that performs a decoding process on a parity check encoded received signal by executing a probability calculation process in parallel for each of a plurality of hierarchies of a check matrix using a Layered decoding algorithm. By controlling the probability calculation processing unit executed in parallel and the probability calculation processing unit, the probability calculation processing in one of the plurality of layers is considered in consideration of data collision while maintaining parallelism. In the first stage process, a plurality of probability calculation processes including a probability calculation that is calculated without being affected by data collision are executed in parallel. A probability calculation processing control unit for executing in parallel the probability calculation processing calculated using the probability calculation result of the process up to −1 stage.

本願開示の少なくとも1つの実施例によれば、Layeredアルゴリズムにおいてデータ衝突時に正しい事後確率値を計算できる。   According to at least one embodiment of the present disclosure, a correct posterior probability value can be calculated at the time of data collision in the Layered algorithm.

LDPC符号を用いた送受信モデルを示す図である。It is a figure which shows the transmission / reception model using a LDPC code. パリティ検査で用いる行列計算の定義を示す図である。It is a figure which shows the definition of the matrix calculation used by a parity check. LDPC検査行列及び確率メッセージについて説明するための図である。It is a figure for demonstrating a LDPC check matrix and a probability message. LDPC復号器の構成の一例を示す図である。It is a figure which shows an example of a structure of a LDPC decoder. L個の階層に分割したLDPC検査行列を示す図である。It is a figure which shows the LDPC check matrix divided | segmented into the L hierarchy. 1階層内でのLayeredアルゴリズムの実行順序を示す図である。It is a figure which shows the execution order of the Layered algorithm within one hierarchy. 複数の階層でのLayeredアルゴリズムの実行順序を示す図である。It is a figure which shows the execution order of the Layered algorithm in a some hierarchy. データ衝突の発生を示す図である。It is a figure which shows generation | occurrence | production of data collision. データ衝突解決方法を示す図である。It is a figure which shows the data collision solution method. 並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第1の実施例を示す図である。It is a figure which shows the 1st Example of the probability calculation process performed by a process of multiple times in consideration of a data collision, maintaining parallelism as much as possible. 並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第1の実施例を示すフローチャートである。It is a flowchart which shows the 1st Example of the probability calculation process performed by considering a data collision, maintaining a parallelism as much as possible, and performing multiple processes. 並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により確率演算処理を実行するLDPC復号器の構成の第1の実施例を示す図である。It is a figure which shows the 1st Example of a structure of the LDPC decoder which performs a probability calculation process by considering a data collision, maintaining a parallelism as much as possible, and performing a process multiple times. 並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第2の実施例を示す図である。It is a figure which shows the 2nd Example of the probability calculating process performed by considering a data collision and maintaining a parallelism as much as possible, and performing by multiple processes. チェックノード処理におけるαmnの計算を示す図である。It is a figure which shows calculation of (alpha) mn in a check node process. 符号再計算及び絶対値再計算の必要性を判断する具体的な処理のフローチャートである。It is a flowchart of the concrete process which judges the necessity of code recalculation and absolute value recalculation. 符号再計算及び絶対値再計算の必要性を判断する一般的な処理のフローチャートである。It is a flowchart of the general process which judges the necessity of code recalculation and absolute value recalculation. 並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第2の実施例を示すフローチャートである。It is a flowchart which shows the 2nd Example of the probability calculating process performed by considering a data collision, and performing by multiple times processing, maintaining parallelism as much as possible. 並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により確率演算処理を実行するLDPC復号器の構成の第2の実施例を示す図である。It is a figure which shows the 2nd Example of a structure of the LDPC decoder which performs a probability calculation process by considering a data collision, maintaining a parallelism as much as possible, and performing a process multiple times. シミュレーションにより得たBER特性結果を示す図である。It is a figure which shows the BER characteristic result obtained by simulation. LDPC復号器を備えたシステム構成の一例を示す図である。It is a figure which shows an example of a system structure provided with the LDPC decoder.

以下に、本発明の実施例を添付の図面を用いて詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

図9は、データ衝突解決方法を示す図である。図9に示すように検査行列Hの階層lにおいて同一列に2つの“1”がある場合、前段処理150を行ってから後段処理151を実行する。この際、前段処理150において、上段側の“1”の事後確率sum (1)を計算し、下段側の“1”の位置に対する事後確率sum (2)は計算しなくてよい。或いは、前段処理150において、上段側の“1”の事後確率sum (1)を計算するのと同時に下段側の“1”の位置に対する事後確率sum (2)を計算してもよい。後段処理151においては、上段側の“1”の事後確率sum (1)を用いて、下段側の“1”の位置に対する事後確率sum (2)の計算を行なう。下段側の“1”が階層l内の同一列の最後の“1”であれば、この事後確率sum (2)が階層lの確率演算処理後の事後確率sum となる。下段側の“1”が階層l内の同一列の最後の“1”でなく、更に下段に3つめの“1”があれば、同様にして更なる後段処理151を実行し、3つめの“1”に対する事後確率sum (3)を求める。 FIG. 9 is a diagram illustrating a data collision solution method. As shown in FIG. 9, when there are two “1” s in the same column in the hierarchy 1 of the parity check matrix H, the post-stage process 151 is performed after the pre-stage process 150 is performed. At this time, in the pre-stage processing 150, the posterior probability sum n l (1) of “1” on the upper side may be calculated, and the posterior probability sum n l (2) for the position of “1” on the lower side may not be calculated. . Alternatively, in the pre-processing 150, the posterior probability sum n l (2) for the upper stage “1” is calculated and the posterior probability sum n l (2) for the position “1” on the lower stage is calculated. Good. In the post-processing 151, the posterior probability sum n l (2) for the position of “1” on the lower side is calculated using the posterior probability sum n l (1) on the upper side. If “1” on the lower side is the last “1” in the same column in the hierarchy l, this posterior probability sum n l (2) becomes the posterior probability sum n l after the probability calculation processing of the hierarchy l. If “1” on the lower side is not the last “1” in the same column in the hierarchy l, and there is a third “1” on the lower level, further post-processing 151 is executed in the same manner, and the third The posterior probability sum n l (3) for “1” is obtained.

前段処理150及び後段処理151は、並列性を可能な限り維持しつつデータ衝突を考慮して実行される。即ち、他の列及び他の行に対する確率演算処理が前段処理150や後段処理151と同時に並行して実行可能であれば、それらの処理を並列に実行する。以下に詳細に説明する第1の実施例では、第1段の処理において、データ衝突の影響を受けずに正しく計算できる全確率演算を並列に実行する。更に、その後段の処理において、第1段の処理では未計算であり、データ衝突の影響を受けるために第1段の処理の実行結果を利用して初めて正しく計算できる確率演算を並列に実行する。より一般的には、複数段の処理において、第1段の処理においてはデータ衝突の影響を受けずに正しく計算できる全確率演算処理を並列に実行し、その後の第n段(n:2以上の整数)の処理においては第n−1段までの処理の確率演算結果を用いる処理を並列に実行する。また第2の実施例では、第1段の処理において、全確率演算を並列に実行する。更に、その後段の処理において、データ衝突の影響を受けるために再計算が必要な確率演算処理を並列に実行する。より一般的には、複数段の処理において、第1段の処理においては全確率演算処理を並列に実行し、その後の第n段の処理においては第n−1段までの処理の確率演算結果を用いて再計算が必要な処理を並列に実行する。   The pre-stage process 150 and the post-stage process 151 are executed in consideration of data collision while maintaining parallelism as much as possible. That is, if the probability calculation processing for other columns and other rows can be executed in parallel with the pre-stage process 150 and the post-stage process 151, these processes are executed in parallel. In the first embodiment, which will be described in detail below, in the first stage of processing, all probability calculations that can be calculated correctly without being affected by data collision are executed in parallel. Further, in the subsequent processing, the probability calculation that is not calculated in the first processing and can be correctly calculated for the first time by using the execution result of the first processing in order to be affected by the data collision is executed in parallel. . More generally, in a multi-stage process, all probability calculation processes that can be calculated correctly without being affected by data collision in the first stage process are executed in parallel, and the subsequent n-th stage (n: 2 or more) In the process of (integer), processes using the probability calculation results of the processes up to the (n-1) th stage are executed in parallel. In the second embodiment, all probability calculations are executed in parallel in the first stage process. Further, in the subsequent processing, probability calculation processing that requires recalculation in order to be affected by data collision is executed in parallel. More generally, in multi-stage processing, all probability calculation processes are executed in parallel in the first stage process, and the probability calculation results of processes up to the (n-1) -th stage in the subsequent n-th stage process. Execute processes that require recalculation in parallel.

このように、Layeredアルゴリズムにおいて、1つの階層内での確率演算処理を、並列性を維持しつつデータ衝突を考慮して複数回の確率演算処理に分けて実行する。第1段では、データ衝突の影響を受けずに正しく計算できる確率演算を含む複数の確率演算処理を並列に実行し、第n段の処理においては第n−1段までの処理の確率演算結果を用いて正しく計算できる確率演算処理を並列に実行する。ここで、並列性を維持するというのは、可能な限り維持すると言うことであり、並列性が維持できないときには並列処理にはならないことを許容する。例えば、第n段の処理において実行すべき確率演算処理が1つしかなければ、当然ながらその1つの処理のみが実行される。また正しく計算できる確率演算というのは、着目階層内で上から順に1行ずつ確率演算処理を行なった場合と同一の結果をもたらす確率演算のことである。   As described above, in the Layered algorithm, the probability calculation process in one layer is divided into a plurality of probability calculation processes in consideration of data collision while maintaining parallelism. In the first stage, a plurality of probability calculation processes including a probability calculation that can be calculated correctly without being affected by data collision are executed in parallel. In the n-th stage process, the probability calculation results of the processes up to the (n-1) -th stage are executed. Probabilistic calculation processing that can be correctly calculated using is executed in parallel. Here, maintaining parallelism means maintaining as much as possible, and when parallelism cannot be maintained, it is allowed that parallel processing is not performed. For example, if there is only one probability calculation process to be executed in the n-th stage process, of course, only that one process is executed. Moreover, the probability calculation that can be calculated correctly is a probability calculation that yields the same result as when the probability calculation processing is performed line by line in order from the top in the target hierarchy.

図10は、並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第1の実施例を示す図である。階層lの一例として行列30が示される。第2行第1列の位置、第3行第1列の位置、第4行第4列の位置、第4行第6列の位置の合計4つの位置において、同一列に複数の“1”が発生するデータ衝突が起きている。即ち、これら4つの位置においては、前階層l−1の確率演算処理の結果のみを用いたのでは、正しい事後確率値を計算することはできない。またこれら4つの位置の確率βに影響を受ける位置においても、正しい事後確率値を求めることができない。   FIG. 10 is a diagram showing a first example of a probability calculation process executed by a plurality of processes in consideration of data collision while maintaining parallelism as much as possible. A matrix 30 is shown as an example of the hierarchy l. A plurality of “1” s in the same column at a total of four positions: the position of the second row and the first column, the position of the third row and the first column, the position of the fourth row and the fourth column, and the position of the fourth row and the sixth column. A data collision occurs. That is, at these four positions, it is impossible to calculate a correct posterior probability value by using only the result of the probability calculation process of the previous hierarchy l-1. Also, a correct posterior probability value cannot be obtained even at a position affected by the probability β of these four positions.

図10において、集合S(βi)はi段の処理により演算すべき確率メッセージβの集合である。また集合S(αi)はi段の処理により演算すべき確率メッセージαの集合である。更に集合S(sumi)はi段の処理により演算すべき事後確率sumの集合である。行列30の例の場合、まず集合群31に示す各集合に対して、第1段の確率演算処理が並列に実行される。即ち、データ衝突の影響を受けずに事後確率を正しく計算できる全確率演算処理を実行する。この場合、各列で最初に出現する“1”の位置に対応する確率βを求める確率演算処理(即ちビットノード処理)は、正しく計算することができる。即ち、集合S(β1)={β11,β16,β24,β25,β33}については、前階層l−1の確率演算処理の結果のみを用いて正しく計算することができる。また全ての“1”の位置においてビットノード処理が正しく計算された行における確率αを求める確率演算処理(即ちチェックノード処理)は、正しく計算することができる。即ち、集合S(α1)={α11,α16}については、既に実行済みのビットノード処理の結果を用いて正しく計算することができる。またビットノード処理及びチェックノード処理が正しく行なわれた列に対する事後確率sumを求める確率演算処理(即ち事後確率更新処理)は、取り敢えず正しく計算することができる。即ち、集合S(sum1)={sum,sum}については、既に実行済みのビットノード処理及びチェックノード処理の結果を用いて取り敢えず正しく計算することができる。なおここで言う「取り敢えず正しい計算」とは、この段の処理については正しい更新演算であるが、後段において更に更新され得る計算と言うことである。 In FIG. 10, a set S (βi) is a set of probability messages β to be calculated by i-stage processing. A set S (αi) is a set of probability messages α to be calculated by i stages of processing. Furthermore, the set S (sumi) is a set of posterior probabilities sum to be calculated by i-stage processing. In the case of the example of the matrix 30, first, the first stage probability calculation process is executed in parallel for each set shown in the set group 31. That is, the entire probability calculation process that can correctly calculate the posterior probability without being affected by the data collision is executed. In this case, the probability calculation processing (that is, bit node processing) for obtaining the probability β corresponding to the position of “1” that first appears in each column can be correctly calculated. That is, the set S (β1) = {β 11 , β 16 , β 24 , β 25 , β 33 } can be correctly calculated using only the result of the probability calculation process of the previous hierarchy l-1. In addition, the probability calculation processing (that is, check node processing) for obtaining the probability α in the row in which the bit node processing is correctly calculated at all “1” positions can be correctly calculated. That is, the set S (α1) = {α 11 , α 16 } can be correctly calculated using the result of the already executed bit node processing. In addition, the probability calculation process (that is, the posterior probability update process) for obtaining the posterior probability sum for the column in which the bit node process and the check node process are correctly performed can be calculated correctly for the time being. That is, the set S (sum1) = {sum 1 , sum 6 } can be calculated correctly using the result of the already executed bit node processing and check node processing. Note that the “correct calculation for the time being” mentioned here is a calculation that can be further updated in the subsequent stage although it is a correct update operation for the process in this stage.

次に集合群32に示す各集合に対して、第2段の確率演算処理が並列に実行される。即ち、第1段までの処理の確率演算結果を用いて事後確率を正しく計算できる確率演算処理を並列に実行する。この場合、第1段までの確率演算処理で事後確率sum及び確率αが正しく更新されている列に対する確率βを更新する確率演算処理(即ちビットノード処理)は、第1段までの処理の確率演算結果を用いて正しく計算することができる。即ち、集合S(β2)={β21,β46}については、第1段までの確率演算処理の結果を用いて正しく計算することができる。また全ての“1”の位置においてビットノード処理が正しく計算された行における確率αを求める確率演算処理(即ちチェックノード処理)は、正しく計算することができる。即ち、集合S(α2)={α21,α24,α25}については、既に実行済みのビットノード処理の結果を用いて正しく計算することができる。またビットノード処理及びチェックノード処理が正しく行なわれた列に対する事後確率sumを求める確率演算処理(即ち事後確率更新処理)は、取り敢えず正しく計算することができる。即ち、集合S(sum2)={sum,sum,sum}については、既に実行済みのビットノード処理及びチェックノード処理の結果を用いて取り敢えず正しく計算することができる。 Next, the second-stage probability calculation process is executed in parallel for each set shown in the set group 32. That is, the probability calculation process that can correctly calculate the posterior probability using the probability calculation result of the process up to the first stage is executed in parallel. In this case, the probability calculation process (that is, the bit node process) for updating the probability β for the column in which the posterior probability sum and the probability α are correctly updated in the probability calculation process up to the first stage is the probability of the process up to the first stage. It is possible to calculate correctly using the calculation result. That is, the set S (β2) = {β 21 , β 46 } can be correctly calculated using the result of the probability calculation processing up to the first stage. In addition, the probability calculation processing (that is, check node processing) for obtaining the probability α in the row in which the bit node processing is correctly calculated at all “1” positions can be correctly calculated. That is, the set S (α2) = {α 21 , α 24 , α 25 } can be correctly calculated using the result of the already executed bit node processing. In addition, the probability calculation process (that is, the posterior probability update process) for obtaining the posterior probability sum for the column in which the bit node process and the check node process are correctly performed can be calculated correctly for the time being. That is, the set S (sum2) = {sum 1 , sum 4 , sum 5 } can be calculated correctly for the time being using the results of the already executed bit node processing and check node processing.

次に集合群33に示す各集合に対して、第3段の確率演算処理が並列に実行される。即ち、第2段までの処理の確率演算結果を用いて事後確率を正しく計算できる確率演算処理を並列に実行する。この場合、第2段までの確率演算処理で事後確率sum及び確率αが正しく更新されている列に対する確率βを更新する確率演算処理(即ちビットノード処理)は、第2段までの処理の確率演算結果を用いて正しく計算することができる。即ち、集合S(β3)={β31,β44}については、第2段までの確率演算処理の結果を用いて正しく計算することができる。また全ての“1”の位置においてビットノード処理が正しく計算された行における確率αを求める確率演算処理(即ちチェックノード処理)は、正しく計算することができる。即ち、集合S(α3)={α31,α33,α44,α46}については、既に実行済みのビットノード処理の結果を用いて正しく計算することができる。またビットノード処理及びチェックノード処理が正しく行なわれた列に対する事後確率sumを求める確率演算処理(即ち事後確率更新処理)は、正しく計算することができる。即ち、集合S(sum3)={sum,sum,sum,sum}については、既に実行済みのビットノード処理及びチェックノード処理の結果を用いて正しく計算することができる。 Next, for each set shown in the set group 33, the third-stage probability calculation process is executed in parallel. That is, the probability calculation process that can correctly calculate the posterior probability using the probability calculation result of the process up to the second stage is executed in parallel. In this case, the probability calculation process (that is, the bit node process) for updating the probability β for the column in which the posterior probability sum and the probability α are correctly updated in the probability calculation process up to the second stage is the probability of the process up to the second stage. It is possible to calculate correctly using the calculation result. That is, the set S (β3) = {β 31 , β 44 } can be correctly calculated using the result of the probability calculation processing up to the second stage. In addition, the probability calculation processing (that is, check node processing) for obtaining the probability α in the row in which the bit node processing is correctly calculated at all “1” positions can be correctly calculated. That is, the set S (α3) = {α 31 , α 33 , α 44 , α 46 } can be correctly calculated using the result of already executed bit node processing. In addition, the probability calculation process (that is, the posterior probability update process) for obtaining the posterior probability sum for a column in which the bit node process and the check node process are correctly performed can be correctly calculated. That is, for the set S (sum3) = {sum 1 , sum 3, sum 4, sum 6}, can be correctly calculated by using already results of executed bit node processing and check node processing.

図11は、並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第1の実施例を示すフローチャートである。ステップS1で初期化処理を行なう。即ち、事後確率sumに、初期値として事前確率λを代入する。その後、検査行列の各階層についてステップS2以降の処理を繰り返す。ステップS2で、着目階層においてデータ衝突があるか否かを判断する。即ち、着目階層の同一列に複数の“1”が存在するか否かを判断する。データ衝突がない場合にはステップS3に進む。データ衝突がある場合にはステップS6に進む。 FIG. 11 is a flowchart showing a first embodiment of a probability calculation process executed by a plurality of processes in consideration of data collision while maintaining parallelism as much as possible. In step S1, initialization processing is performed. That is, the prior probability λ n is substituted for the posterior probability sum n as an initial value. Thereafter, the processes in and after step S2 are repeated for each hierarchy of the check matrix. In step S2, it is determined whether there is a data collision in the target hierarchy. That is, it is determined whether or not there are a plurality of “1” s in the same column of the target hierarchy. If there is no data collision, the process proceeds to step S3. If there is a data collision, the process proceeds to step S6.

ステップS3で、集合Sに対してビットノード処理を実行する。ここで集合Sとは、着目階層において、検査行列の値が“1”である全ての要素の集合である。ステップS4で、集合Sに対してチェックノード処理を実行する。ステップS5で、集合Sに対して事後確率更新処理を実行する。これらステップS3乃至S5の処理は、従来のLayeredアルゴリズムと同様に、着目階層内の全ての行に対して各確率演算処理を並列に実行する処理である。これらの各確率演算処理が終了するとステップS12に進む。   In step S3, bit node processing is executed for the set S. Here, the set S is a set of all elements having a parity check matrix value “1” in the target hierarchy. In step S4, check node processing is executed for the set S. In step S5, a posteriori probability update process is executed for the set S. The processes in steps S3 to S5 are processes for executing each probability calculation process in parallel on all the rows in the target hierarchy, as in the conventional Layered algorithm. When each of these probability calculation processes ends, the process proceeds to step S12.

データ衝突がある場合に実行されるステップS6では、何段目の処理であるかを示す変数iを1に初期化する。ステップS7で、集合S(βi)に対してビットノード処理を実行する。前述のように、集合S(βi)はi段の処理により演算すべき確率メッセージβの集合である。ステップS8で、集合S(αi)に対してチェックノード処理を実行する。集合S(αi)はi段の処理により演算すべき確率メッセージαの集合である。ステップS9で、集合S(sumi)に対して事後確率更新処理を実行する。集合S(sumi)はi段の処理により演算すべき事後確率sumの集合である。ステップS10で、着目階層の確率演算処理が完了したか否かを判断する。着目階層の確率演算処理が完了していない場合には、ステップS11で変数iの値を1増加させ、ステップS7に戻り以降の処理を繰り返す。着目階層の確率演算処理が完了すると、ステップS12に進む。   In step S6, which is executed when there is a data collision, a variable i indicating what stage of processing is initialized to 1. In step S7, bit node processing is executed for the set S (βi). As described above, the set S (βi) is a set of probability messages β to be calculated by i-stage processing. In step S8, check node processing is executed for the set S (αi). The set S (αi) is a set of probability messages α to be calculated by i-stage processing. In step S9, a posteriori probability update process is executed for the set S (sumi). A set S (sumi) is a set of posterior probabilities sum to be calculated by i-stage processing. In step S10, it is determined whether or not the probability calculation process for the target hierarchy is completed. When the probability calculation process for the target hierarchy is not completed, the value of the variable i is incremented by 1 in step S11, and the process returns to step S7 to repeat the subsequent processes. When the probability calculation process for the target hierarchy is completed, the process proceeds to step S12.

ステップS12では、検査行列の最後の階層の確率演算処理が完了したか否かを判断する。最後の階層の確率演算処理が完了していない場合には、ステップS2に戻り、次の階層を対象としてステップS2以降の処理を繰り返す。最後の階層の確率演算処理が完了すると、ステップS13で、パリティ検査を実行する。即ち、求められた事後確率sumから算出したRx’に対して検査行列を掛けて、演算結果がゼロになるか否かを判断する。パリティ検査結果がゼロでなければ、ステップS2に戻り以降の処理を繰り返すことにより、事後確率sumを再度更新する。パリティ検査結果がゼロになるまで、上記の処理を反復的に実行し、パリティ検査結果がゼロになると処理を終了する。 In step S12, it is determined whether or not the probability calculation process for the last layer of the parity check matrix has been completed. When the probability calculation process of the last hierarchy is not completed, the process returns to step S2, and the processes after step S2 are repeated for the next hierarchy. When the probability calculation process of the last hierarchy is completed, a parity check is executed in step S13. That is, Rx ′ calculated from the obtained posterior probability sum n is multiplied by a check matrix to determine whether or not the calculation result is zero. If the parity check result is zero, by repeating the processes after the process returns to step S2, and updates the posterior probabilities sum n again. The above process is repeatedly executed until the parity check result becomes zero, and the process ends when the parity check result becomes zero.

図12は、並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により確率演算処理を実行するLDPC復号器の構成の第1の実施例を示す図である。図12のLDPC復号器40は、基本構成として、ビットノード処理部41、チェックノード処理部42、事後確率更新処理部43、及びパリティ検査部44を含む。ビットノード処理部41は、事前確率λ又は事後確率sumと確率メッセージαmnとを用いて確率メッセージβmnを算出する。具体的には、初期状態においては事後確率sumとして事前確率λを用いて確率メッセージβmnを算出し、その後の反復処理では事後確率更新処理部43が求めたsumを用いて確率メッセージβmnを算出する。チェックノード処理部42は、確率βmnを用いて確率αmnを更新する。事後確率更新処理部43は、ビットノード処理部41で算出したβmnとチェックノード処理部42で算出したαmnとを用いて事後確率sumを更新する。パリティ検査部44は、事後確率sumを用いてRx’を算出してパリティ検査H×Rx’の演算を行なう。このパリティ検査の結果がゼロであるか否かに基づいて、復号処理を終了するか或いは事後確率sumをフィードバックして反復処理をもう一回繰返すかが制御される。 FIG. 12 is a diagram illustrating a first example of a configuration of an LDPC decoder that executes probability calculation processing by a plurality of processes in consideration of data collision while maintaining parallelism as much as possible. The LDPC decoder 40 of FIG. 12 includes a bit node processing unit 41, a check node processing unit 42, a posterior probability update processing unit 43, and a parity check unit 44 as a basic configuration. The bit node processing unit 41 calculates the probability message β mn using the prior probability λ n or the posterior probability sum n and the probability message α mn . Specifically, to calculate the probability that the message beta mn with prior probability lambda n as posterior probabilities sum n in the initial state, probability that the message using the sum n posterior probability updating unit 43 is determined in a subsequent iteration β mn is calculated. The check node processing unit 42 updates the probability α mn using the probability β mn . The posterior probability update processing unit 43 updates the posterior probability sum n using β mn calculated by the bit node processing unit 41 and α mn calculated by the check node processing unit 42. The parity check unit 44 calculates Rx ′ using the posterior probability sum and performs a parity check H × Rx ′ calculation. Based on whether the result of this parity check is zero or not, it is controlled whether to end the decoding process or feed back the posterior probability sum to repeat the iterative process once more.

LDPC復号器40は更に、ビットノード処理開始制御部45、チェックノード処理開始制御部46、事後確率更新処理開始制御部47、データ衝突検出部48、βメモリ49、αメモリ50、及びLLRメモリ51を含む。LDPC復号器40は更に、β集合演算開始テーブル52、α集合演算開始テーブル53、及びsum集合演算開始テーブル54を含む。各処理開始制御部45乃至47が確率演算処理制御部として機能し、上述の各処理部41乃至43を含む確率演算処理部を制御する。   The LDPC decoder 40 further includes a bit node process start control unit 45, a check node process start control unit 46, a posterior probability update process start control unit 47, a data collision detection unit 48, a β memory 49, an α memory 50, and an LLR memory 51. including. The LDPC decoder 40 further includes a β set operation start table 52, an α set operation start table 53, and a sum set operation start table 54. Each process start control part 45 thru | or 47 functions as a probability calculation process control part, and controls the probability calculation process part containing each process part 41 thru | or 43 mentioned above.

データ衝突検出部48は、階層カウンタが示す検査行列の着目階層について、データ衝突があるか否かを判断する。データ衝突検出部48は、データ衝突の有無に応じてビットノード処理開始制御部45、チェックノード処理開始制御部46、及び事後確率更新処理開始制御部47を制御する。データ衝突がない場合、これら処理開始制御部45乃至47は、それぞれビットノード処理部41、チェックノード処理部42、及び事後確率更新処理部43を制御し、階層内の全てのビットノード処理、チェックノード処理、及び事後確率更新処理を実行する。   The data collision detection unit 48 determines whether or not there is a data collision for the target hierarchy of the check matrix indicated by the hierarchy counter. The data collision detection unit 48 controls the bit node process start control unit 45, the check node process start control unit 46, and the posterior probability update process start control unit 47 according to the presence or absence of data collision. When there is no data collision, these processing start control units 45 to 47 control the bit node processing unit 41, the check node processing unit 42, and the posterior probability update processing unit 43, respectively, and perform all bit node processing and check in the hierarchy. Node processing and posterior probability update processing are executed.

データ衝突がある場合、ビットノード処理開始制御部45は、β集合演算開始テーブル52が示すLLRメモリ51とαメモリ50の必要なアドレスから読み出したデータに基づいて、ビットノード処理部41にビットノード処理を実行させる。即ち、i段目の処理において、ビットノード処理部41が、集合S(βi)に対してビットノード処理を実行する。i段目の処理の集合S(βi)を示すデータがβ集合演算開始テーブル52に格納されている。またチェックノード処理開始制御部46は、α集合演算開始テーブル53が示すβメモリ49の必要なアドレスから読み出したデータに基づいて、チェックノード処理部42にチェックノード処理を実行させる。即ち、i段目の処理において、チェックノード処理部42が、集合S(αi)に対してビットノード処理を実行する。i段目の処理の集合S(αi)を示すデータがα集合演算開始テーブル53に格納されている。また事後確率更新処理開始制御部47は、sum集合演算開始テーブル54が示すαメモリ50とβメモリ49の必要なアドレスから読み出したデータに基づいて、事後確率更新処理部43に事後確率更新処理を実行させる。即ち、i段目の処理において、事後確率更新処理部43が、集合S(sumi)に対して事後確率更新処理を実行する。i段目の処理の集合S(sumi)を示すデータがsum集合演算開始テーブル54に格納されている。   When there is a data collision, the bit node processing start control unit 45 sends the bit node processing unit 41 to the bit node processing unit 41 based on the data read from the necessary addresses of the LLR memory 51 and the α memory 50 indicated by the β set operation start table 52. Execute the process. That is, in the i-th stage process, the bit node processing unit 41 executes the bit node process for the set S (βi). Data indicating a set S (βi) of the i-th process is stored in the β set calculation start table 52. The check node processing start control unit 46 causes the check node processing unit 42 to execute the check node processing based on data read from a necessary address in the β memory 49 indicated by the α set calculation start table 53. That is, in the i-th stage process, the check node processing unit 42 performs a bit node process for the set S (αi). Data indicating a set S (αi) of the i-th process is stored in the α set calculation start table 53. Further, the posterior probability update processing start control unit 47 performs posterior probability update processing on the posterior probability update processing unit 43 based on data read from necessary addresses in the α memory 50 and the β memory 49 indicated by the sum set calculation start table 54. Let it run. That is, in the i-th stage process, the posterior probability update processing unit 43 executes the posterior probability update process for the set S (sumi). Data indicating a set S (sumi) of the i-th process is stored in the sum set calculation start table 54.

図13は、並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第2の実施例を示す図である。階層lの一例として行列60が示される。第2行第1列の位置、第3行第1列の位置、第4行第4列の位置、第4行第6列の位置の合計4つの位置において、同一列に複数の“1”が発生するデータ衝突が起きている。即ち、これら4つの位置においては、前階層l−1の確率演算処理の結果のみを用いたのでは、正しい事後確率値を計算することはできない。またこれら4つの位置の確率βに影響を受ける位置においても、正しい事後確率値を求めることができない。   FIG. 13 is a diagram showing a second embodiment of the probability calculation process executed by a plurality of processes in consideration of data collision while maintaining parallelism as much as possible. A matrix 60 is shown as an example of the hierarchy l. A plurality of “1” s in the same column at a total of four positions: the position of the second row and the first column, the position of the third row and the first column, the position of the fourth row and the fourth column, and the position of the fourth row and the sixth column. A data collision occurs. That is, at these four positions, it is impossible to calculate a correct posterior probability value by using only the result of the probability calculation process of the previous hierarchy l-1. In addition, a correct posterior probability value cannot be obtained even at a position affected by the probability β of these four positions.

確率演算処理の第2の実施例では、第1段の処理において、全確率演算を並列に実行する。更に、その後段の処理において、データ衝突の影響を受けるために再計算が必要となる確率演算処理を並列に実行する。図13において、C(βi)は、後段処理である再計算処理においてi回目の再計算の対象となる確率メッセージβの集合である。C(αi)及びC(sumi)は、C(βi)の再計算の結果に応じて再計算の要否の判定が必要となる確率メッセージαの集合及び事後確率sumの集合である。E(βi)、E(αi)、及びE(sumi)は、C(αi)及びC(sumi)の再計算が必要である場合に、C(βi)、C(αi)、及びC(sumi)を再計算したことの影響を受けるβ、α、及びsumの集合である。C’(sumi)は、C(αi)及びC(sumi)の再計算が必要ない場合に、C(βi)を再計算したことにより値が変化する事後確率sumの集合である。E’(βi)、E’(αi)、及びE’(sumi)は、C(αi)及びC(sumi)の再計算が必要ない場合に、C(βi)を再計算したことによる値が変化するC’(sumi)により影響を受けるβ、α、及びsumの集合である。   In the second embodiment of the probability calculation process, all probability calculations are executed in parallel in the first stage process. Further, in the subsequent processing, probability calculation processing that requires recalculation in order to be affected by data collision is executed in parallel. In FIG. 13, C (βi) is a set of probability messages β to be recalculated in the i-th recalculation process in the recalculation process that is the latter stage process. C (αi) and C (sumi) are a set of probability messages α and a set of posterior probabilities sum that need to be determined whether recalculation is necessary according to the result of recalculation of C (βi). E (βi), E (αi), and E (sumi) are C (βi), C (αi), and C (sumi) when C (αi) and C (sumi) need to be recalculated. ) Is a set of β, α, and sum affected by recalculation. C ′ (sumi) is a set of posterior probabilities sum whose values change due to recalculation of C (βi) when recalculation of C (αi) and C (sumi) is not necessary. E ′ (βi), E ′ (αi), and E ′ (sumi) have values obtained by recalculating C (βi) when recalculation of C (αi) and C (sumi) is not necessary. A set of β, α, and sum affected by changing C ′ (sumi).

第1回目の再計算処理では、集合群61に対する再計算が実行される。C(β1)として、データ衝突のある“1”のうち最上行にあるβ21が再計算の対象となる。またβ21の再計算の結果、C(α1)及びC(sum1)の再計算が必要な場合には、C(α1)、C(sum1)、E(β1)、E(α1)、及びE(sum1)が再計算される。逆にC(α1)及びC(sum1)の再計算が必要ない場合には、C’(sum1)、E’(β1)、E’(α1)、及びE’(sum1)が再計算される。同様にして、第2回目の再計算処理では集合群61に対する再計算が実行され、データ衝突のある“1”のうち第2番目の行にあるβ31が再計算の対象となる。また、第3回目の再計算処理では集合群63に対する再計算が実行され、データ衝突のある“1”のうち第3番目の行の一番左にあるβ44が再計算の対象となる。また、第4回目の再計算処理では集合群64に対する再計算が実行され、データ衝突のある“1”のうち第3番目の行の左から2番目にあるβ46が再計算の対象となる。 In the first recalculation process, recalculation for the set group 61 is executed. As C (β1), β 21 in the uppermost row among “1” having data conflict becomes a target of recalculation. As a result of recalculation of β 21 , when C (α 1) and C (sum 1) need to be recalculated, C (α 1), C (sum 1), E (β 1), E (α 1), and E (Sum1) is recalculated. Conversely, when recalculation of C (α1) and C (sum1) is not necessary, C ′ (sum1), E ′ (β1), E ′ (α1), and E ′ (sum1) are recalculated. . Similarly, in the second recalculation process, a recalculation is performed on the set group 61, and β 31 in the second row of “1” with data collision becomes a recalculation target. Further, in the third recalculation process, recalculation is performed on the set group 63, and β 44 on the leftmost side of the third row among “1” having data collision becomes a recalculation target. In the fourth recalculation process, recalculation is performed on the set group 64, and β 46, which is the second from the left in the third row among “1” having data collision, is the object of recalculation. .

以下に、C(αi)、C(sumi)の再計算処理の必要性の有無の判断について説明する。Layeredアルゴリズムで一般的に使われているチェックノード計算は、Min-sum系のチェックノード計算である。このMin-sum系のチェックノード計算式の代表として、Min-sumアルゴリズムのチェックノード計算式は以下の式(3)のようになる。   Hereinafter, the determination of the necessity of recalculation processing for C (αi) and C (sumi) will be described. The check node calculation generally used in the Layered algorithm is a Min-sum check node calculation. As a representative of this Min-sum system check node calculation formula, the check node calculation formula of the Min-sum algorithm is as shown in the following formula (3).

Figure 2011082865
ここでA(m)は、タナーグラフにおいてチェックノードcmに接続する全てのビットノ
ードの集合を表わす。即ち、A(m)は、チェックノードcmに対応する検査行列の行に
おいて“1”である列の位置に対応するビットノードの集合である。A(m)\nは、A(m)からbnを除いたビットノードの集合を表わす。即ち、図14に示すように、αmnを計算するときにはβmnを使わず、残りの集合A(m)\nのβを用いる。
Figure 2011082865
Here, A (m) represents a set of all bit nodes connected to the check node cm in the Tanner graph. That is, A (m) is a set of bit nodes corresponding to the position of the column that is “1” in the row of the check matrix corresponding to the check node cm. A (m) \ n represents a set of bit nodes obtained by removing bn from A (m). That is, as shown in FIG. 14, when α mn is calculated, β mn is not used, and β of the remaining set A (m) \ n is used.

Min-sum系のチェックノード計算式を絶対値計算部分と符号計算部分との2つの部分に分けて考える。αmnの絶対値は、集合A(m)\nのβの絶対値の最小値に等しい。従ってβmnが最小値ではない場合には、αmnの絶対値は全体集合A(m)のβの絶対値の最小値と同値である、βmnが最小値の場合には、αmnの絶対値は全体集合A(m)のβの絶対値の第2最小値と同値である。αmnの符号は、A(m)\nのβの符号の掛け算で算出する。符号位乗算の特性により、αmnの符号は、全体集合A(m)のβ符号を乗算してから更にβmnの符号を乗算することにより求めてもよい。 The Min-sum check node calculation formula is divided into two parts, an absolute value calculation part and a sign calculation part. The absolute value of α mn is equal to the minimum absolute value of β of the set A (m) \ n. Therefore, if β mn is not the minimum value, the absolute value of α mn is the same as the minimum value of the absolute value of β in the entire set A (m). If β mn is the minimum value, α mn The absolute value is the same as the second minimum value of the absolute values of β in the entire set A (m). The sign of α mn is calculated by multiplying the sign of β of A (m) \ n. Depending on the sign multiplication characteristic, the code of α mn may be obtained by multiplying the β code of the entire set A (m) and then multiplying by the code of β mn .

図15は、符号再計算及び絶対値再計算の必要性を判断する具体的な処理のフローチャートである。図15に示すフローチャートは、図13に示す第1回目の再計算処理における集合群61を説明するものである。ステップS1において、前述の式(1)を用いてβ’21=f(sum (1),α21)を再計算する。再計算前のβに対して、β’は再計算後の値を示す。ここでsum (1)は、階層lの第1行(チェックノードc1に対応する行)に対して実行した確率演算処理により求められた第1列(ビットノードbnに対応する列)の事後確率である。なおチェックノードc2のチェックノード処理においては、前記式(3)から分かるように、α21はβ24及びβ25から求め、α24はβ21及びβ25から求め、α25はβ21及びβ24から求めることになる。従って、β’21の再計算により、少なくともα24及びα25の計算が影響を受けることになる。 FIG. 15 is a flowchart of specific processing for determining the necessity of code recalculation and absolute value recalculation. The flowchart shown in FIG. 15 explains the set group 61 in the first recalculation process shown in FIG. In step S1, β ′ 21 = f b (sum 1 l (1), α 21 ) is recalculated using the above equation (1). Β ′ represents a value after recalculation with respect to β before recalculation. Here, sum 1 l (1) is the first column (column corresponding to the bit node bn) obtained by the probability calculation process performed on the first row (row corresponding to the check node c1) of the hierarchy l. A posteriori probability. In the check node processing of the check node c2, as can be seen from the above equation (3), α 21 is obtained from β 24 and β 25 , α 24 is obtained from β 21 and β 25 , and α 25 is obtained from β 21 and β It will be obtained from 24 . Therefore, the recalculation of β ′ 21 will affect at least the calculation of α 24 and α 25 .

まず前提として、確率演算処理の第2の実施例では、第1段の処理において全確率演算を並列に実行するが、例えば上記チェックノードc2については、再計算の対象であることが分かっているβ21を用いずにチェックノード処理を計算しておく。即ち、β21を除いた|β24|及び|β25|のうちで最小値と第2最小値を計算し、これら最小値と第2最小値とに基づいて、α21、α24、及びα25の絶対値計算を行なっておく。但し、α21、α24、及びα25の符号の計算については、β21、β24、及びβ25の符号を用いて計算しておく。なおα21の絶対値は上記最小値に同値であるとする。この第1段の処理における全確率演算の並列処理が終了してから、後段処理としての再計算が実行される。 First, as a premise, in the second embodiment of the probability calculation process, all probability calculations are executed in parallel in the first stage process. For example, it is known that the check node c2 is a target of recalculation. Check node processing is calculated without using β 21 . That is, the minimum value and the second minimum value are calculated from | β 24 | and | β 25 | excluding β 21 , and α 21 , α 24 , and The absolute value of α 25 is calculated. However, the codes α 21 , α 24 , and α 25 are calculated using the codes β 21 , β 24 , and β 25 . It is assumed that the absolute value of α 21 is the same value as the minimum value. After the parallel processing of all probability calculations in the first stage processing is completed, recalculation as the subsequent stage processing is executed.

まずステップS2で、前階層のsum l−1から計算したβ21の符号とsum (1)から再計算したβ’21の符号とが異なるか否かを判断する。符号が異なる場合には、前記式(3)から分かるように、β’21の再計算によりα24及びα25の符号が変化することになるので、α24及びα25の符号を再計算する(ステップS3)。ステップS2の判断において符号が異ならない場合には、符号を再計算する必要はない(ステップS4)。 First, in step S2, it is determined whether or not the sign of β 21 calculated from sum 1 l-1 of the previous layer is different from the sign of β ′ 21 recalculated from sum 1 l (1). If the signs are different, as can be seen from the above equation (3), the signs of α 24 and α 25 will change due to the recalculation of β ′ 21 , so the signs of α 24 and α 25 are recalculated. (Step S3). If the sign is not different in the determination in step S2, it is not necessary to recalculate the sign (step S4).

次にステップS5で、再計算したβ’21の絶対値|β’21|が、|β24|及び|β25|の最小値より小さいか否かを判断する。最小値より小さい場合には、|β’21|を新たな最小値、|β24|及び|β25|の最小値を新たな第2最小値として、α24及びα25の絶対値を再計算する(ステップS6)。ステップS5の判断の結果がNOの場合(最小値より小さくない場合)、ステップS7に進む。 In step S5, 'absolute value of 21 | beta' recalculated beta 21 | is, | beta 24 | and | beta 25 | less determines whether the minimum value of. If smaller than the minimum value, the absolute values of α 24 and α 25 are re-established with | β ′ 21 | as the new minimum value and the minimum values of | β 24 | and | β 25 | as the new second minimum value. Calculate (step S6). If the result of determination in step S5 is NO (if not smaller than the minimum value), the process proceeds to step S7.

ステップS7で、再計算したβ’21の絶対値|β’21|が、|β24|及び|β25|の最小値より大きく且つ|β24|及び|β25|の第2最小値より小さいか否かを判断する。判断結果がYESの場合、|β’21|を新たな第2最小値として、α24及びα25の絶対値を再計算する(ステップS8)。またステップS7の判断結果がNOの場合、α24及びα25の絶対値の再計算は必要ない。 In step S7, 'absolute value of 21 | beta' recalculated beta 21 | is, | beta 24 | and | beta 25 | minimum than large and of | beta 24 | and | than a second minimum value of | beta 25 Judge whether it is small or not. When the determination result is YES, absolute values of α 24 and α 25 are recalculated using | β ′ 21 | as a new second minimum value (step S8). The determination result in step S7 is the case of NO, alpha recalculation is not necessary in absolute value of 24 and alpha 25.

なお図15のフローチャートでは、説明を簡単にするために、チェックノードc2について、再計算の対象であることが分かっているβ21を用いずにチェックノード処理を計算しておくことを前提としたが、β21を含めた通常のチェックノード処理を行なってもよい。この場合には、β’21の再計算の影響を調べる際に、β’21が最小値又は第2最小値であるか否かの判断と共に、β21が最小値又は第2最小値であったか否かの判断も行なえばよい。即ち、図15のステップS9において絶対値再計算必要なしと判断したが、β21が最小値又は第2最小値であった場合には、このβ21を用いて計算したα24及びα25については再計算が必要になるので、適宜再計算を行なえばよい。 In the flowchart of FIG. 15, in order to simplify the explanation, it is assumed that the check node processing is calculated for the check node c2 without using β 21 that is known to be recalculated. However, normal check node processing including β 21 may be performed. Is this case, 'In examining the effect of the recalculation of 21, beta' beta with 21 determines whether the minimum value or the second minimum value, beta 21 is the smallest value or the second minimum value It may be determined whether or not. That is, in step S9 in FIG. 15, it is determined that absolute value recalculation is not necessary, but when β 21 is the minimum value or the second minimum value, α 24 and α 25 calculated using β 21 are obtained. Since recalculation is required, recalculation may be performed as appropriate.

図15のフローチャートの処理を実行することにより、図13に示す第1回目の再計算処理において、集合群61に対する再計算が実行される。図15のステップS3、S6、S8の場合、図13においてC(α1)及びC(sum1)の再計算が必要となり、C(α1)={α24,α25}が上記のように再計算されるとともに、C(sum1)={sum,sum,sum}が再計算される。またこれらの再計算の結果影響を受けるE(β1)、E(α1)、及びE(sum1)が再計算される。また図15のステップS4及びS9の場合、図13においてC(α1)のチェックノード処理の再計算の必要はないが、β’21が再計算されているので、C’(sum1)={sum}の事後確率更新処理が再計算される。またこの再計算の結果影響を受けるE’(β1)、E’(α1)、及びE’(sum1)が再計算される。 By executing the processing of the flowchart of FIG. 15, recalculation for the set group 61 is executed in the first recalculation processing shown in FIG. 13. In the case of steps S3, S6, and S8 in FIG. 15, recalculation of C (α1) and C (sum1) is required in FIG. 13, and C (α1) = {α 24 , α 25 } is recalculated as described above. And C (sum1) = {sum 1 , sum 2 , sum 3 } is recalculated. Also, E (β1), E (α1), and E (sum1) affected by these recalculations are recalculated. In the case of steps S4 and S9 in FIG. 15, it is not necessary for recalculation of the check node processing of C ([alpha] 1) in FIG. 13, 'because 21 is recalculated, C' β (sum1) = {sum 1 } posterior probability update processing is recalculated. Further, E ′ (β1), E ′ (α1), and E ′ (sum1) that are affected by the recalculation are recalculated.

図16は、符号再計算及び絶対値再計算の必要性を判断する一般的な処理のフローチャートである。ステップS1において、前述の式(1)を用いてβ’mn=f(sum (i),αmn)を再計算する。ステップS2で、前階層のsum l−1あるいはsum (i−2)から計算したβmnの符号と着目階層のsum (i)から再計算したβ’mnの符号とが異なるか否かを判断する。符号が異なる場合には、前記式(3)から分かるように、β’mnの再計算によりαの符号が変化することになるので、αの符号を再計算する(ステップS3)。ステップS2の判断において符号が異ならない場合には、符号を再計算する必要はない(ステップS4)。 FIG. 16 is a flowchart of a general process for determining the necessity of code recalculation and absolute value recalculation. In step S1, β ′ mn = f b (sum n 1 (i), α mn ) is recalculated using the above-described equation (1). In step S2, the sign of β mn calculated from sum n l-1 or sum n l (i-2) of the previous layer is different from the sign of β ′ mn recalculated from sum n l (i) of the target layer. Determine whether or not. If the signs are different, as can be seen from the above equation (3), the sign of α is changed by recalculation of β ′ mn , so the sign of α is recalculated (step S3). If the sign is not different in the determination in step S2, it is not necessary to recalculate the sign (step S4).

次にステップS5で、再計算したβ’mnの絶対値|β’mn|が、集合A(m)\nのβの最小値min1より小さいか否かを判断する。最小値より小さい場合には、|β’mn|を新たな最小値、元の最小値min1を新たな第2最小値として、αの絶対値を再計算する(ステップS6)。ステップS5の判断の結果がNOの場合(最小値より小さくない場合)、ステップS7に進む。 In step S5, 'the absolute value of mn | beta' recalculated beta mn | determines whether or not the minimum value min1 is smaller than the beta of the set A (m) \n. If it is smaller than the minimum value, the absolute value of α is recalculated with | β ′ mn | as the new minimum value and the original minimum value min1 as the new second minimum value (step S6). If the result of determination in step S5 is NO (if not smaller than the minimum value), the process proceeds to step S7.

ステップS7で、再計算したβ’mnの絶対値|β’mn|が、集合A(m)\nのβの最小値min1より大きく且つ集合A(m)\nのβの第2最小値min2より小さいか否かを判断する。判断結果がYESの場合、|β’mn|を新たな第2最小値として、αの絶対値を再計算する(ステップS8)。またステップS7の判断結果がNOの場合、αの絶対値の再計算は必要ない。 In step S7, 'the absolute value of mn | beta' recalculated beta mn | is set A (m) greater than the minimum value min1 the beta of \n and set A (m) second minimum value of beta for \n It is determined whether it is smaller than min2. If the determination result is YES, the absolute value of α is recalculated using | β ′ mn | as the new second minimum value (step S8). When the determination result in step S7 is NO, it is not necessary to recalculate the absolute value of α.

図17は、並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理の第2の実施例を示すフローチャートである。ステップS1で初期化処理を行なう。即ち、事後確率sumに、初期値として事前確率λを代入する。その後、検査行列の各階層についてステップS2以降の処理を繰り返す。ステップS2で、集合Sに対してビットノード処理を実行する。ここで集合Sとは、着目階層において、検査行列の値が“1”である全ての要素の集合である。ステップS3で、集合Sに対してチェックノード処理を実行する。ステップS4で、集合Sに対して事後確率更新処理を実行する。これらステップS2乃至S4の処理は、従来のLayeredアルゴリズムと同様に、着目階層内の全ての行に対して各確率演算処理を並列に実行してよい。なお後々再計算が必要になることが確実である確率演算については、実行せずに未計算の状態としておいてもよい。 FIG. 17 is a flowchart showing a second embodiment of the probability calculation process executed by a plurality of processes in consideration of data collision while maintaining parallelism as much as possible. In step S1, initialization processing is performed. That is, the prior probability λ n is substituted for the posterior probability sum n as an initial value. Thereafter, the processes in and after step S2 are repeated for each hierarchy of the check matrix. In step S2, bit node processing is executed for the set S. Here, the set S is a set of all elements having a parity check matrix value “1” in the target hierarchy. In step S3, check node processing is executed for the set S. In step S4, a posteriori probability update process is executed for the set S. In the processes in steps S2 to S4, each probability calculation process may be executed in parallel for all the rows in the target hierarchy, similarly to the conventional Layered algorithm. Note that the probability calculation that is surely required to be recalculated later may be left uncalculated without being executed.

次にステップS5で、着目階層においてデータ衝突があるか否かを判断する。即ち、着目階層の同一列に複数の“1”が存在するか否かを判断する。データ衝突がない場合にはステップS19に進む。データ衝突がある場合にはステップS6に進む。   Next, in step S5, it is determined whether or not there is a data collision in the target hierarchy. That is, it is determined whether or not there are a plurality of “1” s in the same column of the target hierarchy. If there is no data collision, the process proceeds to step S19. If there is a data collision, the process proceeds to step S6.

ステップS6では、何段目の処理であるかを示す変数iを1に初期化する。ステップS7で、集合C(βi)に対してビットノード処理を実行する。前述のように、集合C(βi)は、i回目の再計算の対象となる確率メッセージβの集合である。ステップS8で、C(αi)及びC(sumi)に対して再計算の必要があるか否かを判断する。前述のように、C(αi)及びC(sumi)は、C(βi)の再計算の結果に応じて再計算の要否の判定が必要となる確率メッセージαの集合及び事後確率sumの集合である。   In step S6, a variable i indicating what stage of processing is initialized to 1. In step S7, bit node processing is executed for the set C (βi). As described above, the set C (βi) is a set of probability messages β to be recalculated. In step S8, it is determined whether or not recalculation is required for C (αi) and C (sumi). As described above, C (αi) and C (sumi) are a set of probability messages α and a set of posterior probabilities sum that need to be determined whether recalculation is necessary according to the result of recalculation of C (βi). It is.

ステップS8の判断結果がYESの場合、ステップS9で、C(αi)及びC(sumi)に対して再計算を実行する。ステップS10で、集合E(βi)に対してビットノード処理を再計算する。ステップS11で、集合E(αi)に対してチェックノード処理を再計算する。ステップS12で、集合E(sumi)に対して事後確率更新処理を再計算する。なお前述のように、E(βi)、E(αi)、及びE(sumi)は、C(αi)及びC(sumi)の再計算が必要である場合に、C(βi)、C(αi)、及びC(sumi)を再計算したことの影響を受けるβ、α、及びsumの集合である。以上の処理が完了すると、ステップS17に進む。   If the determination result in step S8 is YES, recalculation is performed on C (αi) and C (sumi) in step S9. In step S10, the bit node processing is recalculated for the set E (βi). In step S11, check node processing is recalculated for the set E (αi). In step S12, the posterior probability update process is recalculated for the set E (sumi). As described above, E (βi), E (αi), and E (sumi) can be calculated when C (αi) and C (sumi) need to be recalculated. ) And C (sumi) are affected by recalculating β, α, and sum. When the above processing is completed, the process proceeds to step S17.

ステップS8の判断結果がNOの場合、ステップS13で、C’(sumi)に対して再計算を実行する。前述のように、C’(sumi)は、C(αi)及びC(sumi)の再計算が必要ない場合に、C(βi)を再計算したことにより値が変化する事後確率sumの集合である。ステップS14で、集合E’(βi)に対してビットノード処理を再計算する。ステップS15で、集合E’(αi)に対してチェックノード処理を再計算する。ステップS16で、集合E’(sumi)に対して事後確率更新処理を再計算する。なお前述のように、E’(βi)、E’(αi)、及びE’(sumi)は、C(αi)及びC(sumi)の再計算が必要ない場合に、C(βi)を再計算したことによる値が変化するC’(sumi)により影響を受けるβ、α、及びsumの集合である。以上の処理が完了すると、ステップS17に進む。   If the determination result in step S8 is NO, recalculation is performed on C ′ (sumi) in step S13. As described above, C ′ (sumi) is a set of posterior probabilities sum whose values change due to recalculation of C (βi) when recalculation of C (αi) and C (sumi) is not necessary. is there. In step S14, the bit node processing is recalculated for the set E ′ (βi). In step S15, check node processing is recalculated for the set E ′ (αi). In step S16, the posterior probability update process is recalculated for the set E ′ (sumi). As described above, E ′ (βi), E ′ (αi), and E ′ (sumi) are recalculated when C (αi) and C (sumi) need not be recalculated. This is a set of β, α, and sum affected by C ′ (sumi) whose value is changed by calculation. When the above processing is completed, the process proceeds to step S17.

ステップS17では、再計算判定すべき集合に対する判定及び再計算が完了したか否かを判断する。完了していない場合には、ステップS18で変数iの値を1増加させ、ステップS7に戻り以降の処理を繰り返す。ステップS17の判定の結果、再計算判定すべき集合に対する判定及び再計算が完了している場合には、ステップS19に進む。   In step S17, it is determined whether determination and recalculation for the set to be recalculated are completed. If not completed, the value of variable i is incremented by 1 in step S18, and the process returns to step S7 to repeat the subsequent processing. As a result of the determination in step S17, if determination and recalculation for the set to be recalculated are completed, the process proceeds to step S19.

ステップS19で、検査行列の最後の階層の確率演算処理が完了したか否かを判断する。最後の階層の確率演算処理が完了していない場合には、ステップS2に戻り、次の階層を対象としてステップS2以降の処理を繰り返す。最後の階層の確率演算処理が完了すると、ステップS20で、パリティ検査を実行する。即ち、求められた事後確率sumから算出したRx’に対して検査行列を掛けて、演算結果がゼロになるか否かを判断する。パリティ検査結果がゼロでなければ、ステップS2に戻り以降の処理を繰り返すことにより、事後確率sumを再度更新する。パリティ検査結果がゼロになるまで、上記の処理を反復的に実行し、パリティ検査結果がゼロになると処理を終了する。 In step S19, it is determined whether the probability calculation process for the last layer of the parity check matrix is completed. When the probability calculation process of the last hierarchy is not completed, the process returns to step S2, and the processes after step S2 are repeated for the next hierarchy. When the probability calculation process of the last hierarchy is completed, a parity check is executed in step S20. That is, Rx ′ calculated from the obtained posterior probability sum n is multiplied by a check matrix to determine whether or not the calculation result is zero. If the parity check result is zero, by repeating the processes after the process returns to step S2, and updates the posterior probabilities sum n again. The above process is repeatedly executed until the parity check result becomes zero, and the process ends when the parity check result becomes zero.

図18は、並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により確率演算処理を実行するLDPC復号器の構成の第2の実施例を示す図である。図18のLDPC復号器70は、基本構成として、ビットノード処理部71、チェックノード処理部72、事後確率更新処理部73、及びパリティ検査部78を含む。データ衝突の無い場合には、通常のLayeredアルゴリズムと同様に動作する。即ち、ビットノード処理部71は、事前確率λ又は事後確率sumと確率メッセージαmnとを用いて確率メッセージβmnを算出する。具体的には、初期状態においては事後確率sumとして事前確率λを用いて確率メッセージβmnを算出し、その後の反復処理では事後確率更新処理部73が求めたsumを用いて確率メッセージβmnを算出する。チェックノード処理部72は、確率βmnを用いて確率αmnを更新する。事後確率更新処理部73は、ビットノード処理部71で算出したβmnとチェックノード処理部72で算出したαmnとを用いて事後確率sumを更新する。パリティ検査部78は、事後確率sumを用いてRx’を算出してパリティ検査H×Rx’の演算を行なう。このパリティ検査の結果がゼロであるか否かに基づいて、復号処理を終了するか或いは事後確率sumをフィードバックして反復処理をもう一回繰返すかが制御される。 FIG. 18 is a diagram showing a second example of the configuration of an LDPC decoder that executes probability calculation processing by a plurality of processes in consideration of data collision while maintaining parallelism as much as possible. The LDPC decoder 70 in FIG. 18 includes a bit node processing unit 71, a check node processing unit 72, a posterior probability update processing unit 73, and a parity check unit 78 as a basic configuration. When there is no data collision, the operation is the same as the normal Layered algorithm. That is, the bit node processing unit 71 calculates the probability message β mn using the prior probability λ n or the posterior probability sum n and the probability message α mn . Specifically, to calculate the probability that the message beta mn with prior probability lambda n as posterior probabilities sum n in the initial state, probability that the message using the sum n posterior probability updating unit 73 is determined in a subsequent iteration β mn is calculated. The check node processing unit 72 updates the probability α mn using the probability β mn . The posterior probability update processing unit 73 updates the posterior probability sum n by using β mn calculated by the bit node processing unit 71 and α mn calculated by the check node processing unit 72. The parity check unit 78 calculates Rx ′ using the posterior probability sum and performs a parity check H × Rx ′. Based on whether the result of this parity check is zero or not, it is controlled whether to end the decoding process or feed back the posterior probability sum to repeat the iterative process once more.

LDPC復号器70は更に、データ衝突検出部74、ビットノード再計算部75、チェックノード再計算部76、事後確率更新再計算部77、ビットノード再計算制御部79、チェックノード再計算制御部80、及び事後確率更新再計算制御部81を含む。LDPC復号器70は更に、再計算判定部82、β集合再計算用テーブル83、α集合再計算用テーブル84、sum集合再計算用テーブル85、βメモリ86、αメモリ87、LLRメモリ88、最小値&第2最小値&符号メモリ89を含む。βメモリ86は、計算されたβ及び再計算されたβを格納する。αメモリ87は、計算されたα及び再計算されたαを格納する。LLRメモリ88は、初期値λ、計算されたsum及び再計算されたsumを格納する。各再計算制御部79乃至81及び再計算判定部82が確率演算処理制御部として機能し、各再計算部75乃至77を含む確率演算処理部の動作を制御する。   The LDPC decoder 70 further includes a data collision detection unit 74, a bit node recalculation unit 75, a check node recalculation unit 76, a posterior probability update recalculation unit 77, a bit node recalculation control unit 79, and a check node recalculation control unit 80. And a posterior probability update recalculation control unit 81. The LDPC decoder 70 further includes a recalculation determination unit 82, a β set recalculation table 83, an α set recalculation table 84, a sum set recalculation table 85, a β memory 86, an α memory 87, an LLR memory 88, a minimum A value & second minimum value & code memory 89 is included. The β memory 86 stores the calculated β and the recalculated β. The α memory 87 stores the calculated α and the recalculated α. The LLR memory 88 stores the initial value λ, the calculated sum, and the recalculated sum. Each of the recalculation control units 79 to 81 and the recalculation determination unit 82 functions as a probability calculation processing control unit, and controls the operation of the probability calculation processing unit including each of the recalculation units 75 to 77.

ビットノード処理部71、チェックノード処理部72、及び事後確率更新処理部73による通常のLayeredアルゴリズムと同様の動作は、データ衝突の有無に関わらず、まず着目階層内の全ての確率演算処理に対して実行される。その動作においてチェックノード処理部72が算出した最小値、第2最小値、及び符号を、最小値&第2最小値&符号メモリ89に保存しておく。データ衝突検出部74は、階層カウンタが示す検査行列の着目階層について、データ衝突があるか否かを判断する。データ衝突がない場合、データ衝突検出部74は、着目階層の全ての事後確率sumをLLRメモリ88に上書きする。データ衝突がある場合、データ衝突検出部74は、ビットノード再計算制御部79に再計算指示を出す。ビットノード再計算制御部79は、データ衝突検出部74からの指示に基づいて、β集合再計算用テーブル83の示す再計算対象のβについて、ビットノード処理をビットノード再計算部75に再計算させる。再計算判定部82は、最小値&第2最小値&符号メモリ89から読み込んだデータとβの再計算の結果とに基づいて、再計算判定を行う。再計算判定部82は、再計算判定の結果に基づいて、ビットノード再計算制御部79、チェックノード再計算制御部80、及び事後確率更新再計算制御部81に指示を出す。ビットノード再計算制御部79は、再計算判定部82からの指示に応じ、β集合再計算用テーブル83の示す再計算対象のβについて、ビットノード処理をビットノード再計算部75に再計算させる。チェックノード再計算制御部80は、再計算判定部82からの指示に応じ、α集合再計算用テーブル84の示す再計算対象のαについて、チェックノード処理をチェックノード再計算部76に再計算させる。事後確率更新再計算制御部81は、再計算判定部82からの指示に応じ、sum集合再計算用テーブル85の示す再計算対象のsumについて、事後確率更新処理を事後確率更新再計算部77に再計算させる。着目階層内で再計算すべき集合に対する再計算が終了すると、次の階層に対する確率演算処理が実行される。   The same operation as the normal Layered algorithm by the bit node processing unit 71, the check node processing unit 72, and the posterior probability update processing unit 73 is performed for all probability calculation processes in the target hierarchy regardless of the presence or absence of data collision. Executed. In this operation, the minimum value, the second minimum value, and the sign calculated by the check node processing unit 72 are stored in the minimum value & second minimum value & sign memory 89. The data collision detection unit 74 determines whether or not there is a data collision for the target hierarchy of the check matrix indicated by the hierarchy counter. When there is no data collision, the data collision detection unit 74 overwrites the LLR memory 88 with all posterior probabilities sum of the target hierarchy. If there is a data collision, the data collision detection unit 74 issues a recalculation instruction to the bit node recalculation control unit 79. Based on the instruction from the data collision detection unit 74, the bit node recalculation control unit 79 recalculates the bit node recalculation unit 75 to perform bit node processing for β to be recalculated indicated by the β set recalculation table 83. Let The recalculation determination unit 82 performs recalculation determination based on the data read from the minimum value & second minimum value & code memory 89 and the result of β recalculation. The recalculation determination unit 82 issues an instruction to the bit node recalculation control unit 79, the check node recalculation control unit 80, and the posterior probability update recalculation control unit 81 based on the result of the recalculation determination. In response to an instruction from the recalculation determination unit 82, the bit node recalculation control unit 79 causes the bit node recalculation unit 75 to recalculate the bit node processing for β to be recalculated indicated by the β set recalculation table 83. . The check node recalculation control unit 80 causes the check node recalculation unit 76 to recalculate check node processing for α to be recalculated indicated by the α set recalculation table 84 in response to an instruction from the recalculation determination unit 82. . The posterior probability update recalculation control unit 81 performs the posterior probability update processing on the recalculation target sum indicated by the sum set recalculation table 85 in response to an instruction from the recalculation determination unit 82. Recalculate. When the recalculation for the set to be recalculated in the target hierarchy is completed, the probability calculation process for the next hierarchy is executed.

図19は、シミュレーションにより得たBER特性結果を示す図である。並列性を可能な限り維持しつつデータ衝突を考慮し複数回の処理により実行する確率演算処理を、ISDB−S2(Integrated Services Digital Broadcasting via Satellite - Second
Generation)に適用した。この際、ISDB−S2の11個の符号化率の中で、最もデータ衝突が大きい符号化率7/8の検査行列を用いて、シミュレーションを行った。シミュレーションは、変調方式QPSK、通信モデルAWGN、入力ビット数10,771,200ビット、LDPC復号処理最大繰返し回数50回を設定して実行した。LDPC復号処理の繰り返し回数が50回に到達してもパリティ検査値が満足できない場合には、復号処理を終了するよう設定した。図19のBER特性結果に示されるように、提案手法は、従来の手法に比較して良好なBER特性が得られる。10−4のBER特性で比較した場合、提案手法は従来手法より約0.2dBの利得を得ることができた。なお前述の確率演算処理の第1の実施例及び第2の実施例の何れも、正しい更新値を用いた確率演算処理を行なうので、第1の実施例及び第2の実施例の間で結果は同じとなる。
FIG. 19 is a diagram illustrating a BER characteristic result obtained by simulation. Probabilistic calculation processing that is executed by multiple processing in consideration of data collision while maintaining parallelism as much as possible, ISDB-S2 (Integrated Services Digital Broadcasting via Satellite-Second
Generation). At this time, a simulation was performed using a 7/8 check matrix having the largest data collision among the 11 coding rates of ISDB-S2. The simulation was executed by setting the modulation method QPSK, the communication model AWGN, the number of input bits 10,771,200 bits, and the LDPC decoding process maximum repetition count 50 times. If the parity check value cannot be satisfied even when the number of repetitions of the LDPC decoding process reaches 50, the decoding process is set to end. As shown in the BER characteristic result of FIG. 19, the proposed method can obtain better BER characteristics than the conventional method. When compared with a BER characteristic of 10 −4 , the proposed method was able to obtain a gain of about 0.2 dB over the conventional method. Since both the first embodiment and the second embodiment of the probability calculation processing described above perform the probability calculation processing using the correct update value, the result between the first embodiment and the second embodiment is the result. Are the same.

図20は、LDPC復号器を備えたシステム構成の一例を示す図である。図20に示すシステムは、復調部100、LDPC復号器101、及び復号データ処理部102を副汲む。復調部100により、アナログ受信信号を復調及びAD変換してデジタル受信データをLDPC復号器101に供給する。LDPC復号器101は、前述の第1の実施例又は第2の実施例の確率演算処理によりLDPC復号処理を実行し、デジタル受信データの誤り訂正を行なう。LDPC復号器101による誤り訂正後のデータは、復号データ処理部102に供給され、復号データ処理部102により所望の処理が実行される。   FIG. 20 is a diagram illustrating an example of a system configuration including an LDPC decoder. In the system shown in FIG. 20, the demodulation unit 100, the LDPC decoder 101, and the decoded data processing unit 102 are sub-fetched. The demodulator 100 demodulates and AD converts the analog reception signal and supplies the digital reception data to the LDPC decoder 101. The LDPC decoder 101 performs LDPC decoding processing by the probability calculation processing of the first embodiment or the second embodiment described above, and performs error correction of digital received data. The data after error correction by the LDPC decoder 101 is supplied to the decoded data processing unit 102, and a desired process is executed by the decoded data processing unit 102.

以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。   As mentioned above, although this invention was demonstrated based on the Example, this invention is not limited to the said Example, A various deformation | transformation is possible within the range as described in a claim.

上記第1の実施例又は第2の実施例の確率演算処理において、チェックノード処理として具体的に如何なる計算をするかは問題ではない。Min-sumアルゴリズムによるチェックノード処理であってよいし、Normalized Min-sumアルゴリズムやOffset Min-sumアルゴリズムのチェックノード処理であってもよい。   In the probability calculation process of the first embodiment or the second embodiment, it does not matter what calculation is specifically performed as the check node process. It may be a check node process using a Min-sum algorithm, or a check node process using a Normalized Min-sum algorithm or an Offset Min-sum algorithm.

なお本願発明は以下の内容を含むものである。
(付記1)
低密度パリティチェック符号化された受信信号に対して、Layered復号化アルゴリズムにより検査行列の複数の階層の階層毎に確率演算処理を並列に実行して復号処理を行なう復号化装置であって、
前記確率演算処理を並列に実行する確率演算処理部と、
前記確率演算処理部を制御することにより、前記複数の階層のうちの1つの階層内での確率演算処理を、並列性を維持しつつデータ衝突を考慮して複数段の確率演算処理に分け、第1段の処理ではデータ衝突の影響を受けずに正しく計算できる確率演算を含む複数の確率演算処理を並列に実行させ、第n段の処理においては第n−1段までの処理の確率演算結果を用いて正しく計算できる確率演算処理を並列に実行させる確率演算処理制御部と
を含む復号化装置。
(付記2)
前記確率演算処理制御部により制御される前記確率演算処理部は、前記第1段の処理においてデータ衝突の影響を受けずに正しく計算できる確率演算を並列に実行し、第2段以降の処理において、前記第1段の処理では未計算であり、データ衝突の影響を受けるために前段までの処理の実行結果を利用して初めて正しく計算できる確率演算を並列に実行することを特徴とする付記1記載の復号化装置。
(付記3)
前記確率演算処理制御部により制御される前記確率演算処理部は、前記第1段の処理において全確率演算を並列に実行し、第2段以降の処理において、データ衝突の影響を受けるために再計算が必要な確率演算処理を並列に実行することを特徴とする付記1記載の復号化装置。
(付記4)
前記確率演算処理制御部により制御される前記確率演算処理部は、第2段以降の処理において、データ衝突の影響を受けるために再計算が必要となる確率演算処理を特定し、該特定された確率演算処理を並列に実行することを特徴とする付記3記載の復号化装置。
(付記5)
前記確率演算処理制御部により制御される前記確率演算処理部は、前記再計算が必要となる確率演算処理を特定する際に、既に再計算した結果の値に応じて再計算が必要となる確率演算処理を特定することを特徴とする付記4記載の復号化装置。
(付記6)
前記確率演算処理は、前記受信信号の確率的な信頼度を表わす事前確率からパリティチェックに基づく受信信号の拘束条件を考慮して事後確率を求める処理であり、
前記事前確率を初期値とする前記事後確率と第1の確率メッセージとから第2の確率メッセージを求めるビットノード処理と、
前記ビットノード処理が求めた前記第2の確率メッセージに基づいて前記第1の確率メッセージの更新値を求めるチェックノード処理と、
前記ビットノード処理が求めた前記第2の確率メッセージと、前記チェックノード処理が求めた前記第1の確率メッセージの更新値とに基づいて、前記事後確率の更新値を求める事後確率更新処理と
を含むことを特徴とする付記1乃至5いずれか一項記載の復号化装置。
(付記7)
低密度パリティチェック符号化された受信信号に対して、Layered復号化アルゴリズムにより検査行列の複数の階層の階層毎に確率演算処理を並列に実行して復号処理を行なう復号化方法であって、
複数の階層のうちの1つの階層内での確率演算処理を、並列性を維持しつつデータ衝突を考慮して複数段の確率演算処理に分け、
第1段の処理ではデータ衝突の影響を受けずに正しく計算できる確率演算を含む複数の確率演算処理を並列に実行し、
第n段の処理においては第n−1段までの処理の確率演算結果を用いて正しく計算できる確率演算処理を並列に実行する
各段階を含む復号化方法。
(付記8)
前記第1段の処理においてデータ衝突の影響を受けずに正しく計算できる確率演算を並列に実行し、第2段以降の処理において、前記第1段の処理では未計算であり、データ衝突の影響を受けるために前段までの処理の実行結果を利用して初めて正しく計算できる確率演算を並列に実行することを特徴とする付記7記載の復号化方法。
(付記9)
前記第1段の処理において全確率演算を並列に実行し、第2段以降の処理において、データ衝突の影響を受けるために再計算が必要な確率演算処理を並列に実行することを特徴とする付記7記載の復号化方法。
The present invention includes the following contents.
(Appendix 1)
A decoding apparatus that performs a decoding process on a received signal that has been subjected to a low density parity check encoding by executing a probability calculation process in parallel for each of a plurality of layers of a parity check matrix using a layered decoding algorithm,
A probability calculation processing unit for executing the probability calculation processing in parallel;
By controlling the probability calculation processing unit, the probability calculation processing in one of the plurality of layers is divided into a plurality of stages of probability calculation processing in consideration of data collision while maintaining parallelism, In the first-stage process, a plurality of probability calculation processes including a probability calculation that can be correctly calculated without being affected by data collision are executed in parallel. In the n-th process, the probability calculation of the processes up to the (n-1) -th stage is performed. A decoding device including a probability calculation processing control unit that executes in parallel probability calculation processing that can be calculated correctly using the result.
(Appendix 2)
The probability calculation processing unit controlled by the probability calculation processing control unit executes a probability calculation that can be correctly calculated without being affected by data collision in the first-stage processing in parallel. Note that the probability calculation that is not calculated in the processing of the first stage and that can be correctly calculated only by using the execution result of the process up to the previous stage because of the influence of data collision is executed in parallel. The decoding apparatus as described.
(Appendix 3)
The probability calculation processing unit controlled by the probability calculation processing control unit executes all probability calculations in parallel in the first stage process, and re-executes in order to be affected by data collision in the second and subsequent stages. The decoding apparatus according to appendix 1, wherein probability calculation processes that require calculation are executed in parallel.
(Appendix 4)
The probability calculation processing unit controlled by the probability calculation processing control unit specifies a probability calculation process that needs to be recalculated in order to be affected by data collision in the second and subsequent stages of processing. The decoding apparatus according to appendix 3, wherein the probability calculation processes are executed in parallel.
(Appendix 5)
The probability calculation processing unit controlled by the probability calculation processing control unit determines the probability calculation processing that requires the recalculation, and the probability that recalculation is required according to the value of the result that has already been recalculated. The decoding device according to appendix 4, characterized by specifying an arithmetic processing.
(Appendix 6)
The probability calculation process is a process for obtaining a posterior probability in consideration of a constraint condition of a received signal based on a parity check from an a priori probability representing a probabilistic reliability of the received signal,
A bit node process for obtaining a second probability message from the posterior probability and the first probability message having the prior probability as an initial value;
A check node process for obtaining an update value of the first probability message based on the second probability message obtained by the bit node process;
A posterior probability update process for obtaining an update value of the posterior probability based on the second probability message obtained by the bit node process and an update value of the first probability message obtained by the check node process; The decoding device according to any one of appendices 1 to 5, wherein the decoding device includes:
(Appendix 7)
A decoding method for performing a decoding process on a received signal subjected to a low density parity check encoding by executing a probability calculation process in parallel for each of a plurality of hierarchies of a check matrix using a Layered decoding algorithm,
Dividing probability calculation processing in one of a plurality of layers into a plurality of stages of probability calculation processing in consideration of data collision while maintaining parallelism,
In the first stage of processing, a plurality of probability calculation processes including a probability calculation that can be calculated correctly without being affected by data collision are executed in parallel.
In the n-th stage processing, a decoding method including each stage for executing in parallel a probability calculation process that can be calculated correctly using the probability calculation results of the processes up to the (n-1) -th stage.
(Appendix 8)
Probability calculation that can be correctly calculated without being affected by data collision in the first stage processing is executed in parallel, and in the second and subsequent stages, the first stage processing is uncalculated and the influence of data collision The decoding method according to appendix 7, wherein a probability calculation that can be correctly calculated for the first time is executed in parallel using the execution result of the process up to the previous stage in order to receive the error.
(Appendix 9)
In the first stage processing, all probability calculations are executed in parallel, and in the second stage and subsequent processes, probability calculation processes that require recalculation in order to be affected by data collision are executed in parallel. The decoding method according to appendix 7.

40 LDPC復号器
41 ビットノード処理部
42 チェックノード処理部
43 事後確率更新処理部
44 パリティ検査部44
45 ビットノード処理開始制御部
46 チェックノード処理開始制御部
47 事後確率更新処理開始制御部
48 データ衝突検出部
49 βメモリ
50 αメモリ
51 LLRメモリ
52 β集合演算開始テーブル
53 α集合演算開始テーブル
54 sum集合演算開始テーブル
40 LDPC decoder 41 bit node processing unit 42 check node processing unit 43 posterior probability update processing unit 44 parity check unit 44
45 bit node process start control unit 46 check node process start control unit 47 posterior probability update process start control unit 48 data collision detection unit 49 β memory 50 α memory 51 LLR memory 52 β set operation start table 53 α set operation start table 54 sum Set operation start table

Claims (5)

パリティチェック符号化された受信信号に対して、Layered復号化アルゴリズムにより検査行列の複数の階層の階層毎に確率演算処理を並列に実行して復号処理を行なう復号化装置であって、
前記確率演算処理を並列に実行する確率演算処理部と、
前記確率演算処理部を制御することにより、前記複数の階層のうちの1つの階層内での確率演算処理を、並列性を維持しつつデータ衝突を考慮して複数段の確率演算処理に分け、第1段の処理ではデータ衝突の影響を受けずに計算する確率演算を含む複数の確率演算処理を並列に実行させ、第n段の処理においては第n−1段までの処理の確率演算結果を用いて計算する確率演算処理を並列に実行させる確率演算処理制御部と
を含む復号化装置。
A decoding device that performs a decoding process on a parity check encoded received signal by executing a probability calculation process in parallel for each of a plurality of layers of a parity check matrix using a Layered decoding algorithm,
A probability calculation processing unit for executing the probability calculation processing in parallel;
By controlling the probability calculation processing unit, the probability calculation processing in one of the plurality of layers is divided into a plurality of stages of probability calculation processing in consideration of data collision while maintaining parallelism, In the first-stage process, a plurality of probability calculation processes including a probability calculation that is calculated without being affected by data collision are executed in parallel. In the n-th process, the probability calculation results of the processes up to the (n-1) -th stage are performed. A decoding unit including a probability calculation processing control unit that executes in parallel the probability calculation processing to be calculated using
前記確率演算処理制御部により制御される前記確率演算処理部は、前記第1段の処理においてデータ衝突の影響を受けずに計算する確率演算を並列に実行し、第2段以降の処理において、前記第1段の処理では未計算であり、データ衝突の影響を受けるために前段までの処理の実行結果を利用して初めて計算する確率演算を並列に実行することを特徴とする請求項1記載の復号化装置。   The probability calculation processing unit controlled by the probability calculation processing control unit executes a probability calculation to be calculated without being affected by data collision in the first stage process in parallel, and in the processes after the second stage, 2. The probability calculation which is not calculated in the first stage processing and is calculated for the first time using the execution result of the processing up to the previous stage in order to be affected by data collision, is executed in parallel. Decryption device. 前記確率演算処理制御部により制御される前記確率演算処理部は、前記第1段の処理において全確率演算を並列に実行し、第2段以降の処理において、データ衝突の影響を受けるために再計算が必要な確率演算処理を並列に実行することを特徴とする請求項1記載の復号化装置。   The probability calculation processing unit controlled by the probability calculation processing control unit executes all probability calculations in parallel in the first stage process, and re-executes in order to be affected by data collision in the second and subsequent stages. 2. The decoding apparatus according to claim 1, wherein probability calculation processes requiring calculation are executed in parallel. 前記確率演算処理制御部により制御される前記確率演算処理部は、第2段以降の処理において、データ衝突の影響を受けるために再計算が必要となる確率演算処理を特定し、該特定された確率演算処理を並列に実行することを特徴とする請求項3記載の復号化装置。   The probability calculation processing unit controlled by the probability calculation processing control unit specifies a probability calculation process that needs to be recalculated in order to be affected by data collision in the second and subsequent stages of processing. 4. The decoding apparatus according to claim 3, wherein the probability calculation processes are executed in parallel. 前記確率演算処理制御部により制御される前記確率演算処理部は、前記再計算が必要となる確率演算処理を特定する際に、既に再計算した結果の値に応じて再計算が必要となる確率演算処理を特定することを特徴とする請求項4記載の復号化装置。   The probability calculation processing unit controlled by the probability calculation processing control unit determines the probability calculation processing that requires the recalculation, and the probability that recalculation is required according to the value of the result that has already been recalculated. 5. The decoding apparatus according to claim 4, wherein an arithmetic processing is specified.
JP2009234457A 2009-10-08 2009-10-08 Decryption device Expired - Fee Related JP5434454B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009234457A JP5434454B2 (en) 2009-10-08 2009-10-08 Decryption device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009234457A JP5434454B2 (en) 2009-10-08 2009-10-08 Decryption device

Publications (2)

Publication Number Publication Date
JP2011082865A true JP2011082865A (en) 2011-04-21
JP5434454B2 JP5434454B2 (en) 2014-03-05

Family

ID=44076449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009234457A Expired - Fee Related JP5434454B2 (en) 2009-10-08 2009-10-08 Decryption device

Country Status (1)

Country Link
JP (1) JP5434454B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005269535A (en) * 2004-03-22 2005-09-29 Sumitomo Electric Ind Ltd Decoding device and preprocessing apparatus
WO2006059688A1 (en) * 2004-12-02 2006-06-08 Mitsubishi Denki Kabushiki Kaisha Decoding device and communication device
JP2008526086A (en) * 2004-12-22 2008-07-17 エルジー エレクトロニクス インコーポレイティド Decoding apparatus and method using channel code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005269535A (en) * 2004-03-22 2005-09-29 Sumitomo Electric Ind Ltd Decoding device and preprocessing apparatus
WO2006059688A1 (en) * 2004-12-02 2006-06-08 Mitsubishi Denki Kabushiki Kaisha Decoding device and communication device
JP2008526086A (en) * 2004-12-22 2008-07-17 エルジー エレクトロニクス インコーポレイティド Decoding apparatus and method using channel code

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6013040315; Emmanuel Boutillon et al.: 'Conflict Resolution by Matrix Reordering for DVB-T2 LDPC Decoders' Global Telecommunications Conference, 2009. GLOBECOM 2009. IEEE , 20091204 *
JPN6013040317; Jun Lin et al.: 'An improved min-sum based column-layered decoding algorithm for LDPC codes' Signal Processing Systems, 2009. SiPS 2009. IEEE Workshop on , 20091009, pp.238-242 *
JPN6013040319; 北村 匡彦 外2名: 'LDGM符号の並列復号の検討とその評価 : スケーラブルかつロバストな大容量メディア伝送に向けたLDGMの高速' 電子情報通信学会技術研究報告 Vol.108, No.279, 20081030, pp.31-36 *
JPN6013040321; Dale E. Hocevar: 'A reduced complexity decoder architecture via layered decoding of LDPC codes' Signal Processing Systems, 2004. SIPS 2004. IEEE Workshop on , 20041015, pp.107-112 *

Also Published As

Publication number Publication date
JP5434454B2 (en) 2014-03-05

Similar Documents

Publication Publication Date Title
JP4062435B2 (en) Error correction code decoding apparatus
JP4320418B2 (en) Decoding device and receiving device
EP1829223B1 (en) Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
US10298261B2 (en) Reduced complexity non-binary LDPC decoding algorithm
US8359522B2 (en) Low density parity check decoder for regular LDPC codes
JP4651600B2 (en) Check Node Update Method in Low Density Parity Check Decoder
EP1909395B1 (en) Communication apparatus and decoding method
US8607118B2 (en) Iterative decoding method and apparatus
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
CN108183713B (en) LDPC decoder based on improved minimum sum algorithm and decoding method thereof
WO2013117076A1 (en) Method and system for iterative decoding
US20200044668A1 (en) Method for ldpc decoding, ldpc decoder and storage device
WO2017113507A1 (en) Set decoding method and set decoder
JP4832447B2 (en) Decoding apparatus and method using channel code
KR102019893B1 (en) Apparatus and method for receiving signal in communication system supporting low density parity check code
KR20130118162A (en) Low density parity-check code decoder and decoding method
US20080263123A1 (en) Method and system for determining a minimum number and a penultimate minimum number in a set of numbers
JP2006135813A (en) Low density parity check encoder/decoder and encoding/decoding method
JP6567238B1 (en) Error correction decoding apparatus and error correction decoding method
JP5434454B2 (en) Decryption device
JP5523064B2 (en) Decoding apparatus and method
KR101917829B1 (en) Method and apparatus for deciding decoding order for shuffled decoding of ldpc codes
JP5385944B2 (en) Decoder
JP2010245736A (en) Decoding apparatus and decoding method
TWI523437B (en) Encoding and syndrome computing co-design circuit for bch code and method for deciding the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131021

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees