(57)【要約】【課題】演算装置の演算精度を改善する。【解決手段】入力値Ｘに対し対数演算を行って出力値ｌｏｇＸを出力する対数演算装置の演算方法では、入力値Ｘに基づいて演算用パラメータαの値が設定される（Ｓ１２）。設定された演算用パラメータαの値を含む演算用変換関数Ｚ＝αＸで、入力値Ｘが演算対象値Ｚに変換される（Ｓ１３）。変換された演算対象値Ｚに対し対数演算が施され、演算結果値ｌｏｇＺが取得される（Ｓ１４）。演算用パラメータαの値に基づいて設定された出力用パラメータｌｏｇαの値を含む出力用変換関数ｌｏｇＸ＝ｌｏｇＺ−ｌｏｇαを用いて、演算結果値ｌｏｇＺが出力値ｌｏｇＸに変換される（Ｓ１５）。演算用パラメータαの値の設定は、演算結果値ｌｏｇＺの誤差が許容範囲内となるような演算対象値Ｚの範囲の一部または全部が演算用変換関数Ｚ＝αＸの値域となるように行われる。【選択図】図１
2009276990.tif 000002
【特許請求の範囲】
【請求項１】
入力された入力値に対し演算を行って出力値を出力する演算装置であって、
前記入力値に基づいて演算用パラメータの値を設定する演算用設定手段と、
該演算用設定手段が設定した演算用パラメータの値を含む演算用変換関数で、前記演算の対象となる値である演算対象値に前記入力値を変換する演算用変換手段と、
該演算用変換手段が変換した演算対象値に対し前記演算を行って、該演算の結果である演算結果値を取得する演算手段と、
前記演算用パラメータの値に基づいて設定された出力用パラメータの値を含む出力用変換関数で、前記演算手段が取得した演算結果値を前記出力値に変換する出力用変換手段とを備えており、
前記演算手段は、前記演算結果値の誤差が、前記演算対象値に依存しており、
前記演算用設定手段は、前記演算結果値の誤差が許容範囲内となるような前記演算対象値の範囲の一部または全部が前記演算用変換関数の値域となるように、前記演算用パラメータの値を設定することを特徴とする演算装置。
【請求項２】
前記入力値の範囲と前記演算用パラメータの値とを対応付けた対応情報を記憶する記憶部をさらに備えており、
前記演算用設定手段は、前記入力値が含まれる前記範囲に対応する前記演算用パラメータの値を、前記記憶部の前記対応情報から検索して設定することを特徴とする請求項１に記載の演算装置。
【請求項３】
前記演算手段は、ＳＴＬ法に基づく演算を行うものであることを特徴とする請求項１または２に記載の演算装置。
【請求項４】
前記演算手段は、複数の演算ユニットを直列接続した構成であり、
前記演算ユニットのそれぞれは、
第１変数および第２変数の値をそれぞれ記憶する第１レジスタおよび第２レジスタと、
計算条件を判定する条件判定部と、
該条件判定部が判定した計算条件に基づいて、第１レジスタにおける第１変数の値を桁送りするシフタと、
第１レジスタにおける第１変数の値と、前記シフタによって桁送りされた第１変数の値と、前記条件判定部が判定した計算条件とに基づいて、第１演算を行う第１演算部と、
第２レジスタにおける第２変数の値と、前記条件判定部が判定した計算条件とに基づいて、第２演算を行う第２演算部とを備え、
第１演算部および第２演算部は、それぞれ、第１演算および第２演算の結果の値を、次段の演算ユニットにおける第１レジスタおよび第２レジスタに送出しており、
初段の演算ユニットに関して、第１変数の値は、前記演算対象値に基づく値であり、第２変数の値は、前記演算対象値に基づく値または初期値であり、
終段の演算ユニットに関して、第２演算部が行う第２演算の結果が、前記演算結果値となることを特徴とする請求項３に記載の演算装置。
【請求項５】
音波および電磁波の少なくとも一方の信号を処理する信号処理装置であって、
前記信号の強度を算出するために、請求項１から４までの何れか１項に記載の演算装置を利用することを特徴とする信号処理装置。
【請求項６】
請求項１から４までの何れか１項に記載の演算装置を動作させるための演算プログラムであって、コンピュータを上記の各手段として機能させるための演算プログラム。
【請求項７】
請求項６に記載の演算プログラムが記録されたコンピュータ読取り可能な記録媒体。
【請求項８】
入力された入力値に対し演算を行って出力値を出力する演算装置の演算方法であって、
前記入力値に基づいて演算用パラメータの値を前記演算装置が設定する演算用設定ステップと、
該演算用設定ステップにて設定された演算用パラメータの値を含む演算用変換関数で、前記演算の対象となる値である演算対象値に前記入力値を前記演算装置が変換する演算用変換ステップと、
該演算用変換ステップにて変換された演算対象値に対し、前記演算装置が前記演算を行って、該演算の結果である演算結果値を取得する演算ステップと、
前記演算用パラメータの値に基づいて設定された出力用パラメータの値を含む出力用変換関数で、前記演算ステップにて取得された演算結果値を前記出力値に前記演算装置が変換する出力用変換ステップとを含んでおり、
前記演算ステップでは、前記演算結果値の誤差が、前記演算対象値に依存しており、
前記演算用設定ステップでは、前記演算結果値の誤差が許容範囲内となるような前記演算対象値の範囲の一部または全部が前記演算用変換関数の値域となるように、前記演算用パラメータの値が設定されることを特徴とする演算装置の演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された入力値に対し演算を行って出力値を出力する演算装置およびその制御方法、信号処理装置、演算装置制御プログラム、並びに該プログラムを記録した記録媒体に関するものである。具体的には、本発明は、例えばデシベルの算出に利用されるような、対数計算を行う演算装置などに関するものである。
【背景技術】
【０００２】
デシベルは、波動の振幅の２乗に比例する量の比、或る面を通って単位時間に伝えられるエネルギーの大きさの比、その他の比を対数目盛で表す指標の一種である。デシベルの値は、上記比の常用対数の１０倍を取ったものであり、デシベルの単位はｄＢである。なお、波動の振幅の２乗に比例する量の例としては、音波の圧力の振幅の２乗に比例する音の強さが挙げられる。また、或る面を通って単位時間に伝えられるエネルギーの大きさの例としては、導体を伝わる交流電力が挙げられる。
【０００３】
デシベルは、音波、電磁波などの波動の強度の指標として頻繁に用いられている。これは以下の理由による。すなわち、非特許文献１によると、刺激の強さをＲとし、該刺激による感覚の大きさをＥとすると、ＥはＲの対数に比例する。これは、ウェーバー‐フェヒナー（Weber-Fechner）の法則として知られている。この法則に基づき、或る基準値に対する波動の信号強度の比を対数目盛で表現するデシベルが広く採用されている。このことから、音波信号、電磁波信号などの波動信号を扱う回路またはソフトウェアにおいて、デシベルの算出のために対数が精度良く計算できることは重要である。
【０００４】
特許文献１と非特許文献２によると、対数を計算する方法としては、テーブルを逐次参照しながら関数の計算を行うＳＴＬ（Sequential Table Look-up）法が挙げられる。図９は、上記ＳＴＬ法を用いて、１≦Ｘ＜２を満たす実数Ｘの対数ｌｏｇＸを求めるアルゴリズム（ステップＳ１００（以下「Ｓ１００」と略称することがある。他のステップについても同様である。））を示している。なお、本願では、対数ｌｏｇは１０を底とする常用対数とする。
【０００５】
図９に示すように、まず、変数ｊ・Ｓｊ・Ｐｊの初期化を次式のように行う（ステップＳ１１１）。
ｊ＝０，Ｐ０＝０，Ｓ０＝Ｘ−１                          （１）。
【０００６】
次に、変数Ｓｊから判定条件Ｃｊ＋１を次式に基づいて求める（Ｓ１１２）。
Ｃｊ＋１＝２Ｓｊ−（１＋２−ｊＳｊ）                        （２）。
【０００７】
次に、判定条件Ｃｊ＋１が０以上であるか否かに応じて、変数ａｊ＋１・Ａｊ＋１を次式に基づいて求める（Ｓ１１３〜Ｓ１１５）。
Ｃｊ＋１≧０の場合，ａｊ＋１＝１，Ａｊ＋１＝１−２−ｊ−１、
Ｃｊ＋１＜０の場合，ａｊ＋１＝０，Ａｊ＋１＝１                （３）。
【０００８】
次に、変数ａｊ＋１・Ａｊ＋１から変数Ｓｊ＋１・Ｐｊ＋１を次式に基づいて求めると共に、変数ｊをｊ＋１に変更する（Ｓ１１６）。
Ｐｊ＋１＝Ｐｊ−ｌｏｇＡｊ＋１，Ｓｊ＋１＝２ＳｊＡｊ＋１−ａｊ＋１  （４）。
【０００９】
次に、上記ステップＳ１１２〜Ｓ１１６をｊ＝Ｎとなるまで繰り返す（Ｓ１１７）。そして、変数ＰＮからｌｏｇＸが次式により求まる（Ｓ１１８）。
ｌｏｇＸ＝ＰＮ                                          （５）。
【００１０】
図１０は、図９に示すアルゴリズム（Ｓ１００）を実装した従来の対数演算装置の一例を示している。対数演算装置１１０は、入力された１以上の実数Ｙに対し対数計算ｌｏｇＹを行い、その結果を出力するものであり、図示のように、ＳＴＬ演算回路１２０、演算レンジ用変換部１３０、および出力レンジ用変換部１３１を備えている。
【００１１】
ＳＴＬ演算回路１２０は、図９に示すように、１≦Ｘ＜２を満たす実数Ｘから対数ｌｏｇＸを、ＳＴＬ法を用いて演算するものである。すなわち、実数Ｘは、ＳＴＬ演算回路１２０における演算の対象となる演算対象値であり、対数ｌｏｇＸは、ＳＴＬ演算回路１２０が演算した結果である演算結果値である。なお、ＳＴＬ演算回路１２０の詳細は後述する。
【００１２】
なお、以下では、ＳＴＬ演算回路１２０に入力可能な演算対象値の範囲を「演算レンジ」と称し、該演算レンジ内の演算対象値に対しＳＴＬ演算回路１２０が演算した演算結果値の範囲を「演算結果レンジ」と称する。例えば、図９の場合では、演算レンジは１以上２未満の実数となり、演算結果レンジは０以上ｌｏｇ２未満の実数となる。
【００１３】
演算レンジ用変換部１３０は、対数演算装置１１０に入力された入力値Ｙを、ＳＴＬ演算回路１２０における演算レンジに適した数値に変換して、演算対象値ＸとしてＳＴＬ演算回路１２０に送出するものである。
【００１４】
具体的には、演算レンジ用変換部１３０には、入力値Ｙの範囲（正の実数）を定義域とし、演算対象値Ｘの範囲（１以上２未満の実数）を値域として、入力値Ｙを演算対象値Ｘに変換するための演算レンジ用変換関数が予め設定されている。次に、演算レンジ用変換部１３０は、上記演算レンジ用変換関数に含まれる演算レンジ用パラメータの値を、入力値Ｙに基づいて設定する。そして、演算レンジ用変換部１３０は、設定した演算レンジ用パラメータの値を含む上記演算レンジ用変換関数を利用して、入力値Ｙから演算対象値Ｘを計算し、計算した演算対象値ＸをＳＴＬ演算回路１２０に送出する。
【００１５】
出力レンジ用変換部１３１は、ＳＴＬ演算回路１２０が演算した演算結果値ｌｏｇＸを、対数演算装置１１０から出力される出力レンジに適した数値に変換して、出力値ｌｏｇＹとして出力するものである。
【００１６】
具体的には、出力レンジ用変換部１３１には、演算結果値ｌｏｇＸの範囲（０以上ｌｏｇ２未満の実数）を定義域とし、出力値ｌｏｇＹの範囲（実数）を値域として、演算結果値ｌｏｇＸを出力値ｌｏｇＹ変換するための出力レンジ用変換関数が予め設定されている。次に、出力レンジ用変換部１３１は、上記出力レンジ用変換関数に含まれる出力レンジ用パラメータの値を、演算レンジ用変換部１３０が設定した演算レンジ用パラメータの値に基づいて設定する。そして、出力レンジ用変換部１３１は、設定した出力レンジ用パラメータの値を含む上記出力レンジ用変換関数を利用して、演算結果値ｌｏｇＸから出力値ｌｏｇＹを計算し、計算した出力値ｌｏｇＹを出力する。
【００１７】
次に、ＳＴＬ演算回路１２０について説明する。図１０に示すように、ＳＴＬ演算回路１２０は、処理を繰り返し行う繰返し処理部１２１と、繰返し処理部１２１における現在の繰返し数ｊを計数するカウンタ１２９とを備える構成である。また、繰返し処理部１２１は、２つの変数Ｓｊ・Ｐｊの値をそれぞれ記憶する２つのレジスタ１２２・１２３と、上記式（２）により判定条件Ｃｊ＋１を計算して条件判定を行う条件判定部１２８と、ｌｏｇ（１−２−ｊ−１）の値を予め記憶するＬＵＴ（Look Up Table）１２４と、レジスタ１２２の変数Ｓｊの値をシフトさせるバレルシフタ１２５と、上記式（４）を演算する演算部１２６・１２７とを備える構成である。
【特許文献１】米国特許第３６３１２３０号明細書（１９７１年１２月２８日発行）
【非特許文献１】大賀寿郎著      、「マルチメディアシステム工学」、株式会社コロナ社、２００４年
【非特許文献２】高木直史著、「算術演算のＶＬＳＩアルゴリズム」、株式会社コロナ社、２００５年
【発明の開示】
【発明が解決しようとする課題】
【００１８】
図１１は、１≦Ｘ＜２を満たす実数Ｘと、図９に示すＳＴＬ法を利用して数値計算されたｌｏｇ１０Ｘとの関係を示すグラフである。図１１の（ａ）〜（ｆ）は、それぞれ、繰返し数Ｎを５〜１０としてｌｏｇ１０Ｘを算出した場合のグラフである。同図のグラフにおいて、横軸が実数Ｘであり、縦軸がｌｏｇ１０Ｘである。また、太線が上記数値計算されたものである。そして、比較のために、浮動小数点処理で算出したｌｏｇ１０Ｘが期待値として細線で示されている。
【００１９】
図１１を参照すると、繰返し数Ｎを増加することにより、誤差（細線に対する太線のずれ）が低減して、精度が向上することが理解できる。しかしながら、Ｘ＝１．３付近の領域と、１．７≦Ｘ＜２の領域とにおいては、誤差が大きく、かつ、繰返し数Ｎを増加しても上記誤差がさほど改善されないことが理解できる。
【００２０】
図１１の場合、上記誤差の最大値は０．１前後である。一般に、電力のデシベルは、対数値に１０を乗算したものとなる一方、電圧のデシベルは、電力が電圧の２乗に比例するので、対数値に２０を乗算したものとなる。従って、ＳＴＬ法で求めた対数値の誤差が０．１である場合、デシベルでは１〜２ｄＢの誤差が生じることになる。
【００２１】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、演算精度の改善された演算装置などを提供することにある。
【課題を解決するための手段】
【００２２】
本発明に係る演算装置は、入力された入力値に対し演算を行って出力値を出力する演算装置であって、上記課題を解決するために、前記入力値に基づいて演算用パラメータの値を設定する演算用設定手段と、該演算用設定手段が設定した演算用パラメータの値を含む演算用変換関数で、前記演算の対象となる値である演算対象値に前記入力値を変換する演算用変換手段と、該演算用変換手段が変換した演算対象値に対し前記演算を行って、該演算の結果である演算結果値を取得する演算手段と、前記演算用パラメータの値に基づいて設定された出力用パラメータの値を含む出力用変換関数で、前記演算手段が取得した演算結果値を前記出力値に変換する出力用変換手段とを備えており、前記演算手段は、前記演算結果値の誤差が、前記演算対象値に依存しており、前記演算用設定手段は、前記演算結果値の誤差が許容範囲内となるような前記演算対象値の範囲の一部または全部が前記演算用変換関数の値域となるように、前記演算用パラメータの値を設定することを特徴としている。
【００２３】
また、本発明に係る演算装置の演算方法は、入力された入力値に対し演算を行って出力値を出力する演算装置の演算方法であって、上記課題を解決するために、前記入力値に基づいて演算用パラメータの値を前記演算装置が設定する演算用設定ステップと、該演算用設定ステップにて設定された演算用パラメータの値を含む演算用変換関数で、前記演算の対象となる値である演算対象値に前記入力値を前記演算装置が変換する演算用変換ステップと、該演算用変換ステップにて変換された演算対象値に対し、前記演算装置が前記演算を行って、該演算の結果である演算結果値を取得する演算ステップと、前記演算用パラメータの値に基づいて設定された出力用パラメータの値を含む出力用変換関数で、前記演算ステップにて取得された演算結果値を前記出力値に前記演算装置が変換する出力用変換ステップとを含んでおり、前記演算ステップでは、前記演算結果値の誤差が、前記演算対象値に依存しており、前記演算用設定ステップでは、前記演算結果値の誤差が許容範囲内となるような前記演算対象値の範囲の一部または全部が前記演算用変換関数の値域となるように、前記演算用パラメータの値が設定されることを特徴としている。
【００２４】
上記の構成および方法によると、まず、演算装置に入力された入力値に基づいて、演算用変換関数の演算用パラメータの値が設定される。このとき、上記演算用パラメータの値は、演算結果値の誤差が許容範囲内となるような演算対象値の範囲の一部または全部が上記演算用変換関数の値域となるように設定される。
【００２５】
次に、上記演算用パラメータの値を含む演算用変換関数で、上記入力値が演算対象値に変換される。このとき、変換された演算対象値は、演算結果値の誤差が許容範囲内となるような演算対象値の範囲に含まれることになる。
【００２６】
次に、変換された演算対象値に対し演算が行われ、演算結果値が取得される。このとき、取得される演算結果値は、誤差が許容範囲内になるので、演算精度を改善することができる。そして、上記演算用パラメータに基づいて設定された出力用パラメータの値を含む出力用変換関数で、上記演算結果値が出力値に変換されて、演算装置から出力される。
【００２７】
従って、本発明に係る演算装置およびその演算方法により、演算精度の改善された出力値を出力することができる。なお、演算結果値の誤差の許容範囲は、例えば期待値の約５％が挙げられるが、演算装置に要求される演算精度に依存する。
【００２８】
本発明に係る演算装置では、前記入力値の範囲と前記演算用パラメータの値とを対応付けた対応情報を記憶する記憶部をさらに備えており、前記演算用設定手段は、前記入力値が含まれる前記範囲に対応する前記演算用パラメータの値を、前記記憶部の前記対応情報から検索して設定することが好ましい。この場合、上記演算結果値の誤差が許容範囲内となるような上記演算対象値の範囲の一部または全部が上記演算用変換関数の値域となるような上記演算用パラメータの値を、上記入力値から容易に取得することができる。
【００２９】
なお、上記演算手段が行う演算の例としては、ＳＴＬ法に基づく演算が挙げられる。このＳＴＬ法に基づく演算は、指数関数、対数関数、三角関数、商、平方根などの関数の計算に適用可能である。
【００３０】
ところで、ＳＴＬ法に基づく演算は、例えば図９および図１０に示すように、テーブル参照と、桁送りの計算と、計算条件の判定と、判定された計算条件に基づく演算とが繰り返し行われる。このため、繰返し回数が多くなればなるほど、演算時間が長くなることになる。
【００３１】
そこで、本発明に係る演算装置では、前記演算手段は、複数の演算ユニットを直列接続した構成であり、前記演算ユニットのそれぞれは、第１変数および第２変数の値をそれぞれ記憶する第１レジスタおよび第２レジスタと、計算条件を判定する条件判定部と、該条件判定部が判定した計算条件に基づいて、第１レジスタにおける第１変数の値を桁送りするシフタと、第１レジスタにおける第１変数の値と、前記シフタによって桁送りされた第１変数の値と、前記条件判定部が判定した計算条件とに基づいて、第１演算を行う第１演算部と、第２レジスタにおける第２変数の値と、前記条件判定部が判定した計算条件とに基づいて、第２演算を行う第２演算部とを備え、第１演算部および第２演算部は、それぞれ、第１演算および第２演算の結果の値を、次段の演算ユニットにおける第１レジスタおよび第２レジスタに送出しており、初段の演算ユニットに関して、第１変数の値は、前記演算対象値に基づく値であり、第２変数の値は、前記演算対象値に基づく値または初期値であり、終段の演算ユニットに関して、第２演算部が行う第２演算の結果が、前記演算結果値となってもよい。
【００３２】
この場合、桁送りを行うシフタと、計算条件を判定する条件判定部と、判定された計算条件に基づいて演算を行う第１および第２演算部を備える複数の演算ユニットが直列接続されるので、上記繰返し回数を減らすことができ、演算時間の増加を抑制することができる。
【００３３】
なお、音波および電磁波の少なくとも一方の信号を処理する信号処理装置であって、前記信号の強度を算出するために、上記構成の演算装置を利用する信号処理装置であれば、上述の効果と同様の効果を奏することができる。
【００３４】
また、上記演算装置の各手段を、演算プログラムによりコンピュータ上で実行させることができる。さらに、上記演算プログラムを、コンピュータ読取り可能な記録媒体に記憶させることにより、任意のコンピュータ上で当該演算プログラムを実行させることができる。
【発明の効果】
【００３５】
以上のように、本発明に係る演算装置は、演算装置に入力された入力値に基づいて、演算用変換関数の演算用パラメータの値が、演算結果値の誤差が許容範囲内となるような演算対象値の範囲の一部または全部が上記演算用変換関数の値域となるように設定されるので、上記演算用パラメータの値を含む演算用変換関数で、上記入力値が演算対象値に変換され、変換された演算対象値に対し演算が行われて、取得された演算結果値は、誤差が許容範囲内になるので、演算精度を改善できるという効果を奏する。
【発明を実施するための最良の形態】
【００３６】
本発明の一実施形態について、図１〜図７を参照して説明する。図２は、本実施形態の対数演算装置の概要を示している。本実施形態の対数演算装置（演算装置）１は、音波および／または電磁波の信号を処理する信号処理装置において、上記信号の強度を算出する演算装置に好適である。
【００３７】
図２に示す対数演算装置１は、図１０に示す従来の対数演算装置１１０に比べて、演算レンジ用変換部１３０およびＳＴＬ演算回路（演算手段）１２０の間に高精度演算レンジ用変換部１０が設けられる点と、出力レンジ用変換部１３１およびＳＴＬ演算回路１２０の間に演算結果レンジ用変換部１１が設けられる点とが異なり、その他の構成は同様である。なお、上記背景技術で説明した構成と同様の機能を有する構成には同一の符号を付して、その説明を省略する。
【００３８】
高精度演算レンジ用変換部１０は、演算レンジ用変換部１３０からの演算レンジ用数値Ｘを、高精度演算レンジに適した数値に変換するものである。ここで、高精度演算レンジとは、ＳＴＬ演算回路１２０における演算結果値の誤差が許容範囲内となるような演算対象値の範囲の一部または全部をいう。
【００３９】
例えば、ＳＴＬ演算回路１２０の演算が、図１１の（ｆ）に示すグラフのようになる場合、高精度演算レンジは、１．７１以上を除外した１≦Ｚ＜１．７１となり、或いは、さらに１．３付近を除外した１≦Ｚ＜１．２５、および１．３５≦Ｚ＜１．７１となる。演算対象値Ｚ＝１．３付近を除外すべきか否かは、演算結果値の誤差が許容範囲内か否かに依存する。なお、上記誤差の許容範囲は、対数演算装置１に要求される演算精度に依存する。
【００４０】
高精度演算レンジ用変換部１０は、変換した高精度演算レンジ内の数値Ｚを演算対象値としてＳＴＬ演算回路１２０に送出する。これにより、ＳＴＬ演算回路１２０が演算した演算結果値ｌｏｇＺは、誤差が許容範囲内となる。すなわち、ＳＴＬ演算回路１２０における演算は、高精度な演算となる。
【００４１】
演算結果レンジ用変換部１１は、ＳＴＬ演算回路１２０が演算した演算結果値ｌｏｇＺを、上述の演算結果レンジに適した数値ｌｏｇＸに変換するものである。演算結果レンジ用変換部１１は、変換した数値ｌｏｇＸを出力レンジ用変換部１３１に送出する。
【００４２】
次に、高精度演算レンジ用変換部１０、演算結果レンジ用変換部１１、演算レンジ用変換部１３０、および出力レンジ用変換部１３１の詳細について、図３〜図５を参照して説明する。まず、演算レンジ用変換部１３０および出力レンジ用変換部１３１の詳細について説明する。
【００４３】
上述のように、演算レンジ用変換部１３０は、任意の正の実数である入力値Ｙを、１≦Ｘ＜２を満たす実数である数値Ｘに変換するものである。また、出力レンジ用変換部１３１は、数値Ｘの対数である数値ｌｏｇＸを、上記入力値Ｙの対数である出力値ｌｏｇＹに変換するものである。
【００４４】
ところで、任意の正の実数Ｙは、次式を満たす実数Ｘ（但し１≦Ｘ＜２）、整数ｋ（但し０≦ｋ≦３）、および整数ｌによって表現可能である。
Ｙ＝Ｘ×２ｋ×１０ｌ      （６）。
【００４５】
これは下記の理由による。すなわち、実数Ｘは１≦Ｘ＜２を満たすので、Ｘ×２ｋは、ｋ＝０の場合、１≦Ｘ×２ｋ＜２となり、ｋ＝１の場合、２≦Ｘ×２ｋ＜４となり、ｋ＝２の場合、４≦Ｘ×２ｋ＜８となり、ｋ＝３の場合、８≦Ｘ×２ｋ＜１６となる。従って、０≦ｋ≦３（ｋは整数）、１≦Ｘ＜２（Ｘは実数）の場合、Ｘ×２ｋは、１≦Ｘ×２ｋ＜１６となり、１以上１０未満の任意の実数を表現可能である。更に、１０ｌ（ｌは整数）で桁を変えることにより、Ｘ×２ｋ×１０ｌは任意の正の実数Ｙを表現可能である。
【００４６】
また、上記式（６）の対数をとると、次式のようになる。
ｌｏｇＹ＝ｌｏｇＸ＋ｋ×ｌｏｇ２＋ｌ×ｌｏｇ１０≒ｌｏｇＸ＋０．３０１ｋ＋ｌ      （７）。
従って、１≦Ｘ＜２を満たす任意の実数Ｘの対数ｌｏｇＸが計算可能であれば、計算された対数ｌｏｇＸと、整数ｋおよび整数ｌとを用いて、任意の正の実数Ｙの対数ｌｏｇＹも計算可能となる。
【００４７】
以上より、本実施形態では、演算レンジ用変換部１３０は、まず、上記式（６）を上述の演算レンジ用変換関数とし、上記式（６）に含まれるパラメータｋ，ｌを演算レンジ用パラメータ（演算用パラメータ）として予め設定される。次に、演算レンジ用変換部１３０は、入力値Ｙと上記式（６）とに基づいて、演算レンジ用パラメータｋ，ｌの値を設定する。そして、演算レンジ用変換部１３０は、設定した演算レンジ用パラメータｋ，ｌの値と上記式（６）とに基づいて、入力値Ｙから演算レンジ用数値Ｘを計算し、計算した演算レンジ用数値Ｘを高精度演算レンジ用変換部１０に送出する。
【００４８】
一方、出力レンジ用変換部１３１は、まず、上記式（７）が出力レンジ用変換関数として予め設定される。そして、出力レンジ用変換部１３１は、演算レンジ用変換部１３０が設定した演算レンジ用パラメータｋ，ｌの値と上記式（７）とに基づいて、演算結果レンジ用数値ｌｏｇＸから出力値ｌｏｇＹを計算し、計算した出力値ｌｏｇＹを出力する。
【００４９】
図３は、演算レンジ用変換部１３０、出力レンジ用変換部１３１、高精度演算レンジ用変換部１０、および演算結果レンジ用変換部１１の概略構成を示している。図示のように、演算レンジ用変換部１３０は、入力値取得部１３２、演算レンジ用設定部（演算用設定手段）１３３、演算レンジ用対応テーブル（対応情報）１３４、および演算レンジ用算出部（演算用変換手段）１３５を備える構成である。
【００５０】
入力値取得部１３２は、対数演算装置１に入力された入力値Ｙを取得するものである。入力値取得部１３２は、取得した入力値Ｙを演算レンジ用設定部１３３および演算レンジ用算出部１３５に送出する。
【００５１】
演算レンジ用対応テーブル１３４は、入力値Ｙ、および演算レンジ用パラメータｋ，ｌの対応関係をテーブル形式で含むものである。演算レンジ用対応テーブル１３４は、上記式（６）に基づいて予め設定される。図４は、演算レンジ用対応テーブル１３４の一例を示している。同図の（ａ）には、入力値Ｙの範囲と演算レンジ用パラメータｌとが対応付けられ、同図の（ｂ）には、計算値Ｙ／１０ｌの範囲と演算レンジ用パラメータｋとが対応付けられている。
【００５２】
演算レンジ用設定部１３３は、演算レンジ用対応テーブル１３４を参照して、入力値取得部１３２からの入力値Ｙに対応する演算レンジ用パラメータｋ，ｌの値を設定するものである。演算レンジ用設定部１３３は、設定した演算レンジ用パラメータｋ，ｌの値を演算レンジ用算出部１３５および出力レンジ用変換部１３１に送出する。
【００５３】
具体的には、演算レンジ用設定部１３３は、例えば図４の（ａ）に示すようなテーブルを参照して、入力値Ｙに対応する演算レンジ用パラメータｌの値を取得する。次に、演算レンジ用設定部１３３は、Ｙ／１０ｌを計算し、計算結果である計算値Ｙ／１０ｌに対応する演算レンジ用パラメータｋの値を、例えば図４の（ｂ）に示すようなテーブルを参照して取得する。
【００５４】
演算レンジ用算出部１３５は、入力値取得部１３２からの入力値Ｙと、演算レンジ用設定部１３３からの演算レンジ用パラメータｋ，ｌの値とを、上記式（６）に代入して計算することにより、演算レンジ用数値Ｘを算出するものである。演算レンジ用算出部１３５は、算出した演算レンジ用数値Ｘを高精度演算レンジ用変換部１０に送出する。
【００５５】
一方、出力レンジ用変換部１３１は、図３に示すように、演算結果レンジ用取得部１３６および出力値算出部（出力用変換手段）１３７を備える構成である。
【００５６】
演算結果レンジ用取得部１３６は、演算結果レンジ用変換部１１から演算結果レンジ用数値ｌｏｇＸを取得するものである。演算結果レンジ用取得部１３６は、取得した演算結果レンジ用数値ｌｏｇＸを出力値算出部１３７に送出する。
【００５７】
出力値算出部１３７は、演算結果レンジ用取得部１３６からの演算結果レンジ用数値ｌｏｇＸと、演算レンジ用変換部１３０からの演算レンジ用パラメータｋ，ｌの値とを、上記式（７）に代入して計算することにより、出力値ｌｏｇＹを算出するものである。出力値算出部１３７は、算出した出力値ｌｏｇＹを対数演算装置１から出力する。
【００５８】
次に、本実施形態において追加された高精度演算レンジ用変換部１０および演算結果レンジ用変換部１１の詳細について説明する。上述のように、高精度演算レンジ用変換部１０は、演算レンジ用変換部１３０からの演算レンジ用数値Ｘを、上記高精度演算レンジに適した数値に変換するものである。また、演算結果レンジ用変換部１１は、ＳＴＬ演算回路１２０が演算した演算結果値ｌｏｇＺを、上記演算結果レンジに適した数値ｌｏｇＸに変換するものである。
【００５９】
高精度演算レンジ用変換部１０が演算レンジ用数値Ｘを高精度演算レンジ用数値Ｚに変換する処理内容は、以下のようにして決定される。すなわち、まず、上記演算レンジを、上記高精度演算レンジとそれ以外の低精度演算レンジとに分割する。なお、上記高精度演算レンジおよび低精度演算レンジは、それぞれ、複数の小レンジに分割してもよい。
【００６０】
次に、上記低精度演算レンジの数値を上記高精度演算レンジの数値に変換すると共に、上記高精度演算レンジの数値を上記高精度演算レンジの数値に変換するような高精度演算レンジ用変換関数および高精度演算レンジ用パラメータを決定する。高精度演算レンジ用変換関数の例としては次式が挙げられる。
Ｚ＝αＸ      （８）。
【００６１】
従って、本実施形態では、高精度演算レンジ用変換部１０は、まず、上記式（８）を上記高精度演算レンジ用変換関数とし、上記式（８）に含まれるパラメータαを高精度演算レンジ用パラメータ（演算用パラメータ）として予め設定される。次に、高精度演算レンジ用変換部１０は、演算レンジ用数値Ｘと上記式（８）とに基づいて、高精度演算レンジ用パラメータαの値を設定する。そして、高精度演算レンジ用変換部１０は、設定した高精度演算レンジ用パラメータαの値と上記式（８）とに基づいて、演算レンジ用数値Ｘから高精度演算レンジ用数値Ｚを計算し、計算した高精度演算レンジ用数値Ｚを演算対象値としてＳＴＬ演算回路１２０に送出する。
【００６２】
また、上記式（８）の対数をとると、次式となる。
ｌｏｇＺ＝ｌｏｇα＋ｌｏｇＸ      （９）。
従って、演算結果レンジ用変換部１１は、まず、高精度演算レンジ用パラメータαの取り得る値と、該値の対数ｌｏｇαの値とを対応付けたＬＵＴを予め用意しておく。次に、演算結果レンジ用変換部１１は、高精度演算レンジ用変換部１０が設定した高精度演算レンジ用パラメータαの値に対応する対数ｌｏｇαの値を、上記ＬＵＴから読み出す。そして、演算結果レンジ用変換部１１は、読み出した対数ｌｏｇαの値と、上記式（９）とに基づいて、ＳＴＬ演算回路１２０からの演算結果値ｌｏｇＺから演算結果レンジ用数値ｌｏｇＸを計算し、計算した演算結果レンジ用数値ｌｏｇＸを出力レンジ用変換部１３１に送出する。
【００６３】
次に、高精度演算レンジ用変換部１０および演算結果レンジ用変換部１１の構成について説明する。図３に示すように、高精度演算レンジ用変換部１０は、演算レンジ用取得部１２、高精度演算レンジ用設定部（演算用設定手段）１３、高精度演算レンジ用対応テーブル（対応情報）１４、および高精度演算レンジ用算出部（演算用変換手段）１５を備える構成である。
【００６４】
演算レンジ用取得部１２は、演算レンジ用変換部１３０からの演算レンジ用数値Ｘを取得するものである。演算レンジ用取得部１２は、取得した演算レンジ用数値Ｘを高精度演算レンジ用設定部１３および高精度演算レンジ用算出部１５に送出する。
【００６５】
高精度演算レンジ用対応テーブル１４は、演算レンジ用数値Ｘと、高精度演算レンジ用パラメータαの対応関係をテーブル形式で含むものである。高精度演算レンジ用対応テーブル１４は、上記式（８）に基づいて予め設定される。
【００６６】
図５は、高精度演算レンジ用対応テーブル１４の一例を示している。同図の（ａ）は、１≦Ｘ＜１．７１を高精度演算レンジとし、１．７１≦Ｘ＜２を低精度演算レンジとした例を示している。図示の例では、演算レンジ用数値Ｘが低精度演算レンジ（１．７１≦Ｘ＜２）に含まれる場合、高精度演算レンジ用数値Ｚ＝αＸが高精度演算レンジ（１≦Ｘ＜１．７１）に含まれるように、α＝０．８５が設定される。
【００６７】
一方、演算レンジ用数値Ｘが高精度演算レンジに含まれる場合、α＝１が設定される。これは、演算レンジ用数値Ｘを変換すること無く、そのまま高精度演算レンジ用数値Ｚとするとも考えられる。
【００６８】
また、図５の（ｂ）は、１≦Ｘ＜１．１、および１．３５≦Ｘ＜１．７１をそれぞれ第１および第２の高精度演算レンジとし、１．１≦Ｘ＜１．３５、および１．７１≦Ｘ＜２をそれぞれ第１および第２の低精度演算レンジとした例を示している。図示の例では、演算レンジ用数値Ｘが第１の低精度演算レンジ（１．１≦Ｘ＜１．３５）に含まれる場合、高精度演算レンジ用数値Ｚ＝αＸが第２の高精度演算レンジ（１．３５≦Ｘ＜１．７１）に含まれるように、α＝１．２５が設定される。また、演算レンジ用数値Ｘが第２の低精度演算レンジ（１．７１≦Ｘ＜２）に含まれる場合、高精度演算レンジ用数値Ｚ＝αＸが第２の高精度演算レンジ（１．３５≦Ｘ＜１．７１）に含まれるように、α＝０．８５が設定される。
【００６９】
一方、演算レンジ用数値Ｘが第１および第２の高精度演算レンジ（１．１≦Ｘ＜１．３５、および１．７１≦Ｘ＜２）に含まれる場合、α＝１が設定される。これは、演算レンジ用数値Ｘを変換すること無く、そのまま高精度演算レンジ用数値Ｚとするとも考えられる。
【００７０】
高精度演算レンジ用設定部１３は、高精度演算レンジ用対応テーブル１４を参照して、演算レンジ用取得部１２からの演算レンジ用数値Ｘに対応する高精度演算レンジ用パラメータαの値を設定するものである。高精度演算レンジ用設定部１３は、設定した高精度演算レンジ用パラメータαの値を高精度演算レンジ用算出部１５および演算結果レンジ用変換部１１に送出する。
【００７１】
高精度演算レンジ用算出部１５は、演算レンジ用取得部１２からの演算レンジ用数値Ｘと、高精度演算レンジ用設定部１３からの高精度演算レンジ用パラメータαの値とを、上記式（８）に代入して計算することにより、高精度演算レンジ用数値Ｚを算出するものである。高精度演算レンジ用算出部１５は、算出した高精度演算レンジ用数値ＺをＳＴＬ演算回路１２０に送出する。
【００７２】
一方、演算結果レンジ用変換部１１は、図３に示すように、高精度演算結果レンジ用取得部１６、演算結果レンジ用ＬＵＴ１７、および演算結果レンジ用算出部（出力用変換手段）１８を備える構成である。
【００７３】
高精度演算結果レンジ用取得部１６は、ＳＴＬ演算回路１２０が演算した演算結果値として高精度演算結果レンジ用数値ｌｏｇＺを取得するものである。高精度演算結果レンジ用取得部１６は、取得した高精度演算結果レンジ用数値ｌｏｇＺを演算結果レンジ用算出部１８に送出する。
【００７４】
演算結果レンジ用ＬＵＴ１７は、高精度演算レンジ用変換部１０が設定する高精度演算レンジ用パラメータαの取り得る値と、該値の対数ｌｏｇαの値とを対応付けて格納している。演算結果レンジ用ＬＵＴ１７は、高精度演算レンジ用変換部１０から高精度演算レンジ用パラメータαの値を取得すると、対応する対数ｌｏｇαの値を演算結果レンジ用算出部１８に送出する。
【００７５】
なお、高精度演算レンジ用パラメータαの値は、図５の（ａ）の例では２つであり、同図の（ｂ）の例では３つである。従って、演算結果レンジ用ＬＵＴ１７は、対応付けられた数組の値を格納すれば済むので、処理の増大や回路規模の増大にさほど影響を与えない。また、高精度演算レンジ用パラメータαの値が１である場合、対数ｌｏｇαは０となる。従って、演算結果レンジ用ＬＵＴ１７は、α＝１の場合を格納しないようにし、高精度演算レンジ用変換部１０から受け取った高精度演算レンジ用パラメータαの値が格納されていない場合に、演算結果レンジ用算出部１８に０を送出するようにしてもよい。この場合、演算結果レンジ用ＬＵＴ１７が格納する値の数をさらに減らすことができる。
【００７６】
演算結果レンジ用算出部１８は、高精度演算結果レンジ用取得部１６からの高精度演算結果レンジ用数値ｌｏｇＺと、演算結果レンジ用ＬＵＴ１７からの数値ｌｏｇαとを、上記式（９）に代入して計算することにより、演算結果レンジ用数値ｌｏｇＸを算出するものである。演算結果レンジ用算出部１８は、算出した演算結果レンジ用数値ｌｏｇＸを出力レンジ用変換部１３１に送出する。
【００７７】
次に、上記構成の対数演算装置１における処理動作について、図１を参照して説明する。図１は、対数演算装置１における高精度演算レンジ用変換部１０、ＳＴＬ演算回路１２０、および演算結果レンジ用変換部１１の処理の流れを示している。
【００７８】
図１に示すように、高精度演算レンジ用変換部１０は、まず、演算レンジ用変換部１３０が正の実数である入力値Ｙを変換した演算レンジ用数値Ｘ（１≦Ｘ＜２）を演算レンジ用取得部１２が取得する（Ｓ１１）。次に、演算レンジ用取得部１２が取得した演算レンジ用数値Ｘが含まれる範囲に対応する高精度演算レンジ用パラメータαの値を、高精度演算レンジ用設定部１３が高精度演算レンジ用対応テーブル１４から読み出して設定する（Ｓ１２）。次に、高精度演算レンジ用設定部１３が設定した高精度演算レンジ用パラメータαの値を利用して高精度演算レンジ用算出部１５がＺ＝αＸの計算を行うことにより、演算レンジ用取得部１２が取得した演算レンジ用数値Ｘから高精度演算レンジ用数値Ｚを算出する（Ｓ１３）。
【００７９】
次に、ＳＴＬ演算回路１２０は、高精度演算レンジ用変換部１０が算出した高精度演算レンジ用数値Ｚに対し、ＳＴＬ法に基づく対数計算を行って、演算結果値である高精度演算結果レンジ用数値ｌｏｇＺを求める（Ｓ１４）。次に、演算結果レンジ用変換部１１は、高精度演算レンジ用変換部１０が設定した高精度演算レンジ用パラメータαの対数ｌｏｇαを利用して、ｌｏｇＸ＝ｌｏｇＺ−ｌｏｇαを計算することにより、ＳＴＬ演算回路１２０の演算による高精度演算結果レンジ用数値ｌｏｇＺから演算結果レンジ用数値ｌｏｇＸを算出する（Ｓ１５）。そして、算出された演算結果レンジ用数値ｌｏｇＸを出力レンジ用変換部１３１が出力レンジ用数値ｌｏｇＹに変換し、出力値として出力する。その後、処理動作を終了する。
【００８０】
図６および図７は、１≦Ｘ＜２を満たす実数Ｘと、該実数Ｘを演算レンジ用数値として本実施形態の対数演算装置１が算出した演算結果レンジ用数値ｌｏｇＸとの関係を示すグラフである。図６および図７の両方の（ａ）〜（ｆ）は、それぞれ、繰返し数Ｎを５〜１０としてｌｏｇ１０Ｘを算出した場合のグラフである。同図のグラフにおいて、横軸が実数Ｘであり、縦軸がｌｏｇ１０Ｘである。また、太線が上記数値計算されたものである。そして、比較のために、期待値が細線で示されている。
【００８１】
さらに、図６は、高精度演算レンジ用変換部１０における高精度演算レンジ用対応テーブル１４が、図５の（ａ）に示すテーブルである場合のグラフである。一方、図７は、上記高精度演算レンジ用対応テーブル１４が、図５の（ｂ）に示すテーブルである場合のグラフである。
【００８２】
図６のグラフを図１１のグラフと比較すると、本実施形態の対数演算装置１は、従来の対数演算装置１１０に比べて、１．７≦Ｘ＜２におけるｌｏｇＸの誤差が著しく改善されることが理解できる。具体的には、図１１のグラフにおいて、Ｘが２近傍である場合の誤差が約０．０６と最大となる。これに対し、図６のグラフでは、Ｘが２近傍である場合の誤差が約０となる。Ｘが２近傍である場合の期待値が約０．３であることから、ｌｏｇＸの誤差が最大で約２０％（＝（０．０６−０）÷０．３）改善されたことになる。
【００８３】
さらに、図７のグラフを図６のグラフと比較すると、高精度演算レンジ用対応テーブル１４として図５の（ｂ）に示すテーブルを利用する方が、図５の（ａ）に示すテーブルを利用するよりも、Ｘ＝１．３付近におけるｌｏｇＸの誤差が改善されることが理解できる。
【００８４】
なお、本実施形態では、演算レンジ用変換部１３０および高精度演算レンジ用変換部１０は、別々の構成としているが、１つの構成に統合することもできる。この場合、高精度演算レンジ用変換部１０の演算レンジ用取得部１２を省略することができる。また、本実施形態では、出力レンジ用変換部１３１および演算結果レンジ用変換部１１は、別々の構成としているが、１つの構成に統合することもできる。この場合、出力レンジ用変換部１３１の演算結果レンジ用取得部１３６を省略することができる。
【００８５】
また、本実施形態では、ＳＴＬ演算回路１２０は、従来と同様に、１つの演算ユニット（繰返し処理部１２１）にて繰返し演算を行う構成となっているが、複数の演算ユニットを直列接続して、直列演算を行う構成とすることもできる。
【００８６】
図８は、Ｎ個の演算ユニット２１を直列接続したＳＴＬ演算回路（演算手段）２０の概略構成を示している。図示のように、ＳＴＬ演算回路２０は、直列接続されたＮ個の演算ユニット２１と、ｌｏｇ（１−２−ｊ−１）の値を予め記憶する１個のＬＵＴ１２４と、変数ＰＮの値を記憶する１個のレジスタ１２３ｄとを備える構成である。
【００８７】
各演算ユニット２１は、図２などに示す繰返し処理部１２１に比べて、ｌｏｇ（１−２−ｊ−１）の値を予め記憶するＬＵＴ１２４が省略されている点が異なり、その他の構成は同様である。ＳＴＬ演算回路２０では、各演算ユニット２１にＬＵＴ１２４を設ける代わりに、Ｎ個の演算ユニット２１に共通する１個のＬＵＴ１２４を設けている。
【００８８】
図８では、初段（ｊ＝０）の演算ユニット２１ａと、２段目（ｊ＝１）の演算ユニット２１ｂと、終段（ｊ＝Ｎ−１）の演算ユニット２１ｃとが記載されている。なお、以下では、初段の構成には部材番号にａを付し、２段目の構成には部材番号にｂを付し、終段の構成には部材番号にｃを付している。
【００８９】
図８に示すように、各段の演算ユニット２１では、上記式（４）に基づいてＳｊ＋１の演算を行う演算部（第１演算部）１２６は、演算結果の値を、次段の演算ユニット２１においてＳｊ＋１の値を記憶するレジスタ（第１レジスタ）１２２に送出する。同様に、上記式（４）に基づいてＰｊ＋１の演算を行う演算部（第２演算部）１２７は、演算結果の値を、次段の演算ユニット２１においてＰｊ＋１の値を記憶するレジスタ（第２レジスタ）１２３に送出する。
【００９０】
初段の演算ユニット２１ａでは、Ｓ０の値を記憶するレジスタ１２２ａに演算対象値Ｚに基づく値が記憶される。また、Ｐ０の値を記憶するレジスタ１２３ａには初期値（０）が記憶される。なお、初段の条件判定部１２８ａは、判定条件Ｃ１＝−１となり、レジスタ１２２ａの値に依存しない。
【００９１】
終段の演算ユニット２１ｃでは、上記式（４）に基づいてＰＮの演算を行う演算部１２７ｃは、演算結果の値を、ＰＮの値を記憶する新たなレジスタ１２３ｄに送出する。このレジスタ１２３ｄに記憶されるＰＮの値が演算対象値Ｚに対数計算を施した演算結果値ｌｏｇＺとなる。なお、ＳＮの演算を行う終段の演算部１２６ｃは、演算結果の値の送出が省略される。このため、終段の演算部１２６ｃと終段のバレルシフタ（シフタ）１２５ｃとを省略してもよい。
【００９２】
図８に示すＳＴＬ演算回路２０は、図２などに示すＳＴＬ演算回路１２０に比べて、カウンタ１２９は省略されるが、（Ｎ−１）個の演算ユニット２１と１個のレジスタ１２３ｄとが追加されるので、回路規模が増大する。一方、複数の演算対象値を順次演算する場合、各演算ユニット２１は、或る演算対象値に対する演算が終了すると、次の演算対象値に対する演算を直ちに行うことができるので、ＳＴＬ演算回路２０は、ＳＴＬ演算回路１２０に比べて迅速に演算を行うことができる。
【００９３】
例えば、入力信号Ｙの変化が周波数ｆ［Ｈｚ］であるとすると、繰返しがＮ回のＳＴＬ演算回路１２０の動作クロックはＮ×ｆ［Ｈｚ］以上が必要であるが、ＳＴＬ演算回路２０の動作クロックはｆ［Ｈｚ］のままでよい。なお、ＳＴＬ演算回路２０・１２０の何れを採用するかは、対数演算装置１のＬＳＩに実装する場合のテクノロジとライブラリの中で、処理速度と消費電力との観点から決定される。
【００９４】
なお、本実施形態の対数演算装置１をＬＳＩに実装する場合、特に音声を扱うＬＳＩや、電磁波を扱う携帯電話用ベースバンド処理ＬＳＩ、放送受信用ベースバンドＬＳＩ等、通信用ベースバンドＬＳＩで有効である。これらのＬＳＩでは、音声や電磁波の強度のデシベルを計算し、更に計算結果に基づいて制御を行っているので、本発明を適用することにより、正確なデシベルが計算可能となり、更に上記デシベル量に基づく制御を正確に行うことが可能となる。
【００９５】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【００９６】
例えば、高精度演算レンジ用対応テーブル１４において、演算レンジを、図５の（ａ）では２つに、同図の（ｂ）では４つに分割して、それぞれにαの値を設定しているが、低精度演算レンジにおける任意の値がＺ＝αＸにより高精度演算レンジの値に変換可能であれば、任意の分割数で演算レンジを分割することができる。
【００９７】
また、本願では、対数ｌｏｇを、１０を底とする常用対数として説明しているが、自然対数など、任意の数を底とする対数の演算にも本発明を適用可能である。この場合、所望の底ｕによる対数ｌｏｇｕ（１−２−ｊ−１）の値をＬＵＴ１２４に記憶すればよい。
【００９８】
また、本願では、変数Ａｊ＋１は、上記式（３）に示すように、Ａｊ＋１＝１−２−ｊ−１またはＡｊ＋１＝１としているが、１と２のべき乗の加減算で構成される任意の式に変更可能である。変数Ａｊ＋１の他の例としては、Ａｊ＋１＝１＋２−ｊ−１またはＡｊ＋１＝１、Ａｊ＋１＝１−２−ｊまたはＡｊ＋１＝１、Ａｊ＋１＝１＋２−ｊまたはＡｊ＋１＝１などが挙げられる。
【００９９】
また、本願では、対数関数のＳＴＬ法に基づく演算に適用しているが、ＳＴＬ法に基づく演算が可能な任意の関数を本発明の演算対象とすることができる。例えば、特許文献１によると、ＳＴＬ法は指数関数、商、および平方根の演算にも適用可能である。また、三角関数は、ＣＯＲＤＩＣ（Coordinate Rotation Digital Computer）法に基づく演算が一般に利用されているが（非特許文献２参照）、複素領域で考えると指数関数となるのでＳＴＬ法に基づく演算も可能である。
【０１００】
従って、本発明は、指数関数、三角関数、商、平方根などのような、加法定理が成立する初等関数のＳＴＬ法に基づく演算にも適用可能である。なお、適用する関数に応じて、高精度演算レンジ用変換関数を変更してもよい。例えば、指数関数の演算に適用する場合には、Ｚ＝Ｘ＋αを高精度演算レンジ用変換関数とすることが好ましい。
【０１０１】
最後に、対数演算装置１の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０１０２】
すなわち、対数演算装置１は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである対数演算装置１の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記対数演算装置１に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０１０３】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０１０４】
また、対数演算装置１を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【０１０５】
以上のように、本発明は、演算結果値の精度が低くなるような演算対象値の範囲内の値を、演算結果値の精度が高くなるような演算対象値の範囲内の値に変換することにより、演算精度を改善するので、演算結果値の特定部分の誤差が大きい任意の演算装置に適用することができる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の一実施形態である対数演算装置における処理の流れを示すフローチャートである。
【図２】上記対数演算装置の概略構成を示すブロック図である。
【図３】上記対数演算装置における演算レンジ用変換部、出力レンジ用変換部、高精度演算レンジ用変換部、および演算結果レンジ用変換部の概略構成を示すブロック図である。
【図４】上記演算レンジ用変換部における演算レンジ用対応テーブルの一例を表形式で示す図である。
【図５】上記高精度演算レンジ用変換部における高精度演算レンジ用対応テーブルの一例および他の例を表形式で示す図である。
【図６】上記対数演算装置の演算による演算対象値と演算結果値との関係の一例を示すグラフである。
【図７】上記対数演算装置の演算による演算対象値と演算結果値との関係の他の例を示すグラフである。
【図８】上記対数演算装置におけるＳＴＬ演算回路の変形例を示すブロック図である。
【図９】ＳＴＬ法に基づく対数計算の処理の流れを示すフローチャートである。
【図１０】従来の対数演算装置の概略構成を示すブロック図である。
【図１１】上記従来の対数演算装置の演算による演算対象値と演算結果値との関係の一例を示すグラフである。
【符号の説明】
【０１０７】
１  対数演算装置（演算装置）
１０  高精度演算レンジ用変換部
１１  演算結果レンジ用変換部
１２  演算レンジ用取得部
１３  高精度演算レンジ用設定部（演算用設定手段）
１４  高精度演算レンジ用対応テーブル（対応情報）
１５  高精度演算レンジ用算出部（演算用変換手段）
１６  高精度演算結果レンジ用取得部
１８  演算結果レンジ用算出部（出力用変換手段）
２０  ＳＴＬ演算回路（演算手段）
２１  演算ユニット
２１ａ  初段の演算ユニット
２１ｃ  終段の演算ユニット
１２０  ＳＴＬ演算回路（演算手段）
１２１  繰返し処理部
１２２・１２３  レジスタ（第１・第２レジスタ）
１２４  ＬＵＴ
１２５  バレルシフタ（シフタ）
１２６・１２７  演算部（第１・第２演算部）
１２８  条件判定部
１２９  カウンタ
１３０  演算レンジ用変換部
１３１  出力レンジ用変換部
１３２  入力値取得部
１３３  演算レンジ用設定部（演算用設定手段）
１３４  演算レンジ用対応テーブル（対応情報）
１３５  演算レンジ用算出部（演算用変換手段）
１３６  演算結果レンジ用取得部
１３７  出力値算出部（出力用変換手段）
α：高精度演算レンジ用パラメータ（演算用パラメータ）
ｋ・ｌ：演算レンジ用パラメータ（演算用パラメータ）
【図１】
2009276990.tif 000003
【図２】
2009276990.tif 000004
【図３】
2009276990.tif 000005
【図４】
2009276990.tif 000006
【図５】
2009276990.tif 000007
【図６】
2009276990.tif 000008
【図７】
2009276990.tif 000009
【図８】
2009276990.tif 000010
【図９】
2009276990.tif 000011
【図１０】
2009276990.tif 000012
【図１１】
2009276990.tif 000013