図1は、本発明の実施形態の受信機が使用される無線通信システムの構成を示す。無線通信システム1は、図1に示すように、送信機10および受信機20を有する。
送信機10は、符号化器11および変調器12を有する。符号化器11は、情報ビットを符号化して符号ビットを生成する。情報ビットは、受信機20へ送信されるデータを表す。符号化方式は、特に限定されるものではないが、例えば、ターボ符号である。変調器12は、符号化器11により生成された符号ビットを送信シンボルにマッピングする。ここで、変調器12は、QPSK、16QAM、64QAM等の多値変調で符号ビットを送信シンボルにマッピングする。すなわち、変調器12は、各送信シンボルに複数の符号ビットをマッピングする。
送信機10は、送信シンボルを搬送する無線信号を生成して受信機20へ送信する。送信機10から送信される無線信号は、無線チャネル2を介して受信機20へ伝搬される。
受信機20は、復調器21、インターフェースメモリ部22、および復号器23を有する。復調器21は、受信シンボルを復調して軟判定データ(または、軟判定値)を生成する。このとき、復調器21は、受信シンボルにマッピングされている複数の符号ビットのそれぞれについて軟判定データを生成する。インターフェースメモリ部22は、復調器21によって生成される軟判定データを一時的に格納する。軟判定データは、浮動小数点形式でインターフェースメモリ部22に格納される。そして、復号器23は、インターフェースメモリ部22に格納されている軟判定データに基づいて情報ビットを推定する。
実施形態の受信機20は、上述のように、多値変調方式で符号ビットがマッピングされた受信シンボルから軟判定データを生成する。そして、受信機20は、インターフェースメモリ部22のメモリのサイズを小さくするために、軟判定データのビット数を削減する機能を有する。よって、まず、受信機20の構成および動作の理解を助けるために、多値変調および軟判定について説明する。
多値変調では、複数の符号ビットが1つのシンボルにマッピングされる。以下、多値変調の一例として、64QAMについて説明する。64QAMでは、6つの符号ビットが1つのシンボルにマッピングされる。以下、ある1つのシンボルにマッピングされる符号ビットをb0〜b5で表記する。
図2は、コンスタレーション上に配置された信号点を示す。横軸は、I成分を表す。縦軸は、Q成分を表す。そして、符号ビットb0〜b5は、図2に示す64QAMコンスタレーション上に配置される。例えば、b0、b2、b4がI成分を表し、b1、b3、b5がQ成分を表す。
符号ビットA1「100010」は、(b0,b2,b4)=(1,0,1)および(b1,b3,b5)=(0,0,0)に分解される。したがって、符号ビットA1は、信号点A1にマッピングされる。また、符号ビットA2「110100」は、(b0,b2,b4)=(1,0,0)および(b1,b3,b5)=(1,1,0)に分解される。したがって、符号ビットA2は、信号点A2にマッピングされる。
送信機10は、上述のようにして符号ビットから送信シンボルを生成して送信する。そうすると、受信機20は、図1に示すように、無線チャネル2を介してこのシンボルを受信する。ところが、受信機20において検出される受信シンボルの信号点の位置(すなわち、受信信号の振幅および位相)は、雑音等の影響を受ける。このため、受信機20は、受信シンボルにマッピングされている各符号ビットの値(すなわち、「0」又は「1」)を判定する前に、復調器21を利用して各符号ビットについて「0」または「1」であるとの判定結果の「尤もらしさ」を表す軟判定データを生成する。その後、復号器23が、軟判定データから符号ビットの推定値を得る。
図3は、復調により軟判定データを生成する方法を説明する図である。ここでは、I成分の軟判定データを生成する方法について説明する。なお、Q成分の軟判定データを生成する方法は、I成分の軟判定データを生成する方法と実質的に同じである。
図3において、△印は、受信機20により検出された受信シンボルRを表す。受信シンボルRには、6個の符号ビットb0〜b5がマッピングされている。ここで、受信シンボルのI成分から判定されるビットは、図2を参照しながら説明したように、b0、b2、b4である。
ビットb0は、図3(a)に示す領域X1〜X2に基づいて判定される。受信シンボルが領域X1において検出されたときは、判定結果はb0=1であり、受信シンボルが領域X2において検出されたときは、判定結果はb0=0である。この例では、受信シンボルRは領域X1において検出されているので、判定結果はb0=1である。ただし、軟判定の結果は、判定結果の「尤もらしさ」を表す。したがって、ビットb0についての軟判定データは、受信シンボルRが領域X1の中に位置している尤もらしさを表す。
ビットb2は、図3(b)に示す領域X3〜X5に基づいて判定される。受信シンボルが領域X3またはX5において検出されたときは、判定結果はb2=1であり、受信シンボルが領域X4において検出されたときは、判定結果はb2=0である。この例では、受信シンボルRは領域X4において検出されている。したがって、ビットb2についての軟判定データは、受信シンボルRが領域X4の中に位置している尤もらしさを表す。
ビットb4は、図3(c)に示す領域X6〜X10に基づいて判定される。受信シンボルが領域X6、X8、またはX10において検出されたときは、判定結果はb4=1であり、受信シンボルが領域X7またはX9において検出されたときは、判定結果はb4=0である。この例では、受信シンボルRは領域X7において検出されている。したがって、ビットb4についての軟判定データは、受信シンボルRが領域X7の中に位置している尤もらしさを表す。
図4は、軟判定データの計算方法の一例を説明する図である。ここでは、I成分の軟判定データの計算方法について説明する。なお、Q成分の軟判定データの計算方法は、I成分の軟判定データの計算方法と実質的に同じである。
図4に示す8個の信号点Z1〜Z8は、64QAMで伝送されるシンボルのI成分を表す。ここで、コンスタレーションのI軸とQ軸との交点の座標をゼロとする。また、コンスタレーション上でのシンボル間隔を2A0と定義する。そうすると、信号点Z1〜Z8のI成分は、それぞれ、-7A0、-5A0、-3A0、-A0、A0、3A0、5A0、7A0で表される。
この場合、受信シンボルRのI成分に対応する軟判定データ(ビットb0、b2、b4の軟判定データ)は、以下のようにして計算される。なお、xは、受信シンボルRのI成分を表し、0<x≦2A0であるものとする。
ビットb0についての判定の尤もらしさは、受信シンボルRから領域X1内の信号点Z1〜Z4までの最短距離の2乗と、受信シンボルRから領域X2内の信号点Z5〜Z8までの最短距離の2乗との差分で表される。図4に示す実施例では、信号点Z1〜Z4の中で、受信シンボルRに最も近接している信号点はZ4である。そして、受信シンボルRと信号点Z4との間の距離は、x+A0である。また、信号点Z5〜Z8の中で、受信シンボルRに最も近接している信号点はZ5である。そして、受信シンボルRと信号点Z5との間の距離は、x−A0である。そうすると、ビットb0についての判定の尤もらしさを表す尤度Λ0(即ち、ビットb0の軟判定データ)は、下式で計算される。1/2σ2は、ガウス雑音に対応する係数であり、σは、ガウス分布の分散値を表す。
xの条件を変えて同様の計算を行うと、ビットb0についての尤度Λ0は、下記のように表される。
ビットb2についての尤度Λ2は、下式で表される。
ビットb4についての尤度Λ4は、下式で表される。
上述の計算は、復調器21により実行される。すなわち、復調器21は、受信シンボルRのI成分に基づいて、各ビットb0、b2、b4について判定の尤もらしさをそれぞれ計算する。また、復調器21は、同様の計算により、受信シンボルRのQ成分に基づいて、各ビットb1、b3、b5について判定の尤もらしさをそれぞれ計算する。そして、復調器21は、これらの計算結果を軟判定データとして出力する。
以下の説明では、ビットb0〜b5にいての軟判定データを、軟判定データy0〜y5と呼ぶことがある。また、固定小数点形式で表されている軟判定データy0〜y5を、固定小数点数y0〜y5と呼び、浮動小数点形式で表されている軟判定データy0〜y5を、浮動小数点数y0〜y5と呼ぶことがある。尚、y0〜y5は、図面上では、添え字を用いてy0〜y5と表記される。y0〜y5とy0〜y5とは、同義である。
復調器21は、受信シンボル毎に軟判定データy0〜y5を生成して出力する。各軟判定データy0〜y5は、この実施例では、図5に示すように、21ビットの固定小数点数で表される。各軟判定データは、1ビットの符号および16ビットのデータ部を含む。また、データ部の下位に、さらに4ビットの情報が付加されている。
図6は、受信機の構成の一例を示す。図6に示す受信機20Aは、復調器21、変換部24、IFメモリ22a〜22c、および復号器23を有する。なお、図6は、符号ビットb0、b2、b4を処理するための構成を示す。符号ビットb1、b3、b5を処理するための構成は、符号ビットb0、b2、b4を処理するための構成と実質的に同じである。
復調器21は、受信シンボルにマッピングされている符号ビットb0〜b5について軟判定データy0〜y5を出力する。ただし、ここでは、復調器21から出力される軟判定データy0〜y5のうち、軟判定データy0、y2、y4について説明する。
変換部24は、固定小数点数で表されている軟判定データy0、y2、y4をそれぞれ浮動小数点数に変換する。変換部24により得られる浮動小数点数は、この実施例では、1ビットの符号、5ビットの仮数、4ビットの指数で表される。この場合、固定小数点数から浮動小数点数への変換は、図5に示す通りである。
(1)固定小数点数の先頭ビットが、浮動小数点数の符号に設定される。図5に示す例では、固定小数点数の先頭ビットが「0」なので、浮動小数点数の符号に「0」が設定される。
(2)固定小数点数のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置が浮動小数点数の指数に設定される。以下、このようにして特定されるビット位置を「指数位置」と呼ぶことがある。図5に示す例では、固定小数点数のデータ部のビット位置「15」〜「12」の値が連続して「0」であり、ビット位置「11」において初めて「1」が現れる。すなわち、「指数位置=11」が得られる。よって、浮動小数点数の指数には、「1011(2)」が設定される。なお、添え字「(2)」は、2進数表現を意味する。
(3)固定小数点数の指数位置の下位側に隣接する5ビットが、浮動小数点数の仮数に設定される。図5では、固定小数点数のビット位置「10」「9」「8」「7」「6」の値がそれぞれ「0」「1」「1」「0」「0」である。したがって、浮動小数点数の仮数には、「01100(2)」が設定される。
IFメモリ22a〜22cは、それぞれ、変換部24によって浮動小数点数に変換された軟判定データy0、y2、y4を格納する。IFメモリ22aは、各受信シンボルに対して軟判定データy0を表す符号s0、仮数f0、指数e0を格納する。同様に、IFメモリ22bは、軟判定データy2を表す符号s2、仮数f2、指数e2を格納する。IFメモリ22cは、軟判定データy4を表す符号s4、仮数f4、指数e4を格納する。尚、e0〜e5は、図面上では、添え字を用いてe0〜e5と表記される。e0〜e5とe0〜e5とは、同義である。
復号器23は、IFメモリ部22a〜22cに格納されている軟判定データに基づいて情報ビットを推定する。例えば、図1に示す符号化器11においてターボ符号が行われているときは、復号器23は、ターボ復号により軟判定データから情報ビットを推定する。ターボ符号は、公知の技術なので、詳しい説明は省略する。
なお、軟判定データを表すために必要なビット数は、受信信号の振幅に依存する。すなわち、図7に示すように、受信信号の振幅が大きいとき(或いは、受信信号の振幅の変動が大きいとき)は、軟判定データを表すために必要なビット数は多くなる。例えば、図5に示す例では、軟判定データを表す固定小数点数のデータ部は16ビットを有する。この場合、固定小数点数を浮動小数点数に変換しても、指数を表すために4ビットが必要になる。
以下に説明する実施形態の受信機は、軟判定データを表すために必要なビット数を削減するための機能および構成を有する。一例として、軟判定データを表す浮動小数点数の指数のビット数を削減する方法および構成を説明する。
図8は、本発明の一実施形態の受信機の構成を示す。図8に示す受信機20Bは、復調器21、浮動小数点数生成部30、IFメモリ22d〜22f、および復号器23を有する。なお、図8は、符号ビットb0、b2、b4を処理するための構成を示している。符号ビットb1、b3、b5を処理するための構成は、符号ビットb0、b2、b4を処理するための構成と実質的に同じである。
復調器21は、上述したように、受信シンボルの軟判定データy0〜y5を生成する。ここでは、軟判定データy0、y2、y4について説明する。
浮動小数点数生成部30は、変換部24、基準値生成部31、相対値生成部32を有する。変換部24は、固定小数点数で表されている軟判定データy0、y2、y4をそれぞれ浮動小数点数に変換する。この例では、軟判定データを表す浮動小数点数は、1ビットの符号s、5ビットの仮数f、4ビットの指数eで構成される。すなわち、変換部24は、受信シンボルに対して、下記の軟判定データy0、y2、y4を生成する。
軟判定データy0:s0, f0, e0
軟判定データy2:s2, f2, e2
軟判定データy4:s4, f4, e4
基準値生成部31は、軟判定データを相対値で表すための基準値を生成する。基準値生成部31は、複数の軟判定データy0、y2、y4の中の1つ(例えば、軟判定データy0)に基づいて基準値を生成する。また、基準値生成部31は、複数の受信シンボルの軟判定データに基づいて基準値を生成してもよい。或いは、基準値生成部31は、過去の受信シンボルの軟判定データに基づいて基準値を生成してもよい。なお、基準値の生成方法については、後で詳しく説明する。
相対値生成部32は、軟判定データy0、y2、y4のうちの一部の軟判定データを、基準値に基づく相対値で表された相対値浮動小数点数に変換する。例えば、基準値生成部31において軟判定データy0に基づいて基準値が生成されたときは、相対値生成部32は、軟判定データy2、y4をそれぞれ相対値浮動小数点数に変換する。この場合、軟判定データy2、y4は、それぞれ、軟判定データy0に対する相対値で表される。
相対値生成部32は、この例では、軟判定データを表す浮動小数点数の中の指数を相対値に変換する。ここで、基準値を生成するための軟判定データとして、例えば、軟判定データy0が指定されているものとする。この場合、基準値生成部31は、基準値として、軟判定データy0の指数e0を出力する。そうすると、相対値生成部32は、下記のように、軟判定データy2、y4の指数e2、e4を、それぞれ基準値e0に基づいて相対値に変換する。
Δe2=e2−e0
Δe4=e4−e0
なお、Δe2は、軟判定データy2の指数の相対値であり、Δe4は、軟判定データy4の指数の相対値である。
IFメモリ22dは、指数が相対値に変換されていない軟判定データを格納する。上述の例では、IFメモリ22dは、軟判定データy0を表す浮動小数点数(s0, f0, e0)を格納する。
IFメモリ22eおよび22fは、それぞれ相対値生成部32により指数が相対値に変換された軟判定データを格納する。すなわち、IFメモリ22eは、軟判定データy2を表す浮動小数点数(s2, f2, Δe2)を格納する。また、IFメモリ22fは、軟判定データy4を表す浮動小数点数(s4, f4, Δe4)を格納する。
復号器23は、IFメモリ22d〜22fに格納されている軟判定データに基づいて、受信シンボルにマッピングされている複数のビットを推定する。ここで、復号器23の動作は、図6に示す受信機20Aおよび図8に示す受信機20Bにおいて実質的に互いに同じである。ただし、図8に示す受信機20Bにおいては、復号器23は、相対値で表されている指数Δe2、Δe4を、それぞれ指数e2、e4に逆変換する機能を有するようにしてもよい。
図9は、軟判定データのビット数の削減について説明する図である。なお、図9は、軟判定データy0、y2、y4の指数e0、e2、e4の値を示している。図9(a)は受信信号の振幅が小さいときの軟判定データを示し、図9(b)は受信信号の振幅が大きいときの軟判定データを示している。
受信信号の振幅が変化すると、図9(a)および図9(b)に示すように、軟判定データの大きさも変化する。ところが、シンボル内では、軟判定データy0、y2、y4間の差異は小さい。このため、y0、y2間の差異に対応する相対値Δe2は、e2と比べて小さい。同様に、y0、y4間の差異に対応する相対値Δe4も、e4と比べて小さい。したがって、軟判定データを表す浮動小数点数を相対値に変換することにより、その軟判定データを表すためのビット数を削減できる。
このように、図8に示す受信機20Bにおいては、軟判定データy2、y4は、相対値に変換されてIFメモリ22e、22fに格納される。ここで、軟判定データは、図9に示すように、相対値に変換されると、必要なビット数が少なくなる。よって、図6に示す受信機20AのIFメモリ22b、22cと比較して、IFメモリ22e、22fのサイズを削減することができる。
なお、図8に示す受信機20Bにおいて、浮動小数点数生成部30は、軟判定データを表す固定小数点数y0、y2、y4をいったん浮動小数点数y0、y2、y4に変換した後、浮動小数点数y2、y4の指数を相対値に変換してもよい。また、浮動小数点数生成部30は、固定小数点数y0を浮動小数点数y0に変換すると共に、固定小数点数y2、y4から直接的に相対値浮動小数点数y2、y4を生成してもよい。相対値浮動小数点数y2、y4は、指数が相対値に変換された浮動小数点数y2、y4である。
図10は、本発明の他の実施形態の受信機の構成を示す。図10に示す受信機20Cは、復調器21、浮動小数点数生成部40、IFメモリ22g〜22i、および復号器23を有する。なお、図10は、符号ビットb0、b2、b4を処理するための構成を示している。符号ビットb1、b3、b5を処理するための構成は、符号ビットb0、b2、b4を処理するための構成と実質的に同じである。
復調器21は、上述したように、受信シンボルの軟判定データy0〜y5を生成する。ここでは、軟判定データy0、y2、y4について説明する。
浮動小数点数生成部40は、変換部24、基準値生成部41、相対値生成部42を有する。変換部24は、固定小数点数で表されている軟判定データy0、y2、y4をそれぞれ浮動小数点数に変換する。基準値生成部41は、図8に示す基準値生成部31と同様に、軟判定データを相対値で表すための基準値を生成する。ただし、基準値生成部41は、受信シンボルから生成されるすべての軟判定データy0、y2、y4を相対値に変換するために使用される基準値Eを生成する。
相対値生成部42は、各軟判定データy0、y2、y4を、基準値Eに基づく相対値で表された相対値浮動小数点数に変換する。この実施例では、相対値生成部42は、軟判定データを表す浮動小数点数の中の指数を相対値に変換する。この場合、相対値生成部42は、下記のように、軟判定データy0、y2、y4の指数e0、e2、e4を、それぞれ基準値Eに基づいて相対値に変換する。
Δe0=e0−E
Δe2=e2−E
Δe4=e4−E
なお、Δe0、Δe2、Δe4は、それぞれ、軟判定データy0、y2、y4の指数の相対値である。
IFメモリ22g〜22iは、それぞれ相対値生成部42により指数が相対値に変換された軟判定データを格納する。IFメモリ22gは、軟判定データy0を表す浮動小数点数(s0, f0, Δe0)を格納する。IFメモリ22hは、軟判定データy2を表す浮動小数点数(s2, f2, Δe2)を格納する。IFメモリ22iは、軟判定データy4を表す浮動小数点数(s4, f4, Δe4)を格納する。
復号器23は、IFメモリ22g〜22iに格納されている軟判定データに基づいて、受信シンボルにマッピングされている複数のビットを推定する。ここで、復号器23の動作は、図6に示す受信機20Aおよび図10に示す受信機20Cにおいて実質的に互いに同じである。ただし、図10に示す受信機20Cにおいては、復号器23は、相対値で表されている指数Δe0、Δe2、Δe4を、それぞれ指数e0、e2、e4に逆変換する機能を有するようにしてもよい。
このように、図10に示す受信機20Cにおいては、軟判定データy0、y2、y4は、相対値に変換されてIFメモリ22g、22h、22iに格納される。ここで、軟判定データは、相対値に変換されると、必要なビット数が少なくなる。よって、図6に示す受信機20AのIFメモリ22a〜22cと比較して、IFメモリ22g〜22iのサイズを削減することができる。
なお、図10に示す受信機20Cにおいて、浮動小数点数生成部40は、軟判定データを表す固定小数点数y0、y2、y4をいったん浮動小数点数y0、y2、y4に変換した後に、各浮動小数点数y0、y2、y4の指数を相対値に変換してもよい。また、浮動小数点数生成部40は、固定小数点数y0、y2、y4から直接的に相対値浮動小数点数y0、y2、y4を生成してもよい。相対値浮動小数点数y0、y2、y4は、指数が相対値に変換された浮動小数点数y0、y2、y4である。
図8または図10に示す復調器21、復号器23、浮動小数点数生成部30、40は、例えば、デジタル信号プロセッサで実現される。ただし、復調器21、復号器23、浮動小数点数生成部30、40は、ハードウェア回路で実現してもよい。あるいは、復調器21、復号器23、浮動小数点数生成部30、40は、ソフトウェアおよびハードウェアの組合せで実現してもよい。
<第1の実施例>
図11は、第1の実施例の軟判定データ処理方法を説明する図である。第1の実施例の軟判定データ処理方法は、例えば、図8に示す受信機20Bにおいて実行される。
復調器21は、受信シンボルを復調して軟判定データy0、y2、y4を生成する。復調器21から出力される軟判定データy0、y2、y4は、固定小数点数で表されている。
なお、以下の説明では、軟判定データy0、y2、y4を表す固定小数点数を、それぞれ固定小数点数y0、y2、y4と呼ぶことがある。また、軟判定データy0、y2、y4を表す浮動小数点数を、それぞれ浮動小数点数y0、y2、y4と呼ぶことがある。
図11に示す例では、軟判定データy0が基準として指定されている。ただし、他の軟判定データが基準として指定されてもよい。以下の説明では、基準として指定された軟判定データを「基準軟判定データ」と呼ぶことがある。軟判定データy0が基準として指定されているときは、軟判定データy2、y4は、軟判定データy0に対する相対値で表される。以下の説明では、基準軟判定データに対する相対値で表される軟判定データを「相対軟判定データ」と呼ぶことがある。
基準軟判定データy0は、図5を参照しながら説明した方法で浮動小数点数に変換される。すなわち、基準軟判定データy0は、以下のようにして浮動小数点数に変換される。
(1)固定小数点数y0の先頭ビットが、浮動小数点数y0の符号に設定される。図11に示す例では、固定小数点数y0の先頭ビットが「0」なので、浮動小数点数y0の符号に「0」が設定される。
(2)固定小数点数y0のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表すビット位置番号が浮動小数点数の指数に設定される。以下の説明では、このようにして特定されるビット位置を「指数位置」と呼ぶことがある。また、指数位置を表すビット位置の番号を「指数値」と呼ぶことがある。図11に示す例では、固定小数点数y0のビット位置「15」〜「11」の値が連続して「0」であり、ビット位置「10」において初めて「1」が現れる。すなわち、指数値「10」が得られる。よって、浮動小数点数y0の指数には、「1010(2)」が設定される。
(3)固定小数点数y0の指数位置の下位側に隣接する5ビットが、浮動小数点数y0の仮数に設定される。図11に示す例においては、固定小数点数y0のビット位置「9」「8」「7」「6」「5」の値がそれぞれ「1」「0」「1」「1」「1」である。したがって、浮動小数点数y0の仮数には、「10111(2)」が設定される。
軟判定データy2は、以下のようにして相対値浮動小数点数に変換される。以下の処理は、浮動小数点数生成部30により実行される。なお、軟判定データy4を相対値浮動小数点数に変換する方法は、実質的に軟判定データy2と同じなので、説明を省略する。
(1)固定小数点数y2の先頭ビットが、浮動小数点数y2の符号に設定される。図11に示す例では、固定小数点数y2の先頭ビットが「0」なので、浮動小数点数y2の符号に「0」が設定される。
(2)固定小数点数y2に対して、相対ビット位置が設定される。相対ビット位置は、基準軟判定データの指数位置を基準として決定される。ここで、図11に示す例では、基準軟判定データy0の指数値は「10」である。この場合、軟判定データy2の相対ビット位置「1」が、軟判定データy0のビット位置「10」に対応するように、軟判定データy2の相対ビット位置が設定される。この結果、本来のビット位置「15」〜「10」は、相対ビット位置「6」〜「1」に変換される。
(3)固定小数点数y2のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y2の指数に設定される。以下の説明では、このようにして特定されるビット位置を「相対指数位置」と呼ぶことがある。また、相対指数位置を表すビット位置の番号を「相対指数値」と呼ぶことがある。図11に示す例では、固定小数点数y2の相対ビット位置「6」〜「3」の値が連続して「0」であり、相対ビット位置「2」において初めて「1」が現れる。なお、図11において、相対指数位置には○印が付されている。この場合、軟判定データy2に対して相対指数値「2」が得られる。したがって、浮動小数点数の指数には、「10(2)」が設定される。
(4)固定小数点数y2の相対指数位置の下位側に隣接する5ビットが、浮動小数点数y2の仮数に設定される。図11に示す例では、固定小数点数y2において、相対ビット位置「2」の下位側に隣接する5ビットは「0」「1」「1」「0」「1」である。したがって、浮動小数点数y2の仮数には、「01101(2)」が設定される。
なお、図11に示す方法では、軟判定データを表す固定小数点数から、直接的に、相対値浮動小数点数が生成されている。これに対して、図12に示す方法では、固定小数点数が浮動小数点数に変換された後、その浮動小数点数の指数が相対値に返還される。
図12において、固定小数点数y2の指数位置は「11」なので、浮動小数点数y2の指数値e2は「1011(2)」である。また、固定小数点数y4の指数位置は「12」なので、浮動小数点数y4の指数値e4は「1100(2)」である。したがって、Δe2=e2−e0+1を計算することによって、軟判定データy2の指数値の相対値「10(2)」が得られる。同様にして、Δe4=e4−e0+1を計算すると、軟判定データy4の指数値の相対値「11(2)」が得られる。
なお、図11に示す例では、基準軟判定データの指数位置と相対軟判定データの相対ビット位置「1」とが対応するように、相対ビット位置が指定される。したがって、軟判定データを表す浮動小数点数の指数値を相対値に変換するときは、基準軟判定データの指数値と相対軟判定データの指数値との差分に「1」が加算される。
このように、図11および図12に示すいずれの方法においても、同じ浮動小数点数が得られる。換言すれば、図11および図12に示す方法は、実質的に等価である。
図13は、第1の実施例の動作を示すフローチャートである。ただし、図13のフローチャートは、軟判定データを表す浮動小数点数の指数値を相対値に変換する処理を示している。
S1において、基準値生成部31は、基準軟判定データに基づいて基準値を決定する。ここでは、軟判定データy0に基づいて基準値が決定される。即ち、軟判定データy0を表す浮動小数点数の指数値e0が基準値として使用される。
S2において、相対値生成部32は、軟判定データy2を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe2=e2−e0+1が計算される。また、S3において、相対値生成部32は、軟判定データy4を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe4=e4−e0+1が計算される。
<第2の実施例>
図14は、第2の実施例の軟判定データ処理方法を説明する図である。第2の実施例の軟判定データ処理方法は、例えば、図8に示す受信機20Bにおいて実行される。
第2の実施例では、基準軟判定データの指数値よりも相対軟判定データの指数値が小さい。図14では、軟判定データy0の指数値は「10」であり、軟判定データy2の指数値は「9」である。
この場合、軟判定データy2は、以下のようにして相対値浮動小数点数に変換される。なお、軟判定データy0を浮動小数点数に変換する方法は、第1の実施例と同じなので、説明を省略する。また、軟判定データy4を相対値浮動小数点数に変換する方法は、実質的に軟判定データy2と同じなので、説明を省略する。
(1)固定小数点数y2の先頭ビットが、浮動小数点数y2の符号に設定される。図14に示す例では、固定小数点数y2の先頭ビットが「0」なので、浮動小数点数y2の符号に「0」が設定される。
(2)第1の実施例と同様に、固定小数点数y2に対して、相対ビット位置が設定される。すなわち、軟判定データy2の相対ビット位置「1」が、基準軟判定データy0の指数位置(図14では、ビット位置「10」)に対応するように、軟判定データy2の相対ビット位置が設定される。この結果、本来のビット位置「15」〜「10」は、相対ビット位置「6」〜「1」に変換される。さらに、本来のビット位置「10」よりも下位側の各ビットに対して、相対ビット位置「0」が与えられる。
(3)固定小数点数y2のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y2の指数に設定される。ただし、軟判定データy2の本来の指数値は「9」であり、基準軟判定データy0の指数値「10」より小さい。このため、固定小数点数y2の相対ビット位置「6」〜「1」の値はすべて「0」である。この場合、上記検索の結果として、軟判定データy2に対して相対指数値「0」が出力される。よって、浮動小数点数y2の指数には、「00(2)」が設定される。
(4)固定小数点数y2において基準指数位置の下位側に隣接する5ビットが、浮動小数点数y2の仮数に設定される。基準指数位置は、基準軟判定データの指数位置に相当する。即ち、固定小数点数y2においては、基準指数位置は、相対ビット位置「1」に相当する。よって、浮動小数点数y2の仮数には、固定小数点数y2の相対ビット位置「1」の下位側に隣接する5ビットが設定される。図14に示す例では、固定小数点数y2の相対ビット位置「1」の下位側に隣接する5ビットは「1」「1」「0」「1」「0」である。したがって、浮動小数点数y2の仮数には、「11010(2)」が設定される。
図15は、第2の実施例の動作を示すフローチャートである。ただし、図15のフローチャートは、軟判定データを表す浮動小数点数の指数値を相対値に変換する処理、および仮数を決定する処理を示している。なお、浮動小数点数の指数を相対値に変換するための基準値として、軟判定データy0の指数e0が指定されているものとする。
S11において、相対値生成部32は、基準軟判定データy0の指数値e0と軟判定データy2の指数値e2とを比較する。指数値e2が指数値e0以上であれば、相対値生成部32の処理はS12へ移行し、指数値e2が指数値e0よりも小さければ、相対値生成部32の処理はS14へ移行する。
指数値e2が指数値e0以上であるときは、相対値生成部32は、S12において、基準値e0に基づいて、指数値e2を相対値Δe2に変換する。このとき、相対値生成部32は、Δe2=e2−e0+1を計算する。また、S13において、相対値生成部32は、浮動小数点数y2の仮数を設定する。このとき、相対値生成部32は、指数位置e2の下位側に隣接する5ビットを固定小数点数y2から抽出する。そして、相対値生成部32は、固定小数点数y2から抽出した5ビットを、浮動小数点数y2の仮数に設定する。
指数値e2が指数値e0よりも小さいときは、相対値生成部32は、S14において、浮動小数点数y2の指数に「0」を設定する。また、S15において、相対値生成部32は、浮動小数点数y2の仮数を設定する。ただし、S15においては、相対値生成部32は、基準指数位置e0の下位側に隣接する5ビットを固定小数点数y2から抽出する。そして、相対値生成部32は、そのようにして固定小数点数y2から抽出した5ビットを、浮動小数点数y2の仮数に設定する。
軟判定データy4に対して実行されるS16〜S20の処理は、実質的にS11〜S15と同じである。よって、S16〜S20についての説明は省略する。
<第3の実施例>
第1および第2の実施例では、1つの基準値に基づいて複数の浮動小数点数の指数がそれぞれ相対値に変換される。これに対して、第3の実施例では、軟判定データ毎に異なる基準値に基づいて浮動小数点数の指数が相対値に変換される。一例としては、軟判定データy2は、軟判定データy0に対する相対値に変換され、軟判定データy4は、軟判定データy2に対する相対値に変換される。
図16は、第3の実施例の軟判定データ処理方法を説明する図である。第3の実施例の軟判定データ処理方法は、例えば、図8に示す受信機20Bにおいて実行される。
軟判定データy2は、以下のようにして相対値浮動小数点数に変換される。なお、基準軟判定データy0を浮動小数点数に変換する方法は、第1の実施例と同じなので、説明を省略する。
(1)固定小数点数y2の先頭ビットが、浮動小数点数y2の符号に設定される。図16に示す例では、固定小数点数y2の先頭ビットが「0」なので、浮動小数点数y2の符号に「0」が設定される。
(2)固定小数点数y2に対して、相対ビット位置が設定される。相対ビット位置は、基準軟判定データの指数位置を基準として決定される。ここで、図16に示す例では、基準軟判定データy0の指数値は「10」である。この場合、軟判定データy2の相対ビット位置「1」が、本来のビット位置「10」に対応するように、軟判定データy2の相対ビット位置が設定される。この結果、本来のビット位置「15」〜「10」は、相対ビット位置「6」〜「1」に変換される。
(3)固定小数点数y2のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y2の指数に設定される。図16に示す例では、固定小数点数y2の相対ビット位置「2」において初めて「1」が現れる。この場合、軟判定データy2に対して相対指数値「2」が得られる。よって、浮動小数点数y2の指数には、「10(2)」が設定される。
(4)固定小数点数y2の相対指数位置の下位側に隣接する5ビットが、浮動小数点数y2の仮数に設定される。図16に示す例では、固定小数点数y2の相対ビット位置「2」の下位側に隣接する5ビットは「0」「1」「1」「0」「1」である。したがって、浮動小数点数y2の仮数には、「01101(2)」が設定される。
次に、軟判定データy4は、軟判定データy0ではなく、軟判定データy2に対する相対値で表される。すなわち、軟判定データy4は、以下のようにして相対値浮動小数点数に変換される。
(1)固定小数点数y4の先頭ビットが、浮動小数点数y4の符号に設定される。図16に示す例では、固定小数点数y4の先頭ビットが「0」なので、浮動小数点数y4の符号に「0」が設定される。
(2)固定小数点数y4に対して、相対ビット位置が設定される。ここで、軟判定データy4の基準軟判定データは、軟判定データy0ではなく、軟判定データy2である。よって、軟判定データy4の相対ビット位置は、軟判定データy2の指数位置を基準として決定される。ここで、図16に示す例では、軟判定データy2の指数値は、本来のビット位置「11」である。この場合、軟判定データy4の相対ビット位置「1」が本来のビット位置「11」に対応するように、軟判定データy4の相対ビット位置が設定される。この結果、本来のビット位置「15」〜「11」は、相対ビット位置「5」〜「1」に変換される。
(3)固定小数点数y4のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y4の指数に設定される。図16に示す例では、固定小数点数y4の相対ビット位置「2」において初めて「1」が現れる。この場合、軟判定データy4に対して相対指数値「2」が得られる。よって、浮動小数点数y4の指数には、「10(2)」が設定される。
(4)固定小数点数y4の相対指数位置の下位側に隣接する5ビットが、浮動小数点数y4の仮数に設定される。図16に示す例では、固定小数点数y4の相対ビット位置「2」の下位側に隣接する5ビットは「0」「0」「0」「0」「1」である。したがって、浮動小数点数y4の仮数には、「00001(2)」が設定される。
図17は、第3の実施例の動作を示すフローチャートである。ただし、図17のフローチャートは、軟判定データを表す浮動小数点数の指数値を相対値に変換する処理を示している。
S21において、基準値生成部31は、基準値を決定する。このとき、基準値生成部31は、軟判定データ毎にそれぞれ基準値を生成する。この例では、軟判定データy2を相対値で表すための基準値として、軟判定データy0の指数値e0が出力される。また、軟判定データy4を相対値で表すための基準値として、軟判定データy2の指数値e2が出力される。
S22において、相対値生成部32は、軟判定データy2を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe2=e2−e0+1が計算される。同様に、S23において、相対値生成部32は、軟判定データy4を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe4=e4−e2+1が計算される。
<第4の実施例>
第1〜第3の実施例では、1つの受信シンボルから生成される複数の軟判定データの中で、基準軟判定データ対して他の軟判定データの相対値が生成される。これに対して、第4の実施例では、過去の受信シンボルの軟判定データに基づいて基準値が生成され、この基準値に対して現受信シンボルの軟判定データの相対値が生成される。一例としては、直前の受信シンボルに対して生成された基準値との差分が所定値以下となるように、現受信シンボルに対する現基準値が決定される。そして、現受信シンボルの軟判定データは、現基準値に基づいて相対値に変換される。
図18は、第4の実施例の軟判定データ処理方法を説明する図である。第4の実施例の軟判定データ処理方法は、例えば、図8に示す受信機20Bにおいて実行される。
図18には、n−1番目およびn番目の受信シンボルの軟判定データy0、y2、y4が示されている。なお、n−1番目の受信シンボルは、n番目の受信シンボルの直前の受信シンボルである。以下の説明では、n−1番目およびn番目の受信シンボルをそれぞれ「受信シンボルn−1」「受信シンボルn」と呼ぶことがある。
この実施例では、受信シンボルn−1において、基準値「12」に基づいて軟判定データy2、y4が相対値浮動小数点数に変換されたものとする。なお、与えられた基準値に基づいて受信シンボルの軟判定データの指数を相対値に変換する方法は、第1または第2の実施例と実質的に同じなので、説明を省略する。
基準値生成部31は、受信シンボルn−1において使用した基準値に基づいて、受信シンボルnにおいて使用する基準値を生成する。一例としては、基準値生成部31は、以下のようにして現受信シンボルのための基準値を決定する。
(1)受信シンボルnの軟判定データy0の指数値が、受信シンボルn−1の基準値よりも大きいときは、受信シンボルn−1の基準値に「1」を加算することにより、受信シンボルnの基準値を得る(En=En-1+1)
(2)受信シンボルnの軟判定データy0の指数値が、受信シンボルn−1の基準値よりも小さいときは、受信シンボルn−1の基準値から「1」を減算することにより、受信シンボルnの基準値を得る。(En=En-1−1)
(3)受信シンボルnの軟判定データy0の指数値が、受信シンボルn−1の基準値と等しいときには、受信シンボルnの基準値は、受信シンボルn−1の基準値と同じである。(En=En-1)
続いて、浮動小数点数生成部30は、受信シンボルnについて、軟判定データを表す固定小数点数y0、y2、y4をそれぞれ浮動小数点数y0、y2、y4に変換する。なお、固定小数点数y0を浮動小数点数y0に変換する処理は、第1の実施例等と同じなので、説明を省略する。
受信シンボルnの軟判定データy2は、以下のようにして浮動小数点数に変換される。なお、軟判定データy4を浮動小数点数に変換する方法は、実質的に軟判定データy2と同じなので、説明を省略する。
(1)受信シンボルnの固定小数点数y2の先頭ビットが、浮動小数点数y2の符号に設定される。図18に示す例では、固定小数点数y2の先頭ビットが「0」なので、浮動小数点数y2の符号に「0」が設定される。
(2)受信シンボルnの固定小数点数y2に対して、相対ビット位置が設定される。ここで、受信シンボルn−1の基準値は「12」である。また、受信シンボルnの軟判定データy0の指数値は「10」である。すなわち、受信シンボルnの軟判定データy0の指数値は、受信シンボルn−1の基準値よりも小さい。この場合、受信シンボルnの基準値は、受信シンボルn−1の基準値から「1」を減算することにより得られる。すなわち、受信シンボルnの基準値として「11」が得られる。そうすると、受信シンボルnの軟判定データy2の相対ビット位置は、受信シンボルnの基準値に基づいて決定される。すなわち、軟判定データy2の相対ビット位置「1」が本来のビット位置「11」に対応するように、軟判定データy2の相対ビット位置が設定される。この結果、本来のビット位置「15」〜「11」は、相対ビット位置「5」〜「1」に変換される。
(3)受信シンボルnの固定小数点数y2のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y2の指数に設定される。図18に示す例では、固定小数点数y2の相対ビット位置「2」において初めて「1」が現れる。この場合、軟判定データy2に対して相対指数値「2」が得られる。よって、浮動小数点数y2の指数には、「10(2)」が設定される。
(4)受信シンボルnの固定小数点数y2の相対指数位置の下位側に隣接する5ビットが、浮動小数点数y2の仮数に設定される。図18に示す例では、固定小数点数y2の相対ビット位置「2」の下位側に隣接する5ビットは「1」「0」「1」「1」「1」である。したがって、浮動小数点数y2の仮数には、「10111(2)」が設定される。
図19は、第4の実施例の動作を示すフローチャートである。なお、図19のフローチャートは、受信シンボルnに対する処理を示す。
S31において、基準値生成部31は、受信シンボルn−1で使用した基準値En-1を取得する。なお、受信シンボルn−1の基準値En-1は、受信シンボルn−1に対して図19に示すフローチャートの処理を実行することによって計算されているものとする。
S32において、基準値生成部31は、受信シンボルn−1の基準値En-1よりも、受信シンボルnの軟判定データy0の指数値e0の方が小さいか判定する。指数値e0が基準値En-1よりも小さいときは、基準値生成部31は、S33において、基準値En-1から1を減算することにより、受信シンボルnの基準値Enを得る。
S32の判定が「No」であったときは、基準値生成部31は、S34において、受信シンボルn−1の基準値En-1よりも、受信シンボルnの軟判定データy0の指数値e0の方が大きいか判定する。指数値e0が基準値En-1よりも大きいときは、基準値生成部31は、S35において、基準値En-1に1を加算することによって、受信シンボルnの基準値Enを得る。
S32およびS34の判定がいずれも「No」であったときは、基準値生成部31は、受信シンボルn−1の基準値En-1と、受信シンボルnの軟判定データy0の指数値e0とが等しいと判定する。この場合、基準値生成部31は、S36において、基準値En=基準値En-1を得る。
S37において、相対値生成部32は、軟判定データy2を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe2=e2−En+1が計算される。同様に、S38において、相対値生成部32は、軟判定データy4を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe4=e4−En+1が計算される。
上述の例では、受信シンボルnの基準値Enは、受信シンボルn−1の基準値En-1に対して、En-1−1≦En-1≦En-1+1の範囲内で設定される。ただし、本発明は、この方式に限定されるものではない。すなわち、基準値Enは、基準値En-1に対して2以上変化してもよい。
<第5の実施例>
第1〜第3の実施例では、1つの受信シンボルから生成される複数の軟判定データの中で、基準軟判定データ対して他の軟判定データの相対値が生成される。これに対して、第5の実施例では、複数の受信シンボルの軟判定データに基づいて基準値が生成され、この基準値に対して各受信シンボルの軟判定データの相対値が生成される。なお、第5の実施例の軟判定データ処理方法は、例えば、図8に示す受信機20Bにおいて実行される。
第5の実施例の軟判定データ処理方法では、複数の受信シンボルに対して共通の最小基準値が設定される。一例としては、復号器23による復号処理の実行単位であるサブブロックに対して共通の最小基準値が設定される。サブブロックは、特に限定されるものではないが、例えば、約1000シンボルから構成される。
図20は、最小基準値を設定する方法を説明する図である。この例では、サブブロックの最初の10個の受信シンボルR0〜R9を利用して、軟判定データを相対値で表すための基準値の最小値が決定される。
図20は、各受信シンボルR0〜R9の軟判定データy0を示している。受信シンボルR0、R1、R2、...の軟判定データy0の指数値は、それぞれ9、13、11、...である。ここで、基準値生成部31は、まず、受信シンボルR0〜R9の軟判定データy0の指数値の最大値を特定する。この結果、図20に示す例では、最大指数値=13が特定される。
続いて、基準値生成部31は、上述のようにして特定した最大指数値から予め決められた所定の整数αを減算することによって、最小基準値を決定する。この例では、α=3である。そうすると、基準値生成部31は、最小基準値として「10」を出力する。この最小基準値は、サブブロック内の各受信シンボルに対して共通に使用される。
図21は、第5の実施例の軟判定データ処理方法を説明する図である。第5の実施例においても、浮動小数点数生成部30は、各受信シンボルについて、軟判定データを表す固定小数点数y0、y2、y4をそれぞれ浮動小数点数y0、y2、y4に変換する。ただし、固定小数点数y0を浮動小数点数y0に変換する処理においては、最低基準値は使用しない。固定小数点数y0を浮動小数点数y0に変換する処理は、第1の実施例等と同じなので、説明を省略する。
軟判定データy2は、以下のようにして浮動小数点数に変換される。なお、軟判定データy4を浮動小数点数に変換する方法は、実質的に軟判定データy2と同じなので、説明を省略する。
(1)固定小数点数y2の先頭ビットが、浮動小数点数y2の符号に設定される。図21に示す例では、固定小数点数y2の先頭ビットが「0」なので、浮動小数点数y2の符号に「0」が設定される。
(2)上述した最小基準値および基準軟判定データy0の指数値に基づいて、新たな基準値Eが決定される。このとき、基準軟判定データy0の指数値が最小基準値以上であれば、基準軟判定データy0の指数値が新基準値Eとして出力される。これに対して、基準軟判定データy0の指数値が最小基準値よりも小さいときは、最小基準値が新基準値Eとして出力される。図21に示す例では、最小基準値が「10」である。また、基準軟判定データy0の指数値は「9」である。したがって、新基準値E=10が得られる。
(3)固定小数点数y2に対して、相対ビット位置が設定される。相対ビット位置は、上述の新基準値Eに対応するビット位置を基準として決定される。図21に示す例では、新基準値は「10」である。この場合、軟判定データy2の相対ビット位置「1」が、本来のビット位置「10」に対応するように、軟判定データy2の相対ビット位置が設定される。この結果、本来のビット位置「15」〜「10」は、相対ビット位置「6」〜「1」に変換される。
(4)固定小数点数y2のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y2の指数に設定される。図21に示す例では、固定小数点数y2の相対ビット位置「2」において初めて「1」が現れる。この場合、軟判定データy2に対して相対指数値「2」が得られる。よって、浮動小数点数y2の指数には、「10(2)」が設定される。
(5)固定小数点数y2の相対指数位置の下位側に隣接する5ビットが、浮動小数点数y2の仮数に設定される。図21に示す例では、固定小数点数y2の相対ビット位置「2」の下位側に隣接する5ビットは「0」「1」「1」「0」「1」である。したがって、浮動小数点数y2の仮数には、「01101(2)」が設定される。
図22は、第5の実施例の動作を示すフローチャートである。図22に示すフローチャートの処理は、複数のシンボルを含むサブブロックに対して実行される。
S41において、基準値生成部31は、サブブロックの最初の10個の受信シンボルにおいて、軟判定データの指数値の最大値を特定する。S42において、基準値生成部31は、S41で特定した最大値から所定の整数αを減算することにより、最小基準値Mを算出する。
S43において、浮動小数点数生成部30は、変数iを初期化する。変数iは、受信シンボルの数をカウントするために使用される。S44において、浮動小数点数生成部30は、変数iが閾値sym_numよりも小さいか判定する。閾値sym_numは、特に限定されるものではないが、この例では、サブブロックを構成するシンボルの個数を表す。そして、変数iが閾値sym_numよりも小さいときは、浮動小数点数生成部30の処理はS45へ移行する。一方、変数iが閾値sym_num以上であれば、浮動小数点数生成部30の処理は終了する。
S45において、基準値生成部31は、基準軟判定データy0の指数値e0と最小基準値Mとを比較する。基準軟判定データy0の指数値e0が最小基準値Mよりも小さいときは、基準値生成部31は、S46において、新基準値Eとして最小基準値Mを出力する。一方、基準軟判定データy0の指数値e0が最小基準値M以上であるときは、基準値生成部31は、S47において、基準軟判定データy0の指数値e0を新基準値Eとして出力する。
S48において、相対値生成部32は、軟判定データy2を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe2=e2−E+1が計算される。同様に、S49において、相対値生成部32は、軟判定データy4を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe4=e4−E+1が計算される。
S50において、浮動小数点数生成部30は、変数iをインクリメントする。この後、浮動小数点数生成部30の処理はS44に戻る。すなわち、浮動小数点数生成部30は、受信シンボルの数が閾値sym_numに達するまで、各受信シンボルに対してS45〜S48の処理を実行する。すなわち、浮動小数点数生成部30は、サブブロック内の各受信シンボルに対してS45〜S48の処理を実行する。
<第6の実施例>
第1〜第5の実施例では、1つの受信シンボルから生成される複数の軟判定データの中の1つが基準軟判定データとして指定される。そして、その基準軟判定データに対して他の軟判定データが相対値で表される。これに対して、第6の実施例では、1つの受信シンボルから生成される複数の軟判定データに対して共通の基準値が与えられる。そして、すべての基準軟判定データがそれぞれ基準値に対する相対値で表される。
第6の実施例の軟判定データ処理方法では、複数の受信シンボルに対して共通の基準値が設定される。一例としては、復号器23による復号処理の実行単位であるサブブロックに対して共通の基準値が設定される。なお、第6の実施例の軟判定データ処理方法は、図10に示す受信機20Cにおいて実行される。
基準値生成部41は、第5の実施例の基準値生成部31と同様に、サブブロックの最初の10個の受信シンボルにおいて、軟判定データの指数値の最大値を特定する。そして、基準値生成部41は、この最大値から所定の整数αを減算することにより、サブブロックを構成する複数のシンボルに共通の基準値Eを生成する。
図23は、第6の実施例の軟判定データ処理方法を説明する図である。第6の実施例においては、浮動小数点数生成部40は、各受信シンボルについて、軟判定データを表す固定小数点数y0、y1、y2、...をそれぞれ浮動小数点数y0、y1、y2、...に変換する。このとき、浮動小数点数生成部40は、全ての浮動小数点数y0、y1、y2、...をそれぞれ基準値に基づいて相対値で表す。
また、この例では、サブブロックの最初の10個の受信シンボルにおいて、軟判定データの指数値の最大値が「13」である。また、この最大値から基準値Eを得るための整数αは「2」である。この場合、基準値E=11が得られる。この基準値Eは、各軟判定データy0、y1、y2、...を相対値で表すために使用される。
軟判定データy0は、以下のようにして相対値浮動小数点数に変換される。
(1)固定小数点数y0の先頭ビットが、浮動小数点数y0の符号に設定される。図23に示す例では、固定小数点数y0の先頭ビットが「0」なので、浮動小数点数y0の符号に「0」が設定される。
(2)固定小数点数y0に対して、相対ビット位置が設定される。相対ビット位置は、基準値Eに基づいて決定される。この例では、基準値Eは「11」である。よって、相対ビット位置「1」が、基準値Eを表すビット位置「11」に対応するように、相対ビット位置が指定される。この結果、本来のビット位置「15」〜「11」は、相対ビット位置「5」〜「1」に変換される。相対ビット位置は、固定小数点数y0、y1、y2、...に対して共通に与えられる。
(3)固定小数点数y0のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y0の指数に設定される。図23に示す例では、相対ビット位置「2」において初めて「1」が現れる。即ち、軟判定データタy0に対して相対指数値「2」が得られる。よって、浮動小数点数y0の指数には、「10(2)」が設定される。
(4)固定小数点数y0の相対指数位置の下位側に隣接する5ビットが、浮動小数点数y0の仮数に設定される。図23に示す例では、固定小数点数y0において、相対ビット位置「2」の下位側に隣接する5ビットは「0」「1」「1」「0」「1」である。したがって、浮動小数点数y0の仮数には、「01101(2)」が設定される。
軟判定データy1は、以下のようにして相対値浮動小数点数に変換される。
(1)固定小数点数y1の先頭ビットが、浮動小数点数y1の符号に設定される。図23に示す例では、固定小数点数y1の先頭ビットが「0」なので、浮動小数点数y1の符号に「0」が設定される。
(2)固定小数点数y1に対して、固定小数点数y0と同様に、相対ビット位置が設定される。ただし、相対ビット位置は、すべての軟判定データy0、y1、y2、...に対して共通に設定される。したがって、固定小数点数y1に対しても、本来のビット位置「15」〜「11」は、相対ビット位置「5」〜「1」に変換される。さらに、本来のビット位置「11」よりも下位側の各ビットに対して、相対ビット位置「0」が与えられる。
(3)固定小数点数y1のデータ部の上位ビットから順番に検索が行われ、初めて値が変化するビット位置を表す相対ビット位置番号が、浮動小数点数y1の指数に設定される。図23に示す例では、本来のビット位置「10」において初めて「1」が現れる。すなわち、軟判定データy1の指数は、「10」である。ところが、基準値Eは「11」である。すなわち、軟判定データy1の指数は、基準値Eよりも小さい。この場合、図14に示す第2の実施例と同様に、軟判定データy1に対して相対指数値「0」が得られる。したがって、浮動小数点数y1の指数には、「00(2)」が設定される。
(4)固定小数点数y1において基準値Eに対応するビット位置の下位側に隣接する5ビットが、浮動小数点数y1の仮数に設定される。この例では、基準値Eは「11」である。したがって、浮動小数点数y1の仮数には、固定小数点数y1において本来のビット位置「11」の下位側に隣接する5ビットが設定される。図23に示す例では、本来のビット位置「11」の下位側に隣接する5ビットは「1」「1」「0」「1」「1」である。したがって、浮動小数点数y1の仮数には、「11011(2)」が設定される。
他の軟判定データも同様に、浮動小数点数に変換される。すなわち、第6の実施例においては、1つの受信シンボルから生成される複数の軟判定データのすべてがそれぞれ相対値で表される。
図24は、第6の実施例の動作を示すフローチャートである。図24に示すフローチャートの処理は、複数のシンボルを含むサブブロックに対して実行される。
S51において、基準値生成部41は、サブブロックの最初の10個の受信シンボルにおいて、軟判定データの指数値の最大値を特定する。S52において、基準値生成部41は、S41で特定した最大値から所定の整数αを減算することにより、基準値Eを算出する。
S53〜S54は、図22のS43〜S44と実質的に同じである。すなわち、浮動小数点数生成部40は、変数iを初期化した後、変数iが閾値sym_numよりも小さいか判定する。そして、変数iが閾値sym_numよりも小さいときは、浮動小数点数生成部40の処理はS55へ移行する。一方、変数iが閾値sym_num以上であれば、浮動小数点数生成部40の処理は終了する。
S55において、相対値生成部42は、基準値Eに基づいて、軟判定データy0を表す浮動小数点数の指数値を相対値に変換する。このとき、Δe0=e0−E+1が計算される。同様に、S56〜S60において、相対値生成部42は、基準値Eに基づいて、軟判定データy1〜y5を表す浮動小数点数の指数値をそれぞれ相対値に変換する。
S61において、浮動小数点数生成部40は、変数iをインクリメントする。この後、浮動小数点数生成部40の処理はS54に戻る。すなわち、浮動小数点数生成部40は、受信シンボルの数が閾値sym_numに達するまで、各受信シンボルに対してS55〜S60の処理を実行する。すなわち、浮動小数点数生成部40は、サブブロック内の各受信シンボルに対してS55〜S60の処理を実行する。
<実施形態の構成による効果>
上述した第1〜第6の実施例の軟判定データ処理方法においては、軟判定データを表す浮動小数点数が相対値で表現される。したがって、復調器21と復号器23との間で軟判定データを格納するIFメモリ22のサイズが小さくなる。
一例として、軟判定データを表す浮動小数点数が、1ビットの符号、5ビットの仮数、および4ビットの指数で構成されるケースについて検討する。ここでは、3つの軟判定データy0、y2、y4が生成されるものとする。
図6に示す受信機20Aにおいては、浮動小数点数y0、y2、y4は、相対値に変換されない。このため、浮動小数点数y0、y2、y4は、いずれも10ビットである。
第1〜第5の実施例の動作を実現する図8に示す受信機20Bにおいては、軟判定データy0、y2、y4のうちの1つ(例えば、軟判定データy0)が基準軟判定データとして指定され、他の2つの軟判定データ(例えば、軟判定データy2、y4)は、基準軟判定データに対する相対値で表される。この場合、各軟判定データy2、y4の指数は、2ビットで表される。すなわち、浮動小数点数y0は10ビットであるが、浮動小数点数y2、y4はそれぞれ8ビットである。したがって、図6に示す受信機20Aと比較して、図8に示す受信機20Bによれば、下記の通り、IFメモリ22のサイズが17.5パーセント削減される。
削減率={1-(10+8+8)/(3×10)}×100=17.5
第6の実施例の動作を実現する図10に示す受信機20Cにおいては、すべての軟判定データが基準値に基づく相対値で表される。すなわち、各軟判定データを表す浮動小数点数は、8ビットである。したがって、図6に示す受信機20Aと比較して、図10に示す受信機20Cによれば、下記の通り、IFメモリ22のサイズが20パーセント削減される。
削減率={1-8/10}×100=20
図25は、エラー発生率についてのシミュレーション結果を示す。ここでは、1つの指標としてBLRE(Block Error Rate)について示す。横軸は、雑音の強度を表す。横軸の値が大きいほど、雑音が小さい。縦軸は、エラーの発生率を表す。縦軸の値が小さいほど、エラーが少ない。このシミュレーションでは、変調方式は、64QAMである。送信信号のビット数は、1024である。符号化率は、3/4である。
特性Aは、固定小数点数から浮動小数点数への変換を行わない方式で得られるBLERを示す。すなわち、特性Aは、固定小数点数で表された軟判定データに対して復号処理が実行されたときのBLERを示す。このケースでは、固定小数点数から浮動小数点数への変換に起因する性能の劣化がないので、特性Aは、ほぼ理想的な特性を表す。
特性Bは、本発明の実施形態による軟判定データ処理方法を実行したときに得られるBLERを示す。3つの軟判定データのうちの1つ(すなわち、軟判定データy0)が、図5に示す10ビットの浮動小数点数で表され、他の2つの軟判定データ(すなわち、軟判定データy2、y4)は基準軟判定データに対する相対値で表される。軟判定データy2、y4は、それぞれ、1ビットの符号、5ビットの仮数、2ビットの指数で構成される。すなわち、各軟判定データy2、y4の指数は、相対値で表されている。
特性Cは、相対値表現を利用することなく、単に軟判定データの指数のビット数を削減したときに得られるBLERを示す。軟判定データy0は、特性Bおよび特性Cにおいて同じである。また、軟判定データy2、y4は、それぞれ、1ビットの符号、5ビットの仮数、2ビットの指数で構成される。ただし、特性Cの各軟判定データy2、y4の指数は、特性Bと異なり、指数位置「0」〜「15」を単に2ビットで表したものである。
本発明の実施形態による軟判定データ処理方法(特性B)によれば、理想的な特性に近い性能が実現される。すなわち、実施形態による軟判定データ処理方法によれば、性能を劣化させることなく、軟判定データを格納するためのメモリのサイズを小さくできる。なお、本発明の実施形態による軟判定データ処理方法を使用することなく、メモリのサイズを削減しようとすると、特性Cに示すように、性能の劣化が生じる。
<他の実施形態>
上述した第1〜第5の実施例においては、I成分の軟判定データ(y0、y2、y4)およびQ成分の軟判定データ(y1、y3、y5)が互いに独立しているが、本発明はこの方式に限定されるものではない。例えば、軟判定データy1〜y5がそれぞれ軟判定データy0に対する相対値で表されるようにしてもよい。
上述の実施例の軟判定データ処理方法は、無線通信において使用されるが、光ファイバ通信等の有線通信において使用してもよい。
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のビットがマッピングされている受信シンボルを復調して複数の軟判定データを生成する復調器と、
前記複数の軟判定データの中の第1の軟判定データを浮動小数点数に変換すると共に、前記複数の軟判定データの中の第2の軟判定データを、前記第1の軟判定データに対する相対値で表された相対値浮動小数点数に変換する浮動小数点数生成部と、
前記浮動小数点数生成部により生成される浮動小数点数および相対値浮動小数点数を格納するメモリと、
前記メモリに格納されている浮動小数点数および相対値浮動小数点数に基づいて、前記受信シンボルにマッピングされている複数のビットを推定する復号器と、
を有する受信機。
(付記2)
前記浮動小数点数生成部は、前記複数の軟判定データのうちの前記第1の軟判定データ以外のすべての軟判定データを、それぞれ前記第1の軟判定データに対する相対値で表された相対値浮動小数点数に変換する
ことを特徴とする付記1に記載の受信機。
(付記3)
前記浮動小数点数生成部は、前記第1の軟判定データを表す浮動小数点数の指数に基づいて、前記第2の軟判定データを表す相対値浮動小数点数の指数を算出する
ことを特徴とする付記1に記載の受信機。
(付記4)
前記第1の軟判定データの指数値よりも前記第2の軟判定データの指数値が小さいときは、前記浮動小数点数生成部は、前記第2の軟判定データを表す相対値浮動小数点数の指数にゼロを設定すると共に、前記第1の軟判定データの指数値を基準として前記第2の軟判定データから抽出されるデータを、前記相対値浮動小数点数の仮数に設定する
ことを特徴とする付記1に記載の受信機。
(付記5)
軟判定データを前記相対値浮動小数点数に変換するための基準値を生成する基準値生成部をさらに有し、
前記浮動小数点数生成部は、前記基準値に基づいて、前記第2の軟判定データを表す相対値浮動小数点数を生成する
ことを特徴とする付記1に記載の受信機。
(付記6)
前記基準値生成部は、前記第1の軟判定データに基づいて前記基準値を生成する
ことを特徴とする付記5に記載の受信機。
(付記7)
前記基準値生成部は、前記第1の軟判定データに基づいて第1の基準値を生成し、
前記浮動小数点数生成部は、前記第1の基準値に基づいて、前記第2の軟判定データを表す相対値浮動小数点数を生成し、
前記基準値生成部は、前記第2の軟判定データに基づいて第2の基準値を生成し、
前記浮動小数点数生成部は、前記第2の基準値に基づいて、前記複数の軟判定データの中の第3の軟判定データを表す相対値浮動小数点数を生成する
ことを特徴とする付記5に記載の受信機。
(付記8)
前記基準値生成部は、過去の受信シンボルの軟判定データに基づいて前記基準値を生成する
ことを特徴とする付記5に記載の受信機。
(付記9)
前記基準値生成部は、直前の受信シンボルに対して生成した基準値との差分が所定値以下となるように、前記基準値を決定する
ことを特徴とする付記8に記載の受信機。
(付記10)
前記基準値生成部は、複数の受信シンボルの軟判定データに基づいて前記基準値を生成する
ことを特徴とする付記5に記載の受信機。
(付記11)
前記基準値生成部は、複数の受信シンボルについての各軟判定データの指数値の中の最大値から所定の値を減算することで仮基準値を算出し、前記仮基準値よりも前記第1の軟判定データの指数値が小さいときは、前記仮基準値を前記基準値として出力し、前記第1の軟判定データの指数値が前記仮指数値以上であれば、前記第1の軟判定データの指数値を前記基準値として出力する
ことを特徴とする付記10に記載の受信機。
(付記12)
複数のビットがマッピングされている受信シンボルを復調して複数の軟判定データを生成する復調器と、
1または複数の受信シンボルの軟判定データに基づいて基準値を生成する基準値生成部と、
前記複数の軟判定データを、それぞれ前記基準値に対する相対値で表された浮動小数点数に変換する浮動小数点数生成部と、
前記浮動小数点数生成部により生成される浮動小数点数を格納するメモリと、
前記メモリに格納されている浮動小数点数に基づいて、前記受信シンボルにマッピングされている複数のビットを推定する復号器と、
を有する受信機。
(付記13)
複数のビットがマッピングされている受信シンボルから生成される複数の軟判定データを処理する軟判定データ処理方法であって、
前記複数の軟判定データの中の第1の軟判定データを浮動小数点数に変換し、
前記複数の軟判定データの中の第2の軟判定データを、前記第1の軟判定データに対する相対値で表された相対値浮動小数点数に変換し、
前記受信シンボルの軟判定データに基づいて前記受信シンボルにマッピングされている複数のビットを推定する復号器がアクセス可能なメモリに、前記浮動小数点数および前記相対値浮動小数点数を格納する
ことを特徴とする軟判定データ処理方法。
(付記14)
複数のビットがマッピングされている受信シンボルから生成される複数の軟判定データを処理する軟判定データ処理方法であって、
1または複数の受信シンボルの軟判定データに基づいて基準値を生成し、
前記複数の軟判定データを、それぞれ前記基準値に対する相対値で表された浮動小数点数に変換し、
前記受信シンボルの軟判定データに基づいて前記受信シンボルにマッピングされている複数のビットを推定する復号器がアクセス可能なメモリに、前記浮動小数点数を格納する
ことを特徴とする軟判定データ処理方法。