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