(57)【要約】【課題】簡易な回路構成で、低密度パリティ検査符号を復号する復号装置を提供する。【解決手段】外部値対数比算出部７は、列重みＪ（Ｊは２以上の自然数）の低密度パリティ検査行列に含まれる１つのブロックに基づいて、低密度パリティ検査行列の列数Ｎ（Ｎは１以上の自然数）を１単位とした入力信号の行処理を行なって、ブロックについてのＮ列分の外部値対数比を更新するブロック行処理部を少なくとも１個含み、復号語生成部１９９は、少なくとも１個のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、復号語を生成する。ブロック行処理部は、行処理に用いるブロックと同一または異なる１つのブロックのみについての前回更新されたＮ列分の外部値対数比に基づいて、外部値対数比を更新する。【選択図】図３
2007325011.tif 000002
【特許請求の範囲】
【請求項１】
列重みＪ（Ｊは２以上の自然数）の低密度パリティ検査行列の列数Ｎ（Ｎは１以上の自然数）の単位で入力信号を復号する復号装置であって、
前記パリティ検査行列に含まれる１つのブロックに基づいて、前記１単位の入力信号の行処理を行なって、前記ブロックについてのＮ列分の外部値対数比を更新するブロック行処理部を少なくとも１個と、
少なくとも１個のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、復号語を生成する復号語生成部とを備え、
前記ブロック行処理部は、前記行処理に用いるブロックと同一または異なる１つのブロックのみについての前回更新されたＮ列分の外部値対数比に基づいて、前記外部値対数比を更新する、復号装置。
【請求項２】
前記パリティ検査行列は、列重みＪが２であって、第１ブロックと第２ブロックとを含み、
前記少なくとも１個のブロック行処理部は、
前記パリティ検査行列の第１ブロックに基づいて前記行処理を行なう第１ブロック行処理部と、
前記パリティ検査行列の第２ブロックに基づいて前記行処理を行なう第２ブロック行処理部とからなり、
前記復号装置は、さらに、
前記第１ブロック行処理部に対応して設けられ、前記第２ブロック行処理部で更新されたＮ列分の外部値対数比と、Ｎ列分の前記１単位の入力信号の対数尤度比とを加算する第１の加算部と、
前記第２ブロック行処理部に対応して設けられ、前記第１ブロック行処理部で更新されたＮ列分の外部値対数比と、Ｎ列分の前記１単位の入力信号の対数尤度比とを加算する第２の加算部と、
前記第１の加算部の加算結果に基づくデータと前記第２の加算部の加算結果に基づくデータを記憶する記憶部とを備え、
前記第１ブロック行処理部は、前記記憶部内の前記第１の加算部の加算結果に基づくデータに基づいて、前記第１ブロックについての外部値対数比を更新して、前記更新された外部値対数比を前記第２の加算部に向けて出力し、
前記第２ブロック行処理部は、前記記憶部内の前記第２の加算部の加算結果に基づくデータに基づいて、前記第２ブロックについての外部値対数比を更新して、前記更新された外部値対数比を前記第１の加算部に向けて出力し、請求項１記載の復号装置。
【請求項３】
前記復号装置は、さらに
前記少なくとも１個のブロック行処理部の各々に対応して設けられた加算部を備え、
前記少なくとも１個のブロック行処理部の各々は、前記更新した外部値対数比をメモリに保持させることなく、対応する加算部に出力する、請求項１記載の復号装置。
【請求項４】
前記パリティ検査行列の列重みは３以上であって、
前記少なくとも１個のブロック行処理部は、２個を対として、Ｍ個（Ｍは偶数個）あって、
前記復号装置は、さらに、
各々が、対応するブロック行処理部に対応して設けられた加算部をＭ個と、
前記Ｍ個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、
各ブロック行処理部は、前記記憶部内の対応する加算部の加算結果に基づくデータに基づいて前記行処理を行ない、
対の一方のブロック行処理部の各々は、対の他方のブロック行処理部に対応する加算部に向けて前記更新された外部値対数比を出力し、
前記加算部の各々は、対応するブロック行処理部と対となるブロック行処理部から出力されたＮ列分の外部値対数比と、Ｎ列分の前記１単位の入力信号の対数尤度比とを加算する、請求項１記載の復号装置。
【請求項５】
前記少なくとも１個のブロック行処理部は、Ｊ個あって、各ブロック行処理部は、前記パリティ検査行列に含まれるそれぞれ異なるブロックに基づいて、前記ブロックについてのＮ列分の外部値対数比を更新し、
前記復号装置は、さらに、
各々が、対応するブロック行処理部に対応して設けられた加算部をＪ個と、
前記Ｊ個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、
前記各ブロック行処理部は、前記記憶部内の対応する加算部の加算結果に基づくデータに基づいて前記行処理を行ない、対応する加算部以外の加算部に向けて前記更新された外部値対数比を出力し、
前記各ブロック行処理部が前記外部値対数比を出力する加算部は、それぞれ相違し、
前記Ｊ個の加算部の各々は、前記Ｊ個のブロック行処理部のうちの１つから出力されたＮ列分の外部値対数比と、Ｎ列分の前記１単位の入力信号の対数尤度比とを加算し、
前記各ブロック行処理部は、同時に並行して前記行処理を行なう、請求項１記載の復号装置。
【請求項６】
前記少なくとも１個のブロック行処理部は、Ｊ個あって、各ブロック行処理部は、前記パリティ検査行列に含まれるそれぞれ異なるブロックに基づいて、前記ブロックについてのＮ列分の外部値対数比を更新し、
前記復号装置は、さらに、
前記Ｊ個のブロック行処理部のうちの１つから出力されたＮ列分の外部値対数比と、Ｎ列分の前記１単位の入力信号の対数尤度比とを加算する１個の加算部と、
前記１個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、
前記各ブロック行処理部は所定の順序で順次選択され、前記選択されたブロック行処理部が前記記憶部内の前記加算部の加算結果に基づくデータに基づいて前記行処理を行ない、前記１個の加算部に向けて前記更新された外部値対数比を出力する、請求項１記載の復号装置。
【請求項７】
前記少なくとも１個のブロック行処理部は、１個であって、前記パリティ検査行列に含まれるブロックを所定の順序で選択して、選択したブロックに基づいて、前記１単位の入力信号の行処理を行なって、前記選択したブロックについてのＮ列分の外部値対数比を更新し、
前記復号装置は、さらに、
前記ブロック行処理部から出力されたＮ列分の外部値対数比と、Ｎ列分の前記１単位の入力信号の対数尤度比とを加算する１個の加算部と、
前記１個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、
前記ブロック行処理部は、前記記憶部内の前記加算部の加算結果に基づくデータに基づいて前記行処理を行ない、前記１個の加算部に向けて前記更新された外部値対数比を出力する、請求項１記載の復号装置。
【請求項８】
前記少なくとも１個のブロック行処理部には、Ｊ個あって、各ブロック行処理部は、前記パリティ検査行列に含まれるそれぞれ異なるブロックに基づいて、前記ブロックについてのＮ列分の外部値対数比を更新し、
前記復号装置は、さらに、
少なくとも１つの加算部と、
前記少なくとも１つの加算部から送られた加算結果に基づくデータを記憶する記憶部と、
前記各ブロック行処理部から出力されたＮ列分の外部値対数比が入力され、前記少なくとも１つの加算部に対して、前記入力されたいずれかのＮ列分の外部対数比を選択して出力するセレクト部とを備え、
前記少なくとも１つの加算部は、前記セレクト部から送られたＮ列分の外部値対数比と、Ｎ列分の前記１単位の入力信号の対数尤度比とを加算して前記記憶部に出力し、
前記各ブロック行処理部は、前記記憶部内の少なくとも１つの加算部の加算結果に基づくデータに基づいて前記行処理を行ない、前記少なくとも１つの加算部に向けて前記外部値対数比を出力する、請求項１記載の復号装置。
【請求項９】
前記少なくとも１つの加算部は、Ｊ個あって、各加算部は、対応するブロック行処理部に対応して配置され、
前記記憶部は、前記Ｊ個の加算部から送られた加算結果に基づくデータを記憶し、
前記各ブロック行処理部は、前記記憶部内の対応する加算部の加算結果に基づくデータに基づいて前記行処理を行ない、
前記セレクト部は、各々が、対応するブロック行処理部に対応して配置されるセレクタをＪ個含み、
各セレクタは、対応するブロック行処理部以外のブロック行処理部からＮ列分の外部値対数比が（Ｊ−１）個入力され、各列ごとに（Ｊ−１）個の中でその絶対値が最大となる外部値対数比を選択して、選択したＮ列分の外部値対数比を前記対応するブロック行処理部に対応する加算部に向けて出力する、請求項８記載の復号装置。
【請求項１０】
前記少なくとも１つの加算部は、１個であって、
前記記憶部は、前記１個の加算部から送られた加算結果に基づくデータを記憶し、
前記各ブロック行処理部は、前記記憶部内の前記１個の加算部の加算結果に基づくデータに基づいて前記行処理を行ない、
前記セレクト部は、Ｊ個のブロック行処理部から出力されたＮ列分の外部値対数比Ｊ個について、各列ごとにＪ個の中でその絶対値が最大となる外部値対数比を選択して、選択したＮ列分の外部値対数比を前記１個の加算部に向けて出力する、請求項８記載の復号装置。
【請求項１１】
前記少なくとも１つの加算部は、Ｊ個あって、各加算部は、対応するブロック行処理部に対応して配置され、
前記記憶部は、前記Ｊ個の加算部から送られた加算結果に基づくデータを記憶し、
前記各ブロック行処理部は、前記記憶部内の対応する加算部の加算結果に基づくデータに基づいて前記行処理を行ない、
前記セレクト部は、Ｊ個のブロック行処理部から出力されたＮ列分の外部値対数比Ｊ個について、各列ごとにＪ個の中でその絶対値が最大である外部値対数比を第１最大値として記憶し、各列ごとにＪ個の中でその絶対値が２番目に大きな外部値対数比を第２最大値として記憶し、
前記セレクト部は、各列について、各加算器に対して、前記各加算器に対応するブロック行処理部から出力された外部値対数比を除いて、その絶対値が最大となる外部値対数比が与えられるように前記第１最大値および前記第２最大値の一方を選択して出力する、請求項８記載の復号装置。
【請求項１２】
前記少なくとも１個のブロック行処理部は、Ｍ個（Ｍは２以上の自然数）あって、
前記復号語生成部は、
前記Ｍ個のブロック行処理部のうちの少なくとも１個から出力されるＮ列分の外部値対数比に基づいて、少なくとも１個のＮビットの一次推定語を生成し、前記生成された少なくとも１個の一次推定語に基づいて、前記パリティ検査符号を復号した復号語を生成する、請求項１記載の復号装置。
【請求項１３】
前記復号語生成部は、２個以上Ｍ個以下の前記ブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、２個以上のＮビットの一次推定語を生成し、前記２個以上の一次推定語の各ビットの多数決に従って、前記復号語のビットを生成する、請求項１２記載の復号装置。
【請求項１４】
前記パリティ検査行列をＨとしたときに、
前記復号語生成部は、１個以上Ｍ個以下の前記ブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、１個以上のＮビットの一次推定語を生成し、前記一次推定語の各ビットをＣ1，Ｃ2，・・・ＣNとしたときに、前記１個以上の一次推定語のうち、（Ｃ1，Ｃ2，・・・，ＣN）・Ｈt＝０（ただし、ＨtはＨの転置を表す）の式を満たすものがある場合には、その一次推定語から前記復号語を生成する、請求項１２記載の復号装置。
【請求項１５】
前記復号語生成部は、前記Ｍ個のブロック行処理部のうちの特定の１個のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、１個のＮビットの一次推定語を生成し、前記生成された１個のＮビットの一次推定語から前記復号語を生成する、請求項１２記載の復号装置。
【請求項１６】
前記少なくとも１個のブロック行処理部は、Ｍ個（Ｍは２以上の自然数）あって、
前記復号語生成部は、
前記Ｍ個のブロック行処理部の少なくとも２つから出力されるＮ列分の外部値対数比の和を算出し、前記算出したＮ列分の和の符号に基づいてＮビットの一次推定語を生成し、前記生成されたＮビットの一次推定語に基づいて前記パリティ検査符号を復号した復号語を生成する、請求項１記載の復号装置。
【請求項１７】
前記少なくとも１個のブロック行処理部は、Ｍ個（Ｍは２以上の自然数）あって、
前記復号語生成部は、
前記Ｍ個のブロック行処理部のうちの特定の１個のブロック行処理部から出力されるＮ列分の外部値対数比の符号に基づいてＮビットの一次推定語を生成し、前記生成されたＮビットの一次推定語に基づいて前記パリティ検査符号を復号した復号語を生成する、請求項１記載の復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置に関し、特に低密度パリティ検査符号を復号する復号装置に関する。
【背景技術】
【０００２】
データの通信システムを構築する場合には、高速通信、低消費電力、高通信品質（低ビット誤り率）等が要求される。受信符号の誤りを検出して訂正する誤り訂正技術は、これらの要求を満たす１つの技術として、無線、有線および記録システム等において幅広く利用されている。
【０００３】
近年、この誤り訂正技術の１つとして、低密度パリティ検査（ＬＤＰＣ：Low-Density Parity-Check）符号と、sum-product復号法とが注目されている。このＬＤＰＣ符号を利用する復号操作は、非特許文献１において議論されている。この非特許文献１においては、符号化率１／２のイレギュラーＬＤＰＣ符号を利用して白色ガウス通信路のシャノン（Shannon）限界まで０．０４ｄＢという復号特性が得られることが示されている。イレギュラーＬＤＰＣ符号は、パリティ検査行列の行重み（行において１が立つ数）および列重み（列において１が立つ数）が、一定ではない符号を示す。行重みおよび列重みが各行および各列において一定のＬＤＰＣ符号は、レギュラーＬＤＰＣ符号と呼ばれる。
【０００４】
この非特許文献１においては、ＬＤＰＣ符号をsum-product復号法に従って復号する数学的なアルゴリズムが示されているものの、その膨大な計算を具体的に行なう回路構成については何ら示していない。
【０００５】
非特許文献２は、ＬＤＰＣ符号の復号装置の回路構成について検討している。この非特許文献２においては、受信系列に基づいて情報シンボルの事後確率を、トレリスに基づくＭＡＰ（最大事後確率）アルゴリズム、すなわちＢＣＪＲアルゴリズムに従って計算する。このトレリスにおいて前方向および後方向の繰返しを各状態について計算し、これらの前方向および後方向の繰返し値に基づいて、事後確率を求めている。この計算式において、加算／比較／選択／加算装置を用いて計算する。ＬＤＰＣ符号の算出においては、sum-product復号法に基づき、検査行列を生成し、異なるチェックノードからの値を利用して、推定値を算出するように回路を構成している。
【０００６】
また、非特許文献３においては、対数領域でのmin-sum復号法が解説されている。この非特許文献３では、min-sum復号法によれば、加算、最小、正負の判定および正負の符号の乗算という４種類の基本演算のみでギャラガー（Gallager）のｆ関数に従う処理を実装することができ、実装時の回路構成を簡略化することができることが示されている。
【０００７】
非特許文献３および非特許文献４に記載されているsum-product復号法およびmin-sum復号法では、パリティ検査行列を用いて外部値対数比αを更新し（行処理）、次いで、この外部値対数比αに基づいてシンボルの事前値対数比βを算出する処理（列処理）が繰返される。
【０００８】
特許文献１には、min-sum復号法の行処理の計算量を低減する方法が示されている。この特許文献１では、行処理において利用されるデータのうち、絶対値が最小値および２番目の最小値を記憶し、処理データが最小値と一致する場合には、２番目の最小値を出力し、処理データが最小値と不一致の場合には、最小値を出力することが示されている。
【０００９】
一方、sum-product復号法およびmin-sum復号法の列処理については、ＬＤＰＣの提案者Gallagerが列重み３以上とすることを提唱したため、その後のＬＤＰＣの研究においても列重みを３以上とすることが常識とされている。これに対して、ここ最近、非特許文献４では、列重みに関する計算負荷を低減するために、列重みを３以上から２にすることを提案している。
【非特許文献１】S. Y. Chung et al.,“On the Design of Low-Density Parity-Check Codes within 0.0045dB of the Shannon Limit”IEEE COMMUNICATIONS LETTERS, VOL.5, No.2, Feb. 2001, pp.58-60
【非特許文献２】E. Yeo et al.,“VLSI Architectures for Iterative Decoders in Magnetic Recording Channels”IEEE Trans. Magnetics, Vol,37, No.2, March 2001, pp.748-755
【非特許文献３】和田山正、「低密度パリティ検査符号とその復号法について」、信学技報、ＭＲ２００１−８３、２００１年１２月
【非特許文献４】Haotian Zhang et al.,“The Design of Structured Regular LDPC Codes With Large Girth”IEEE Globecom 2003, pp.4022-4027
【特許文献１】特開２００５−２６９５３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の非特許文献４においては、列重みを３以上から２に下げることにより誤り訂正能力への影響を明らかにすることが目的であり、具体的な計算方法およびその計算方法を実現するハードウエア構成については開示されていない。
【００１１】
それゆえに、本発明の目的は、簡易な回路構成で、低密度パリティ検査符号を復号する復号装置を提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明は、列重みＪ（Ｊは２以上の自然数）の低密度パリティ検査行列の列数Ｎ（Ｎは１以上の自然数）の単位で入力信号を復号する復号装置であって、パリティ検査行列に含まれる１つのブロックに基づいて、１単位の入力信号の行処理を行なって、ブロックについてのＮ列分の外部値対数比を更新するブロック行処理部を少なくとも１個と、少なくとも１個のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、復号語を生成する復号語生成部とを備え、ブロック行処理部は、行処理に用いるブロックと同一または異なる１つのブロックのみについての前回更新されたＮ列分の外部値対数比に基づいて、外部値対数比を更新する。
【００１３】
好ましくは、パリティ検査行列は、列重みＪが２であって、第１ブロックと第２ブロックとを含み、少なくとも１個のブロック行処理部は、パリティ検査行列の第１ブロックに基づいて行処理を行なう第１ブロック行処理部と、パリティ検査行列の第２ブロックに基づいて行処理を行なう第２ブロック行処理部とからなり、復号装置は、さらに、第１ブロック行処理部に対応して設けられ、第２ブロック行処理部で更新されたＮ列分の外部値対数比と、Ｎ列分の１単位の入力信号の対数尤度比とを加算する第１の加算部と、第２ブロック行処理部に対応して設けられ、第１ブロック行処理部で更新されたＮ列分の外部値対数比と、Ｎ列分の１単位の入力信号の対数尤度比とを加算する第２の加算部と、第１の加算部の加算結果に基づくデータと第２の加算部の加算結果に基づくデータを記憶する記憶部とを備え、第１ブロック行処理部は、記憶部内の第１の加算部の加算結果に基づくデータに基づいて、第１ブロックについての外部値対数比を更新して、更新された外部値対数比を第２の加算部に向けて出力し、第２ブロック行処理部は、記憶部内の第２の加算部の加算結果に基づくデータに基づいて、第２ブロックについての外部値対数比を更新して、更新された外部値対数比を第１の加算部に向けて出力する。
【００１４】
好ましくは、少なくとも１個のブロック行処理部の各々に対応して設けられた加算部を備え、少なくとも１個のブロック行処理部の各々は、更新した外部値対数比をメモリに保持させることなく、対応する加算部に出力する。
【００１５】
好ましくは、パリティ検査行列の列重みは３以上であって、少なくとも１個のブロック行処理部は、２個を対として、Ｍ個（Ｍは偶数個）あって、復号装置は、さらに、各々が、対応するブロック行処理部に対応して設けられた加算部をＭ個と、Ｍ個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、各ブロック行処理部は、記憶部内の対応する加算部の加算結果に基づくデータに基づいて行処理を行ない、対の一方のブロック行処理部の各々は、対の他方のブロック行処理部に対応する加算部に向けて更新された外部値対数比を出力し、加算部の各々は、対応するブロック行処理部と対となるブロック行処理部から出力されたＮ列分の外部値対数比と、Ｎ列分の１単位の入力信号の対数尤度比とを加算する。
【００１６】
好ましくは、少なくとも１個のブロック行処理部は、Ｊ個あって、各ブロック行処理部は、パリティ検査行列に含まれるそれぞれ異なるブロックに基づいて、ブロックについてのＮ列分の外部値対数比を更新し、復号装置は、さらに、各々が、対応するブロック行処理部に対応して設けられた加算部をＪ個と、Ｊ個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、各ブロック行処理部は、記憶部内の対応する加算部の加算結果に基づくデータに基づいて行処理を行ない、対応する加算部以外の加算部に向けて更新された外部値対数比を出力し、各ブロック行処理部が外部値対数比を出力する加算部は、それぞれ相違し、Ｊ個の加算部の各々は、Ｊ個のブロック行処理部のうちの１つから出力されたＮ列分の外部値対数比と、Ｎ列分の１単位の入力信号の対数尤度比とを加算し、各ブロック行処理部は、同時に並行して行処理を行なう。
【００１７】
好ましくは、少なくとも１個のブロック行処理部は、Ｊ個あって、各ブロック行処理部は、パリティ検査行列に含まれるそれぞれ異なるブロックに基づいて、ブロックについてのＮ列分の外部値対数比を更新し、復号装置は、さらに、Ｊ個のブロック行処理部のうちの１つから出力されたＮ列分の外部値対数比と、Ｎ列分の１単位の入力信号の対数尤度比とを加算する１個の加算部と、１個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、各ブロック行処理部は所定の順序で順次選択され、選択されたブロック行処理部が記憶部内の加算部の加算結果に基づくデータに基づいて行処理を行ない、１個の加算部に向けて更新された外部値対数比を出力する。
【００１８】
好ましくは、少なくとも１個のブロック行処理部は、１個であって、パリティ検査行列に含まれるブロックを所定の順序で選択して、選択したブロックに基づいて、１単位の入力信号の行処理を行なって、選択したブロックについてのＮ列分の外部値対数比を更新し、復号装置は、さらに、ブロック行処理部から出力されたＮ列分の外部値対数比と、Ｎ列分の１単位の入力信号の対数尤度比とを加算する１個の加算部と、１個の加算部から送られた加算結果に基づくデータを記憶する記憶部とを備え、ブロック行処理部は、記憶部内の加算部の加算結果に基づくデータに基づいて行処理を行ない、１個の加算部に向けて更新された外部値対数比を出力する。
【００１９】
好ましくは、少なくとも１個のブロック行処理部には、Ｊ個あって、各ブロック行処理部は、パリティ検査行列に含まれるそれぞれ異なるブロックに基づいて、ブロックについてのＮ列分の外部値対数比を更新し、復号装置は、さらに、少なくとも１つの加算部と、少なくとも１つの加算部から送られた加算結果に基づくデータを記憶する記憶部と、各ブロック行処理部から出力されたＮ列分の外部値対数比が入力され、少なくとも１つの加算部に対して、入力されたいずれかのＮ列分の外部対数比を選択して出力するセレクト部とを備え、少なくとも１つの加算部は、セレクト部から送られたＮ列分の外部値対数比と、Ｎ列分の１単位の入力信号の対数尤度比とを加算して記憶部に出力し、各ブロック行処理部は、記憶部内の少なくとも１つの加算部の加算結果に基づくデータに基づいて行処理を行ない、少なくとも１つの加算部に向けて外部値対数比を出力する。
【００２０】
好ましくは、少なくとも１つの加算部は、Ｊ個あって、各加算部は、対応するブロック行処理部に対応して配置され、記憶部は、Ｊ個の加算部から送られた加算結果に基づくデータを記憶し、各ブロック行処理部は、記憶部内の対応する加算部の加算結果に基づくデータに基づいて行処理を行ない、セレクト部は、各々が、対応するブロック行処理部に対応して配置されるセレクタをＪ個含み、各セレクタは、対応するブロック行処理部以外のブロック行処理部からＮ列分の外部値対数比が（Ｊ−１）個入力され、各列ごとに（Ｊ−１）個の中でその絶対値が最大となる外部値対数比を選択して、選択したＮ列分の外部値対数比を対応するブロック行処理部に対応する加算部に向けて出力する。
【００２１】
好ましくは、少なくとも１つの加算部は、１個であって、記憶部は、１個の加算部から送られた加算結果に基づくデータを記憶し、各ブロック行処理部は、記憶部内の１個の加算部の加算結果に基づくデータに基づいて行処理を行ない、セレクト部は、Ｊ個のブロック行処理部から出力されたＮ列分の外部値対数比Ｊ個について、各列ごとにＪ個の中でその絶対値が最大となる外部値対数比を選択して、選択したＮ列分の外部値対数比を１個の加算部に向けて出力する。
【００２２】
好ましくは、少なくとも１つの加算部は、Ｊ個あって、各加算部は、対応するブロック行処理部に対応して配置され、記憶部は、Ｊ個の加算部から送られた加算結果に基づくデータを記憶し、各ブロック行処理部は、記憶部内の対応する加算部の加算結果に基づくデータに基づいて行処理を行ない、セレクト部は、Ｊ個のブロック行処理部から出力されたＮ列分の外部値対数比Ｊ個について、各列ごとにＪ個の中でその絶対値が最大である外部値対数比を第１最大値として記憶し、各列ごとにＪ個の中でその絶対値が２番目に大きな外部値対数比を第２最大値として記憶し、セレクト部は、各列について、各加算器に対して、各加算器に対応するブロック行処理部から出力された外部値対数比を除いて、その絶対値が最大となる外部値対数比が与えられるように第１最大値および第２最大値の一方を選択して出力する。
【００２３】
好ましくは、少なくとも１個のブロック行処理部は、Ｍ個（Ｍは２以上の自然数）あって、復号語生成部は、Ｍ個のブロック行処理部のうちの少なくとも１個から出力されるＮ列分の外部値対数比に基づいて、少なくとも１個のＮビットの一次推定語を生成し、生成された少なくとも１個の一次推定語に基づいて、パリティ検査符号を復号した復号語を生成する。
【００２４】
好ましくは、復号語生成部は、２個以上Ｍ個以下のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、２個以上のＮビットの一次推定語を生成し、２個以上の一次推定語の各ビットの多数決に従って、復号語のビットを生成する。
【００２５】
パリティ検査行列をＨとしたときに、復号語生成部は、１個以上Ｍ個以下のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、１個以上のＮビットの一次推定語を生成し、一次推定語の各ビットをＣ1，Ｃ2，・・・ＣNとしたときに、１個以上の一次推定語のうち、（Ｃ1，Ｃ2，・・・，ＣN）・Ｈt＝０（ただし、ＨtはＨの転置を表す）の式を満たすものがある場合には、その一次推定語から復号語を生成する。
【００２６】
好ましくは、復号語生成部は、Ｍ個のブロック行処理部のうちの特定の１個のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、１個のＮビットの一次推定語を生成し、生成された１個のＮビットの一次推定語から復号語を生成する。
【００２７】
好ましくは、少なくとも１個のブロック行処理部は、Ｍ個（Ｍは２以上の自然数）あって、復号語生成部は、Ｍ個のブロック行処理部の少なくとも２つから出力されるＮ列分の外部値対数比の和を算出し、算出したＮ列分の和の符号に基づいてＮビットの一次推定語を生成し、生成されたＮビットの一次推定語に基づいてパリティ検査符号を復号した復号語を生成する。
【００２８】
好ましくは、少なくとも１個のブロック行処理部は、Ｍ個（Ｍは２以上の自然数）あって、復号語生成部は、Ｍ個のブロック行処理部のうちの特定の１個のブロック行処理部から出力されるＮ列分の外部値対数比の符号に基づいてＮビットの一次推定語を生成し、生成されたＮビットの一次推定語に基づいてパリティ検査符号を復号した復号語を生成する。
【発明の効果】
【００２９】
本発明の復号装置によれば、簡易な回路構成で、低密度パリティ検査符号を復号することができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明に係る実施の形態について図面を参照して説明する。
［第１の実施形態］
図１は、本発明の実施形態に従う復号装置を用いる通信システムの構成の一例を示す図である。図１において、通信システムは、送信側において、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器１と、この符号化器１からの（Ｋ＋Ｍ）（＝Ｎ）ビットの符号を所定の方式に従って変調して通信路３へ出力する変調器２とを含む。
【００３１】
符号化器１は、Ｋビットの情報に対し、パリティ計算用の冗長ビットＭビットを付加して、（Ｋ＋Ｍ）ビットのＬＤＰＣ符号（低密度パリティ検査符号）を生成する。（Ｋ＋Ｍ）ビットのＬＤＰＣ符号のどのビットに、Ｋ個の情報ビットおよびＭ個の冗長ビットを配置するかは、送信側と受信側で取り決めていれば、どのように配置してもよい。本発明の実施形態では、ＬＤＰＣ符号の先頭（ＭＳＢ：Most Significant Bit）からＭ個のビットに冗長ビットを配置し、その次のＫ個のビットに情報ビットを配置するように、送信側と受信側で決められているものとする。
【００３２】
パリティ検査行列においては、行が冗長ビットに対応し、列が符号ビットに対応する。
変調器２は、この通信路３の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直行周波数分割多重変調などの変調を行なう。たとえば、通信路３が、光ファイバの場合、変調器２においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調（一種の振幅変調）を行なっている。たとえば、送信データビットが“０”の場合には、このレーザダイオードの発光強度を強くして“＋１”として送信し、また送信データビットが“１”の場合、レーザダイオードの発光強度を弱くして、“−１”に変換して送信する。
【００３３】
受信部においては、通信路３を介して送信された変調信号に復調処理を施して、（Ｋ＋Ｍ）ビットのデジタル符号を復調する復調器４と、この復調器４からの（Ｋ＋Ｍ）ビットの符号にパリティ検査行列演算処理を施して元のＫビットの情報を再生する復号化器５が設けられる。
【００３４】
復調器４は、この通信路３における送信形態に応じて復調処理を行なう。たとえば、振幅変調、位相変調、コード変調、周波数変調および直行周波数分割多重変調等の場合、復調器４において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
【００３５】
図２は、通信路３が光ファイバの場合の変調器２および復調器４の出力データの対応関係を一覧にして示す図である。図２において、上述のように、通信路３が光ファイバの場合、変調器２においては、送信データが“０”のときには、送信用のレーザダイオード（発光ダイオード）の発光強度を強くし、“１”を出力し、また送信データビットが“１”のときには、この発光強度を弱くしてビット“−１”を送信する。
【００３６】
この通信路３における伝送損失等により、復調器４に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器４においては、この入力された光信号を量子化処理（アナログ／デジタル変換）を行なって、この受光レベルを検出する。図２においては、８段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ“７”のときには、発光強度がかなり強く、受光レベルが“０”のときには、光強度がかなり弱い状態である。各受光レベルは、符号付きデータに対応づけられ、復調器４から出力される。この復調器４の出力は、受光レベルが“７”のときにはデータ“３”が出力され、受光レベルが“０”のときには、データ“−４”が出力される。したがって、この復調器４からは、１ビットの受信信号に対し、多値量子化された信号が出力される。
【００３７】
復号化器５は、この復調器４から与えられた（Ｋ＋Ｍ）ビットの受信情報（各ビットは、多値情報を含む）を入力し、後に詳細に説明する、min-sum復号法に従ってＬＤＰＣパリティ検査行列を適用して、元のＫビットの情報を復元する。
【００３８】
なお、この図２においては、復調器４において、８レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器４においては、Ｌ値（Ｌ≧２）に量子化されたビットを用いて復号処理を行なうことができる。
【００３９】
また、図２においては、比較器を用いて、あるしきい値を使って受信信号のレベルを判定し、２値信号を生成してもよい。
【００４０】
図３は、本発明の実施形態に従う復号化器５の構成を概略的に示す図である。この図３においては、復調器４および通信路３も併せて示す。復調器４は、通信路３から与えられた信号を復調する復調回路４ａと、この復調回路４ａにより生成されたアナログ復調信号をデジタル信号に変換するアナログ／デジタル変換回路４ｂを含む。このアナログ／デジタル変換回路４ｂの出力データＩｎが復号化器５へ与えられる。この復号化器５へ与えられるデータＩｎは、Ｌ値（Ｌ≧２）のデータである。以下、データＩｎは、多値量子化データであるため、シンボルと称す。復号化器５は、この入力シンボルＩｎ系列に対してmin-sum復号法に従って復号処理を行なって復号ビットＣｎを生成する。
【００４１】
復号化器５は、復調器４からの復調シンボルＩｎの対数尤度比λｎを生成する対数尤度比算出部６と、対数尤度比λｎおよびパリティ検査行列に基づいて繰返し演算によって外部値対数比αｍｎを算出する外部値対数比算出部７と、対数尤度比λｎおよび外部値対数比αｍｎに基づいて復号語を生成する復号語生成部１９９とを含む。
【００４２】
対数尤度比算出部６は、この受信信号のノイズ情報と独立に、対数尤度比λｎを生成する。通常、ノイズ情報を考慮した場合、この対数尤度比λｎは、２×Ｉｎ／σ2で与えられる。ここで、σは、ノイズの分散を示す。この対数尤度比λｎを用いてもよいが、本発明の実施形態の説明では、この対数尤度比算出部６は、バッファ回路または定数乗算回路で形成され、対数尤度比λｎは、Ｉｎ×ｆで与えられることとする。ここで、fは非ゼロの正の数である。このノイズ情報を利用せずに、対数尤度比を算出することにより、回路構成が簡略化され、また計算処理も簡略化される。min-sum復号方法においては、パリティ検査行列の処理において、最小値を利用して演算を行なうため、信号処理において線形性が維持される。このため、ノイズ情報に従って出力データを正規化するなどの処理は不要である。
【００４３】
外部値対数比算出部７は、次式（１）および（２）に従って演算処理を行ない、パリティ検査行列の行の各要素についての処理（行処理）および列についての各要素についての処理（列処理）を繰返し実行する。
【数１】
2007325011.tif 000003
ここで、上式（１）および（２）それぞれにおいて、ｎ′∈Ａ（ｍ）＼ｎおよびｍ′∈Ｂ（ｎ）＼ｍは、自身を除く要素を意味する。外部値対数比αｍｎについては、ｎ′≠ｎであり、事前値対数比βｍｎについては、ｍ′≠ｍである。また、αおよびβの行列内の位置を示す添え字“ｍｎ”は、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
【００４４】
また、関数ｓｉｇｎ（ｘ）は、次式（３）で定義される。
【数２】
2007325011.tif 000004
ここで、関数ｍｉｎは、最小値を求める演算を示す。
【００４５】
また、集合Ａ（ｍ）およびＢ（ｎ）は、式（４）および（５）に示すように、２元Ｍ・Ｎ行列Ｈ＝［Ｈｍｎ］を復号対象のＬＤＰＣ符号のパリティ検査行列とした場合、集合［１，Ｎ］＝｛１，２，…，Ｎ｝の部分集合である。
Ａ（ｍ）＝｛ｎ：Ｈｍｎ＝１｝  …（４）
Ｂ（ｎ）＝｛ｍ：Ｈｍｎ＝１｝  …（５）
すなわち、部分集合Ａ（ｍ）は、パリティ検査行列Ｈの第ｍ行目において１が立っている列インデックスの集合を意味し、部分集合Ｂ（ｎ）は、パリティ検査行列Ｈの第ｎ列目において１が立っている行インデックスの集合を示す。
【００４６】
具体的に、今、図４に示すパリティ検査行列Ｈを考える。この図４に示すパリティ検査行列Ｈにおいては、第１行の第１列から第３列に“１”が立ち、また第２行の第３列および第４列に“１”が立ち、また第３行の第４列から第６列に、“１”が立つ。したがって、この場合、部分集合Ａ（ｍ）は以下のようになる。
Ａ（１）＝｛１，２，３｝、
Ａ（２）＝｛３，４｝、
Ａ（３）＝｛４，５，６｝。
【００４７】
同様、部分集合Ｂ（ｎ）については、以下のようになる。
Ｂ（１）＝Ｂ（２）＝｛１｝、
Ｂ（３）＝｛１，２｝、
Ｂ（４）＝｛２，３｝
Ｂ（５）＝Ｂ（６）＝｛３｝
【００４８】
このパリティ検査行列Ｈにおいて、タナー（Tanner）グラフを用いた場合、列に対応する変数ノードと行に対応するチェックノードの接続関係が、この“１”により示される。これを、本明細書においては「“１”が立つ」と称している。すなわち、図５に示すように、変数ノード１，２，３は、チェックノードＸ（第１行）に接続され、変数ノード３，４が、チェックノードＹ（第２行）に接続される。変数ノード４，５，６が、チェックノードＺ（第３行）に接続される。この変数ノードがパリティ検査行列Ｈの列に対応し、チェックノードＸ，ＹおよびＺが、このパリティ検査行列Ｈの各行に対応する。従って、図４に示すパリティ検査行列は、情報ビットが３ビット、冗長ビットが３ビットの合計６ビットの符号に対して適用される。
【００４９】
このパリティ検査行列Ｈは、“１”の数は少なく、低密度のパリティ検査行列であり、これにより、計算量を低減できる。
【００５０】
この変数ノードとチェックノードの間で各条件確率Ｐ（Ｘｉ｜Ｙｉ）を伝播させ、ＭＡＰアルゴリズムに従って、もっともらしい符号を各変数ノードについて決定する。ここで、条件付確率Ｐ（Ｘｉ｜Ｙｉ）は、Ｙｉの条件下でＸｉとなる確率を示す。
【００５１】
再び、図３を参照して、外部値対数比αｍｎおよび対数尤度比λｎに基づいて復号語を生成する復号語生成部１９９は、一次推定語生成部１８０と、復号語決定部１９０とを含む。
【００５２】
図６は、一次推定語生成部１８０の構成を表わす図である。
図６を参照して、一次推定語生成部１８０は、Ｑｎ算出部１４０と、Ｃｎ算出部１４１とを含む。
【００５３】
Ｑｎ算出部１４０は、対数尤度比算出部６からの対数尤度比λｎと、外部値対数比算出部７からの外部値対数比αｍｎとに従って、次式（６）に従って、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出する。
【数３】
2007325011.tif 000005
【００５４】
Ｃｎ算出部１４１は、次式（７）に従って、一次推定語（Ｃ1、Ｃ2、・・・、ＣN）を算出する。ここで、（Ｃ1、Ｃ2、・・・、ＣN）の表記は、Ｎビットの一次推定語の第１ビット（ＬＳＢ:Least Significant Bit）がＣ1であり、第２ビットがＣ2であり、第Ｎビット（ＭＳＢ）がＣNであることを表わす。
【数４】
2007325011.tif 000006
【００５５】
再び、図３を参照して、復号語決定部１９０は、一次推定語生成部１８０から一次推定語（Ｃ1、Ｃ2、・・・、ＣN）を受けて、次式（８）の演算に従って、一次推定語（Ｃ1、Ｃ2、・・・、ＣN）が符号語を構成しているかどうかを検査する。復号語決定部１９０は、次式（８）が成立する場合、つまりシンドロームが“０”となる場合には、外部値対数比算出部７の繰返し演算を終了させて、一次推定語（Ｃ1、Ｃ2、・・・、ＣN）のうちのＫビットの情報ビット部分、すなわち、（Ｃ1、Ｃ2、・・・、ＣK）を復号語として復号化器５の外部に出力する。また、復号語決定部１９０は、ループの回数、つまり外部値対数比算出部７の演算の繰返し回数が所定値を超えたときにも、外部値対数比算出部７の繰返し演算を終了させて、一次推定語（Ｃ1、Ｃ2、・・・、ＣN）のうちのＫビットの情報ビット部分、すなわち、（Ｃ1、Ｃ2、・・・、ＣK）を復号語として復号化器５の外部に出力する。
（Ｃ1,Ｃ2,…,ＣN)・Ｈt＝０ （ただし、Ｈtは、Ｈの転置を表わす）…（８）
【００５６】
さて、本発明の実施形態では、低密度であって、かつ２以上の列重みを有するパリティ検査行列Ｈを用いる。
【００５７】
図７は、列重みがＸのパリティ検査行列の生成方法を説明するための図である。
図７を参照して、パリティ検査行列Ｈは、Ｘ個のブロック（Ｈ１、Ｈ２、・・・，ＨＸ）に分割される。行重みの数が６の場合に、まず、第１ブロック（Ｈ１）において、第１行目の第１列目〜第６列目に「１」が配置され、第２行目の第７列目〜第１１列目に「１」が配置され、以下の行も同様の要領で配置される。そして、第１ブロック内の任意の列を乱数を用いて再配置し、これを適当な回数繰返すことによって、第１ブロック内の要素が決定される。
【００５８】
第２ブロック以降についても、上記を同じように乱数を用いて列の入れ替え処理を行なうことによって、ブロック内の要素が決定される。
【００５９】
（列重み３の外部値対数比算出部）
まず、従来から使用されている列重み３のパリティ検査行列を用いる外部値算出部について説明する。
【００６０】
図８は、列重みＸ（Ｘ≧３）のパリティ検査行列を用いる外部値対数比算出部７ａの概略構成を表わす図である。
【００６１】
図８を参照して、外部値対数比算出部７ａは、対数尤度比λｎをシリアルデータからパラレルデータに変換するＳ／Ｐ変換部８と、パリティ検査行列の行処理を行なう行処理部９と、パリティ検査行列の列処理を行なう列処理部１０とを含む。
【００６２】
Ｓ／Ｐ変換部８は、シリアルに入力される対数尤度比λｎを受けて、パリティ検査行列の列数をＮとしたときに、１単位がＮビットのパラレルデータに変換して出力する。
【００６３】
行処理部９は、列処理部１０から与えられる事前値対数比βｍｎと対数尤度比λｎとを用いて、式（１）に従って、外部値対数比αｍｎを更新する。
【００６４】
列処理部１０は、行処理部９から与えられる外部値対数比αｍｎを用いて、式（２）に従って、事前値対数比βｍｎを更新する。
【００６５】
図９は、列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ａおよび列処理部１０ａの詳細な構成を表わす図である。
【００６６】
図９を参照して、行処理部９ａは、第１ブロック行処理部１８と、第２ブロック行処理部１９と、第３ブロック行処理部２０と、第１ブロック行処理部１８に対応して配置される第１の加算部（β＋λ）１５と、第２ブロック行処理部１９に対応して配置される第２の加算部（β＋λ）１６と、第３ブロック行処理部２０に対応して配置される第３の加算部（β＋λ）１７とを備える。
【００６７】
第１ブロック行処理部１８は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第１ブロック（β＋λ）記憶部２７と、第１行処理部２８と、第２行処理部２９とを含む。
【００６８】
第２ブロック行処理部１９は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部３０と、第３行処理部３１と、第４行処理部３２とを含む。
【００６９】
第３ブロック行処理部１９は、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第３ブロック（β＋λ）記憶部３３と、第５行処理部３４と、第６行処理部３５とを含む。
【００７０】
列処理部１０ａは、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β）の最新値を記憶する第１ブロック（β）記憶部２４と、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β）の最新値を記憶する第２ブロック（β）記憶部２５と、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β）の最新値を記憶する第３ブロック（β）記憶部２６と、第１ブロック（β）記憶部２４に対応して配置される第１の加算部（β）２１と、第２ブロック（β）記憶部２５に対応して配置される第２の加算部（β）２２と、第３ブロック（β）記憶部２６に対応して配置される第３の加算部（β）２３とを備える。
【００７１】
第１の加算部（β＋λ）１５、第２の加算部（β＋λ）１６、第３の加算部（β＋λ）１７、第１の加算部（β）２１、第２の加算部（β）２２および第３の加算部（β）２３は、それぞれＮ個の列に対応してＮ個の加算器を有し、各加算器は、対応する列についての加算を行なう。
【００７２】
（具体例）
図９の行処理部９ａおよび列処理部１０ａについて具体例を用いて説明する。
【００７３】
図１０は、列重みが３のパリティ検査行列の例を表わす図である。
図１１（ａ）は、図１０のパリティ検査行列が用いられるときに、第１ブロック（β）記憶部２４に記憶されるデータを表わす図である。
【００７４】
図１１（ａ）を参照して、たとえば、パリティ検査行列の第１ブロック内で第１列目で「１」が立つのは第１行目であるから、第１ブロック（β）記憶部２４の第１列目にはβ1,1が記憶される。また、パリティ検査行列の第１ブロック内で第２列目で「１」が立つのは第２行目であるから、第１ブロック（β）記憶部２４の第２列目には、β2,2が記憶される。
【００７５】
図１１（ｂ）は、図１０のパリティ検査行列が用いられるときに、第２ブロック（β）記憶部２５に記憶されるデータを表わす図である。
【００７６】
図１１（ｂ）を参照して、たとえば、パリティ検査行列の第２ブロック内で第１列目で「１」が立つのは第４行目であるから、第２ブロック（β）記憶部２５の第１列目にはβ4,1が記憶される。また、パリティ検査行列の第２ブロック内で第２列目で「１」が立つのは第４行目であるから、第２ブロック（β）記憶部２５の第２列目には、β4,2が記憶される。
【００７７】
図１１（ｃ）は、図１０のパリティ検査行列が用いられるときに、第３ブロック（β）記憶部２６に記憶されるデータを表わす図である。
【００７８】
図１１（ｃ）を参照して、たとえば、パリティ検査行列の第３ブロック内で第１列目で「１」が立つのは第６行目であるから、第３ブロック（β）記憶部２６の第１列目にはβ6,1が記憶される。また、パリティ検査行列の第３ブロック内で第２列目で「１」が立つのは第５行目であるから、第３ブロック（β）記憶部２６の第２列目には、β5,2が記憶される。
【００７９】
図１２（ａ）は、図１０のパリティ検査行列が用いられるときに、第１ブロック（β＋λ）記憶部２７に記憶されるデータを表わす図である。
【００８０】
図１２（ａ）を参照して、たとえば、図１０のパリティ検査行列の第１ブロック内で第１列目で「１」が立つのは第１行目であるから、第１ブロック（β＋λ）記憶部２７の第１列目にはβ1,1＋λ1が記憶される。また、図１０のパリティ検査行列の第１ブロック内で第２列目で「１」が立つのは第２行目であるから、第１ブロック（β＋λ）記憶部２７の第２列目には、β2,2＋λ2が記憶される。
【００８１】
図１２（ｂ）は、図１０のパリティ検査行列が用いられるときに、第２ブロック（β＋λ）記憶部３０に記憶されるデータを表わす図である。
【００８２】
図１２（ｂ）を参照して、たとえば、図１０のパリティ検査行列の第２ブロック内で第１列目で「１」が立つのは第４行目であるから、第２ブロック（β＋λ）記憶部３０の第１列目にはβ4,1＋λ1が記憶される。また、図１０のパリティ検査行列の第２ブロック内で第２列目で「１」が立つのは第４行目であるから、第２ブロック（β＋λ）記憶部３０の第２列目には、β4,2＋λ2が記憶される。
【００８３】
図１２（ｃ）は、図１０のパリティ検査行列が用いられるときに、第３ブロック（β＋λ）記憶部３３に記憶されるデータを表わす図である。
【００８４】
図１２（ｃ）を参照して、たとえば、図１０のパリティ検査行列の第３ブロック内で第１列目で「１」が立つのは第６行目であるから、第３ブロック（β＋λ）記憶部３３の第１列目にはβ6,1＋λ1が記憶される。また、図１０のパリティ検査行列の第３ブロック内で第２列目で「１」が立つのは第５行目であるから、第３ブロック（β＋λ）記憶部３３の第２列目には、β5,2＋λ2が記憶される。
【００８５】
上述の第１ブロック（β）記憶部２４、第２ブロック（β）記憶部２５、第３ブロック（β）記憶部２６、第１ブロック（β＋λ）記憶部２７、第２ブロック（β＋λ）記憶部３０、第３ブロック（β＋λ）記憶部３３内に記憶されるデータは、外部値対数比の繰返し計算によって最新のものが送られてくるごとに順次更新される。以下の実施形態でも同様である。
【００８６】
次に、図１０のパリティ検査行列が用いられるときの行処理部９ａおよび列処理部１０ａの具体的な動作を説明する。
【００８７】
まず、第１ブロック行処理部１８、第２ブロック行処理部１９および第３ブロック行処理部２０の処理が並行して行なわれる。
【００８８】
第１行処理部２８は、図１０のパリティ検査行列の第１行目の第１列目、第３列目、第４列目、第５列目、第１０列目および第１２列目で「１」が立つので、第１ブロック（β＋λ）記憶部２７から要素β1,1＋λ1、β1,3＋λ3、β1,4＋λ4、β1,5＋λ5、β1,10＋λ10、β1,12＋λ12を読出す。
【００８９】
第１行処理部２８は、第１列目についての外部値対数比を算出するために、読出した要素のうち、第１列目の要素を除いた集合{β1,3＋λ3、β1,4＋λ4、β1,5＋λ5、β1,10＋λ10、β1,12＋λ12}を特定する。第１行処理部２８は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第１行処理部２８は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α1,1）を出力する。
【００９０】
第１行処理部２８は、上記と同様にして、第３列目、第４列目、第５列目、第１０列目および第１２列目についての外部値対数比α1,3、α1,4、α1,5、α1,10、α1,12を出力する。
【００９１】
第２行処理部２９は、図１０のパリティ検査行列の第２行目の第２列目、第６列目、第７列目、第８列目、第９列目および第１１列目で「１」が立つので、第１ブロック（β＋λ）記憶部２７から要素β2,2＋λ2、β2,6＋λ6、β2,7＋λ7、β2,8＋λ8、β2,9＋λ9、β2,11＋λ11を読出す。
【００９２】
第２行処理部２９は、第２列目についての外部値対数比を算出するために、読出した要素のうち、第２列目の要素を除いた集合{β2,6＋λ6、β2,7＋λ7、β2,8＋λ8、β2,9＋λ9、β2,11＋λ11}を特定する。第２行処理部２９は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第２行処理部２９は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α2,2）を出力する。
【００９３】
第２行処理部２９は、上記と同様にして、第６列目、第７列目、第８列目、第９列目および第１１列目についての外部値対数比α2,6、α2,7、α2,8、α2,9、α2,11を出力する。
【００９４】
第３行処理部３１は、図１０のパリティ検査行列の第３行目の第３列目、第５列目、第６列目、第７列目、第１１列目および第１２列目で「１」が立つので、第２ブロック（β＋λ）記憶部３０から要素β3,3＋λ3、β3,5＋λ5、β3,6＋λ6、β3,7＋λ7、β3,11＋λ11、β3,12＋λ12を読出す。
【００９５】
第３行処理部３１は、第３列目についての外部値対数比を算出するために、読出した要素のうち、第３列目の要素を除いた集合{β3,5＋λ5、β3,6＋λ6、β3,7＋λ7、β3,11＋λ11、β3,12＋λ12}を特定する。第３行処理部３１は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第３行処理部３１は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α3,3）を出力する。
【００９６】
第３行処理部３１は、上記と同様にして、第５列目、第６列目、第７列目、第１１列目および第１２列目についての外部値対数比α3,5、α3,6、α3,7、α3,11、α3,12を出力する。
【００９７】
第４行処理部３２は、図１０のパリティ検査行列の第４行目の第１列目、第２列目、第４列目、第８列目、第９列目および第１０列目で「１」が立つので、第２ブロック（β＋λ）記憶部３０から要素β4,1＋λ1、β4,2＋λ2、β4,4＋λ4、β4,8＋λ8、β4,9＋λ9、β4,10＋λ10を読出す。
【００９８】
第４行処理部３２は、第１列目についての外部値対数比を算出するために、読出した要素のうち、第１列目の要素を除いた集合{β4,2＋λ2、β4,4＋λ4、β4,8＋λ8、β4,9＋λ9、β4,10＋λ10}を特定する。第４行処理部３２は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第４行処理部３２は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α4,1）を出力する。
【００９９】
第４行処理部３２は、上記と同様にして、第２列目、第４列目、第８列目、第９列目および第１０列目についての外部値対数比α4,2、α4,4、α4,8、α4,9、α4,10を出力する。
【０１００】
第５行処理部３４は、図１０のパリティ検査行列の第５行目の第２列目、第３列目、第６列目、第８列目、第１０列目および第１２列目で「１」が立つので、第３ブロック（β＋λ）記憶部３３から要素β5,2＋λ2、β5,3＋λ3、β5,6＋λ6、β5,8＋λ8、β5,10＋λ10、β5,12＋λ12を読出す。
【０１０１】
第５行処理部３４は、第２列目についての外部値対数比を算出するために、読出した要素のうち、第２列目の要素を除いた集合{β5,3＋λ3、β5,6＋λ6、β5,8＋λ8、β5,10＋λ10、β5,12＋λ12}を特定する。第５行処理部３４は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第５行処理部３４は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α5,2）を出力する。
【０１０２】
第５行処理部３４は、上記と同様にして、第３列目、第６列目、第８列目、第１０列目および第１２列目についての外部値対数比α5,3、α5,6、α5,8、α5,10、α5,12を出力する。
【０１０３】
第６行処理部３５は、図１０のパリティ検査行列の第６行目の第１列目、第４列目、第５列目、第７列目、第９列目および第１１列目で「１」が立つので、第３ブロック（β＋λ）記憶部３３から要素β6,1＋λ1、β6,4＋λ4、β6,5＋λ5、β6,7＋λ7、β6,9＋λ9、β6,11＋λ11を読出す。
【０１０４】
第６行処理部３５は、第１列目についての外部値対数比を算出するために、読出した要素のうち、第１列目の要素を除いた集合{β6,4＋λ4、β6,5＋λ5、β6,7＋λ7、β6,9＋λ9、β6,11＋λ11}を特定する。第６行処理部３５は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第６行処理部３５は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α6,1）を出力する。
【０１０５】
第６行処理部３５は、上記と同様にして、第４列目、第５列目、第７列目、第９列目および第１１列目についての外部値対数比α6,4、α6,5、α6,7、α6,9、α6,11を出力する。
【０１０６】
次に、第１の加算部（β）２１、第２の加算部（β）２２および第３の加算部（β）２３の処理が並行して行なわれる。
【０１０７】
第１の加算部（β）２１は、第１列目について、第２ブロック行処理部１９からデータ（＝α4,1）を受け、第３ブロック行処理部２０からデータ（＝α6,1）を受けて、それらを加算して加算結果（＝α4,1＋α6,1）を第１ブロック（β）記憶部２４の第１列目の位置（β1,1の位置）に出力する。第１の加算部（β）２１は、第２列目について、第２ブロック行処理部１９からデータ（α4,2）を受け、第３ブロック行処理部２０からデータ（α5,2）を受けて、それらを加算して、加算結果（α4,2＋α5,2）を第１ブロック（β）記憶部２４の第２列目の位置（β2,2の位置）に出力する。第１の加算部（β）２１は、上記と同様して、第３列目〜第１２列目についての処理を行なう。
【０１０８】
第２の加算部（β）２２は、第１列目について、第１ブロック行処理部１８からデータ（＝α1,1）を受け、第３ブロック行処理部２０からデータ（＝α6,1）を受けて、それらを加算して、加算結果（α1,1＋α6,1）を第２ブロック（β）２５記憶部の第１列目の位置（β4,1の位置）に出力する。第２の加算部（β）２２は、第２列目について、第１ブロック行処理部１８からデータ（＝α2,2）を受け、第３ブロック行処理部２０からデータ（＝α5,2）を受けて、それらを加算して、加算結果（α2,2＋α5,2）を第２ブロック（β）記憶部２５の第２列目の位置（β4,2の位置）に出力する。第２の加算部（β）２２は、上記と同様にして、第３列目〜第１２列目についての処理を行なう。
【０１０９】
第３の加算部（β）２３は、第１列目について、第１ブロック行処理部１８からデータ（＝α1,1）を受け、第２ブロック行処理部１９からデータ（＝α4,1）を受けて、それらを加算して、加算結果（α1,1＋α4,1）を第３ブロック（β）記憶部２６の第１列目の位置（β6,1の位置）に出力する。第３の加算部（β）２３は、第２列目について、第１ブロック行処理部１８からデータ（＝α2,2）を受け、第２ブロック行処理部１９からデータ（＝α4,2）を受けて、それらを加算して、加算結果（α2,2＋α4,2）を第３ブロック（β）記憶部２６の第２列目の位置（β5,2の位置）に出力する。第３の加算部（β）２３は、上記と同様にして、第３列目〜第１２列目についての処理を行なう。
【０１１０】
次に、第１の加算部（β＋λ）１５、第２の加算部（β＋λ）１６および第３の加算部（β＋λ）１７の処理が並行して行なわれる。
【０１１１】
第１の加算部（β+λ）１５は、第１列目について、第１ブロック（β）記憶部２４の第１列目のデータ（＝β1,1）を受け、Ｓ／Ｐ変換部８から第１列目の対数尤度比λ1を受けて、それらを加算して、加算結果（＝β1,1＋λ1）を第１ブロック行処理部１８の第１ブロック（β＋λ）記憶部２７の第１列目に出力する。第１の加算部（β+λ）１５は、第２列目について、第１ブロック（β）記憶部２４の第２列目のデータ（＝β2,2）を受け、Ｓ／Ｐ変換部８から第２列目の対数尤度比λ2を受けて、それらを加算して、加算結果（＝β2,2＋λ2）を第１ブロック行処理部１８の第１ブロック（β＋λ）記憶部２７の第２列目に出力する。第１の加算部（β）１５は、上記と同様にして、第３列〜第１２列目についての処理を行なう。
【０１１２】
第２の加算部（β+λ）１６は、第１列目について、第２ブロック（β）記憶部２５の第１列目のデータ（＝β4,1）を受け、Ｓ／Ｐ変換部８から第１列目の対数尤度比λ1を受けて、それらを加算して、加算結果（β4,1＋λ1）を第２ブロック行処理部１９の第２ブロック（β＋λ）記憶部３０の第１列目に出力する。第２の加算部（β+λ）１６は、第２列目について、第２ブロック（β）記憶部２５の第２列目のデータ（＝β4,2）を受け、Ｓ／Ｐ変換部８から第２列目の対数尤度比λ2を受けて、それらを加算して、加算結果（β4,2＋λ2）を第２ブロック行処理部１９の第２ブロック（β＋λ）記憶部３０の第２列目に出力する。第２の加算部（β）１６は、上記と同様にして、第３列目〜第１２列目についての処理を行なう。
【０１１３】
第３の加算部（β+λ）１７は、第１列目について、第３ブロック（β）記憶部２６の第１列目のデータ（＝β6,1）を受け、Ｓ／Ｐ変換部８から第１列目の対数尤度比λ1を受けて、それらを加算して、加算結果（β6,1＋λ1）を第３ブロック行処理部２０の第３ブロック（β＋λ）記憶部３３の第１列目に出力する。第２の加算部（β+λ）１７は、第２列目について、第３ブロック（β）記憶部２６のデータ（＝β5,2）を受け、Ｓ／Ｐ変換部８から第２列目の対数尤度比λ2を受けて、それらを加算して、加算結果（β5,2＋λ2）を第３ブロック行処理部２０の第３ブロック（β＋λ）記憶部３３の第２列目に出力する。第３の加算部（β）は、上記と同様にして、第３列目〜第１２列目についての処理を行なう。
【０１１４】
以下、上述の処理を繰返すことによって外部値対数比αｍｎが順次更新される。
（列重み３のパリティ検査行列を用いたときのハードウエア構成）
列重み３のパリティ検査行列を用いた場合に、パリティ検査行列の列数をＮとすると、図９に示すように、加算器が２×３×Ｎ（個）、メモリが２×３×Ｎ×Ｂ（ビット）必要となる。ここで、Ｂは外部値対数比αｍｎおよび事前値対数比βｍｎのビット数である。通常、列数Ｎは数千にも達するため、加算器の数およびメモリの容量が非常に大きなものとなる。
【０１１５】
（列重み２の外部値対数比算出部）
次に、本発明の実施形態の特徴的な構成である、列重み２のパリティ検査行列を用いる外部値算出部について説明する。
【０１１６】
図１３は、列重み２のパリティ検査行列を用いる外部値対数比算出部の概略構成を表わす図である。
【０１１７】
図１３を参照して、外部値対数比算出部算出部７ｂは、図８と同様の対数尤度比λｎをシリアルデータからパラレルデータに変換するＳ／Ｐ変換部８と、パリティ検査行列の行処理を行なう行処理部１１とを含む。
【０１１８】
行処理部１１は、事前値対数比βｍｎと対数尤度比λｎとを用いて、式（１）に従って、外部値対数比αｍｎを更新する。
【０１１９】
パリティ検査行列の列重みが２の場合には、式（２）は、式（２）’のようになる。
βｍｎ＝αｍ’ｎ  ・・・（２）’
ただし、パリティ検査行列の第ｎ列目において、第ｍ行と第ｍ’行に「１」が立っているものとする。
【０１２０】
このことは、第１ブロック内の第ｉ行の第ｎ列目で「１」が立っており、第２ブロック内の第ｊ行の第ｎ列目で「１」が立っているとしたときに、αｉｎとβｊｎは等しく、αｊｎとβｉｎは等しいことを表わしている。したがって、パリティ検査行列の列重みが２の場合には、式（２）のような加算処理（列処理）が不要となる。
【０１２１】
図１４は、列重みが２のパリティ検査行列を用いる外部値対数比算出部の行処理部１１の詳細な構成を表わす図である。
【０１２２】
図１４を参照して、行処理部１１は、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第１ブロック行処理部４３と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部４４と、第１ブロック行処理部４３に対応して設けられる第１ブロック（β）記憶部４５と、第２ブロック行処理部４４に対応して設けられる第２ブロック（β）記憶部４６と、第１ブロック行処理部４３に対応して設けられる第１の加算部（β＋λ）４１と、第２ブロック行処理部４４に対応して設けられる第２の加算部（β＋λ）４２とを備える。
【０１２３】
第１ブロック行処理部４３は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第１ブロック（β＋λ）記憶部４７と、第１行処理部２４８と、第２行処理部４９と、第３行処理部５０とを含む。
【０１２４】
第２ブロック行処理部４４は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部５１と、第４行処理部５２と、第５行処理部５３と、第６行処理部５４とを含む。
【０１２５】
（具体例）
図１４の行処理部１１について具体例を用いて説明する。
【０１２６】
図１５は、列重みが２のパリティ検査行列の例を表わす図である。
図１６（ａ）は、図１５のパリティ検査行列が用いられるときに、第１ブロック（β）記憶部４５に記憶されるデータを表わす図である。
【０１２７】
図１６（ａ）を参照して、たとえば、図１５のパリティ検査行列の第１ブロック内で第１列目で「１」が立つのは第３行目であるから、第１ブロック（β）記憶部４５の第１列目にはβ3,1が記憶される。また、図１５のパリティ検査行列の第１ブロック内で第２列目で「１」が立つのは第２行目であるから、第１ブロック（β）記憶部４５の第２列目には、β2,2が記憶される。
【０１２８】
図１６（ｂ）は、図１５のパリティ検査行列が用いられるときに、第２ブロック（β）記憶部４６に記憶されるデータを表わす図である。
【０１２９】
図１６（ｂ）を参照して、たとえば、図１５のパリティ検査行列の第２ブロック内で第１列目で「１」が立つのは第５行目であるから、第２ブロック（β）記憶部４６の第１列目にはβ5,1が記憶される。また、図１５のパリティ検査行列の第２ブロック内で第２列目で「１」が立つのは第５行目であるから、第２ブロック（β）記憶部４６の第２列目には、β5,2が記憶される。
【０１３０】
図１７（ａ）は、図１５のパリティ検査行列が用いられるときに、第１ブロック（β＋λ）記憶部４７に記憶されるデータを表わす図である。
【０１３１】
図１７（ａ）を参照して、たとえば、図１５のパリティ検査行列の第１ブロック内で第１列目で「１」が立つのは第３行目であるから、第１ブロック（β＋λ）記憶部４７の第１列目にはβ3,1＋λ1が記憶される。また、図１５のパリティ検査行列の第１ブロック内で第２列目で「１」が立つのは第２行目であるから、第１ブロック（β＋λ）記憶部４７の第２列目には、β2,2＋λ2が記憶される。
【０１３２】
図１７（ｂ）は、図１５のパリティ検査行列が用いられるときに、第２ブロック（β＋λ）記憶部５１に記憶されるデータを表わす図である。
【０１３３】
図１７（ｂ）を参照して、たとえば、図１５のパリティ検査行列の第２ブロック内で第１列目で「１」が立つのは第５行目であるから、第２ブロック（β＋λ）記憶部５１の第１列目にはβ5,1＋λ1が記憶される。また、パリティ検査行列の第２ブロック内で第２列目で「１」が立つのは第５行目であるから、第２ブロック（β＋λ）記憶部５１の第２列目には、β5,2＋λ2が記憶される。
【０１３４】
次に、図１５のパリティ検査行列が用いられるときの図１４の行処理部１１の具体的な動作を説明する。
【０１３５】
まず、第１ブロック行処理部４３と第２ブロック行処理部４４の処理が並行して行なわれる。
【０１３６】
第１行処理部４８は、図１５のパリティ検査行列の第１行目の第６列目、第７列目、第８列目および第１１列目で「１」が立つので、第１ブロック（β＋λ）記憶部４７から要素β1,6＋λ6、β1,7＋λ7、β1,8＋λ8、β1,11＋λ11を読出す。
【０１３７】
第１行処理部４８は、第６列目についての外部値対数比を算出するために、読出した要素のうち、第６列目の要素を除いた集合{β1,7＋λ7、β1,8＋λ8、β1,11＋λ11}を特定する。第１行処理部４８は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第１行処理部４８は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α1,6）を第２ブロック（β）記憶部４６の第６列目の位置（β4,6の位置）に出力する。
【０１３８】
第１行処理部４８は、上記と同様にして、第７列目、第８列目および第１１列目についての外部値対数比α1,7、α1,8、α1,11を算出して、第２ブロック（β）記憶部４６の第７列目の位置（β6,7の位置）、第８列目の位置（β5,8の位置）、第１１列目の位置（β4,11の位置）に出力する。
【０１３９】
第２行処理部４９は、図１５のパリティ検査行列の第２行目の第２列目、第３列目、第５列目および第１０列目で「１」が立つので、第１ブロック（β＋λ）記憶部４７から要素β2,2＋λ2、β2,3＋λ3、β2,5＋λ5、β2,10＋λ10を読出す。
【０１４０】
第２行処理部４９は、第２列目についての外部値対数比を算出するために、読出した要素のうち、第２列目の要素を除いた集合{β2,3＋λ3、β2,5＋λ5、β2,10＋λ10}を特定する。第２行処理部４９は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第２行処理部４９は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α2,2）を第２ブロック（β）記憶部４６の第２列目の位置（β5,2の位置）に出力する。
【０１４１】
第２行処理部４９は、上記と同様にして、第３列目、第５列目および第１０列目についての外部値対数比α2,3、α2,5、α2,10を算出して、第２ブロック（β）記憶部４６の第３列目の位置（β4,3の位置）、第５列目の位置（β6,5の位置）、第１０列目の位置（β6,10の位置）に出力する。
【０１４２】
第３行処理部５０は、図１５のパリティ検査行列の第３行目の第１列目、第４列目、第９列目および第１２列目で「１」が立つので、第１ブロック（β＋λ）記憶部４７から要素β3,1＋λ1、β3,4＋λ4、β3,9＋λ9、β3,12＋λ12を読出す。
【０１４３】
第３行処理部５０は、第１列目についての外部値対数比を算出するために、読出した要素のうち、第１列目の要素を除いた集合{β3,4＋λ4、β3,9＋λ9、β3,12＋λ12}を特定する。第３行処理部５０は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第３行処理部５０は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α3,1）を第２ブロック（β）記憶部４６の第１列目の位置（β5,1の位置）に出力する。
【０１４４】
第３行処理部５０は、上記と同様にして、第４列目、第９列目および第１２列目についての外部値対数比α3,4、α3,9、α3,12を算出して、第２ブロック（β）記憶部４６の第４列目の位置（β5,4の位置）、第９列目の位置（β4,9の位置）、第１２列目の位置（β6,12の位置）に出力する。
【０１４５】
第４行処理部５２は、図１５のパリティ検査行列の第４行目の第３列目、第６列目、第９列目および第１１列目で「１」が立つので、第２ブロック（β＋λ）記憶部５１から要素β4,3＋λ3、β4,6＋λ6、β4,9＋λ9、β4,11＋λ11を読出す。
【０１４６】
第４行処理部５２は、第３列目についての外部値対数比を算出するために、読出した要素のうち、第３列目の要素を除いた集合{β4,6＋λ6、β4,9＋λ9、β4,11＋λ11}を特定する。第４行処理部５２は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第４行処理部５２は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α4,3）を第１ブロック（β）記憶部４５の第３列目の位置（β2,3の位置）に出力する。
【０１４７】
第４行処理部５２は、上記と同様にして、第６列目、第９列目および第１１列目についての外部値対数比α4,6、α4,9、α4,11を算出して、第１ブロック（β）記憶部４５の第６列目の位置（β1,6の位置）、第９列目の位置（β3,9の位置）、第１２列目の位置（β3,12の位置）に出力する。
【０１４８】
第５行処理部５３は、図１５のパリティ検査行列の第５行目の第１列目、第２列目、第４列目および第８列目で「１」が立つので、第２ブロック（β＋λ）記憶部５１から要素β5,1＋λ1、β5,2＋λ2、β5,4＋λ4、β5,8＋λ8を読出す。
【０１４９】
第５行処理部５３は、第１列目についての外部値対数比を算出するために、読出した要素のうち、第１列目の要素を除いた集合{β5,2＋λ2、β5,4＋λ4、β5,8＋λ8}を特定する。第５行処理部５３は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第５行処理部５３は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α5,1）を第１ブロック（β）記憶部４５の第１列目の位置（β3,1の位置）に出力する。
【０１５０】
第５行処理部５３は、上記と同様にして、第２列目、第４列目および第８列目についての外部値対数比α5,2、α5,4、α5,8を算出して、第１ブロック（β）記憶部４５の第２列目の位置（β2,2の位置）、第４列目の位置（β3,4の位置）、第８列目の位置（β1,8の位置）に出力する。
【０１５１】
第６行処理部５４は、図１５のパリティ検査行列の第６行目の第５列目、第７列目、第１０列目および第１２列目で「１」が立つので、第２ブロック（β＋λ）記憶部５１から要素β6,5＋λ5、β6,7＋λ7、β6,10＋λ10、β6,12＋λ12を読出す。
【０１５２】
第６行処理部５４は、第５列目についての外部値対数比を算出するために、読出した要素のうち、第５列目の要素を除いた集合{β6,7＋λ7、β6,10＋λ10、β6,12＋λ12}を特定する。第６行処理部５４は、この集合に含まれる要素の絶対値の最小値を特定するとともに、この集合に含まれる要素の符号の積を特定する。第６行処理部５４は、特定した要素の絶対値の最小値に、特定した要素の積の符号を付けたデータ（＝α6,5）を第１ブロック（β）記憶部４５の第５列目の位置（β2,5の位置）に出力する。
【０１５３】
第６行処理部５４は、上記と同様にして、第７列目、第１０列目および第１２列目についての外部値対数比α6,7、α6,10、α6,12を算出して、第１ブロック（β）記憶部４５の第７列目の位置（β1,7の位置）、第１０列目の位置（β2,10の位置）、第１２列目の位置（β3,12の位置）に出力する。
【０１５４】
次に、第１の加算部（β＋λ）４１および第２の加算部（β＋λ）４２の処理が並行して行なわれる。
【０１５５】
第１の加算部（β+λ）４１は、第１列目について、第１ブロック（β）記憶部４５の第１列目のデータ（＝β3,1）を受け、Ｓ／Ｐ変換部８から第１列目の対数尤度比λ1を受けて、それらを加算して、加算結果（＝β3,1＋λ1）を第１ブロック行処理部４３の第１ブロック（β＋λ）記憶部４７の第１列目に出力する。第１の加算部（β+λ）４１は、第２列目について、第１ブロック（β）記憶部４５の第２列目のデータ（＝β2,2）を受け、Ｓ／Ｐ変換部８から第２列目の対数尤度比λ2を受けて、それらを加算して、加算結果（＝β2,2＋λ2）を第１ブロック行処理部４３の第１ブロック（β＋λ）記憶部４７の第２列目に出力する。第１の加算部（β）４１は、上記と同様にして第３列〜第１２列目についての処理を行なう。
【０１５６】
第２の加算部（β+λ）４２は、第１列目について、第２ブロック（β）記憶部４６の第１列目のデータ（＝β5,1）を受け、Ｓ／Ｐ変換部８から第１列目の対数尤度比λ1を受けて、それらを加算して、加算結果（＝β5,1＋λ1）を第２ブロック行処理部４４の第２ブロック（β＋λ）記憶部５１の第１列目に出力する。第２の加算部（β+λ）４２は、第２列目について、第２ブロック（β）記憶部４６の第２列目のデータ（＝β5,2）を受け、Ｓ／Ｐ変換部８から第２列目の対数尤度比λ2を受けて、それらを加算して、加算結果（＝β5,2＋λ2）を第２ブロック行処理部４４の第２ブロック（β＋λ）記憶部５１の第２列目に出力する。第２の加算部（β）４２は、上記と同様にして第３列〜第１２列目についての処理を行なう。
【０１５７】
以下、上述の処理を繰返すことによって外部値対数比αｍｎが順次更新される。
（列重み２のパリティ検査行列を用いたときのハードウエア構成）
列重み２のパリティ検査行列を用いた場合に、パリティ検査行列の列数をＮとすると、図１４に示すように、加算器が２×Ｎ（個）、メモリが２×２×Ｎ×Ｂ（ビット）となる。ここで、Ｂは外部値対数比αｍｎおよび事前値対数比βｍｎのビット数である。列重み３のパリティ検査行列を用いる場合よりも、加算器の数およびメモリの容量を大幅に削減できる。
【０１５８】
［第２の実施形態］
（行処理部の構成）
図１８は、第２の実施形態における、列重みが２のパリティ検査行列を用いる外部値対数比算出部の行処理部１１ａの詳細な構成を表わす図である。
【０１５９】
図１８の行処理部１１ａが、図１４の第１の実施形態の行処理部１１と相違する点について説明する。
【０１６０】
図１４の行処理部１１では、第１ブロック行処理部４３は、算出した外部値対数比αｍｎを事前値対数比βｍ’ｎとして第２ブロック（β）記憶部４６に出力し、第２ブロック（β）記憶部４６から事前値対数比βｍｎが第２の加算部（β）４２へ出力された。また、第２ブロック行処理部４４は、算出した外部値対数比αｍｎを事前値対数比βｍ’ｎとして第１ブロック（β）記憶部４５に出力し、第１ブロック（β）記憶部４５から事前値対数比βｍｎが第１の加算部（β）４１に出力された。
【０１６１】
本発明の実施形態では、図１８に示すように、第１ブロック行処理部４３は、算出したＮ列分の外部値対数比αｍｎを事前値対数比βｍ’ｎとして第２ブロック（β）記憶部４６を介さずに、直接、第２ブロック行処理部４４に対応する第２の加算部（β）４２へ出力する。また、第２ブロック行処理部４４は、算出したＮ列分の外部値対数比αｍｎを事前値対数比βｍ’ｎとして第１ブロック（β）記憶部４５を介さずに、直接、第１ブロック行処理部４３に対応する第１の加算部（β）４１へ出力する。
【０１６２】
以上のように、第２の実施形態の外部値対数比算出部によれば、第１ブロック（β）記憶部４５および第２ブロック（β）記憶部４６が不要なので、第１の実施形態よりもメモリ容量を削減できる。具体的には、パリティ検査行列の列数をＮとした場合に、第１の実施形態よりも２×Ｎ×Ｂ（ビット）だけメモリ容量を削減できる。ここで、Ｂはβｍｎのビット数である。
【０１６３】
［第２の実施形態の変形例］
本変形例は、特許文献１に記載した行処理の方法を本発明の第２の実施形態に適用したものである。
【０１６４】
（行処理部の構成）
図１９は、第２の実施形態の行処理部１１ａの変形例である、行処理部１１ｂの詳細な構成を表わす図である
図１９を参照して、行処理部１１ｂは、第１ブロック行処理部５５および第２ブロック行処理５６を備える。
【０１６５】
第１ブロック行処理部５５に入力されるデータおよび出力されるデータは図１８の第１ブロック行処理部４３と同じである。同様に、第２ブロック行処理部５６に入力されるデータおよび出力されるデータは図１８の第２ブロック行処理部４４と同じである。
【０１６６】
一方、第１ブロック行処理部５５および第２ブロック行処理部５６の内部の構成は、図１８の第１ブロック行処理部４３、第２ブロック行処理部４４の内部の構成と相違する。第１ブロック行処理部５５、第２ブロック行処理部５６は、第１ブロック行処理部４３、第２ブロック行処理部４４よりも回路規模が小さく、かつ高速で実行できる。
【０１６７】
第１ブロック行処理部５５は、第１行処理部５７、第２行処理部５８、第３行処理部５９、および符号・最小値記憶部６０を含む。第２ブロック行処理部５６は、第４行処理部６１、第５行処理部６２、第６行処理部６３、および符号・最小値記憶部６４を含む。
（行処理部の動作）
次に、各行処理部の動作について説明する。
【０１６８】
第１行処理部５７は、第１の加算部（β＋λ）４１から出力されるＮ列分のデータ（βsn＋λn）（ｎ＝１〜Ｎ、ｓは１〜３のいずれか）から、第１行目についての（Ｎ／３）個のデータ（β1,i＋λi）(i=１〜Ｎの中の（Ｎ／３）個）を抽出する。第１行処理部５７は、抽出したデータの中でその絶対値が最小であるデータ、およびその絶対値が２番目に小さいデータを符号・最小値記憶部６０に記憶する。さらに、第１行処理部５７は、その絶対値が最小であるデータの列番号（１〜Ｎのいずれか）、抽出したデータのそれぞれの列番号と符号、および抽出したデータのそれぞれの符号をすべて乗算した符号積を符号・最小値記憶部６０に記憶する。
【０１６９】
第１行処理部５７は、α1,ｎを出力するときに、列番号ｎが符号・最小値記憶部６０内の絶対値が最小であるデータの列番号と異なる場合には、符号・最小値記憶部６０内の絶対値が最小であるデータをα1,nの絶対値とし、列番号ｎが符号・最小値記憶部６０内の絶対値が最小であるデータの列番号と同じ場合には、符号・最小値記憶部６０内の絶対値が２番目に小さいデータをα1,nの絶対値とする。
【０１７０】
また、第１行処理部５７は、符号・最小値記憶部６０内の列番号ｎのデータの符号が正の場合には、符号・最小値記憶部６０内の符号積をα1,nの符号とし、符号・最小値記憶部６０内の列番号ｎに対応するデータの符号が負の場合には、符号・最小値記憶部６０内の符号積を反転した符号をα1,ｎの符号とする。
【０１７１】
以下、上述の処理を繰返すことによって外部値対数比αｍｎが順次更新される。
第２行処理部５８、第３行処理部５９、第４行処理部６１、第５行処理部６２および第６行処理部６３は、第１行処理部６３と同様の処理を行なう。
【０１７２】
以上のように、本変形例によれば、（β＋λ）をすべて記憶する必要がないので、第２の実施形態よりも、さらにメモリ容量を低減できる。
【０１７３】
［第３の実施形態］
第１および第２の実施形態では、列重み２のパリティ検査行列を用いて外部値対数比αｍｎを算出する外部値対数比算出部について説明した。
【０１７４】
すなわち、２個のブロックを有する列重み２のパリティ検査行列を用いた場合に、パリティ検査行列の第１ブロック（Ｈ１）を用いた行処理を行なうブロック行処理部と、パリティ検査行列の第２ブロック（Ｈ２）を用いた行処理を行なうブロック行処理部を同時に実行し、かつ計算結果を互いに交換することによって外部値対数比を更新することができた。
【０１７５】
パリティ検査行列が３個以上のブロックを有する列重みが３以上の場合においても、そのパリティ検査行列から２個のブロックを１組として複数組のブロックを抽出し、各ブロックに対応するブロック行処理部をそれぞれ同時に実行させて、同じ組のブロックに対応するブロック行処理部の間で計算結果を互いに交換することによって、外部値対数比の近似値を算出することができると考えられる。
【０１７６】
第３の実施形態では、このようにパリティ検査行列の２個のブロックを１組として、外部値対数比を算出する外部値対数比算出部に関する。
【０１７７】
（算出スキーム）
図２０は、第３の実施形態における、外部値対数比αｍｎの算出スキームを説明するための図である。
【０１７８】
図２０を参照して、本実施の形態では、２通りの計算を並行して実行することによって外部値対数比αｍｎを算出する。１番目の計算では、第１ブロック（Ｈ１）を用いての計算、第２ブロック（Ｈ２）を用いての計算を交互に繰返して実行する。２番目の計算では、第２ブロック（Ｈ２）を用いての計算、第１ブロック（Ｈ１）を用いての計算を交互に繰返して実行する。３番目の計算では、第２ブロック（Ｈ２）を用いての計算、第３ブロック（Ｈ３）を用いての計算を交互に繰返し実行する。４番目の計算では、第３ブロック（Ｈ３）を用いての計算、第２ブロック（Ｈ２）を用いての計算を交互に繰返し実行する。
【０１７９】
（行処理部の構成）
図２１は、図２０に示される外部値対数比の算出処理を実行する行処理部１１ｃの詳細な構成を表わす図である。
【０１８０】
図２１を参照して、行処理部１ｃは、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第１ブロック行処理部６９と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部７０と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部７１と、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第３ブロック行処理部７２と、第１ブロック行処理部６９に対応して設けられる第１の加算部（β＋λ）６５と、第２ブロック行処理部７０に対応して設けられる第２の加算部（β＋λ）６６と、第２ブロック行処理部７１に対応して設けられる第３の加算部（β＋λ）６７と、第３ブロック行処理部７２に対応して設けられる第４の加算部（β＋λ）６８とを備える。
【０１８１】
第１ブロック行処理部６９は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第１ブロック（β＋λ）記憶部７３と、第１行処理部７４と、第２行処理部７５とを備える。第２ブロック行処理部７０は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部７６と、第３行処理部７７と、第４行処理部７８とを備える。第２ブロック行処理部７１は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部７９と、第３行処理部８０と、第４行処理部８１とを備える。第３ブロック行処理部７２は、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第３ブロック（β＋λ）記憶部８２と、第５行処理部８３と、第６行処理部８４とを備える。
【０１８２】
（行処理部の動作）
第１ブロック行処理部６９は、算出したＮ列分の外部値対数比αｍｎを、第２ブロック行処理部７０に対応する第２の加算部（β＋λ）６６に出力する。これにより、第１ブロック（Ｈ１）を用いての計算の後、第２ブロック（Ｈ２）を用いての計算が行なわれる。
【０１８３】
第２ブロック行処理部７０は、算出したＮ列分の外部値対数比αｍｎを、第１ブロック行処理部６９に対応する第１の加算部（β＋λ）６５に出力する。これにより、第２ブロック（Ｈ２）を用いての計算の後、第１ブロック（Ｈ１）を用いての計算が行なわれる。
【０１８４】
第１ブロック行処理部６９と第２ブロック行処理部７０が同時に繰返し実行され、かつ計算結果を互いに交換することによって、図２０で示される算出スキームの第１番目と第２番目が実行される。
【０１８５】
第２ブロック行処理部７１は、算出したＮ列分の外部値対数比αｍｎを、第３ブロック行処理部７２に対応する第４の加算部（β＋λ）６８に出力する。これにより、第２ブロック（Ｈ２）を用いての計算の後、第３ブロック（Ｈ３）を用いての計算が行なわれる。
【０１８６】
第３ブロック行処理部７２は、算出したＮ列分の外部値対数比αｍｎを、第２ブロック行処理部７１に対応する第３の加算部（β＋λ）６７に出力する。これにより、第３ブロック（Ｈ３）を用いての計算の後、第２ブロック（Ｈ２）を用いての計算が行なわれる。
【０１８７】
第２ブロック行処理部７１と第３ブロック行処理部７２が同時に繰返し実行され、かつ計算結果を互いに交換することによって、図２０で示される算出スキームの第３番目と第４番目が実行される。
【０１８８】
以上のように、第３の実施形態によれば、列重み３以上のパリティ検査行列を２個のブロックを１組として、対となるブロック行処理部どうしで計算結果を互いに交換することとした。これにより、列重み３以上のパリティ検査行列をそのまま用いて外部値対数比を更新する処理、すなわち図９の外部値対数比算出部で算出される外部値対数比のよい近次値を得ることができる。また、第３の実施形態では、第１および第２の実施形態のように、列重み２にパリティ検査行列を用いた行処理と同様にして外部値対数比の更新が可能となるので、第１および第２の実施形態と同様に、加算器の個数およびメモリの容量を低減できる。
【０１８９】
［第３の実施形態の変形例１］
（算出スキーム）
図２２は、第３の実施形態の変形例１における、外部値対数比αｍｎの算出スキームを説明するための図である。
【０１９０】
図２２を参照して、本実施の形態では、４通りの計算を並行して実行することによって外部値対数比αｍｎを算出する。１番目の計算では、第１ブロック（Ｈ１）を用いての計算、第２ブロック（Ｈ２）を用いての計算を交互に繰返して実行する。２番目の計算では、第２ブロック（Ｈ２）を用いての計算、第１ブロック（Ｈ１）を用いての計算を交互に繰返して実行する。３番目の計算では、第３ブロック（Ｈ３）を用いての計算を繰返し実行する。４番目の計算では、第３ブロック（Ｈ３）を用いての計算を繰返し実行する。
【０１９１】
（行処理部の構成）
図２３は、図２２に示される外部値対数比の算出処理を実行する行処理部１１ｄの詳細な構成を表わす図である。
【０１９２】
図２３を参照して、行処理部１１ｄは、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第１ブロック行処理部６９と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部７０と、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第３ブロック行処理部７２と、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第３ブロック行処理部８５と、第１ブロック行処理部６９に対応して設けられる第１の加算部（β＋λ）６５と、第２ブロック行処理部７０に対応して設けられる第２の加算部（β＋λ）６６と、第３ブロック行処理部７２に対応して設けられる第３の加算部（β＋λ）６７と、第３ブロック行処理部８５に対応して設けられる第４の加算部（β＋λ）６８とを備える。
【０１９３】
第１ブロック行処理部６９は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第１ブロック（β＋λ）記憶部７３と、第１行処理部７４と、第２行処理部７５とを備える。第２ブロック行処理部７０は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部７６と、第３行処理部７７と、第４行処理部７８とを備える。第３ブロック行処理部７２は、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第３ブロック（β＋λ）記憶部８２と、第５行処理部８３と、第６行処理部８４とを備える。第３ブロック行処理部８５は、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第３ブロック（β＋λ）記憶部８６と、第５行処理部８７と、第６行処理部８８とを備える。
【０１９４】
（行処理部の動作）
第１ブロック行処理部６９は、算出したＮ列分の外部値対数比αｍｎを、第２ブロック行処理部７０に対応する第２の加算部（β＋λ）６６に出力する。これにより、第１ブロック（Ｈ１）を用いての計算の後、第２ブロック（Ｈ２）を用いての計算が行なわれる。
【０１９５】
第２ブロック行処理部７０は、算出したＮ列分の外部値対数比αｍｎを、第１ブロック行処理部６９に対応する第１の加算部（β＋λ）６５に出力する。これにより、第２ブロック（Ｈ２）を用いての計算の後、第１ブロック（Ｈ１）を用いての計算が行なわれる。
【０１９６】
第１ブロック行処理部６９と第２ブロック行処理部７０が同時に繰返し実行され、かつ計算結果を互いに交換することによって、図２２で示される算出スキームの第１番目と第２番目が実行される。
【０１９７】
第３ブロック行処理部７２は、算出したＮ列分の外部値対数比αｍｎを、第３ブロック行処理部８５に対応する第４の加算部（β＋λ）６８に出力する。これにより、第３ブロック（Ｈ３）を用いての計算の後、第３ブロック（Ｈ３）を用いての計算が行なわれる。
【０１９８】
第３ブロック行処理部８５は、算出したＮ列分の外部値対数比αｍｎを、第３ブロック行処理部７２に対応する第３の加算部（β＋λ）６７に出力する。これにより、第３ブロック（Ｈ３）を用いての計算の後、第３ブロック（Ｈ３）を用いての計算が行なわれる。
【０１９９】
第３ブロック行処理部７２と第３ブロック行処理部８５が同時に繰返し実行され、かつ計算結果を互いに交換することによって、図２２で示される算出スキームの第３番目と第４番目が実行される。
【０２００】
以上のように、本変形例によれば、第３の実施形態と同様に、外部値対数比の近次値を得ることができるとともに、加算器の個数およびメモリの容量を低減できる。
【０２０１】
［第３の実施形態の変形例２］
（算出スキーム）
図２４は、第３の実施形態の変形例２における、外部値対数比αｍｎの算出スキームを説明するための図である。
【０２０２】
図２４を参照して、本実施の形態では、３通りの計算を並行して実行することによって外部値対数比αｍｎを算出する。１番目の計算では、第１ブロック（Ｈ１）を用いての計算、第２ブロック（Ｈ２）を用いての計算を交互に繰返して実行する。２番目の計算では、第２ブロック（Ｈ２）を用いての計算、第１ブロック（Ｈ１）を用いての計算を交互に繰返して実行する。３番目の計算では、第２ブロック（Ｈ２）を用いての計算、第３ブロック（Ｈ３）を用いての計算を交互に繰返し実行する。４番目の計算では、第３ブロック（Ｈ３）を用いての計算、第２ブロック（Ｈ２）を用いての計算を交互に繰返し実行する。５番目の計算では、第３ブロック（Ｈ３）を用いての計算、第１ブロック（Ｈ１）を用いての計算を交互に繰返し実行する。６番目の計算では、第１ブロック（Ｈ１）を用いての計算、第３ブロック（Ｈ３）を用いての計算を交互に繰返し実行する。
【０２０３】
（行処理部の構成）
図２５は、図２４に示される外部値対数比の算出処理を実行する行処理部１１ｅの詳細な構成を表わす図である。
【０２０４】
図２５を参照して、行処理部１１ｅは、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第１ブロック行処理部６９と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部７０と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部７１と、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第３ブロック行処理部７２と、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第３ブロック行処理部９１と、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第１ブロック行処理部９２とを備える。
【０２０５】
行処理部１１ｅは、さらに、第１ブロック行処理部６９に対応して設けられる第１の加算部（β＋λ）６５と、第２ブロック行処理部７０に対応して設けられる第２の加算部（β＋λ）６６と、第２ブロック行処理部７１に対応して設けられる第３の加算部（β＋λ）６７と、第３ブロック行処理部７２に対応して設けられる第４の加算部（β＋λ）６８と、第３ブロック行処理部９１に対応して設けられる第５の加算部（β＋λ）８９と、第１ブロック行処理部９２に対応して設けられる第６の加算部（β）９０とを備える。
【０２０６】
第１ブロック行処理部６９は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第１ブロック（β＋λ）記憶部７３と、第１行処理部７４と、第２行処理部７５とを備える。第２ブロック行処理部７０は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部７６と、第３行処理部７７と、第４行処理部７８とを備える。第２ブロック行処理部７１は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部７９と、第３行処理部８０と、第４行処理部８１とを備える。第３ブロック行処理部７２は、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第３ブロック（β＋λ）記憶部８２と、第５行処理部８３と、第６行処理部８４とを備える。第３ブロック行処理部９１は、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第３ブロック（β＋λ）記憶部９３と、第５行処理部９４と、第６行処理部９５とを備える。第１ブロック行処理部９２は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第１ブロック（β＋λ）記憶部９６と、第１行処理部９７と、第２行処理部９８とを備える。
【０２０７】
（行処理部の動作）
第１ブロック行処理部６９は、算出したＮ列分の外部値対数比αｍｎを、第２ブロック行処理部７０に対応する第２の加算部（β＋λ）６６に出力する。これにより、第１ブロック（Ｈ１）を用いての計算の後、第２ブロック（Ｈ２）を用いての計算が行なわれる。
【０２０８】
第２ブロック行処理部７０は、算出したＮ列分の外部値対数比αｍｎを、第１ブロック行処理部６９に対応する第１の加算部（β＋λ）６５に出力する。これにより、第２ブロック（Ｈ２）を用いての計算の後、第１ブロック（Ｈ１）を用いての計算が行なわれる。
【０２０９】
第１ブロック行処理部６９と第２ブロック行処理部７０が同時に繰返し実行され、かつ計算結果を互いに交換することによって、図２２で示される算出スキームの第１番目と第２番目が実行される。
【０２１０】
第２ブロック行処理部７１は、算出したＮ列分の外部値対数比αｍｎを、第３ブロック行処理部７２に対応する第４の加算部（β＋λ）６８に出力する。これにより、第２ブロック（Ｈ２）を用いての計算の後、第３ブロック（Ｈ３）を用いての計算が行なわれる。
【０２１１】
第３ブロック行処理部７２は、算出したＮ列分の外部値対数比αｍｎを、第２ブロック行処理部７１に対応する第３の加算部（β＋λ）６７に出力する。これにより、第３ブロック（Ｈ３）を用いての計算の後、第２ブロック（Ｈ２）を用いての計算が行なわれる。
【０２１２】
第２ブロック行処理部７１と第３ブロック行処理部７２が同時に繰返し実行され、かつ計算結果を互いに交換することによって、図２２で示される算出スキームの第３番目と第４番目が実行される。
【０２１３】
第３ブロック行処理部９１は、算出したＮ列分の外部値対数比αｍｎを、第１ブロック行処理部９２に対応する第６の加算部（β＋λ）９０に出力する。これにより、第３ブロック（Ｈ３）を用いての計算の後、第１ブロック（Ｈ１）を用いての計算が行なわれる。
【０２１４】
第１ブロック行処理部９２は、算出したＮ列分の外部値対数比αｍｎを、第３ブロック行処理部９１に対応する第５の加算部（β＋λ）８９に出力する。これにより、第１ブロック（Ｈ１）を用いての計算の後、第３ブロック（Ｈ３）を用いての計算が行なわれる。
【０２１５】
第３ブロック行処理部９１と第１ブロック行処理部９２が同時に繰返し実行され、かつ計算結果を互いに交換することによって、図２２で示される算出スキームの第５番目と第６番目が実行される。
【０２１６】
以上のように、本変形例によれば、第３の実施形態と同様に、外部値対数比のよい近次値を得ることができるとともに、加算器の個数およびメモリの容量を低減できる。
【０２１７】
［第３の実施形態のその他の変形例］
（その他の算出スキーム）
図２６は、第３の実施形態のその他の変形例における、外部値対数比αｍｎの算出スキームを説明するための図である。
【０２１８】
図２６を参照して、本実施の形態では、６通りの計算を並行して実行することによって外部値対数比αｍｎを算出する。１番目の計算では、第１ブロック（Ｈ１）を用いての計算を繰返し実行する。２番目の計算では、第１ブロック（Ｈ１）を用いての計算を繰返し実行する。３番目の計算では、第２ブロック（Ｈ２）を用いての計算を繰返し実行する。４番目の計算では、第２ブロック（Ｈ２）を用いての計算を繰返し実行する。５番目の計算では、第３ブロック（Ｈ３）を用いての計算を繰返し実行する。６番目の計算では、第３ブロック（Ｈ３）を用いての計算を繰返し実行する。
【０２１９】
１番目と２番目の計算は、第１ブロック行処理部と第１ブロック行処理部との間で、計算結果を交換することによって行なわれる。３番目と４番目の計算は、第２ブロック行処理部と第２ブロック行処理部との間で、計算結果を交換することによって行なわれる。５番目と６番目の計算は、第３ブロック行処理部と第３ブロック行処理部との間で、計算結果を交換することによって行なわれる。
【０２２０】
（その他の算出スキーム）
図２７は、第３の実施形態のその他の変形例における、外部値対数比αｍｎの算出スキームを説明するための図である。
【０２２１】
図２７を参照して、本実施の形態では、１２通りの計算を並行して実行することによって外部値対数比αｍｎを算出する。１番目の計算では、第１ブロック（Ｈ１）を用いての計算を繰返し実行する。２番目の計算では、第１ブロック（Ｈ１）を用いての計算を繰返し実行する。３番目の計算では、第１ブロック（Ｈ１）を用いての計算、第２ブロック（Ｈ２）を用いての計算を交互に繰返して実行する。４番目の計算では、第２ブロック（Ｈ２）を用いての計算、第１ブロック（Ｈ１）を用いての計算を交互に繰返して実行する。５番目の計算では、第１ブロック（Ｈ１）を用いての計算、第３ブロック（Ｈ３）を用いての計算を交互に繰返して実行する。６番目の計算では、第３ブロック（Ｈ３）を用いての計算、第１ブロック（Ｈ１）を用いての計算を交互に繰返して実行する。７番目の計算では、第２ブロック（Ｈ２）を用いての計算を繰返し実行する。８番目の計算では、第２ブロック（Ｈ２）を用いての計算を繰返し実行する。９番目の計算では、第２ブロック（Ｈ２）を用いての計算、第３ブロック（Ｈ３）を用いての計算を交互に繰返して実行する。１０番目の計算では、第３ブロック（Ｈ３）を用いての計算、第２ブロック（Ｈ２）を用いての計算を交互に繰返して実行する。１１番目の計算では、第３ブロック（Ｈ３）を用いての計算を繰返し実行する。１２番目の計算では、第３ブロック（Ｈ３）を用いての計算を繰返し実行する。
【０２２２】
１番目と２番目の計算は、第１ブロック行処理部と第１ブロック行処理部との間で、計算結果を交換することによって行なわれる。３番目と４番目の計算は、第１ブロック行処理部と第２ブロック行処理部との間で、計算結果を交換することによって行なわれる。５番目と６番目の計算は、第１ブロック行処理部と第３ブロック行処理部との間で、計算結果を交換することによって行なわれる。７番目と８番目の計算は、第２ブロック行処理部と第２ブロック行処理部との間で、計算結果を交換することによって行なわれる。９番目と１０番目の計算は、第２ブロック行処理部と第３ブロック行処理部との間で、計算結果を交換することによって行なわれる。１１番目と１２番目の計算は、第３ブロック行処理部と第３ブロック行処理部との間で、計算結果を交換することによって行なわれる。
【０２２３】
これらの変形例によっても、第３の実施形態と同様に、外部値対数比の近次値を得ることができるとともに、加算器の個数およびメモリの容量を低減できる。
【０２２４】
［第４の実施形態］
第３の実施形態では、２個のブロック行処理部を１組としたので、２つのブロック行処理部の間でしか計算結果が交換されなかった。第４の実施形態では、すべてのブロック行処理部の間で計算結果が交換されるような外部値算出部に関する。
【０２２５】
（算出スキーム）
図２８は、第４の実施形態における、外部値対数比αｍｎの算出スキームを説明するための図である。
【０２２６】
図２８を参照して、本実施の形態では、３通りの計算を並行して実行することによって外部値対数比αｍｎを算出する。１つ目の計算では、第１ブロック（Ｈ１）を用いての計算、第２ブロック（Ｈ２）を用いての計算、第３ブロック（Ｈ３）を用いての計算を順次繰返し実行する。２つ目の計算では、第２ブロック（Ｈ２）を用いての計算、第３ブロック（Ｈ３）を用いての計算、第１ブロック（Ｈ１）を用いての計算を順次繰返し実行する。３つ目の計算では、第３ブロック（Ｈ３）を用いての計算、第１ブロック（Ｈ１）を用いての計算、第２ブロック（Ｈ２）を用いての計算を順次繰返し実行する。
【０２２７】
（行処理部の構成）
図２９は、図２８に示される外部値対数比の算出処理を実行する行処理部１１ｆの詳細な構成を表わす図である。
【０２２８】
図２９を参照して、行処理部１１ｆは、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第１ブロック行処理部６９と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部７０と、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第３ブロック行処理部７２とを備える。
【０２２９】
行処理部１１ｆは、さらに第１ブロック行処理部６９に対応して設けられる第１の加算部（β＋λ）６５と、第２ブロック行処理部７０に対応して設けられる第２の加算部（β＋λ）６６と、第３ブロック行処理部７２に対応して設けられる第３の加算部（β＋λ）６７とを備える。
【０２３０】
第１ブロック行処理部６９は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第１ブロック（β＋λ）記憶部７３と、第１行処理部７４と、第２行処理部７５とを備える。第２ブロック行処理部７０は、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第２ブロック（β＋λ）記憶部７６と、第３行処理部７７と、第４行処理部７８とを備える。第３ブロック行処理部７２は、パリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値を記憶する第３ブロック（β＋λ）記憶部８２と、第５行処理部８３と、第６行処理部８４とを備える。
【０２３１】
（行処理部の動作）
第１ブロック行処理部６９は、算出したＮ列分の外部値対数比αｍｎを、第２ブロック行処理部７０に対応する第２の加算部（β＋λ）６６に出力する。これにより、第１ブロック（Ｈ１）を用いての計算の後、第２ブロック（Ｈ２）を用いての計算が行なわれる。
【０２３２】
第２ブロック行処理部７０は、算出したＮ列分の外部値対数比αｍｎを、第３ブロック行処理部７２に対応する第３の加算部（β＋λ）６７に出力する。これにより、第２ブロック（Ｈ２）を用いての計算の後、第３ブロック（Ｈ３）を用いての計算が行なわれる。
【０２３３】
第３ブロック行処理部７２は、算出したＮ列分の外部値対数比αｍｎを、第１ブロック行処理部６９に対応する第１の加算部（β＋λ）６５に出力する。これにより、第３ブロック（Ｈ３）を用いての計算の後、第２ブロック（Ｈ１）を用いての計算が行なわれる。
【０２３４】
第１ブロック行処理部６９の処理、第２ブロック行処理部７０の処理、および第３ブロック行処理部７２の処理を同時に並行して繰返し実行することによって、図２９で示される算出スキームが実行されることになる。
【０２３５】
以上のように、第４の実施形態によれば、１つのブロック行処理部での計算結果が、別のブロック行処理部に送られてＮ列分の外部値対数比の算出に用いられ、その別のブロック行処理部での計算結果が、さらに別のブロック行処理部に送られてＮ列分の外部値対数比の算出に用いられ、すべてのブロック行処理部の間で外部値対数比の計算結果を交換するので、算出される外部値対数比の近似の精度を高くすることができる。
【０２３６】
［第５の実施形態］
（算出スキーム）
図３０は、第５の実施形態における、外部値対数比αｍｎの算出スキームを説明するための図である。
【０２３７】
図３０を参照して、本実施の形態では、第４の実施形態の３通りの計算のうちの１つのみを実行することによって外部値対数比αｍｎを算出する。すなわち、本実施の形態では、第１ブロック（Ｈ１）を用いての計算、第２ブロック（Ｈ２）を用いての計算、第３ブロック（Ｈ３）を用いての計算を順次繰返し実行する。
【０２３８】
（行処理部の構成）
図３１は、図３０に示される外部値対数比の算出処理を実行する行処理部１１ｈの詳細な構成を表わす図である。
【０２３９】
図３１を参照して、行処理部１１ｇは、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第１ブロック行処理部１０２と、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第２ブロック行処理部１０３と、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、Ｎ列分の外部値対数比αｍｎを更新する第３ブロック行処理部１０４と、ブロック共通の加算部（β＋λ）１９５と、ブロック共通（β＋λ）記憶部１０１とを備える。第１ブロック行処理部１０２と、第２ブロック行処理部１０３と、第３ブロック行処理部１０４は、順番に選択されて、選択されたもののみが処理を実行する。
【０２４０】
第１ブロック行処理部１０２は、第１行処理部１０５と、第２行処理部１０６とを備える。第２ブロック行処理部１０３は、第３行処理部１０７と、第４行処理部１０８とを備える。第３ブロック行処理部１０４は、第５行処理部１０９と、第６行処理部１１０とを備える。
【０２４１】
ブロック共通（β＋λ）記憶部１０１は、パリティ検査行列Ｈの第１ブロックに対応するＮ列分の（β＋λ）の最新値、パリティ検査行列Ｈの第２ブロックに対応するＮ列分の（β＋λ）の最新値、およびパリティ検査行列Ｈの第３ブロックに対応するＮ列分の（β＋λ）の最新値のいずれかを順番に記憶する。
【０２４２】
（行処理部の動作）
まず、第１ブロック行処理部１０２が選択されて、パリティ検査行列の第１ブロック（Ｈ１）に従ってブロック共通（β＋λ）記憶部１０１からデータを読出す。パリティ検査行列の第１ブロック（Ｈ１）に従ってデータを読出すことによって、ブロック共通記憶部（β＋λ）１０１からパリティ検査行列の第１ブロック（Ｈ１）に対応する（β＋λ）を読出したことになる。たとえば、図１０のパリティ検査行列が用いられるときに、図１２（ａ）に示される（β＋λ）を読出したことになる。第１ブロック行処理部１０２は、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎを加算部（β＋λ）１９５に出力する。
【０２４３】
次に、加算部（β＋λ）１９５は、第１ブロック行処理部１０２からＮ列分の事前値対数比βｍｎ（＝αｍ'ｎ)を受け、Ｓ／Ｐ変換部８からＮ列分の対数尤度比λｎを受け、それらを加算して、Ｎ列分の加算結果（β＋λ）をブロック共通（β＋λ）記憶部１０１に記憶する。
【０２４４】
次に、第２ブロック行処理部１０３が選択されて、パリティ検査行列の第２ブロック（Ｈ２）に従ってブロック共通（β＋λ）記憶部１０１からデータを読出す。パリティ検査行列の第２ブロック（Ｈ２）に従ってデータを読出すことによって、ブロック共通記憶部（β＋λ）１０１からパリティ検査行列の第２ブロック（Ｈ２）に対応する（β＋λ）を読出したことになる。たとえば、図１０のパリティ検査行列が用いられるときに、図１２（ｂ）に示される（β＋λ）を読出したことになる。第２ブロック行処理部１０３は、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎを加算部（β＋λ）１９５に出力する。
【０２４５】
次に、加算部（β＋λ）１９５は、第２ブロック行処理部１０３からＮ列分の事前値対数比βｍｎ（＝αｍ'ｎ)を受け、Ｓ／Ｐ変換部８からＮ列分の対数尤度比λｎを受け、それらを加算して、Ｎ列分の加算結果（β＋λ）をブロック共通（β＋λ）記憶部１０１に記憶する。
【０２４６】
次に、第３ブロック行処理部１０４が選択されて、パリティ検査行列の第３ブロック（Ｈ３）に従ってブロック共通（β＋λ）記憶部１０１からデータを読出す。パリティ検査行列の第３ブロック（Ｈ３）に従ってデータを読出すことによって、ブロック共通記憶部（β＋λ）１０１からパリティ検査行列の第３ブロック（Ｈ３）に対応する（β＋λ）を読出したことになる。たとえば、図１０のパリティ検査行列が用いられるときに、図１２（ｃ）に示される（β＋λ）を読出したことになる。第３ブロック行処理部１０４は、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎを加算部（β＋λ）１９５に出力する。
【０２４７】
次に、加算部（β＋λ）１９５は、第３ブロック行処理部１０４からＮ列分の事前値対数比βｍｎ（＝αｍ'ｎ)を受け、Ｓ／Ｐ変換部８からＮ列分の対数尤度比λｎを受け、それらを加算して、Ｎ列分の加算結果（β＋λ）をブロック共通（β＋λ）記憶部１０１に記憶する。
【０２４８】
以下、上述の処理を繰返すことによって外部値対数比αｍｎが順次更新される。
以上のように、本実施形態では、第１ブロック行処理部６９の処理、第２ブロック行処理部７０の処理、および第３ブロック行処理部７２の処理を逐次実行することによって、図３１で示される算出スキームが実行されることになる。ブロック行処理部の処理を逐次的に実行し、加算部と（β＋λ）を記憶する記憶部を全ブロックで共有することによって、加算器の数、および（β＋λ）を記憶するためのメモリ容量を低減できる。
【０２４９】
［第６の実施形態］
（算出スキーム）
第６の実施形態では、第５の実施形態と同様に、図３０に示される外部値対数比αｍｎの算出スキームを実行する。
【０２５０】
（行処理部の構成）
図３２は、図３０に示される外部値対数比の算出処理を実行する行処理部１１ｈの詳細な構成を表わす図である。
【０２５１】
図３２を参照して、行処理部１１ｈは、パリティ検査行列の第１ブロック（Ｈ１）、パリティ検査行列の第２ブロック（Ｈ２）およびパリティ検査行列の第３ブロック（Ｈ３）を順次選択し、選択したブロックに従って、行処理を行ない、外部値対数比αｍｎを更新するブロック共通行処理部１１１と、第５の実施形態と同様の加算部（β＋λ）１９５およびブロック共通（β＋λ）記憶部１０１とを備える。
【０２５２】
ブロック共通行処理部１１１は、上側行処理部１１２と、下側行処理部１１３とを含む。第１ブロックの行処理を実行するときには、上側行処理部１１２は、第１行の処理を行ない、下側行処理部１１３は、第２行の処理を行なう。第２ブロックの行処理を実行するときには、上側行処理部１１２は、第３行の処理を行ない、下側行処理部１１３は、第４行の処理を行なう。第３ブロックの行処理を実行するときには、上側行処理部１１２は、第５行の処理を行ない、下側行処理部１１３は、第６行の処理を行なう。
【０２５３】
（行処理部の動作）
まず、ブロック共通行処理部１１１は、パリティ検査行列の第１ブロック（Ｈ１）を選択して、第５の実施形態の第１ブロック行処理部１０２と同様にパリティ検査行列の第１ブロック（Ｈ１）に従ってブロック共通（β＋λ）記憶部１０１からデータを読出す。ブロック共通行処理部１１１は、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎを加算部（β＋λ）１９５に出力する。
【０２５４】
次に、加算部（β＋λ）１９５は、ブロック共通行処理部１１１からＮ列分の事前値対数比βｍｎ（＝αｍ'ｎ)を受け、Ｓ／Ｐ変換部８からＮ列分の対数尤度比λｎを受け、それらを加算して、Ｎ列分の加算結果（β＋λ）をブロック共通（β＋λ）記憶部１０１に記憶する。
【０２５５】
次に、ブロック共通行処理部１１１は、パリティ検査行列の第２ブロック（Ｈ２）を選択して、第５の実施形態の第２ブロック行処理部１０３と同様にパリティ検査行列の第２ブロック（Ｈ２）に従ってブロック共通（β＋λ）記憶部１０１からデータを読出す。ブロック共通行処理部１１１は、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎを加算部（β＋λ）１９５に出力する。
【０２５６】
次に、加算部（β＋λ）１９５は、ブロック共通行処理部１１１からＮ列分の事前値対数比βｍｎ（＝αｍ'ｎ)を受け、Ｓ／Ｐ変換部８からＮ列分の対数尤度比λｎを受け、それらを加算して、Ｎ列分の加算結果（β＋λ）をブロック共通（β＋λ）記憶部１０１に記憶する。
【０２５７】
次に、ブロック共通行処理部１１１は、パリティ検査行列の第３ブロック（Ｈ３）を選択して、第５の実施形態の第３ブロック行処理部１０４と同様にパリティ検査行列の第３ブロック（Ｈ３）に従ってブロック共通（β＋λ）記憶部１０１からデータを読出す。ブロック共通行処理部１１１は、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎを加算部（β＋λ）１９５に出力する。
【０２５８】
次に、加算部（β＋λ）１９５は、ブロック共通行処理部１１１からＮ列分の事前値対数比βｍｎ（＝αｍ'ｎ)を受け、Ｓ／Ｐ変換部８からＮ列分の対数尤度比λｎを受け、それらを加算して、Ｎ列分の加算結果（β＋λ）をブロック共通（β＋λ）記憶部１０１に記憶する。
【０２５９】
以下、上述の処理を繰返すことによって外部値対数比αｍｎが順次更新される。
以上のように、本発明の実施形態では、第１ブロックの行処理、第２ブロックの行処理、および第３ブロックの行処理を逐次実行することによって、第５の実施形態と同様に図３１で示される算出スキームが実行されることになる。また、本発明の実施形態では、１つのブロック共通行処理部が各ブロックの行処理を逐次的に実行するので、第５の実施形態と同様に加算器の数、および（β＋λ）を記憶するためのメモリ容量を低減できるに加えて、さらに、行処理部のハードウエア構成を簡略化できる。
【０２６０】
［第７の実施形態］
第７の実施形態は、列重み３以上のパリティ検査行列を用いて外部値対数比を算出する外部値対数比算出部において、加算部で列処理を行なうのに代えて、セレクト部で近似的に列処理を行なう。
【０２６１】
図３３は、第７の実施形態における、列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ａおよび列処理部１０ｂの詳細な構成を表わす図である。
【０２６２】
図３３を参照して、行処理部９ａは、図９の行処理部９ａと同様なので、ここでは説明を繰返さない。
【０２６３】
図３３の列処理部１０ｂと図９の列処理部１０ａとが相違する点は、図３３の列処理部１０ｂは、第１の加算部（β）２１、第２の加算部（β）２２および第３の加算部（β）２３の代わりに、セレクト部１９８を含む点である。セレクト部１９８は、第１ブロック行処理部１８に対応して配置される第１のセレクタ１２１、第２ブロック行処理部１９に対応して配置される第２のセレクタ１２２、および第３ブロック行処理部２０に対応して配置される第３のセレクタ１２３を含む。
【０２６４】
第１のセレクタ１２１は、対応するブロック行処理部以外のブロック行処理部である第２ブロック行処理部１９および第３ブロック行処理部２０からそれぞれＮ列分の外部値対数比αｍｎを入力して、Ｎ列の各列ごとにその絶対値が最大となる外部値対数比αｍｎを選択して、選択したＮ列分の外部値対数比αｍｎを第１ブロック（β）記憶部２４を経由して第１の加算部（β＋λ）１５へ出力する。
【０２６５】
第２のセレクタ１２２は、対応するブロック行処理部以外のブロック行処理部である第１ブロック行処理部１８および第３ブロック行処理部２０からそれぞれＮ列分の外部値対数比αｍｎを入力して、Ｎ列の各列ごとにその絶対値が最大となる外部値対数比αｍｎを選択して、選択したＮ列分の外部値対数比αｍｎを第２ブロック（β）記憶部２５を経由して第２の加算部（β＋λ）１６へ出力する。
【０２６６】
第３のセレクタ１２３は、対応するブロック行処理部以外のブロック行処理部である第１ブロック行処理部１８および第２ブロック行処理部１９からそれぞれＮ列分の外部値対数比αｍｎを入力して、Ｎ列の各列ごとにその絶対値が最大となる外部値対数比αｍｎを選択して、選択したＮ列分の外部値対数比αｍｎを第３ブロック（β）記憶部２６を経由して第３の加算部（β＋λ）１７へ出力する。
【０２６７】
図３４は、第１のセレクタ１２１の第１列目の構成を表わす図である。第１のセレクタ１２１の第２列目〜第１２列目、第２のセレクタ１２２の第１列目〜第１２列目、第３のセレクタ１２３の第１列目〜第１２列目もこれと同じ構成である。
【０２６８】
図３４を参照して、第１のセレクタ１２１の第１列目は、第２ブロック行処理部１９から外部値対数比αt,1と、第３ブロック行処理部２０から外部値対数比αu,1を受けて、外部値対数比αt,1の絶対値が最大の場合には外部値対数比αt,1を選択し、外部値対数比αu,1の絶対値が最大の場合には外部値対数比αu,1を選択する。第１のセレクタ１２１の第１列目は、選択したデータを、事前値対数比βs、1（第１列目のデータ）として第１ブロック（β）記憶部２４の第１列目の位置へ出力する。外部値対数比αt,1と外部値対数比αu,1のどちらの絶対値も同じ値である場合には、いずれかの値が出力される。
【０２６９】
ここで、ｔは、パリティ検査行列の第２ブロックの第１列目で「１」が立っている行を表わし、ｕは、パリティ検査行列の第３ブロックの第１列目で「１」が立っている行を表わし、ｓは、パリティ検査行列の第１ブロックの第１列目で「１」が立っている行を表わす。
【０２７０】
以上のように、第７の実施形態では、複数個の外部値対数比を加算して列処理を行なうのに代えて、複数個の外部値対数比の中でその絶対値が最大のものを選択して近似的に列処理を行なうので、ハードウエア構成を簡略化できる。
【０２７１】
［第８の実施形態］
第８の実施形態は、第７の実施形態と同様に、加算部で列処理を行なうのに代えて、セレクト部で列処理を行なう。
【０２７２】
図３５は、第８の実施形態における、列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ｂおよび列処理部１０ｃの詳細な構成を表わす図である。
【０２７３】
図３５を参照して、この行処理部９ｂと図９の行処理部９ａとが相違する点は、図９の行処理部９ａが、３つの加算部（β＋λ）１５，１６，１７および３つのブロック（β＋λ）記憶部２７，３０，３３を含むのに対して、図３５の行処理部９ｂは、１個の加算部（β＋λ）１９６およびブロック共通記憶部（β＋λ）２０１を含む点である。
【０２７４】
また、図３５の列処理部１０ｃと図９の列処理部１０ａとが相違する点は、図９の列処理部１０ａが、第１の加算部（β）２１、第２の加算部（β）２２、第３の加算部（β）２３、第１ブロック（β）記憶部２４、第２ブロック（β）記憶部２５および第３ブロック（β）記憶部２６を含むのに対して、図３５の列処理部１０ｃは、セレクト部１２４を含む点である。
【０２７５】
セレクト部１２４は、第１ブロック行処理部２０２、第２ブロック行処理部２０３および第３ブロック行処理部２０４からそれぞれＮ列分の外部値対数比αｍｎを入力して、Ｎ列の各列ごとにその絶対値が最大となる外部値対数比αｍｎを選択して、選択したＮ列分の外部値対数比αｍｎを加算部（β＋λ）１９６へ出力する。
【０２７６】
加算部（β＋λ）１９６は、セレクト部１２４から出力されたＮ列分の外部値対数比αｍｎと、Ｓ／Ｐ変換部８から出力されたＮ列分の対数尤度比λｎとを加算して、Ｎ列分の加算結果をブロック共通記憶部（β＋λ）２０１に出力する。
【０２７７】
第１ブロック行処理部２０２は、パリティ検査行列の第１ブロック（Ｈ１）に従ってブロック共通（β＋λ）記憶部２０１からデータを読出す。パリティ検査行列の第１ブロック（Ｈ１）に従ってデータを読出すことによって、ブロック共通記憶部（β＋λ）２０１からパリティ検査行列の第１ブロック（Ｈ１）に対応する（β＋λ）を読出したことになる。第１ブロック行処理部２０２は、パリティ検査行列の第１ブロック（Ｈ１）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎをセレクト部１２４に出力する。
【０２７８】
第２ブロック行処理部２０３は、パリティ検査行列の第２ブロック（Ｈ２）に従ってブロック共通（β＋λ）記憶部２０１からデータを読出す。パリティ検査行列の第２ブロック（Ｈ２）に従ってデータを読出すことによって、ブロック共通記憶部（β＋λ）２０２からパリティ検査行列の第２ブロック（Ｈ２）に対応する（β＋λ）を読出したことになる。第２ブロック行処理部２０３は、パリティ検査行列の第２ブロック（Ｈ２）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎをセレクト部１２４に出力する。
【０２７９】
第３ブロック行処理部２０４は、パリティ検査行列の第３ブロック（Ｈ３）に従ってブロック共通（β＋λ）記憶部２０１からデータを読出す。パリティ検査行列の第３ブロック（Ｈ３）に従ってデータを読出すことによって、ブロック共通記憶部（β＋λ）２０２からパリティ検査行列の第３ブロック（Ｈ３）に対応する（β＋λ）を読出したことになる。第３ブロック行処理部２０４は、パリティ検査行列の第３ブロック（Ｈ３）に従って行処理を行ない、算出したＮ列分の外部値対数比αｍｎをセレクト部１２４に出力する。
【０２８０】
図３６は、セレクト部１２４の第１列目の構成を表わす図である。セレクト部１２４の第２列目〜第１２列目もこれと同じ構成である。
【０２８１】
図３６を参照して、セレクト部１２４の第１列目は、第１ブロック行処理部２０２から外部値対数比αs,1と、第２ブロック行処理部２０３から外部値対数比αt,1と、第３ブロック行処理部２０４から外部値対数比αu,1を受けて、外部値対数比αs,1の絶対値が最大の場合には外部値対数比αs,1を選択し、外部値対数比αt,1の絶対値が最大の場合には外部値対数比αt,1を選択し、外部値対数比αu,1の絶対値が最大の場合には外部値対数比αu,1を選択する。セレクト部１２４の第１列目は、選択したデータを事前値対数比βs、1（＝βt,1＝βu,1)（第１列目のデータ）として加算部（β＋λ）１９６へ出力する。絶対値が最大なものが２つ以上ある場合には、いずれかの値が出力される。
【０２８２】
ここで、ｓは、パリティ検査行列の第１ブロックの第１列目で「１」が立っている行を表わす。ｔは、パリティ検査行列の第２ブロックの第１列目で「１」が立っている行を表わし、ｕは、パリティ検査行列の第３ブロックの第１列目で「１」が立っている行を表わす。
【０２８３】
再び、図３５を参照して、加算部（β＋λ）１９６は、第１列目について、セレクト部１２４から第１列目のデータ（＝βs,1＝βt,1＝βu,1）を受け、Ｓ／Ｐ変換部８から第１列目の対数尤度比λ1を受けて、それらを加算する。加算部（β＋λ）１９６は、加算結果（＝βs,1＋λ1＝βt,1＋λ1＝βu,1＋λ1）をブロック共通（β＋λ）記憶部２０１の第１列目に出力する。加算部（β＋λ）１９６は、上記と同様にして第２列目〜第１２目についての処理を行なう。
【０２８４】
以上のように、第８の実施形態では、複数個の外部値対数比を加算して列処理を行なうのに代えて、すべてのブロック行処理部から出力された外部値対数比の中でその絶対値が最大のものを１つ選択して、近似的に列処理を行なうので、第７の実施形態よりもさらにハードウエア構成を簡略化できる。
【０２８５】
［第９の実施形態］
図３７は、第９の実施形態における、列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ａおよび列処理部１０ｄの詳細な構成を表わす図である。
【０２８６】
図３７を参照して、行処理部９ａは、図９の行処理部９ａと同様なので、ここでは説明を繰返さない。
【０２８７】
図３７の列処理部１０ｄと図９の列処理部１０ａとが相違する点は、図９の列処理部１０ａが、第１の加算部（β）２１、第２の加算部（β）２２、第３の加算部（β）２３、第１ブロック（β）記憶部２４、第２ブロック（β）記憶部２５および第３ブロック（β）記憶部２６を含むのに対して、図３７の列処理部１０ｄは、セレクト部１２５を含む点である。
【０２８８】
セレクト部１２５は、第１ブロック行処理部１８、第２ブロック行処理部１９および第３ブロック行処理部２０からそれぞれＮ列分の外部値対数比αｍｎを入力して、各列ごとにその絶対値が最大である外部値対数比を第１最大値として記憶し、各列ごとにその絶対値が２番目に大きな外部値対数比を第２最大値として記憶し、各列ごとにその絶対値が最大である外部値対数比を出力したブロック行処理部のブロック番号を記憶する。
【０２８９】
セレクト部１２５は、各列について、記憶しているブロック番号のブロック行処理部に対応する加算部（β＋λ）に対しては、記憶している第２最大値を出力し、記憶しているブロック番号以外のブロック行処理部に対応する加算部（β＋λ）に対しては、記憶している第１最大値を出力する。
【０２９０】
図３８は、セレクト部１２５の第１列目の構成を表わす図である。セレクト部１２５の第２列目〜第１２列目もこれと同じ構成である。
【０２９１】
図３８を参照して、セレクト部１２５の第１列目は、第１ブロック行処理部１８から外部値対数比αs,1と、第２ブロック行処理部１９から外部値対数比αt,1と、第３ブロック行処理部２０から外部値対数比αu,1を受ける。ここで、ｓは、パリティ検査行列の第１ブロックの第１列目で「１」が立っている行を表わし、ｔは、パリティ検査行列の第２ブロックの第１列目で「１」が立っている行を表わし、ｕは、パリティ検査行列の第３ブロックの第１列目で「１」が立っている行を表わす。
【０２９２】
第１最大値記憶部１３２は、外部値対数比αs,1と、外部値対数比αt,1と、外部値対数比αu,1の中でその絶対値が最大なもの（第１最大値）を記憶する。第２最大値記憶部１３３は、外部値対数比αs,1と、外部値対数比αt,1と、外部値対数比αu,1の中でその絶対値が２番目に大きなもの（第２最大値）を記憶する。その絶対値が等しいものが複数個存在する場合には、それらのうちの１つを第１最大値記憶部１３２に記憶し、他の１つを第２最大値記憶部１３３に記憶する。
【０２９３】
第１最大値位置記憶部１３１は、第１最大値記憶部１３２に記憶されるデータの出力元のブロック行処理部のブロック番号を記憶する。具体的には、第１最大値位置記憶部１３１は、第１最大値記憶部１３２に外部値対数比αs,1が記憶される場合には、ブロック番号「１」を記憶し、第１最大値記憶部１３２に外部値対数比αt,1が記憶される場合には、ブロック番号「２」を記憶し、第１最大値記憶部１３２に外部値対数比αu,1が記憶される場合には、ブロック番号「３」を記憶する。
【０２９４】
選択器１３４は、第１の加算部（β＋λ）１５、第２の加算部（β＋λ）１６および第３の加算部（β＋λ）１７への出力データとして、それぞれ第１最大値記憶部１３２に記憶されている第１最大値および第２最大値記憶部１３３に記憶されている第２最大値の一方を選択する。
【０２９５】
すなわち、選択器１３４は、第１最大値位置記憶部１３１に記憶されているブロック番号以外のブロック行処理部に対応する加算部（β＋λ）へは、第１最大値記憶部１３２に記憶されている第１最大値を出力し、第１最大値位置記憶部１３１に記憶されているブロック番号のブロック行処理部に対応する加算部（β＋λ）へは、第２最大値記憶部１３３に記憶されている第２最大値を出力する。
【０２９６】
例として、外部値対数比αt,1の絶対値が最大で、外部値対数比αu,1の絶対値が２番目に大きいとする。この場合、第１最大値記憶部１３２には外部値対数比αt,1が記憶され、第２最大値記憶部１３３には外部値対数比αu,1が記憶され、第１最大値位置記憶部１３１には、ブロック番号「２」が記憶される。
【０２９７】
選択器１３４は、第１最大値位置記憶部１３１にブロック番号「２」が記憶されているので、第１最大値記憶部１３２に記憶されている外部値対数比αt,1を第１の加算部（β＋λ）１５へ事前値対数比βs,1として出力し、第２最大値記憶部１３２に記憶されている外部値対数比αu,1を第２の加算部（β＋λ）１６へ事前値対数比βt,1として出力し、第１最大値記憶部１３２に記憶されている外部値対数比αt,1を第３の加算部（β＋λ）１７へ事前値対数比βu,1として出力する。
【０２９８】
以上のように、第９の実施形態では、セレクト部がその絶対値が最大の外部値対数比、その絶対値が２番目に大きな外部値対数比、その絶対値が最大の外部値対数比を出力したブロック行処理部のブロック番号を記憶し、記憶しているその絶対値が最大の外部値対数比、およびその絶対値が２番目に大きな外部値対数比のいずれかを選択して出力するので、第７の実施形態よりもさらにハードウエア構成を簡略化できる。
【０２９９】
［第９の実施形態の変形例］
本変形例は、第９の実施形態のセレクト部１２５の変形例に関する。
【０３００】
本変形例のセレクト部２１０は、第１ブロック行処理部１８、第２ブロック行処理部１９および第３ブロック行処理部２０からそれぞれＮ列分の外部値対数比αｍｎを入力して、各列ごとに外部値対数比の絶対値を記憶し、各列ごとにその絶対値が最大である外部値対数比を第１最大値として記憶し、各列ごとにその絶対値が２番目に大きな外部値対数比を第２最大値として記憶する。
【０３０１】
セレクト部２１０は、各列について、ブロック行処理部に対応する加算部（β＋λ）に対しては、記憶している第２最大値を出力し、記憶しているブロック番号以外のブロック行処理部に対応する加算部（β＋λ）に対しては、記憶している第１最大値を出力する。
【０３０２】
図３９は、セレクト部２１０の第１列目の構成を表わす図である。セレクト部２１０の第２列目〜第１２列目もこれと同じ構成である。
【０３０３】
図３９を参照して、セレクト部２１０の第１列目は、第１ブロック行処理部１８から外部値対数比αs,1と、第２ブロック行処理部１９から外部値対数比αt,1と、第３ブロック行処理部２０から外部値対数比αu,1を受ける。ここで、sは、パリティ検査行列の第１ブロックの第１列目で「１」が立っている行を表わし、ｔは、パリティ検査行列の第２ブロックの第１列目で「１」が立っている行を表わし、ｕは、パリティ検査行列の第３ブロックの第１列目で「１」が立っている行を表わす。
【０３０４】
絶対値記憶部２１４は、第１ブロック行処理部１８から出力された外部値対数比αs,1の絶対値と、第２ブロック行処理部１９から出力された外部値対数比αt,1の絶対値と、第３ブロック行処理部２０から出力された外部値対数比αu,1の絶対値を記憶する。
【０３０５】
第１最大値記憶部２１１は、外部値対数比αs,1と、外部値対数比αt,1と、外部値対数比αu,1の中でその絶対値が最大なもの（第１最大値）を記憶する。第２最大値記憶部２１２は、外部値対数比αs,1と、外部値対数比αt,1と、外部値対数比αu,1の中でその絶対値が２番目に大きなもの（第２最大値）を記憶する。その絶対値が等しいものが複数個存在する場合には、それらのうちの１つを第１最大値記憶部２１１に記憶し、他の１つを第２最大値記憶部２１２に記憶する。
【０３０６】
選択器２１３は、第１の加算部（β＋λ）１５、第２の加算部（β＋λ）１６および第３の加算部（β＋λ）１７への出力データとして、それぞれ第１最大値記憶部２１１に記憶されている第１最大値および第２最大値記憶部２１２に記憶されている第２最大値の一方を選択する。
【０３０７】
すなわち、選択器２１３は、絶対値記憶部２１４に記録されている第１ブロック行処理部１８から出力された外部値対数比αs,1の絶対値と、第１最大値記憶部２１１に記憶されている第１最大値の絶対値の大きさを比較する。選択器２１３は、比較結果が同一の場合には、第２最大値記憶部２１２に記憶されている第２最大値を第１ブロック行処理部１８に対応する第１の加算部（β＋λ）１５へ出力し、異なる場合には、第１最大値記憶部２１１に記憶されている第１最大値を第１ブロック行処理部１８に対応する第１の加算部（β＋λ）１５へ出力する。
【０３０８】
選択器２１３は、絶対値記憶部２１４に記録されている第２ブロック行処理部１９から出力された外部値対数比αt,1の絶対値と、第１最大値記憶部２１１に記憶されている第１最大値の絶対値の大きさを比較する。選択器２１３は、比較結果が同一の場合には、第２最大値記憶部２１２に記憶されている第２最大値を第２ブロック行処理部１９に対応する第２の加算部（β＋λ）１６へ出力し、異なる場合には、第１最大値記憶部２１１に記憶されている第１最大値を第２ブロック行処理部１９に対応する第２の加算部（β＋λ）１６へ出力する。
【０３０９】
選択器２１３は、絶対値記憶部２１４に記録されている第３ブロック行処理部２０から出力された外部値対数比αu,1の絶対値と、第１最大値記憶部２１１に記憶されている第１最大値の絶対値の大きさを比較する。選択器２１３は、比較結果が同一の場合には、第２最大値記憶部２１２に記憶されている第２最大値を第３ブロック行処理部２０に対応する第３の加算部（β＋λ）１７へ出力し、異なる場合には、第１最大値記憶部２１１に記憶されている第１最大値を第３ブロック行処理部２０に対応する第３の加算部（β＋λ）１７へ出力する。
【０３１０】
例として、外部値対数比αt,1の絶対値が最大で、外部値対数比αu,1の絶対値が２番目に大きいとする。この場合、第１最大値記憶部２１１には外部値対数比αt,1が記憶され、第２最大値記憶部２１２には外部値対数比αu,1が記憶される。
【０３１１】
選択器２１３は、第１最大値記憶部２１１に記憶されている外部値対数比αt,1を第１の加算部（β＋λ）１５へ事前値対数比βs,1として出力し、第２最大値記憶部２１２に記憶されている外部値対数比αu,1を第２の加算部（β＋λ）１６へ事前値対数比βt,1として出力し、第１最大値記憶部２１１に記憶されている外部値対数比αt,1を第３の加算部（β＋λ）１７へ事前値対数比βu,1として出力する。
【０３１２】
以上のように、本変形例でも、第９の実施形態と同様に、記憶しているその絶対値が最大の外部値対数比、およびその絶対値が２番目に大きな外部値対数比のいずれかを選択して出力するので、第７の実施形態よりもさらにハードウエア構成を簡略化できる。
【０３１３】
［第１０の実施形態］
第１０〜第１３の実施形態は、第１の実施形態と異なる復号語の生成方法に関するものである。
【０３１４】
図４０は、第１０の実施形態の一次推定語生成部１８０ａの構成を表わす図である。
図４０を参照して、この一次推定語生成部１８０ａが、図６の第１の実施形態の一次推定語生成部１８０と相違するのは、Ｑｎ算出部である。
【０３１５】
第１０の実施形態のＱｎ算出部１４２は、複数のブロック行処理部からの外部値対数比αｍｎに従って、次式（９）に従って、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出する。
【数５】
2007325011.tif 000007
【０３１６】
第１の実施形態と同様に、Ｃｎ算出部１４１は、前述の式（７）に従って、一次推定語（Ｃ1、Ｃ2、・・・、ＣN）を算出する。
【０３１７】
以上のように、第１０の実施形態では、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出するときに対数尤度比λｎを加えないので、受信語推定時の計算量を低減できる。
【０３１８】
［第１１の実施形態］
図４１は、第１１の実施形態の一次推定語生成部１８０ｂの構成を表わす図である。
【０３１９】
図４１を参照して、この一次推定語生成部１８０ｂが、図６の第１の実施形態の一次推定語生成部１８０と相違するのは、Ｑｎ算出部である。
【０３２０】
第１１の実施形態のＱｎ算出部１４３は、予め定められた特定の１個のブロック行処理部からの外部値対数比αｍｎに従って、次式（１０）に従って、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出する。
Ｑn＝αｍｎ…（１０）
ここで、ｍは、ｍ∈Ｂ（ｎ）であって、かつ特定の１個のブロック行処理部がｎ列目の処理を行なう行を表わす。
【０３２１】
第１の実施形態と同様に、Ｃｎ算出部１４１は、式（７）に従って、一次推定語（Ｃ1、Ｃ2、・・・、ＣN）を算出する。
【０３２２】
以上のように、第１１の実施形態では、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出するときに、特定の１個のブロック行処理部で計算された外部値対数比αｍｎだけを用いるので、受信語推定時の計算量を低減できる。
【０３２３】
［第１１の実施形態の変形例］
第１１の実施形態では、特定の１個のブロック行処理部からの外部値対数比αｍｎに従って、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出したが、特定のＬ個（Ｌは２以上の自然数）のブロック行処理部からの外部値対数比に従って、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出することとしてもよい。
【０３２４】
［第１２の実施形態］
図４２は、第１２の実施形態の一次推定語生成部１８０ｃおよび復号語決定部１９０ａの構成を表わす図である。
【０３２５】
図４２を参照して、この一次推定語生成部１８０ｃが、図６の第１の実施形態の一次推定語生成部１８０と相違するのは、Ｑｎ算出部およびＣｎ算出部である。
【０３２６】
第１２の実施形態のＱｎ算出部１４４は、ｉ番目のブロック行処理部からの外部値対数比に従って、推定受信語（Ｑ1（ｉ）、Ｑ2（ｉ）、・・・、ＱN（ｉ））を算出する。すなわち、Ｑｎ算出部は、i番目のブロック行処理部からの外部値対数比αｍｎ(ｉ）を用いて、次式（１１）に従って、推定受信語のｎビット目Ｑn（ｉ）（ｎ＝１、２、・・・、Ｎ）を算出する。
Ｑn（ｉ）＝αｍｎ（ｉ）…（１１）
ここで、ｍは、ｍ∈Ｂ（ｎ）であって、かつｉ番目のブロック行処理部がｎ列目の処理を行なう行を表わす。
【０３２７】
行処理部内にブロック行処理部がＭ個（Ｍ≧２）ある場合には、Ｍ個の推定受信語のｎビット目Ｑn（１）、Ｑn（２）、・・・、Ｑn（Ｍ）が算出されることになる。
【０３２８】
Ｃｎ算出部１４５は、次式（１２）に従って、Ｍ個の推定受信語のｎビット目Ｑn（ｉ）からＭ個の一次推定語のｎビット目Ｃn（ｉ）（ｎ＝１、２、・・・、Ｎ）を算出する。
【数６】
2007325011.tif 000008
【０３２９】
復号語決定部１９０ａは、算出したＭ個の一次推定語のｎビット目Ｃn（１）、Ｃn（２）、・・・、Ｃn（Ｍ）（ｎ＝１〜Ｋ）の多数決に従って、復号語のｎビット目を決定する。すなわち、復号語決定部１９０ａは、Ｍ個の一次推定語のｎビット目Ｃn（１）、Ｃn（２）、・・・、Ｃn（Ｍ）の値について、「１」である個数が「０」である個数以上の場合には、復号語のｎビット目を「１」に決定し、「１」である個数が「０」である個数未満の場合には、復号語のｎビット目を「０」に決定する。
【０３３０】
以上のように、第１２の実施形態では、各ブロック行処理部で計算された外部値対数比αｍｎに基づいて計算された一次推定語の多数決で復号語が決定されるので、復号語の精度を向上することができる。
【０３３１】
［第１２の実施形態の変形例］
第１２の実施形態では、各ブロック行処理部からの外部値対数比αｍｎに従って、Ｃn（ｉ）を算出したが、２個以上Ｍ個以下のブロック行処理部から出力される外部値対数比に基づいて、Ｌ個（Ｌは２以上）のＣn（ｉ）（ｉ＝１〜Ｌ）を算出することとしてもよい。たとえば、行処理部内に４つのブロック行処理部がある場合に、第１番目のブロック行処理部から出力されるＮ列分の外部値対数比と、第２番目のブロック行処理部から出力されるＮ列分の外部値対数比と、第３番目のブロック行処理部から出力されるＮ列分の外部値対数比に基づいて、第１番目のブロック行処理部の外部値対数比と第２番目のブロック行処理部の外部値対数比からＣn（１）を算出し、第２番目のブロック行処理部の外部値対数比と第３番目のブロック行処理部の外部値対数比からＣn（２）を算出し、第３番目のブロック行処理部の外部値対数比と第１番目のブロック行処理部の外部値対数比からＣn（３）を算出することとしてもよい。
【０３３２】
［第１３の実施形態］
図４３は、第１３の実施形態の一次推定語生成部１８０ｃおよび復号語決定部１９０ｂの構成を表わす図である。
【０３３３】
図４３を参照して、第１３の実施形態では、復号語決定部が図４２の第１２の実施形態と異なる。
【０３３４】
Ｑｎ算出部１４４は、第１２の実施形態と同様にして、推定受信語（Ｑ1（ｉ）、Ｑ2（ｉ）、・・・、ＱN（ｉ））を算出する。
【０３３５】
Ｃｎ算出部１４６は、第１２の実施形態と同様にして、Ｑn（ｉ）からＣn（ｉ）（ｎ＝１、２、・・・、Ｎ）を算出する。
【０３３６】
復号語決定部１９０ｂは、一次推定語生成部１８０ｃからＭ個の一次推定語（Ｃ1（ｉ）、Ｃ2（ｉ）、・・・、ＣN（ｉ））（ｉ＝１〜Ｍ）を受けて、次式（１３）に従って、Ｍ個の一次推定語が符号語を構成しているかを検査する。
【０３３７】
復号語決定部１９０ｂは、次式（１３）が成立するようなi（＝ｓとする）がある場合に、外部値対数比算出部の繰返し演算を終了させて、（Ｃ1（ｓ）、Ｃ2（ｓ）、・・・、ＣN（ｓ））のうちのＫビットの情報ビット部分、すなわち、（Ｃ1（ｓ）、Ｃ2（ｓ）、・・・、ＣK（ｓ））を復号語として復号化器５の外部に出力する。
（Ｃ1（ｉ）,Ｃ2（ｉ）,…,ＣN（ｉ）)・Ｈt＝０     （ｉ＝１〜Ｍ）…（１３）
【０３３８】
一方、復号語決定部１９０ｂは、ループの回数、つまり外部値対数比算出部７の演算の繰返し回数が所定値を超えて、かつ、式（１２）が成立するようなｉがない場合には、次の（１）〜（３）のいずれかに従って、復号語を出力する。
（１）  いずれか１個のｉ（＝ｊとする）を選択して、Ｋビットの情報部分（Ｃ1（ｊ）、Ｃ2（ｊ）、・・・、ＣK（ｊ））を復号語として復号化器５の外部に出力する。
（２）  対数尤度比λｎ（ｎ＝１〜Ｋ）によって次の式（１３）によって定まるＫビットの情報部分（Ｃ1、Ｃ2、・・・、ＣK）を復号語として復号化器５の外部に出力する。
【数７】
2007325011.tif 000009
（３）  （Ｃ1（ｉ）,Ｃ2（ｉ）,…,ＣN（ｉ）)・Ｈtの計算結果において、０の個数が最多となるｉ（＝ｊとする）を選択して、Ｋビットの情報部分（Ｃ1（ｊ）、Ｃ2（ｊ）、・・・、ＣK（ｊ））を復号語として復号化器５の外部に出力する。
【０３３９】
以上のように、第１３の実施形態では、各ブロック行処理部で計算された外部値対数比αｍｎに基づいて計算された一次推定語のうち、復号語としての条件を満足する（つまり、シンドロームが０となる）ものを復号語として決定するので、復号の精度を向上することができる。
【０３４０】
［第１３の実施形態の変形例］
第１３の実施形態において、各ブロック行処理部からの外部値対数比αｍｎに従って、Ｃn（ｉ）を算出したが、これに限定するものではない。１個以上Ｍ個以下のブロック行処理部から出力される外部値対数比に基づいて、Ｌ個（Ｌは１以上）のＣn（ｉ）（ｉ＝１〜Ｌ）を算出することとしてもよい。
【０３４１】
［第１２および第１３の実施形態の変形例］
第１２の実施形態において、多数決で決定された復号語をそのまま出力せずに、多数決で決定された（Ｃ1、Ｃ2、…、ＣN)が式（８）の条件を満足する場合には、そのうちのＫビット情報部分（Ｃ1、Ｃ2、…、ＣK)を出力し、式（８）を満足しない場合には、第１３の実施形態で説明した（１）〜（３）のいずれかに従って、復号語を出力するものとしてもよい。
【０３４２】
［第１４の実施形態］
図４４は、第１４の実施形態の一次推定語生成部１８０ｂおよび復号語決定部１９０ｃの構成を表わす図である。
【０３４３】
図４４を参照して、この一次推定語生成部１８０ｂは、第１１の実施形態の一次推定語生成部１８０ｂと同様である。
【０３４４】
すなわち、第１１の実施形態と同様に、Ｑｎ算出部１４３は、予め定められた特定の１個のブロック行処理部からの外部値対数比αｍｎに従って、前述の式（９）に従って、推定受信語（Ｑ1、Ｑ2、・・・、ＱN）を算出する。
【０３４５】
第１１の実施形態と同様に、Ｃｎ算出部１４１は、前述の式（１０）に従って、一次推定語（Ｃ1、Ｃ2、・・・、ＣN）を算出する。
【０３４６】
復号語決定部１９０ｃは、一次推定語生成部１８０ｂで生成された１個の一次推定語のＫビットの情報部分（Ｃ1、Ｃ2、・・・、ＣK）をそのまま復号語として決定して復号化器５の外部に出力する。
【０３４７】
（全体を通じての変形例）
本発明は、上記の実施の形態に限定されるものではなく、たとえば以下のような変形例を含む。
【０３４８】
（１）  sum-product復号法
本発明の実施形態では、min-sum復号法を用いた場合を例として説明したが、sum-product復号法を用いた場合でも、行処理の中身が変わるだけであって、本発明の実施形態で説明した列処理を行なうことができる。
【０３４９】
（２）  βを保持する記憶部
第２の実施形態は、第１の実施形態で事前値対数比βを保持する記憶部を無くした構成について説明した。第３〜第９の実施形態およびそれらの変形例では、βを保持する記憶部がある構成、およびβを保持する記憶部が無い構成のどちらを用いてもよい。
【０３５０】
（３）  特許文献１に記載の行処理
第２の実施形態の変形例では、第１の実施形態の行処理部の構成を特許文献１に記載の方法に代えた構成について説明した。第３〜第９の実施形態およびそれらの変形例においても、特許文献１に記載の行処理を用いることとしてもよい。
【０３５１】
（４）  行処理部内のブロック行処理部
本発明の第１〜第６の実施形態では、行処理部は、パリティ検査行列Ｈの各ブロックについてのブロック行処理部を少なくとも１個含むものとしたが、これに限定するものではなく、特定の１個または複数個のブロックのブロック行処理部を含まないものとしてもよい。
【０３５２】
たとえば、図１０に示すパリティ検査行列の場合には、行処理部は、第１ブロック（Ｈ１）、第２ブロック（Ｈ２）および第３ブロック（Ｈ２）それぞれについてのブロック行処理部を少なくとも１個含まなくてもよい。たとえば、行処理部は、第１ブロック（Ｈ１）についてのブロック行処理部のみを少なくとも１個含むものとしてよく、または第１ブロック（Ｈ１）についてのブロック行処理と第２ブロック（Ｈ２）についてのブロック行処理部のみをそれぞれ少なくとも１個含むものとしてもよい。
【０３５３】
（５）  本発明の実施形態の共通点について
本発明の第１〜第９の実施形態に共通する点は、従来のようにブロック行処理部が、２個以上のブロックについて更新された外部値対数比を用いて（このために、外部値対数比の加算が必要となる）、行処理を行なうのではなく、ある１つのブロックについての行処理を行なうブロック行処理部は、その１つのブロックまたはそれとは異なる１つのブロックのみについて更新された外部値対数比を用いて、行処理を行なう点にある。本発明は、この基本的な特徴を有するすべての変形例を含む。
【０３５４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０３５５】
【図１】本発明の実施形態に従う復号装置を用いる通信システムの構成の一例を示す図である。
【図２】通信路３が光ファイバの場合の変調器２および復調器４の出力データの対応関係を一覧にして示す図である。
【図３】本発明の実施形態に従う復号化器５の構成を概略的に示す図である。
【図４】パリティ検査行列Ｈの例を表わす図である。
【図５】図４に示すパリティ検査行列のタナーグラフを示す図である。
【図６】一次推定語生成部１８０の構成を表わす図である。
【図７】列重みがＸのパリティ検査行列の生成方法を説明するための図である。
【図８】列重みＸ（Ｘ≧３）のパリティ検査行列を用いる外部値対数比算出部７ａの概略構成を表わす図である。
【図９】列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ａおよび列処理部１０ａの詳細な構成を表わす図である。
【図１０】列重みが３のパリティ検査行列の例を表わす図である。
【図１１】（ａ）は、図１０のパリティ検査行列が用いられるときに、第１ブロック（β）記憶部２４に記憶されるデータを表わす図である。（ｂ）は、図１０のパリティ検査行列が用いられるときに、第２ブロック（β）記憶部２５に記憶されるデータを表わす図である。（ｃ）は、図１０のパリティ検査行列が用いられるときに、第３ブロック（β）記憶部２６に記憶されるデータを表わす図である。
【図１２】（ａ）は、図１０のパリティ検査行列が用いられるときに、第１ブロック（β＋λ）記憶部２７に記憶されるデータを表わす図である。（ｂ）は、図１０のパリティ検査行列が用いられるときに、第２ブロック（β＋λ）記憶部３０に記憶されるデータを表わす図である。（ｃ）は、図１０のパリティ検査行列が用いられるときに、第３ブロック（β＋λ）記憶部３３に記憶されるデータを表わす図である。
【図１３】列重み２のパリティ検査行列を用いる外部値対数比算出部の概略構成を表わす図である。
【図１４】列重みが２のパリティ検査行列を用いる外部値対数比算出部の行処理部１１の詳細な構成を表わす図である。
【図１５】列重みが２のパリティ検査行列の例を表わす図である。
【図１６】（ａ）は、図１５のパリティ検査行列が用いられるときに、第１ブロック（β）記憶部４５に記憶されるデータを表わす図である。（ｂ）は、図１５のパリティ検査行列が用いられるときに、第２ブロック（β）記憶部４６に記憶されるデータを表わす図である。
【図１７】（ａ）は、図１５のパリティ検査行列が用いられるときに、第１ブロック（β＋λ）記憶部４７に記憶されるデータを表わす図である。（ｂ）は、図１５のパリティ検査行列が用いられるときに、第２ブロック（β＋λ）記憶部５１に記憶されるデータを表わす図である。
【図１８】第２の実施形態における、列重みが２のパリティ検査行列を用いる外部値対数比算出部の行処理部１１ａの詳細な構成を表わす図である。
【図１９】第２の実施形態の行処理部１１ａの変形例である、行処理部１１ｂの詳細な構成を表わす図である。
【図２０】第３の実施形態における、外部値対数比αｍｎの算出スキームを説明するための図である。
【図２１】図２０に示される外部値対数比の算出処理を実行する行処理部１１ｃの詳細な構成を表わす図である。
【図２２】第３の実施形態の変形例１における、外部値対数比αｍｎの算出スキームを説明するための図である。
【図２３】図２２に示される外部値対数比の算出処理を実行する行処理部１１ｄの詳細な構成を表わす図である。
【図２４】第３の実施形態の変形例２における、外部値対数比αｍｎの算出スキームを説明するための図である。
【図２５】図２４に示される外部値対数比の算出処理を実行する行処理部１１ｅの詳細な構成を表わす図である。
【図２６】第３の実施形態のその他の変形例における、外部値対数比αｍｎの算出スキームを説明するための図である。
【図２７】第３の実施形態のその他の変形例における、外部値対数比αｍｎの算出スキームを説明するための図である。
【図２８】第４の実施形態における、外部値対数比αｍｎの算出スキームを説明するための図である。
【図２９】図２８に示される外部値対数比の算出処理を実行する行処理部１１ｆの詳細な構成を表わす図である。
【図３０】第５の実施形態における、外部値対数比αｍｎの算出スキームを説明するための図である。
【図３１】図３０に示される外部値対数比の算出処理を実行する行処理部１１ｈの詳細な構成を表わす図である。
【図３２】図３０に示される外部値対数比の算出処理を実行する行処理部１１ｈの詳細な構成を表わす図である。
【図３３】第７の実施形態における、列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ａおよび列処理部１０ｂの詳細な構成を表わす図である。
【図３４】第１のセレクタ１２１の第１列目の構成を表わす図である。
【図３５】第８の実施形態における、列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ｂおよび列処理部１０ｃの詳細な構成を表わす図である。
【図３６】セレクト部１２４の第１列目の構成を表わす図である。
【図３７】第９の実施形態における、列重みが３のパリティ検査行列を用いる外部値対数比算出部の行処理部９ａおよび列処理部１０ｄの詳細な構成を表わす図である。
【図３８】セレクト部１２５の第１列目の構成を表わす図である。
【図３９】セレクト部２１０の第１列目の構成を表わす図である。
【図４０】第１０の実施形態の一次推定語生成部１８０ａの構成を表わす図である。
【図４１】第１１の実施形態の一次推定語生成部１８０ｂの構成を表わす図である。
【図４２】第１２の実施形態の一次推定語生成部１８０ｃおよび復号語決定部１９０ａの構成を表わす図である。
【図４３】第１３の実施形態の一次推定語生成部１８０ｃおよび復号語決定部１９０ｂの構成を表わす図である。
【図４４】第１４の実施形態の一次推定語生成部１８０ｂおよび復号語決定部１９０ｃの構成を表わす図である。
【符号の説明】
【０３５６】
１  符号化器、２  変調器、３  通信路、４  復調器、４ａ  復調回路、４ｂ  アナログ／デジタル変調回路、５  復号化器、６  対数尤度比算出部、７，７ａ，７ｂ  外部値対数比算出部、９，９ａ，１１，１１ａ，１１ｂ，１１ｃ，１１ｄ，１１ｅ，１１ｆ，１１ｇ  行処理部、１０，１０ａ，１０ｂ，１０ｃ，１０ｄ  列処理部、１５，４１，６５  第１の加算部（β＋λ）、１６，４２，６６  第２の加算部（β＋λ）、１７，６７  第３の加算部、１８，４３，５５，６９，９２，１０２，２０２  第１ブロック行処理部、１９，４４，５６，７０，７１，１０３，２０３  第２ブロック行処理部、２０，７２，８５，９１，１０４，２０４  第３ブロック行処理部、２１  第１の加算部（β）、２２  第２の加算部（β）、２３  第３の加算部（β）、２４，４５  第１ブロック（β）記憶部、２５，４６  第２ブロック（β）記憶部、２６  第３ブロック（β）記憶部、２７，４７，７３，９６  第１ブロック（β＋λ）記憶部、２８，４８，５７，７４，９７，１０５  第１行処理部、２９，４９，５８，７５，９８，１０６  第２行処理部、３０，５１，７６，７９  第２ブロック（β＋λ）記憶部、３１，５０，５９，７７，８０，１０７  第３行処理部、３２，５２，６１，７８，８１，１０８  第４行処理部、３３，８２，８６，９３  第３ブロック（β＋λ）記憶部、３４，５３，６２，８３，８７，９４，１０９  第５行処理部、３５，５４，６３，８４，８８，９５，１１０  第６行処理部、６０，６４  符号・最小値記憶部、６８  第４の加算部（β＋λ）、８９  第５の加算部（β＋λ）、９０  第６の加算部（β＋λ）、１０１，２０１  ブロック共通（β＋λ）記憶部、１１１  ブロック共通行処理部、１１２  上側行処理部、１１３  下側行処理部、１２１  第１のセレクタ、１２２  第２のセレクタ、１２３  第３のセレクタ、１２４，１２５，１９８，２１０  セレクト部、１３１  第１最大値位置記憶部、１３２，２１１  第１最大値記憶部、１３３，２１２  第２最大値記憶部、１３４，２１３  選択器、１４０，１４２，１４３，１４４  Ｑｎ算出部、１４１，１４５，１４６  Ｃｎ算出部、１８０，１８０ａ，１８０ｂ，１８０ｃ，１８０ｄ  一次推定語生成部、１９０，１９０ａ，１９０ｂ，１９０ｃ  復号語決定部、１９５，１９６  加算部（β＋λ）、１９９  復号語生成部、２１４  絶対値記憶部。
【図１】
2007325011.tif 000010
【図２】
2007325011.tif 000011
【図３】
2007325011.tif 000012
【図４】
2007325011.tif 000013
【図５】
2007325011.tif 000014
【図６】
2007325011.tif 000015
【図７】
2007325011.tif 000016
【図８】
2007325011.tif 000017
【図９】
2007325011.tif 000018
【図１０】
2007325011.tif 000019
【図１１】
2007325011.tif 000020
【図１２】
2007325011.tif 000021
【図１３】
2007325011.tif 000022
【図１４】
2007325011.tif 000023
【図１５】
2007325011.tif 000024
【図１６】
2007325011.tif 000025
【図１７】
2007325011.tif 000026
【図１８】
2007325011.tif 000027
【図１９】
2007325011.tif 000028
【図２０】
2007325011.tif 000029
【図２１】
2007325011.tif 000030
【図２２】
2007325011.tif 000031
【図２３】
2007325011.tif 000032
【図２４】
2007325011.tif 000033
【図２５】
2007325011.tif 000034
【図２６】
2007325011.tif 000035
【図２７】
2007325011.tif 000036
【図２８】
2007325011.tif 000037
【図２９】
2007325011.tif 000038
【図３０】
2007325011.tif 000039
【図３１】
2007325011.tif 000040
【図３２】
2007325011.tif 000041
【図３３】
2007325011.tif 000042
【図３４】
2007325011.tif 000043
【図３５】
2007325011.tif 000044
【図３６】
2007325011.tif 000045
【図３７】
2007325011.tif 000046
【図３８】
2007325011.tif 000047
【図３９】
2007325011.tif 000048
【図４０】
2007325011.tif 000049
【図４１】
2007325011.tif 000050
【図４２】
2007325011.tif 000051
【図４３】
2007325011.tif 000052
【図４４】
2007325011.tif 000053