(57)【特許請求の範囲】
【請求項１】
LDPC符号により符号化された所定長のブロックデータを受信して復号する無線受信装置において、
ブロックデータのビット毎の尤度を求めてブロックデータをLDPC復号する復号部と、
前記復号部による復号結果のエラーの有無を判定するエラーチェック部と、
エラーチェック部により、エラー有りと判定された場合、ブロックデータを構成する各ビットデータのうち尤度の絶対値が最も低いビットデータを含む少なくとも一つの所定ビットデータの尤度を、各ビットデータが送信時に取り得る値であって且つ絶対値が同じで符号の異なるあらかじめ決められた２値である正の最適値又は負の最適値のいずれか一方に置き換える尤度置換部とを備え、
前記復号部は、前記尤度置換部により前記最適値に置き換えられたビットデータを含むブロックデータを再度復号することを特徴とする無線受信装置。
【請求項２】
請求項１において、
前記所定のビットデータは、尤度の絶対値が最も低い一つのビットデータであることを特徴とする無線受信装置。
【請求項３】
請求項２において、
前記尤度置換部は、前記所定のビットデータの尤度を前記正の最適値又は前記負の最適値のいずれか一方の最適値に置き換え、
前記復号部は、前記尤度置換部により前記一方の最適値に置き換えられた前記所定のビットデータを含むブロックデータを再度復号し、前記エラーチェック部が当該再度の復号結果にエラー有りと判定した場合、
前記尤度置換部は、前記所定のビットデータの尤度を他方の最適値に置き換え、前記復号部は、前記尤度置換部により前記他方の最適値に置き換えられた前記所定のビットデータを含むブロックデータを再々度復号することを特徴とする無線受信装置。
【請求項４】
請求項１において、
前記所定のビットデータは、各ビットデータのうち尤度の絶対値が低い順に選択された複数のビットデータであることを特徴とする無線受信装置。
【請求項５】
請求項４において、
前記エラーチェック部が復号結果にエラー有りと判定すると、前記尤度置換部は、順次、異なる置き換えパターンで、選択されたビットデータの尤度をそれぞれ前記正の最適値又は負の最適値のいずれか一方に置き換えて、復号を行うことを特徴とする無線受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信において、符号化されたデータを受信し、該受信データを復号する無線受信装置に関し、特に、LDPC(Low Density Parity Check)符号により符号化された受信データを復号する無線受信装置に関する。
【背景技術】
【０００２】
無線通信における送信側では、データを符号化して送信アンテナから送信する。符号化には、例えば、畳み込み符号やターボ符号などが用いられる。受信側では、伝搬路を介して、符号化されたデータを受信アンテナで受信する。受信データは復調された後、復号器により復号される。畳み込み符号の場合は、例えばビタビ復号が用いられ、ターボ符号の場合は、例えばターボ復号が用いられる。復号処理が完了すると、復号の成功/失敗（エラーのあり／なし）が判定される（エラーチェック）。エラーチェックにはCRCが用いられることが多い。エラーチェックにより復号成功と判定されたデータは上位のレイヤに送られる。一方、エラーチェックで復号失敗と判定された場合は、データは破棄され同じデータをもう一度送るよう再送要求が送信される。再送要求は受信側から送信側に送られ、再送要求を受信した送信側は要求されているデータをもう一度送信する。
【０００３】
ここで、ビタビ復号及びターボ復号について簡単に説明する。ビタビ復号は最尤復号法の一つで、畳み込み符号を復号する方法である。その原理は、受信したデータから、送信側で畳み込み符号化を行った時に通過したトレリス線図上の経路に最も近いと思われるパスを順番に選択していくというものである。受信した信号（符号化された信号）の最初から順番に復号しなければならないので、全処理を終えるには原理的には受信信号の長さ分だけ時間がかかる。畳み込み符号化を行うと、符号化率に応じた複数の符号語がパラレルに出力される。これをパラレルのまま送信すれば、受信信号長は符号化前の信号長と同じことになる。復号にかかる時間は符号化前のデータの長さと同じである。
【０００４】
また、ターボ符号は畳み込み符号を二つ以上用いた符号で、一般的には情報ビットと、その情報ビットの入力順に生成される畳み込み符号１と、インタリーブ(並べ替え)された情報ビットから生成される畳み込み符号２から構成される。このターボ符号を復号するターボ復号法の基本的な原理は、ビタビ復号と同様に、受信したデータから符号化を行った時に通過したトレリス線図上のパスを推定していくというものである。ターボ復号ではデインタリーブを行ってからも復号を行い、さらに復号を数回から十数回繰り返すというのが特徴的である。これにより非常に高い復号性能を得ることが出来るが、ビタビ復号に比べて何倍もの処理時間がかかってしまう。
【０００５】
また、ビタビ復号及びターボ復号は、受信データを前（後）から順番に復号していかなければならないので、原理的に完全並列処理は不可能である（実際のターボ復号回路では様々な工夫をして部分的に並列処理が出来るようにしている）。
【０００６】
一方で、LDPC復号が知られており（非特許文献１）、無線通信におけるデータの復号法として、LDPC復号法を用いることが提案されている（特許文献１、２及び３）。LDPC復号はLDPC符号(Low Density Parity Check:低密度パリティ検査符号)を復号する方法であり、LDPC符号を復号するためのsum-product法やmin-sum法の総称として用いられる。LDPC符号は、その名の通り、行列内の1の数が非常に少ない検査行列で定義される線形符号であり、LDPC符号自体は1960年代に発明されたものだが、近年になってその性能が再評価されて次世代の誤り訂正符号として期待されている。
【０００７】
LDPC符号は、
・  理論的限界（シャノン限界）に迫る復号性能を有する
（符号長が長ければターボ符号を上回る。符号長100万でシャノン限界から0.3dBという実験結果もある）
・  復号時間が符号長に比例する
（符号長に対し指数関数的に計算量が増えず、sum-productアルゴリズムを用いることで計算量を少なくできる
・  復号処理の並列化が可能である
（理論的には復号処理を全並列で処理できる）
という特徴を有する。
【０００８】
特に、LDPC復号(sum-product復号)は原理的に完全並列処理が可能であり、完全並列処理を行うことで、符号長に関係なく２クロック（α演算とβ演算を各１クロックずつ行う）で処理可能となる。ただし、LDPC復号も反復復号法であり、復号を数回から数十回繰り返す必要がある。また、符号長にもよるが、LDPC復号を完全並列処理する回路を設計しようとすると、回路規模は大きくなる。
【０００９】
ビタビ復号、ターボ復号、LDPC復号の処理時間の比較を簡単な例で説明する。
【００１０】
例）
5000ビットの情報ビットを、畳み込み符号、ターボ符号、LDPC符号の各符号化法で符号化率1/2で符号化し、10000ビットの符号語を生成し送信する。受信側でこの符号語を受信し、ビタビ復号、ターボ復号、LDPC復号(sum-product復号)の各復号法で復号処理をしたときにかかる時間は以下のようになる。ここで、ターボ復号の繰り返し数は10回、LDPC復号の繰り返し数は30回とする。
・ビタビ復号
符号化前のデータ数は5000ビットであるので、1ビットにつき1クロックかかるとすると、全部処理するのにかかる時間は、
5000クロック
となる。
・ターボ復号
ビタビ復号同様1回の復号にかかる時間は5000クロック。これをインタリーブしてからもう1回復号するから「×2」（インタリーブ等の処理時間は無視）、さらに10回の繰り返し復号を行うと「×10」する必要があるので、トータルの処理時間は、
5000×2×10  =  100000クロック
となる。
・LDPC復号(sum-product復号)
完全並列処理をすると符号長に関係なく2クロック（α演算とβ演算を各1クロックで行う）で処理できる。繰り返し復号を30回行うと「×30」する必要があるので、トータルの処理時間は、
2×30  =  60クロック
となる。
【００１１】
このように、LDPC復号の処理時間は、ビタビ復号やターボ復号のそれと比べて、非常に短い。復号処理に必要な時間を短い圧倒的に簡単な計算であるが、原理的には上記のように処理時間に大きな差が出る。（回路規模は無視している。）LDPC復号に比べるとビタビ復号やターボ復号は処理時間が長いので、復号を繰り返すことで、通信遅延を招く。
【特許文献１】特開２００６−６０６９５号公報
【特許文献２】特開２００５−３４７８８３号公報
【特許文献３】特開２００３−３４８０６４号公報
【非特許文献１】「低密度パリティ検査符号とその復号法」（２００２年６月５日、（株）トリケップス発行、和田山正著）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述のように、エラーチェックにより復号に失敗したと判定された場合、現状、再送要求が行われ、同一のデータが再度送信される。従って、再送要求により、時間と帯域のロスが生じる。
【００１３】
再送要求を行わずに、再度、復号することも想定されるが、一度復号に失敗したデータをもう一度復号しても、また同じように失敗するだけであるので、正しく復号するためには、何らかの改善策をデータに施す必要が生じる。
【００１４】
仮に、何らかの改善策がデータに施されたとしても、ビタビ復号やターボ復号では、１回の復号に比較的長い時間を必要とするので、再復号により通信遅延を招き、所望の通信レートを確保できない。
【００１５】
そこで、本発明は、受信データの復号に失敗した場合であっても、再送要求の必要性を低減させ、複数回復号処理を行う無線受信装置を提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するための本発明の無線受信装置の第一の構成は、LDPC符号により符号化された所定長のブロックデータを受信して復号する無線受信装置において、ブロックデータのビット毎の尤度を求めてブロックデータをLDPC復号する復号部と、前記復号部による復号結果のエラーの有無を判定するエラーチェック部と、エラーチェック部により、エラー有りと判定された場合、ブロックデータを構成する各ビットデータのうち尤度の絶対値が最も低いビットデータを含む少なくとも一つの所定ビットデータの尤度を、各ビットデータが送信時に取り得る値であって且つ絶対値が同じで符号の異なるあらかじめ決められた２値である正の最適値又は負の最適値のいずれか一方に置き換える尤度置換部とを備え、前記復号部は、前記尤度置換部により前記最適値に置き換えられたビットデータを含むブロックデータを再度復号することを要件とする。
【００１７】
本発明の無線受信装置の第二の構成は、上記第一の構成において、前記所定のビットデータは、尤度の絶対値が最も低い一つのビットデータであることを要件とする。
【００１８】
本発明の無線受信装置の第三の構成は、上記第二の構成において、前記尤度置換部は、前記所定のビットデータの尤度を前記正の最適値又は前記負の最適値のいずれか一方の最適値に置き換え、前記復号部は、前記尤度置換部により前記一方の最適値に置き換えられた前記所定のビットデータを含むブロックデータを再度復号し、前記エラーチェック部が当該再度の復号結果にエラー有りと判定した場合、前記尤度置換部は、前記所定のビットデータの尤度を他方の最適値に置き換え、前記復号部は、前記尤度置換部により前記他方の最適値に置き換えられた前記所定のビットデータを含むブロックデータを再々度復号することを要件とする。
【００１９】
本発明の無線受信装置の第四の構成は、上記第一の構成において、前記所定のビットデータは、各ビットデータのうち尤度の絶対値が低い順に選択された複数のビットデータであることを要件とする。
【００２０】
本発明の無線受信装置の第五の構成は、上記第四の構成において、前記エラーチェック部が復号結果にエラー有りと判定すると、前記尤度置換部は、順次、異なる置き換えパターンで、選択されたビットデータの尤度をそれぞれ前記正の最適値又は負の最適値のいずれか一方に置き換えて、復号を行うことを要件とする。
【発明の効果】
【００２１】
本発明の無線受信装置によれば、LDPC符号により符号化されたデータをLDPC復号することにより、再復号を行う時間を確保し、復号に失敗した場合は、尤度の絶対値が低いビットを最適値に置き換えて、再復号を行うことにより、復号の成功の可能性を高め、再送要求の必要性を低減させることができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施の形態について説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【００２３】
本発明の実施の形態によれば、無線受信装置の復号手段は、LDPC(Low Density Parity Check)復号(sum-product法、min-sum法など)により、LDPC符号により符号化されたデータを復号する。LDPC復号では、所定長のブロックデータのビット毎の尤度が求められ、エラーチェックにより復号に失敗したと判定された場合、尤度の絶対値が小さい一つ又は複数のビットの尤度を所定の最適値に置き換えて、再度復号を行う。LDPC復号では、完全並列化処理が可能であり、復号処理にかかる時間が短いため、次のブロックデータを受信するまでの間に、複数回の復号処理が可能であるとともに、信頼性の低い尤度を別の値に置き換えて復号を行うことで、同一のデータに対する復号ではなくなり、より確からしい値に置き換えての復号処理となるため、復号に成功する可能性が高くなり、再送要求の必要性を低減させることができる。
【００２４】
図１は、本発明の実施の形態における無線受信装置のブロック構成例を示す図である。
無線送信装置１０の送信部１１は、送信バッファ１２に格納されるデータをLDPC符号により符号化して送信する。送信部１１から送信されるデータは、伝搬路を介して無線受信装置２０のアンテナで受信される。受信データは受信部２１で復調された後、LDPC復号部２２に送られ、LDPC復号部２２は、受信データをLDPC復号する。
【００２５】
エラーチェック部２３は、CRCチェックなどの手法により、復号部２２による復号成功（エラー有り）/復号失敗（エラーなし）を判定する。エラーチェック部２３により復号成功と判定されたデータは上位のレイヤに送られる。
【００２６】
一方、エラーチェック部２３で復号失敗と判定された場合、尤度置換部２４が、LDPC復号部２２で求められている各ビットの尤度のうち、絶対値が最も低い尤度を所定の最適値に置き換える。
【００２７】
LDPC復号部２２は、入力される受信データの尤度を求める。送信部１１から送信されるデータの各ビットは、例えば２値（＋１、−１）などあらかじめ決められた値（最適値と称す）のうちのいずれかの値として送信される。受信データにおける各ビットは、伝搬路での減衰などさまざまな要因より最適値と異なる値となり、尤度は、受信データの各ビットの値として表される。この尤度の絶対値が大きいほど、その値は確からしいと言える。例えば、「−０．５」という尤度の絶対値は、「０．５」となり、「＋０．７」という値の尤度の絶対値は、「０．７」であり、「＋０．７」の方が、正の最適値「＋１」に近いので、確からしさの高い値となる。「−０．５」の尤度の絶対値は「０．５」であり、「＋０．７」の尤度の絶対値「０．７」より小さく、相対的に確からしさは低い。
【００２８】
復号の失敗の原因は、尤度の絶対値が小さいビットが存在することがその一因であるため、尤度の絶対値の低いビットデータ（以下、単にビットという）を正の最適値（＋１）又は負の最適値（−１）に置き換える。各ビットは、正の最適値又は負の最適値のいずれかしか取り得ないので、どちらかは必ず正しい値となる。従って、尤度の絶対値の低い所定のビットの値を正の最適値と仮定したブロックデータと負の最適値と仮定したブロックデータの両方を再復号すれば、どちらかは復号結果が改善し、どちらかは改悪する。
【００２９】
尤度の絶対値が低いビットを複数個選択し、それぞれを正負の最適値に置き換えて再復号してもよい。例えば、尤度の絶対値が最も低いビットを複数個（例えば３個）選び、それぞれを正負の最適値に置き換えると、８通りの仮定が存在し、この中で、７つは間違っているが、１つは必ず正しい。この場合、最大８通りの復号を行う必要があるが、尤度の絶対値が比較的低いビットのうち、正負の最適値に置き換えるビット数を多くするほど、再復号により復号が成功する確率が高くなる。
【００３０】
図１において、尤度置換部２４が、各ビットの尤度を正負の最適値に置き換える。LDPC復号部２２は、尤度置換部２４に復号処理により得られる尤度情報を尤度置換部２４に送る。尤度置換部２４は、所定ビット数単位のデータ（ブロックデータ）における各ビットの尤度のデータ（尤度データ）をLDPC復号部２２から得る。そして、エラーチェック部２３から復号失敗の結果情報を受け取ると、尤度の絶対値が低いビット（一つ又は複数）の値を、正負の最適値のどちらか一方に置き換え、その置き換え後のデータをLDPC復号部２２に送る。
【００３１】
例えば、尤度の絶対値が最も低いビットを正の最適値に置き換えたデータがLDPC復号部２２に送られ、LDPC復号部２２は、それを復号処理する。エラーチェック部２３は、復号に対するエラーチェックを行い、復号成功の場合は、そのデータを上位レイヤへ送る。
【００３２】
一方、復号失敗の場合は、エラーチェック部２３は、その復号結果を尤度置換部２４に送る。尤度置換部２４は、続いて、尤度の絶対値が最も低いビットを負の最適値に置き換え、その置き換えられたデータをLDPC復号部２２に送り、上述の再復号の処理を繰り返す。
【００３３】
複数のビットの尤度を最適値に置き換える場合は、尤度の絶対値が低い順に複数のビットが選択され、選択された各ビットを正負の最適値のいずれかに置き換え、復号処理を繰り返す。復号失敗の場合は、選択された各ビットの正負の最適値の置き換えパターンを変えて、順次、復号を繰り返す。すべての置き換えパターンに対する復号処理によっても、復号成功しなかった場合は、尤度置換部２４は、エラーチェック部２３からの復号結果情報（復号失敗）を再送要求部２５に送り、再送要求部２５は、再送要求処理を行う。再送要求処理は、既知の手順で行われる。
【００３４】
図２は、LDPC復号部のブロック構成例を示す図である。尤度計算部２２１は復調されたデータから尤度を計算する（LDPC復号アルゴリズムがmin-sum法であれば受信データがそのまま尤度となる）。計算された尤度は尤度データメモリ２２２へ格納される。尤度データメモリ２２２は、尤度計算部２２１で計算された尤度データを格納し、LDPC復号のβ演算時に尤度データをβ演算部２２４へ出力する。
【００３５】
α演算部２２３は、LDPC復号のα演算を行い、β演算部２２４はLDPC復号のβ演算を行う。LDPC復号ではα演算１回β演算１回で１回の復号（これを1イタレーションという）となる。このイタレーションを20〜30回繰り返し最終的な復号結果を得る。得られた復号結果はエラーチェック部２３へ送られ、復号の成功/失敗の判定をする。
【００３６】
尤度置換部２３は、計算された尤度が尤度データメモリ２２２に格納されるとき（又は格納された後）、尤度データメモリ２２２にアクセスして、格納される尤度データを取得し、尤度の絶対値が低い所定数（一つ又は複数）のビットを記憶する。好ましくは、尤度の絶対値が最も低いビットから順に所定数のビットが選ばれる。エラーチェック部２３で復号が失敗と判定されて失敗の通知が送られてきた場合、尤度置換部２４は、尤度データメモリ２２２内の尤度の絶対値が一番低いデータを最適値に置き換える。例えば、最初は正の最適値と仮定し（負でもどちらでもいい）、α演算部２２３及びβ演算部２２４は、置き換えられたデータを用いて再び復号を行う。復号結果は、エラーチェック部２３によりエラーチェックされ、復号成功でれば復号結果は上位レイヤへ送られ復号は完了する。失敗した場合は、尤度置換部２４に再度失敗の通知が送られて来るので、今度は負の最適値（最初に負の最適値と仮定していた場合は正の最適値）に置き換え、再度復号処理（α演算及びβ演算）を行う。これでも復号に失敗した場合は、最終手段として、再送要求部２５が再送要求を送信側（無線送信装置１０）に送信する。
【００３７】
上述したのは尤度置換ビット数が１の場合である。尤度置換ビット数が２以上の場合は、尤度の絶対値の低いビットを２つ以上記憶しておく。尤度置換ビット数は設定により可変である。最適値に置き換えをする際も、正負の最適値の組み合わせの数は、２の尤度置換ビット数乗になるので、最大でその全ての組み合わせに対応するデータの復号を行う必要がある。全ての組み合わせを試しても復号が成功しない場合に再送要求を送信する。
【００３８】
上述のように、LDPC復号は、理論的に復号処理の完全並列化が可能である。LDPC復号は、LDPC復号はα演算、β演算を行って復号を行うが、このα演算、β演算をそれぞれ1クロックで全て処理することが可能である。つまり理論的には、データ長によらず、全てのβ演算を1クロック、全てのα演算を1クロックの計2クロックで1回の復号ができる（ただし物理的な回路としての制約は存在する）。
【００３９】
この復号処理の完全並列化というLDPC復号の特徴を生かせば、尤度の絶対値が低いビットの値を最適値に置き換えたデータブロックを再復号するための時間を作り出すことができる。
【００４０】
例えば、1ブロック10000ビットのデータを10000クロックで受信する場合、次のブロックが受信を完了するまでに10000クロックの時間的余裕があるから、この間に復号を完了すればよい。ここで、LDPC復号を完全並列化すると、復号1回に2クロック、繰り返し数30回で1回の復号とすると、2×30=60クロックで1回の復号が終る。ここで復号結果がエラーだった場合に、尤度の絶対値が低いデータを最適値に仮定して復号を行うとすると、単純に10000÷60=166.67回の再復号を試みることができる。ビット数で考えると、２７=128なので7ビット（尤度置換ビット数７）までは最適値への仮定が可能である。
【００４１】
図３は、ブロックエラー率（BLER:BLock Error Rate）測定のシミュレーション結果を示す図である。測定条件は、下記表１の通りである。計算を単純化するため符号長を１００とし、実際にハードウェアで構成した場合の処理遅延などは考慮していない。横軸は、尤度置換ビット数であり、縦軸はBLERである。
【００４２】
【表１】
0004900168.tif 000002
図３に示されるように、尤度を置き換えない場合（尤度置換ビット数＝０）、すなわち従来の方法では、ブロックエラー率＝0.859であるが、上述の本発明の実施の形態に従って、尤度置換ビット数を設定し、尤度を置き換えるビット数を増やしていくことにより、ブロックエラー率が改善し、尤度置換ビット数＝５では、ブロックエラー率＝0.716まで改善していることがわかる。
【００４３】
なお、表１の条件では、最大繰り返し数５０回であるので、復号１回につき２クロック必要とすると、最大繰り返し数分の復号の処理時間は２×５０＝１００クロックとなり、符号長１００ビットのデータの受信時間と一致するため、再復号はできないこととなってしまうが、符号長が長くすることで、再復号のための時間を作り出すことができる。例えば、符号長を10000ビットすると、再復号のために10000クロック確保でき（１クロックに１ビット受信する場合）、尤度置換ビット数を６〜７ビットとすることができる（６ビットの場合は、６４（２６）通りの置き換えに対して各１００クロックであるので計6400クロック、７ビット置き換える場合は、１２８通りの置き換えに対して各１００クロックかかるので計12800クロック、10000クロックをすべて再復号のための時間にあてると仮定すると、７ビット目の途中まで、再復号できることになる）。
【００４４】
ビタビ復号やターボ復号では、符号長に応じた復号時間を必要とするので、再復号する時間は確保できないが、LDPC復号は、符号長によらない復号時間となるので、符号長を一定長さ以上とすることで、再復号が可能となる。そして、尤度の絶対値の低いビットを最適値に置き換えて再復号することにより、復号成功の可能性を高めることができ、再送要求を低減させ、通信速度を向上させることができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態における無線受信装置のブロック構成例を示す図である。
【図２】LDPC復号部のブロック構成例を示す図である。
【図３】ブロックエラー率（BLER:BLock Error Rate）測定のシミュレーション結果を示す図である。
【符号の説明】
【００４６】
１０：無線送信装置、２０：無線受信装置、２１：受信部、２２：LDPC復号部、２３：エラーチェック部、２４：尤度置換部、２５：再送要求部、２２１：尤度計算部、２２２：尤度データメモリ、２２３：α演算部、２２４：β演算部
【図１】
0004900168.tif 000003
【図２】
0004900168.tif 000004
【図３】
0004900168.tif 000005