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