(57)【要約】【課題】品質が変動する通信路においてＬＤＰＣ符号を適用する場合に、誤りが生じたビットの推定精度を向上させる技術を提供する。【解決手段】受信振幅変動検出部４０は、入力したデータをもとに、通信路の品質が悪化している区間を検出する。ＬＤＰＣ復号部４４は、入力したデータを復号する。ＣＲＣ部５０は、復号したデータに対して、ＣＲＣによる誤り検出を実行する。特定部４８は、誤りが検出された場合、受信振幅変動検出部４０において検出した区間と、列重みが小さい区間とをもとに、復号したデータのうち、ビット値を反転させるべきビットを特定する。ＣＲＣ部５０は、特定したビットに対するビット値が反転されたデータに対して、ＣＲＣによる誤り検出を実行する。【選択図】図４
2012195684.tif 000002
【特許請求の範囲】
【請求項１】
通信路を介して、ＬＤＰＣ符号化がなされるとともにＣＲＣが付加されたデータを入力する入力部と、
前記入力部において入力したデータをもとに、通信路の品質が悪化している区間を検出する悪化区間検出部と、
前記入力部において入力したデータを復号する復号部と、
前記復号部において復号したデータに対して、ＣＲＣによる誤り検出を実行する誤り検出部と、
前記誤り検出部において誤りが検出された場合、前記復号部において復号したデータのうち、前記悪化区間検出部において検出した区間であって、前記入力部において入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定する特定部とを備え、
前記誤り検出部は、前記特定部において特定したビットに対するビット値が反転されたデータに対して、ＣＲＣによる誤り検出を実行することを特徴とする復号装置。
【請求項２】
前記特定部は、ビット値が反転されたデータに対しても前記誤り検出部において誤りが検出された場合、前記悪化区間検出部において検出した区間だけをもとに、前記復号部において復号したデータのうち、ビット値を反転させるべきビットを特定することを特徴とする請求項１に記載の復号装置。
【請求項３】
前記特定部は、ビット値が反転されたデータに対しても前記誤り検出部において誤りが検出された場合、前記復号部において復号したデータのうち、前記入力部において入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定することを特徴とする請求項１または２に記載の復号装置。
【請求項４】
前記特定部は、悪化区間検出部において区間が未検出である場合、前記復号部において復号したデータのうち、前記入力部において入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定することを特徴とする請求項１に記載の復号装置。
【請求項５】
前記特定部は列重みが所定の値より小さいと判定された区間のみをビット値を反転させるべきビットとして特定することを特徴とする請求項１から４のいずれかに記載の復号装置。
【請求項６】
通信路を介して、ＬＤＰＣ符号化がなされるとともにＣＲＣが付加されたデータを入力するステップと、
入力したデータをもとに、通信路の品質が悪化している区間を検出するステップと、
入力したデータを復号するステップと、
復号したデータに対して、ＣＲＣによる誤り検出を実行するステップと、
誤りが検出された場合、復号したデータのうち、通信路の品質が悪化している区間であって入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定するステップと、
特定したビットに対するビット値が反転されたデータに対して、ＣＲＣによる誤り検出を実行するステップと、
を備えることを特徴とする復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号技術に関し、特にＬＤＰＣによる符号化がなされたデータを復号する復号装置および復号方法に関する。
【背景技術】
【０００２】
近年、低Ｓ／Ｎの伝送路でも強力な誤り訂正能力をもつ誤り訂正符号として、ＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅ）が注目され、多くの分野で適用されている。ＬＤＰＣでは、送信側において、疎な検査行列をもとに生成される符号化行列によって、データが符号化される。ここで、疎な検査行列とは、要素が１または０からなる行列であって、１の数が少ない行列である。一方、受信側において、検査行列をもとにして、データの復号とパリティ検査とがなされる。特に、ＢＰ（Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ）法等による繰り返し復号によって復号性能が向上する。この復号では、検査行列の行方向に復号するチェックノード処理と、列方向に復号する変数ノード処理とを繰り返し実行する。チェックノード処理のひとつとして、Ｇａｌｌａｇｅｒ関数や双曲線関数を用いるｓｕｍ−ｐｒｏｄｕｃｔ復号が知られている。また、ｓｕｍ−ｐｒｏｄｕｃｔ復号を簡略化した復号方法が、ｍｉｎ−ｓｕｍ復号である。これらのｓｕｍ−ｐｒｏｄｕｃｔ復号やｍｉｎ−ｓｕｍ復号は、ＬＤＰＣ復号と総称される。
【０００３】
ＬＤＰＣ復号が完了すると、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）等によって誤り検出がなされる。誤り検出により復号ＯＫと判定されたデータは、上位のレイヤに出力される。一方、誤り検出により復号エラーと判定されたデータは、破棄されるとともに、再送要求が送信される。再送要求は受信側から送信側に送られ、再送要求を受信した送信側は要求されているデータをもう一度送信する。これに対して、ＬＤＰＣ符号の外側に誤り訂正符号を備えた情報ビット列に誤り訂正処理を施す際、ＬＤＰＣ符号と誤り訂正符号との双方の特徴を組み合わせて誤り訂正率を向上させることが提案されている。これは、ＬＤＰＣ復号処理の過程で得られる尤度を示す情報にもとづいて、検出された行の中の信頼性の小さい順に所定数のビットを抽出し、抽出した各ビットのうちのひとつのビットを反転させる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１４１４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＬＤＰＣは無線通信に適用可能である。無線通信では、フェージングの影響によって受信振幅が大きく変動する。そのため、受信振幅が小さくなっている区間やＬＤＰＣの列重みが小さい区間において誤りが発生しやすい。一方、復号処理の過程で得られる尤度を示す情報にもとづいて、検出された行の中の信頼性の小さい順に所定数のビットを抽出しても、前述の状況は反映されていない。その結果、ビット反転を行うべきビットの決定精度が高くなく、正しくビット反転を行えないおそれがある。これより、無線通信における通信状況を反映させて、ビット反転すべきビットを決定することが望ましい。
【０００６】
本発明はこうした状況に鑑みてなされたものであり、その目的は、品質が変動する通信路においてＬＤＰＣ符号を適用する場合に、誤りが生じたビットの推定精度を向上させる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の復号装置は、通信路を介して、ＬＤＰＣ符号化がなされるとともにＣＲＣが付加されたデータを入力する入力部と、入力部において入力したデータをもとに、通信路の品質が悪化している区間を検出する悪化区間検出部と、入力部において入力したデータを復号する復号部と、復号部において復号したデータに対して、ＣＲＣによる誤り検出を実行する誤り検出部と、誤り検出部において誤りが検出された場合、復号部において復号したデータのうち、悪化区間検出部において検出した区間であって、入力部において入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定する特定部とを備える。誤り検出部は、特定部において特定したビットに対するビット値が反転されたデータに対して、ＣＲＣによる誤り検出を実行する。
【０００８】
この態様によると、通信路の品質が悪化している区間であって列重みがより小さい区間を優先的にビット値を反転させるべきビットとして特定するので、反転すべきビットの特定精度を向上できる。
【０００９】
特定部は、ビット値が反転されたデータに対しても誤り検出部において誤りが検出された場合、悪化区間検出部において検出した区間だけをもとに、復号部において復号したデータのうち、ビット値を反転させるべきビットを特定してもよい。この場合、通信路の品質が悪化している区間だけでもビットを反転させるので、修正能力を向上できる。
【００１０】
特定部は、ビット値が反転されたデータに対しても誤り検出部において誤りが検出された場合、復号部において復号したデータのうち、入力部において入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定してもよい。この場合、列重みが小さい区間だけでもビットを反転させるので、修正能力を向上できる。
【００１１】
特定部は、悪化区間検出部において区間が未検出である場合、復号部において復号したデータのうち、入力部において入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定してもよい。この場合、通信路の品質が悪化している区間が検出されなくても、列重みがより小さい区間だけでビットを反転させるので、修正能力を向上できる。
【００１２】
特定部は列重みが所定の値より小さいと判定された区間のみをビット値を反転させるべきビットとして特定してもよい。
【００１３】
本発明の別の態様は、復号方法である。この方法は、通信路を介して、ＬＤＰＣ符号化がなされるとともにＣＲＣが付加されたデータを入力するステップと、入力したデータをもとに、通信路の品質が悪化している区間を検出するステップと、入力したデータを復号するステップと、復号したデータに対して、ＣＲＣによる誤り検出を実行するステップと、誤りが検出された場合、復号したデータのうち、通信路の品質が悪化している区間であって入力したデータに対する検査行列の列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定するステップと、特定したビットに対するビット値が反転されたデータに対して、ＣＲＣによる誤り検出を実行するステップと、を備える。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、品質が変動する通信路においてＬＤＰＣ符号を適用する場合に、誤りが生じたビットの推定精度を向上できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例に係る通信システムの構成を示す図である。
【図２】図１のＬＤＰＣ符号化部において使用される検査行列を示す図である。
【図３】図３（ａ）−（ｂ）は、図１のＬＤＰＣ符号化部において使用される別の検査行列を示す図である。
【図４】図１の復号部の構成を示す図である。
【図５】図５（ａ）−（ｉ）は、図４の復号部の動作概要を説明する図である。
【図６】図４の復号部の動作を模式的に表したタナーグラフを示す図である。
【図７】図４の復号部における外部値比の概要を示す図である。
【図８】図４の復号部における事前値比の概要を示す図である。
【図９】図９（ａ）−（ｅ）は、図４の復号部の動作概要を説明する別の図である。
【図１０】図４の復号部による復号手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
本発明を具体的に説明する前に、まず概要を述べる。本発明の実施例は、ＬＤＰＣ符号化を実行する送信装置と、送信装置において符号化されたデータ（以下、「符号化データ」という）に対して検査行列をもとに繰り返し復号を実行する受信装置とを含む通信システムに関する。特に、受信装置は、ｍｉｎ−ｓｕｍアルゴリズムを実行する。ＬＤＰＣ符号を適用する場合であっても、通信路の品質が変動すれば、誤り発生の確率が増加する。誤り発生のビットを正確に推定できれば、当該ビットの値を修正することによって、誤りが訂正される。誤りが訂正されると、再送の必要がなくなるので、伝送効率が向上する。誤り発生のビットの推定精度を向上するために、本実施例に係る通信システム、特に受信装置は、次のように構成される。
【００１８】
受信装置は、受信した信号をもとに通信路の状況を推定する。ここでは、例えば、通信路の状況として受信振幅を測定する。また、受信装置は、受信振幅がしきい値よりも小さくなっている区間を検出する。一方、受信装置は、受信した信号をＬＤＰＣ復号し、復号結果に対してＣＲＣによる誤り検出を実行する。誤りが検出されれば、受信装置は、ＬＤＰＣの検査行列のうち、列重みの小さい部分が使用された区間を特定する。さらに、受信装置は、受信振幅がしきい値よりも小さくなっている区間と列重みの小さい部分が使用された区間との重複部分に含まれたビットを優先的にビット反転させる。受信装置は、ビット反転させた信号に対してＣＲＣによる誤り検出を実行する。
【００１９】
図１は、本発明の実施例に係る通信システム１００の構成を示す。通信システム１００は、送信装置１０、受信装置１２を含む。送信装置１０は、情報データ生成部２０、ＬＤＰＣ符号化部２２、変調部２４を含む。受信装置１２は、復調部２６、復号部２８、情報データ出力部３０を含む。
【００２０】
情報データ生成部２０は、送信すべきデータを取得し、情報データを生成する。なお、取得したデータがそのまま情報データとされてもよい。情報データ生成部２０は、情報データをＬＤＰＣ符号化部２２へ出力する。ＬＤＰＣ符号化部２２は、情報データ生成部２０から、情報データを入力する。ＬＤＰＣ符号化部２２は、情報データに対して、所定のフレーム単位でＣＲＣを付加する。さらに、ＬＤＰＣ符号化部２２は、ＬＤＰＣでの検査行列をもとにしたパリティ（以下、「ＬＤＰＣパリティ」という）も情報データに付加する。ＬＤＰＣパリティを付加した情報データが、前述の符号化データに相当する。ＬＤＰＣ符号化部２２は、符号化データを変調部２４に出力する。
【００２１】
図２は、ＬＤＰＣ符号化部２２において使用される検査行列を示す。検査行列Ｈｍｎは、ｍ行ｎ列の行列である。図２では、検査行列Ｈｍｎが３行６列としている。なお、ＬＤＰＣ符号にはレギュラーＬＤＰＣ符号とイレギュラーＬＤＰＣ符号が存在する。レギュラーＬＤＰＣ符号は、各行の重みと各列の重みがそれぞれ一定とされた検査行列により定義される。一方、イレギュラーＬＤＰＣ符号は、各行の重みおよび各列の重みがそれぞれ一定でないＬＤＰＣ行列により定義される。各行の重みおよび各列の重みの分布が適切なイレギュラーＬＤＰＣ符号を用いれば、レギュラーＬＤＰＣ符号を用いた場合よりも良好なＢＥＲ（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ：ビット誤り率）特性が得られることが知られている。
【００２２】
図３（ａ）−（ｂ）は、ＬＤＰＣ符号化部２２において使用される別の検査行列を示す。これらは、ＩＥＥＥ８０２．１６ｅ規格にて採用されている。図３（ａ）は、符号化率Ｒ＝２／３（Ａ）の場合である。この場合では、パリティビットの列重みが２および３であり、システマチックビットの列重みが３および６である。図３（ｂ）は、符号化率Ｒ＝５／６の場合である。この場合では、パリティビットの列重みが２および３であり、システマチックビットの列重みが２、３、４である。各行列の数字は巡回シフト行列を示しており、１ブロックあたりのビット数は２４〜９６であり、符号長は５７６〜２３０４ビットである。本実施例では、検査行列として、図２、図３（ａ）−（ｂ）のいずれが使用されてもよいとする。さらに、これら以外の検査行列が使用されてもよい。図１に戻る。
【００２３】
変調部２４は、ＬＤＰＣ符号化部２２から符号化データを入力する。変調部２４は、符号化データを変調する。変調方式として、ＰＳＫ（Ｐｈａｓｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）、ＦＳＫ（Ｆｒｅｑｕｅｎｃｙ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）等が使用される。変調部２４は、変調した符号化データを変調信号として送信する。
【００２４】
復調部２６は、変調部２４から通信路、例えば無線伝送路を介して変調信号を受信する。復調部２６は、変調信号を復調する。復調には公知の技術が使用されればよいので、ここでは説明を省略する。復調部２６は、復調結果（以下、「復調データ」という）を復号部２８へ出力する。また、復調部２６は、ＡＧＣ（Ａｕｔｏｍａｔｉｃ  Ｇａｉｎ  Ｃｏｎｔｒｏｌ）を含み、ＡＧＣによって復調データの振幅が一定値に近づくように制御する。復調部２６は、ＡＧＣ制御電圧も復号部２８へ出力する。ここでは、受信した変調信号の振幅が小さくなると、ＡＧＣ制御電圧が大きくなり、受信した変調信号の振幅が大きくなると、ＡＧＣ制御電圧が小さくなる傾向にある。
【００２５】
復号部２８は、復調部２６からの復調データを入力するとともに、復調部２６からのＡＧＣ制御電圧も入力する。復号部２８は、復調データに対して、ＬＤＰＣでの検査行列による復号処理を繰り返し実行する。復号処理として、例えば、ｍｉｎ−ｓｕｍアルゴリズムが実行される。ｍｉｎ−ｓｕｍアルゴリズムは、次の手順で実行される。
１．初期化：事前値比を初期化し、最大復号繰り返し回数を設定する。
２．チェックノード処理：検査行列の行方向に対して外部値比を更新する。
３．変数ノード処理：検査行列の列方向に対して事前値比を更新する。
４．一時推定語を計算する。
【００２６】
これらの手順の詳細な説明は省略するが、これらの処理の終了後、ＣＲＣによる誤り検出が実行される。誤りが検出されなければ、復号部２８は、復号結果（以下、「復号データ」という）を情報データ出力部３０へ出力する。誤りが検出されれば、所定のビット値を反転させてから、ＣＲＣによる誤り検出が再度実行される。それでも誤りが検出される場合、反転させるビットを変えながら、ＣＲＣによる誤り検出が繰り返される。最終的に、誤りが存在する場合、受信装置１２は、送信装置１０に対して再送を要求する。ここで、復号部２８は、受信振幅が小さくなっている区間と、検査行列の列重みが小さくなっている区間との重複部分に含まれたビットを優先的に反転させる。受信振幅が小さくなっている区間は、フェージングなどの影響を多く受けている区間といえる。情報データ出力部３０は、復号部２８からの復号データを入力する。情報データ出力部３０は、復号データをもとに情報データを生成する。なお、復号データがそのまま情報データとされてもよい。
【００２７】
この構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２８】
図４は、復号部２８の構成を示す。復号部２８は、受信振幅変動検出部４０、変動位置記憶テーブル４２、ＬＤＰＣ復号部４４、列重みテーブル４６、特定部４８、ＣＲＣ部５０、反転部５２を含む。復号部２８は、図示しない復調部２６からの復調データを入力する。復調データは、通信路を介して、ＬＤＰＣ符号化がなされるとともにＣＲＣが付加されたデータといえる。なお、復調データは、フレームを形成しているものとする。また、フレーム同期については公知の技術が使用されればよいので、ここでは説明を省略する。受信振幅変動検出部４０は、図示しない復調部２６からのＡＧＣ制御電圧を入力する。受信振幅変動検出部４０は、ＡＧＣ制御電圧がしきい値よりも大きくなった区間を検出する。ＡＧＣ制御電圧がしきい値よりも大きくなる場合、受信した信号の振幅が小さくなっており、フェージングの影響を受けているともいえる。そのため、ＡＧＣ制御電圧がしきい値よりも大きくなった区間を検出することは、通信路の品質が悪化している区間を検出することに相当する。
【００２９】
ここでは、図５（ａ）−（ｉ）を使用して受信振幅変動検出部４０の処理を説明する。図５（ａ）−（ｉ）は、復号部２８の動作概要を説明する図である。すべてに共通して、横軸が時間を示す。図５（ａ）は、図１の復調部２６にて受信される変調信号を示す。ここでは、ｎフレームから（ｎ＋３）フレームまでを示す。図示のごとく、（ｎ＋１）フレームにおいて振幅はほぼ一定であるが、ｎフレーム、（ｎ＋２）フレーム、（ｎ＋３）フレームにおいて振幅が変動している。
【００３０】
図５（ｂ）は、図１の復調部２６から出力されるＡＧＣ制御電圧を示す。前述のごとく、復調部２６にはＡＧＣが備えられているので、復調データの振幅は、すべてのフレームにおいてほぼ一定になっている。そのため、図５（ａ）において振幅が変動している部分に対応して、図５（ｂ）のｎフレーム、（ｎ＋２）フレーム、（ｎ＋３）フレームではＡＧＣ制御電圧が大きくなっている。受信振幅変動検出部４０は、ＡＧＣ制御電圧としきい値とを比較し、ＡＧＣ制御電圧がしきい値よりも大きくなっている場合、フェージングが発生していると判定する。このしきい値は、例えば、フェージングの影響が小さい状況、つまり通常の状況でのＡＧＣ制御電圧に対して６ｄＢ加算した値に設定される。
【００３１】
図５（ｃ）は、フェージング発生の推定結果を示す。フェージングの発生が推定された場合に、推定結果はＨｉｇｈレベルに設定され、フェージングの発生が推定されない場合に、推定結果はＬｏｗレベルに設定される。ここで、受信振幅変動検出部４０は、受信開始からのデータ数をカウントしながら、Ｈｉｇｈレベルになったデータのフレーム内での開始位置と終了位置とを取得する。図５（ｄ）は、フェージング発生による振幅変動がフレームに含まれているかを示す。図５（ｃ）に示した推定結果のＨｉｇｈレベルがフレーム内に含まれていれば、当該フレームでは、「振幅変動有り」と示される。一方、図５（ｃ）に示した推定結果のＨｉｇｈレベルがフレーム内に含まれていなければ、当該フレームでは、「振幅変動無し」と示される。ここでは、（ｎ＋１）フレームにおいて「振幅変動無し」と示され、他のフレームにおいて「振幅変動有り」と示される。図５（ｅ）−（ｉ）については後述する。図４に戻る。
【００３２】
変動位置記憶テーブル４２は、受信振幅変動検出部４０から、Ｈｉｇｈレベルになったデータのフレーム内での開始位置と終了位置とに関する情報を入力し、これらをテーブル化して記憶する。この情報は、図５（ｃ）のように示され、受信振幅変動中の受信データ位置情報ともいえる。
【００３３】
ＬＤＰＣ復号部４４は、復調データを入力する。ＬＤＰＣ復号部４４は、復調データに対してｍｉｎ−ｓｕｍアルゴリズムを実行することによって、復調データを復号する。ここでは、ｍｉｎ−ｓｕｍアルゴリズムを説明する。図６は、復号部２８の動作を模式的に表したタナーグラフを示す。これは、図２の検査行列に対応する。タナーグラフでは、ｂ１からｂ６が変数ノードと呼ばれ、ｃ１からｃ３がチェックノードと呼ばれる。ここでは、変数ノードの数をｎとし、ｂｎをｎ番目の変数ノードとする。また、チェックノードの数をｍとし、ｃｍをｍ番目のチェックノードとする。変数ノードｂ１からｂ６には、ＬＤＰＣ復号部４４に入力されたデータｙ１からｙ６が接続されている。図４に戻る。
【００３４】
チェックノード処理では、チェックノードにつながる変数ノードとの間で、ｃｍからｂｍへの外部値比αｍｎが更新される。αｍｎの計算は、検査行列Ｈｍｎ＝１を満たすすべての組（ｍ、ｎ）について、次のようになされる。
αｍｎ＝ａ（（Πｓｉｇｎ（βｍｎ’））・ｍｉｎ｜βｍｎ’｜・・・（１）
ここで、ｎ’はＡ（ｍ）＼ｎ  ：Ａ（ｍ）はチェックノードｍに接続する変数ノード集合で、＼ｎはｎを含まない差集合を示す。また、ｓｉｇｎはシグネチャ関数、ｍｉｎ｜βｍｎ’｜は絶対値の最小値選択を示す。ここで、ａは正規化定数である。図７は、復号部２８における外部値比の概要を示す。これも、図２の検査行列に対応する。外部値比α１１は、β１１’から導出される。図４に戻る。
【００３５】
変数ノード処理では、αｍｎから変数ノードにつながるチェックノードとの間で、ｂｎからｃｍへの事前値比βｍｎが更新される。βｍｎの計算は、検査行列Ｈｍｎ＝１を満たすすべての組（ｍ、ｎ）について、次のようになされる。
βｍｎ＝Σαｍ’ｎ＋λｎ・・・・（２）
ここで、λｎは、入力データｙｎに等しい。入力データｙｎは、復調部２６からの復調データに相当する。また、ｍ’はＢ（ｎ）＼ｍ：Ｂ（ｎ）は変数ノードｎに接続するチェックノード集合で、＼ｍはｍを含まない差集合を示す。図８は、復号部２８における事前値比の概要を示す。これも、図２の検査行列に対応する。事前値比β１１は、α１’１から導出される。図４に戻る。ＬＤＰＣ復号部４４は、チェックノード処理と変数ノード処理を所定回数繰り返した後、一時推定語を計算して終了する。ＬＤＰＣ復号部４４は、一次推定語を復号データとして出力する。
【００３６】
列重みテーブル４６は、通信システム１００にて使用されうる少なくともひとつの検査行列に対する列重みに関する情報を記憶しており、ＬＤＰＣ復号部４４から、ＬＤＰＣ復号部４４が復号に使用している検査行列の指定を入力する。ここで、列重みに関する情報は、検査行列ごとにテーブル形式で記憶されているので、列重みテーブルとも呼ばれる。また、複数の検査行列は、図２、図３（ａ）−（ｂ）であるとする。そのため、列重みテーブル４６は、複数の符号化率のそれぞれに応じた列重みテーブルを記憶しているといえる。列重みテーブル４６は、フレームに同期して、列重みの小さい区間を列重みテーブルから出力する。
【００３７】
ＣＲＣ部５０は、ＬＤＰＣ復号部４４から復号データを入力する。ＣＲＣ部５０は、復号データに対して、ＣＲＣによる誤り検出を実行する。誤りが検出されない場合、ＣＲＣ部５０は、復号データを図示しない情報データ出力部３０に出力する。誤りが検出された場合、ＣＲＣ部５０は、その旨を特定部４８に出力するとともに、復号データを反転部５２に出力する。
【００３８】
特定部４８は、ＣＲＣ部５０から誤り検出を通知された場合、変動位置記憶テーブル４２から、Ｈｉｇｈレベルになったデータのフレーム内での開始位置と終了位置とに関する情報を入力する。当該情報は、受信振幅が小さくなった区間に関する情報に相当する。また、特定部４８は、列重みテーブル４６から、列重みが小さい区間に関する情報も入力する。特定部４８は、受信振幅が小さくなった区間に関する情報と列重みが小さい区間に関する情報とをもとに、復号データのうち、ビット値を反転させるべきビットを特定する。具体的に説明すると、受信振幅が小さくなった区間と列重みが小さい区間とが一致する区間に含まれたビットを特定する。複数のビットが特定された場合、特定部４８は、列重みが小さくなるほど高くなるような優先順位であって、かつ同一の列重みの場合、フレームの前方に配置されているほど高くなるような優先順位を付与する。これらのビットがビット値の反転候補である。
【００３９】
一方、受信振幅が小さくなった区間が変動位置記憶テーブル４２に記憶されていない場合、特定部４８は、列重みテーブル４６から、列重みが小さい区間に関する情報をもとに、復号データのうち、ビット値を反転させるべきビットを特定する。ここでも、複数のビットが特定された場合、特定部４８は、列重みが小さくなるほど高くなるような優先順位であって、かつ同一の列重みの場合、フレームの前方に配置されているほど高くなるような優先順位を付与する。特定部４８は、ビット値の反転候補を反転部５２に通知する。その際、特定部４８は、優先順位も反転部５２に通知する。
【００４０】
反転部５２は、ＣＲＣ部５０から、復号データを入力するとともに、特定部４８から、ビット値の反転候補および優先順位を入力する。反転部５２は、復号データのうち、優先順位にしたがって反転候補のビット値を反転する。これは、復号処理で誤っている可能性の高いビットを選択してビット値を反転させることに相当する。なお、同時に複数ビットのビット値を反転させてもよい。反転部５２は、反転後の復号データをＣＲＣ部５０に出力する。ＣＲＣ部５０は、反転部５２においてビット値が反転された復号データに対して、ＣＲＣによる誤り検出を再度実行する。誤りが検出されなければ、前述のごとく、復号データが情報データ出力部３０に出力される。誤りが検出された場合、反転部５２は、復号データのうち、次に優先順位が高いビットのビット値を反転させ、ＣＲＣ部５０は、ビット値が反転された復号データに対してＣＲＣによる誤り検出を実行する。誤りが検出されなくなるまで、このような処理が繰り返される。なお、繰り返し回数の上限値が決められていてもよいし、反転候補がなくなるまで繰り返されてもよい。
【００４１】
図５（ｅ）は、列重みテーブル４６から出力される情報であって、かつ列重みの小さい区間に関する情報を示す。ここでは、Ｈｉｇｈレベルになっている区間が、列重みの小さい区間に相当する。図５（ｆ）は、特定部４８にて特定された区間であって、かつ受信振幅が小さくなった区間と列重みが小さい区間とが一致する区間である。これは、図５（ｃ）のＨｉｇｈレベルと図５（ｅ）のＨｉｇｈレベルとが重複する区間に相当する。また、図５（ｆ）におけるＨｉｇｈレベルの区間が、ビット値を反転させるべきビットに相当する。図５（ｇ）は、ＣＲＣ部５０おける誤り検出の結果である。「ＣＲＣチェック失敗」と示されたフレームにおいて誤りが検出されている。図５（ｈ）は、反転部５２においてビット値が反転されたビットの位置を示す。Ｈｉｇｈレベルになっているビットのビット値が反転される。図５（ｉ）は、ビット値が反転された復号データに対する誤り検出の結果である。図示のごとく、１回目の誤り検出において「ＣＲＣチェック失敗」と示されたフレームでも、「ＣＲＣチェック成功」に変わる。
【００４２】
図９（ａ）−（ｅ）は、復号部２８の動作概要を説明する別の図である。これらは、図５（ｃ）、（ｅ）、（ｆ）を詳細にした図である。ここでは、説明を簡単にするために、１フレームが２４ビットの符号化率５／６であるとし、図３（ｂ）の検査行列を使用する場合を想定する。図９（ａ）は、検査行列の列重みを示す。図示のごとく、列重みは２〜４で、反転ビット候補は、パリティビットの４ビットを除いて、システマチックビットの列重み２と３とする。優先順位は列重みが小さい順に高くする。もし列重みが同じ場合には、フレームの先頭から順番に優先順位を付与する。その結果、図９（ｂ）、（ｃ）のように、優先順位が１〜９の順に付与される。ここで、図９（ｂ）が列重み２のタイミングを示し、図９（ｃ）が列重み３のタイミングを示す。
【００４３】
図９（ｄ）は、図５（ｃ）に相当する。図９（ｅ）は、特定部４８において決定された反転ビットの優先順位を示す。以上の操作により、優先順位が高い順にビット反転優先順位１〜３のビット反転位置が決定される。反転部５２は、優先順位１のビット値を反転させる。それでもＣＲＣ部５０において誤りが検出される場合、優先順位２のビット値を反転させる。優先順位を下げていきながら、このような処理が繰り返し実行される。１ビット反転処理でも誤りが検出されれば、２ビット反転がなされる。この場合も優先順位が高いビットの組合せから順にビット反転がなされる。なお、無限ループにならないように、繰り返し数に上限値が設けられる。
【００４４】
以上の構成による通信システム１００の動作を説明する。図１０は、復号部２８による復号手順を示すフローチャートである。ＬＤＰＣ復号部４４は、ＬＤＰＣ復号処理を実行する（Ｓ１０）。ＣＲＣ部５０においてＣＲＣチェックが成功すれば（Ｓ１２のＹ）、処理は終了される。一方、ＣＲＣ部５０においてＣＲＣチェックが成功しなければ（Ｓ１２のＮ）、特定部４８は、列重みテーブル４６から列重みを取得する（Ｓ１４）。受信振幅変動検出部４０において受信振幅変動が検出されれば（Ｓ１６のＹ）、特定部４８、反転部５２は、受信振幅変動位置とＬＤＰＣ列重みの小さい順よりビット反転候補の順位をつけてビット反転を実行する（Ｓ１８）。ＣＲＣ部５０においてＣＲＣチェックが成功せず（Ｓ２０のＮ）、所定回数に達していなければ（Ｓ２２のＮ）、ステップ１８に戻る。一方、所定回数に達すれば（Ｓ２２のＹ）、ＣＲＣ部５０は、ＣＲＣチェックＮＧを出力する（Ｓ２４）。ＣＲＣ部５０においてＣＲＣチェックが成功すれば（Ｓ２０のＹ）、処理は終了される。
【００４５】
受信振幅変動検出部４０において受信振幅変動が検出されなければ（Ｓ１６のＮ）、特定部４８、反転部５２は、ＬＤＰＣ列重みの小さい順よりビット反転候補の順位をつけてビット反転を実行する（Ｓ２６）。ＣＲＣ部５０においてＣＲＣチェックが成功せず（Ｓ２８のＮ）、所定回数に達していなければ（Ｓ３０のＮ）、ステップ２６に戻る。一方、所定回数に達すれば（Ｓ３０のＹ）、ＣＲＣ部５０は、ＣＲＣチェックＮＧを出力する（Ｓ３２）。ＣＲＣ部５０においてＣＲＣチェックが成功すれば（Ｓ２８のＹ）、処理は終了される。
【００４６】
本発明の実施例によれば、受信振幅が小さくなっている区間と列重みが小さい区間とが重複した区間に含まれたビットを優先的に反転するので、誤りが生じやすいビットを特定できる。また、誤りが生じやすいビットを修正するので、修正能力を向上できる。また、修正能力が向上されるので、再送回数を低減できる。また、再送回数が低減されるので、伝送効率を向上できる。また、受信振幅が小さくなっている区間が検出されなくても、列重みがより小さい区間を優先的にビット反転させるので、修正能力を向上できる。また、受信時にフェージングなどの振幅変動があって復号後に誤りが検出されても、誤りをなくすためのビット反転位置の特定精度を向上できる。
【００４７】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４８】
本発明の実施例において、通信システム１００は無線通信システムを前提としているので、送信装置１０および受信装置１２は、無線通信装置に含まれる。しかしながらこれに限らず例えば、通信システム１００は有線通信システムを前提としてもよい。その際、送信装置１０および受信装置１２は、有線通信装置に含まれる。本変形例によれば、本発明をさまざまな装置に適用できる。
【００４９】
本発明の実施例において、特定部４８、反転部５２は、受信振幅が小さくなっている区間のうち、列重みが小さい区間に含まれたビットを反転させている。しかしながらこれに限らず例えば、ビット値が反転されたデータに対しても誤りが検出された場合、特定部４８、反転部５２は、受信振幅が小さくなっている区間だけをもとに、復号データのうち、ビット値を反転させるべきビットを特定してもよい。本変形例によれば、受信振幅が小さくなっている区間だけでもビットを反転させるので、修正能力を向上できる。
【００５０】
また、ビット値が反転されたデータに対しても誤りが検出された場合、特定部４８、反転部５２は、復号データのうち、列重みがより小さい区間を優先的に、ビット値を反転させるべきビットとして特定してもよい。本変形例によれば、列重みがより小さい区間を優先的にビットを反転させるので、修正能力を向上できる。
【００５１】
また、本発明の実施例において、特定部４８、反転部５２は、列重みが所定の値より小さいと判定された区間を特定し、列重みが小さくなるほど高くなるような優先順位であって、かつ同一の列重みの場合、フレームの前方に配置されているほど高くなるような優先順位にして、ビットを反転させている。しかしながら、これに限らず特定部４８、反転部５２は、列重みが所定の値より小さいと判定された区間に関しては列重みによる優先順位をつけることなくフレームの前方に配置されているほど高くなるような優先順位をつけてもよい。また、特定部４８、反転部５２は、列重みが所定の値より小さいと判定された区間を特定せず、列重みが小さくなるほど高くなるような優先順位であって、かつ同一の列重みの場合、フレームの前方に配置されているほど高くなるような優先順位にして、すべての区間を優先順位の順番にビットを反転させてもよい。本変形例によれば、処理を簡略することができる。なお、特定部４８は列重みが同じ場合にフレームの前方からに限らず例えばフレーム後方から優先順位をつけてもよい。
【符号の説明】
【００５２】
１０  送信装置、  １２  受信装置、  ２０  情報データ生成部、  ２２  ＬＤＰＣ符号化部、  ２４  変調部、  ２６  復調部、  ２８  復号部、  ３０  情報データ出力部、  ４０  受信振幅変動検出部、  ４２  変動位置記憶テーブル、  ４４  ＬＤＰＣ復号部、  ４６  列重みテーブル、  ４８  特定部、  ５０  ＣＲＣ部、  ５２  反転部、  １００  通信システム。
【図１】
2012195684.tif 000003
【図２】
2012195684.tif 000004
【図３】
2012195684.tif 000005
【図４】
2012195684.tif 000006
【図５】
2012195684.tif 000007
【図６】
2012195684.tif 000008
【図７】
2012195684.tif 000009
【図８】
2012195684.tif 000010
【図９】
2012195684.tif 000011
【図１０】
2012195684.tif 000012