(57)【特許請求の範囲】
【請求項１】
基本復号処理を複数回繰り返すことで、符号化されたデータを確率伝搬法により復号する復号装置であって、
処理対象のデータの各ビットに対応する各変数ノードの、前記各変数ノードに接続されたチェックノードにおける信頼度を算出し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、信頼度が所定の基準値以下である変数ノードからチェックノードへ伝搬された事前値比を検出する低信頼度ノード検出部と、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記低信頼度ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させるチェックノード処理部と、
前記チェックノード処理部により算出された前記外部値比に基づいて、次回の基本復号処理で前記チェックノード処理部が外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させる変数ノード処理部と、
今回の基本復号処理で前記チェックノード処理部により算出された外部値比と前記変数ノード処理部により算出された事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定するビット推定部と、
を備えることを特徴とする復号装置。
【請求項２】
前記信頼度は、前回の基本復号処理で前記変数ノード処理部により算出された事前値比の絶対値であり、
前記低信頼度ノード検出部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、絶対値の値が所定の基準値以下である事前値比を検出する、
ことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記信頼度は、前回の基本復号処理で前記変数ノード処理部により算出される事前値比の絶対値であり、
前記低信頼度ノード検出部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、絶対値の値が所定の基準値以下である事前値比の伝搬元の変数ノードからチェックノードへ伝搬された事前値比を検出する、
ことを特徴とする請求項１に記載の復号装置。
【請求項４】
前記信頼度は、前回の基本復号処理で前記ビット推定部により算出された事後確率比の絶対値であり、
前記低信頼度ノード検出部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、絶対値の値が所定の基準値以下である事後確率比に対応する変数ノードからチェックノードへ伝搬された事前値比を検出する、
ことを特徴とする請求項１に記載の復号装置。
【請求項５】
前記データは、低密度パリティ検査符号により符号化されたデータである、
ことを特徴とする請求項１乃至４の何れか一に記載の復号装置。
【請求項６】
前記低密度パリティ検査符号を定義するパリティ検査行列の列のうちで、前記列を構成する成分の値が１である成分の数が少ない列に対応する変数ノードを特定し、前記低信頼度ノード検出部により検出された事前値比のうちで、前記特定した変数ノードからチェックノードへ伝搬された事前値比を検出する除外ノード検出部をさらに備え、
前記チェックノード処理部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記除外ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式における前記総積部分以外の部分を演算する、
ことを特徴とする請求項５に記載の復号装置。
【請求項７】
前記チェックノード処理部は、基本復号処理の繰り返し回数が規定回数に至るまでは、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、前記外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記低信頼度ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、変数ノードからチェックノードへ伝搬させる外部値比を算出し、それより後の基本復号処理では、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、前記外部値比の算出式における総積部分とそれ以外の部分とを演算することで、変数ノードからチェックノードへ伝搬させる外部値比を算出する、
ことを特徴とする請求項１乃至６の何れか一に記載の復号装置。
【請求項８】
前記符号化されたデータは、ｓｕｍ−ｐｒｏｄｕｃｔ復号により復号される、
ことを特徴とする請求項１乃至７の何れか一に記載の復号装置。
【請求項９】
前記符号化されたデータは、ｍｉｎ−ｓｕｍ復号により復号される、
ことを特徴とする請求項１乃至７の何れか一に記載の復号装置。
【請求項１０】
基本復号処理を複数回繰り返すことで、低密度パリティ検査符号により符号化されたデータを確率伝搬法により復号する復号装置であって、
前記低密度パリティ検査符号を定義するパリティ検査行列の列のうちで、前記列を構成する成分の値が１である成分の数が少ない列に対応する変数ノードを特定し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、前記特定した変数ノードからチェックノードへ伝搬された事前値比を検出する除外ノード検出部と、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記除外ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式における前記総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させるチェックノード処理部と、
前記チェックノード処理部により算出された前記外部値比に基づいて、次回の基本復号処理で前記チェックノード処理部が外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させる変数ノード処理部と、
今回の基本復号処理で前記チェックノード処理部により算出された外部値比と前記変数ノード処理部により算出された事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定するビット推定部と、
を備えることを特徴とする復号装置。
【請求項１１】
基本復号処理を複数回繰り返すことで、符号化されたデータを確率伝搬法により復号する復号方法であって、
処理対象のデータの各ビットに対応する各変数ノードの、前記各変数ノードに接続されるチェックノードにおける信頼度を算出し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、信頼度が所定の基準値以下である変数ノードからチェックノードへ伝搬された事前値比を検出し、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させ、
前記算出された前記外部値比に基づいて、次回の基本復号処理で外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させ、
今回の基本復号処理で前記算出された外部値比と事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定する、
ことを特徴とする復号方法。
【請求項１２】
基本復号処理を複数回繰り返すことで、符号化されたデータを確率伝搬法により復号する機能を備えたコンピュータに、
処理対象のデータの各ビットに対応する各変数ノードの、前記各変数ノードに接続されるチェックノードにおける信頼度を算出し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、信頼度が所定の基準値以下である変数ノードからチェックノードへ伝搬された事前値比を検出する処理と、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させる処理と、
前記算出された前記外部値比に基づいて、次回の基本復号処理で外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させる処理と、
今回の基本復号処理で前記算出された外部値比と事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定する処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置、復号方法、及び、プログラムに関する。
【背景技術】
【０００２】
デジタル通信システムの無線送信装置は情報データを符号化して送信する。情報データの符号化には、例えば、畳み込み符号、低密度パリティ検査(ＬＤＰＣ：Low Density Parity Check Code)符号、ターボ符号、ブロックターボ符号などが用いられる。近年では、信号対雑音比（Ｓ／Ｎ比：Signal-to-Noise ratio)が小さい伝送路においても、誤り訂正能力が高いＬＤＰＣ符号が注目され、適用されている。
【０００３】
例えば、ＷｉＭａｘ(Worldwide Interoperability for Microwave Access)の、ＩＥＥＥ８０２．１６ｅ規格では、ＬＤＰＣ符号が採用されている。
【０００４】
ＬＤＰＣ符号は、多くの”０”とわずかな”１”から成る疎なパリティ検査行列Ｈで定義される線形ブロック符号であり、ＬＤＰＣ符号の符号化では、ＨＴをＨの転置行列とし、ＧＨＴ＝０を満たす生成行列Ｇをガウス消去法などで求め、求めた生成行列Ｇを用いて情報系列を符号化する。
【０００５】
情報データをＬＰＤＣ符号により符号化した場合、その復号には、一般的に、確率伝搬法（ＢＰ：Belief Propagation）の一種であるｓｕｍ−ｐｒｏｄｕｃｔ復号、ｍｉｎ−ｓｕｍ復号が用いられる。ｓｕｍ−ｐｒｏｄｕｃｔ復号は、繰り返し復号の一種であり、パリティ検査行列Ｈを用いて、変数ノード処理とチェックノード処理との２つの処理を繰り返すことで、各符号語の推定（復号）を行う。
【０００６】
ｓｕｍ−ｐｒｏｄｕｃｔ復号は、復号処理のラウンドごとにパリティチェックを行うため、検査条件を満たせば、早い段階（ラウンド）で復号処理を終了する。そのため、復号処理時における演算量の軽減と、復号処理の高速化が可能である。
【０００７】
しかしながら、ｓｕｍ−ｐｒｏｄｕｃｔ復号は、繰り返し復号の一種であるため、信頼度の低い尤度が存在すると、メッセージを伝播させる尤度間に相関が生じ、近似の精度が劣化してしまうという問題がある。このいわゆる誤り伝播の問題により、効率的な復号処理を行うことができなくなる。
【０００８】
この誤り伝播の問題を解決するための方法として、例えば、特許文献１には、符号データに含まれるデータビットとパリティビットの尤度の信頼度を検出し、信頼度の低い尤度から優先的に更新する更新スケジュールを作成し、作成した更新スケジュールに従って尤度を更新する方法が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１６９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に提案されている方法では、更新スケジュールを作成するための演算処理が新たに必要となる。すなわち、演算量を軽減できるというｓｕｍ−ｐｒｏｄｕｃｔ復号のメリットを犠牲にしなければならない。また、信頼度の低い尤度から優先的に更新したとしても、信頼度の低い尤度が多数ある場合には、信頼度の低い尤度が伝播してしまい、近似精度が劣化してしまう。
【００１１】
本発明は、上記実情に鑑みてなされたものであり、いわゆる誤り伝播を防止し、効率的な復号処理を実現することが可能な復号装置、復号方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の第１の観点に係る復号装置は、
基本復号処理を複数回繰り返すことで、符号化されたデータを確率伝搬法により復号する復号装置であって、
処理対象のデータの各ビットに対応する各変数ノードの、前記各変数ノードに接続されたチェックノードにおける信頼度を算出し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、信頼度が所定の基準値以下である変数ノードからチェックノードへ伝搬された事前値比を検出する低信頼度ノード検出部と、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記低信頼度ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させるチェックノード処理部と、
前記チェックノード処理部により算出された前記外部値比に基づいて、次回の基本復号処理で前記チェックノード処理部が外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させる変数ノード処理部と、
今回の基本復号処理で前記チェックノード処理部により算出された外部値比と前記変数ノード処理部により算出された事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定するビット推定部と、
を備えることを特徴とする。
【００１３】
この場合、前記信頼度は、前回の基本復号処理で前記変数ノード処理部により算出された事前値比の絶対値であり、
前記低信頼度ノード検出部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、絶対値の値が所定の基準値以下である事前値比を検出する、
こととしてもよい。
【００１４】
また、前記信頼度は、前回の基本復号処理で前記変数ノード処理部により算出される事前値比の絶対値であり、
前記低信頼度ノード検出部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、絶対値の値が所定の基準値以下である事前値比の伝搬元の変数ノードからチェックノードへ伝搬された事前値比を検出する、
こととしてもよい。
【００１５】
また、前記信頼度は、前回の基本復号処理で前記ビット推定部により算出された事後確率比の絶対値であり、
前記低信頼度ノード検出部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、絶対値の値が所定の基準値以下である事後確率比に対応する変数ノードからチェックノードへ伝搬された事前値比を検出する、
こととしてもよい。
【００１６】
また、前記データは、低密度パリティ検査符号により符号化されたデータである、
こととしてもよい。
【００１７】
また、前記低密度パリティ検査符号を定義するパリティ検査行列の列のうちで、前記列を構成する成分の値が１である成分の数が少ない列に対応する変数ノードを特定し、前記低信頼度ノード検出部により検出された事前値比のうちで、前記特定した変数ノードからチェックノードへ伝搬された事前値比を検出する除外ノード検出部をさらに備え、
前記チェックノード処理部は、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記除外ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式における前記総積部分以外の部分を演算する、
こととしてもよい。
【００１８】
また、前記チェックノード処理部は、基本復号処理の繰り返し回数が規定回数に至るまでは、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、前記外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記低信頼度ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、変数ノードからチェックノードへ伝搬させる外部値比を算出し、それより後の基本復号処理では、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、前記外部値比の算出式における総積部分とそれ以外の部分とを演算することで、変数ノードからチェックノードへ伝搬させる外部値比を算出する、
こととしてもよい。
【００１９】
また、前記符号化されたデータは、ｓｕｍ−ｐｒｏｄｕｃｔ復号により復号される、
こととしてもよい。
【００２０】
また、前記符号化されたデータは、ｍｉｎ−ｓｕｍ復号により復号される、
こととしてもよい。
【００２１】
上記目的を達成するために、本発明の第２の観点に係る復号装置は、
基本復号処理を複数回繰り返すことで、低密度パリティ検査符号により符号化されたデータを確率伝搬法により復号する復号装置であって、
前記低密度パリティ検査符号を定義するパリティ検査行列の列のうちで、前記列を構成する成分の値が１である成分の数が少ない列に対応する変数ノードを特定し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、前記特定した変数ノードからチェックノードへ伝搬された事前値比を検出する除外ノード検出部と、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記除外ノード検出部により検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式における前記総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させるチェックノード処理部と、
前記チェックノード処理部により算出された前記外部値比に基づいて、次回の基本復号処理で前記チェックノード処理部が外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させる変数ノード処理部と、
今回の基本復号処理で前記チェックノード処理部により算出された外部値比と前記変数ノード処理部により算出された事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定するビット推定部と、
を備えることを特徴とする。
【００２２】
上記目的を達成するために、本発明の第３の観点に係る復号方法は、
基本復号処理を複数回繰り返すことで、符号化されたデータを確率伝搬法により復号する復号方法であって、
処理対象のデータの各ビットに対応する各変数ノードの、前記各変数ノードに接続されるチェックノードにおける信頼度を算出し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、信頼度が所定の基準値以下である変数ノードからチェックノードへ伝搬された事前値比を検出し、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させ、
前記算出された前記外部値比に基づいて、次回の基本復号処理で外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させ、
今回の基本復号処理で前記算出された外部値比と事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定する、
ことを特徴とする。
【００２３】
上記目的を達成するために、本発明の第４の観点に係るプログラムは、
基本復号処理を複数回繰り返すことで、符号化されたデータを確率伝搬法により復号する機能を備えたコンピュータに、
処理対象のデータの各ビットに対応する各変数ノードの、前記各変数ノードに接続されるチェックノードにおける信頼度を算出し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比のうちで、信頼度が所定の基準値以下である変数ノードからチェックノードへ伝搬された事前値比を検出する処理と、
前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比に基づいて、チェックノードから変数ノードへ伝搬させる外部値比の算出式における総積部分を演算し、前回の基本復号処理で変数ノードからチェックノードへ伝搬された事前値比から、前記検出された事前値比を除外した事前値比に基づいて、前記外部値比の算出式の総積部分以外の部分を演算することで、外部値比を算出し、算出した外部値比を前記チェックノードから変数ノードへ伝搬させる処理と、
前記算出された前記外部値比に基づいて、次回の基本復号処理で外部値比を算出するために用いる事前値比を算出し、算出した事前値比を変数ノードからチェックノードへ伝搬させる処理と、
今回の基本復号処理で前記算出された外部値比と事前値比とに基づいて、前記各ビットに対応する事後確率比を算出し、算出した事後確率比に基づいて、処理対象のデータの各ビットを推定する処理と、
を実行させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、いわゆる誤り伝播を防止し、効率的な復号処理を実現することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】（ａ）は、実施形態１における、デジタル通信システムの構成を示すブロック図である。（ｂ）は、実施形態１における、復号部の構成を示すブロック図である。
【図２】（ａ）は、実施形態１における、パリティ検査行列の例を示す図である。（ｂ）は、（ａ）のパリティ検査行列を２部グラフで表現した図である。
【図３】実施形態１における、通常モードのチェックノード処理を説明するための図である。
【図４】実施形態１における、変数ノード処理を説明するための図である。
【図５】（ａ）乃至（ｃ）は、実施形態１における、初回の基本復号処理での除外モードのチェックノード処理を説明するための図である。
【図６】（ａ）乃至（ｄ）は、実施形態１における、初回以外の基本復号処理での除外モードのチェックノード処理を説明するための図である。
【図７】実施形態１における、復号処理のフローチャートを示す図である。
【図８】実施形態２における、復号部の構成を示すブロック図である。
【図９】（ａ）と（ｂ）は、実施形態２における、列重み情報テーブルの例を示す図である。
【図１０】（ａ）と（ｂ）は、実施形態２における、初回の基本復号処理での除外モードのチェックノード処理を説明するための図である。
【図１１】（ａ）と（ｂ）は、実施形態２における、初回以外の基本復号処理での除外モードのチェックノード処理を説明するための図である。
【図１２】実施形態２における、復号処理のフローチャートを示す図である。
【図１３】実施形態２における、ビット誤り率ＢＥＲ(Bit Error Rate)特性を示す図である。
【図１４】変形例１における、復号部の構成を示すブロック図である。
【図１５】変形例１における、復号処理のフローチャートの一部を示す図である。
【図１６】変形例２における、各変数ノードから接続先のチェックノードへ送信される事前値比の一覧の例を示す図である。
【図１７】変形例２における、復号処理のフローチャートを示す図である。
【図１８】信頼度閾値を基本繰り返し回数に従って可変する場合の例を示す図である。
【図１９】列重み閾値を低信頼度変数ノード数に従って可変する場合の例を示す図である。
【発明を実施するための形態】
【００２６】
本発明の実施形態に係る復号装置について、図面を参照しながら説明する。
【００２７】
（実施形態１）
図１（ａ）は、デジタル通信システム１の構成を示すブロック図である。本実施形態におけるデジタル通信システム１は、無線送信装置００１と無線受信装置００２とから構成され、無線送信装置００１は、符号化部００１Ａと、変調部００１Ｂと、無線通信部００１Ｃとから構成される。
【００２８】
なお、本実施形態では、Ｍ行ｘＮ列のパリティ検査行列ＨＭＮにより定義されるＬＤＰＣ符号により符号化された符号データを、ｓｕｍ−ｐｒｏｄｕｃｔ復号又はｍｉｎ−ｓｕｍ復号（以下、特に区別する必要が無い場合は、ＬＤＰＣ復号という）により、繰り返し復号する場合について、以下に説明する。
【００２９】
符号化部００１Ａは、Ｍ行ｘＮ列のパリティ検査行列ＨＭＮにより定義されるＬＤＰＣ符号により、入力された情報データＤを、符号化し、生成されたＮビットの符号語（以下、フレームデータＦｋ）ごとに変調部００１Ｂへ順次出力する。
【００３０】
変調部００１Ｂは、符号化部００１Ａにから順次入力された、フレームデータＦｋ（ｋ＝１，２，…，K；Kは任意の数）を所定の信号方式へ変調する。無線通信部００１Ｃは、アンテナと無線通信モジュール等から構成され、変調後のフレームデータＦｋを増幅して通信路ＣＨへ順次出力する。通信路ＣＨにおいて、出力された変調後のフレームデータＦｋにノイズ成分が付加され、ノイズ成分が付加されたフレームデータＦｋが無線受信装置００２により順次受信される。
【００３１】
無線受信装置００２は、図１（ａ）に示すように、無線通信部００２Ａと、復調部００２Ｂと、復号部００２Ｃとから構成される。無線通信部００２Ａは、アンテナと無線通信モジュール等から構成され、無線送信装置００１の無線通信部００１Ｃにより出力され、通信路ＣＨにおいてノイズ成分が付加されたフレームデータＦｋを順次受信する。
【００３２】
復調部００２Ｂは、無線通信部００２Ａが受信したフレームデータＦｋを順次復調し、復調後のフレームデータＦｋは、復号部００２Ｃに順次入力される。ここで、復調部００２Ｂにより、第ｋ番目に復号部００２Ｃへ入力されるフレームデータＦｋを受信データＦｋということとする。
【００３３】
復号部００２Ｃは、図１（ｂ）に示すように、記憶部００２Ｃ１と、復号処理部００２Ｃ２と、を備える。
【００３４】
記憶部００２Ｃ１は、ＲＯＭ(Read Only Memory)、ＲＡＭ(Random Access Memory)などから構成され、フレームデータ記憶部００２Ｃ１ａとして機能すると共に、復号処理部００２Ｃ２を構成するＣＰＵ(Central Processing Unit)のワーキングエリア、ＣＰＵが実行する動作プログラムを格納するプログラムエリア、各種の算出式とパリティ検査行列ＨＭＮと後述する信頼度閾値γ１などの各種データを格納するデータエリア、などとして機能する。
【００３５】
フレームデータ記憶部００２Ｃ１ａは、復号処理部００２Ｃ２の制御により、復調部００２Ｂから順次入力される受信データＦｋを格納する。
【００３６】
復号処理部００２Ｃ２は、ＣＰＵなどから構成され、ＣＰＵは記憶部００２Ｃ１に格納されている動作プログラムを実行することで、図１（ｂ）に示すように、低信頼度ノード検出部００２Ｃ２ａと、除外ノード検出部００２Ｃ２ｂと、チェックノード処理部００２Ｃ２ｃと、変数ノード処理部００２Ｃ２ｄと、ビット推定部００２Ｃ２ｅと、繰り返し回数判定部００２Ｃ２ｆと、判定部００２Ｃ２ｇと、推定ビット出力部００２Ｃ２ｈとしての機能を実現する。
【００３７】
また、復号処理部００２Ｃ２は、各機能部の制御処理を実行すると共に、フレームデータ記憶部００２Ｃ１ａに格納されている受信データＦｋ（ｋ＝１，２，…，K）を順次読み出して、ＬＰＤＣ復号による復号処理を実行する。復号処理部００２Ｃ２により読み出された処理対象の受信データＦｋは、低信頼度ノード検出部００２Ｃ２ａと、チェックノード処理部００２Ｃ２ｃと、変数ノード処理部００２Ｃ２ｄへ入力される。また、復号処理部００２Ｃ２は、記憶部００２Ｃ１から復号処理に必要な算出式などのデータを読み出して復号処理部００２Ｃ２専用のレジストリに格納する。
【００３８】
ＬＰＤＣ復号は、タナーグラフと呼ばれる２部グラフ上でのメッセージパッシングアルゴリズムとして考えることができる。例えば、ＬＰＤＣ符号を定義するパリティ検査行列ＨＭＮが、図２（ａ）に示すような４行８列のパリティ検査行列だとすると、パリティ検査行列ＨＭＮを、図２（ｂ）に示すような２部グラフで表現することができる。図中の、変数ノードｂｎ（ｎ＝１，２，…，８）は、パリティ検査行列ＨＭＮの列に、チェックノードｃｍ（ｍ＝１，…，４）は、パリティ検査行列ＨＭＮの行に、ノード間を結ぶエッジは、パリティ検査行列ＨＭＮの成分１に、それぞれ対応する。
【００３９】
例えば、図２（ａ）に示す、点線の丸で囲まれたパリティ検査行列ＨＭＮの成分１は、図２（ｂ）に示す、変数ノードｂ６とチェックノードｃ２との間を結ぶ点線で表したエッジに対応する。つまり、パリティ検査行列ＨＭＮの第２行目に対応するチェックノードｃ２とエッジで結ばれる変数ノードは、パリティ検査行列ＨＭＮの第２行目において成分１を有する、第２列（第２ビット）、第３列（第３ビット）、第５列（第５ビット）、及び、第６列（第６ビット）にそれぞれ対応する変数ノードｂ２、ｂ３、ｂ５、及び、ｂ６となる。
【００４０】
各チェックノードｃｍは、エッジで接続される変数ノードから送られて来る事前値比βｍｎ（但し、送信先の変数ノードからの事前値比は除く）に基づいて、外部値比αｍｎを算出し、送信先の変数ノードへ算出した外部値比αｍｎを送信する。２部グラフにおいて、事前値比βｍｎは、変数ノードｂｎからチェックノードｃｍへ送信されるメッセージとして、外部値αｍｎは、チェックノードｃｍから変数ノードｂｎへ送信されるメッセージとして、考えることができる。
【００４１】
例えば、パリティ検査行列ＨＭＮが、図２（ａ）に示すような４行８列のパリティ検査行列だとすると、図３に示すように、変数ノードｂ１とｂ４とｂ５がチェックノードｃ１に接続する。この場合、例えば、送信先の変数ノードが変数ノードｂ１である場合は、チェックノードｃ１は、変数ノードｂ１から送られて来る事前値比β１１を除いた変数ノードｂ４からの事前値比β１４と変数ノードｂ５からの事前値比β１５とに基づいて、外部値比α１１を算出し、算出した外部値比α１１を変数ノードｂ１へ送信する。また、例えば、送信先の変数ノードが変数ノードｂ４である場合は、チェックノードｃ１は、変数ノードｂ４から送られて来る事前値比β１４を除いた変数ノードｂ１からの事前値比β１１と変数ノードｂ５からの事前値比β１５とに基づいて、外部値比α１４を算出し、算出した外部値比α１４を変数ノードｂ４へ送信する。
【００４２】
そして、各変数ノードｂｎは、エッジで接続されるチェックノードから送られて来る外部値比αｍｎ（但し、送信先のチェックノードからの外部値比は除く）に基づいて、事前値比βｍｎを算出し、算出した事前値比βｍｎを送信先のチェックノードへ送信する。
【００４３】
例えば、パリティ検査行列ＨＭＮが、図２（ａ）に示すような４行８列のパリティ検査行列だとすると、図４に示すように、チェックノードｃ１とｃ３が変数ノードｂ１に接続する。この場合、送信先のチェックノードがチェックノードｃ１である場合は、変数ノードｂ１は、チェックノードｃ１から送られて来る外部値比α１１を除いたチェックノードｃ３からの外部値比α３１に基づいて、事前値比β１１を算出し、算出した事前値比β１１をチェックノードｃ１へ送信する。
【００４４】
図１（ｂ）に戻り、低信頼度ノード検出部００２Ｃ２ａは、基本復号処理が繰り返されるたびに、各チェックノードｃｍに接続する変数ノード（処理対象の受信データＦｋの各ビット）の信頼度を算出し、算出した信頼度が記憶部００２Ｃ１に格納されている信頼度閾値γ１以下である変数ノード（処理対象の受信データＦｋのビット）を各チェックノードｃｍに対して検出する。本実施形態においては、変数ノード処理部００２Ｃ２ｄから入力される事前値比βｍｎの絶対値│βｍｎ│を、チェックノードｃｍに接続する変数ノードｂｎの信頼度として算出する。この事前値比βｍｎは、２部グラフにおいては、変数ノードｂｎからチェックノードｃｍへ送信される事前値比である。なお、初回の基本復号処理では、低信頼度ノード検出部００２Ｃ２ａは、各変数ノードｂｎの信頼度として、事前値比βｍｎの初期値である対数尤度比λｎの絶対値│λｎ│を算出する。ここで、対数尤度比λｎは、ｓｕｍ−ｐｒｏｄｕｃｔ復号と通常のｍｉｎ−ｓｕｍ復号では、処理対象の受信データＦｋの第ｎビット（ｎ＝１，２，…，Ｎ）に対応するデータ値ｙｎを通信路値で補正した値ｙ’ｎであり、正規化ｍｉｎ−ｓｕｍ復号では、データ値ｙｎである。低信頼度ノード検出部００２Ｃ２ａは、算出した対数尤度比λｎをチェックノード処理部００２Ｃ２ｃと変数ノード処理部００２Ｃ２ｄへ出力する。
【００４５】
そして、低信頼度ノード検出部００２Ｃ２ａは、信頼度閾値γ１以下である絶対値│βｍｎ│のインデックス番号ｍとｎの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力する。例えば、事前値比β４２の絶対値│β４２│と事前値比β１６の絶対値│β１６│とが信頼度閾値γ１以下である場合は、組（４，２）と組（１，６）を除外ノード検出部００２Ｃ２ｂへ出力する。また、初回の基本復号処理の際に、例えば、対数尤度比λ３の絶対値│λ３│が信頼度閾値γ１以下であり、チェックノードｃ２とｃ７とが変数ノードｂ３と接続する場合は、チェックノードｃ２のインデックス番号２と変数ノードｂ３のインデックス番号３との組（２，３）と、チェックノードｃ７のインデックス番号７と変数ノードｂ３のインデックス番号３との組（７，３）と、を除外ノード検出部００２Ｃ２ｂへ出力する。検出した変数ノードに接続するチェックノードの情報は、パリティ検査行列ＨＭＮを参照することで、得ることができる。
【００４６】
事前値比βｍｎは、変数ノード処理部００２Ｃ２ｄにより、次式を用いて求められる。
【数１】
0005765281.tif 000002
ここで、Σは、総和記号であり、Ｂ（ｎ）は、変数ノードｂｎに接続するチェックノードの集合、＼ｍは、チェックノードｃｍを含まない差集合である。αｍｎは、外部値比であり、チェックノード処理部００２Ｃ２ｃにより求められる。
【００４７】
例えば、パリティ検査行列ＨＭＮが、図２（ａ）に例示するパリティ検査行列であった場合、変数ノードｂ１は、図４に示すように、チェックノードｃ１とｃ３と接続されている。この場合、例えば、変数ノードｂ１からチェックノードｃ１へ送信する事前値比β１１を算出する際のＢ（１）＼１は、変数ノードｂ１に接続するチェックノードの集合｛ｃ１，ｃ３｝から送信先のチェックノードｃ１を除いた集合｛ｃ３｝となる。
【００４８】
図１（ｂ）に戻り、除外ノード検出部００２Ｃ２ｂは、低信頼度ノード検出部００２Ｃ２ａにより信頼度│βｍｎ│が信頼度閾値γ１以下である変数ノード（処理対象の受信データＦｋのビット）が検出された場合、すなわち、チェックノードｃｍのインデックス番号ｍと変数ノードｂｎのインデックス番号ｎとの組（ｍ，ｎ）が低信頼度ノード検出部００２Ｃ２ａから入力された場合には、変数ノードｂｎをチェックノードｃｍにおける除外ノード（除外ビット）として、組（ｍ，ｎ）をチェックノード処理部００２Ｃ２ｃへ出力する。この組（ｍ，ｎ）は、チェックノードｃｍにおける除外ノードｂｎを特定するために用いられる。
【００４９】
チェックノード処理部００２Ｃ２ｃは、変数ノード処理部００２Ｃ２ｄから入力される事前値比βｍｎに基づいて、パリティ検査行列ＨＭＮの構成成分Ｈｍｎのうちで、Ｈｍｎ＝１を満たす全ての組（ｍ，ｎ）について、外部値比αｍｎを算出する。この際、基本復号処理の繰り返し回数ｒがｒ≦Ｒ１の場合は、詳しくは後述する除外モードの算出式を用いて外部値比αｍｎを算出し、Ｒ１＜ｒ≦Ｒ２の場合は、通常モードの算出式を用いて外部値比αｍｎを算出する。ここで、Ｒ２は、基本復号処理の最大繰り返し回数の設定値であり、Ｒ１は、２≦Ｒ１≦Ｒ２を満たす予め設定された自然数である。そして、チェックノード処理部００２Ｃ２ｃは、算出した外部値比αｍｎを、変数ノード処理部００２Ｃ２ｄとビット推定部００２Ｃ２ｅへ出力する。なお、事前値比βｍｎの初期値は対数尤度比λｎとする。
【００５０】
ＬＤＰＣ復号の復号方式によって、チェックノード処理において外部値比αｍｎを算出するために用いる通常の算出式が異なることから、ｓｕｍ−ｐｒｏｄｕｃｔ復号、通常のｍｉｎ−ｓｕｍ復号、正規ｍｉｎ−ｓｕｍ復号について、それぞれ通常モードの算出式と除外モードの算出式を以下に示す。
【００５１】
まず、復号方式が、ｓｕｍ−ｐｒｏｄｕｃｔ復号の場合は、通常モードの算出式は、数２に示す算出式で定義される。数２に示す算出式は、外部値比αｍｎを求める際に通常用いられる算出式である。
【数２】
0005765281.tif 000003
ここで、ΠとΣは、それぞれ、総積記号と総和記号であり、Ａ（ｍ）は、チェックノードｃｍに接続する変数ノードの集合、＼ｎは、変数ノードｂｎを含まない差集合である。また、関数ｓｉｇｎ（ｘ）は、ｘ＞０の場合は、ｓｉｇｎ（ｘ）＝１となり、ｘ＜０の場合は、ｓｉｇｎ（ｘ）＝−１となるシグネチャ関数である。また、関数ｆ（ｘ）は、ｆ（ｘ）＝ｌｏｇｅ｛（ｅｘ＋１）／（ｅｘ−１）｝で定義される関数で、ｅは自然対数の底（ネイピア数）である。
【００５２】
例えば、パリティ検査行列ＨＭＮが、図２（ａ）に例示するパリティ検査行列であった場合、チェックノードｃ１は、図３に示すように、変数ノードｂ１とｂ４とｂ５と接続されている。この場合、例えば、チェックノードｃ１から変数ノードｂ１へ送信する外部値比α１１を算出する際のＡ（１）＼１は、チェックノードｃ１に接続する変数ノードの集合｛ｂ１，ｂ４，ｂ５｝から送信先の変数ノードｂ１を除いた集合｛ｂ４，ｂ５｝となる。また、例えば、チェックノードｃ１から変数ノードｂ４へ送信する外部値比α１４を算出する際のＡ（１）＼４は、集合｛ｂ１，ｂ５｝となる。
【００５３】
ｓｕｍ−ｐｒｏｄｕｃｔ復号の場合における除外モードの算出式は、数３に示す算出式で定義される。この数３に示す算出式は、本発明特有の算出式である。
【数３】
0005765281.tif 000004
ここで、ΠとΣは、それぞれ、総積記号と総和記号であり、Ａ（ｍ）は、チェックノードｃｍに接続する変数ノードの集合である。また、関数ｓｉｇｎ（ｘ）は、数２で定義したシグネチャ関数、関数ｆ（ｘ）は、数２で定義した関数ｆ（ｘ）と同じ関数、である。また、Ｅ（ｍ）は、チェックノードｃｍに接続する変数ノードのうちで、除外ノード検出部００２Ｃ２ｂにより除外ノードとされた変数ノードの集合である。例えば、図２の例において、除外ノード検出部００２Ｃ２ｂにより、変数ノードｂ３、ｂ５がチェックノードｃ２における除外ノードとされた場合には、Ｅ（２）は、｛ｂ３，ｂ５｝となる。また、＼Ｅ（ｍ）∪ｎは、Ｅ（ｍ）に含まれる変数ノードと変数ノードｂｎを含まない差集合である。
【００５４】
復号方式が、通常のｍｉｎ−ｓｕｍ復号の場合は、通常モードの算出式は、数４に示す算出式で定義される。この数４に示す算出式は、外部値比αｍｎを求める際に通常用いられる算出式である。
【数４】
0005765281.tif 000005
ここで、Πは、総積記号であり、Ａ（ｍ）は、チェックノードｃｍに接続する変数ノードの集合、＼ｎは、変数ノードｂｎを含まない差集合である。また、関数ｓｉｇｎ（ｘ）は、数２で定義したシグネチャ関数、ｍｉｎ│βｍｎ’│は、絶対値│βｍｎ’│の最小値、である。
【００５５】
通常のｍｉｎ−ｓｕｍ復号の場合における除外モードの算出式は、数５に示す算出式で定義される。この数５に示す算出式は、本発明特有の算出式である。
【数５】
0005765281.tif 000006
ここで、Πは、総積記号であり、Ａ（ｍ）は、チェックノードｃｍに接続する変数ノードの集合、＼ｎは、変数ノードｂｎを含まない差集合である。また、関数ｓｉｇｎ（ｘ）は、数２で定義したシグネチャ関数、ｍｉｎ│βｍｎ’│は、絶対値│βｍｎ’│の最小値、である。また、Ｅ（ｍ）は、チェックノードｃｍに接続する変数ノードのうちで、除外ノード検出部００２Ｃ２ｂにより除外ノードとされた変数ノードの集合、＼Ｅ（ｍ）∪ｎは、Ｅ（ｍ）に含まれる変数ノードと変数ノードｂｎを含まない差集合、である。
【００５６】
復号方式が、正規ｍｉｎ−ｓｕｍ復号の場合は、通常モードの算出式は、数６に示す算出式で定義される。この数６に示す算出式は、外部値比αｍｎを求める際に通常用いられる算出式である。
【数６】
0005765281.tif 000007
ここで、Πは、総積記号であり、Ａ（ｍ）は、チェックノードｃｍに接続する変数ノードの集合、＼ｎは、変数ノードｂｎを含まない差集合である。また、関数ｓｉｇｎ（ｘ）は、数２で定義したシグネチャ関数、ａは、正規化定数、ｍｉｎ│βｍｎ’│は、絶対値│βｍｎ’│の最小値、である。
【００５７】
正規ｍｉｎ−ｓｕｍ復号の場合における除外モードの算出式は、数７に示す算出式で定義される。この数７に示す算出式は、本発明特有の算出式である。
【数７】
0005765281.tif 000008
ここで、Πは、総積記号であり、Ａ（ｍ）は、チェックノードｃｍに接続する変数ノードの集合、＼ｎは、変数ノードｂｎを含まない差集合である。また、関数ｓｉｇｎ（ｘ）は、数２で定義したシグネチャ関数、ｍｉｎ│βｍｎ’│は、絶対値│βｍｎ’│の最小値、である。また、Ｅ（ｍ）は、チェックノードｃｍに接続する変数ノードのうちで、除外ノード検出部００２Ｃ２ｂにより除外ノードとされた変数ノードの集合、＼Ｅ（ｍ）∪ｎは、Ｅ（ｍ）に含まれる変数ノードと変数ノードｂｎを含まない差集合、である。
【００５８】
数３、数５、数７で定義される除外モードの算出式は、Ｅ（ｍ）＝０又はＥ（ｍ）＝｛ｂｎ｝の場合、すなわち、チェックノードｃｍに接続する変数ノードの中に、チェックノードｃｍにおける除外ノードが存在しない場合、又は、チェックノードｃｍにおける除外ノードが外部値比αｍｎの送信先である変数ノードｂｎだけの場合には、Ｅ（ｍ）∪ｎ＝｛ｂｎ｝であることから、Ａ（ｍ）＼Ｅ（ｍ）∪ｎ＝Ａ（ｍ）＼ｎとなり、それぞれ、数２、数４、数６で定義される通常モードの算出式と等しくなる。
【００５９】
数３、数５、数７でそれぞれ定義される除外モードの算出式は、総和Σ、又は、事前値比βｍｎ’の絶対値│βｍｎ’│の最小値を演算する際に、チェックノードｃｍに接続する変数ノードのうちで、除外ノード検出部００２Ｃ２ｂにより除外ノードとされた変数ノードを除外して演算するように定義したものである。このように定義することで、除外ノードにおける低信頼度が他のノードに伝搬することを防ぐことが可能となる。このいわゆる誤り伝搬を防止することで、より少ない繰り返し回数でパリティ検査条件を満たすことから、効率的な復号処理を実現することが可能となる。
【００６０】
なお、記憶部００２Ｃ１は、復号方式に応じて対応する通常モードと除外モードの算出式のペアを格納する。複数の復号方式を切替可能な場合は、記憶部００２Ｃ１は、それらの復号方式に対応する通常モードと除外モードの算出式のペアをそれぞれ格納する。
【００６１】
図１（ｂ）に戻り、変数ノード処理部００２Ｃ２ｄは、チェックノード処理部００２Ｃ２ｃから入力された外部値比αｍｎと低信頼度ノード検出部００２Ｃ２ａから入力された対数尤度比λｎとに基づいて、上述の数１に示す算出式から事前値比βｍｎを算出する。そして、チェックノード処理部００２Ｃ２ｃと、低信頼度ノード検出部００２Ｃ２ａと、ビット推定部００２Ｃ２ｅとへ算出した事前値比βｍｎを出力する。なお、数１に示す事前値比βｍｎの算出式は通常の算出式と同じである。
【００６２】
ビット推定部００２Ｃ２ｅは、チェックノード処理部００２Ｃ２ｃから入力される外部値比αｍｎと変数ノード処理部００２Ｃ２ｄから入力される事前値比βｍｎとに基づいて、推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を決定する。具体的には、数８に示す算出式により事後確率比Ｌｎを算出し、算出した事後確率比ＬｎがＬｎ＞０ならば、推定ビット∧ｙｎ＝０、Ｌｎ＜０ならば、推定ビット∧ｙｎ＝１とすることで推定ビット∧ｙｎを決定する。そして、ビット推定部００２Ｃ２ｅは、決定した推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を判定部００２Ｃ２ｇと推定ビット出力部００２Ｃ２ｈへ出力する。
【数８】
0005765281.tif 000009
ここで、Σは、総和記号であり、Ｂ（ｎ）は、変数ノードｂｎに接続するチェックノードの集合である。
【００６３】
繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１を備え、カウンタＣ１のカウンタ値ｉに基づいて、基本復号処理の繰り返し回数ｒが、予め設定されている繰り返し回数Ｒ１とＲ２に達したか否かを判定し、判定結果をチェックノード処理部００２Ｃ２ｃと推定ビット出力部００２Ｃ２ｈへ通知する。
【００６４】
カウンタＣ１は、基本復号処理の繰り返し回数を管理するためのカウンタで、基本復号処理が繰り返されるたびに、繰り返し回数判定部００２Ｃ２ｆによりインクリメントされる。なお、カウンタＣ１の初期設定値は”１”である。
【００６５】
判定部００２Ｃ２ｇは、ビット推定部００２Ｃ２ｅから入力される推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）がパリティ検査条件（∧ｙ１，∧ｙ２，…，∧ｙＮ）ＨＭＮＴ＝０を満たすか否かを判定する。ここで、ＨＭＮＴはＨＭＮの転置行列である。
【００６６】
推定ビット出力部００２Ｃ２ｈは、判定部００２Ｃ２ｇにより推定ビット∧ｙｎがパリティ検査条件を満たすと判定された場合は、ビット推定部００２Ｃ２ｅから入力された推定ビット∧ｙｎを出力する。また、繰り返し回数判定部００２Ｃ２ｆから基本復号処理の繰り返し回数ｒが最大繰り返し回数Ｒ２に達したとの判定結果が通知された場合には、パリティ検査条件を満たしていないと判定された場合であっても、推定ビット∧ｙｎを出力する。そして、復号処理部００２Ｃは、次の受信データＦｋ＋１をフレームデータ記憶部００２Ｃ１ａから読み出して、受信データＦｋ＋１に対する復号処理を開始し、全ての受信データＦｋ（ｋ＝１，２，…，Ｋ）に対して、判定部００２Ｃ２ｇが推定ビット∧ｙｎを出力した時点で、復号処理を終了する。
【００６７】
ここで、図２と図５と図６とを参照して、具体例に基づいて、除外モードのチェックノード処理について説明する。図６は、初回以外の基本復号処理における除外モードのチェックノード処理を説明するための図である。
【００６８】
まず、図２と図５を参照して、初回の基本復号処理における除外モードのチェックノード処理について説明する。図２（ａ）は、パリティ検査行列ＨＭＮの例を示す図である。図２（ｂ）は、図２（ａ）に例示するパリティ検査行列を２部グラフ（タナーグラフ）で表現した図である。図５（ａ）と（ｂ）と（ｃ）は、初回の基本復号処理における除外モードのチェックノード処理を説明するための図である。
【００６９】
例えば、パリティ検査行列ＨＭＮが、図２（ａ）に例示するパリティ検査行列で、各変数ノード（処理対象の受信データＦｋの各ビット）に対応する対数尤度比λｎが、図５（ａ）に示すような値であったとする。また、信頼度閾値γ１＝０．３とする。この場合、低信頼度ノード検出部００２Ｃ２ａは、図５（ａ）に示すように、各変数ノードｂｎの信頼度│βｍｎ│として、対応する対数尤度比λｎの絶対値である│λｎ│を算出する。
【００７０】
そして、信頼度閾値γ１＝０．３であることから、低信頼度ノード検出部００２Ｃ２ａは、対数尤度比λｎの絶対値│λｎ│が│λｎ│≦０．３を満たす変数ノードとして、変数ノードｂ１とｂ５を検出する。そして、低信頼度ノード検出部００２Ｃ２ａは、パリティ検査行列ＨＭＮを参照して、検出した変数ノードｂ１に接続するチェックノードｃ１とｃ３と、検出した変数ノードｂ５に接続するチェックノードｃ１とｃ２と、を特定し、接続関係にあるチェックノードと変数ノードのインデックス番号の組（１，１）、（３，１）、（１，５）、（２，５）を除外ノード検出部００２Ｃ２ｂへ出力する。
【００７１】
そして、低信頼度ノード検出部００２Ｃ２ａからチェックノードと変数ノードのインデックス番号の組（１，１）、（３，１）、（１，５）、（２，５）が入力されると、除外ノード検出部００２Ｃ２ｂは、変数ノードｂ１とｂ５を除外ノード（除外ビット）として、低信頼度ノード検出部００２Ｃ２ａから入力された組（１，１）、（３，１）、（１，５）、（２，５）をチェックノード処理部００２Ｃ２ｃへ出力する。
【００７２】
そして、チェックノード処理部００２Ｃ２ｃは、除外ノード検出部００２Ｃ２ｂから除外ノードのインデックス番号とその除外ノードに接続するチェックノードのインデックス番号との組（１，１）、（３，１）、（１，５）、（２，５）が入力されると、初回の基本復号処理であることから、除外モードの算出式を用い、外部値比αｍｎを算出する。
【００７３】
例えば、２部グラフにおいてチェックノードｃ１から変数ノードｂ１へ送信する外部値比である外部値比α１１を算出する場合について説明する。図５（ｂ）に示すように、変数ノードｂ１、ｂ４、ｂ５がチェックノードｃ１に接続し、変数ノードｂ１とｂ５は、上述したようにチェックノードｃ１における除外ノードである。したがって、除外モードの算出式である数３、数５、数７におけるＡ（１）＼Ｅ（１）∪１は、チェックノードｃ１に接続する変数ノードの集合｛ｂ１，ｂ４，ｂ５｝から、チェックノードｃ１における除外ノードの集合｛ｂ１，ｂ５｝と送信先の変数ノードｂ１との和集合｛ｂ１，ｂ５｝を除いた差集合｛ｂ４｝となる。
【００７４】
この場合、図５（ｂ）に示すように、送信先の変数ノードｂ１の他に変数ノードｂ５を除いた変数ノードｂ４から送られてくる事前値比β１４のみに基づいて、除外モードの算出式である数３、数５、数７におけるΣｆ（│βｍｎ’│）又はｍｉｎ│βｍｎ’│を演算する。そして、この様に算出した外部値比α１１を送信先の変数ノードｂ１へ送信する。すなわち、変数ノード処理部００２Ｃ２ｄへ出力する。
【００７５】
また、例えば、２部グラフにおいてチェックノードｃ２から変数ノードｂ２へ送信する外部値比である外部値比α２２を算出する場合は、図５（ｃ）に示すように、変数ノードｂ２、ｂ３、ｂ５、ｂ６がチェックノードｃ２に接続し、変数ノードｂ５は、上述したようにチェックノードｃ２における除外ノードである。したがって、除外モードの算出式である数３、数５、数７におけるＡ（２）＼Ｅ（２）∪２は、チェックノードｃ２に接続する変数ノードの集合｛ｂ２，ｂ３，ｂ５，ｂ６｝から、チェックノードｃ２における除外ノードの集合｛ｂ５｝と送信先の変数ノードｂ２との和集合｛ｂ２，ｂ５｝を除いた差集合｛ｂ３，ｂ６｝となる。
【００７６】
この場合、図５（ｃ）に示すように、送信先の変数ノードｂ２の他に変数ノードｂ５を除いた、変数ノードｂ３とｂ６から送られてくる事前値比β２３とβ２６とに基づいて、除外モードの算出式である数３、数５、数７におけるΣｆ（│βｍｎ’│）又はｍｉｎ│βｍｎ’│を演算する。そして、この様に算出した外部値比α２２を、接続先の変数ノードｂ２へ送信する。すなわち、変数ノード処理部００２Ｃ２ｄへ出力する。
【００７７】
次に、図２と図６を参照して、初回以外の基本復号処理における除外モードのチェックノード処理について説明する。図６（ａ）乃至（ｄ）は、初回以外の基本復号処理における除外モードのチェックノード処理を説明するための図である。
【００７８】
例えば、パリティ検査行列ＨＭＮが、図２（ａ）に例示するパリティ検査行列である場合、各変数ノードｂｎ（ｎ＝１，２，…，８）から接続先のチェックノードへ送信される事前値比βｍｎは、図６（ｂ）に示すようになる。例えば、変数ノードｂ２はチェックノードｃ２とｃ３とｃ４と接続されていることから、変数ノードｂ２は、チェックノードｃ２に事前値比β２２を、チェックノードｃ３に事前値比β３２を、チェックノードｃ４に事前値比β４２を送信する。
【００７９】
ここで、図６（ｂ）に示す太線で囲まれた事前値比βｍｎの絶対値│βｍｎ│が、信頼度閾値γ１以下であるとする。この場合、低信頼度ノード検出部００２Ｃ２ａは、太線で囲まれた事前値比βｍｎのインデックス番号ｍとｎとの組（３，２）、（４，２）、（２，３）、（２，５）、（３，７）を除外ノード検出部００２Ｃ２ｂへ出力する。
【００８０】
そして、低信頼度ノード検出部００２Ｃ２ａから組（３，２）、（４，２）、（２，３）、（２，５）、（３，７）が入力されると、除外ノード検出部００２Ｃ２ｂは、変数ノードｂ２とｂ３とｂ５とｂ７をそれぞれ、図６（ｃ）に示すように、チェックノードｃ３とｃ４における除外ノード（除外ビット）、チェックノードｃ２における除外ノード、チェックノードｃ２における除外ノード、チェックノードｃ３における除外ノード、として、組（３，２）、（４，２）、（２，３）、（２，５）、（３，７）をチェックノード処理部００２Ｃ２ｃへ出力する。
【００８１】
そして、チェックノード処理部００２Ｃ２ｃは、基本復号処理の繰り返し回数ｒがｒ≦Ｒ１の場合は、除外モードの算出式を用い、外部値比αｍｎを算出する。
【００８２】
例えば、２部グラフにおいてチェックノードｃ３から変数ノードｂ１へ送信する外部値比である外部値比α３１を算出する場合について説明する。図６（ｄ）に示すように、変数ノードｂ１、ｂ２、ｂ４、ｂ６、ｂ７がチェックノードｃ３に接続し、変数ノードｂ２とｂ７は、上述したようにチェックノードｃ３における除外ノードである。したがって、除外モードの算出式である数３、数５、数７におけるＡ（３）＼Ｅ（３）∪１は、チェックノードｃ３に接続する変数ノードの集合｛ｂ１，ｂ２，ｂ４，ｂ６，ｂ７｝から、チェックノードｃ３における除外ノードの集合｛ｂ２，ｂ７｝と送信先の変数ノードｂ１との和集合｛ｂ１，ｂ２，ｂ７｝を除いた差集合｛ｂ４，ｂ６｝となる。
【００８３】
この場合、図６（ｄ）に示すように、送信先の変数ノードｂ１の他に変数ノードｂ２とｂ７を除いた変数ノードｂ４とｂ６から送られてくる事前値比β３４とβ３６とに基づいて、除外モードの算出式である数３、数５、数７におけるΣｆ（│βｍｎ’│）又はｍｉｎ│βｍｎ’│を演算する。そして、この様に算出した外部値比α３１を送信先の変数ノードｂ１へ送信する。すなわち、変数ノード処理部００２Ｃ２ｄへ出力する。
【００８４】
一方、基本復号処理の繰り返し回数ｒがＲ１＜ｒの場合は、チェックノード処理部００２Ｃ２ｃは、通常モードの算出式を用いて、外部値比αｍｎを算出し、算出した外部値比αｍｎを変数ノード処理部００２Ｃ２ｄへ出力する。
【００８５】
次に、図７を参照して、本実施形態における復号処理のフローについて説明する。なお、各受信データＦｋ（ｋ＝１，２，…，Ｋ）における復号処理は同じであることから、受信データＦ１における復号処理について以下説明する。また、この復号処理は、復号処理部００２Ｃ２が、受信データＦ１をフレームデータ記憶部００２Ｃ１ａから読み出したことをトリガとして開始され、最終受信データＦＫに対する処理が完了した時点で終了する。
【００８６】
符号化部００１ＡによりＬＤＰＣ符号により符号化された情報データＲは、フレームデータ（符号語）Ｆｋ（ｋ＝１，２，…，Ｋ）ごとに変調部００１Ｂへ順次出力され、変調部００１Ｂに順次入力されたフレームデータＦｋは、変調部００１Ｂにより所定の信号方式へ順次変調される。変調されたフレームデータＦｋは、無線送信装置００１の無線通信部００１Ｃにより増幅され通信路ＣＨへ順次出力される。
【００８７】
通信路ＣＨにおいて、ノイズ成分が付加されたフレームデータＦｋは、無線受信装置００２の無線通信部００２Ａにより順次受信され、復調部００２Ｂへ順次入力される。復調部００２Ｂに順次入力されたフレームデータＦｋは、復調部００２Ｂにより順次復調され、復調後のフレームデータＦｋは受信データＦｋとして復号部００２Ｃに順次入力され、フレームデータ記憶部００２Ｃ１ａに格納される。そして、復号処理部００２Ｃ２は、フレームデータ記憶部００２Ｃ１ａから、復号処理するために受信データＦ１を読み出す。
【００８８】
繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１のカウンタ値ｉを初期化する（ステップＳ１０１）。
【００８９】
そして、低信頼度ノード検出部００２Ｃ２ａは、事前値比βｍｎ（又は、対数尤度比λｎ）に基づいて各変数ノードｂｎの信頼度、すなわち、事前値比βｍｎの絶対値│βｍｎ│（又は、対数尤度比λｎの絶対値│λｎ│）を算出し、算出した信頼度が信頼度閾値γ１以下である変数ノードを各チェックノードｃｍに対して検出する（ステップＳ１０２）。具体的には、カウンタＣ１のカウンタ値ｉ＝１の場合、すなわち、初回の基本復号処理である場合には、低信頼度ノード検出部００２Ｃ２ａは、絶対値│λｎ│が信頼度閾値γ１以下である対数尤度比λｎに対応する変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）を除外ノード検出部００２Ｃｂへ出力する。初回以外の基本復号処理である場合には、低信頼度ノード検出部００２Ｃ２ａは、信頼度閾値γ１以下である絶対値│βｍｎ│のインデックス番号ｍとｎとの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力する。
【００９０】
そして、除外ノード検出部００２Ｃ２ｂは、低信頼度ノード検出部００２Ｃ２ａから組（ｍ，ｎ）が入力されると、変数ノードｂｎをチェックノードｃｍの除外ノードとして、組（ｍ，ｎ）をチェックノード処理部００２Ｃ２ｃへ出力する（ステップＳ１０３）。例えば、組（２，３）が低信頼度ノード検出部００２Ｃ２ａから入力された場合は、変数ノードｂ３はチェックノードｃ２における除外ノードとなる。
【００９１】
そして、チェックノード処理部００２Ｃ２ｃは、除外モードの算出式を用いて外部値比αｍｎを算出し、算出した外部値比αｍｎを変数ノード処理部００２Ｃ２ｄとビット推定部００２Ｃ２ｅへ出力する（ステップＳ１０４）。変数ノード処理部００２Ｃ２ｄは、ステップＳ１０４の処理でチェックノード処理部００２Ｃ２ｃから入力された外部値比αｍｎと対数尤度比λｎとに基づいて、事前値比βｍｎを算出し、算出した事前値比βｍｎを低信頼度ノード検出部００２Ｃ２ａとチェックノード処理部００２Ｃ２ｃとビット推定部００２Ｃ２ｅへ出力する（ステップＳ１０５）。
【００９２】
そして、ビット推定部００２Ｃ２ｅは、ステップＳ１０４の処理でチェックノード処理部００２Ｃ２ｃから入力された外部値比αｍｎとステップＳ１０５の処理で変数ノード処理部００２Ｃ２ｄから入力された事前値比βｍｎとに基づいて、推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を決定し、決定した推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を判定部００２Ｃ２ｇと推定ビット出力部００２Ｃ２ｈへ出力する（ステップＳ１０６）。そして、判定部００２Ｃ２ｇは、ステップＳ１０６の処理でビット推定部００２Ｃ２ｅから入力された推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）が、パリティ検査条件を充足するか否かを判定する（ステップＳ１０７）。
【００９３】
推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）が、パリティ検査条件を充足すると判定された場合には（ステップＳ１０７；ＹＥＳ）、推定ビット出力部００２Ｃ２ｈは、推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を出力する（ステップＳ１１７）。そして、復号処理部００２Ｃ２は、次の受信データＦ２を読み出して、受信データＦ２に対する復号処理を開始する。
【００９４】
一方、推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）が、パリティ検査条件を充足しないと判定された場合には（ステップＳ１０７；ＮＯ）、繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１のカウンタ値ｉがｉ＝Ｒ１であるか否かを判定することで、基本復号処理の繰り返し回数ｒ＝Ｒ１か否かを判定する（ステップＳ１０８）。
【００９５】
基本復号処理の繰り返し回数ｒが設定値Ｒ１にまだ達していないと判定した場合には（ステップＳ１０８；ＮＯ）、繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１をインクリメントし（ステップＳ１０９）、処理はステップＳ１０２の処理へ戻り、前述の処理を繰り返す。
【００９６】
一方、基本復号処理の繰り返し回数ｒ＝Ｒ１であると判定した場合には（ステップＳ１０８；ＹＥＳ）、繰り返し回数判定部００２Ｃ２ｆは、さらに、カウンタＣ１のカウンタ値ｉがｉ＝Ｒ２であるか否かを判定することで、基本復号処理の繰り返し回数ｒが最大繰り返し回数Ｒ２に達したか否かを判定する（ステップＳ１１０）。
【００９７】
基本復号処理の繰り返し回数ｒが最大繰り返し回数Ｒ２に達したと判定された場合には（ステップＳ１１０；ＹＥＳ）、推定ビット出力部００２Ｃ２ｈは、ステップＳ１０６の処理でビット推定部００２Ｃ２ｅから入力された推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を出力する（ステップＳ１１７）。そして、復号処理部００２Ｃ２は、次の受信データＦ２を読み出して、受信データＦ２に対する復号処理を開始する。
【００９８】
一方、基本復号処理の繰り返し回数ｒがまだ最大繰り返し回数Ｒ２に達していないと判定された場合には（ステップＳ１１０；ＮＯ）、チェックノード処理部００２Ｃ２ｃは、通常モードの算出式を用いて、ステップＳ１０５の処理で変数ノード処理部００２Ｃ２ｄから入力された事前値比βｍｎに基づいて、外部値比αｍｎを算出し、算出した外部値比αｍｎを変数ノード処理部００２Ｃ２ｄとビット推定部００２Ｃ２ｅへ出力する（ステップＳ１１１）。
【００９９】
そして、変数ノード処理部００２Ｃ２ｄは、ステップＳ１１１の処理でチェックノード処理部００２Ｃ２ｃから入力された外部値比αｍｎと対数尤度比λｎとに基づいて、事前値比βｍｎを算出し、算出したβｍｎを低信頼度ノード検出部００２Ｃ２ａとチェックノード処理部００２Ｃ２ｃとビット推定部００２Ｃ２ｅへ出力する（ステップＳ１１２）。
【０１００】
そして、ビット推定部００２Ｃ２ｅは、ステップＳ１１１の処理でチェックノード処理部００２Ｃ２ｃから入力された外部値比αｍｎとステップＳ１１２の処理で変数ノード処理部００２Ｃ２ｄから入力された事前値比βｍｎとに基づいて、推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を決定し、決定した推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を判定部００２Ｃ２ｇと推定ビット出力部００２Ｃ２ｈへ出力する（ステップＳ１１３）。
【０１０１】
そして、判定部００２Ｃ２ｇは、ビット推定部００２Ｃ２ｅから入力された推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）が、パリティ検査条件を充足するか否かを判定する（ステップＳ１１４）。推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）が、パリティ検査条件を充足すると判定された場合には（ステップＳ１１４；ＹＥＳ）、推定ビット出力部００２Ｃ２ｈは、ステップＳ１１３の処理でビット推定部００２Ｃ２ｅから入力された推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を出力する（ステップＳ１１７）。そして、復号処理部００２Ｃ２は、次の受信データＦ２を読み出して、受信データＦ２に対する復号処理を開始する。
【０１０２】
一方、推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）が、パリティ検査条件を充足しないと判定された場合には（ステップＳ１１４；ＮＯ）、繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１のカウンタ値ｉがｉ＝Ｒ２であるか否かを判定することで、基本復号処理の繰り返し回数ｒが最大繰り返し回数Ｒ２に達したか否かを判定する（ステップＳ１１５）。
【０１０３】
基本復号処理の繰り返し回数ｒが最大繰り返し回数Ｒ２にまだ達していないと判定した場合には（ステップＳ１１５；ＮＯ）、繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１をインクリメントし（ステップＳ１１６）、処理はステップＳ１１１の処理へ戻り、前述の処理を繰り返す。
【０１０４】
一方、基本復号処理の繰り返し回数ｒが最大繰り返し回数Ｒ２に達したと判定された場合には（ステップＳ１１５；ＹＥＳ）、推定ビット出力部００２Ｃ２ｈは、ステップＳ１１３の処理でビット推定部００２Ｃ２ｅから入力された推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を出力する（ステップＳ１１７）。そして、復号処理部００２Ｃ２は、次の受信データＦ２を読み出して、受信データＦ２に対する復号処理を開始する。
【０１０５】
実施形態１によれば、低信頼度ノード検出部００２Ｃ２ａは、初回の基本復号処理の際には、事前値比βｍｎの初期値である対数尤度比λｎの絶対値│λｎ│を、各チェックノードｃｍに接続する変数ノードの信頼度として算出し、絶対値│λｎ│が信頼度閾値γ１以下である対数尤度比λｎに対応する変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂを通してチェックノード検出部００２Ｃ２ｃへ出力した。低信頼度ノード検出部００２Ｃ２ａは、初回以外の基本復号処理の際には、変数ノード処理部００２Ｃ２ｄにより算出された事前値比βｍｎの絶対値│βｍｎ│を、各チェックノードｃｍに接続する変数ノードの信頼度として算出し、絶対値│βｍｎ│が信頼度閾値γ１以下である事前値比βｍｎのインデックス番号ｍとｎとの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂを通してチェックノード検出部００２Ｃ２ｃへ出力した。そして、チェックノード処理部００２Ｃ２ｃは、基本復号処理の繰り返し回数ｒがｒ≦Ｒ１の場合には、数３、数５、数７で定義される除外モードの算出式を用いて、外部値比αｍｎを算出した。除外モードの算出式は、総和Σ、又は、事前値比βｍｎ’の絶対値│βｍｎ’│の最小値を演算する際に、チェックノードｃｍに接続する変数ノードのうちで、除外ノード検出部００２Ｃ２ｂにより除外ノードとされた変数ノードを除外して演算するように定義したものである。このように構成することで、除外ノードにおける低信頼度が他のノードに伝搬することを防ぐことが可能となる。このいわゆる誤り伝搬を防止することで、より少ない繰り返し回数でパリティ検査条件を満たすことから、効率的な復号処理を実現することが可能となる。
【０１０６】
（実施形態２）
実施形態１においては、除外ノード検出部００２Ｃ２ｂは、低信頼度ノード検出部００２Ｃ２ａから入力された変数ノードｂｎのインデックス番号ｎとチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）を、そのままチェックノード処理部００２Ｃ２ｃへ出力した。
【０１０７】
本実施形態においては、除外ノード検出部００２Ｃ２ｂは、後述するテーブル記憶部００２Ｃ１ｂに格納されている列重み情報テーブルＴ１を参照して、パリティ検査行列ＨＭＮの各列における列重み、すなわち、各列の成分１の数が予め設定されている列重み閾値Ｗ以下の列に対応する変数ノード（処理対象の受信データＦｋのビット）を特定する。そして、低信頼度ノード検出部００２Ｃ２ａから入力された組（ｍ，ｎ）のうちで、除外ノード検出部００２Ｃ２ｂが特定した列重み閾値Ｗ以下の列に対応する変数ノードのインデックス番号を含む組を、チェックノード処理部００２Ｃ２ｃへ出力する。つまり、除外ノードを誤りが起きやすい列重みが低い列に対応する変数ノードに限定する。
【０１０８】
本実施形態における、デジタル通信システム１の基本的な構成は、実施形態１の場合と同じである。但し、図８に示すように、復号部００２Ｃの構成が、実施形態１とでは異なり、記憶部００２Ｃ１は、さらに、テーブル記憶部００２Ｃ１ｂとして機能する。また、上述したように、除外ノード検出部００２Ｃ２ｂが果たす役割が実施形態１とでは若干異なる。
【０１０９】
テーブル記憶部００２Ｃ１ｂは、図９（ａ）と（ｂ）に例示する列重み情報テーブルＴ１を格納する。図９（ａ）と（ｂ）に例示する列重み情報テーブルＴ１は、パリティ検査行列ＨＭＮが図２（ａ）に示すような４行８列のパリティ検査行列であり、列重み閾値Ｗ＝２の場合の列重み情報テーブルＴ１の例である。図９（ａ）に示す列重み情報テーブルＴ１は、各列に対応する変数ノード（処理対象の受信データＦｋのビット）ｂｎ（ｎ＝１，２，…，８）と、その列の列重みと、フラグと、が対応付けられており、除外ノード検出部００２Ｃ２ｂは、フラグ欄を参照することで、列重み閾値Ｗ以下の列に対応する変数ノード（処理対象の受信データＦｋのビット）を特定することが可能となる。また、図９（ｂ）に示す列重み情報テーブルＴ１は、列重み閾値Ｗ以下の列に対応する変数ノード（処理対象の受信データＦｋのビット）の一覧を格納している。なお、列重み情報テーブルＴ１は、図９（ａ）と（ｂ）に例示する構成に限定されるものではなく、除外ノード検出部００２Ｃ２ｂが、列重み閾値Ｗ以下の列に対応する変数ノード（処理対象の受信データＦｋのビット）を特定可能であればよい。また、除外ノード検出部００２Ｃ２ｂが、パリティ検査行列ＨＭＮから直接列重み閾値Ｗ以下の列に対応する変数ノードを特定するように構成してもよい。
【０１１０】
除外ノード検出部００２Ｃ２ｂは、テーブル記憶部００２Ｃ１ｂに格納されている列重み情報テーブルＴ１を参照して、列重みが列重み閾値Ｗ以下のパリティ検査行列ＨＭＮの列に対応する変数ノード（処理対象の受信データＦｋのビット）を特定する。そして、低信頼度ノード検出部００２Ｃ２ａから入力された組（ｍ，ｎ）のうちで、除外ノード検出部００２Ｃ２ｂが特定した列重み閾値Ｗ以下の列に対応する変数ノード（処理対象の受信データＦｋのビット）との組を、チェックノード処理部００２Ｃ２ｃへ出力する。例えば、低信頼度ノード検出部００２Ｃ２ａから入力された組が（３，４）と（３，７）であり、除外ノード検出部００２Ｃ２ｂが特定した列重み閾値Ｗ以下の列に対応する変数ノードが変数ノードｂ５とｂ７であった場合には、除外ノード検出部００２Ｃ２ｂは、変数ノードｂ７をチェックノードｃ３における除外ノードとして組（３，７）をチェックノード処理部００２Ｃ２ｃへ出力する。
【０１１１】
ここで、図２と図９と図１０を参照して、本実施形態における、初回の基本復号処理における除外モードのチェックノード処理について説明する。図１０（ａ）と（ｂ）は、パリティ検査行列ＨＭＮが図２（ａ）に示すような４行８列のパリティ検査行列であり、信頼度閾値γ１＝０．３、列重み閾値Ｗ＝２の場合の除外モードのチェックノード処理を説明するための図である。
【０１１２】
低信頼度ノード検出部００２Ｃ２ａは、初回の基本復号処理では、対数尤度比λｎの絶対値│λｎ│を各変数ノードの信頼度として算出する。対数尤度比λｎの値が、図１０（ａ）に示すような値であったとすると、低信頼度ノード検出部００２Ｃ２ａは、信頼度が信頼度閾値γ１＝０．３以下の変数ノードとして、変数ノードｂ１、ｂ４、ｂ５を検出する。変数ノードｂ１は、チェックノードｃ１とｃ３に、変数ノードｂ４は、チェックノードｃ１とｃ３とｃ４に、変数ノードｂ５は、チェックノードｃ１とｃ２に、それぞれ接続することから、低信頼度ノード検出部００２Ｃ２ａは、組（１，１）、（３，１）、（１，４）、（３，４）、（４，４）、（１，５）、（２，５）を、除外ノード検出部００２Ｃ２ｂへ出力する。
【０１１３】
除外ノード検出部００２Ｃ２ｂは、テーブル記憶部００２Ｃ１ｂに格納されている列重み情報テーブルＴ１を参照して、列重み閾値Ｗ以下のパリティ検査行列ＨＭＮの列を特定する。パリティ検査行列ＨＭＮが図２（ａ）に示すような４行８列のパリティ検査行列であるときは、図１０（ａ）に示すように、各列の列重みは第１列に対応する変数ノードｂ１から順番に、２、３、２、３、２、２、２、１である。この場合、列重み閾値Ｗ＝２であることから、除外ノード検出部００２Ｃ２ｂは、列重み閾値Ｗ以下の列に対応する変数ノードとして、変数ノードｂ１、ｂ３、ｂ５乃至ｂ８を特定する。
【０１１４】
そして、除外ノード検出部００２Ｃ２ｂは、低信頼度ノード検出部００２Ｃ２ａから入力された組（１，１）、（３，１）、（１，４）、（３，４）、（４，４）、（１，５）、（２，５）のうちで、除外ノード検出部００２Ｃ２ｂが特定した変数ノードのインデックス番号を含む組（１，１）、（３，１）、（１，５）、（２，５）を、チェックノード処理部００２Ｃ２ｃへ出力する。すなわち、変数ノードｂ１をチェックノードｃ１とｃ３の除外ノードとして、変数ノードｂ５をチェックノードｃ１とｃ２の除外ノードとして、チェックノード処理部００２Ｃ２ｃへ通知する。
【０１１５】
チェックノード処理部００２Ｃ２ｃは、初回の基本復号処理であることから、除外モードの算出式を用いて、外部値比αｍｎを算出する。例えば、２部グラフにおいて、チェックノードｃ１から変数ノードｂ１へ送信される外部値比である外部値比α１１を算出する際には、上述したように変数ノードｂ５はチェックノードｃ１における除外ノードであることから、変数ノードｂ５を除外して総和Σ、又は、事前値比βｍｎ’の絶対値│βｍｎ’│の最小値を演算する。図１０（ｂ）に示すように、変数ノードｂ１、ｂ４、ｂ５がチェックノードｃ１に接続することから、除外モードの算出式である数３、数５、数７におけるＡ（１）＼Ｅ（１）∪１は、チェックノードｃ１に接続する変数ノードの集合｛ｂ１，ｂ４，ｂ５｝から、チェックノードｃ１における除外ノードの集合｛ｂ５｝と送信先の変数ノードｂ１との和集合｛ｂ１，ｂ５｝を除いた差集合｛ｂ４｝となる。
【０１１６】
この場合、図１０（ｂ）に示すように、送信先の変数ノードｂ１の他に変数ノードｂ５を除いた変数ノードｂ４から送られてくる事前値比β１４のみに基づいて、除外モードの算出式である数３、数５、数７におけるΣｆ（│βｍｎ’│）又はｍｉｎ│βｍｎ’│を演算する。そして、この様に算出した外部値比α１１を送信先の変数ノードｂ１へ送信する。すなわち、変数ノード処理部００２Ｃ２ｄへ出力する。
【０１１７】
次に、図２と図９と図１１を参照して、初回以外の基本復号処理における除外モードのチェックノード処理について説明する。図１１（ａ）と（ｂ）は、パリティ検査行列ＨＭＮが図２（ａ）に示すような４行８列のパリティ検査行列であり、信頼度閾値γ１＝０．３、列重み閾値Ｗ＝２の場合の除外モードのチェックノード処理を説明するための図である。
【０１１８】
パリティ検査行列ＨＭＮが、図２（ａ）に例示するパリティ検査行列である場合、各変数ノードｂｎ（ｎ＝１，２，…，８）から接続先のチェックノードへ送信される事前値比βｍｎは、図１１（ａ）に示すようになる。例えば、変数ノードｂ２はチェックノードｃ２とｃ３とｃ４と接続されていることから、変数ノードｂ２は、チェックノードｃ２に事前値比β２２を、チェックノードｃ３に事前値比β３２を、チェックノードｃ４に事前値比β４２を送信する。
【０１１９】
ここで、図１１（ａ）に示す太線で囲まれた事前値比βｍｎの絶対値│βｍｎ│が、信頼度閾値γ１以下であるとする。この場合、低信頼度ノード検出部００２Ｃ２ａは、太線で囲まれた事前値比βｍｎのインデックス番号ｍとｎとの組（３，２）、（４，２）、（２，３）、（２，５）、（３，７）を除外ノード検出部００２Ｃ２ｂへ出力する。
【０１２０】
そして、除外ノード検出部００２Ｃ２ｂは、テーブル記憶部００２Ｃ１ｂに格納されている列重み情報テーブルＴ１を参照して、列重み閾値Ｗ以下のパリティ検査行列ＨＭＮの列を特定する。パリティ検査行列ＨＭＮが図２（ａ）に示すような４行８列のパリティ検査行列であるときは、図１１（ａ）に示すように、各列の列重みは第１列に対応する変数ノードｂ１から順番に、２、３、２、３、２、２、２、１である。この場合、列重み閾値Ｗ＝２であることから、除外ノード検出部００２Ｃ２ｂは、列重み閾値Ｗ以下の列に対応する変数ノードとして、変数ノードｂ１、ｂ３、ｂ５乃至ｂ８を特定する。
【０１２１】
そして、除外ノード検出部００２Ｃ２ｂは、低信頼度ノード検出部００２Ｃ２ａから入力された組（３，２）、（４，２）、（２，３）、（２，５）、（３，７）のうちで、除外ノード検出部００２Ｃ２ｂが特定した変数ノードのインデックス番号を含む組（２，３）、（２，５）、（３，７）を、チェックノード処理部００２Ｃ２ｃへ出力する。すなわち、変数ノードｂ３をチェックノードｃ２の除外ノードとして、変数ノードｂ５をチェックノードｃ２の除外ノードとして、変数ノードｂ７をチェックノードｃ３の除外ノードとして、チェックノード処理部００２Ｃ２ｃへ通知する。
【０１２２】
そして、チェックノード処理部００２Ｃ２ｃは、基本復号処理の繰り返し回数ｒがｒ≦Ｒ１の場合は、除外モードの算出式を用い、外部値比αｍｎを算出する。
【０１２３】
例えば、２部グラフにおいてチェックノードｃ３から変数ノードｂ１へ送信する外部値比である外部値比α３１を算出する場合について説明する。図１１（ｂ）に示すように、変数ノードｂ１、ｂ２、ｂ４、ｂ６、ｂ７がチェックノードｃ３に接続し、変数ノードｂ７は、上述したようにチェックノードｃ３における除外ノードである。したがって、除外モードの算出式である数３、数５、数７におけるＡ（３）＼Ｅ（３）∪１は、チェックノードｃ３に接続する変数ノードの集合｛ｂ１，ｂ２，ｂ４，ｂ６，ｂ７｝から、チェックノードｃ３における除外ノードの集合｛ｂ７｝と送信先の変数ノードｂ１との和集合｛ｂ１，ｂ７｝を除いた差集合｛ｂ２，ｂ４，ｂ６｝となる。
【０１２４】
この場合、図１１（ｂ）に示すように、送信先の変数ノードｂ１の他に変数ノードｂ７を除いた変数ノードｂ２とｂ４とｂ６から送られてくる事前値比β３２とβ３４とβ３６とに基づいて、除外モードの算出式である数３、数５、数７におけるΣｆ（│βｍｎ’│）又はｍｉｎ│βｍｎ’│を演算する。そして、この様に算出した外部値比α３１を送信先の変数ノードｂ１へ送信する。すなわち、変数ノード処理部００２Ｃ２ｄへ出力する。
【０１２５】
一方、基本復号処理の繰り返し回数ｒがＲ１＜ｒの場合は、チェックノード処理部００２Ｃ２ｃは、通常モードの算出式を用いて、外部値比αｍｎを算出し、算出した外部値比αｍｎを変数ノード処理部００２Ｃ２ｄへ出力する。
【０１２６】
次に、図１２を参照して、本実施形態における復号処理のフローについて説明する。なお、各受信データＦｋ（ｋ＝１，２，…，Ｋ）における復号処理は同じであることから、受信データＦ１における復号処理について以下説明する。また、ステップＳ２０１以外の処理は実施形態１の場合と同じであることから、ステップＳ１０１乃至Ｓ１０４の処理について説明する。また、この復号処理は、復号処理部００２Ｃ２が、受信データＦ１をフレームデータ記憶部００２Ｃ１ａから読み出したことをトリガとして開始され、最終受信データＦＫに対する処理が完了した時点で終了する。
【０１２７】
符号化部００１ＡによりＬＤＰＣ符号により符号化された情報データＲは、フレームデータ（符号語）Ｆｋ（ｋ＝１，２，…，Ｋ）ごとに変調部００１Ｂへ順次出力され、変調部００１Ｂに順次入力されたフレームデータＦｋは、変調部００１Ｂにより所定の信号方式へ順次変調される。変調されたフレームデータＦｋは、無線送信装置００１の無線通信部００１Ｃにより増幅され通信路ＣＨへ順次出力される。
【０１２８】
通信路ＣＨにおいて、ノイズ成分が付加されたフレームデータＦｋは、無線受信装置００２の無線通信部００２Ａにより順次受信され、復調部００２Ｂへ順次入力される。復調部００２Ｂに順次入力されたフレームデータＦｋは、復調部００２Ｂにより順次復調され、復調後のフレームデータＦｋは受信データＦｋとして復号部００２Ｃに順次入力され、フレームデータ記憶部００２Ｃ１ａに格納される。そして、復号処理部００２Ｃ２は、フレームデータ記憶部００２Ｃ１ａから、復号処理するために受信データＦ１を読み出す。
【０１２９】
繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１のカウンタ値ｉを初期化する（ステップＳ１０１）。
【０１３０】
そして、低信頼度ノード検出部００２Ｃ２ａは、事前値比βｍｎ（又は、対数尤度比λｎ）に基づいて各変数ノードｂｎの信頼度、すなわち、事前値比βｍｎの絶対値│βｍｎ│（又は、対数尤度比λｎの絶対値│λｎ│）を算出し、算出した信頼度が信頼度閾値γ１以下である変数ノードを各チェックノードｃｍに対して検出する（ステップＳ１０２）。具体的には、カウンタＣ１のカウンタ値ｉ＝１の場合、すなわち、初回の基本復号処理である場合には、低信頼度ノード検出部００２Ｃ２ａは、絶対値│λｎ│が信頼度閾値γ１以下である対数尤度比λｎに対応する変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）を除外ノード検出部００２Ｃｂへ出力する。初回以外の基本復号処理である場合には、低信頼度ノード検出部００２Ｃ２ａは、絶対値│βｍｎ│が信頼度閾値γ１以下である事前値比βｍｎのインデックス番号ｍとｎとの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力する。
【０１３１】
そして、除外ノード検出部００２Ｃ２ｂは、テーブル記憶部００２Ｃ１ｂに格納されている列重み情報テーブルＴ１を参照して、列重みが列重み閾値Ｗ以下のパリティ検査行列ＨＭＮの列に対応する変数ノード（処理対象の受信データＦｋのビット）を特定する。そして、低信頼度ノード検出部００２Ｃ２ａから入力された組（ｍ，ｎ）のうちで、除外ノード検出部００２Ｃ２ｂが特定した列重み閾値Ｗ以下の列に対応する変数ノード（処理対象の受信データＦｋのビット）との組を、チェックノード処理部００２Ｃ２ｃへ出力する（ステップＳ２０１）。
【０１３２】
そして、チェックノード処理部００２Ｃ２ｃは、除外モードの算出式を用いて外部値比αｍｎを算出し、算出した外部値比αｍｎを変数ノード処理部００２Ｃ２ｄとビット推定部００２Ｃ２ｅへ出力する（ステップＳ１０４）。
【０１３３】
本実施形態２によれば、低信頼度ノード検出部００２Ｃ２ａは、初回の基本復号処理の際には、事前値比βｍｎの初期値である対数尤度比λｎの絶対値│λｎ│を、各チェックノードｃｍに接続する変数ノードの信頼度として算出し、絶対値│λｎ│が信頼度閾値γ１以下である対数尤度比λｎに対応する変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力した。低信頼度ノード検出部００２Ｃ２ａは、初回以外の基本復号処理の際には、変数ノード処理部００２Ｃ２ｄにより算出された事前値比βｍｎの絶対値│βｍｎ│を、各チェックノードｃｍに接続する変数ノードの信頼度として算出し、絶対値│βｍｎ│が信頼度閾値γ１以下である事前値比βｍｎのインデックス番号ｍとｎとの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力した。そして、除外ノード検出部００２Ｃ２ｂは、誤りが起きやすい列重みが低いパリティ検査行列の列に対応する変数ノードを特定した。そして、低信頼度ノード検出部００２Ｃ２ａから入力された組（ｍ，ｎ）のうちで、除外ノード検出部００２Ｃ２ｂが特定した列重み閾値Ｗ以下の列に対応する変数ノードのインデックス番号を含む組を、チェックノード処理部００２Ｃ２ｃへ出力した。そして、チェックノード処理部００２Ｃ２ｃは、基本復号処理の繰り返し回数ｒがｒ≦Ｒ１の場合には、数３、数５、数７で定義される除外モードの算出式を用いて、外部値比αｍｎを算出した。この除外モードの算出式は、総和Σ、又は、事前値比βｍｎ’の絶対値│βｍｎ’│の最小値を演算する際に、チェックノードｃｍに接続する変数ノードのうちで、除外ノード検出部００２Ｃ２ｂにより除外ノードとされた変数ノードを除外して演算するように定義したものである。このように構成することで、誤りが起きやすい除外ノードの信頼度が信頼度閾値を越えるまで、除外ノードを除外して総和Σ、又は、事前値比βｍｎ’の絶対値│βｍｎ’│の最小値を演算することが可能となる。これにより、除外ノードにおける低信頼度が他のノードに伝搬することを防ぐことが可能となる。このいわゆる誤り伝搬を防止することで、より少ない繰り返し回数でパリティ検査条件を満たすことから、効率的な復号処理を実現することが可能となる。
【０１３４】
図１３は、従来のチェックノード処理を行った場合のビット誤り率ＢＥＲ(Bit Error Rate)特性と本発明のチェックノード処理を行った場合のＢＥＲ特性を示す図である。なお、設定条件は、データビット長：２０３ビット、符号長：３４８ビット、符号化率：０．５８、最大繰り返し回数：８回、フェージング周波数：４１．７Ｈｚである。図１３に示すように、外部値比αｍｎを算出するに際し、信頼度の低い変数ノードを除外して総和Σ、又は、事前値比βｍｎ’の絶対値│βｍｎ’│の最小値を演算することで、復号性能が改善する。
【０１３５】
（変形例１）
実施形態１と２においては、事前値比βｍｎを各チェックノードｃｍに接続する変数ノードの信頼度とした。本変形例においては、事後確率比Ｌｎを各チェックノードｃｍに接続する変数ノードの信頼度とする。本変形例は、実施形態１と２のいずれに対しても適用可能であることから、実施形態２に本変形例を適用した場合について以下に説明する。
【０１３６】
本変形例におけるデジタル通信システム１の基本的な構成は、実施形態２の場合と同じである。但し、図１４に示すように、低信頼度ノード検出部００２Ｃ２ａと変数ノード処理部００２Ｃ２ｄとビット推定部００２Ｃ２ｅが果たす役割が実施形態２とでは若干異なる。
【０１３７】
低信頼度ノード検出部００２Ｃ２ａは、基本復号処理が繰り返されるたびに、ビット推定部００２Ｃ２ｅから入力される事後確率比Ｌｎの絶対値│Ｌｎ│を、チェックノードｃｍに接続する変数ノードｂｎの信頼度として算出する。なお、初回の基本復号処理では、低信頼度ノード検出部００２Ｃａは、各変数ノードｂｎの信頼度として、事前値比βｍｎの初期値、すなわち、事後確率比Ｌｎの初期値である対数尤度比λｎの絶対値│λｎ│を算出する。ここで、対数尤度比λｎは、ｓｕｍ−ｐｒｏｄｕｃｔ復号と通常のｍｉｎ−ｓｕｍ復号では、処理対象の受信データＦｋの第ｎビット（ｎ＝１，２，…，Ｎ）に対応するデータ値ｙｎを通信路値で補正した値ｙ’ｎであり、正規化ｍｉｎ−ｓｕｍ復号では、データ値ｙｎである。低信頼度ノード検出部００２Ｃ２ａは、算出した対数尤度比λｎをチェックノード処理部００２Ｃ２ｃと変数ノード処理部００２Ｃ２ｄへ出力する。
【０１３８】
そして、低信頼度ノード検出部００２Ｃ２ａは、絶対値│Ｌｎ│（又は、絶対値│λｎ│）が信頼度閾値γ１以下である事後確率比Ｌｎ（又は、対数尤度比λｎ）に対応する変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力する。例えば、事後確率比Ｌ２の絶対値│Ｌ２│と事後確率比Ｌ６の絶対値│Ｌ６│とが信頼度閾値γ１以下であり、変数ノードｂ２に接続するチェックノードがチェックノードｃ３とｃ４であり、変数ノードｂ６に接続するチェックノードがチェックノードｃ１とｃ３である場合には、組（３，２）、（４，２）、（１，６）、（３，６）を除外ノード検出部００２Ｃ２ｂへ出力する。検出した変数ノードに接続するチェックノードの情報は、パリティ検査行列ＨＭＮを参照することで、得ることができる。
【０１３９】
変数ノード処理部００２Ｃ２ｄは、実施形態２においては、算出した事前値比βｍｎをチェックノード処理部００２Ｃ２ｃと、低信頼度ノード検出部００２Ｃ２ａと、ビット推定部００２Ｃ２ｅへを出力したが、本変形例では、算出した事前値比βｍｎをチェックノード処理部００２Ｃ２ｃと、ビット推定部００２Ｃ２ｅのみに出力する。
【０１４０】
ビット推定部００２Ｃ２ｅは、チェックノード処理部００２Ｃ２ｃから入力される外部値比αｍｎと変数ノード処理部００２Ｃ２ｄから入力される事前値比βｍｎとに基づいて、推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を決定する。具体的には、数８に示す算出式により事後確率比Ｌｎを算出し、算出した事後確率比ＬｎがＬｎ＞０ならば、推定ビット∧ｙｎ＝０、Ｌｎ＜０ならば、推定ビット∧ｙｎ＝１とすることで推定ビット∧ｙｎを決定する。そして、ビット推定部００２Ｃ２ｅは、決定した推定ビット∧ｙｎ（ｎ＝１，２，…，Ｎ）を判定部００２Ｃ２ｇと推定ビット出力部００２Ｃ２ｈへ出力する。また、ビット推定部００２Ｃ２ｅは、算出した事後確率比Ｌｎを低信頼度ノード検出部００２Ｃ２ａへ出力する。
【０１４１】
次に、図１５を参照して、本変形例における復号処理のフローについて説明する。図１５は、本変形例における復号処理のフローチャートの一部である。図１５に示すフローチャートのステップＳ３０１の後の処理は、図７に示す実施形態１における復号処理のフローチャートのステップＳ１０３乃至Ｓ１１７の処理と、図１２に示す実施形態２における復号処理のフローチャートのステップＳ２０１乃至Ｓ１１７の処理と、基本的に同じである。よって、ステップＳ１０１とステップＳ３０１の処理について、以下に説明する。
【０１４２】
なお、各受信データＦｋ（ｋ＝１，２，…，Ｋ）における復号処理は同じであることから、受信データＦ１における復号処理について以下説明する。また、この復号処理は、復号処理部００２Ｃ２が、受信データＦ１をフレームデータ記憶部００２Ｃ１ａから読み出したことをトリガとして開始され、最終受信データＦＫに対する処理が完了した時点で終了する。
【０１４３】
符号化部００１ＡによりＬＤＰＣ符号により符号化された情報データＲは、フレームデータ（符号語）Ｆｋ（ｋ＝１，２，…，Ｋ）ごとに変調部００１Ｂへ順次出力され、変調部００１Ｂに順次入力されたフレームデータＦｋは、変調部００１Ｂにより所定の信号方式へ順次変調される。変調されたフレームデータＦｋは、無線送信装置００１の無線通信部００１Ｃにより増幅され通信路ＣＨへ順次出力される。
【０１４４】
通信路ＣＨにおいて、ノイズ成分が付加されたフレームデータＦｋは、無線受信装置００２の無線通信部００２Ａにより順次受信され、復調部００２Ｂへ順次入力される。復調部００２Ｂに順次入力されたフレームデータＦｋは、復調部００２Ｂにより順次復調され、復調後のフレームデータＦｋは受信データＦｋとして復号部００２Ｃに順次入力され、フレームデータ記憶部００２Ｃ１ａに格納される。そして、復号処理部００２Ｃ２は、フレームデータ記憶部００２Ｃ１ａから、復号処理するために受信データＦ１を読み出す。
【０１４５】
繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１のカウンタ値ｉを初期化する（ステップＳ１０１）。
【０１４６】
そして、低信頼度ノード検出部００２Ｃ２ａは、事後確率比Ｌｎ（又は、対数尤度比λｎ）に基づいて各変数ノードｂｎの信頼度、すなわち、事後確率比Ｌｎの絶対値│Ｌｎ│（又は、対数尤度比λｎの絶対値│λｎ│）を算出し、算出した信頼度が信頼度閾値γ１以下である変数ノードを各チェックノードｃｍに対して検出する（ステップＳ３０１）。具体的には、カウンタＣ１のカウンタ値ｉ＝１の場合、すなわち、初回の基本復号処理である場合には、低信頼度ノード検出部００２Ｃ２ａは、絶対値│λｎ│が信頼度閾値γ１以下である対数尤度比λｎに対応する変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）を除外ノード検出部００２Ｃｂへ出力する。初回以外の基本復号処理である場合には、低信頼度ノード検出部００２Ｃ２ａは、絶対値│Ｌｎ│が信頼度閾値γ１以下である事後確率比Ｌｎに対応する変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力する。
【０１４７】
（変形例２）
実施形態１と２においては、低信頼度ノード検出部００２Ｃ２ａは、絶対値│βｍｎ│が信頼度閾値γ１以下である事前値比βｍｎに対応するチェックノードｃｍと変数ノードｂｎのインデックス番号ｍとｎとの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力した。
【０１４８】
本変形例においては、低信頼度ノード検出部００２Ｃ２ａは、絶対値│βｍｎ│が信頼度閾値γ１以下である事前値比βｍｎに対応する変数ノードｂｎを検出し、検出した変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続する全てのチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）を除外ノード検出部００２Ｃ２ｂへ出力する。
【０１４９】
なお、本変形例は、実施形態１又は２のいずれに対しても適用可能であることから、実施形態２に本変形例を適用した場合について、以下に説明する。
【０１５０】
本変形例におけるデジタル通信システム１の基本的な構成は、実施形態２の場合と同じである。但し、低信頼度ノード検出部００２Ｃ２ａと、除外ノード検出部００２Ｃ２ｂが果たす役割が実施形態２とでは若干異なる。
【０１５１】
低信頼度ノード検出部００２Ｃ２ａは、変数ノード処理部００２Ｃ２ｄから入力される事前値比βｍｎの絶対値│βｍｎ│が予め設定されている信頼度閾値γ１以下である事前値比に対応する変数ノードを検出する。すなわち、２部グラフにおいて、変数ノードｂｎが接続先のチェックノードｃｍに送信する事前値比βｍｎのうちで、その絶対値が基準値（信頼度閾値γ１）以下である事前値比が一つでも存在する場合には、低信頼度ノード検出部００２Ｃ２ａは、その変数ノードを検出する。
【０１５２】
例えば、パリティ検査行列ＨＭＮが、図２（ａ）に例示するパリティ検査行列である場合には、各変数ノードｂｎ（ｎ＝１，２，…，８）から接続先のチェックノードへ送信される事前値比βｍｎは、図１６に示すようになる。例えば、変数ノードｂ２はチェックノードｃ２とｃ３とｃ４と接続されていることから、変数ノードｂ２は、チェックノードｃ２に事前値比β２２を、チェックノードｃ３に事前値比β３２を、チェックノードｃ４に事前値比β４２を送信する。この場合、低信頼度ノード検出部００２Ｃ２ａは、事前値比β２２、β３２、β４２の絶対値のうちのいずれかが信頼度閾値γ１以下の場合には、変数ノードｂ２を検出し、事前値比β２２、β３２、β４２の絶対値の全てが信頼度閾値γ１より大きい場合には、変数ノードｂ２を検出しない。
【０１５３】
そして、低信頼度ノード検出部００２Ｃ２ａは、検出した変数ノードｂｎを特定するための情報を除外ノード検出部００２Ｃ２ｂへ出力する。
【０１５４】
除外ノード検出部００２Ｃ２ｂは、テーブル記憶部００２Ｃ１ｂに格納されている列重み情報テーブルＴ１を参照して、列重みが列重み閾値Ｗ以下のパリティ検査行列ＨＭＮの列に対応する変数ノードｂｎ（処理対象の受信データＦｋのビットｂｎ）を特定する。そして、除外ノード検出部００２Ｃ２ｂは、基本復号処理が繰り返されるたびに、特定した変数ノードのうちで、低信頼度ノード検出部００２Ｃ２ａにより検出された変数ノードを抽出し、抽出した変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）をチェックノード処理部００２Ｃ２ｃへ出力する。
【０１５５】
例えば、除外ノード検出部００２Ｃ２ｂが特定した列重み閾値Ｗ以下の列に対応する変数ノードが変数ノードｂ１とｂ５とｂ７であり、低信頼度ノード検出部００２Ｃ２ａにより検出された変数ノードが変数ノードｂ４とｂ７である場合には、除外ノード検出部００２Ｃ２ｂは、特定した変数ノードｂ１とｂ５とｂ７の中から、変数ノードｂ７を抽出する。チェックノードｃ１とｃ４が抽出した変数ノードｂ７に接続する場合には、除外ノード検出部００２Ｃ２ｂは、変数ノードｂ７をチェックノードｃ１とｃ４における除外ノードとして、組（１，７）、（４，７）をチェックノード処理部００２Ｃ２ｃへ出力する。
【０１５６】
次に、図１７を参照して、本変形例における復号処理のフローについて説明する。図１７に示すフローチャートのステップＳ４０２の後の処理は、図７に示す実施形態１における復号処理のフローチャートのステップＳ１０４乃至Ｓ１１７の処理と基本的に同じである。よって、ステップＳ１０１乃至Ｓ１０４の処理について、以下に説明する。
【０１５７】
なお、各受信データＦｋ（ｋ＝１，２，…，Ｋ）における復号処理は同じであることから、受信データＦ１における復号処理について以下説明する。また、この復号処理は、復号処理部００２Ｃ２が、受信データＦ１をフレームデータ記憶部００２Ｃ１ａから読み出したことをトリガとして開始され、最終受信データＦＫに対する処理が完了した時点で終了する。
【０１５８】
符号化部００１ＡによりＬＤＰＣ符号により符号化された情報データＲは、フレームデータ（符号語）Ｆｋ（ｋ＝１，２，…，Ｋ）ごとに変調部００１Ｂへ順次出力され、変調部００１Ｂに順次入力されたフレームデータＦｋは、変調部００１Ｂにより所定の信号方式へ順次変調される。変調されたフレームデータＦｋは、無線送信機００１の無線通信部００１Ｃにより増幅され通信路ＣＨへ順次出力される。
【０１５９】
通信路ＣＨにおいて、ノイズ成分が付加されたフレームデータＦｋは、無線受信機００２の無線通信部００２Ａにより順次受信され、復調部００２Ｂへ順次入力される。復調部００２Ｂに順次入力されたフレームデータＦｋは、復調部００２Ｂにより順次復調され、復調後のフレームデータＦｋは受信データＦｋとして復号部００２Ｃに順次入力され、フレームデータ記憶部００２Ｃ１ａに格納される。そして、復号処理部００２Ｃ２は、フレームデータ記憶部００２Ｃ１ａから、復号処理するために受信データＦ１を読み出す。
【０１６０】
繰り返し回数判定部００２Ｃ２ｆは、カウンタＣ１のカウンタ値ｉを初期化する（ステップＳ１０１）。
【０１６１】
そして、低信頼度ノード検出部００２Ｃ２ａは、変数ノード処理部００２Ｃ２ｄから入力される事前値比βｍｎに基づいて、信頼度が基準値（信頼度閾値γ１）以下の変数ノードを検出する。そして、低信頼度ノード検出部００２Ｃ２ａは、検出した変数ノードを特定するための情報を除外ノード検出部００２Ｃ２ｂへ出力する（ステップＳ４０１）。
【０１６２】
そして、除外ノード検出部００２Ｃ２ｂは、テーブル記憶部００２Ｃ１ｂに格納されている列重み情報テーブルＴ１を参照して、列重みが列重み閾値Ｗ以下のパリティ検査行列ＨＭＮの列に対応する変数ノード（処理対象の受信データＦｋのビット）を特定する。そして、除外ノード検出部００２Ｃ２ｂは、特定した変数ノードのうちで、低信頼度ノード検出部００２Ｃ２ａにより検出された変数ノードを抽出し、抽出した変数ノードｂｎのインデックス番号ｎとその変数ノードｂｎに接続するチェックノードｃｍのインデックス番号ｍとの組（ｍ，ｎ）をチェックノード処理部００２Ｃ２ｃへ出力する。（ステップＳ４０２）。
【０１６３】
そして、チェックノード処理部００２Ｃ２ｃは、除外モードの算出式を用いて外部値比αｍｎを算出し、算出した外部値比αｍｎを変数ノード処理部００２Ｃ２ｄとビット推定部００２Ｃ２ｅへ出力する（ステップＳ１０４）。
【０１６４】
なお、上記実施形態における無線送信装置００１と無線受信装置００２は、それぞれ基地局及び移動情報端末に適用でき、ピアツーピア通信装置等に適用できる。
【０１６５】
また、上記実施形態１と２において、ＬＤＰＣ符号により符号化された符号データをｓｕｍ−ｐｒｏｄｕｃｔ復号、ｍｉｎ−ｓｕｍ復号により復号処理する場合について説明したが、これに限定されるものではなく、本発明は、符号化された符号データを確率伝搬法により復号する場合に適用可能である。
【０１６６】
また、上記実施形態１と２において、図１８に例示すように、基本復号処理の繰り返し回数ｒに従って、信頼度閾値γ１を段階的に大きくするように構成してもよい。
【０１６７】
また、上記実施形態２において、図１９に例示するように、低信頼度ノード検出部００２Ｃ２ａにより検出された信頼度の低い変数ノードの数に従って、列重み閾値Ｗを可変してもよい。
【０１６８】
また、上記変形例２において、変数ノード処理部００２Ｃ２ｄにより算出された事前値比βｍｎの絶対値│βｍｎ│を信頼度としたが、事後確率比Ｌｎの絶対値│Ｌｎ│を信頼度としてもよい。
【０１６９】
また、上記変形例２において、変数ノードｂｎに接続する全てのチェックノードｃｍに対する事前値比βｍｎの絶対値│βｍｎ│のうちのいずれかが信頼度閾値γ１以下の場合に、低信頼度ノード検出部００２Ｃ２aは、変数ノードｂｎを検出すると説明したが、これに限定されるものではなく、例えば、絶対値│βｍｎ│が信頼度閾値γ１以下の事前値比βｍｎの個数が規定数Ｘ以上の場合に、低信頼度ノード検出部００２Ｃ２aは、変数ノードｂｎを検出するように構成してもよい。
【０１７０】
なお、上記実施形態において、実行されるプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read-Only Memory)、ＤＶＤ(Digital Versatile Disc)、ＭＯ（Magneto-Optical Disc)等のコンピュータで読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述の処理を実行することとしてもよい。
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、取得等するようにしてもよい。
【０１７１】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。
【符号の説明】
【０１７２】
１              デジタル通信システム
００１          無線送信装置
００１Ａ        符号化部
００１Ｂ        変調部
００１Ｃ        無線通信部
ＣＨ            通信路
００２          無線受信装置
００２Ａ        無線通信部
００２Ｂ        復調部
００２Ｃ        復号部
００２Ｃ１      記憶部
００２Ｃ１ａ    フレームデータ記憶部
００２Ｃ１ｂ    テーブル記憶部
００２Ｃ２      復号処理部
００２Ｃ２ａ    低信頼度ノード検出部
００２Ｃ２ｂ    除外ノード検出部
００２Ｃ２ｃ    チェックノード処理部
００２Ｃ２ｄ    変数ノード処理部
００２Ｃ２ｅ    ビット推定部
００２Ｃ２ｆ    繰り返し回数判定部
００２Ｃ２ｇ    判定部
００２Ｃ２ｈ    推定ビット出力部
Ｃ１            カウンタ
Ｔ１            列重み情報テーブル
ＨＭＮ           パリティ検査行列
ｂｎ            変数ノード
ｃｍ            チェックノード
【図１】
0005765281.tif 000010
【図２】
0005765281.tif 000011
【図３】
0005765281.tif 000012
【図４】
0005765281.tif 000013
【図５】
0005765281.tif 000014
【図６】
0005765281.tif 000015
【図７】
0005765281.tif 000016
【図８】
0005765281.tif 000017
【図９】
0005765281.tif 000018
【図１０】
0005765281.tif 000019
【図１１】
0005765281.tif 000020
【図１２】
0005765281.tif 000021
【図１３】
0005765281.tif 000022
【図１４】
0005765281.tif 000023
【図１５】
0005765281.tif 000024
【図１６】
0005765281.tif 000025
【図１７】
0005765281.tif 000026
【図１８】
0005765281.tif 000027
【図１９】
0005765281.tif 000028