以下、本実施の形態を図面を参照して説明する。
図1は、本実施の形態に係るデータ変換装置を示す図である。図1に示すデータ変換装置10は、ビット幅nの軟判定データからなる入力データ列をビット幅m(m<n)の軟判定データからなる出力データ列に変換する。このデータ変換装置10は、バッファメモリ11、演算部12および変換部13を有する。
バッファメモリ11は、入力されたビット幅nの軟判定データからなる入力データ列を順序を保持して一時的に格納する。これは、演算部12の計算が終了するまで変換部13の処理を遅延させることを意味する。この軟判定データとしては、例えば、有線または無線の伝送路を介して受信した受信信号の信号レベルを尤度に変換したもの、記録媒体から光学的手段により読み取った入力信号の信号レベルを尤度に変換したものなどが考えられる。なお、尤度を表す指標には、対数尤度比(LLR:Log Likelihood Ratio)も含まれる。
演算部12は、入力データ列の各軟判定データについて、その軟判定データが表す数値の大きさが2進数で何桁であるかを特定し、桁数が同じ軟判定データの個数をカウントする。例えば、入力された軟判定データがビット幅8で符号付きのとき、00000100(+4)は3桁、11101110(−18)は5桁である。なお、このような桁数は、ビット列を先頭ビットから下位ビットに向かって走査し、先頭ビットと異なるビットが最初に検出されたビット位置に基づいて特定することが可能である。この処理は、バッファメモリ11への軟判定データの格納と並行して行うことができる。そして、演算部12は、カウント結果を桁数の小さい方から累積した累積個数分布を求め、この累積個数分布に基づいて、nビットのうちmビットに対応付けるビット範囲を決定する。その後、演算部12は、決定したビット範囲を変換部13に通知する。
変換部13は、バッファメモリ11に格納されたビット幅nの軟判定データを順次取り出し、演算部12からの通知に基づいて、ビット幅nの軟判定データをビット幅mの軟判定データに変換する。例えば、変換部13は、変換前のnビットのビット列から、通知されたビット範囲の部分を切り出して変換後のビット列とする。その場合、ビット範囲の最上位ビットよりも大きい桁を有する軟判定データについては、クリップ処理を行う。すなわち、この軟判定データはmビット以下で表現可能な数値の最大値に変換される。
このようなデータ変換装置10によれば、演算部12により入力データ列の各軟判定データについて数値の大きさが2進数で何桁であるかが特定され、桁数が同じ軟判定データの個数がカウントされる。そして、カウント結果を桁数の小さい方から累積した累積個数分布に基づいて、nビットのうちmビットに対応付けるビット範囲が決定される。これにより、ビット幅nの軟判定データからビット幅mの軟判定データへの対応付けを決定する際の計算量が削減され、処理を高速に実行できる。また、あらゆる伝送路環境に対応するためにビット幅mを大きくとっておくことを回避でき、回路規模の増大を抑制できる。
すなわち、ビット幅nの軟判定データからビット幅mの軟判定データへの対応付けを小さい回路規模で効率的に行うことが可能となる。
なお、アナログ信号から復号に用いる入力データを得る処理過程には、アナログ信号を離散データに変換する処理と、離散データのビット幅をnからm(m<n)に圧縮する処理とを含む。本実施の形態では、「量子化」として、主に後者の処理(復号用の量子化)に着目する。このとき、nビットで表現可能な数値のうちmビットへの変換の際にクリップ処理を行わない数値範囲は「量子化範囲」と呼ぶことができる。
[第1の実施の形態]
以下、第1の実施の形態を図面を参照して詳細に説明する。
図2は、本実施の形態のシステム構成を示す図である。送信装置100は、無線伝搬路50を介して受信装置200に電波によるデータ送信を行う。データ送信は、所定のデータ長のフレームを単位として行われる。受信装置200は、送信装置100から受信した信号に応じ、その受信結果(正常にデータを受信できたか否か)を無線伝搬路50を介して受信装置200に電波により送信する。ここで、無線伝搬路50では、送信装置100と受信装置200との間に電波の反射などによって複数の経路(マルチパス)がある場合に、これら複数の電波の干渉のために短期間に受信電波の強度が大きく変化するフェージングが発生する。また、受信装置200では、内部回路の処理過程において熱雑音が発生する。これらフェージングや熱雑音の影響は、通信品質が低下する要因となっており、送信装置100および受信装置200は、このような品質の低下が起こってもデータを正しく送受信可能なようにする機能を備えている。
図3は、第1の実施の形態の送信装置の機能を示すブロック図である。図3に示される送信装置100は、無線伝搬路50を介して受信装置200に信号を送信する。また、送信装置100は、受信装置200からの再送要求などの信号を受信する。
送信装置100は、コーデック部110およびモデム部120を有する。
コーデック部110は、誤り検出符号化部111、誤り訂正符号化部112、パターン指定部113、フィードバック情報抽出部114および再送制御部115を有する。
誤り検出符号化部111は、元の情報を表すデータを誤り検出符号化する。
誤り訂正符号化部112は、誤り検出符号化されたデータを、更に誤り訂正符号化する。
パターン指定部113は、誤り訂正符号化されたデータを所定の送信パターンに従ってフレーム単位に分割する。また、パターン指定部113は、誤り訂正符号化データを一時的に記憶しており、再送制御部115の再送指示に基づいて、誤り訂正符号化データの再送を行う。
フィードバック情報抽出部114は、モデム部120を介して受け付けた受信装置200からのフィードバック情報について、ACK(ACKnowledgement)またはNACK(Negative ACKnowledgement)の何れであるかを判定する。フィードバック情報抽出部114は、判定したACK/NACKを再送制御部115に通知する。
再送制御部115は、フィードバック情報抽出部114からNACKの通知を受け付けた場合、パターン指定部113にデータの再送を指示する。また、再送制御部115は、ACKを受け付けた場合、パターン指定部113に次のデータの送信を指示する。
モデム部120は、変調部121および復調部122を有する。変調部121は、パターン指定部113から取得した送信データを所定の変調方式に従ってベースバンド信号に変調する。ベースバンド信号は、送信装置100の送信部(図示せず)によって、RF(Radio Frequency)帯の周波数に周波数変換されて無線伝搬路50に送信される。無線伝搬路50を介して受信した受信装置200からの受信信号は、送信装置100の受信部(図示せず)によってベースバンド信号に周波数変換され、復調部122に出力される。復調部122は、この信号を復調して、フィードバック情報抽出部114に出力する。
図4は、第1の実施の形態の受信装置の機能を示すブロック図である。受信装置200は、送信装置100から送信された信号を無線伝搬路50を介して受信する。そして、受信装置200は、受信したデータを復号して復号データを取得する。
受信装置200は、モデム部210およびコーデック部220を有する。
モデム部210は、復調部211および変調部212を有する。送信装置100からの信号は、受信装置200の受信部(図示せず)によって、ベースバンド信号に周波数変換されて、復調部211に出力される。復調部211は、受信信号を復調し、受信信号の各振幅レベルに対応する尤度データを生成してコーデック部220に出力する。この尤度データはビット幅n(n>2)の軟判定データである。尤度データは、例えば、受信信号レベルを統計情報(受信信号レベルの分散など)を用いて補正することで得られる。変調部212は、コーデック部220から受け付けたNACK/ACKの通知情報を変調して、送信部(図示せず)に出力する。この通知情報は、送信部によってRF帯の信号に変換され、無線伝搬路50を介して送信装置100に送信される。
コーデック部220は、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226および制御情報符号化部227を有する。
バッファメモリ221は、復調部211から入力されたビット幅nの尤度データからなる入力データ列を順序を保持して一時的に格納する。これは、演算部222の計算が終了するまで量子化部223の処理を遅延させることを意味する。
演算部222は、入力データ列の各尤度データについて、その尤度データが表す数値の大きさが2進数で何桁であるかを特定し、桁数が同じ尤度データの個数をカウントする。例えば、入力された尤度データがビット幅8で符号付きのとき、00000100(+4)は3桁、11101110(−18)は5桁である。なお、このような桁数は、ビット列を先頭ビットから下位ビットに向かって走査し、先頭ビットと異なるビットが最初に検出されたビット位置に基づいて特定することができる。この処理は、バッファメモリ221への尤度データの格納と平行して行うことができる。そして、演算部222は、1フレームのデータ長分だけ尤度データを取得すると、カウント結果を桁数の小さい方から累積した累積個数分布を求め、この累積個数分布に基づいて、nビットのうちmビット(m<n)に対応付けるビット範囲を決定する。その後、演算部222は、決定したビット範囲を量子化部223に通知する。
量子化部223は、バッファメモリ221に格納されたビット幅nの尤度データを順次取り出し、演算部222からの通知に基づいて、ビット幅nの尤度データをビット幅mの尤度データに変換する。例えば、量子化部223は、量子化前のnビットのビット列から、通知されたビット範囲の部分を切り出して量子化後のビット列とする。その場合、ビット範囲の最上位ビットよりも大きい桁を有する尤度データについては、クリップ処理を行う。すなわち、この尤度データはmビット以下で表現可能な数値の最大値に量子化する。
誤り訂正復号部224は、量子化部223から取得する量子化後データに対して、誤り訂正復号処理を行う。ここで、量子化後データは、誤り訂正符号化されたデータであり、誤り訂正復号部224は、所定の復号方法を用いてデータの復号処理を実行する。なお、符号化方式は予め送信装置100と受信装置200との間で合意がなされており、送信装置100はこの符号化方式に従って符号化を行っている。
誤り検出部225は、誤り訂正処理後のデータに対して、データの誤りの有無を検査し、検査結果をNACK/ACK判定部226に出力する。誤り検出部225は、上記誤り検出の結果、データに誤りが検出されなかった場合には、復号データを出力する。データに誤りを検出した場合には、このデータを破棄する。
NACK/ACK判定部226は、誤り検出結果に基づいてNACK/ACKの何れを通知情報として送信装置100に送信するかを制御情報符号化部227に指示する。
制御情報符号化部227は、NACK/ACK判定部226からの指示に従って通知情報を符号化し、変調部212に出力する。
図5は、尤度データと指数位置との関係を示す模式図である。ここで、尤度データは2の補数によって負数を表現するものとする。
図5(A)には、例として8ビットの尤度データ“00011001”(+25)が示されている。この尤度データの最上位のビット(MSB:Most Significant Bit)は、正負を表す符号ビットであり、この例では正を表している。また、25は24(16)と25(32)の間であるため、尤度データの値の大きさを表すビットである実質ビットは、下位の5ビットである。最下位のビット(LSB:Least Significant Bit)から数えて6桁目および7桁目は、符号ビットと同じ0で埋められている。ここで、2進数で表される尤度データの桁数を表すためにインデックスを定義する。インデックスは、符号ビットを除いた7ビットについて、LSBからMSBに向かって、“0”〜“6”と定義する。そして、尤度データの値の大きさを表す実質ビットの最大の桁に対応するインデックスを指数位置と定義する。例えば、実質ビット数“5”のデータの指数位置は、“4”となる。
図5(B)には、もう1つの例として8ビットの尤度データ“01001001”(+73)が示されている。この場合、図5(A)と同様の考え方により、実質ビット数は“7”、指数位置は、“6”となる。
受信装置200の演算部222は、尤度データのMSBからLSBに向かって走査して、符号ビットと異なる最初の桁のインデックスをこの尤度データの指数位置とする。ただし、符号ビットを含めた全てのビットが“0”あるいは“1”である尤度データの指数位置は“−1”とする。
ここで、演算部222は、入力データ列の各尤度データについて、その尤度データが表す数値の大きさが2進数で何桁であるかを特定し、桁数が同じ尤度データの個数をカウントする。すなわち、演算部222は、実質ビット数が等しいか否かを、この指数位置の値が等しいか否かで特定し、指数位置がi(−1≦i≦n−2)であるフレーム内の尤度データの個数Ciを算出する。更に演算部222は、このCiを指数位置が小さい方から累積した累積数Fiを算出する。
図6は、第1の実施の形態の受信処理の手順を示すフローチャートである。以下、図6に示す処理をステップ番号に沿って説明する。
[ステップS11]復調部211は、受信した信号を復調する。そして、復調部211は、各受信信号のレベルに基づいてビット幅nの尤度データを生成する。
[ステップS12]演算部222は、フレームを構成するNc個の尤度データ(Ncは例えば1000や10000程度)に関して指数位置が同じ尤度データを計数する。そして、演算部222は、計数した結果を指数位置が小さい方から累積する。演算部222は、この累積結果から量子化範囲を決定する。
[ステップS13]量子化部223は、バッファメモリ221からNc個の尤度データを順次取得して、演算部222によって決定された量子化範囲に基づいて、尤度データの量子化を行う。なお、量子化部223は、この量子化範囲に属さない尤度データのうち量子化範囲より大きい尤度データに関しては、量子化後データの最大値に対応付ける。また、量子化範囲より小さい尤度データに関しては、量子化後データの最小値に対応付ける。
[ステップS14]誤り訂正復号部224は、量子化部223から受け付けたデータに関して誤り訂正復号処理を行う。
[ステップS15]誤り検出部225は、復号されたデータに対して誤り検出符号に基づいて、誤り検出を行う。誤りを検出しない場合、誤り検出部225は、復号データを受信データとして出力し、処理が完了する。更に、この場合、受信装置200から送信装置100にACKが送信される。また、誤りを検出した場合、誤り検出部225は、NACK/ACK判定部226に誤りを検出した旨を通知して、処理がステップS16に移される。
[ステップS16]NACK/ACK判定部226は、誤り検出部225から復号されたデータに関して誤りを検出した旨の通知を受け付けると、制御情報符号化部227に対して、送信装置100に送信するためのNACK情報を出力する。制御情報符号化部227は、NACK/ACK判定部226から受け付けたNACK情報を符号化し、変調部212を介して送信装置100に送信する。
ここで、上記ステップS12に関して更に詳細に説明する。
図7は、第1の実施の形態の量子化制御処理の手順を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
[ステップS111]演算部222は、取得した各尤度データのビット列をMSBからLSBに向かって走査し、指数位置を特定する。そして、演算部222は、指数位置がi(−1≦i≦n−2)である尤度データの個数Ciを、受信信号の1フレームに含まれる全尤度データ(1000〜10000個程度)に関して計数する。
[ステップS112]演算部222は、ステップS111で求めたCiから累積数Fiを、Fi=Fi-1+Ci(ただし、F-2=0)として算出し、指数位置に対する尤度データの個数の累積分布を求める。
[ステップS113]演算部222は、i=−1とする。
[ステップS114]演算部222は、Fiが所定のデータ数Np(閾値)より大きいかを判定する。大きくない場合、処理がステップS115に進められる。大きい場合、処理がステップS116に進められる。ここで、例えば、Npは、量子化範囲でカバーされるべき尤度データの割合P(0<P≦1)が設定されており、1フレームを構成する尤度データ数Ncに対して、Np=Nc×Pと求められる。なお、割合Pは、情報ビット数、符号化率および変調方式などによって決まる伝送フォーマットを考慮して設定するものとし、例えば、P=0.9と設定される。
[ステップS115]演算部222は、iを1増加させる。そして、処理がステップS114に進められる。
[ステップS116]演算部222は、累積数が閾値を最初に超えるときの指数位置iに基づいて、量子化範囲の最大値および最小値を求める。具体的には、演算部222は、Amax=2iと置くと、量子化範囲の最大値(正数側の限界値)をAmax−1、最小値(負数側の限界値)を−Amaxと決定する。
なお、上記の割合Pの設定方法としては、伝送フォーマットに応じた設定とするほか、変調信号の信号対雑音比(SNR:Signal to Noise Ration)やこれに順ずる信頼度の測定量に従って適応的に変更することも考えられる。また、再送制御を行う場合には、再送回数に応じて変更することも考えられる。
図8は、第1の実施の形態の量子化処理を示す模式図である。
復調部211から出力された尤度データの値の分布は、熱雑音などの影響により、一般に図8に示されるように“0”を中心として左右対称な分布となることが期待される。このとき、演算部222は、各尤度データの指数位置iに対してCiを算出する。図の例では、ビット幅8の尤度データとビット幅5の量子化後の軟判定データとが、2進数で示されている。ただし、尤度データに関して、“00000001”(+1)、“00000010”(+2)および量子化範囲の最小値以外の負の値は、省略してある。
図の例では、“00000000”(0)および“11111111”(−1)である尤度データの数がC-1、“00000001”(+1)および“11111110”(−2)である尤度データの数がC0、“00000010”(+2)、“00000011”(+3)、“11111100”(−4)および“11111101”(−3)である尤度データの数がC1、“00000100”(+4)以上“00000111(+7)”以下、“1111000”(−8)以上“11111011”(−5)以下である尤度データの数がC2である。なお、C3、C4、C5に関しても同様である。
更に、演算部222はCiの累積としてFiを算出する。図の例では、F-1=F-2+C-1=C-1、F0=F-1+C0、F1=F0+C1、F2=F1+C2であり、F3、F4、F5に関しても同様である。そして、演算部222は所定の閾値Npよりも大きくなるiが最も小さいFiとして、F5を特定する。すなわち、量子化範囲の境界値を与える指数位置が5となり、Amaxが、Amax=25=00100000(+32)となる。そして、演算部222は量子化範囲を、−Amax=11100000(−32)以上、Amax−1=00011111(+31)以下と決定する。
そして、図に示されるように、量子化部223は、この量子化範囲に含まれる尤度データを5ビットに量子化する。具体的には、量子化部223は、量子化範囲の最大値00011111(+31)の最上位桁である5桁目を、量子化後の符号ビットを除く最上位桁である4桁目に対応付け、以下、量子化前の4桁目を量子化後の3桁目に、量子化前の3桁目を量子化後の2桁目に、量子化前の2桁目を量子化後の1桁目に対応付ける。すなわち、量子化前の5桁目から2桁目のビットを切り出して、量子化後の符号ビットを除く4桁目から1桁目のビットとする。このとき、量子化部223は、量子化範囲を外れた尤度データについてはクリップ処理を行う。すなわち、Amax=25=0100000(+32)以上となる尤度データを量子化後の最大値“01111”(+7)に割り当て、−Amax=11100000(−32)より小さい尤度データを量子化後の最小値“10000”(−8)に割り当てる。
なお、図8に示すような尤度データの値の分布に期待される“0”を中心とした対称性から、演算部222は各尤度データの絶対値を求めてから、上記の指数位置を特定して、CiおよびFiの分布を求めるようにしてもよい。また、演算部222は、各尤度データの値が正あるいは負のどちらか一方の尤度データのみを対象として、上記の指数位置を特定して、CiおよびFiの分布を求めるようにしてもよい。
更に、図8に示した例では、尤度分布に対して各量子化データに対応付ける尤度データの幅を均等にした場合を示しているが、この幅は互いに異なっていてもよい。
このように、尤度データの量子化範囲を決定する際に、尤度データの値の大きさを表す指数位置が同じであるデータ数を求める。そして、指数位置が小さい方からこのデータ数を累積し、所定の閾値を超えた最小の指数位置に基づいて量子化範囲の最大値および最小値を決定する。このようにすると、ビット幅nの尤度データに対し、ステップ数nの指数位置の分布を求めるだけで量子化範囲を決定するため、ステップ数2nの厳密な分布を求める場合と比べて、この量子化範囲の決定における計算量を削減し、回路規模を縮小することができる。
図9は、量子化前データと量子化後データとの関係を示す模式図である。図9の説明では、演算部222がAmaxを25=00100000(+32)と決定しているものとする。すなわち、量子化範囲は、−Amax=11100000(−32)以上、Amax−1=00011111(+31)以下である。以下では、量子化部223において、各データを5ビットに量子化する場合を示す。
図9(A)は、量子化部223への入力尤度データ(量子化前データ)が“00010010”(+18)である、すなわち、尤度データ値が量子化範囲内にある場合である。量子化部223は、量子化範囲の最大値の指数位置(LSBから数えて5桁目)から、この指数位置を含めて下位へ4ビット取得する。そして、この4ビットに符号ビット1ビットを付与した5ビットのデータ“01001”(+9)として、量子化後データを生成する。
図9(B)は、量子化部223への入力尤度データ(量子化前データ)が“00110010”(+50)のように、量子化範囲の最大値以上である場合である。この場合、量子化部223は、量子化後データの実質ビットである4ビットを全て“1”とし、この4ビットに符号ビット1ビットを付与した5ビットのデータ“01111”(+15)として、量子化後データを生成する。
図9(C)は、量子化部223への入力尤度データ(量子化前データ)が“11001110”(−50)のように、量子化範囲の最小値以下となる場合である。この場合、量子化部223は、量子化後データの実質ビットである4ビットを全て“0”とし、この4ビットに符号ビット1ビットを付与した5ビットのデータ“10000”(−16)として、量子化後データを生成する。
このようにして得られた量子化データは、復調後に得られる尤度データ間の相対関係を十分に反映したものとなっており、その後の復号処理の精度を維持することができる。また、復調後に得られる尤度データよりもビット幅が削減されるため、復号処理の高速化および回路規模の縮小に寄与する。
[第2の実施の形態]
以下、第2の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
第2の実施の形態の受信装置の構成は、図4に示した第1の実施の形態の受信装置200の構成と同様である。また、受信装置に対して信号を送信する送信装置の機能および構成は、図3に示した第1の実施の形態の送信装置100の機能および構成と同様である。以下、第2の実施の形態に係る受信装置について、第1の実施の形態に係る受信装置200と同じ符号を用いて説明する。
受信装置における受信処理の手順の概要は、図6に示した第1の実施の形態の手順と同様である。ただし、第2の実施の形態では、図6のステップS12で示される処理を以下のように実行して、演算部222によって決定される量子化範囲に含まれる尤度データ数が閾値Npにより近くなるように量子化範囲を決定する。
図10は、第2の実施の形態の量子化制御処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS121]演算部222は、取得した各尤度データのビット列をMSBからLSBに向かって走査し、指数位置を特定する。そして、演算部222は、指数位置がi(−1≦i≦n−2)である尤度データの個数Ciを、受信信号の1フレームに含まれる全尤度データに関して計数する。
[ステップS122]演算部222は、ステップS121で求めたCiから累積数Fiを、Fi=Fi-1+Ci(ただし、F-2=0)として算出し、指数位置に対する尤度データの個数の累積分布を求める。
[ステップS123]演算部222は、i=−1とする。
[ステップS124]演算部222は、Fiが所定のデータ数Np(閾値)より大きいかを判定する。大きくない場合、処理がステップS125に進められる。大きい場合、処理がステップS126に進められる。
[ステップS125]演算部222は、iを1増加させる。そして、処理がステップS124に進められる。
[ステップS126]演算部222は、N1=Np−Fi-1、N2=Fi−Npを計算する。N1は閾値Npと指数位置i−1までの累積数との差であり、N2は閾値Npと指数位置iまでの累積数との差である。
[ステップS127]演算部222は、N1とN2とを比較し、N1がN2以上かを判定する。N1がN2以上である場合、すなわち、閾値Npが指数位置iまでの累積数に近い場合、処理がステップS128に進められる。N1がN2より小さい場合、すなわち、閾値Npが指数位置i−1までの累積数に近い場合、処理がステップS129に進められる。
[ステップS128]演算部222は、iを1増加させる。
[ステップS129]演算部222は、現在の指数位置iに基づいて、量子化範囲の最大値および最小値を求める。具体的には、演算部222は、Amax=2iと置くと、量子化範囲の最大値をAmax−1、最小値を−Amaxと決定する。
このように、尤度データの累積数がNpとなる境界に近い指数位置iを量子化範囲を決定する指数位置とする。
図11は、第2の実施の形態の量子化処理を示す模式図である。以下では、簡単のため正の値となる尤度データのみを示して説明する。
図11の例では、尤度データとして、“00100000”(+32)および“01000000”(+64)が示されている。まず、演算部222は、Fi>Npとなるiが最小のFiとして、F5を特定する。そして、演算部222は、N1=Np−F4、N2=F5−Npを計算する。ここで、演算部222は、N1<N2である場合、量子化範囲を決定する指数位置を“5”とする。また、演算部222は、N1≧N2である場合、量子化範囲を決定する指数位置を“6”とする。図8の例では、N1≧N2の場合であるので、演算部222は、量子化範囲を決定する指数位置を“6”とする。そして、演算部222は、Amax=26=01000000(+64)と決定し、量子化範囲を−Amax=1100000(−64)以上、Amax−1=00111111(+63)以下と決定する。
このようにすると、第1の実施の形態と同様の効果が実現される。更に、量子化範囲でカバーされる尤度データ数が閾値Npにより近くなるように量子化範囲が調整される。これにより、量子化範囲でカバーされる尤度データの個数が著しく少なくなってしまうことによって有意な尤度データの情報が失われるのを防止することができる。
[第3の実施の形態]
以下、第3の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
第3の実施の形態の受信装置の構成は、図4に示した第1の実施の形態の受信装置200の構成と同様である。また、受信装置に対して信号を送信する送信装置の構成は、図3に示した第1の実施の形態の送信装置100の構成と同様である。以下、第3の実施の形態に係る受信装置について、第1の実施の形態に係る受信装置200と同じ符号を用いて説明する。
受信装置における受信データの復号の手順の概要は、図6に示した第1の実施の形態の手順と同様である。ただし、第3の実施の形態では、図6におけるステップS12で示される処理を以下のように実行して、演算部222によって決定される量子化範囲に含まれる尤度データ数が閾値Npにより近くなるように量子化範囲を決定する。
図12は、第3の実施の形態の量子化制御処理の手順を示すフローチャートである。第3の実施の形態では、指数位置より1つ下位のビットが“0”または“1”の何れであるかに応じて、より細かく尤度データを分類して分布を求める。ただし、全ての指数位置に対して1つ下位のビットまで考慮するわけではなく、所定の指数位置以上となる尤度データの場合に考慮するようにする。例えば、指数位置が“4”以上の尤度データについて、指数位置より1つ下位のビットに応じて更に分類するようにする。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS131]演算部222は、取得した各尤度データのビット列をMSBからLSBに向かって走査し、指数位置を特定する。そして、演算部222は、指数位置がi(−1≦i≦n−2)である尤度データの個数Ciを、受信信号の1フレームに含まれる全尤度データに関して計数する。ただし、指数位置が所定数r(例えばr=4)以上の場合には、指数位置より1つ下位のビットにも細分化して、尤度データの個数Ci,jを計数する。
[ステップS132]演算部222は、ステップS131で求めたCiから累積数Fiを、Fi=Fi-1+Ci(ただし、F-2=0)として算出し、指数位置に対する尤度データの個数の累積分布を求める。ただし、演算部222は、指数位置がr以上である場合には、累積数Fi,jをFi,0=Fi-1,1+Ci,0、Fi,1=Fi,0+Ci,1(ただし、Fr-1,1=Fr-1)として算出する。
[ステップS133]演算部222は、i=−1とする。
[ステップS134]演算部222は、累積数が、Fi,jとして細分化して求められているか、すなわち、i≧rであるかを判定する。細分化されていない場合、処理がステップS135に移される。細分化されている場合、処理がステップS137に移される。
[ステップS135]演算部222は、累積数Fiが所定のデータ数Np(閾値)より大きいかを判定する。累積数FiがNp以下の場合、処理がステップS136に進められる。累積数FiがNpより大きい場合、処理がステップS141に進められる。
[ステップS136]演算部222は、iを1増加させる。そして、処理がステップS134に進められる。
[ステップS137]演算部222は、j=0とする。
[ステップS138]演算部222は、累積数Fi,jが所定のデータ数Npより大きいかを判定する。累積数Fi,jがNp以下の場合、処理がステップS139に進められる。累積数Fi,jがNpより大きい場合、処理がステップS141に進められる。
[ステップS139]演算部222は、jが最大か(ここではj=1か)を判定する。jが最大である場合、処理がステップS136に進められる。jが最大でない場合(ここではj=0の場合)、処理がステップS140に進められる。
[ステップS140]演算部222は、jを1増加させる。そして、処理がステップS138に進められる。
[ステップS141]演算部222は、指数位置i+j(ただし、Fiが細分化して求められていない場合には、j=0)に基づいて、量子化範囲の最大値および最小値を求める。具体的には、演算部222は、Amax=2i+jと置くと、量子化範囲の最大値をAmax−1、最小値を−Amaxと決定する。
図13は、第3の実施の形態の量子化処理を示す模式図である。以下では、簡単のため正の値となる尤度データのみを示して説明する。
図13の例では、指数位置の1つ下位のビットを更に考慮する尤度データは、指数位置が4以上のものとする。すなわち、演算部222は、指数位置≧4にて、指数位置よりも1つ下位のビットで更に細分化して尤度データの数の累積分布を算出する。例えば、演算部222は、“00010000”(+16)以上“00010111”(+23)以下の尤度データの数としてC4,0を計数し、“00011000”(+24)以上“00011111”(+31)以下の尤度データの数としてC4,1を計数する。更に、演算部222は、F4,0=F4+C4,0、F4,1=F4,0+C4,1と算出する。演算部222は、この結果から量子化範囲に含まれるデータ数Npよりも大きくなる累積数Fi,jとしてF4,1を特定する。そして、演算部222は、Amax=25を算出し、量子化範囲を−Amax=1100000(−32)以上、Amax−1=0011111(31)以下と決定する。
このようにすると、第1の実施の形態と同様の効果が実現される。更に、指数位置が所定数r以上である尤度データに関しては、累積対象範囲を、更に細分化して累積数Fi,jを求め、累積数Fi,0で最初に閾値Npを超える場合には量子化範囲の最大値の最上位桁をi桁目とし、累積数Fi,1で最初に閾値Npを超える場合には量子化範囲の最大値の最上位桁をi+1桁目とする。これにより、量子化範囲でカバーされる尤度データ数が閾値Npにより近くなるように量子化範囲が調整され、量子化範囲でカバーされる尤度データの個数が著しく少なくなってしまうことによって有意な尤度データの情報が失われるのを防止することができる。
なお、上記の例では、指数位置から1つ下位のビットに応じて区別して累積分布を算出することとしたが、更に下位のビットも用いて区別して累積分布を算出するようにしてもよい。更に、指数位置が大きいほど多くの下位ビットにより細分化して累積分布を算出するようにしてもよい。
[第4の実施の形態]
以下、第4の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
第4の実施の形態の受信装置の構成は、図4に示した第1の実施の形態の受信装置200の構成と同様である。また、受信装置に対して信号を送信する送信装置の構成は、図3に示した第1の実施の形態の送信装置100の構成と同様である。以下、第4の実施の形態に係る受信装置について、第1の実施の形態に係る受信装置200と同じ符号を用いて説明する。
受信装置における受信データの復号の手順の概要は、図6に示した第1の実施の形態の手順と同様である。ただし、第4の実施の形態では、図6のステップS12で示される処理を以下のように実行して、量子化範囲を通信環境によって調整する。
図14は、第4の実施の形態の量子化制御処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS151]演算部222は、取得した各尤度データのビット列をMSBからLSBに向かって走査し、指数位置を特定する。そして、演算部222は、指数位置がi(−1≦i≦n−2)である尤度データの個数Ciを、受信信号の1フレームに含まれる全尤度データに関して計数する。
[ステップS152]演算部222は、ステップS151で求めたCiから累積数Fiを、Fi=Fi-1+Ci(ただし、F-2=0)として算出し、指数位置に対する尤度データの個数の累積分布を求める。
[ステップS153]演算部222は、求めたCiの中で最大のCiであるCpeakを特定する。
[ステップS154]演算部222は、i=−1とする。
[ステップS155]演算部222は、Fiが所定のデータ数Npより大きいかを判定する。大きくない場合、処理がステップS156に進められる。大きい場合、処理がステップS157に進められる。
[ステップS156]演算部222は、iを1増加させる。そして、処理がステップS155に進められる。
[ステップS157]演算部222は、Cpeakが所定のピーク閾値NTh以上かを判定する。CpeakがNTh以上である場合、処理がステップS158に移される。CpeakがNTh以上でない場合、処理がステップS159に移される。NThは、例えば、通信環境によって定められる所定の割合PTh(0<PTh≦1)と、1フレームに含まれる尤度データの個数Ncとによって、NTh=Nc×PThと定められる。
[ステップS158]演算部222は、iを1増加させる。
[ステップS159]演算部222は、現在の指数位置iに基づいて、量子化範囲の最大値および最小値を求める。具体的には、演算部222は、Amax=2iと置くと、量子化範囲の最大値をAmax−1、最小値を−Amaxと決定する。
図15は、第4の実施の形態における量子化処理を示す模式図である。
図15の例では、Fi>Npとなる最小の指数位置は4である。ここで、環境Aの場合、Cpeakが閾値NTh以上であるので、Amax=24+1として量子化範囲を決定する。一方、環境Bの場合、Cpeakが閾値NThよりも小さいので、Amax=24として量子化範囲を決定する。
環境Aは、信号が受ける雑音として、加法的白色ガウス雑音(AWGN:Additive White Gaussian Noise)を想定した場合である。AWGNは、例えば、熱雑音に起因する。環境Bは、無線通信の経路で信号がフェージングの影響を大きく受けて、受信レベルの分散が非常に大きいような場合である。ここで、環境Aの場合、量子化範囲を広く取ることで、量子化後の軟判定データが最大値の近傍に密集した分布になるのを防ぐことが復号処理の精度を向上する上では好ましい。このため、指数位置に更に1を加えて量子化範囲の境界値Amaxを決定する。
このように、量子化範囲の決定手順で、信号に混入した雑音状況を考慮して量子化範囲を調整することで、復号処理を正しく実行するための精度を向上することができる。
[第5の実施の形態]
以下、第5の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
第5の実施の形態の受信装置の構成は、図4に示した第1の実施の形態の受信装置200の構成と同様である。また、受信装置に対して信号を送信する送信装置の構成は、図3に示した第1の実施の形態の送信装置100の構成と同様である。以下、第5の実施の形態に係る受信装置について、第1の実施の形態に係る受信装置200と同じ符号を用いて説明する。
受信装置における受信データの復号の手順の概要は、図6に示した第1の実施の形態の手順と同様である。ただし、第5の実施の形態では、図6のステップS12で示される処理を以下のように実行して、量子化範囲を決定する。
図16は、第5の実施の形態の量子化制御処理の手順を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS161]演算部222は、取得した各尤度データのビット列をMSBからLSBに向かって走査し、指数位置を特定する。そして、演算部222は、指数位置がi(−1≦i≦n−2)である尤度データの個数Ciを、受信信号の1フレームに含まれる全尤度データ(1000〜10000個程度)に関して計数する。
[ステップS162]演算部222は、ステップS161で求めたCiから累積数Fiを、Fi=Fi-1+Ci(ただし、F-2=0)として算出する。
[ステップS163]演算部222は、i=−1とする。
[ステップS164]演算部222は、Fiが所定のデータ数NL(閾値)より大きいかを判定する。大きくない場合、処理がステップS165に進められる。大きい場合、処理がステップS166に進められる。ここで、NLは量子化後データの0(ビット幅5の場合“00000”)に対応付けられるべき尤度データの個数であり、所定の割合PL(0<PL≦1)と1フレームに含まれる尤度データの個数Ncとから、NL=Nc×PLと求められる。なお、PLは、情報ビット数、符号化率および変調方式などによって決まる伝送フォーマットを考慮して設定するものとし、例えば、PL=0.1が予め設定される。
[ステップS165]演算部222は、iを1増加させる。そして、処理がステップS164に進められる。
[ステップS166]演算部222は、量子化後の軟判定データのビット幅mと現在のiの値からk=i+m−1を計算する。このkは、量子化範囲の最大値の最上位桁を表している。
[ステップS167]演算部222は、ステップS166で計算したkの値に基づいて、量子化範囲の最大値および最小値を求める。すなわち、演算部222は、Amax=2kと置き、量子化範囲の最大値をAmax−1、最小値を−Amaxと決定する。
なお、上記の割合PLの設定方法としては、上述した割合Pと同様に、変調信号のSNRやこれに順ずる信頼度の測定量に従って適応的に変更することも考えられる。また、再送制御を行う場合には、再送回数に応じて変更することも考えられる。
図17は、第5の実施の形態の量子化処理を示す模式図である。以下では、簡単のため正の値となる尤度データのみを示して説明する。
図17の例では、累積数が最初に閾値NLを超えるときの指数位置が“1”であり、量子化後データのビット幅が“5”であるので、k=1+5−1となり、Amax=25=00100000(+32)と算出される。この結果、演算部222は量子化範囲を、−Amax=11100000(−32)以上、Amax−1=00011111(+31)以下と決定する。
なお、累積数が最初に閾値NLを超えるときの指数位置から求まるAmin=21=00000010(+2)は、量子化ステップを意味する。すなわち、量子化前のAmin=00000010(+2)が量子化後の00001(+1)に対応付けられ、量子前の2×Amin=00000100(+4)が量子化後の00010(+2)に対応付けられ、量子化前の3×Amin=00000110(+6)が量子化後の00011(+3)に対応付けられるというように、Aminが対応付けの最小単位となり、Amin未満の値は切り捨てられることを意味している。
このようにすると、第1の実施の形態と同様の効果が実現される。特に、量子化によって下位何ビットが切り捨てられるべきかを計算し、これから逆算して量子化範囲を決定するため、過度に多くの下位ビットが切り捨てられることを確実に防止できる。
なお、Aminの決定方法としては、第2,3の実施の形態で示したAmaxを決定する手順と同様に、NLにより近いAminを与えるようにしてもよい。すなわち、指数位置iで累積数が最初に閾値NLを超えるとき、NL、Fi、Fi+1を比較してAminを決定することが考えられる。
以上、第1〜第5の実施の形態では、受信装置200にてデータの復号ができなかった場合には、このデータを破棄し、送信装置100に対して同じデータの再送を依頼する。一方、以降の実施の形態では、更に受信データの復号に際しての信頼性を向上させるため、送信されるデータに対してレペティション(ビット反復)によるレートマッチング処理を施す、または、HARQ(Hybrid Automatic Repeat reQuest)合成を行う場合を例示する。
[第6の実施の形態]
以下、第6の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
第6の実施の形態は、受信装置側でのデータの復号精度を向上させるために、送信装置側で送信データにレートマッチング処理としてレペティションを施す場合である。
ここで、レペティションでは、送信装置にて所定の送信単位のデータ長(フレーム長)に対して送信しようとしているデータが短い場合、データに含まれる一部または全部のビットを反復させてデータの送信を行う。このようにすると、受信装置側で反復された同一のデータを足し合わせることでSNRを向上させることができる。
この場合、受信装置は、量子化後の軟判定データに対してデレペティション(反復ビットの加算)を行い、その後再度量子化を行うようにする。これは、ビット幅mの軟判定データに対してデレペティション処理を行うと、得られる軟判定データのビット数がmを超えてしまう可能性があるためである。
図18は、第6の実施の形態の送信装置の機能(一部)を示すブロック図である。送信装置100aは、コーデック部110aおよびモデム部120(図18では図示せず)を有する。モデム部120の機能および構成は、図3に示した第1の実施の形態の送信装置100と同様である。
コーデック部110aは、誤り検出符号化部111、誤り訂正符号化部112、パターン指定部113、フィードバック情報抽出部114、再送制御部115およびレートマッチング部116を有する。ここで、誤り検出符号化部111、誤り訂正符号化部112、パターン指定部113、フィードバック情報抽出部114および再送制御部115の機能は、第1の実施の形態に係る送信装置100と同様である。ただし、パターン指定部113の誤り訂正符号化データの出力先は、レートマッチング部116となる。
レートマッチング部116は、誤り訂正符号化データに対して、レペティションを行い、この処理の結果(フレームデータ)をモデム部120へ出力する。このとき、レートマッチング部116は、例えば、レペティションの対象となるビット範囲と反復数とを表す情報をフレームデータに付加する。受信装置200は、付加された情報に基づいて同一内容のデータ同士を足し合わせることで反復ビットの合成を行うことができる。
図19は、第6の実施の形態の受信装置の機能(一部)を示すブロック図である。
受信装置200aは、モデム部210(図19では図示せず)およびコーデック部220aを有する。ここで、モデム部210の機能および構成は、図4に示した第1の実施の形態における受信装置200と同様である。
コーデック部220aは、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226、制御情報符号化部227、デレートマッチング部228、再量子化演算部228aおよび再量子化部228bを有する。
ここで、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226および制御情報符号化部227の機能は、第1の実施の形態に係る受信装置200と同様である。ただし、量子化部223は、デレートマッチング部228に対して量子化後データを出力する。
デレートマッチング部228は、量子化部223から量子化後データを受け付ける。デレートマッチング部228は、受け付けたデータが送信装置100aにおいてレートマッチング処理されている場合には、このレートマッチングと逆の処理を行う。例えば、送信装置100aにおいてレペティション処理が行われている場合、同一内容のデータに対応する軟判定データ同士を足し合わせる(レペティション合成)。
再量子化演算部228aは、デレートマッチング部228から出力された合成後データ(量子化部223の出力時点のビット幅mよりもビット幅の大きい軟判定データ)に対して、演算部222と同様の処理を行う。すなわち、再量子化演算部228aは、指数位置が同じである合成後データ数を計数する。そして、再量子化演算部228aは、指数位置が小さい方からこの計数結果を累積する。再量子化演算部228aは、この累積結果に基づいて、Amaxを計算して合成後データの量子化範囲を決定する。
なお、再量子化演算部228aは合成後データの絶対値に関して、指数位置の特定を行ってもよい。また、再量子化演算部228aは、合成後データの値が正あるいは負のどちらか一方のデータのみを参照して、指数位置の特定を行ってもよい。
再量子化部228bは、デレートマッチング部228による合成後データを、例えば、受信信号のフレーム単位で取得する。そして、再量子化部228bは、再量子化演算部228aで決定された量子化範囲に基づいて、取得した合成後データを量子化部223と同様にmビットに量子化し、誤り訂正復号部224に出力する。ここで、再量子化部228bは、この量子化範囲に属さない合成後データについてクリップ処理を行う。すなわち、量子化範囲より大きい合成後データに関しては、再量子化後データの最大値に対応付ける。また、量子化範囲より小さい合成後データに関しては、再量子化後データの最小値に対応付ける。
図20は、第6の実施の形態の受信処理の手順を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。なお、送信装置100aのレートマッチング部116にて、レペティションが行われているものとする。
[ステップS21]復調部211は、受信した信号を復調する。そして、復調部211は、各受信信号のレベルに基づいてビット幅nの尤度データを生成する。
[ステップS22]演算部222は、フレームを構成するNc個の尤度データに関して指数位置が同じ尤度データを計数する。そして、演算部222は、計数した結果を指数位置が小さい方から累積する。演算部222は、この累積結果から量子化範囲を決定する。量子化範囲の具体的な決定方法としては、第1〜第5の実施の形態で示したような方法を採用することができる。
[ステップS23]量子化部223は、バッファメモリ221からNc個の尤度データを順次取得して、演算部222によって決定された量子化範囲に基づいて、ビット幅nからビット幅m(m<n)への尤度データの量子化を行う。なお、量子化部223は、この量子化範囲に属さない尤度データのうち量子化範囲より大きい尤度データに関しては、量子化後データの最大値に対応付ける。また、量子化範囲より小さい尤度データに関しては、量子化後データの最小値に対応付ける。
[ステップS24]デレートマッチング部228は、量子化部223によるビット幅mの量子化後データに関して、レートマッチング処理が施された反復データを足し合わせることによって、レペティション合成を行う。
[ステップS25]再量子化演算部228aは、レペティション合成後データに関して指数位置が同じデータを計数する。そして、再量子化演算部228aは、計数した結果を指数位置が小さい方から累積する。再量子化演算部228aは、上記累積の結果に基づいて、合成後データの再量子化範囲を決定する。再量子化における量子化範囲の具体的な決定方法としては、第1〜第5の実施の形態で示したような方法を採用することができる。
[ステップS26]再量子化部228bは、デレートマッチング部228からビット幅がmより大きいレペティション合成後データを、例えば、フレーム単位で取得する。そして、取得したレペティション合成後データを再量子化演算部228aによって決定された量子化範囲に基づき、ビット幅mに量子化する。
[ステップS27]誤り訂正復号部224は、再量子化部228bから受け付けたデータに関して誤り訂正復号処理を行う。
[ステップS28]誤り検出部225は、復号されたデータに対して誤り検出符号に基づいて、誤り検出を行う。誤りを検出しない場合、誤り検出部225は、復号データを受信データとして出力し、処理が完了する。更に、この場合、受信装置200から送信装置100にACKが送信される。また、誤りを検出した場合、誤り検出部225は、NACK/ACK判定部226に誤りを検出した旨を通知して、処理がステップS29に移される。
[ステップS29]NACK/ACK判定部226は、誤り検出部225から復号されたデータに関して誤りを検出した旨の通知を受け付けると、制御情報符号化部227に対して、送信装置100aに送信するためのNACK情報を出力する。制御情報符号化部227は、NACK/ACK判定部226から受け付けたNACK情報を符号化し、変調部212を介して送信装置100aに送信する。
このように、量子化後にビット幅が増加したレペティション合成後のデータに関して再度指数位置の累積分布を求めて、再量子化の量子化範囲を決定する。再量子化部228bは、レペティション合成後データを再度量子化することで、レペティション合成を行うことで生じる合成後データの増加分ビットを削減する。これにより、誤り訂正復号や誤り検出といった処理における計算量を削減することができる。
また、ビット幅がmからrだけ増加した合成後データに対し、m+rステップの指数位置の分布を求めるだけで量子化範囲を決定するため、ステップ数2m+rの厳密な分布を求める場合と比べて、この量子化範囲の決定における計算量を削減することができる。
[第7の実施の形態]
以下、第7の実施の形態を、図面を参照して詳細に説明する。前述の第1、第6の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
図21は、第7の実施の形態の受信装置の機能(一部)を示すブロック図である。受信装置200bに対して信号を送信する送信装置の機能および構成は、図18に示した第6の実施の形態の送信装置100aと同様である。
受信装置200bは、モデム部210(図21では図示せず)およびコーデック部220bを有する。ここで、モデム部210の機能および構成は、図4に示した第1の実施の形態における受信装置200と同様である。
コーデック部220bは、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226、制御情報符号化部227、デレートマッチング部228、再量子化演算部228cおよび再量子化部228dを有する。
ここで、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226、制御情報符号化部227およびデレートマッチング部228の機能は、図19に示した第6の実施の形態に係る受信装置200aと同様である。ただし、演算部222は、計数した尤度データの総数(例えば、フレーム単位に含まれる尤度データの数)を、再量子化演算部228cに通知する。また、デレートマッチング部228は、レペティション合成後の軟判定データの総数を再量子化演算部228cに通知する。
再量子化演算部228cは、レペティション合成後データのビット幅を削減するためのシフト量(何ビット右シフトすればよいか、すなわち、下位何ビットを削ればよいか)を算出する。具体的には、再量子化演算部228cは、シフト量の算出で使用する変数として、演算部222から1フレームに含まれるレペティション合成前の尤度データの総数を取得する。また、再量子化演算部228cは、デレートマッチング部228から1フレームに対応するレペティション合成後の軟判定データの総数を取得する。そして、この2つの値から、実質ビットが平均で何ビット増加しているかを推定してシフト量とする。
再量子化部228dは、デレートマッチング部228による合成後データを、例えば、受信信号のフレーム単位で取得する。そして、再量子化部228dは、再量子化演算部228cにより算出されたシフト量に基づいて、レペティション合成後の各軟判定データをシフト演算によってビット幅mに再量子化する。
図22は、第7の実施の形態の受信処理の手順を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。なお、送信装置100aにて、レペティションが行われているものとする。更に、ステップS21〜ステップS24およびステップS27〜ステップS29に関しては、図20に示した第6の実施の形態の受信処理の手順と同一である。
[ステップS25a]再量子化演算部228cは、レペティション合成後データをビット幅mに再量子化するための右シフト量rshを、以下の(1)式により算出する。
ここで、Nrepはレペティション合成前のデータ数であり、Ncompはレペティション合成後のデータ数である。また、roundoffは、小数点以下を四捨五入することを表す。これらNrepとNcompとの対数比(底は2とする)によって、実質ビットが平均で何ビット増加したかを推定してシフト量を算出する。
[ステップS26a]再量子化部228dは、各合成後データをrshビット右シフトする。そして、再量子化部228dは、シフト後データの下位からm−1ビットを取得し、これに符号ビットを付加したmビットのビット列を再量子化後データとする。ただし、再量子化後の軟判定データが取りうる値の範囲は、Aq=2m-1として、−Aq以上Aq−1以下であるから、右シフト演算後の値がこの範囲を超える場合にはクリップ処理を行う。すなわち、再量子化部228dは、ある右シフト演算後のデータXoがXo>Aq−1である場合、Aq−1を再量子化後データとする。また、Xo<−Aqである場合、−Aqを再量子化後データとする。
ここで、上記のステップS25aに関して、例えば、レペティション前のデータ数がNrep=10000であり、レペティション合成後のデータ数がNcomp=2500である場合、NrepとNcompとの比は4である。よって、レペティションによる繰り返し数が平均して4回であり、合成後データの実質ビットは最大でlog24=2ビット増加すると推定される。これにより、再量子化部228dは、合成後データをrsh=2だけ右シフトすれば、ビット幅mで再量子化される。
なお、(1)式では、rshをroundoff(小数点以下を四捨五入)によって求めているが、roundup(小数点以下を切り上げ)やrounddown(小数点以下を切り捨て)によって求めてもよい。
図23は、第7の実施の形態の量子化処理を示す模式図である。図23では、量子化部223の出力であるビット幅5の量子化後の値#1が“00110”(+6)、量子化後の値#2が“01100”(+12)としている。ここで、デレートマッチング部228によってこの2つの値が加算(レペティション合成)されると、合成後データ“010010”(+18)が得られる。この合成後データは、再量子化部228dによって、右シフト演算のみで再度量子化されて、ビット幅5の再量子化後データ“01001”(+9)に変換される。
具体的には、再量子化演算部228cは、まずレペティション合成前後の軟判定データの総数によって合成後データの右シフト量rshを計算する。例えば、レペティション前のデータ数をNrep=10000、レペティション後のデータ数をNcomp=5000とすると、(1)式により右シフト量をrsh=log2(10000/5000)=log22=1ビットと計算する。これにより、上記レペティション合成後データは、再量子化部228dによって1ビット右シフトされ、シフト後データ“001001”(+9)が得られる。そして、再量子化部228dは、シフト後データの下位から4ビットを取得し、この4ビットに符号ビットを1ビット加えて5ビットの再量子化後データ“01001”(+9)を得る。
このように、レペティション合成後の軟判定データに対するシフト量を合成前後のデータ数から計算して、シフト演算のみで合成後の軟判定データをビット幅mに再量子化する。これによって、再度累積分布を求めて量子化範囲を決定する場合に比べて更に計算量を削減することができる。
[第8の実施の形態]
以下、第8の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
本実施の形態は、受信装置において、受信データの復号精度を向上するために、HARQによる再送制御を行う場合である。この場合、受信装置でHARQ合成処理の後に再度量子化が行われるようにする。
ここで、HARQによる再送制御では、受信装置は、受信したデータを正しく復号できなかった場合に、この復号失敗データを破棄せずに保持しておき、再送されるデータと合成することで誤り訂正能力を向上する。HARQ合成法には、例えば、IR(Incremental Redundancy)合成がある。
IR合成では、送信装置がパンクチャリング(情報の間引き)により、初回送信時には誤り訂正用のパリティビットの一部を除いて送信し、再送時には未送信の誤り訂正用のパリティビットを送信する。そして、送信装置で、以前に受信した復号失敗データとパリティビットとを合成して復号することで誤り訂正能力を向上する。
この他にも、HARQ合成法には、例えば、Chase合成がある。Chase合成は、復号失敗データと同一のデータを復号失敗に応じて繰り返し再送し、受信装置で両データを合成することでダイバーシティの効果により誤り訂正能力を向上する合成法である。
以下では、このようなHARQ合成後の量子化を行う受信装置の構成を示す。
図24は、第8の実施の形態の受信装置の機能(一部)を示すブロック図である。受信装置200cに対して信号を送受信する送信装置の機能および構成は、図3に示した第1の実施の形態の送信装置100と同様である。
受信装置200cは、モデム部210(図24では図示せず)およびコーデック部220cを有する。ここで、モデム部210の機能および構成は、図4に示した第1の実施の形態と同様である。
コーデック部220cは、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226、制御情報符号化部227、HARQ合成部229、メモリ229a、再量子化演算部229bおよび再量子化部229cを有する。ここで、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226および制御情報符号化部227の機能は、図4に示した第1の実施の形態と同様である。
ただし、演算部222は、尤度データの累積分布において累積数が所定の閾値を超えるときの指数位置を、HARQ合成部229に通知する。また、量子化部223は、ビット幅nからビット幅m(m<n)へとビット幅を削減した量子化後データをHARQ合成部229に出力する。
HARQ合成部229は、メモリ229aから前回の受信データ(量子化後データ)を取得すると共に、量子化部223から再送データ(量子化後データ)を取得し、各データ受信時のレベル(尤度データのレベル)の比による重み付けをして合成(最大比合成)する。HARQ合成部229は、各データ受信時のレベルを演算部222から取得した指数位置によって特定することができる。なお、HARQ合成部229は、初回のデータ受信時には、メモリ229aに合成するためのデータが格納されていないため、入力データがそのまま合成後データとなる。
メモリ229aは、復号に失敗した再量子化後データを記憶する。また、そのデータに対応付けて、その量子化後データを得る際の演算部222の処理で得られた指数位置を記憶する。なお、メモリ229aに記憶された再量子化後データは、誤り検出部225において正常に復号されたと判定された場合に破棄される。
再量子化演算部229bは、HARQ合成部229から出力されたHARQ合成後データ(量子化部223の出力時点のビット幅mよりもビット幅の大きい軟判定データ)に対して、演算部222と同様の処理を行う。すなわち、再量子化演算部229bは、指数位置が同じであるHARQ合成後データ数を計数する。そして、再量子化演算部229bは、指数位置が小さい方からこの計数結果を累積する。再量子化演算部229bは、この累積結果に基づいて、Amaxを計算してHARQ合成後データの量子化範囲を決定する。
なお、再量子化演算部229bは、HARQ合成後データの絶対値に関して指数位置の特定を行ってもよい。また、再量子化演算部229bは、HARQ合成後データの値が正あるいは負のどちらか一方のデータのみを参照して、指数位置の特定を行ってもよい。
再量子化部229cは、HARQ合成部229よるHARQ合成後のデータを、例えば、受信信号のフレーム単位で取得する。そして、再量子化部229cは、再量子化演算部229bで決定された量子化範囲に基づいて、取得したHARQ合成後データを量子化部223と同様にmビットに量子化し、誤り訂正復号部224に出力する。ここで、再量子化部229cは、この量子化範囲に属さないHARQ合成後データについてクリップ処理を行う。すなわち、量子化範囲より大きいHARQ合成後データに関しては、再量子化後データの最大値に対応付ける。また、量子化範囲より小さいHARQ合成後データに関しては、再量子化後データの最小値に対応付ける。更に、再量子化部229cは、再量子化後データをメモリ229aに格納する。
ここで、以下にHARQ合成部229による保存データと再送データとの合成(加算)処理に関して説明する。
まず、HARQ合成部229は、再送データに関して、演算部222が算出したAmaxを与える指数位置I0を演算部222から受け付ける。メモリ229aは、前回の受信データ(保存データ)と共に、その保存データの量子化時のAmaxを与える指数位置I1を記憶している。
そして、HARQ合成部229は、再量子化前ビット数の差lshを以下の式により算出する。
その後、HARQ合成部229は、I0がI1よりも大きい場合は、再送データをlshビット左シフトした後に合成を実行する。また、HARQ合成部229は、I1がI0よりも大きい場合は、保存データをlshビット左シフトした後に合成を実行する。これにより、復調後に得られる尤度データのレベル比が復元されて、前回分の量子化データと再送分の量子化データとが合成される。
図25は、第8の実施の形態の受信処理の手順を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
[ステップS31]復調部211は、受信した信号を復調する。そして、復調部211は、各受信信号のレベルに基づいてビット幅nの尤度データを生成する。
[ステップS32]演算部222は、フレームを構成するNc個の尤度データに関して指数位置が同じ尤度データを計数する。そして、演算部222は、計数した結果を指数位置が小さい方から累積する。演算部222は、この累積結果から量子化範囲を決定する。量子化範囲の具体的な決定方法としては、第1〜第5の実施の形態で示したような方法を採用することができる。なお、第1〜第5の実施の形態で示した割合P,PLの値は、再送回数に応じて変更することも考えられる。
[ステップS33]量子化部223は、バッファメモリ221からNc個の尤度データを順次取得して、演算部222によって決定された量子化範囲に基づいて、ビット幅nからビット幅m(m<n)への尤度データの量子化を行う。なお、量子化部223は、この量子化範囲に属さない尤度データのうち量子化範囲より大きい尤度データに関しては、量子化後データの最大値に対応付ける。また、量子化範囲より小さい尤度データに関しては、量子化後データの最小値に対応付ける。
[ステップS34]HARQ合成部229は、前回受信分の復号に失敗した量子化後データと再送分の量子化後データとを量子化前のレベル(尤度データのレベル)に応じて重み付けしてHARQ合成する。
[ステップS35]再量子化演算部229bは、HARQ合成後データに関して指数位置が同じデータを計数する。そして、再量子化演算部229bは、計数した結果を指数位置が小さい方から累積する。再量子化演算部229bは、上記累積の結果に基づいて、合成後データの再量子化範囲を決定する。再量子化における量子化範囲の具体的な決定方法としては、第1〜第5の実施の形態で示したような方法を採用することができる。
[ステップS36]再量子化部229cは、HARQ合成部229からビット幅がmより大きいHARQ合成後データを、例えば、フレーム単位で取得して、再量子化演算部229bによって決定された再量子化範囲に基づいて、ビット幅mへの再量子化を行う。再量子化部229cは、再量子化後データをメモリ229aに格納する。
[ステップS37]誤り訂正復号部224は、再量子化部229cから受け付けたデータに関して誤り訂正復号処理を行う。
[ステップS38]誤り検出部225は、復号されたデータに対して誤り検出符号に基づいて、誤り検出を行う。誤りを検出しない場合、誤り検出部225は、復号データを受信データとして出力し、処理が完了する。更に、この場合、受信装置200cから送信装置100にACKが送信され、また、メモリ229aに格納された再量子化後データは破棄される。また、誤りを検出した場合、誤り検出部225は、NACK/ACK判定部226に誤りを検出した旨を通知して、処理がステップS39に移される。
[ステップS39]NACK/ACK判定部226は、誤り検出部225から復号されたデータに関して誤りを検出した旨の通知を受け付けると、制御情報符号化部227に対して、送信装置100に送信するためのNACK情報を出力する。制御情報符号化部227は、NACK/ACK判定部226から受け付けたNACK情報を符号化し、変調部212を介して送信装置100に送信する。
このように、量子化後にビット幅が増加したHARQ合成後の尤度データに関して再度指数位置の累積分布を求めて、再量子化の量子化範囲を決定する。
HARQ合成後データを再量子化部229cにより再度量子化処理を行うことで、HARQ合成を行うことで生じる合成後データの増加分ビットを削減する。これにより、誤り訂正復号や誤り検出といった処理における計算量を削減し、回路規模を縮小することができる。
また、ビット幅がmからrだけ増加したHARQ合成後データに対し、m+rステップの指数位置の分布を求めるだけで量子化範囲を決定するため、ステップ数2m+rの厳密な分布を求める場合と比べて、この再量子化範囲の決定における計算量を削減することができる。
[第9の実施の形態]
以下、第9の実施の形態を、図面を参照して詳細に説明する。前述の第1、第8の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
図26は、第9の実施の形態の受信装置の機能(一部)を示すブロック図である。受信装置200dに対して信号を送信する送信装置の機能および構成は、図3に示した第1の実施の形態の送信装置100と同様である。
受信装置200dは、モデム部210(図26では図示せず)およびコーデック部220dを有する。ここで、モデム部210の機能および構成は、図4に示した第1の実施の形態と同様である。
コーデック部220dは、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226、制御情報符号化部227、HARQ合成部229、メモリ229a、再量子化演算部229dおよび再量子化部229eを有する。ここで、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226および制御情報符号化部227、HARQ合成部229およびメモリ229aの機能は、図24に示した第8の実施の形態に係る受信装置200cと同様である。ただし、演算部222は、これに対応して算出したAmaxを与える指数位置I0を、再量子化演算部229dに通知する。また、メモリ229aは、再量子化演算部229dが取得した軟判定データに対応するAmaxを与える指数位置I1を記憶する。
再量子化演算部229dは、再送データを受信した場合、HARQ合成後データに対してAmaxを与える指数位置Iを決定する。具体的には、再量子化演算部229dは、指数位置I0およびI1のうち、大きい方をIとする。
再量子化部229eは、HARQ合成部229による合成後データを、例えば、受信信号のフレーム単位で取得する。そして、再量子化部229eは、再量子化演算部229dにより決定された指数位置Iに基づいて、再量子化範囲を決定してHARQ合成後データをビット幅mに再量子化する。
図27は、第9の実施の形態の受信処理の手順を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。なお、受信装置200dは、送信装置100からHARQ再送制御による再送データを受信しているものとする。また、ステップS31〜S34およびステップS36〜S39は、第8の実施の形態における図25の手順と同一である。
[ステップS35a]再量子化演算部229dは、HARQ合成後データについてのAmaxを与える指数位置Iを、以下のように決定する。すなわち、I1≧I0のとき、I=I1とする。また、I1<I0のとき、I=I0とする。そして、再量子化演算部222は、指数位置Iに基づいて、量子化範囲の最大値および最小値を求める。具体的には、演算部222は、Amax=2Iと置くと、再量子化範囲の最大値をAmax−1、最小値を−Amaxと決定する。
図28は、第9の実施の形態の量子化処理を示す模式図である。図28では、HARQ合成部229への入力である再送分の量子化後の値が“01101”(+13)であり、メモリ229aに記憶されていた前回分の量子化後の値が“00101”(+5)としている。再送データと保存データの最上位のビットは符号ビットであり、量子化ビット数は共に5ビットである。
HARQ合成部229は、まず再送データと保存データとをHARQ合成する。そのために、HARQ合成部229は、各量子化データに対応する量子化前ビット数の差によって重み付けする。ここでは、指数位置I1>指数位置I0であるとし、両者の差lsh=I1−I0=3であったとする。これは、保存データの受信時は、再送データの受信時よりもフレーム全体として受信レベルが約8倍大きかったことを示している。そこで、HARQ合成部229は、保存データを再送データよりも3ビット左シフトして、受信レベルの相対関係を再現し、再送データ“01101”(+13)とシフト後の保存データ“00101000”(+40)とを加算して、HARQ合成後データ“00110101”(+53)を得る。
そして、このHARQ合成後データに対して、指数位置I1に基づいて再度量子化する。具体低には、HARQ合成後データ“00110101”(+53)の先頭から符号ビットを除く4ビットを抽出し、これに符号ビットを1ビット加えて5ビットの再量子化データ“00110”(+6)を生成する。
このように、HARQ合成後の軟判定データに対する再量子化範囲を前回受信データの指数位置I1および再送データの指数位置I0のうちの大きい方と決定する。そして、決定した指数位置に基づいて、HARQ合成後の軟判定データをビット数mに再量子化する。これによって、再度累積分布を求めて量子化範囲を決定する場合に比べて更に計算量を削減することができる。
[第10の実施の形態]
以下、第10の実施の形態を、図面を参照して詳細に説明する。前述の第8の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
第10の実施の形態では、初回の受信データに関しては累積分布により得た指数位置に基づいて量子化を行い、再送の受信データに関しては初回で得た指数位置に所定のビット数だけ加算した指数位置に基づいて量子化を行なう。すなわち、再送の受信データの量子化の際には新たに累積を取らず、これにより処理負荷の軽減を図る。
以下では、このような機能を実現する受信装置に関して説明する。
図29は、第10の実施の形態の受信装置の機能(一部)を示すブロック図である。受信装置200eに対して信号を送信する送信装置の機能および構成は、図3に示した第1の実施の形態の送信装置100と同様である。
受信装置200eは、モデム部210(図29では図示せず)およびコーデック部220eを有する。ここで、モデム部210の機能および構成は、図4に示した第1の実施の形態と同様である。
コーデック部220eは、バッファメモリ221、シーケンス制御部221a、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226、制御情報符号化部227、HARQ合成部229、メモリ229a、再量子化部229fを有する。ここで、バッファメモリ221、演算部222、量子化部223、誤り訂正復号部224、誤り検出部225、NACK/ACK判定部226および制御情報符号化部227、HARQ合成部229およびメモリ229aの機能は、図24に示した第8の実施の形態に係る受信装置200cと同様である。ただし、バッファメモリ221は、モデム部210からの尤度データをシーケンス制御部221aを介して取得する。また、演算部222は、これに対応して算出したAmaxを与える指数位置Iを、量子化部223aおよび再量子化演算部229fに通知する。更に、メモリ229aは、初回受信の尤度データに関しては、量子化部223aから取得するデータを記憶し、再送された尤度データに関しては、再送量子化部229fから取得するデータを記憶する。
シーケンス制御部221aは、受信データの内容に応じてモデム210から取得する尤度データの出力先を変更する。すなわち、受信データが該当のデータの初回の受信時である場合、尤度データをバッファメモリ221に出力する。また、再送されたデータの受信時には、尤度データを量子化部223aに出力する。これは、初回に受信したデータに関しては演算部222による量子化範囲を特定するための演算が実行され、再送されたデータに関しては演算部222による演算が省略されることを意味する。
量子化部223aは、受信データが初回受信のデータである場合、バッファメモリ221に格納されたビット幅nの尤度データを順次取り出す。そして、量子化部223aは、演算部222から通知された指数位置Iにより決定される量子化範囲に基づいて、ビット幅nの尤度データをビット幅mの尤度データに変換する。例えば、量子化部223aは、量子化前のnビットのビット列から通知されたビット範囲の部分を切り出して量子化後のビット列とする。その場合、ビット範囲の最上位ビットよりも大きい桁を有する尤度データについては、クリップ処理を行う。すなわち、この尤度データをmビット以下で表現可能な数値の最大値に量子化する。
更に、量子化部223aは、受信データが初回受信のデータである場合、バッファメモリ221から取得した尤度データに対して、次回再送データとのHARQ合成用のデータを生成するための量子化を行なう。このとき、量子化部223aは、演算部222から通知された指数位置Iに所定の値αだけ加算した値を指数位置J(=I+α)により決定される量子化範囲に基づいて量子化を行う。量子化部223aは、これにより生成したHARQ合成用のデータをメモリ229aに格納する。
また、量子化部223aは、受信データが再送されたデータである場合、シーケンス制御部221aから順次取得するビット幅nの尤度データをビット幅mの尤度データに変換する。このとき、量子化部223aは、初回のデータ受信時に演算部222から通知された指数位置Iに所定の値αだけ加算した値を指数位置J(=I+α)とする。そして、量子化部223aは、この指数位置Jにより決定される量子化範囲に基づいて、この量子化を行う。指数位置Jにより決定される量子化範囲とは、具体的には、A=2Jとして、最大値がA−1、最小値が−Aである範囲である。
ここで、αの値は、再送データの受信レベルの増加分を指定する値であり、例えば、送信装置と受信装置との間で予め合意がなされる。αの値は、情報ビット数、符号化率および変調方式などによって決まる伝送フォーマットを考慮して適切な値が決定される。また、SNRやそれに順ずる信頼度の測定結果に基づいて設定することも考えられる。
再量子化部229fは、HARQ合成部229によるHARQ合成後のデータを、例えば、受信信号のフレーム単位で取得する。また、再量子化部229fは、演算部222から通知された指数位置Iに所定の値αだけ加算した指数位置Jにより決定される量子化範囲に基づいて、取得したHARQ合成後データを量子化部223aと同様にmビットに量子化し、誤り訂正復号部224に出力する。ここで、再量子化部229fは、この量子化範囲に属さないHARQ合成後データについてクリップ処理を行う。すなわち、量子化範囲より大きいHARQ合成後データに関しては、再量子化後データの最大値に対応付ける。また、量子化範囲より小さいHARQ合成後データに関しては、再量子化後データの最小値に対応付ける。更に、再量子化部229fは、受信データが再送により取得したデータである場合、再量子化後データをメモリ229aに格納する。
次に、以上のような構成により実現される受信装置200eの受信処理に関して説明する。まず、該当データの初回の受信処理について説明する。
図30は、第10の実施の形態の初回の受信処理の手順を示すフローチャートである。以下、図30に示す処理をステップ番号に沿って説明する。
[ステップS41]復調部211は、受信した信号を復調する。そして、復調部211は、各受信信号のレベルに基づいてビット幅nの尤度データを生成する。更に、シーケンス制御部221aは、復調部211から取得するビット幅nの尤度データをバッファメモリ221に出力する。
[ステップS42]演算部222は、フレームを構成するNc個の尤度データに関して指数位置が同じ尤度データを計数する。そして、演算部222は、計数した結果を指数位置が小さい方から累積する。演算部222は、この累積結果から量子化範囲を与える指数位置Iを決定する。演算部222は、決定した指数位置Iを量子化部223aおよび再量子化部229fに通知する。なお、指数位置の具体的な決定方法としては、第1〜第5の実施の形態で示したような方法を採用することができる。
[ステップS43]量子化部223aは、バッファメモリ221からNc個の尤度データを順次取得して、演算部222によって決定された指数位置Iで決まる量子化範囲に基づいて、ビット幅nからビット幅m(m<n)への尤度データの量子化を行う。なお、量子化部223aは、この量子化範囲に属さない尤度データのうち量子化範囲より大きい尤度データに関しては、量子化後データの最大値に対応付ける。また、量子化範囲より小さい尤度データに関しては、量子化後データの最小値に対応付ける。生成された量子化後データは、HARQ合成部229および再量子化部229fを介して誤り訂正復号部224に出力される。なお、HARQ合成部229および再量子化部229fの出力は、合成用のデータが存在しないため、量子化部223aの出力と同じデータとなる。
[ステップS44]量子化部223aは、バッファメモリ221からNc個の尤度データを順次取得する。そして、演算部222によって決定された指数位置Iに所定の値αだけ加算した指数位置Jで決まる量子化範囲に基づいて、ビット幅nからビット幅m(m<n)への尤度データの量子化を行ないHARQ合成用のデータを生成する。なお、量子化部223aは、この量子化範囲に属さない尤度データのうち量子化範囲より大きい尤度データに関しては、量子化後データの最大値に対応付ける。また、量子化範囲より小さい尤度データに関しては、量子化後データの最小値に対応付ける。そして、量子化部223aは、生成したHARQ合成用のデータをメモリ229aに格納する。
[ステップS45]誤り訂正復号部224は、再量子化部229fから受け付けたデータ(上記ステップS43で量子化されたデータ)に関して誤り訂正復号処理を行う。
[ステップS46]誤り検出部225は、復号されたデータに対し誤り検出符号に基づいて、誤り検出を行う。誤りを検出しない場合、誤り検出部225は、復号データを受信データとして出力し、処理が完了する。更に、この場合、受信装置200eから送信装置100にACKが送信され、また、メモリ229aに格納されたHARQ合成用データは破棄される。また、誤りを検出した場合、誤り検出部225は、NACK/ACK判定部226に誤りを検出した旨を通知して、処理がステップS47に移される。
[ステップS47]NACK/ACK判定部226は、誤り検出部225から復号されたデータに関して誤りを検出した旨の通知を受け付けると、制御情報符号化部227に対して、送信装置100に送信するためのNACK情報を出力する。制御情報符号化部227は、NACK/ACK判定部226から受け付けたNACK情報を符号化し、変調部212を介して送信装置100に送信する。
[ステップS48]復調部211は、送信装置100から再送データを受信し、前回受信のデータとHARQ合成して誤り訂正復号処理を行う。そして、データが正しく復号されると処理が完了する。
このように、初回のデータ受信時、量子化部223aは再送データの受信レベルの増加分を考慮してHARQ合成用のデータを生成し、メモリ229aに格納する。また、初回のデータ受信時に誤り訂正復号部224に入力されるデータは、累積分布により求めた指数位置Iにより決まる量子化範囲に基づいて量子化されたデータとなる。
図31は、第10の実施の形態の再送時受信処理の手順を示すフローチャートである。以下、図31に示す処理をステップ番号に沿って説明する。
[ステップS51]復調部211は、受信した信号を復調する。そして、復調部211は、各受信信号のレベルに基づいてビット幅nの尤度データを生成する。更に、シーケンス制御部221aは、復調部211から取得するビット幅nの尤度データを量子化部223aに出力する。
[ステップS52]量子化部223aは、シーケンス制御部221aからNc個の尤度データを順次取得して、指数位置J(=I+α)で決まる量子化範囲に基づいて、ビット幅nからビット幅mへの尤度データの量子化を行う。なお、量子化部223aは、この量子化範囲に属さない尤度データのうち量子化範囲より大きい尤度データに関しては、量子化後データの最大値に対応付ける。また、量子化範囲より小さい尤度データに関しては、量子化後データの最小値に対応付ける。
[ステップS53]HARQ合成部229は、メモリ229aに記憶される前回受信分の復号に失敗した量子化後データと再送分の量子化後データとをHARQ合成する。
[ステップS54]再量子化部229fは、HARQ合成部229からビット幅がmより大きいHARQ合成後データを、例えば、フレーム単位で取得して、クリップ処理によりビット幅mに変換する。再量子化部229fは、再量子化後データをメモリ229aに格納する。
[ステップS55]誤り訂正復号部224は、再量子化部229fから受け付けたデータに関して誤り訂正復号処理を行う。
[ステップS56]誤り検出部225は、復号されたデータに対して誤り検出符号に基づいて、誤り検出を行う。誤りを検出しない場合、誤り検出部225は、復号データを受信データとして出力し、処理が完了する。更に、この場合、受信装置200から送信装置100にACKが送信され、また、メモリ229aに格納された再量子化後データは破棄される。また、誤りを検出した場合、誤り検出部225は、NACK/ACK判定部226に誤りを検出した旨を通知して、処理がステップS57に移される。
[ステップS57]NACK/ACK判定部226は、誤り検出部225から復号されたデータに関して誤りを検出した旨の通知を受け付けると、制御情報符号化部227に対して、送信装置100に送信するためのNACK情報を出力する。制御情報符号化部227は、NACK/ACK判定部226から受け付けたNACK情報を符号化し、変調部212を介して送信装置100に送信する。
このように、初回のデータ受信時に求めた基準の指数位置Iと受信レベルの増加分として予め規定される値αとに基づいて、再送データを量子化するための量子化範囲を決定する。すなわち、再送データに対して改めて累積分布の取得を行なわないようにする。
図32は、第10の実施の形態の初回データ受信時の量子化処理を示す模式図である。
図32では、初回の受信データに対応する尤度データが“00000100010”(+34)である場合を示している。最上位のビットは符号ビットである。また、演算部222がAmaxを2I=25=00000100000(+32)と決定しているものとする。なお、量子化ビット数は5ビットとする。更に、α=3と規定されているものとする。
量子化部223aは、初回の受信データに対して以下の2通りの変換処理を実行する。
(1)量子化部223aは、指数位置I=5により決定する量子化範囲に基づいて尤度データを量子化する。この量子化範囲は、−Amax=11111100000(−32)以上、Amax−1=00000011111(+31)以下である。尤度データ“00000100010”(+34)は、この量子化範囲の最大値を超えているため、量子化後データの実質ビットである4ビットを全て“1”とし、この4ビットに符号ビット1ビットを付与した5ビットのデータ“01111”(+15)として、量子化後データを生成する。そして、生成された量子化後データ“01111”(+15)は、HARQ合成部229および再量子化部229fを介して誤り訂正復号部224に出力される。
(2)量子化部223aは、指数位置J=I+α=5+3=8により決定する量子化範囲に基づいて尤度データを量子化する。この場合、上記のAmaxに相当するAは、A=2J=00100000000(+256)となる。このAに対応する量子化範囲は、−A=11100000000(−256)以上、A−1=00011111111(+255)以下である。“00000100010”(+34)は、この量子化範囲内にあるので、量子化範囲の最大値の指数位置(LSBから数えて8桁目)からこの指数位置を含めて下位へ4ビット取得する。そして、この4ビットに符号ビット1ビットを付与した5ビットのデータ“00010”(+4)として、HARQ合成用データを生成する。量子化部223aは、生成したHARQ合成用データをメモリ229aに格納する。
このように、量子化部223aは、再送データに対する尤度データのビット増加分を考慮してHARQ合成用のデータを生成しておくことで、再送データとのHARQ合成に寄与する有意なビットの情報が失われることを防止することができる。
図33は、第10の実施の形態の再送データ受信時の量子化処理を示す模式図である。図33では、図32に示した尤度データに対して再送された受信データに対応する尤度データが“00010110110”(+182)である場合を示している。最上位のビットは符号ビットである。なお、図32と同様に量子化ビット数は5ビット、α=3である。
量子化部223aは、指数位置J=8により決定する量子化範囲に基づいてシーケンス制御部221aから取得する尤度データを量子化する。図32(2)と同様に、この量子化範囲は、−A=11100000000(−256)以上、A−1=00011111111(+255)以下である。尤度データ“00010110110”(+182)は、この量子化範囲内にあるので、量子化範囲の最大値の指数位置(LSBから数えて8桁目)からこの指数位置を含めて下位へ4ビット取得する。そして、この4ビットに符号ビット1ビットを付与した5ビットのデータ“01011”(+11)を量子化後データとして出力する。
HARQ合成部229は、メモリ229aに格納された“00010”(+4)と、再送データに基づく量子化後データ“01011”(+11)とを合成することになる。
更に、再量子化部229fは、HARQ合成後データのうち、mビットよりも大きくなるものをクリップ処理することで、HARQ合成後データを再量子化する。
このように、量子化部223aは、初回のデータ受信時に求めた基準の指数位置Iと受信レベルの増加分として予め規定される値αとに基づいて、再送データを量子化するための量子化範囲を決定するので、再送データに関して累積分布を取得する必要がなくなる。
このため、第8および第9の実施の形態のように再送データに関しても累積分布を取得して量子化範囲を決定する方法に比べて更に計算量の軽減を図ることができる。
上記の受信装置によれば、入力データ列の各軟判定データについて数値の大きさが2進数で何桁であるかが特定され、桁数が同じ軟判定データの個数がカウントされる。そして、カウント結果を桁数の小さい方から累積した累積個数分布に基づいて、nビットのうちmビットに対応付けるビット範囲が決定される。これにより、ビット幅nの軟判定データからビット幅mの軟判定データへの対応付けを決定する際の計算量が削減され、処理を高速に実行できる。また、あらゆる伝送路環境に対応するためにビット幅mを大きくとっておくことを回避でき、回路規模の増大を抑制できる。
すなわち、ビット幅nの軟判定データからビット幅mの軟判定データへの対応付けを小さい回路規模で効率的に行うことが可能となる。
更に、レペティションやHARQ合成を行なう場合にも、上記の量子化法を適用することが可能である。この場合、累積個数分布を再度取得することで同様に計算量を削減することができる。
また、これら合成によるビット増加分を推定して、累積個数分布を再度取得することなく量子化を行なうことも可能である。このようにすると、累積個数分布を再度取得する場合に比べて、更に計算量を削減することができる。
以上、データ変換装置およびデータ変換方法を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上、説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) ビット幅nの軟判定データからなる入力データ列をビット幅m(m<n)の軟判定データからなる出力データ列に変換するデータ変換装置において、
前記入力データ列の各軟判定データについて当該軟判定データが表す数値の大きさが2進数で何桁であるかを特定し、特定した桁数が同じ軟判定データの個数を計数し、計数した個数を前記桁数の小さい方から累積した累積個数分布に基づいてnビットのうちmビットに対応付けるビット範囲を決定する演算部、
を有することを特徴とするデータ変換装置。
(付記2) 前記演算部は、前記累積個数分布において累積個数が所定の閾値に達するときの桁数を特定し、特定した桁数に基づいて前記ビット範囲を決定することを特徴とする付記1記載のデータ変換装置。
(付記3) 前記演算部は、前記累積個数分布において累積個数が所定の閾値を超えることとなる最小の桁数kを特定し、前記ビット範囲の最上位桁をk−1桁目とすることを特徴とする付記1記載のデータ変換装置。
(付記4) 前記演算部は、前記累積個数分布において累積個数が所定の閾値を超えることとなる最小の桁数kを特定し、桁数kの累積個数と桁数k−1の累積個数とを比較し、前記桁数kの累積個数の方が前記所定の閾値に近い場合は前記ビット範囲の最上位桁をk桁目とし、前記桁数k−1の累積個数の方が前記所定の閾値に近い場合は前記ビット範囲の最上位桁をk−1桁目とすることを特徴とする付記1記載のデータ変換装置。
(付記5) 前記演算部は、前記桁数が所定の閾値以上である軟判定データについては、最上位桁よりも下位のビットに基づいて更に分類して前記累積個数分布を求めることを特徴とする付記1記載のデータ変換装置。
(付記6) 前記演算部は、前記桁数が所定の閾値以上である軟判定データについては、最上位桁の1つ下位のビットが0または1の何れであるかに応じて更に分類して前記累積個数分布を求めることを特徴とする付記1記載のデータ変換装置。
(付記7) 前記演算部は、前記計数した個数の最大値が所定の閾値以上であるか否かに応じて、前記ビット範囲の広さを制御することを特徴とする付記1記載のデータ変換装置。
(付記8) 前記演算部は、前記計数した閾値の最大値が所定の閾値以上である場合、前記計数した個数の最大値が前記所定の閾値以上でない場合よりも、前記ビット範囲の最上位桁を1桁だけ大きい位置に設定することを特徴とする付記1記載のデータ変換装置。
(付記9) 前記演算部は、前記累積個数分布において累積個数が所定の閾値を超えることとなる最小の桁数kを特定し、前記ビット範囲の最上位桁をk−1+m桁目とすることを特徴とする付記1記載のデータ変換装置。
(付記10) 前記演算部は、各軟判定データのビット列を先頭ビットから下位ビットに向かって走査し、先頭ビットと異なるビットが最初に検出された位置に基づいて前記桁数を特定することを特徴とする付記1記載のデータ変換装置。
(付記11) ビット幅nの軟判定データからなる入力データ列をビット幅m(m<n)の軟判定データからなる出力データ列に変換するデータ変換方法において、
前記入力データ列の各軟判定データについて当該軟判定データが表す数値の大きさが2進数で何桁であるかを特定し、
特定した桁数が同じ軟判定データの個数を計数し、
計数した個数を前記桁数の小さい方から累積した累積個数分布に基づいてnビットのうちmビットに対応付けるビット範囲を決定する、
ことを特徴とするデータ変換方法。
(付記12) 信号列を受信し各受信信号に対応するビット幅mの軟判定データを復号することでデジタルデータを得る受信装置において、
前記信号列を受けて各受信信号の信号レベルに応じたビット幅n(n>m)の軟判定データを生成する受信部と、
前記受信部が生成した各軟判定データについて当該軟判定データが表す数値の大きさが2進数で何桁であるかを特定し、特定した桁数が同じ軟判定データの個数を計数し、計数した個数を前記桁数の小さい方から累積した累積個数分布に基づいてnビットのうちmビットに対応付けるビット範囲を決定する演算部と、
前記演算部が決定したビット範囲に基づいて、前記受信部が生成したビット幅nの軟判定データをビット幅mの軟判定データに変換する変換部と、
を有することを特徴とする受信装置。
(付記13) 受信する前記信号列は、少なくとも一部のデジタルデータを反復して送信するレペティション処理が施されており、
前記変換部で得られたビット幅mの軟判定データを取得し、反復がなされた範囲の受信信号に対応する軟判定データを加え合わせる合成部と、
前記合成部による合成後の各軟判定データについて当該軟判定データが表す数値の大きさが2進数で何桁であるかを特定し、特定した桁数が同じ軟判定データの個数を計数し、計数した個数を前記桁数の小さい方から累積した累積個数分布に基づいて、前記合成部による合成後の軟判定データのビット列のうちmビットに対応付けるビット範囲を決定する再演算部と、
前記再演算部が決定したビット範囲に基づいて、前記合成部による合成後の軟判定データをビット幅mの軟判定データに変換する再変換部と、
を更に有することを特徴とする付記12記載の受信装置。
(付記14) 受信する前記信号列は、少なくとも一部のデジタルデータを反復して送信するレペティション処理が施されており、
前記変換部で得られたビット幅mの軟判定データを取得し、反復がなされた範囲の受信信号に対応する軟判定データを加え合わせる合成部と、
前記合成部による合成前の軟判定データの個数と合成後の軟判定データの個数との比に基づいて、合成によって増加する軟判定データのビット数を推定する再演算部と、
前記合成部による合成後の軟判定データのビット列を前記再演算部が推定したビット数だけシフトさせて、ビット幅mの軟判定データに変換する再変換部と、
を更に有することを特徴とする付記12記載の受信装置。
(付記15) 復号処理中にエラーが検出され前記信号列の送信元に再送要求が行われた場合に、エラーが検出されたビット幅mの軟判定データを保持し、前記再送要求に応じて受信した新たな信号列に対応するビット幅mの軟判定データを前記変換部から取得し、保持した軟判定データについて前記演算部が決定したビット範囲および新たに取得した軟判定データについて前記演算部が決定したビット範囲に応じて重み付けして、前記保持した軟判定データと前記新たに取得した軟判定データとを合成する合成部と、
前記合成部による合成後の各軟判定データについて当該軟判定データが表す数値の大きさが2進数で何桁であるかを特定し、特定した桁数が同じ軟判定データの個数を計数し、計数した個数を前記桁数の小さい方から累積した累積個数分布に基づいて、前記合成部による合成後の軟判定データのビット列のうちmビットに対応付けるビット範囲を決定する再演算部と、
前記再演算部が決定したビット範囲に基づいて、前記合成部による合成後の軟判定データをビット幅mの軟判定データに変換する再変換部と、
を更に有することを特徴とする付記12記載の受信装置。
(付記16) 復号処理中にエラーが検出され前記信号列の送信元に再送要求が行われた場合に、エラーが検出されたビット幅mの軟判定データを保持し、前記再送要求に応じて受信した新たな信号列に対応するビット幅mの軟判定データを前記変換部から取得し、保持した軟判定データについて前記演算部が決定したビット範囲および新たに取得した軟判定データについて前記演算部が決定したビット範囲に応じて重み付けして、前記保持した軟判定データと前記新たに取得した軟判定データとを合成する合成部と、
前記保持した軟判定データについての前記演算部が決定したビット範囲および軟判定データの個数と、前記新たに取得した軟判定データについての前記演算部が決定したビット範囲および軟判定データの個数とに応じて、合成によって増加する軟判定データのビット数を推定する再演算部と、
前記合成部による合成後の軟判定データのビット列を前記再演算部が推定したビット数だけシフトさせて、ビット幅mの軟判定データに変換する再変換部と、
を更に有することを特徴とする付記12記載の受信装置。
(付記17) 復号処理中にエラーが検出され前記信号列の送信元に再送要求が行われた場合に、エラーが検出されたビット幅mの軟判定データを保持し、前記再送要求に応じて受信した新たな信号列に対応するビット幅mの軟判定データを前記変換部から取得し、保持した軟判定データについて前記演算部が決定したビット範囲および新たに取得した軟判定データについて前記演算部が決定したビット範囲に応じて重み付けして、前記保持した軟判定データと前記新たに取得した軟判定データとを合成する合成部と、
前記合成部による合成後の軟判定データをビット幅mの軟判定データに変換する再変換部と、
を更に有し、
前記変換部は、前記演算部が決定したビット範囲よりも所定のビット数だけ広いビット範囲に基づいて、前記受信部が前記新たな信号列を受けて生成したビット幅nの軟判定データをビット幅mの軟判定データに変換する、
ことを特徴とする付記12記載の受信装置。
(付記18) 前記変換部は、前記デジタルデータの初回送信時に前記受信部が生成したビット幅nの軟判定データを前記演算部が決定したビット範囲に基づいてビット幅mの第1の軟判定データに変換して前記合成部に出力すると共に、当該ビット幅nの軟判定データを前記演算部が決定したビット範囲よりも所定のビット数だけ広いビット範囲に基づいてビット幅mの第2の軟判定データに変換して前記合成部に出力し、
前記合成部は、前記ビット幅mの第1の軟判定データに基づく復号処理中にエラーが検出されて前記再送要求が行われた場合に、エラーが検出された前記ビット幅mの第2の軟判定データを保持する、
ことを特徴とする付記17記載の受信装置。
(付記19) 信号列を受信し各受信信号に対応するビット幅mの軟判定データを復号することでデジタルデータを得る受信方法において、
前記信号列を受けて各受信信号の信号レベルに応じたビット幅n(n>m)の軟判定データを生成し、
生成されたビット幅nの各軟判定データについて当該軟判定データが表す数値の大きさが2進数で何桁であるかを特定し、特定した桁数が同じ軟判定データの個数を計数し、計数した個数を前記桁数の小さい方から累積した累積個数分布に基づいてnビットのうちmビットに対応付けるビット範囲を決定し、
決定したビット範囲に基づいて、生成されたビット幅nの軟判定データをビット幅mの軟判定データに変換する、
ことを特徴とする受信方法。