(57)【要約】【課題】確率メッセージを格納するメモリが削減されたＬＤＰＣ復号装置を提供する。【解決手段】復号装置は、巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新するビットノード処理部と、前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力するチェックノード処理部とを含む。【選択図】図４
2012124888.tif 000002
【特許請求の範囲】
【請求項１】
巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新するビットノード処理部と、
前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力するチェックノード処理部と
を含むことを特徴とする復号装置。
【請求項２】
前記ビットノード処理部は、１列ブロック内の全ての列に対して並列にビットノード処理を実行し、前記チェックノード処理部は、全ての行に対して並列にチェックノード処理を実行することを特徴とする請求項１記載の復号装置。
【請求項３】
前記ビットノード処理部の出力は、メモリを介することなく前記チェックノード処理部の入力に直接に接続されることを特徴とする請求項１又は２記載の復号装置。
【請求項４】
前記チェックノード処理部は、
第１レジスタと、
第２レジスタと、
前記更新された１つの確率メッセージβの絶対値と前記第１レジスタの格納値とを比較する比較器と、
前記更新された１つの確率メッセージβの符号と前記第２レジスタの格納値との排他的論理和をとるＸＯＲ回路と
を含むことを特徴とする請求項１乃至３何れか一項記載の復号装置。
【請求項５】
前記ビットノード処理部は、１列ブロック内の全ての列に対して並列にビットノード処理を実行し、前記チェックノード処理部は、前記検査行列の複数Ｍ個の行に対する並列なチェックノード処理を実行し、前記並列なチェックノード処理を順次異なるＭ個の行に対して逐次的に実行することにより、前記検査行列の全ての行に対するチェックノード処理を実行することを特徴とする請求項１記載の復号装置。
【請求項６】
前記並列なチェックノード処理を逐次的に実行する際に実行待ちの前記並列なチェックノード処理に入力する確率メッセージβを格納しておく第１のバッファと、
逐次的に実行される前記並列なチェックノード処理から出力され前記ビットノード処理部に入力待ちの確率メッセージαを格納しておく第２のバッファと
を更に含むことを特徴とする請求項５記載の復号装置。
【請求項７】
巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新し、
前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力する
各段階を含むことを特徴とする復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に復号装置及び復号方法に関し、詳しくはＬＤＰＣ符号を復号する復号装置及び復号方法に関する。
【背景技術】
【０００２】
ＬＤＰＣ（Low Density Parity Check:低密度パリティ検査）符号を用いた送受信方式では、誤り訂正を行うために、０の数に比べて１の数が非常に少ない低密度な検査行列Ｈが用いられる。送信信号Ｔｘは、送信側においてＨ×Ｔｘ＝０となるようにして送信している。従って送信した信号が受信側で正しく受信された場合には、受信信号ＲｘはＨ×Ｒｘ＝０という条件を満たすことになる。このＨ×Ｒｘという計算をパリティ検査と呼ぶ。
【０００３】
受信側では、ＬＤＰＣ復号化を行なうＬＤＰＣ復号器を用いて、復号された符号語ＲｘがＨ×Ｒｘ＝０となるように誤り訂正を行う。これにより誤り訂正後の受信信号が得られる。ＬＤＰＣ復号処理では、受信信号の確率的な信頼度情報から算出した確率情報を更新していくことにより、パリティ検査結果がゼロになるような受信信号を求める。ＬＤＰＣ復号アルゴリズムとして、良好な訂正能力を持つNormalized Min-sumアルゴリズムが一般的に用いられる。
【０００４】
図１は、検査行列とNormalized Min-sumアルゴリズムで用いる確率メッセージとの関係を示す図である。図１に示す検査行列Ｈは、３×３の単位行列もしくはその巡回行列をブロック（部分行列）として持つ、２行ブロック×３列ブロックの巡回型検査行列である。Normalized Min-sumアルゴリズムでは、検査行列Ｈの各要素のうちで、値が１である全ての要素の一つ一つに対して、確率メッセージαと確率メッセージβとが定義される。図１に示す例では、確率メッセージα及びβの添字ｍｎは、ｍが検査行列の行を示し、ｎが検査行列の列ブロックを示す。即ち、例えばαｍｎは、ｍ番目の行におけるｎ列目のブロックの確率メッセージαを示す。
【０００５】
これらの確率メッセージを用いたチェックノード処理及びビットノード処理と呼ばれる２つの処理を繰り返すことで、受信信号の確率的な信頼度情報から算出した確率情報を更新していき、パリティ検査結果がゼロになるような受信信号を求める。具体的には、チェックノード処理は、確率メッセージβを用いて確率メッセージαを更新する。ビットノード処理は、受信信号から導出するＬＬＲ（Log-Likelihood Ratio対数尤度比）である事前確率λと確率メッセージαとを用いて、確率メッセージβを更新する。また同時にビットノード処理により、復号された符号語ｃが生成される。確率メッセージ更新後に、パリティ検査により、検査行列Ｈと復号された符号語ｃとの積（厳密にはＨとｃの転置行列との積）が０になるか否かを判定する。パリティ検査の結果が０となれば、検査が終了してｃを復号結果として出力する。パリティ検査の結果が０でなければ、再度、確率メッセージα及び確率メッセージβの更新とその後のパリティ検査とを実行する。
【０００６】
図２は、チェックノード処理及びビットノード処理を模式的に示す図である。チェックノード処理では一行内にある全てのβを用いて一行内にある全てのαを更新する。図２に示す６×９の検査行列の例では、第１行Ｒ１に対するチェックノード処理により、この第１行Ｒ１に含まれるβ１，１、β１，２、β１，３を用いてα１，１、α１，２、α１，３を更新する。以降同様にして、第２行乃至第６行に対するチェックノード処理を実行して、検査行列内の全てのαを更新する。全てのαを更新したら、次にビットノード処理を実行する。
【０００７】
ビットノード処理では一列内にある全てのαを用いてβを更新する。図２に示す６×９の検査行列の例では、第１列Ｃ１に対するビットノード処理により、ＬＬＲと第１列Ｃ１に含まれるα１，１、α５，１とを用いてβ１，１、β５，１を更新する。以降同様にして、第２列乃至第９列に対するビットノード処理を実行して、検査行列内の全てのβを更新する。全てのβを更新したら、復号結果をパリティ検査し、パリティ検査の結果が０でなければ、再びチェックノード処理を実行する。
【０００８】
上記のように、チェックノード処理及びビットノード処理を交互に実行すると、チェックノード処理又はビットノード処理により更新された確率メッセージα又はβを一時的に保存するためのメモリが必要となる。このメモリの容量は、「検査行列中の１の数」×「各メッセージのビット幅」分が必要になり、回路規模が大きくなってしまう。更には、メモリに対する書き込み及び読み出し処理によって、１反復処理に必要なサイクル数が大きくなってしまうという問題がある。
【０００９】
なお一般的には、処理速度向上のために、上記のように一行単位及び一列単位でチェックノード処理及びビットノード処理を実行するのではなく、行ブロック及び列ブロック単位でチェックノード処理及びビットノード処理を実行する。例えば、図１の検査行列の場合であれば、チェックノード処理は３行ずつまとめて並列に実行し、ビットノード処理は３列ずつまとめて並列に実行する。しかしながらこのように並列処理をした場合であっても、チェックノード処理及びビットノード処理を交互に実行するのでは、各処理により更新された確率メッセージを一時的に保存するためのメモリが必要となってしまう。また更に並列度を上げたとしても、チェックノード処理及びビットノード処理を交互に実行する限りは同様にメモリが必要となってしまう。
【００１０】
なお特許文献１では、更新前のチェックノードメッセージと更新後のチェックノードメッセージとの差分からビットノード処理を行うことで、チェックノード処理とビットノード処理とを同時に行う方法を提案している。この方法では、従来手法よりはメッセージＲＡＭの回路規模を削減可能であるが、更新前のチェックノードメッセージ用のＲＡＭとＳＵＭ値用のメッセージＲＡＭとが必要となってしまう。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−１５４２９８号公報
【特許文献２】特開２００７−８９０６４号公報
【特許文献３】特開２００７−１１０２６５号公報
【特許文献４】特開２００７−２００６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以上を鑑みると、確率メッセージを格納するメモリが削減されたＬＤＰＣ復号装置が望まれる。
【課題を解決するための手段】
【００１３】
復号装置は、巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新するビットノード処理部と、前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力するチェックノード処理部とを含むことを特徴とする。
【００１４】
復号方法は、巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新し、前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力する各段階を含むことを特徴とする。
【発明の効果】
【００１５】
本願開示の少なくとも１つの実施例によれば、各行のチェックノード処理の計算を、当該行中の１つの確率メッセージβが更新される毎に、この更新された１つの確率メッセージβに基づいて順次段階的に行なうことができる。従って、確率メッセージβを格納しておくメモリを削減又は削除できる。またチェックノード処理における確率メッセージαの計算は、確率メッセージβの最小値の選択を基本とするので、確率メッセージβの最小値を保持しておけば、それに基づいて確率メッセージαを順次計算できる。従って、確率メッセージαを格納しておくメモリを削減又は削除できる。
【図面の簡単な説明】
【００１６】
【図１】検査行列とNormalized Min-sumアルゴリズムで用いる確率メッセージとの関係を示す図である。
【図２】チェックノード処理及びビットノード処理を模式的に示す図である。
【図３】通信システムの構成の一例を示す図である。
【図４】ＬＤＰＣ復号部の構成の一例を示す図である。
【図５】巡回型検査行列の構成を示す図である。
【図６】ビットノード処理部及びチェックノード処理部の入出力関係を示す図である。
【図７】図６に示すビットノード処理部及びチェックノード処理部の動作を示す図である。
【図８】図４のＬＤＰＣ復号部の復号処理の流れを示すフローチャートである。
【図９】列ブロック毎にビットノード処理を繰り返す様子を模式的に示す図である。
【図１０】チェックノード処理部の１つのチェックノード処理回路の構成の一例を示す図である。
【図１１】ビットノード処理部の１つのビットノード処理回路の構成の一例を示す図である。
【図１２】ＬＤＰＣ符号を用いた実際の通信システムへの適用に即した検査行列の一例を示す図である。
【図１３】図１２の検査行列に対応するＬＤＰＣ復号部の構成の一例を示す図である。
【図１４】図１３に示すＬＤＰＣ復号部の動作の一例を示す図である。
【図１５】チェックノード処理部の１つのチェックノード処理回路の構成の別の一例を示す図である。
【図１６】図１６は、ＬＤＰＣ復号部の構成の変形例を示す図である。
【図１７】ビットノード処理部及びチェックノード処理部の入出力関係を示す図である。
【図１８】図１７に示すビットノード処理部及びチェックノード処理部の動作を示す図である。
【発明を実施するための形態】
【００１７】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１８】
図３は、通信システムの構成の一例を示す図である。図３に示す通信システムは、送信装置１０及び受信装置２０を含む。送信装置１０は、送信データを符号化及び変調して送信信号を生成し、送信信号を出力する。送信信号は、有線又は無線の通信路１５を介して受信装置２０により受信される。受信装置２０は、受信データを復調及び復号化して復号データを生成する。
【００１９】
送信装置１０は、ＬＤＰＣ符号化部１１及び変調部１２を含む。ＬＤＰＣ符号化部１１は、送信データに対してＬＤＰＣ符号化を行なうことにより、情報ビットと冗長ビットとを含む符号化データを生成する。この符号化データにおける符号語をＴｘとし、ＬＤＰＣ検査行列をＨとしたときに、符号語ＴｘはＨ×Ｔｘ＝０となるように生成される。変調部１２は、マッピング処理、変調処理、及びＤ／Ａ変換処理を実行する。マッピング処理では、ＬＤＰＣ符号化部１１から供給される符号化データを６４ＱＡＭ（Quadrature Amplitude Modulation）等のシンボル点（信号点）に割り当てることにより、キャリア変調を行なう。変調処理では、マッピング処理によりキャリア変調されたデータに対してＯＦＤＭ（Orthogonal Frequency Division Multiplexing）変調等を施すことにより、変調信号を生成する。Ｄ／Ａ変換処理では、変調信号をデジタルからアナログに変換して、送信信号を生成する。
【００２０】
受信装置２０は、復調部２１及びＬＤＰＣ復号部２２を含む。復調部２１は、Ａ／Ｄ変換処理、復調処理、及びデマッピング処理を実行する。Ａ／Ｄ変換部では、通信路１５を介して送信装置１０から受信した受信信号をアナログからデジタルに変換して、デジタル受信信号を生成する。復調処理では、送信側で用いた変調に対応する復調処理をデジタル受信信号に適用し、復調された受信信号を生成する。デマッピング処理では、送信側で用いた変調方式におけるシンボル点のうち受信信号点に近いシンボル点を検出し、受信信号の値が０又は１である確からしさを軟判定し、軟判定結果であるＬＬＲを計算して出力する。ＬＤＰＣ復号部２２は、計算されたＬＬＲに基づいてＬＤＰＣ復号処理を行なう。この際、復号された符号語ＲｘがＨ×Ｒｘ＝０となるように誤り訂正を行う。これにより誤り訂正後の受信信号が得られる。
【００２１】
図４は、ＬＤＰＣ復号部２２の構成の一例を示す図である。ＬＤＰＣ復号部２２は、制御部３１、ＬＬＲ用ＲＡＭ３２、ビットノード処理部３３、チェックノード処理部３４、及びパリティ検査部３５を含む。ＬＬＲ用ＲＡＭ３２は、計算されたＬＬＲを格納しておくメモリである。チェックノード処理部３４は、確率メッセージβを用いて確率メッセージαを更新する。ビットノード処理部３３は、ＬＬＲ用ＲＡＭ３２に格納されるＬＬＲである事前確率λと確率メッセージαとを用いて、確率メッセージβを更新するとともに、復号された復号データｃを生成する。パリティ検査部３５は、確率メッセージ更新後に、パリティ検査により、検査行列Ｈと復号された復号データｃとの積（厳密にはＨとｃの転置行列との積）が０になるか否かを判定する。制御部３１は、ＬＤＰＣ復号部２２の全体の動作を制御する。パリティ検査の結果が０となれば、制御部３１は、ｃを復号結果として出力させる。パリティ検査の結果が０でなければ、制御部３１は、確率メッセージα及び確率メッセージβの更新とその後のパリティ検査とを再度実行するように、ビットノード処理部３３、チェックノード処理部３４、及びパリティ検査部３５を制御する。
【００２２】
チェックノード処理においては、具体的には、
【００２３】
【数１】
2012124888.tif 000003
の計算式により、確率メッセージαを更新する。ここでＡ（ｍ）は、検査行列の行ｍにおいて要素値が“１”である列の集合である。Ａ（ｍ）＼ｎは、Ａ（ｍ）から列ｎを除いた集合を表わす。即ち、αｍｎを計算するときにはβｍｎを使わず、残りの集合Ａ（ｍ）＼ｎのβを用いることになる。上記のチェックノード計算式は、符号計算部分（関数ｓｇｎの部分）と絶対値計算部分（関数ｍｉｎの部分）とからなる。
【００２４】
ビットノード処理においては、具体的には、
【００２５】
【数２】
2012124888.tif 000004
により、βが更新される。ここでＢ（ｎ）は検査行列の列ｎにおいて要素値が“１”である行の集合である。Ｂ（ｎ）＼ｍはＢ（ｎ）から行ｍを除いた集合を表わす。また事後確率計算処理は、
【００２６】
【数３】
2012124888.tif 000005
となる。これは事前確率λｎ（受信信号から計算したＬＬＲ）に対して、αを加算することにより、事前確率よりも信頼度を高めた事後確率Ｌｎを求めることを意味している。事後確率Ｌｎは、一連の観測受信信号を受信したという条件及びパリティ検査の拘束条件の下で、送信信号が０又は１である確率を示す値である。この事後確率Ｌｎが０以上か或いは０より小さいかを判定することにより、復号データｃのｎ番目のビットの値ｃｎが求められる。具体的には、Ｌｎが０以上であればｃｎ＝０となり、Ｌｎが０より小さければｃｎ＝１となる。
【００２７】
図５は、巡回型検査行列の構成を示す図である。検査行列Ｈは、ｎ×ｎの単位行列もしくはその巡回行列をブロック（部分行列）として持つ、Ｊ行ブロック×Ｋ列ブロックの巡回型検査行列である。図４に示すＬＤＰＣ復号部２２は、図５に示すような巡回型検査行列を用いた巡回型ＬＤＰＣ符号を復号処理するものとする。この場合、図４に示されるように、ビットノード処理部３３は、同一の構造を有するｎ個のビットノード処理回路を含む。またチェックノード処理部３４は、同一の構造を有するｎ×Ｊ個（即ち検査行列Ｈの行数に等しい数）のチェックノード処理回路を含む。
【００２８】
具体的には、ビットノード処理部３３は、前述の式（２）に示すようなビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき当該１列ブロック内の全ての確率メッセージβを更新する。１列ブロックは、図５に示すように検査行列のｎ列を含む。ビットノード処理部３３は、図４に示すように、ｎ並列構成となっており、１列ブロック内の全ての列に対して並列にビットノード処理を実行してよい。
【００２９】
図６は、ビットノード処理部３３及びチェックノード処理部３４の入出力関係を示す図である。図６において、図４と同一の構成要素は同一の番号で参照し、その説明は省略する。図６には、ｎが３で、Ｊが２、Ｋが３である図１に示す巡回型検査行列を用いた場合を例として示してある。この場合、ビットノード処理部３３は、まず第１の列ブロックＣＢ１内の確率メッセージα１，１、α２，１、α３，１、α４，１、α５，１、α６，１に基づき全ての確率メッセージβ１，１、β２，１、β３，１、β４，１、β５，１、β６，１を更新する。図６（ａ）に、このときのビットノード処理部３３及びチェックノード処理部３４の入出力が示される。図６（ａ）に示されるように、チェックノード処理部３４に含まれる第１乃至第６のチェックノード処理回路３４−１乃至３４−６からそれぞれα１，１、α２，１、α３，１、α４，１、α５，１、α６，１が並列に出力される。このうち、図１に示す検査行列Ｈの第１列のα１，１、α５，１はビットノード処理部３３の第１のビットノード処理回路３３−１に供給される。第２列のα２，１、α６，１はビットノード処理部３３の第２のビットノード処理回路３３−２に供給される。第３列のα３，１、α４，１はビットノード処理部３３の第３のビットノード処理回路３３−３に供給される。これにより、図６（ｂ）に示されるように、ビットノード処理部３３の第１乃至第３のビットノード処理回路３３−１乃至３３−３からは、β１，１及びβ５，１、β２，１及びβ６，１、β３，１及びβ４，１が出力される。これらの確率メッセージβは、チェックノード処理部３４の対応するチェックノード処理回路に供給される。ここで、ビットノード処理部３３の出力は、メモリを介することなくチェックノード処理部３４の入力に直接に接続される。
【００３０】
以降同様にして、第２の列ブロックＣＢ２内の確率メッセージα１，２、α２，２、α３，２、α４，２、α５，２、α６，２に基づき、ＣＢ２内の全ての確率メッセージβ１，２、β２，２、β３，２、β４，２、β５，２、β６，２を更新する。最後に、第３の列ブロックＣＢ３内の確率メッセージα１，３、α２，３、α３，３、α４，３、α５，３、α６，３に基づき、ＣＢ３内の全ての確率メッセージβ１，３、β２，３、β３，３、β４，３、β５，３、β６，３を更新する。
【００３１】
図７は、図６に示すビットノード処理部３３及びチェックノード処理部３４の動作を示す図である。図７において、（ａ）乃至（ｃ）はそれぞれ、第１乃至第３のビットノード処理回路３３−１乃至３３−３の入力及び内部動作を示す。（ｄ）乃至（ｉ）はそれぞれ、第１乃至第６のチェックノード処理回路３４−１乃至３４−６の入力及び内部動作を示す。例えば動作サイクルＴ１においては、第１乃至第３のビットノード処理回路に対応する確率メッセージαが入力される。この状態が図６（ａ）に示す状態である。また例えば動作サイクルＴ２においては、第１乃至第６のチェックノード処理回路に対応する確率メッセージβが入力される。この状態が図６（ｂ）に示す状態である。ビットノード処理回路には３個の列ブロックに対応して３回に分けて確率メッセージαが入力される。１動作サイクル遅れて、ビットノード処理回路の内部では図７においてＢｎｏｄｅとして示されるように、ビットノード処理の計算が実行される。更に１動作サイクル遅れて、ビットノード処理回路から更新後の確率メッセージβが出力される。
【００３２】
チェックノード処理部３４は、上記式（１）に示すような検査行列の各行のチェックノード処理の計算を、当該行中の１つの確率メッセージβが更新される毎に、この更新された１つの確率メッセージβに基づいて順次段階的に行なう。上記式（１）から分かるように、チェックノード計算式は、符号計算部分（関数ｓｇｎの部分）と絶対値計算部分（関数ｍｉｎの部分）とからなっている。符号計算部分の内容は、αｍｎを計算するときには、βｍｎを除いた１行中の全ての確率メッセージβの符号の総乗値（全てを積算した値）である。この総乗値は、βｍｎも含む１行中の全ての確率メッセージβの符号の総乗値とβｍｎの符号との積算値とに等しい。１行中の全ての確率メッセージβの符号の総乗値は、順次更新される確率メッセージβを前回の積算結果に対して１つずつ積算していけば段階的な計算により実現できる。また絶対値計算部分の内容は、αｍｎを計算するときには、βｍｎを除いた１行中の全ての確率メッセージβの最小値である。この値は、βｍｎも含む１行中の全ての確率メッセージβの第１最小値（最も小さい値）又は第２最小値（２番目に小さい値）の何れかであり、βｍｎが第１最小値である場合には第２最小値であり、βｍｎが第１最小値でない場合には第１最小値である。１行中の全ての確率メッセージβの最小値及び第２最小値は、順次更新される確率メッセージβを前回迄に求めた最小値及び第２最小値と比較することで、段階的な比較計算により求めることができる。このようにして、上記式（１）に示すような各行のチェックノード処理の計算を、当該行中の１つの確率メッセージβが更新される毎に、この更新された１つの確率メッセージβに基づいて順次段階的に行なうことができる。従って、確率メッセージβを格納しておくメモリが必要ない。またチェックノード処理における確率メッセージαの計算は、確率メッセージβの最小値の選択を基本とするので、確率メッセージβの最小値を保持しておけば、それに基づいて確率メッセージαを順次計算できる。従って、確率メッセージαを格納しておくメモリが必要ない。
【００３３】
チェックノード処理部３４は、図４に示すように、ｎ×Ｊ並列構成となっており、検査行列の全ての行に対して並列にチェックノード処理を実行してよい。図７に示す例では、動作サイクルＴ２において、第１乃至第６のチェックノード処理回路は、第１の列ブロックＣＢ１に対して更新された確率メッセージβ１，１、β２，１、β３，１、β４，１、β５，１、β６，１を受け取る。これに１動作サイクル遅れて、チェックノード処理回路の内部では図７においてＣｎｏｄｅとして示されるように、チェックノード処理の計算が実行される。このチェックノード処理の計算は、動作サイクルＴ２及びそれ以降の動作サイクルにて順次供給される第１列ブロック乃至第３列ブロックの更新された確率メッセージβに基づいて、順次段階的に実行される。
【００３４】
上記のチェックノード処理において、確率メッセージβが全ての列ブロックについて更新され供給されると、確率メッセージαの更新処理は実質的に完了する。チェックノード処理部３４の各行に対応するチェックノード処理回路３４−１乃至３４−６は、対応する行中の全ての確率メッセージβが更新された後、当該行中の更新後の確率メッセージαを順次出力する。例えばチェックノード処理回路３４−１であれば、更新後の確率メッセージα１，１、α１，２、α１，３を順次出力する。
【００３５】
図８は、図４のＬＤＰＣ復号部２２の復号処理の流れを示すフローチャートである。この復号処理の流れは、図４の制御部３１により制御されてよい。
【００３６】
ステップＳ１で、列ブロックを示す変数Ｎを初期値１に設定する。ステップＳ２で、Ｎ番目の列ブロックの全ての確率メッセージαをチェックノード処理部３４から出力させる。ステップＳ３で、ビットノード処理部３３により、Ｎ番目の列ブロックのビットノード処理を実行し、Ｎ番目の列ブロックの全ての確率メッセージβを更新する。このとき、チェックノード処理部３４により、更新された確率メッセージβに基づいてチェックノード処理の一部分が実行される。ステップＳ４で、変数Ｎが全列ブロック数Ｋに等しいか否かを判定する。等しくない場合には、ステップＳ５でＮを１増加させ、ステップＳ２以降の処理を繰り返す。
【００３７】
図９は、列ブロック毎にビットノード処理を繰り返す様子を模式的に示す図である。まず第１の列ブロックＣＢ１についてビットノード処理が実行される。その後矢印で示されるように、第２の列ブロックＣＢ２から第Ｋの列ブロックＣＢＫまで、列ブロック毎にビットノード処理が繰り返されていく。
【００３８】
図８に戻り、ステップＳ４で変数Ｎが全列ブロック数Ｋに等しいと判定されると、ステップＳ６に進む。ステップＳ６で、チェックノード処理において全ての確率メッセージαの更新が完了する。ステップＳ７で、検査行列と復号データとの積が０である復号完了条件が満たされるか否かを判定する。復号完了条件が満たされない場合には、処理はステップＳ１に戻り、以降の処理を繰り返す。復号完了条件が満たされると、復号対象のデータに対するＬＤＰＣ復号処理が完了する。
【００３９】
図１０は、チェックノード処理部３４の１つのチェックノード処理回路の構成の一例を示す図である。チェックノード処理部３４には、図１０に示すチェックノード処理回路が、ｎ×Ｊ個並列に設けられている。図１０に示すチェックノード処理回路は、絶対値計算部４１、ＸＯＲ部４２、比較判定部４３、フリップフロップ４４乃至５１、及び出力制御部５２を含む。絶対値計算部４１は、更新された1つの確率メッセージβが供給されると、受け取った確率メッセージβの絶対値を計算して出力する。なおこの更新された1つの確率メッセージβの最上位ビット（符号ビット）は、ＸＯＲ部４２及びフリップフロップ４４に供給される。
【００４０】
比較判定部４３は、更新された１つの確率メッセージβの絶対値とフリップフロップ４６及び４７（第１レジスタ）の格納値とを比較する。フリップフロップ４６は第１最小値を格納しており、フリップフロップ４７は第２最小値を格納している。比較判定部４３は、比較した３つの値のうち、最小のものをフリップフロップ４６に格納し、２番目に小さいものをフリップフロップ４７に格納する。このようにして、更新された1つの確率メッセージβが供給される度に、第１最小値又は第２最小値を適宜更新する。対象行の更新された全ての確率メッセージβが供給された後には、この対象行の確率メッセージβのうちの第１最小値がフリップフロップ４６に格納され、第２最小値がフリップフロップ４７に格納されることになる。
【００４１】
前述のようにチェックノード計算式の絶対値計算部分の内容は、αｍｎを計算するときには、βｍｎを除いた１行中の全ての確率メッセージβの最小値である。この値は、βｍｎも含む１行中の全ての確率メッセージβの第１最小値又は第２最小値の何れかであり、βｍｎが第１最小値である場合には第２最小値であり、βｍｎが第１最小値でない場合には第１最小値である。従って、対象行中で何番目のβが第１最小値であるかを示す情報を記録しておき、出力制御部５２により、フリップフロップ４６及び４７から供給される第１最小値又は第２最小値を前記情報に基づいて適宜選択すれば、絶対値計算部分の演算を行なうことができる。
【００４２】
ＸＯＲ部４２は、更新された１つの確率メッセージβの符号とフリップフロップ４５（第２レジスタ）の格納値との排他的論理和をとる。ここで言う排他的論理和とは、符号ビットの積算演算であり、０を正とし１を負として、正と正との積又は負と負との積なら出力は正となり、正と負との積又は負と正との積なら出力は負となる。対象行の更新された全ての確率メッセージβが供給された後には、この対象行の全ての確率メッセージβの符号の総乗値がフリップフロップ４５に格納されることになる。フリップフロップ４５の格納値は、フリップフロップ４９を介して出力制御部５２に供給される。
【００４３】
フリップフロップ４４は複数のフリップフロップを含み、対象行の更新された全ての確率メッセージβの符号がそれぞれのフリップフロップに個別に格納される。符号は１ビットであるので、必要なフリップフロップ４４の数はそれ程大きくはない。フリップフロップ４４の格納値は、フリップフロップ４８を介して出力制御部５２に供給される。
【００４４】
前述のようにチェックノード計算式の符号計算部分の内容は、αｍｎを計算するときには、βｍｎを除いた１行中の全ての確率メッセージβの符号の総乗値（全てを積算した値）である。この総乗値は、βｍｎも含む１行中の全ての確率メッセージβの符号の総乗値とβｍｎの符号との積算値とに等しい。従って、出力制御部５２により、フリップフロップ４５から供給される全てのβの符号の総乗値とフリップフロップ４４から供給される着目βｍｎの符号の積算値とを求めることにより、符号計算部分の演算を行なうことができる。
【００４５】
このようにして、出力制御部５２は、対象行中の更新された全ての確率メッセージβが供給された後、例えば図７に示すように、更新されたαを順次出力してビットノード処理に供することができる。この更新されたαを出力する際、ｎ×Ｊ個並列に設けられた図１０に示すチェックノード処理回路が、検査行列の１つの列ブロック中のｎ×Ｊ行全てについてαを出力する。これにより、ｎ×Ｊ個並列のビットノード処理を実現することが可能となる。
【００４６】
図１１は、ビットノード処理部３３の１つのビットノード処理回路の構成の一例を示す図である。ビットノード処理部３３には、図１１に示すビットノード処理回路が、ｎ個並列に設けられている。図１１に示すビットノード処理回路は、ビットノード演算部６１及び硬判定部６２を含む。なお図１１には、一列中のα及びβがそれぞれ３個ずつである場合が例として示されるが、この例に限定されることなく、一列中のα及びβの数は幾つであってもよい。
【００４７】
ビットノード演算部６１は、受信信号から計算されたＬＬＲと一列中の全てのαとに基づいて、前述の式（２）を計算して一列中の全てのβを更新するとともに、前述の式（３）を計算して復号データを生成する。図１１では、この復号データがＳＵＭとして示されている。硬判定部６２は、軟判定値を有する復号データＳＵＭに基づいて、硬判定データを生成する。具体的には、ＳＵＭが０以上であれば硬判定値は０となり、ＳＵＭが０より小さければ硬判定値は１となる。
【００４８】
図１２は、ＬＤＰＣ符号を用いた実際の通信システムへの適用に即した検査行列の一例を示す図である。図１２に示す検査行列Ｈは、８３×８３の単位行列もしくはその巡回行列をブロック（部分行列）として持つ、３行ブロック×５８列ブロックの巡回型検査行列である。
【００４９】
図１３は、図１２の検査行列に対応するＬＤＰＣ復号部の構成の一例を示す図である。図１３において、図４と同一の構成要素は同一の番号で参照し、その説明は省略する。なお図１３において、図４に示す制御部３１及びパリティ検査部３５は図示を省略されている。
【００５０】
図１３に示すＬＤＰＣ復号部２２は、図１２に示すような巡回型検査行列を用いた巡回型ＬＤＰＣ符号を復号処理するものである。この場合、図１３に示されるように、ビットノード処理部３３は、同一の構造を有する８３個のビットノード処理回路を含む。またチェックノード処理部３４は、同一の構造を有する２４９個（＝８３×３）のチェックノード処理回路を含む。
【００５１】
図１４は、図１３に示すＬＤＰＣ復号部の動作の一例を示す図である。図１４において、（ａ）は、チェックノード処理部３４からのα出力（ビットノード処理部３３へのα入力）を示す。（ｂ）は、α入力に基づくビットノード処理部３３からのβ出力（チェックノード処理部３４へのβ入力）を示す。（ｃ）は、チェックノード処理部３４におけるチェックノード処理の段階的な実行を示す。（ａ）に示すように、５８列ブロック分のα１乃至α５８が順次チェックノード処理部３４から出力される。これらのα１乃至α５８を入力として、ビットノード処理部３３が順次βを更新し、（ｂ）に示すようにβ１乃至β５８を順次出力する。（ｃ）に示すチェックノード処理の段階的な処理Ｃ１乃至Ｃ５８は、順次供給されるβ１乃至β５８のうちの最新のβと１つ前のβ迄の最小値とを比較することで、最小値を更新していく。これにより、チェックノード処理Ｃ５８により最後のβ５８と１つ前のβ迄の最小値とを比較し終わった時点で、第１及び第２最小値が確定する。これで１回のイタレーションが終了する。硬判定された復号データが検査行列によるパリティ検査の復号完了条件を満たさない場合、（ａ）に示すように、再度、５８列ブロック分のα１乃至α５８が順次チェックノード処理部３４から出力され、ビットノード処理及びチェックノード処理が実行される。
【００５２】
図１５は、チェックノード処理部の１つのチェックノード処理回路の構成の別の一例を示す図である。図１５において、図１０と同一の構成要素は同一の番号で参照し、その説明は省略する。図１５に示すチェックノード処理回路においては、図１０のチェックノード処理回路の比較判定部４３及び出力制御部５２が、それぞれ比較判定部４３Ａ及び出力制御部５２Ａにより置き換えられている。また第２最小値用のフリップフロップ４７及び５１が削除されている。図１５に示すチェックノード処理回路においては、チェックノード処理の符号計算部分については図１０に示すチェックノード処理回路と同様の構成であるが、絶対値計算部分の構成が簡略化されている。
【００５３】
Normalized Min-sumアルゴリズムのチェックノード処理の絶対値計算部分は、前述のように、αｍｎを計算するときには、βｍｎを除いた１行中の全ての確率メッセージβの最小値を求める。この際、βｍｎが最小値である場合に対応するために、図１０に示すチェックノード処理回路では第２最小値を求めている。しかし第１最小値と第２最小値とはそれ程値が異ならないとの認識に基づいて、βｍｎが最小値であり本来は第２最小値を選択しなければならない場合であっても、その近似値として第１最小値を選択して用いることが考えられる。このように第１最小値のみを用いる場合には、図１５に示すように、第１最小値用の比較判定部及びフリップフロップが必要になるのみであり、図１０に示す構成と比較して回路規模を削減することができる。
【００５４】
図１５に示す構成では、比較判定部４３Ａが、更新された１つの確率メッセージβの絶対値とフリップフロップ４６の格納値とを比較する。フリップフロップ４６は第１最小値を格納している。比較判定部４３Ａは、比較した２つの値のうち小さい方をフリップフロップ４６に格納する。このようにして、更新された1つの確率メッセージβが供給される度に、第１最小値を適宜更新する。対象行の更新された全ての確率メッセージβが供給された後には、この対象行の確率メッセージβのうちの第１最小値がフリップフロップ４６に格納されることになる。出力制御部５２Ａは、フリップフロップ４６からフリップフロップ５０を介して供給される第１最小値を、チェックノード処理の絶対値計算部分の演算値として用いればよい。
【００５５】
以下に、ＬＤＰＣ復号部の構成の変形例について説明する。図４に示すＬＤＰＣ復号部２２では、ビットノード処理部３３はｎ個のビットノード処理回路を含み、チェックノード処理部３４はｎ×Ｊ個（即ち検査行列Ｈの行数に等しい数）のチェックノード処理回路を含む。この構成では、例えば図１３に示すＬＤＰＣ復号部２２の例の場合、同一の構造を有する２４９個（＝８３×３）のチェックノード処理回路が設けられることになり、チェックノード処理部３４の回路規模が大きくなってしまう。応用分野によっては、確率メッセージを格納するメモリが多少必要になっても、処理回路の回路規模を小さくすることが好ましいような場合もあり得る。例えば、ＦＰＧＡ（Field Programmable Gate Array）を用いてＬＤＰＣ復号部やその他の受信装置の回路ユニットを実現する場合、論理処理を実現するために使用可能なゲート数が制限される可能性がある。従って、チェックノード処理部３４の回路規模を削減した変形例が望まれる。
【００５６】
図１６は、ＬＤＰＣ復号部の構成の変形例を示す図である。図１６において、図４と同一の構成要素は同一の番号で参照し、その説明は省略する。図１６に示すＬＤＰＣ復号部２２Ａは、制御部３１、ＬＬＲ用ＲＡＭ３２、ビットノード処理部３３、チェックノード処理部３４、パリティ検査部３５、バッファ７１及び７２、及びセレクタ（ＳＥＬ）７３及び７４を含む。図１６に示すＬＤＰＣ復号部２２Ａは、図４に示すＬＤＰＣ復号部２２に対してバッファ７１及び７２並びにセレクタ７３及び７４が追加されると共に、チェックノード処理部３４の並列処理数がｎ×Ｊ個からｎ×Ｊ／ｐ個に減っている。ここでｐは、ｎ×Ｊの約数である２以上の整数である。
【００５７】
図１６に示すＬＤＰＣ復号部２２Ａは、図５に示すような巡回型検査行列を用いた巡回型ＬＤＰＣ符号を復号処理するものとする。この場合、図１６に示されるように、ビットノード処理部３３は、同一の構造を有するｎ個のビットノード処理回路を含む。またチェックノード処理部３４は、同一の構造を有するｎ×Ｊ／ｐ個（即ち検査行列Ｈの行数の１／ｐに等しい数）のチェックノード処理回路を含む。以下に説明するように、チェックノード処理部３４は、巡回検査行列の複数Ｍ（＝ｎ×Ｊ／ｐ）個の行に対する並列なチェックノード処理を実行する。更にチェックノード処理部３４は、この並列なチェックノード処理を順次異なるＭ個の行に対して逐次的に実行することにより、巡回検査行列の全ての行（ｎ×Ｊ行）に対するチェックノード処理を実行する。
【００５８】
図１７は、ビットノード処理部３３及びチェックノード処理部３４の入出力関係を示す図である。図１７において、図１６と同一の構成要素は同一の番号で参照し、その説明は省略する。図１７には、ｎが３で、Ｊが２、Ｋが３である図１に示す巡回型検査行列を用いた場合を例として示してある。また、チェックノード処理部３４は、同一の構造を有するｎ×Ｊ／２個のチェックノード処理回路３４−１乃至３４−３を含む。
【００５９】
ビットノード処理部３３は、まず第１の列ブロックＣＢ１内の確率メッセージα１，１、α２，１、α３，１、α４，１、α５，１、α６，１に基づき全ての確率メッセージβ１，１、β２，１、β３，１、β４，１、β５，１、β６，１を更新する。図１７（ａ）に、このときのビットノード処理部３３及びチェックノード処理部３４の入出力が示される。図１７（ａ）に示されるように、チェックノード処理部３４に含まれる第１乃至第３のチェックノード処理回路３４−１乃至３４−３のそれぞれからα１，１、α２，１、α３，１が並列に出力され、その後更にα５，１、α６，１、α４，１が並列に出力される。α１，１、α２，１、α３，１は、チェックノード処理部３４から出力されると、セレクタ７４を介してバッファ７２に一時的に蓄えられ、その後、α５，１、α６，１、α４，１と同一のタイミングでビットノード処理部３３に供給される。α５，１、α６，１、α４，１は、チェックノード処理部３４から出力されると、セレクタ７４を介してバッファ７２を介することなく、直ちにビットノード処理部３３に供給される。具体的には、図１に示す検査行列Ｈの第１列のα１，１、α５，１は、ビットノード処理部３３の第１のビットノード処理回路３３−１に供給される。第２列のα２，１、α６，１はビットノード処理部３３の第２のビットノード処理回路３３−２に供給される。第３列のα３，１、α４，１はビットノード処理部３３の第３のビットノード処理回路３３−３に供給される。
【００６０】
これにより、図１７（ｂ）に示されるように、ビットノード処理部３３の第１乃至第３のビットノード処理回路３３−１乃至３３−３からは、β１，１及びβ５，１、β２，１及びβ６，１、β３，１及びβ４，１が出力される。これらの確率メッセージβは、チェックノード処理部３４の対応するチェックノード処理回路に供給される。ここで、ビットノード処理部３３の出力のうち、β１，１、β２，１、及びβ３，１のそれぞれは、バッファ７１を介することなくセレクタ７３を介して、直ちに第１乃至第３のチェックノード処理回路３４−１乃至３４−３に入力される。またビットノード処理部３３の出力のうち、β５，１、β６，１、及びβ４，１のそれぞれは、バッファ７１に一端蓄えられ、その後適切なタイミングでセレクタ７３を介して、第１乃至第３のチェックノード処理回路３４−１乃至３４−３に入力される。
【００６１】
以降同様にして、第２の列ブロックＣＢ２内の確率メッセージα１，２、α２，２、α３，２、α４，２、α５，２、α６，２に基づき、ＣＢ２内の全ての確率メッセージβ１，２、β２，２、β３，２、β４，２、β５，２、β６，２を更新する。最後に、第３の列ブロックＣＢ３内の確率メッセージα１，３、α２，３、α３，３、α４，３、α５，３、α６，３に基づき、ＣＢ３内の全ての確率メッセージβ１，３、β２，３、β３，３、β４，３、β５，３、β６，３を更新する。
【００６２】
図１８は、図１７に示すビットノード処理部３３及びチェックノード処理部３４の動作を示す図である。図１８において、（ａ）乃至（ｃ）はそれぞれ、第１乃至第３のビットノード処理回路３３−１乃至３３−３の入力及び内部動作を示す。（ｅ）乃至（ｇ）はそれぞれ、第１乃至第３のチェックノード処理回路３４−１乃至３４−３の入力及び内部動作を示す。更に（ｄ）は、ビットノードバッファであるバッファ７１のバッファ動作を示し、（ｈ）は、チェックノードバッファであるバッファ７２のバッファ動作を示す。
【００６３】
例えば動作サイクルＴ１においては、第１乃至第３のビットノード処理回路に対応する確率メッセージαが入力される。この状態が図１７（ａ）に示す状態である。また例えば動作サイクルＴ２においては、第１乃至第３のチェックノード処理回路に対応する確率メッセージβ（β１，１、β２，１、及びβ３，１）が入力される。また例えば動作サイクルＴ３においては、第１乃至第３のチェックノード処理回路に対応する確率メッセージβ（β５，１、β６，１、及びβ４，１）が入力される。なおβ５，１、β６，１、及びβ４，１は、（ｄ）に示すビットノードバッファに３サイクルの間格納されてから、第１乃至第３のチェックノード処理回路に供給される。この状態が図１７（ｂ）に示す状態である。ビットノード処理回路には３個の列ブロックに対応して３回に分けて確率メッセージαが入力される。１動作サイクル遅れて、ビットノード処理回路の内部では図１８においてＢｎｏｄｅとして示されるように、ビットノード処理の計算が実行される。このビットノード処理により、ビットノード処理回路から更新後の確率メッセージβ（β１，１、β５，１、β２，１、β６，１、β３，１、β４，１）が同時に出力される。ここで、βの一部（β５，１、β６，１、及びβ４，１）は、（ｄ）に示すビットノードバッファによりバッファされた後、チェックノード処理部に出力される。
【００６４】
チェックノード処理部３４は、上記式（１）に示すような検査行列の各行のチェックノード処理の計算を、当該行中の１つの確率メッセージβが更新される毎に、この更新された１つの確率メッセージβに基づいて順次段階的に行なう。段階的な計算の仕方は前述の通りである。従って、図１８に示す例の場合、巡回型検査行列の第１乃至第３行については、チェックノード処理のために確率メッセージβを格納しておくメモリが必要ない。但し、巡回型検査行列の第４乃至第６行については、第１乃至第３行のチェックノード処理の間確率メッセージを格納しておくために、ビットノードバッファ（図１６に示すバッファ７１）が用いられる。このビットノードバッファのバッファ機能により、３つの第１乃至第３のチェックノード処理回路３４−１乃至３４−３を用いて、第１乃至第３行のチェックノード処理と第４乃至第６行のチェックノード処理とを時分割で実行することが可能となる。即ち、巡回型検査行列の複数３個の行に対する並列なチェックノード処理を実行し、この並列なチェックノード処理を順次異なる３個の行に対して逐次的に実行することにより、巡回検査行列の全ての行（６行）に対するチェックノード処理を実行することができる。このとき上記ビットノードバッファは、並列なチェックノード処理を逐次的に実行する際に、実行待ちの並列なチェックノード処理に入力する確率メッセージβを格納しておくように機能する。
【００６５】
またチェックノード処理における確率メッセージαの計算は、確率メッセージβの最小値の選択を基本とするので、確率メッセージβの最小値を保持しておけば、それに基づいて確率メッセージαを順次計算できる。但し、図１８に示す例の場合、巡回型検査行列の第１乃至第３行のチェックノード処理の終了後に、第４乃至第６行のチェックノード処理が実行されている。従って、第１乃至第３行のチェックノード処理により計算される確率メッセージαを格納しておくために、チェックノードバッファ（図１６に示すバッファ７４）が用いられる。即ち、チェックノードバッファは、逐次的に実行される並列なチェックノード処理から出力されビットノード処理部に入力待ちの確率メッセージαを格納しておくよう機能する。なお巡回型検査行列の第４乃至第６行については、確率メッセージαを格納しておくメモリは必要ない。
【００６６】
チェックノード処理部３４は、図１６に示すように、ｎ×Ｊ／ｐ並列構成となっており、検査行列のｐの値に応じた並列度でチェックノード処理を実行してよい。図１８に示す例では、動作サイクルＴ２において、第１乃至第３のチェックノード処理回路は、第１の列ブロックＣＢ１に対して更新された確率メッセージβ１，１、β２，１、β３，１を受け取る。これに１動作サイクル遅れて、チェックノード処理回路の内部では図１８においてＣｎｏｄｅとして示されるように、チェックノード処理の計算が実行される。このチェックノード処理の計算は、動作サイクルＴ２及びそれ以降の動作サイクルにて順次供給される第１列ブロック乃至第３列ブロックの更新された確率メッセージβに基づいて、順次段階的に実行される。また更に動作サイクルＴ３において、第１乃至第３のチェックノード処理回路は、第１の列ブロックＣＢ１に対して更新された確率メッセージβ５，１、β６，１、β４，１を受け取る。これに１動作サイクル遅れて、チェックノード処理回路の内部では図１８においてＣｎｏｄｅとして示されるように、チェックノード処理の計算が実行される。このチェックノード処理の計算は、動作サイクルＴ３及びそれ以降の動作サイクルにて順次供給される第１列ブロック乃至第３列ブロックの更新された確率メッセージβに基づいて、順次段階的に実行される。
【００６７】
上記のチェックノード処理において、確率メッセージβが全ての列ブロックについて更新され供給されると、確率メッセージαの更新処理は実質的に完了する。巡回型検査行列の３つの行に対応するチェックノード処理回路３４−１乃至３４−３は、対応する行中の全ての確率メッセージβが更新された後、当該行中の更新後の確率メッセージαを順次出力する。例えばチェックノード処理回路３４−１は、まず巡回型検査行列の第１行に対して、更新後の確率メッセージα１，１、α１，２、α１，３を順次出力する。またチェックノード処理回路３４−１は、更に巡回型検査行列の第５行に対して、更新後の確率メッセージα５，１、α５，２、α５，３を順次出力する。
【００６８】
なお図１６のＬＤＰＣ復号部２２Ａのビットノード処理部３３の１つのビットノード処理回路は、図１１に示す回路構成であってよい。また図１６のＬＤＰＣ復号部２２Ａのチェックノード処理部３４の１つのチェックノード処理回路は、図１０或いは図１５に示す回路構成であってよい。図１６に示すＬＤＰＣ復号部２２Ａにおいては、バッファ７１及び７２を利用することにより、チェックノード処理回路の並列数をｎ×Ｊ／ｐ個に減らし、論理演算部分の回路規模を削減することができる。
【００６９】
なお本願発明は、以下の内容を含むものである。
（付記１）
巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新するビットノード処理部と、
前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力するチェックノード処理部と
を含むことを特徴とする復号装置。
（付記２）
前記ビットノード処理部は、１列ブロック内の全ての列に対して並列にビットノード処理を実行し、前記チェックノード処理部は、全ての行に対して並列にチェックノード処理を実行することを特徴とする付記１記載の復号装置。
（付記３）
前記ビットノード処理部の出力は、メモリを介することなく前記チェックノード処理部の入力に直接に接続されることを特徴とする付記１又は２記載の復号装置。
（付記４）
前記チェックノード処理部は、
第１レジスタと、
第２レジスタと、
前記更新された１つの確率メッセージβの絶対値と前記第１レジスタの格納値とを比較する比較器と、
前記更新された１つの確率メッセージβの符号と前記第２レジスタの格納値との排他的論理和をとるＸＯＲ回路と
を含むことを特徴とする付記１乃至３何れか一項記載の復号装置。
（付記５）
前記ビットノード処理部は、対数尤度比の入力と確率メッセージαとに基づき、確率メッセージβを更新すると共に硬判定後の復号データを生成することを特徴とする付記１乃至４何れか一項記載の復号装置。
（付記６）
前記ビットノード処理部は、１列ブロック内の全ての列に対して並列にビットノード処理を実行し、前記チェックノード処理部は、前記検査行列の複数Ｍ個の行に対する並列なチェックノード処理を実行し、前記並列なチェックノード処理を順次異なるＭ個の行に対して逐次的に実行することにより、前記検査行列の全ての行に対するチェックノード処理を実行することを特徴とする付記１記載の復号装置。
（付記７）
前記並列なチェックノード処理を逐次的に実行する際に実行待ちの前記並列なチェックノード処理に入力する確率メッセージβを格納しておく第１のバッファと、
逐次的に実行される前記並列なチェックノード処理から出力され前記ビットノード処理部に入力待ちの確率メッセージαを格納しておく第２のバッファと
を更に含むことを特徴とする付記６記載の復号装置。
（付記８）
巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新し、
前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力する
各段階を含むことを特徴とする復号方法。
（付記９）
１列ブロック内の全ての列に対して並列に前記ビットノード処理を実行し、全ての行に対して並列に前記チェックノード処理を実行することを特徴とする付記８記載の復号方法。
（付記１０）
前記ビットノード処理は、対数尤度比の入力と確率メッセージαとに基づき、確率メッセージβを更新すると共に硬判定後の復号データを生成することを特徴とする付記８又は９記載の復号方法。
（付記１１）
アナログ受信信号をデジタル受信信号に変換し、前記デジタル受信信号を復調して復調された受信信号を生成し、前記復調された受信信号からＬＬＲを計算して出力する復調部と、
前記ＬＬＲに基づいてＬＤＰＣ復号処理を行なう復号部と
を含み、前記復号部は、
巡回型ＬＤＰＣ符号の復号処理におけるビットノード処理を検査行列の１列ブロック毎に実行して、１列ブロック内の確率メッセージαに基づき前記１列ブロック内の全ての確率メッセージβを更新するビットノード処理部と、
前記検査行列の各行のチェックノード処理の計算において、一の行のチェックノード処理の計算を、前記一の行中の１つの確率メッセージβが更新される毎に更新された１つの確率メッセージβに基づいて順次段階的に行ない、前記一の行中の全ての確率メッセージβが更新された後に前記一の行中の更新後の確率メッセージαを順次出力するチェックノード処理部と
を含むことを特徴とする受信装置。
【００７０】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００７１】
１０  送信装置
１５  通信路
２０  受信装置
３１  制御部
３２  ＬＬＲ用ＲＡＭ
３３  ビットノード処理部
３４  チェックノード処理部
３５  パリティ検査部
【図１】
2012124888.tif 000006
【図２】
2012124888.tif 000007
【図３】
2012124888.tif 000008
【図４】
2012124888.tif 000009
【図５】
2012124888.tif 000010
【図６】
2012124888.tif 000011
【図７】
2012124888.tif 000012
【図８】
2012124888.tif 000013
【図９】
2012124888.tif 000014
【図１０】
2012124888.tif 000015
【図１１】
2012124888.tif 000016
【図１２】
2012124888.tif 000017
【図１３】
2012124888.tif 000018
【図１４】
2012124888.tif 000019
【図１５】
2012124888.tif 000020
【図１６】
2012124888.tif 000021
【図１７】
2012124888.tif 000022
【図１８】
2012124888.tif 000023