(57)【要約】【課題】ｍｉｎ−ｓｕｍ復号における演算量を低減させる技術を提供する。【解決手段】ｍｉｎ−ｓｕｍ処理部４６は、入力したデータに対して、ｍｉｎ−ｓｕｍアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行する。特定部６０は、更新すべき外部値比のそれぞれに対して、チェックノード処理の対象となる事前値比のうち、事前値比の絶対値の最小値を特定する。更新部６４は、特定部６０において特定した最小値がしきい値よりも大きくなる外部値比に対して、最小値を使用して外部値比を更新し、特定部６０において特定した最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定する。【選択図】図３
2013207396.tif 000002
【特許請求の範囲】
【請求項１】
ＬＤＰＣ符号化がなされたデータに対して、ｍｉｎ−ｓｕｍアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行する復号部を備え、
前記復号部は、
更新すべき外部値比のそれぞれに対して、チェックノード処理の対象となる事前値比のうち、事前値比の絶対値の最小値を特定する特定部と、
前記特定部において特定した最小値がしきい値よりも大きくなる外部値比に対して、最小値を使用して外部値比を更新し、前記特定部において特定した最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定する更新部と、
を備えることを特徴とする復号装置。
【請求項２】
前記特定部は、チェックノード処理を開始するまでに、外部値比のそれぞれに対する最小値を特定することを特徴とする請求項１に記載の復号装置。
【請求項３】
前記更新部は、所定の値をゼロにすることを特徴とする請求項１または２に記載の復号装置。
【請求項４】
ＬＤＰＣ符号化がなされたデータに対して、ｍｉｎ−ｓｕｍアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行するステップを備え、
前記実行するステップは、
更新すべき外部値比のそれぞれに対して、チェックノード処理の対象となる事前値比のうち、事前値比の絶対値の最小値を特定するステップと、
特定した最小値がしきい値よりも大きくなる外部値比に対して、最小値を使用して外部値比を更新し、特定した最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定するステップと、
を備えることを特徴とする復号方法。
【請求項５】
ＬＤＰＣ符号化がなされたデータに対して、ｍｉｎ−ｓｕｍアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行するステップを備え、
前記実行するステップにおいて、
更新すべき外部値比のそれぞれに対して、チェックノード処理の対象となる事前値比のうち、事前値比の絶対値の最小値を特定するステップと、
特定した最小値がしきい値よりも大きくなる外部値比に対して、最小値を使用して外部値比を更新し、特定した最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定するステップとをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号技術に関し、特にＬＤＰＣによる符号化がなされたデータを復号する復号装置、復号方法、プログラムに関する。
【背景技術】
【０００２】
近年、低Ｓ／Ｎの伝送路でも強力な誤り訂正能力をもつ誤り訂正符号として、ＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅ）が注目され、多くの分野で適用されている。ＬＤＰＣでは、送信側において、疎な検査行列をもとに生成される符号化行列によって、データが符号化される。ここで、疎な検査行列とは、要素が１または０からなる行列であって、１の数が少ない行列である。一方、受信側において、検査行列をもとにして、データの復号とパリティ検査とがなされる。特に、ＢＰ（Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ）法等による繰り返し復号によって復号性能が向上する。
【０００３】
この復号では、検査行列の行方向に復号するチェックノード処理と、列方向に復号する変数ノード処理とを繰り返し実行する。チェックノード処理のひとつとして、Ｇａｌｌａｇｅｒ関数や双曲線関数を用いるｓｕｍ−ｐｒｏｄｕｃｔ復号が知られている。ｓｕｍ−ｐｒｏｄｕｃｔ復号では、伝送路ノイズの分散値から求まる通信路値を事前値として使用する。ｓｕｍ−ｐｒｏｄｕｃｔ復号を簡略化した復号方法が、ｍｉｎ−ｓｕｍ復号である。ｍｉｎ−ｓｕｍ復号は、複雑な関数を用いることなく、比較演算、和演算等の簡単な処理だけでチェックノード処理を行うことが可能である。さらに、ｍｉｎ−ｓｕｍ復号は、通信路値を必要としないので、処理の簡略化、高速化のために広く用いられている。ｍｉｎ−ｓｕｍ復号の回路規模を削減するために、検査行列の各行での事前値比の最小値と次に小さな値を使用することが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２６９５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
検査行列の各行での事前値比の最小値を導出する処理は、非常に簡単な回路によって実現される。次に小さな値を導出するためには、最小値を導出した後、再度最小値を探索したり、ふたつのメモリを備え、両方の値と入力値を比べながらメモリの入れ替え処理を行ったりする必要があり、回路が複雑になる。そのため、ｍｉｎ−ｓｕｍ復号における演算量を低減させることが要求される。
【０００６】
本発明はこうした状況に鑑みてなされたものであり、その目的は、ｍｉｎ−ｓｕｍ復号における演算量を低減させる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の復号装置は、ＬＤＰＣ符号化がなされたデータに対して、ｍｉｎ−ｓｕｍアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行する復号部を備える。復号部は、更新すべき外部値比のそれぞれに対して、チェックノード処理の対象となる事前値比のうち、事前値比の絶対値の最小値を特定する特定部と、特定部において特定した最小値がしきい値よりも大きくなる外部値比に対して、最小値を使用して外部値比を更新し、特定部において特定した最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定する更新部と、を備える。
【０００８】
この態様によると、最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定するので、最小値を使用して外部値比を更新することが省略され、ｍｉｎ−ｓｕｍ復号における演算量を低減できる。
【０００９】
特定部は、チェックノード処理を開始するまでに、外部値比のそれぞれに対する最小値を特定してもよい。この場合、チェックノード処理を開始するまでに最小値を特定するので、特定をまとめて実行できる。
【００１０】
更新部は、外部値比に設定する所定の値をゼロにしてもよい。この場合、誤り訂正能力の低下を抑制できる。また更新部は、しきい値をゼロにしてもよい。この場合、誤り訂正能力の低下は発生しなくなる。
【００１１】
本発明の別の態様は、復号方法である。この方法は、ＬＤＰＣ符号化がなされたデータに対して、ｍｉｎ−ｓｕｍアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行するステップを備える。実行するステップは、更新すべき外部値比のそれぞれに対して、チェックノード処理の対象となる事前値比のうち、事前値比の絶対値の最小値を特定するステップと、特定した最小値がしきい値よりも大きくなる外部値比に対して、最小値を使用して外部値比を更新し、特定した最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定するステップと、を備える。
【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、ｍｉｎ−ｓｕｍ復号における演算量を低減できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施例に係る通信システムの構成を示す図である。
【図２】図１のＬＤＰＣ符号化部において使用される検査行列を示す図である。
【図３】図１の復号部の構成を示す図である。
【図４】図３の復号部の動作を模式的に表したタナーグラフを示す図である。
【図５】図３の復号部における外部値比更新動作の概要を示す図である。
【図６】図３の復号部における事前値比更新動作の概要を示す図である。
【図７】図３の復号部による復号手順を示すフローチャートである。
【図８】図３の復号部による別の復号手順を示すフローチャートである。
【図９】図３の復号部による初期化手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
本発明を具体的に説明する前に、まず概要を述べる。本発明の実施例は、ＬＤＰＣ符号化を実行する送信装置と、送信装置において符号化されたデータ（以下、「符号化データ」という）に対して検査行列をもとに繰り返し復号を実行する受信装置とを含む通信システムに関する。特に、受信装置は、ｍｉｎ−ｓｕｍアルゴリズムを実行する。ｍｉｎ−ｓｕｎアルゴリズムは、チェックノード処理と変数ノード処理とを含んでいるが、チェックノード処理の方が変数ノード処理よりも複雑な処理である。そのため、チェックノード処理を簡易にすることによって、ｍｉｎ−ｓｕｍアルゴリズムの処理を簡易にすることが望まれる。これに対応するために、本実施例に係る通信システムは、次の処理を実行する。
【００１６】
ｍｉｎ−ｓｕｍアルゴリズムにおけるチェックノード処理は、変数ノード処理から出される事前値比のうち、外部値比を更新すべきノード以外の絶対値の最小値と符号の総積とを使用することによって、外部値比が更新される。受信装置は、検査行列に対するチェックノード処理を開始するまでに、更新すべき外部値比のそれぞれにおいて、チェックノード処理の対象となる事前値比の中から、事前値比の絶対値の最小値を特定する。さらに、受信装置は、事前値比の符号の総積を導出する。受信装置は、特定した最小値がしきい値よりも大きい外部値比に対して、最小値、符号の総積を使用して外部値比を更新する。つまり、通常のチェックノード処理が実行される。一方、受信装置は、特定した最小値がしきい値以下である外部値比に対して、外部値比をゼロに設定する。その結果、最小値、符号の総積を使用した外部値比の更新が実行されない。
【００１７】
図１は、本発明の実施例に係る通信システム１００の構成を示す。通信システム１００は、送信装置１０、受信装置１２を含む。送信装置１０は、情報データ生成部２０、ＬＤＰＣ符号化部２２、変調部２４を含む。受信装置１２は、復調部２６、復号部２８、情報データ出力部３０を含む。
【００１８】
情報データ生成部２０は、送信すべきデータを取得し、情報データを生成する。なお、取得したデータがそのまま情報データとされてもよい。情報データ生成部２０は、情報データをＬＤＰＣ符号化部２２へ出力する。ＬＤＰＣ符号化部２２には、情報データ生成部２０から、情報データが入力される。ＬＤＰＣ符号化部２２は、ＬＤＰＣでの検査行列をもとにしたパリティ（以下、「ＬＤＰＣパリティ」という）を情報データに付加する。ＬＤＰＣパリティを付加した情報データが、前述の符号化データに相当する。ＬＤＰＣ符号化部２２は、符号化データを変調部２４に出力する。図２は、ＬＤＰＣ符号化部２２において使用される検査行列を示す。検査行列Ｈｍｎは、ｍ行ｎ列の行列である。ここでは、説明を明瞭にするために、検査行列Ｈｍｎが４行８列であるとするが、これに限定されるものではない。図１に戻る。
【００１９】
変調部２４には、ＬＤＰＣ符号化部２２から符号化データが入力される。変調部２４は、符号化データを変調する。変調方式として、ＰＳＫ（Ｐｈａｓｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）、ＦＳＫ（Ｆｒｅｑｕｅｎｃｙ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）等が使用される。変調部２４は、変調した符号化データを変調信号として送信する。復調部２６は、変調部２４から通信路、例えば無線伝送路を介して変調信号を受信する。復調部２６は、変調信号を復調する。復調には公知の技術が使用されればよいので、ここでは説明を省略する。復調部２６は、復調結果（以下、「復調データ」という）を復号部２８へ出力する。
【００２０】
復号部２８には、復調部２６からの復調データが入力される。復号部２８は、復調データに対して、ＬＤＣＰでの検査行列による復号処理を繰り返し実行する。復号処理として、例えば、ｍｉｎ−ｓｕｍアルゴリズムが実行される。ｍｉｎ−ｓｕｍアルゴリズムは、次の手順で実行される。
１．初期化：事前値比を初期化し、最大復号繰り返し回数を設定する。
２．チェックノード処理：検査行列の行方向に対して外部値比を更新する。
３．変数ノード処理：検査行列の列方向に対して事前値比を更新する。
４．一時推定語を計算する。
【００２１】
復号部２８は、復号結果（以下、「復号データ」という）を情報データ出力部３０へ出力する。情報データ出力部３０には、復号部２８からの復号データが入力される。情報データ出力部３０は、復号データをもとに情報データを生成する。なお、復号データがそのまま情報データとされてもよい。情報データ出力部３０は、外符号復号部を含み、例えばＣＲＣ等の外符号を復号してもよい。
【００２２】
この構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２３】
図３は、復号部２８の構成を示す。復号部２８は、フレーム構成部４０、制御部４２、データ記憶部４４、ｍｉｎ−ｓｕｍ処理部４６、復号結果演算部４８を含む。また、ｍｉｎ−ｓｕｍ処理部４６は、チェックノード処理部５６、変数ノード処理部５８を含み、チェックノード処理部５６は、特定部６０、更新部６４を含む。
【００２４】
フレーム構成部４０には、図示しない復調部２６からの復調データが入力される。復調データは、通信路を介してのＬＤＰＣ符号化がなされたデータといえる。フレーム構成部４０は、復調データに含まれたフレーム同期信号を検出する。フレーム構成部４０は、フレーム同期信号をもとに、復調データによって形成されるフレームの単位を特定する。例えば、フレームの先頭部分にフレーム同期信号が配置され、かつフレームの期間が固定長である場合、フレーム構成部４０は、フレーム同期信号を検出してから固定長の期間をフレームと特定する。なお、ＬＤＰＣ符号化の単位がフレームであってもよい。フレーム構成部４０は、フレーム単位にまとめた復調データをデータ記憶部４４に記憶させる。データ記憶部４４は、フレーム単位で復調信号を一時的に記憶する。
【００２５】
ｍｉｎ−ｓｕｍ処理部４６には、データ記憶部４４からの復調データが入力される。ｍｉｎ−ｓｕｍ処理部４６は、復調データに対してｍｉｎ−ｓｕｍアルゴリズムを実行する。ｍｉｎ−ｓｕｍアルゴリズムでは、チェックノード処理部５６と変数ノード処理部５８とが交互に実行される。図４は、復号部２８の動作を模式的に表したタナーグラフを示す。タナーグラフでは、ｂ１からｂ８が変数ノードと呼ばれ、ｃ１からｃ４がチェックノードと呼ばれる。ここでは、変数ノードの数をｎとし、ｂｎをｎ番目の変数ノードとする。また、チェックノードの数をｍとし、ｃｍをｍ番目のチェックノードとする。メッセージ初期化として、繰り返し復号の最初に変数ノードｂ１からｂ８に、図３のデータ記憶部４４に蓄えられたデータｙ１からｙ８が入力される。図３に戻る。
【００２６】
チェックノード処理部５６は、繰り返し復号の最初に事前値比βを初期化する。ここでは、データ記憶部４４に記憶された復調データがそのまま使用される。次に、チェックノード処理部５６は、事前値比の絶対値の最小値ｍｉｎ｜βｍｎ’｜を求める。チェックノード処理部５６は、チェックノードにつながる変数ノードとの間で、ｃｍからｂｍへの外部値比αｍｎを更新させる。αｍｎの計算は、検査行列Ｈｍｎ＝１を満たすすべての組（ｍ、ｎ）について、次のようになされる。
【００２７】
αｍｎ＝ａ（Πｓｉｇｎ（βｍｎ’））・ｍｉｎ｜βｍｎ’｜・・・（１）
ここで、ｎ’はＡ（ｍ）＼ｎ  ：Ａ（ｍ）はチェックノードｍに接続する変数ノード集合で、＼ｎはｎを含まない差集合を示す。また、ｓｉｇｎはシグネチャ関数、ｍｉｎ｜βｍｎ’｜は絶対値の最小値選択を示す。ここで、ａは正規化定数である。図５は、復号部２８における外部値比更新動作の概要を示す。外部値比α１１は、β１１’から導出される。つまり、チェックノード処理部５６は、事前値比をもとに外部値比を更新させる。図３に戻る。事前値比の絶対値の最小値ｍｉｎ｜βｍｎ’｜の導出は、繰り返しごとになされる。
【００２８】
変数ノード処理部５８は、αｍｎから変数ノードにつながるチェックノードとの間で、ｂｎからｃｍへの事前値比βｍｎを更新する。βｍｎの計算は、検査行列Ｈｍｎ＝１を満たすすべての組（ｍ、ｎ）について、次のようになされる。
βｍｎ＝Σαｍ’ｎ＋λｎ・・・・（２）
ここで、λｎは、入力データｙｎに等しい。入力データｙｎは、復調部２６からの復調データに相当する。また、ｍ’はＢ（ｎ）＼ｍ：Ｂ（ｎ）は変数ノードｎに接続するチェックノード集合で、＼ｍはｍを含まない差集合を示す。図６は、復号部２８における事前値比更新動作の概要を示す。事前値比β１１は、α１’１から導出される。つまり、変数ノード処理部５８は、外部値比をもとに事前値比を更新させる。図３に戻る。
【００２９】
復号結果演算部４８は、チェックノード処理部５６での処理と変数ノード処理部５８での処理とが所定回数繰り返された後、一時推定語を計算する。なお、復号結果演算部４８は、所定回数繰り返される前であっても、パリティ検査の結果が正しければ一時推定語を計算してもよい。復号結果演算部４８は、一時推定語を復号結果として出力する。制御部４２は、ｍｉｎ−ｓｕｍ処理部４６の動作タイミングを制御する。
【００３０】
チェックノード処理部５６の式（１）は、検査行列の各行の１の数によって演算を繰り返し、変数ノード処理部５８の式（２）は、各列の１の数によって演算を繰り返す。つまり、チェックノード処理は、式（１）に示したように、検査行列のｍ行目において、要素が１であるｎ番目（列インデックスがｎ）の外部値比αｍｎを更新し、変数ノード処理は式（２）に示したように、事前値比βｍｎを更新する。チェックノード処理について、演算を簡略化することは、式（１）を簡単に実行することに相当し、ＬＤＰＣ復号の処理速度を上げるためには式（１）の簡略化が求められる。以下では、式（１）の簡略化について説明する。
【００３１】
特定部６０は、チェックノード処理における初期化を実行する。初期化には２種類あり、（１）繰り返し復号前の初期化と（２）行単位の処理の初期化である。（１）繰り返し復号前の初期化として、前述のごとく、特定部６０は、図３のデータ記憶部４４に蓄えられたデータｙ１からｙ８を事前値比βｍｎに設定する。
【００３２】
（２）行単位の処理の初期化は、ＬＤＰＣ符号化の検査行列における各行のチェックノード処理を開始するまでの処理に相当する。特定部６０は、更新すべき外部値比のそれぞれに対して、チェックノード処理の対象となる事前値比βｍｎのうち、事前値比の絶対値の最小値βｍｉｎを特定する。その際、最小値βｍｉｎが含まれた列インデックスＮｍｉｎも特定される。特定部６０は、事前値比の絶対値の最小値βｍｉｎと列インデックスＮｍｉｎを図３のデータ記憶部４４に記憶する。さらに、特定部６０は、処理対象の行に含まれた事前値比βｍｎの符号の総積ＳＩＧＮｔｍｐを導出する。特定部６０は、符号の総積ＳＩＧＮｔｍｐもデータ記憶部４４に記憶する。
【００３３】
ここでは、１行目に対して初期化を実行する場合を具体的に説明する。その際、図４のごとく、チェックノードはＣ１である。以下では、一例として、β１１＝−３、β１２＝４、β１３＝−１、β１４＝２であるとする。特定部６０は、事前値比の絶対値の最小値βｍｉｎとして「１」を特定し、それに対応した列インデックスＮｍｉｎとして「３」を特定する。また、特定部６０は、符号の総積ＳＩＧＮｔｍｐとして「マイナス（＋）」を導出する。なお、３列目では、列インデックスが３であるので、Ｎｍｉｎと等しい。そのため、特定部６０は、β１３を除いた事前値比の絶対値の最小値βｍｉｎ２も特定する。なお、βｍｉｎ２は、α１３等に対するβｍｎの最小値ともいえる。ここでは、最小値βｍｉｎ２は「２」である。特定部６０は、最小値βｍｉｎ２も図３のデータ記憶部４４に記憶する。なお、最小値βｍｉｎ２の特定は、特定部６０ではなく、後述の更新部６４においてなされてもよい。
【００３４】
その結果、βｍｉｎ、Ｎｍｉｎ、ＳＩＧＮｔｍｐ、βｍｉｎ２が、データ記憶部４４に記憶される。さらにデータ記憶部４４は、しきい値βｓｈを予め記憶する。例えば、しきい値βｓｈは、「１」に設定されている。特定部６０は、βｍｉｎとしきい値βｓｈとを比較し、その結果をデータ記憶部４４に記憶させる。特定部６０は、βｍｉｎ２としきい値βｓｈとを比較し、その結果をデータ記憶部４４に記憶させてもよい。
【００３５】
更新部６４は、データ記憶部４４に記憶された内容を参照しながら、チェックノード処理を実行する。つまり、外部値比α１１、α１２、α１３、α１４が導出される。更新部６４は、特定部６０において特定した最小値βｍｉｎまたはβｍｉｎ２がしきい値βｓｈよりも大きくなる外部値比に対して、最小値βｍｉｎまたはβｍｉｎ２を使用して外部値比を更新する。これは、式（１）を演算することに相当し、絶対値の最小値と、符号の総積と、事前値比の符号とを乗算することに相当する。一方、更新部６４は、特定部６０において特定した最小値βｍｉｎまたはβｍｉｎ２がしきい値βｓｈ以下である外部値比に対して、所定の値を外部値比に設定する。ここで、更新部６４は、所定の値をゼロに固定する。これは、式（１）に示された絶対値の最小値と、符号の総積と、事前値比の符号とを乗算することを実行せず、外部値比に「０」を設定することに相当する。
【００３６】
前述の例をもとに、以上の処理を具体的に説明する。「α１１」の列インデックスは「１」であり、Ｎｍｉｎ＝３とは異なるので、式（１）によれば、α１１はβｍｉｎ＝１に、符号の総積ＳＩＧＮｔｍｐの「＋」とβ１１の符号「−」とを乗じた値になる。しかしながら、βｍｉｎがしきい値βｓｈ＝１以下の値であるので、更新部６４は、式（１）によってα１１を更新する必要がなく、α１１＝０とする。次に、「α１２」の列インデックスは「２」であり、Ｎｍｉｎ＝３とは異なる。そのため、「α１１」と同様に、βｍｉｎがしきい値βｓｈ＝１以下の値であるので、更新部６４は、式（１）によってα１２を更新する必要がなく、α１２＝０とする。
【００３７】
次に、「α１３」の列インデックスが「３」であってＮｍｉｎと等しいので、βｍｉｎではなく、β１３を除いた事前値比の絶対値の最小値βｍｉｎ２＝２がしきい値βｓｈと比較される。ここでは、βｍｉｎ２はしきい値βｓｈ＝１以下の値ではないので、更新部６４は、符号の総積のＳＩＧＮｔｍｐ「＋」、β１３の符号「−」を乗じた結果の「−」と、βｍｉｎ２＝２とをもとに、α１３＝−２を導出する。「α１４」の列インデックスが「４」であってＮｍｉｎ＝３とは異なるので、「α１４」は、「α１１」、「α１２」と同様に「０」とされる。このように、更新部６４は、α１１、α１２、α１３、α１４をそれぞれ０、０、−２、０と導出する。
【００３８】
以上のように、検査行列の１行目のチェックノード処理が終了する。これに続いて、２行目のチェックノード処理が実行されてもよく、１行目のチェックノード処理によって更新された外部値比αを使用した変数ノード処理が実行されてもよい。チェックノード処理を検査行列の行の値ｍ回、変数ノード処理を検査行列の列の値ｎ回実行されることによって、繰り返し復号の１回が終了する。
【００３９】
なお、しきい値βｓｈの値を大きくするにしたがって誤り訂正能力が低下していくので、誤り訂正能力が許容できる範囲であるような適切なβｓｈの値を設定することによって、チェックノード処理の演算量を削減することが可能になる。ここで、適切なβｓｈは、例えば、計算機シミュレーション等によって決定される。また、βｓｈ＝０と設定した場合については、誤り訂正能力は低下しない。
【００４０】
αｍｎには、１より小さい定数（正規化定数a）を乗じることによって、正規化ｍｉｎ−ｓｕｍ復号が実行される。この場合、最小値βｍｉｎがしきい値βｓｈ以下である外部値比に対しては正規化定数ａを乗じる演算も必要なく、αｍｎ＝０として処理される。その結果、正規化ｍｉｎ−ｓｕｍ復号に対して、チェックノード処理の演算量削減の効果がより大きくなる。
【００４１】
以上の構成による通信システム１００の動作を説明する。図７は、復号部２８による復号手順を示すフローチャートである。特定部６０は、事前値比βを初期化する（Ｓ１０）。行の先頭であれば（Ｓ１２のＹ）、特定部６０は、初期化処理を実行し（Ｓ１４）、ステップ１２に戻る。初期化として、βｍｎの絶対値の最小値βｍｉｎが検出され、βｍｉｎの列インデックスＮｍｉｎが検出され、メッセージβｍｎの符号の総積ＳＩＧＮｔｍｐが検出され、最小値βｍｉｎとしきい値βｓｈの比較がなされる。なお、列インデックスがＮｍｉｎである場合のために、列インデックスがＮｍｉｎ以外であるβｍｎの絶対値の最小値βｍｉｎ２も検出され、βｍｉｎ２としきい値βｓｈの比較がなされてもよい。
【００４２】
行の先頭でない場合（Ｓ１２のＮ）、列インデックスがＮｍｉｎでなければ（Ｓ１６のＮ）、最小値βｍｉｎとしきい値βｓｈの比較結果を読み出し、βｍｉｎがβｓｈ以下であれば（Ｓ１８のＹ）、更新部６４は、αｍｎ＝０として更新する（Ｓ２０）。βｍｉｎがβｓｈより大きければ（Ｓ１８のＮ）、更新部６４は、βｍｉｎを使用してαｍｎを演算し更新する（Ｓ２２）。処理する列インデックスがＮｍｉｎの場合には（Ｓ１６のＹ）、処理する列インデックス以外のβｍｎの絶対値の最小値βｍｉｎ２を検出する（Ｓ２４）。なお、この処理がステップ１４においてなされている場合、ステップ２４は省略されてもよい。βｍｉｎ２がβｓｈ以下であれば（Ｓ２６のＹ）、更新部６４は、αｍｎ＝０として更新する（Ｓ２８）。βｍｉｎ２がβｓｈより大きければ（Ｓ２６のＮ）、更新部６４は、βｍｉｎ２を使用してαｍｎを演算し更新する（Ｓ３０）。
【００４３】
１行が終了していなければ（Ｓ３２のＮ）、ステップ１２に戻る。１行が終了し（Ｓ３２のＹ）、最後の行が終了していなければ（Ｓ３４のＮ）、ステップ１２に戻る。最後の行が終了すれば（Ｓ３４のＹ）、変数ノード処理部５８は、変数ノード処理を実行する（Ｓ３６）。
【００４４】
図８は、復号部２８による別の復号手順を示すフローチャートである。これは、変数ノード処理を行処理ごとに実行する場合に相当する。特定部６０は、事前値比βを初期化する（Ｓ５０）。行の先頭であれば（Ｓ５２のＹ）、特定部６０は、初期化処理を実行し（Ｓ５４）、ステップ５２に戻る。行の先頭でない場合（Ｓ５２のＮ）、列インデックスがＮｍｉｎでなければ（Ｓ５６のＮ）、最小値βｍｉｎとしきい値βｓｈの比較結果を読み出し、βｍｉｎがβｓｈ以下であれば（Ｓ５８のＹ）、更新部６４は、αｍｎ＝０として更新する（Ｓ６０）。βｍｉｎがβｓｈより大きければ（Ｓ５８のＮ）、更新部６４は、βｍｉｎを使用してαｍｎを演算し更新する（Ｓ６２）。
【００４５】
処理する列インデックスがＮｍｉｎの場合には（Ｓ５６のＹ）、処理する列インデックス以外のβｍｎの絶対値の最小値βｍｉｎ２を検出する（Ｓ６４）。なお、この処理がステップ５４においてなされている場合、ステップ６４は省略されてもよい。βｍｉｎ２がβｓｈ以下であれば（Ｓ６６のＹ）、更新部６４は、αｍｎ＝０として更新する（Ｓ６８）。βｍｉｎ２がβｓｈより大きければ（Ｓ６６のＮ）、更新部６４は、βｍｉｎ２を使用してαｍｎを演算し更新する（Ｓ７０）。
【００４６】
１行が終了していなければ（Ｓ７２のＮ）、ステップ５２に戻る。１行が終了すれば（Ｓ７２のＹ）、変数ノード処理部５８は、変数ノード処理を実行する（Ｓ７４）。最後の行が終了していなければ（Ｓ７６のＮ）、ステップ５２に戻る。最後の行が終了すれば（Ｓ７６のＹ）、処理は終了される。
【００４７】
図９は、復号部２８による初期化手順を示すフローチャートである。これは、図７のステップ１４、図８のステップ５４における処理に相当する。特定部６０は、βｍｎの符号の総積ＳＩＧＮｔｍｐを「１（＋）」に初期化し（Ｓ１００）、βｍｎの絶対値の最小値βｍｉｎを充分大きい値「ＦＦＦＦｈ」に初期化する（Ｓ１０２）。βｍｎがマイナスである場合（Ｓ１０４のＹ）、特定部６０は、符号の総積ＳＩＧＮｔｍｐに−１を乗算する（Ｓ１０６）。βｍｎがマイナスでない場合（Ｓ１０４のＮ）、ステップ１０６はスキップされる。特定部６０は、βｍｎの絶対値｜βｍｎ｜を求める（Ｓ１０８）。
【００４８】
絶対値｜βｍｎ｜がβｍｉｎよりも小さい場合（Ｓ１１０のＹ）、特定部６０は、絶対値を最小値βｍｉｎとして保持し（Ｓ１１２）、列インデックスをＮｍｉｎとして保持する（Ｓ１１４）。絶対値｜βｍｎ｜がβｍｉｎよりも小さくない場合（Ｓ１１０のＮ）、ステップ１１２、ステップ１１４はスキップされる。列インデックスが最終列でなければ（Ｓ１１６のＮ）、ステップ１０４に戻る。列インデックスが最終列であれば（Ｓ１１６のＹ）、最小値βｍｉｎとしきい値βｓｈの比較を行い、最小値βｍｉｎがしきい値βｓｈ以下かどうかの結果を保持して（Ｓ１１８）、初期化処理が終了される。
【００４９】
本発明の実施例によれば、事前値比の絶対値の最小値がしきい値以下である外部値比に対して、所定の値を外部値比に設定するので、最小値を使用して外部値比を更新することを省略できる。また、最小値を使用して外部値比を更新することが省略されるので、ｍｉｎ−ｓｕｍ復号における演算量を低減できる。また、所定の値をゼロに設定するので、品質の悪化を抑制できる。また、チェックノード処理を開始するまでに最小値を特定するので、特定をまとめて実行できる。また、特定をまとめて実行できるので、効率的に処理を実行できる。また、各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の符号の総積を導出しておき、各外部値比の導出に総積を使用するので、各外部値比を導出する際に符号の総積の演算を省略できる。また、各外部値比を導出する際に符号の総積の演算が省略されるので、演算量を低減できる。
【００５０】
また、各行最初にメッセージの最小値βｍｉｎと、位置である行インデックスＮｍｉｎと、符号の総積ＳＩＧＮｔｍｐと、最小値βｍｉｎとしきい値βｓｈとの比較結果を導出しており、最小値βｍｉｎがしきい値βｓｈ以下であるメッセージの場合には、絶対値の最小値と、負号の総積と、メッセージの符号とを乗算してメッセージαｍｎを演算する処理を行わずに、αｍｎ＝０としてメッセージを更新できる。
【００５１】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５２】
本発明の実施例において、通信システム１００は無線通信システムを前提としているので、送信装置１０および受信装置１２は、無線通信装置に含まれる。しかしながらこれに限らず例えば、通信システム１００は有線通信システムを前提としてもよい。その際、送信装置１０および受信装置１２は、有線通信装置に含まれる。本変形例によれば、本発明をさまざまな装置に適用できる。
【符号の説明】
【００５３】
１０  送信装置、  １２  受信装置、  ２０  情報データ生成部、  ２２  ＬＤＰＣ符号化部、  ２４  変調部、  ２６  復調部、  ２８  復号部、  ３０  情報データ出力部、  ４０  フレーム構成部、  ４２  制御部、  ４４  データ記憶部、  ４６  ｍｉｎ−ｓｕｍ処理部、  ４８  復号結果演算部、  ５６  チェックノード処理部、  ５８  変数ノード処理部、  ６０  特定部、  ６４  更新部、  １００  通信システム。
【図１】
2013207396.tif 000003
【図２】
2013207396.tif 000004
【図３】
2013207396.tif 000005
【図４】
2013207396.tif 000006
【図５】
2013207396.tif 000007
【図６】
2013207396.tif 000008
【図７】
2013207396.tif 000009
【図８】
2013207396.tif 000010
【図９】
2013207396.tif 000011