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