(57)【特許請求の範囲】
【請求項１】
浮動小数点データから固定小数点データを生成する固定小数点データ
生成方法であって、
前記浮動小数点データのうち、最大となる指数部の値を求める処理と、
前記浮動小数点データの指数部の値と前記最大となる指数部の値との差分を求める処理と、
前記浮動小数点データの仮数部を前記差分だけシフトさせる処理と、
前記シフトさせた仮数部のうち、ＭＳＢビット側（符号ビットは除く）から２ビット目を先頭とするビット列から所定のビット数を前記固定小数点データとして抽出する処理とを有し、
前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする固定小数点データ生成方法。
【請求項２】
浮動小数点データから固定小数点データを生成する固定小数点データ
生成方法であって、
前記浮動小数点データのうち、最小となる指数部の値を求める処理と、
前記浮動小数点データの指数部の値と前記最小となる指数部の値との差分を求める処理と、
前記浮動小数点データの仮数部を前記差分だけシフトさせる処理と、
前記シフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出する処理とを有し、
前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする固定小数点データ生成方法。
【請求項３】
浮動小数点データから固定小数点データを生成する固定小数点データ
生成方法であって、
前記浮動小数点データの平均値を算出する処理と、
前記浮動小数点データの指数部の値と前記平均値の指数部の値との差分を求める処理と、
前記浮動小数点データの仮数部を前記差分だけシフトさせる処理と、
前記シフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出する処理とを有することを特徴とする固定小数点データ生成方法。
【請求項４】
請求項２又は３のいずれか１項に記載の固定小数点データ生成方法に
おいて、
前記固定小数点データとして抽出されるビットの位置は、予め決められていることを特徴とする固定小数点データ生成方法。
【請求項５】
請求項３に記載の固定小数点データ生成方法において、
前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする固定小数点データ生成方法。
【請求項６】
複数の浮動小数点データが入力され、該複数の浮動小数点データをそれぞれ固定小数点データに変換する固定小数点データ生成回路であって、
前記浮動小数点データのうち最大指数値を求める手段と、
前記入力される複数の浮動小数点データの指数部の値と前記最大指数値との差分を求める指数部減算手段と、
前記浮動小数点データの仮数部を前記指数部減算手段にて求められた差分だけシフトさせるシフト手段と、
前記シフト手段にてシフトさせた仮数部のうち、ＭＳＢビット側（符号ビットは除く）から２ビット目を先頭とするビット列から所定のビット数を前記固定小数点データとして抽出するビット抽出手段とを有し、
前記ビット抽出手段は、前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする固定小数点データ生成回路。
【請求項７】
複数の浮動小数点データが入力され、該複数の浮動小数点データをそれぞれ固定小数点データに変換する固定小数点データ生成回路であって、
前記浮動小数点データのうち最小指数値を求める手段と、
前記入力される複数の浮動小数点データの指数部の値と前記最小指数値との差分を求める指数部減算手段と、
前記浮動小数点データの仮数部を前記指数部減算手段にて求められた差分だけシフトさせるシフト手段と、
前記シフト手段にてシフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出するビット抽出手段とを有し、
前記ビット抽出手段は、前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする固定小数点データ生成回路。
【請求項８】
複数の浮動小数点データが入力され、該複数の浮動小数点データをそれぞれ固定小数点データに変換する固定小数点データ生成回路であって、
前記浮動小数点データの平均値を算出する指数部平均値算出手段と、
前記入力される複数の浮動小数点データの指数部の値と前記指数部平均値算出検出手段にて算出された平均値の指数部の値との差分を求める指数部減算手段と、
前記浮動小数点データの仮数部を前記指数部減算手段にて求められた差分だけシフトさせるシフト手段と、
前記シフト手段にてシフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出するビット抽出手段とを有することを特徴とする固定小数点データ生成回路。
【請求項９】
請求項７又は８のいずれか１項に記載の固定小数点データ生成回路に
おいて、
前記ビット抽出手段は、前記固定小数点データとして抽出されるビットの位置を、予め決められた位置とすることを特徴とする固定小数点データ生成回路。
【請求項１０】
請求項８に記載の固定小数点データ生成回路において、
前記ビット抽出手段は、前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする固定小数点データ生成回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、浮動小数点データから固定小数点データを生成する固定小数点データ生成方法及び固定小数点データ生成回路に関し、特に、浮動小数点データから、Wide-Band Code Division Multiple Access（以下、Ｗ−ＣＤＭＡと略する）におけるViterbi復号器に入力される固定小数点データを生成する固定小数点データ生成方法及び固定小数点データ生成回路に関する。
【０００２】
【従来の技術】
図９は、従来の、浮動小数点データから固定小数点データを生成してViterbi復号を行う回路の一例を示す図であり、図１０は、図９に示した回路を用いた、浮動小数点データから固定小数点データを生成してViterbi復号を行う方法を説明するためのフローチャートである。
【０００３】
本従来例においては、浮動小数点データが入力されると（ステップＳ１０１）、まず、最適化回路１０１において、入力された浮動小数点データが下記式を用いて固定小数点データに変換される（ステップＳ１０２）。
【０００４】
【数１】
0004086459.tif 000002
【０００５】
上記式にて変換された固定小数点データはViterbi復号回路１０２に入力され（ステップＳ１０３）、Viterbi復号回路１０２において、入力された固定小数点データを用いてViterbi復号が行われる（ステップＳ１０４）。
【０００６】
その後、ステップＳ１０４におけるViterbi復号結果がViterbi復号回路１０２から出力される（ステップＳ１０５）。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述したような従来のものにおいては、入力された浮動小数点データから固定小数点データを生成する最適化回路において除算処理を行うための除算回路を設ける必要があるため、回路規模が増大してしまうという問題点がある。
【０００８】
また、Viterbi入力ｂｉｔ幅が固定であるため、固定したｂｉｔ分の復号精度しかViterbi復号率を向上させることができないという問題点がある。
【０００９】
本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、回路規模を縮小させながらもビット復号率を向上させることができる固定小数点データ生成方法及び固定小数点データ生成回路を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために本発明は、
浮動小数点データから固定小数点データを生成する固定小数点データ生成方法であって、
前記浮動小数点データのうち最小となる浮動小数点データを検出する処理と、
前記浮動小数点データの指数部の値と前記最小となる浮動小数点データの指数部の値との差分を求める処理と、
前記浮動小数点データの仮数部を前記差分だけシフトさせる処理と、
前記シフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出する処理とを有し、
前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする。
また、  浮動小数点データから固定小数点データを生成する固定小数点データ生成方法であって、
前記浮動小数点データのうち最大となる浮動小数点データを検出する処理と、
前記浮動小数点データの指数部の値と前記最大となる浮動小数点データの指数部の値との差分を求める処理と、
前記浮動小数点データの仮数部を前記差分だけシフトさせる処理と、
前記シフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出する処理とを有し、
前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする。
【００１２】
また、浮動小数点データから固定小数点データを生成する固定小数点データ生成方法であって、
前記浮動小数点データの平均値を算出する処理と、
前記浮動小数点データの指数部の値と前記平均値となる浮動小数点データの指数部の値との差分を求める処理と、
前記浮動小数点データの仮数部を前記差分だけシフトさせる処理と、
前記シフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出する処理とを有することを特徴とする。
【００１３】
また、前記固定小数点データとして抽出されるビットの位置は、予め決められていることを特徴とする。
【００１４】
また、前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする。
【００１６】
また、複数の浮動小数点データが入力され、該複数の浮動小数点データをそれぞれ固定小数点データに変換する固定小数点データ生成回路であって、
前記浮動小数点データのうち最小となる浮動小数点データを検出する指数部最小値検出手段と、
前記入力される複数の浮動小数点データの指数部の値と前記指数部最小値検出手段にて最小値として検出された浮動小数点データの指数部の値との差分を求める指数部減算手段と、
前記浮動小数点データの仮数部を前記指数部減算手段にて求められた差分だけシフトさせるシフト手段と、
前記シフト手段にてシフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出するビット抽出手段とを有し、
前記ビット抽出手段は、前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする。
また、複数の浮動小数点データが入力され、該複数の浮動小数点データをそれぞれ固定小数点データに変換する固定小数点データ生成回路であって、
前記浮動小数点データのうち最大となる浮動小数点データを検出する指数部最大値検出手段と、
前記入力される複数の浮動小数点データの指数部の値と前記指数部最大値検出手段にて最大値として検出された浮動小数点データの指数部の値との差分を求める指数部減算手段と、
前記浮動小数点データの仮数部を前記指数部減算手段にて求められた差分だけシフトさせるシフト手段と、
前記シフト手段にてシフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出するビット抽出手段とを有し、
前記ビット抽出手段は、前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする。
【００１７】
また、複数の浮動小数点データが入力され、該複数の浮動小数点データをそれぞれ固定小数点データに変換する固定小数点データ生成回路であって、
前記浮動小数点データの平均値を算出する指数部平均値算出手段と、
前記入力される複数の浮動小数点データの指数部の値と前記指数部平均値算出検出手段にて算出された平均値の指数部の値との差分を求める指数部減算手段と、
前記浮動小数点データの仮数部を前記指数部減算手段にて求められた差分だけシフトさせるシフト手段と、
前記シフト手段にてシフトさせた仮数部のうち所定のビット数を前記固定小数点データとして抽出するビット抽出手段とを有することを特徴とする。
【００１８】
また、前記ビット抽出手段は、前記固定小数点データとして抽出されるビットの位置を、予め決められた位置とすることを特徴とする。
【００１９】
また、前記ビット抽出手段は、前記固定小数点データとして抽出するビットにオーバーフローが生じている場合、抽出するビットにて最大値を表現することを特徴とする。
【００２０】
（作用）
上記のように構成された本発明においては、複数の浮動小数点データが入力されると、まず、複数の浮動小数点データの中から最小となる浮動小数点データが検出され、入力される複数の浮動小数点データの指数部の値と最小となる浮動小数点データの指数部の値との差分が求められる。その後、入力された浮動小数点データの仮数部が差分だけシフトさせられ、シフトした仮数部のうち所定のビット数が固定小数点データとして抽出される。
【００２１】
このように、入力される浮動小数点データの比較及び減算処理のみにより、浮動小数点データから固定小数点データが生成されるので、回路規模が大型化することはない。
【００２２】
また、入力された複数の浮動小数点データの平均値を算出し、この平均値の指数部の値と入力される複数の浮動小数点データの指数部の値との差分を求める場合においても、この差分だけ浮動小数点データの仮数部がシフトさせられ、シフトした仮数部のうち所定のビット数が固定小数点データとして抽出される。
【００２３】
また、固定小数点データとして抽出されるビットの位置が、復号率の高いビット位置に予め決められている場合は、復号率が向上する。
【００２４】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２５】
（関連技術）
図１は、本発明の固定小数点データ生成回路の関連技術の一構成例を示すブロック図である。
【００２６】
本構成例は図１に示すように、入力された浮動小数点データのうち最大となる浮動小数点データを検出する指数部ＭＡＸ値検出回路１０と、入力された浮動小数点データの指数部の値を指数部ＭＡＸ値検出回路１０にて最大値として検出された浮動小数点データの指数部の値から減算する指数部減算器２０と、指数部減算器２０における減算結果に基づいて、入力された浮動小数点データの仮数部の値をシフトさせるシフトレジスタ３０と、シフトレジスタ３０にてシフトした仮数部から所定のビット数だけViterbi復号回路（不図示）に入力される固定小数点データとして抽出するビット抽出部４０とから構成されている。
【００２７】
以下に、上記のように構成された固定小数点データ生成回路における固定小数点データ生成方法についてフローチャートを参照して説明する。
【００２８】
図２は、図１に示した固定小数点データ生成回路における固定小数点データ生成方法を説明するためのフローチャートである。
【００２９】
浮動小数点データが入力されると（ステップＳ１）、まず、指数部ＭＡＸ値検出回路１０において、入力された浮動小数点データの中から最大となる浮動小数点データが検出される（ステップＳ２）。
【００３０】
【数２】
0004086459.tif 000003
【００３１】
次に、入力された浮動小数点データの指数部を最大値に合わせ込むため、指数部減算器２０において、入力された浮動小数点データの指数部の値が指数部ＭＡＸ値検出回路１０にて最大値として検出された浮動小数点データの指数部の値から減算され、シフト量として出力される（ステップＳ３）。
【００３２】
【数３】
0004086459.tif 000004
【００３３】
次に、シフトレジスタ３０において、式（３）にて算出されたシフト量に基づいて、入力された浮動小数点データの仮数部の値がシフトされる（ステップＳ４）。
【００３４】
【数４】
0004086459.tif 000005
【００３５】
次に、ビット抽出部４０において、シフトレジスタ３０にてシフトされた仮数部から所定のビット数だけViterbi復号回路に入力される固定小数点データとしてとして抽出される（ステップＳ５）。なお、この際、抽出するビット位置を復号率の高いビット位置に固定すれば、復号精度を向上させることができる。
【００３６】
また、ビット抽出部４０においては、抽出するビットにおいてオーバーフローが生じた場合は、抽出されたビットにて最大値を表現することにより飽和処理が行われ（ステップＳ６）、データの最適化が図られる。
【００３７】
その後、ビット抽出部４０にて抽出された固定小数点データがViterbi復号回路に入力され（ステップＳ７）、Viterbi復号回路において、入力された固定小数点データを用いてViterbi復号が行われる（ステップＳ８）。
【００３８】
以下に、上述した一連の処理について、Viterbi復号回路に４ビットのデータが入力される場合を例を挙げて説明する。
【００３９】
入力されるデータは仮数部（符号ビット込み）８ビット、指数部４ビットとし、出力を４ビットとし、以下の３つの浮動小数点データが入力されたとものする。
仮数部 | 指数部
＃１： 0110 0100 | 0100 ＝１００×２４＝１６００
＃２： 0110 0000 | 0110 ＝９６×２６＝６１４４
＃３： 0110 1000 | 0101 ＝１０４×２５＝３３２８
まず、指数部ＭＡＸ値検出回路１０において、入力された浮動小数点データの中から最大となる浮動小数点データを検出する。ここで、上述した３つの浮動小数点データのうち最大となる浮動小数点データは＃２となるため、浮動小数点データ＃２が最大値として検出される。
【００４０】
次に、指数部減算器２０において、入力された全ての浮動小数点データの指数部を合わせ込むために、最大値となる浮動小数点データ＃２の指数部の値から入力された浮動小数点データの指数部の値を減算する。ここで、上述した３つの浮動小数点データにおいては、
＃２−＃１＝ 0110 − 0100 ＝ 0010
＃２−＃３＝ 0110 − 0101 ＝ 0001
となる。
【００４１】
次に、シフトレジスタ３０において、上述した減算結果に基づいて、浮動小数点データ＃１，＃３の仮数部をシフトさせ、それにより、浮動小数点データ＃１，＃３を浮動小数点データ＃２と同一指数で表現する。
＃２−＃１＝ 0110 − 0100 ＝ 0010
により、浮動小数点データ＃１の仮数部の値を２ビットシフトさせ、また、
＃２−＃３＝ 0110 − 0101 ＝ 0001
により、浮動小数点データ＃３の仮数部の値を１ビットシフトさせる。
【００４２】
これにより、
仮数部 | 指数部
＃１： 0001 1001 | 0110 ＝２５×２６＝１６００（仮数部：２ビットシフト）
＃２： 0110 0000 | 0110 ＝９６×２６＝６１４４
＃３： 0011 0100 | 0110 ＝５２×２６＝３３２８（仮数部：１ビットシフト）
となる。
【００４３】
その後、ビット抽出部４０において、浮動小数点データ＃１〜＃３のそれぞれについて、ＭＳＢビット側から所定の出力ビット幅だけ抽出し、Viterbi入力データとする。
仮数部 | Viterbi入力データ（４ビット）
＃１： 0001 1001 | to 0001
＃２： 0110 0000 | to 0110
＃３： 0011 0100 | to 0011
上述したような一連の処理は、指数部ビット分の減算器と、比較器と、シフトレジスタとを用いることによって実現することができる。
【００４４】
さらに、ビット抽出部４０にて抽出されるビット以外の下位ビットを有効にすることで、Viterbi復号の精度を向上することができる。
【００４５】
以下に精度向上のための、ビット抽出部４０におけるビット抽出処理について説明する。
【００４６】
ビット抽出部４０にて抽出するビットに対し、抜き出すデータのビット位置を変更して切り捨ての下位ビットを有効にし、それにより、Viterbi復号率の精度を向上させる。
【００４７】
以下に、具体例を挙げて説明する。
【００４８】
上述したデータ
＃１： 0001 1001 | 0110 ＝２５×２６＝１６００（仮数部：２ビットシフト）
＃２： 0110 0000 | 0110 ＝９６×２６＝６１４４
＃３： 0011 0100 | 0110 ＝５２×２６＝３３２８（仮数部：１ビットシフト）
に対して、ビット抽出部４０にて抽出されるビットを、それぞれＭＳＢビット側から（符号ビットは除く）２ビット目を先頭とすると、
仮数部 | Viterbi入力データ（４ビット）
＃１： 0001 1001 | to 0011
＃２： 0110 0000 | to 0100
＃３： 0011 0100 | to 0110
となる。ここで、このままでは、＃２にてオーバーフローが生じているため、＃２のビット内にて最大値を表現することにより飽和処理を行う。
＃１： 0001 1001 | to 0011
＃２： 0110 0000 | to 0111（飽和処理）
＃３： 0011 0100 | to 0110
なお、ビット抽出部４０にて抽出するビットの設定においては、抽出するビット位置をパラメータで設定し、Viterbi復号率の高い設定値を固定値とする。
【００４９】
図３は、減算器を用いた固定小数点データ生成回路の回路規模と除算器を用いた固定小数点データ生成回路の回路規模を示すグラフである。
【００５０】
図３に示すように、図１に示した固定小数点データ生成回路のように減算器で構成した固定小数点データ生成回路は、除算器を用いた固定小数点データ生成回路に比べて回路面積を縮小することができる。
【００５１】
図４は、図１に示した固定小数点データ生成回路及び従来の固定小数点データ生成回路におけるビット誤り率（ＢＥＲ：Bit Error Rate）特性を示すグラフであり、Ｅｂ／Ｎｏ（１ビット当りのエネルギー対雑音電力密度比）毎の復号率を示す。
【００５２】
図４に示すように、従来の固定小数点データ生成回路と図１に示した固定小数点データ生成回路において、同等の浮動小数点データを入力とし、Viterbi復号器への入力ビットを８ビットとした場合のＥｂ／ＮｏにおけるＢＥＲ値を比較すると、Ｅｂ／Ｎｏ＝６ｄＢ付近においては、従来の固定小数点データ生成回路が、ＢＥＲ＝１．００Ｅ−０２（データ数１００個に対し、1個の割合で復号できない）であるのに対して、図１に示した固定小数点データ生成回路においては、ＢＥＲ＝１．００Ｅ−０３（データ数１０００個に対し、1個の割合で復号できない）となり、復号精度が向上していることがわかる。
【００５３】
（第１の実施の形態）
図５は、本発明の固定小数点データ生成回路の第１の実施の形態を示すブロック図である。
【００５４】
本形態は図５に示すように、入力された浮動小数点データのうち最小となる浮動小数点データを検出する指数部ＭＩＮ値検出回路１１と、入力された浮動小数点データの指数部の値から指数部ＭＩＮ値検出回路１１にて最小値として検出された指数部の値を減算する指数部減算器２１と、指数部減算器２１における減算結果に基づいて、入力された浮動小数点データの仮数部の値をシフトさせるシフトレジスタ３０と、シフトレジスタ３０にてシフトした仮数部から所定のビット数だけViterbi復号回路（不図示）に入力される固定小数点データとして抽出するビット抽出部４０とから構成されている。
【００５５】
以下に、上記のように構成された固定小数点データ生成回路における固定小数点データ生成方法についてフローチャートを参照して説明する。
【００５６】
図６は、図５に示した固定小数点データ生成回路における固定小数点データ生成方法を説明するためのフローチャートである。
【００５７】
浮動小数点データが入力されると（ステップＳ１１）、まず、指数部ＭＩＮ値検出回路１０において、入力された浮動小数点データの中から最小となる浮動小数点データが検出される（ステップＳ１２）。
【００５８】
【数５】
0004086459.tif 000006
【００５９】
次に、入力された浮動小数点データの指数部を最小値に合わせ込むため、指数部減算器２１において、入力された浮動小数点データの指数部の値から指数部ＭＩＮ値検出回路１１にて最小値として検出された浮動小数点データの指数部の値が減算され、シフト量として出力される（ステップＳ１３）。
【００６０】
【数６】
0004086459.tif 000007
【００６１】
次に、シフトレジスタ３０において、式（６）にて算出されたシフト量に基づいて、入力された浮動小数点データの仮数部の値がシフトされる（ステップＳ１４）。
【００６２】
【数７】
0004086459.tif 000008
【００６３】
ここで、シフトされたビットにオーバーフローが生じた場合は、ビット内にて最大値を表現することにより飽和処理が行われる（ステップＳ１５）。
【００６４】
次に、ビット抽出部４０において、シフトレジスタ３０にてシフトされた仮数部から所定のビット数だけViterbi復号回路に入力される固定小数点データとしてとして抽出される（ステップＳ１６）。なお、この際、抽出するビット位置を復号率の高いビット位置に固定すれば、復号精度を向上させることができる。
【００６５】
また、ビット抽出部４０においては、抽出するビットにおいてオーバーフローが生じた場合は、抽出されたビットにて最大値を表現することにより飽和処理が行われ（ステップＳ１７）、データの最適化が図られる。
【００６６】
その後、ビット抽出部４０にて抽出された固定小数点データがViterbi復号回路に入力され（ステップＳ１８）、Viterbi復号回路において、入力された固定小数点データを用いてViterbi復号が行われる（ステップＳ１９）。
【００６７】
（第２の実施の形態）
図７は、本発明の固定小数点データ生成回路の第２の実施の形態を示すブロック図である。
【００６８】
本形態は図７に示すように、入力された浮動小数点データの平均値を算出する指数部平均値算出回路１２と、入力された浮動小数点データの指数部の値と指数部平均値算出回路１２にて算出された平均値の指数部の値との差分を求める指数部減算器２２と、指数部減算器２２にて求められた差分に基づいて、入力された浮動小数点データの仮数部の値をシフトさせるシフトレジスタ３０と、シフトレジスタ３０にてシフトした仮数部から所定のビット数だけViterbi復号回路（不図示）に入力される固定小数点データとして抽出するビット抽出部４０とから構成されている。
【００６９】
以下に、上記のように構成された固定小数点データ生成回路における固定小数点データ生成方法についてフローチャートを参照して説明する。
【００７０】
図８は、図７に示した固定小数点データ生成回路における固定小数点データ生成方法を説明するためのフローチャートである。
【００７１】
浮動小数点データが入力されると（ステップＳ２１）、まず、指数部平均値算出回路１２において、入力された浮動小数点データの平均値が算出される（ステップＳ２２）。
【００７２】
【数８】
0004086459.tif 000009
【００７３】
次に、入力された浮動小数点データの指数部を平均値に合わせ込むため、指数部減算器２２において、入力された浮動小数点データの指数部の値と指数部平均値算出回路１２にて算出された平均値の指数部の値との差分が求められ、シフト量として出力される（ステップＳ２３）。
【００７４】
【数９】
0004086459.tif 000010
【００７５】
次に、シフトレジスタ３０において、式（９）にて算出されたシフト量に基づいて、入力された浮動小数点データの仮数部の値がシフトされる（ステップＳ２４）。ここで、本形態のように浮動小数点データの平均値を用いてシフト量を算出する場合、ＭＳＢビット側、ＬＳＢビット側のどちらにも仮数部の値がシフトする可能性があり、固定小数点データ算出時のシフトレジスタ３０の動作には、以下の２通りの式が成り立つ。
【００７６】
【数１０】
0004086459.tif 000011
【００７７】
また、シフトされたビットにオーバーフローが生じた場合は、ビット内にて最大値を表現することにより飽和処理が行われる（ステップＳ２５）。
【００７８】
次に、ビット抽出部４０において、シフトレジスタ３０にてシフトされた仮数部から所定のビット数だけViterbi復号回路に入力される固定小数点データとしてとして抽出される（ステップＳ２６）。なお、この際、抽出するビット位置を復号率の高いビット位置に固定すれば、復号精度を向上させることができる。
【００７９】
また、ビット抽出部４０においては、抽出するビットにおいてオーバーフローが生じた場合は、抽出されたビットにて最大値を表現することにより飽和処理が行われ（ステップＳ２７）、データの最適化が図られる。
【００８０】
その後、ビット抽出部４０にて抽出された固定小数点データがViterbi復号回路に入力され（ステップＳ２８）、Viterbi復号回路において、入力された固定小数点データを用いてViterbi復号が行われる（ステップＳ２９）。
【００８１】
【発明の効果】
以上説明したように本発明においては、複数の浮動小数点データの中から指数部が最小となる浮動小数点データが検出され、入力される複数の浮動小数点データの指数部の値と最小となる浮動小数点データの指数部の値との差分が求められ、その後、入力された浮動小数点データの仮数部が差分だけシフトさせられ、シフトした仮数部のうち所定のビット数が固定小数点データとして抽出され構成としたため、入力される浮動小数点データの比較及び減算処理のみにより浮動小数点データから固定小数点データが生成され、入力された浮動小数点データに対する最適化を図ることができるとともに、回路規模を縮小することができる。
【００８２】
また、入力された複数の浮動小数点データの平均値を算出し、この平均値の指数部の値と入力される複数の浮動小数点データの指数部の値との差分を求めた場合においても、上記同様の効果を奏する。
【００８３】
また、固定小数点データとして抽出されるビットの位置が、復号率の高いビット位置に予め決められているものにおいては、復号率を向上させることができる。
【図面の簡単な説明】
【図１】  本発明の固定小数点データ生成回路の関連技術の一構成例を示すブロック図である。
【図２】  図１に示した固定小数点データ生成回路における固定小数点データ生成方法を説明するためのフローチャートである。
【図３】  減算器を用いた固定小数点データ生成回路の回路規模と除算器を用いた固定小数点データ生成回路の回路規模を示すグラフである。
【図４】  図１に示した固定小数点データ生成回路及び従来の固定小数点データ生成回路におけるビット誤り率特性を示すグラフである。
【図５】  本発明の固定小数点データ生成回路の第１の実施の形態を示すブロック図である。
【図６】  図５に示した固定小数点データ生成回路における固定小数点データ生成方法を説明するためのフローチャートである。
【図７】  本発明の固定小数点データ生成回路の第２の実施の形態を示すブロック図である。
【図８】  図７に示した固定小数点データ生成回路における固定小数点データ生成方法を説明するためのフローチャートである。
【図９】  従来の、浮動小数点データから固定小数点データを生成してViterbi復号を行う回路の一例を示す図である。
【図１０】  図９に示した回路を用いた、浮動小数点データから固定小数点データを生成してViterbi復号を行う方法を説明するためのフローチャートである。
【符号の説明】
１０    指数部ＭＡＸ値検出回路
１１    指数部ＭＩＮ値検出回路
１２    指数部平均値算出回路
２０〜２２    指数部減算器
３０    シフトレジスタ
４０    ビット抽出部
【図１】
0004086459.tif 000012
【図２】
0004086459.tif 000013
【図３】
0004086459.tif 000014
【図４】
0004086459.tif 000015
【図５】
0004086459.tif 000016
【図６】
0004086459.tif 000017
【図７】
0004086459.tif 000018
【図８】
0004086459.tif 000019
【図９】
0004086459.tif 000020
【図１０】
0004086459.tif 000021