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