(57)【要約】【課題】LNS数の減算用のルックアップテーブルのテーブルサイズを削減し、もってLNS数の演算を簡単に行うことができるようにする。【解決手段】対数演算部２０の減算器７０は、LNS数ｘからyを引いた差分ｖ（＝ｘ−ｙ）を演算し、fssテーブル７３に出力する。補間回路４１ａは、入力されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrに基づいて２次補間演算を実行し、その結果としての２次補間値ｆhat（ｘl＋ｘr）＝ｆss（ｖ）を減算器８０に出力する。減算器８０は、マルチプレクサ７９の出力から補間回路４１ａの出力を減算することにより、ｆs（ｖ）＝ｆss（ｖ）＋log2ｖを計算する。本発明は、例えば、LNS数による加減算を行う情報処理装置に適用できる。【選択図】図５
2008287645.tif 000002
【特許請求の範囲】
【請求項１】
ｘ＝logr（X），ｙ＝logr（Y），ｖ＝ｘ−ｙ、およびｆs（ｖ）＝logr（１−ｒ-v）として、ｘ＋ｆs（ｖ）によりｘとｙの減算を行う対数演算装置において、
ｆs（ｖ）からlogr（ｖ）を引いた差であるｆss（ｖ）を記憶する差分テーブル記憶手段と、
logr（ｖ）を記憶するlogテーブル記憶手段と、
前記差分テーブル記憶手段から取得されるｆss（ｖ）の値と、前記logテーブル記憶手段から取得されるlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行う演算手段と
を備える対数演算装置。
【請求項２】
ｆa（ｖ）＝logr（１＋ｒ-v）として、ｘ＋ｆa（ｖ）によりｘとｙの加算が行われ、ｆa（ｖ）が、それを第ｎ次（ｎ≧１）までテイラー展開したｆt1（ｖ）乃至ｆtn（ｖ）と、それ以外の剰余であるｆan（ｖ）とで表される場合に、ｆt1（ｖ）乃至ｆtn（ｖ）を記憶するｆtテーブル記憶手段と、
ｆan（ｖ）を記憶するｆaテーブル記憶手段と
をさらに備え、
前記演算手段は、前記ｆtテーブル記憶手段から取得されるｆt1（ｖ）乃至ｆtn（ｖ）の値と、前記ｆaテーブル記憶手段から取得されるｆan（ｖ）の値とを用いることにより、ｘとｙの加算も行う
請求項１に記載の対数演算装置。
【請求項３】
ｆs（ｖ）が、それを第ｎ次までテイラー展開したｆt1（ｖ）乃至ｆtn（ｖ）と、それ以外の剰余であるｆsn（ｖ）とで表される場合に、ｆsn（ｖ）を記憶するｆsテーブル記憶手段をさらに備え、
前記演算手段は、０≦ｖ＜ｖbであるときには、前記差分テーブル記憶手段から取得されるｆss（ｖ）の値とlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行い、ｖb≦ｖであるときには、前記ｆtテーブル記憶手段から取得されるｆt1（ｖ）乃至ｆtn（ｖ）の値と、前記ｆsテーブル記憶手段から取得されるｆsn（ｖ）の値とを用いることにより、ｘとｙの減算を行う
請求項２に記載の対数演算装置。
【請求項４】
ｘ＝logr（X），ｙ＝logr（Y），ｖ＝ｘ−ｙ、およびｆs（ｖ）＝logr（１−ｒ-v）として、ｘ＋ｆs（ｖ）によりｘとｙの減算処理を行う対数演算方法において、
ｆs（ｖ）からlogr（ｖ）を引いた差であるｆss（ｖ）を記憶する差分テーブル記憶手段からｆss（ｖ）の値を取得し、
logr（ｖ）を記憶するlogテーブル記憶手段からlogr（ｖ）の値を取得し、
取得されたｆss（ｖ）の値とlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行う
ステップを含む対数演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対数演算装置および対数演算方法に関し、特に、LNS数の減算用のルックアップテーブルのテーブルサイズを削減し、もってLNS数の演算を簡単に行うことができるようにする対数演算装置および対数演算方法に関する。
【背景技術】
【０００２】
FIR(Finite Impulse Response）フィルタ、グラフィックス、ニューラルネットワーク、FFT(Fast Fourier Transform)などのアプリケーションで、対数を用いた演算を行うことがある。
【０００３】
対数表現(Logarithmic Number System,以下、LNSともいう)は、浮動小数点と似たダイナミックレンジを持つが、相対誤差が一定であるため、同じビット長での精度は浮動小数点より優れているという特徴を有する。換言すれば、表現される数の値によって相対誤差が大きく変化する固定小数点に対し、LNSは、はるかに小さいビット長で固定小数点と同じ平均精度とダイナミックレンジを実現することができる。このことは、LNSによれば、浮動小数点における場合と同じビット長で、よりよい信号対雑音比が実現できることを意味する。
【０００４】
このため、LNS はカメラの制御、移動無線装置での自動利得制御などで用いられている（例えば、特許文献１，２参照）。例えば、カメラの制御では、高い精度で高速に露光時間の制御や撮像信号のゲイン制御を行うためにLNSが使用されている。また例えば、移動無線装置では、通信装置に実装される変復調器のAGC(Auto Gain Control)機能に利用されている。
【０００５】
基数ｒの正の真数（実数）XをLNSで表した数（LNS数）ｘは、次のようになる。
X＝ｒx      ・・・・・・・・・・・・・・・・・・・（１）
ｘ＝logr（X）・・・・・・・・・・・・・・・・・・・（２）
ここで、LNS数ｘは、以下に示すように、小数部Fビット、整数部I=N−Fビット、全体でNビットの固定小数点数とする。
【数１】
2008287645.tif 000003
【０００６】
基数ｒの真数Y、および、基数ｒの真数CのLNS数についても同様に、ｙ＝logr（Y）およびｃ＝logr（C）としたとき、LNSにおける基本的な演算を、実数における演算と対応させて以下に示す。
【０００７】
乗算    [C = X × Y ]         ｃ＝ｘ＋ｙ
除算    [C = X ÷ Y ]         ｃ＝ｘ−ｙ
加算    [C = X ＋ Y ]         ｃ＝ｘ＋ｆa（ｖ）
減算    [C = X − Y ]         ｃ＝ｘ＋ｆs（ｖ）
平方根  [C = √X]             ｃ=ｘ／２
平方    [C = X2 ]             ｃ=２ｘ
【０００８】
ここで、ｖ＝ｘ−ｙ        ・・・・・・・・・・・・・・・・・・・（３）
ｆa（ｖ）＝logr（１＋ｒ-v）・・・・・・・・・・・・・・・・・・・（４）
ｆs（ｖ）＝logr（１−ｒ-v）・・・・・・・・・・・・・・・・・・・（５）
である。
【０００９】
なお、符号つき対数表現では、符号ビットSx∈｛０，１｝を加え、次のようにLNS数ｘを表すことができる。
【００１０】
【数２】
2008287645.tif 000004
【００１１】
そして、必要に応じて｜X｜≧｜Y｜となるように真数XおよびYを交換し、ｖ＝ｘ−ｙ≧０とした上で、LNS数の加減算を行う。また、LNS数の乗除算では、符号部と実数部が別々に演算される。上述のC=X×YおよびC=X÷Yの各場合では、符号部は、Sc=Sx・Syとすればよい。この符号部に関する処理は、一般的な浮動小数点演算で行われている処理と同様である。
【００１２】
従って、対数表現によれば、乗除算はLNS数の加減算で求めることができ、平方根および平方の演算はビットシフトにより求めることができるので、剰余算、平方根、および平方については、演算を高速化することができる。
【００１３】
【特許文献１】特開２００５−１９６５７４号公報
【特許文献２】特開２００５−２５６３６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、加減算については、ｆa（ｖ）およびｆs（ｖ）をルックアップテーブルとして記憶させておき、ｘからｙを引いた差ｖに対応するｆa（ｖ）の値またはｆs（ｖ）の値を、ルックアップテーブルを参照して求める必要がある。
【００１５】
図１は、ルックアップテーブルとして記憶される、ｆa（ｖ）およびｆs（ｖ）のグラフを示している。但し、ルックアップテーブルを正の数として記憶させるため、ｆs（ｖ）については、図１では、マイナスを乗算した−ｆs（ｖ）として示してある。
【００１６】
図１に示されるように、LNS数の減算に必要となる−ｆs（ｖ）は０近傍で無限大に発散するため、ルックアップテーブルとして記憶させておくデータが膨大となってしまうという問題があった。換言すれば、従来では、LNS数の減算用のルックアップテーブルのメモリサイズ（以下、テーブルサイズとも称する）を削減することができなかった。
【００１７】
本発明は、このような状況に鑑みてなされたものであり、LNS数の減算用のルックアップテーブルのテーブルサイズを削減し、もってLNS数の演算を簡単に行うことができるようにするものである。
【課題を解決するための手段】
【００１８】
本発明の一側面の対数演算装置は、ｘ＝logr（X），ｙ＝logr（Y），ｖ＝ｘ−ｙ、およびｆs（ｖ）＝logr（１−ｒ-v）として、ｘ＋ｆs（ｖ）によりｘとｙの減算を行う対数演算装置において、ｆs（ｖ）からlogr（ｖ）を引いた差であるｆss（ｖ）を記憶する差分テーブル記憶手段と、logr（ｖ）を記憶するlogテーブル記憶手段と、前記差分テーブル記憶手段から取得されるｆss（ｖ）の値と、前記logテーブル記憶手段から取得されるlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行う演算手段とを備える。
【００１９】
ｆa（ｖ）＝logr（１＋ｒ-v）として、ｘ＋ｆa（ｖ）によりｘとｙの加算が行われ、ｆa（ｖ）が、それを第ｎ次（ｎ≧１）までテイラー展開したｆt1（ｖ）乃至ｆtn（ｖ）と、それ以外の剰余であるｆan（ｖ）とで表される場合に、ｆt1（ｖ）乃至ｆtn（ｖ）を記憶するｆtテーブル記憶手段と、ｆan（ｖ）を記憶するｆaテーブル記憶手段とをさらに設け、前記演算手段には、前記ｆtテーブル記憶手段から取得されるｆt1（ｖ）乃至ｆtn（ｖ）の値と、前記ｆaテーブル記憶手段から取得されるｆan（ｖ）の値とを用いることにより、ｘとｙの加算も行わせることができる。
【００２０】
ｆs（ｖ）が、それを第ｎ次までテイラー展開したｆt1（ｖ）乃至ｆtn（ｖ）と、それ以外の剰余であるｆsn（ｖ）とで表される場合に、ｆsn（ｖ）を記憶するｆsテーブル記憶手段をさらに設け、前記演算手段には、０≦ｖ＜ｖbであるときには、前記差分テーブル記憶手段から取得されるｆss（ｖ）の値とlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行わせ、ｖb≦ｖであるときには、前記ｆtテーブル記憶手段から取得されるｆt1（ｖ）乃至ｆtn（ｖ）の値と、前記ｆsテーブル記憶手段から取得されるｆsn（ｖ）の値とを用いることにより、ｘとｙの減算を行わせることができる。
【００２１】
本発明の一側面の対数演算方法は、ｘ＝logr（X），ｙ＝logr（Y），ｖ＝ｘ−ｙ、およびｆs（ｖ）＝logr（１−ｒ-v）として、ｘ＋ｆs（ｖ）によりｘとｙの減算処理を行う対数演算方法において、ｆs（ｖ）からlogr（ｖ）を引いた差であるｆss（ｖ）を記憶する差分テーブル記憶手段からｆss（ｖ）の値を取得し、logr（ｖ）を記憶するlogテーブル記憶手段からlogr（ｖ）の値を取得し、取得されたｆss（ｖ）の値とlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行うステップを含む。
【００２２】
本発明の一側面においては、ｆs（ｖ）からlogr（ｖ）を引いた差であるｆss（ｖ）を記憶する差分テーブル記憶手段から取得されたｆss（ｖ）の値と、logr（ｖ）を記憶するlogテーブル記憶手段から取得されたlogr（ｖ）の値との和を求めることにより、ｘとｙの減算が行われる。
【発明の効果】
【００２３】
本発明の一側面によれば、LNS数の減算用のルックアップテーブルのテーブルサイズを削減し、もってLNS数の演算を簡単に行うことができる。
【発明を実施するための最良の形態】
【００２４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２５】
本発明の一側面の対数演算装置は、第１に、ｘ＝logr（X），ｙ＝logr（Y），ｖ＝ｘ−ｙ、およびｆs（ｖ）＝logr（１−ｒ-v）として、ｘ＋ｆs（ｖ）によりｘとｙの減算を行う対数演算装置（例えば、図５の対数演算部２０）において、ｆs（ｖ）からlogr（ｖ）を引いた差であるｆss（ｖ）を記憶する差分テーブル記憶手段（例えば、図５のfssテーブル７３）と、logr（ｖ）を記憶するlogテーブル記憶手段（例えば、図５のlogテーブル７７）と、前記差分テーブル記憶手段から取得されるｆss（ｖ）の値と、前記logテーブル記憶手段から取得されるlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行う演算手段（例えば、図５の減算器８０）とを備える。
【００２６】
本発明の一側面の対数演算装置は、第２に、ｆa（ｖ）＝logr（１＋ｒ-v）として、ｘ＋ｆa（ｖ）によりｘとｙの加算が行われ、ｆa（ｖ）が、それを第ｎ次（ｎ≧１）までテイラー展開したｆt1（ｖ）乃至ｆtn（ｖ）と、それ以外の剰余であるｆan（ｖ）とで表される場合に、ｆt1（ｖ）乃至ｆtn（ｖ）を記憶するｆtテーブル記憶手段（例えば、図１０のft１テーブル１０５）と、ｆan（ｖ）を記憶するｆaテーブル記憶手段（例えば、図１０のfa１テーブル１０１）とをさらに備え、前記演算手段は、前記ｆtテーブル記憶手段から取得されるｆt1（ｖ）乃至ｆtn（ｖ）の値と、前記ｆaテーブル記憶手段から取得されるｆan（ｖ）の値とを用いることにより、ｘとｙの加算も行う。
【００２７】
本発明の一側面の対数演算装置は、第３に、ｆs（ｖ）が、それを第ｎ次までテイラー展開したｆt1（ｖ）乃至ｆtn（ｖ）と、それ以外の剰余であるｆsn（ｖ）とで表される場合に、ｆsn（ｖ）を記憶するｆsテーブル記憶手段（例えば、図１０のfs１テーブル１０２）をさらに備え、前記演算手段は、０≦ｖ＜ｖbであるときには、前記差分テーブル記憶手段から取得されるｆss（ｖ）の値とlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行い、ｖb≦ｖであるときには、前記ｆtテーブル記憶手段から取得されるｆt1（ｖ）乃至ｆtn（ｖ）の値と、前記ｆsテーブル記憶手段から取得されるｆsn（ｖ）の値とを用いることにより、ｘとｙの減算を行う。
【００２８】
本発明の一側面の対数演算方法は、ｘ＝logr（X），ｙ＝logr（Y），ｖ＝ｘ−ｙ、およびｆs（ｖ）＝logr（１−ｒ-v）として、ｘ＋ｆs（ｖ）によりｘとｙの減算処理を行う対数演算方法において、ｆs（ｖ）からlogr（ｖ）を引いた差であるｆss（ｖ）を記憶する差分テーブル記憶手段からｆss（ｖ）の値を取得し（例えば、図１２のステップＳ２）、logr（ｖ）を記憶するlogテーブル記憶手段からlogr（ｖ）の値を取得し（例えば、図１２のステップＳ６）、取得されたｆss（ｖ）の値とlogr（ｖ）の値との和を求めることにより、ｘとｙの減算を行う（例えば、図１２のステップＳ１４）ステップを含む。
【００２９】
以下、図を参照して、本発明の実施の形態について説明する。
【００３０】
図２は、本発明を適用した信号処理装置の一実施の形態の構成例を示している。
【００３１】
図２の信号処理装置１は、受信装置で受信された受信信号のレベルを調整するAGC (Automatic Gain Control)処理を行う装置である。
【００３２】
信号処理装置１は、BPF(Band Pass Filter)１１、AMP(Amplifier)１２、直交検波部１３、A/D（Analog to Digital）変換部１４および１５、自乗回路部１６および１７、加算器１８、対数変換部１９、対数演算部２０、LPF（Low Pass Filter）２１、並びに、D/A(Digital to Analog)変換部２２により構成されている。
【００３３】
BPF１１は、入力される受信信号のうちの所定の周波数帯域の信号のみを通過させ、AMP１２に供給する。AMP１２は、D/A変換部２２からの制御信号に基づいてBPF１１からの信号を増幅させ、直交検波部１３に供給する。
【００３４】
直交検波部１３は、AMP１２からの直交した搬送波のアナログ信号を同相成分信号と直交成分信号に検波する。そして、直交検波部１３は、検波された同相成分信号をA/D変換部１４に、検波された直交成分信号をA/D変換部１５に、それぞれ供給する。
【００３５】
A/D変換部１４は、アナログの同相成分信号をデジタル信号に変換し、自乗回路部１６に供給する。A/D変換部１５は、アナログの直交成分信号をデジタル信号に変換し、自乗回路部１７に供給する。
【００３６】
自乗回路部１６は、デジタルの同相成分信号を２乗し、加算器１８に供給する。自乗回路１７も同様に、デジタルの直交成分信号を２乗し、加算器１８に供給する。加算器１８は、自乗回路部１６または１７からそれぞれ供給される同相成分信号と直交成分信号を加算し、その結果得られる加算値を対数変換部１９に供給する。
【００３７】
対数変換部１９は、入力される真数の加算値をLNS数に変換し、対数演算部２０に供給する。対数演算部２０は、対数変換部１９から供給されるLNS数の加算値と、ゲイン調整の基準となるLNS数で与えられる基準値との差を求める。即ち、対数演算部２０は、対数変換部１９から供給されるLNS数の加算値から、ゲイン調整の基準となるLNS数で与えられる基準値を減算し、その結果をLPF２１に供給する。
【００３８】
LPF２１は、対数演算部２０から供給される、減算結果としての、基準値からの差分信号の高周波成分を除去し、D/A変換部２２に供給する。D/A変換部２２は、高周波成分が除去された差分信号を、制御信号としてAMP１２に供給する。
【００３９】
この信号処理装置１においては、AMP１２のダイナミックレンジを４０dBとすると、真数では１０，０００まで扱うことになり、信号処理装置１としての処理量（ビット数）が大きくなるためハード規模が増大するところを、LNS数に変換して減算（基準値との差分計算）を行うことで、処理量を低減し、ハード規模も縮小している。
【００４０】
なお、上述した対数演算部２０においては、LNS数どうしの減算のみが行われることになるが、対数演算部２０そのものは、LNS数の加算と減算の両方を行うことができるように構成されている。従って、例えば、加算器１８を省略して、自乗回路部１６および１７から供給された同相成分信号および直交成分信号を対数変換部１９に供給してLNS数に変換させ、対数演算部２０において、LNS数としての同相成分信号と直交成分信号を加算し、さらにその加算結果と基準値との減算を行うようにすることも可能である。
【００４１】
次に、上述した対数演算部２０が行うLNS数の演算処理（加算処理および減算処理）の原理について説明する。以下に説明する原理を用いたLNS数の演算手法を、後述するその他の手法と区別して第１の手法と称する。
【００４２】
初めに、前提条件について説明する。
【００４３】
対数演算部２０の演算に使用されるLNS数ｘおよびｙを、小数部Fビット、整数部I=N−Fビット、および符号部１ビットからなるN＋１ビットに、さらに１ビットの符号ビットを加えた計N＋２ビットの符号付き固定長浮動小数点数とする。ここで、前者の符号部１ビットは、X＝ｒxなので、ｘを負数としてXが１未満の数を表現するための符号ビットであり、後者の符号ビットは、Xが正の数であるかまたは負の数であるかを決定する符号ビットである。
【００４４】
また、N＋２ビットの固定小数点で表すことができない２-Fより小さい部分の値は、０とみなす。即ち、LNS数の加減算に用いられる図１に示したｆa（ｖ）を記憶したテーブル（以下、ｆa（ｖ）テーブルと称する）、および、ｆs（ｖ）を記憶したテーブル（以下、ｆs（ｖ）テーブルと称する）において、｜ｆa（Z）｜≦２-F-1および｜ｆs（Z）｜≦２-F-1を満たすようなZでは、ｆa（ｖ）＝０，ｆs（ｖ）＝０とみなす。ここで、ｆa（ｖ）およびｆs（ｖ）は、ｖがある程度大きい場合、２-vに比例する関数に漸近する。従って、Z＝F＋２とすることができる。
【００４５】
なお、本実施の形態では、小数部のビット数Fを、後述する従来の手法との比較のため、従来の手法に条件を統一し、２３（F=２３）とする。従って、Z=２３＋２＝２５となり、対数演算部２０は、ｖが０から２５までについてのｆa（ｖ）テーブルとｆs（ｖ）テーブルを有する。また以下では、基数ｒが、デジタル処理を行うハードウエアと親和性がよい２（ｒ＝２）の場合を例にして説明する。但し、本発明はF＝２３およびｒ＝２に限定されるものではない。
【００４６】
以上のような前提の下で、LNS数の演算処理の原理について説明する。
【００４７】
最初に、基数ｒ＝２とすると、上述した式（４）および式（５）は、次式（８）および式（９）で表される。
ｆa（ｖ）＝log2（１＋２-v）・・・・・・・・・・・・・・・・・・・（８）
ｆs（ｖ）＝log2（１−２-v）・・・・・・・・・・・・・・・・・・・（９）
【００４８】
従来、LNS数の減算用のルックアップテーブルのテーブルサイズを削減することが困難である原因は、上述したように、−ｆs（ｖ）が０近傍で無限大に発散することに起因するものであった。
【００４９】
従って、第１の手法では、０近傍の０≦ｖ＜ｖb（ｖbは０＜ｖb＜２５の所定の固定値）において、ｆs（ｖ）が発散しないようにｆs（ｖ）を変形する。
【００５０】
より具体的には、０近傍の０≦ｖ＜ｖbにおいて使用するｆs（ｖ）のために、次式（１０）により与えられるｆss（ｖ）を新たに定義する。
【数３】
2008287645.tif 000005
【００５１】
ｆss（ｖ）のグラフを図３に示す。図３を参照して分かるように、ｆss（ｖ）は、ｖ＝０近傍で発散することがない関数である。
【００５２】
式（１０）をｆs（ｖ）を求める式に変形すると、
【数４】
2008287645.tif 000006
となるので、０近傍で発散しないｆss（ｖ）のテーブルとlog2（ｖ）のテーブルとを用意し、そこから取得されるｆss（ｖ）の値とlog2（ｖ）の値とを加算することで、０近傍でのROM使用量を減らすことができる。すなわち、ｆsは０近傍で発散するため、精度良く補間するためにはｆsのテーブル密度を高くする必要があったが、本手法ではその必要がなくなりROM使用量を減らすことが可能となる。
【００５３】
また、log2（ｖ）は、log2（ｖ）＝ｉ＋log2（ｖ／２i）と表すことができ、ｖ／２iは、１以上２より小さい値となるので、１以上２より小さい区間（以下、適宜、区間［１，２）と記述する）のみのlog2（ｖ／２i）をテーブルとして記憶することで、log2（ｖ）は求めることができる。
【００５４】
一方、ｖb≦ｖ＜２５では、対数演算部２０は、従来と同様の式（５）によりｆs（ｖ）を求める。なお以下では、０≦ｖ＜ｖbで用いられる式（１１）のｆs（ｖ）を、ｆLOWs（ｖ）と表し、ｖb≦ｖ＜２５で用いられる式（５）のｆs（ｖ）を、ｆHIGHs（ｖ）と表して区別する。
【００５５】
従って、第１の手法では、０≦ｖ＜ｖbにおいて使用されるｆss（ｖ）のテーブルとlog2（ｖ）のテーブル、および、ｖb≦ｖ＜２５において使用されるｆHIGHs（ｖ）のテーブルを記憶しておけば、LNS数ｘとｙの減算を行うことができる。
【００５６】
しかしながら、０≦ｖ＜２５の連続するすべてのｖに対してｆss（ｖ），log2（ｖ）、およびｆHIGHs（ｖ）のテーブルを記憶するのは現実的には困難であるため、第１の手法では、０≦ｖ＜２５を所定数に分割したときの分割点をサンプリング点として、各サンプリング点のｆss（ｖ），log2（ｖ）、およびｆHIGHs（ｖ）をテーブルとして記憶し、記憶していないｖに対応するｆss（ｖ），log2（ｖ）、またはｆHIGHs（ｖ）については２次補間によって求める。
【００５７】
一般的に、関数ｆ（ｘ）の区間［ａ，ｂ）における２次補間
ｆhat（ａ＋ｘ）＝ｆ（ａ）＋Ｃ1ｘ＋Ｃ2ｘ2  ・・・・・・・・・（１２）
において、ａ，ｂの中点をｃとし、ｆhat（ｂ）＝ｆ（ｂ）およびｆhat（ｃ）＝ｆ（ｃ）を満たすように係数Ｃ1およびＣ2を求めると、ｆ（ｂ）およびｆ（ｃ）は、
ｆ（ｂ）＝ｆ（ａ）＋Ｃ1（ｂ−ａ）＋Ｃ2（ｂ−ａ）2
ｆ（ｃ）＝ｆ（ａ）＋Ｃ1（ｂ−ａ）／２＋Ｃ2（ｂ−ａ）2／４
と変形できるので、係数Ｃ1およびＣ2は、式（１３）および式（１４）で表される。
【数５】
2008287645.tif 000007
【００５８】
従って、０≦ｖ＜２５において、ｆss（ｖ）テーブル，log2（ｖ）テーブル、およびｆHIGHs（ｖ）テーブルとして記憶しているサンプリング点をｘlと表し、サンプリング点ｘlと次のサンプリング点ｘl+1までの間隔をｘdrと表すと、任意のｖに対応する、サンプリング点ｘlとサンプリング点ｘl+1の間に存在する変数ｘは、ｘ＝ｘl＋ｘr（０≦ｘr＜ｘdr）と表すことができる。
【００５９】
上述の式（１２）で、ｘlはａに、ｘrはｘに対応するので、
【数６】
2008287645.tif 000008
と表すことができ、式（１５）において△＝ｘr／ｘdr，Chat1（ｘl）＝Ｃ1（ｘl）・ｘdr，Chat2（ｘl）＝Ｃ2（ｘl）・ｘdr2と置くと、
【数７】
2008287645.tif 000009
と変形することができる。
【００６０】
ここで、Chat1（ｘl）＝Ｃ1（ｘl）・ｘdr，Chat2（ｘl）＝Ｃ2（ｘl）・ｘdr2と置いたのは、ｘdr＝（ｂ−ａ）であるので、Chat1（ｘl）およびChat2（ｘl）が、
Chat1（ｘl）＝Ｃ1（ｘl）・ｘdr
＝４ｆ（ｃ）−３ｆ（ａ）−ｆ（ｂ）
Chat2（ｘl）＝Ｃ2（ｘl）・ｘdr2
＝２ｆ（ａ）＋２ｆ（ｂ）−４ｆ（ｃ）
となり、整数で与えることができ実装上の都合がよいためである。なお、ｂ＝ｘl＋ｘdr，ｃ＝ｘl＋ｘdr／２である。
【００６１】
以上から、ｆss（ｖ）テーブル，log2（ｖ）テーブル、またはｆHIGHs（ｖ）テーブルのそれぞれにおいて、ｆ（ｘl），Chat1（ｘl），Chat2（ｘl）を記憶させておくことにより、すべてのｖについてのｆss（ｖ），log2（ｖ）、またはｆHIGHs（ｖ）の値を求めることができる。
【００６２】
図４は、２次補間演算を行う補間回路の構成例を示すブロック図である。
【００６３】
補間回路４１は、シフト回路５１、乗算器５２、加算器５４、乗算器５５、および加算器５６により構成される。
【００６４】
シフト回路（shift）５１は、所定のｖに最も近いサンプリング点ｘl（≦ｖ）との差分値ｘrと、サンプリング点の間隔ｘdrとから、△＝ｘr／ｘdrを算出し、乗算器５２および５５に出力する。ｘdrは、２の累乗となっているので、シフト演算により△を求めることができる。
【００６５】
乗算器５２は、テーブルから読み出されたChat2（ｘl）と、シフト回路５１の出力である△とを乗算し、加算器５４に出力する。
【００６６】
加算器５４は、テーブルから読み出されたChat1（ｘl）と、乗算器５２の出力であるChat2（ｘl）・△とを加算する。乗算器５５は、加算器５４の出力である（Chat1（ｘl）＋Chat2（ｘl）・△）と、シフト回路５１からの出力である△とを乗算する。
【００６７】
最後に、加算器５６は、テーブルから読み出されたｆ（ｘl）と乗算器５５の出力である（Chat1（ｘl）＋Chat2（ｘl）・△）△とを加算する。これにより、補間回路４１は、式（１６）のｆhat（ｘl＋ｘr）＝ｆhat（ｘ）を出力する。
【００６８】
図５は、上述した第１の手法を用いた対数演算部２０の詳細な構成を示すブロック図である。
【００６９】
対数演算部２０の減算器７０には、同相成分信号と直交成分信号を加算した加算値と基準値が、LNS数ｘとｙとして入力される。減算器７０は、LNS数ｘからyを引いた差分ｖ（＝ｘ−ｙ）を演算し、faテーブル７１、fsテーブル７２、fssテーブル７３、およびシフト回路７４に出力する。
【００７０】
faテーブル７１は、所定数のサンプリング点それぞれに対するｆa値であるｆa（ｖ）テーブルを記憶する。faテーブル７１は、供給されたｖに最も近いサンプリング点ｘl（≦ｖ）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr（＝ｖ−ｘl）、およびｘdrをマルチプレクサ（MUX）７６に出力する。
【００７１】
fsテーブル７２は、所定数のサンプリング点それぞれに対するｆs値であるｆHIGHs（ｖ）テーブルを記憶する。fsテーブル７２は、供給されたｖに最も近いサンプリング点ｘl（≦ｖ）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr（＝ｖ−ｘl）、およびｘdrをマルチプレクサ（MUX）７５に出力する。
【００７２】
fssテーブル７３は、所定数のサンプリング点それぞれに対するｆss値であるｆss（ｖ）テーブルを記憶する。fssテーブル７３は、供給されたｖに最も近いサンプリング点ｘl（≦ｖ）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr（＝ｖ−ｘl）、およびｘdrをマルチプレクサ７５に出力する。
【００７３】
なお、faテーブル７１、fsテーブル７２は、fssテーブル７３などの各テーブルでは、実装上の便宜のため、各値が絶対値で格納されている。後述するその他のテーブルについても同様である。
【００７４】
シフト回路（shift）７４は、（ｖ／２i）が１以上２より小さい値となるまでｉビットシフトし、ビットシフトの回数ｉを加算器７８に出力するとともに、ｉビットシフト後の値である（ｖ／２i）をlogテーブル７７に出力する。
【００７５】
マルチプレクサ７５は、制御部８２からの制御に従い、fsテーブル７２から供給されたｆHIGHs（ｖ）テーブルのｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrか、または、fssテーブル７３から供給されたｆss（ｖ）テーブルのｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrのいずれか一方を選択し、その選択したｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrをマルチプレクサ７６に出力する。
【００７６】
マルチプレクサ７６は、制御部８２からの制御に従い、faテーブル７１から供給されたｆa（ｖ）テーブルのｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrか、または、マルチプレクサ７５から供給されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrのいずれか一方を選択し、その選択したｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrをマルチプレクサ７６に出力する。
【００７７】
補間回路４１ａは、図４を参照して説明した補間回路４１の構成を有し、入力されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrに基づいて２次補間演算を実行し、その結果としての２次補間値ｆhat（ｘl＋ｘr）を減算器８０に出力する。faテーブル７１からのデータが補間回路４１ａに入力された場合、補間回路４１ａが出力する２次補間値ｆhat（ｘl＋ｘr）はｆa（ｖ）に相当し、fsテーブル７２からのデータが補間回路４１ａに入力された場合、補間回路４１ａが出力する２次補間値ｆhat（ｘl＋ｘr）はｆHIGHs（ｖ）に相当し、fssテーブル７３からのデータが補間回路４１ａに入力された場合、補間回路４１ａが出力する２次補間値ｆhat（ｘl＋ｘr）はｆss（ｖ）に相当する。
【００７８】
logテーブル７７は、区間［１，２）における所定数のサンプリング点それぞれに対するlog2（ｖ／２i）の値を記憶し、供給された（ｖ／２i）に最も近いサンプリング点ｘl（≦ｖ／２i）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr（＝ｖ／２i−１）、およびｘdr（＝１）を補間回路４１ｂに出力する。
【００７９】
補間回路４１ｂは、図４を参照して説明した補間回路４１の構成を有し、入力されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrに基づいて２次補間演算を実行し、その結果としての２次補間値ｆhat（ｘl＋ｘr）であるlog2（ｖ／２i）を加算器７８に出力する。
【００８０】
加算器７８は、シフト回路７４からのｉと補間回路４１ｂからのlog2（ｖ／２i）を加算し、加算結果をマルチプレクサ（MUX）７９に出力する。
【００８１】
マルチプレクサ７９は、制御部８２からの制御に従い、“０”か、または、加算器７８からの出力であるｉ＋log2（ｖ／２i）のいずれかを選択し、減算器８０に出力する。
【００８２】
減算器８０には、マルチプレクサ７９から“０”が供給された場合、補間回路４１ａからはｆa（ｖ）またはｆHIGHs（ｖ）が供給される。また、マルチプレクサ７９からｉ＋log2（ｖ／２i）が供給された場合、補間回路４１ａからはｆss（ｖ）が供給される。減算器８０は、マルチプレクサ７９の出力から補間回路４１ａの出力を減算し、その減算結果を加算器８１に出力する。
【００８３】
上述したように、fsテーブル７２には、本来、負の値であるｆss（ｖ）が正の値（絶対値）として記憶されているので、マルチプレクサ７９からｉ＋log2（ｖ／２i）が供給され、補間回路４１ａからｆss（ｖ）が供給された場合、マルチプレクサ７９の出力から補間回路４１ａの出力を減算することにより、式（１１）を計算していることになる。従って、減算器８０から出力される値は、ｆs（ｖ）またはｆa（ｖ）に対応する。
【００８４】
加算器８１は、LNS数ｘと、減算器８０からの出力であるｆs（ｖ）またはｆa（ｖ）とを加算し、その結果であるｘ＋ｆa（ｖ）またはｘ＋ｆs（ｖ）を出力する。即ち、加算器８１は、LNS数ｘとｙの加算結果、または、減算結果を出力する。
【００８５】
制御部８２は、LNS数ｘとｙの加算を行うかまたは減算を行うか、さらに、LNS数ｘとｙの減算を行う場合には、０近傍の０≦ｖ＜ｖbにおける減算であるか、または、ｖb≦ｖ＜２５における減算であるかに応じて、マルチプレクサ７５、７６、または７９を制御する。
【００８６】
より具体的には、LNS数ｘとｙの加算を行う場合には、制御部８２は、faテーブル７１から読み出されたデータを選択するようにマルチプレクサ７６を制御するとともに、マルチプレクサ７９を“０”を出力するように制御する。
【００８７】
これにより、補間回路４１ａにおける２次補間演算によって求められたｆa（ｖ）が、減算器８０を介して加算器８１に供給される。そして、加算器８１において、ｃ＝ｘ＋ｆa（ｖ）が計算される。
【００８８】
一方、０≦ｖ＜ｖbにおけるLNS数ｘとｙの減算を行う場合には、制御部８２は、fssテーブル７３から読み出されたデータを選択するようにマルチプレクサ７５を制御し、マルチプレクサ７５の出力を選択するようにマルチプレクサ７６を制御する。また、制御部８２は、マルチプレクサ７９を加算器７８からの出力を選択するように制御する。
【００８９】
これにより、fssテーブル７３から読み出されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrが補間回路４１ａに供給され、補間回路４１ａによって求められたｆss（ｖ）が、減算器８０に供給される。また、マルチプレクサ７９は、加算器７８からの出力、即ち、ｉ＋log2（ｖ／２i）を減算器８０に出力する。減算器８０は、｛ｉ＋log2（ｖ／２i）｝からｆss（ｖ）を減算することにより、ｆLOWs（ｖ）＝ｆss（ｖ）＋log2（ｖ）を求め、加算器８１に出力する。そして、加算器８１において、ｃ＝ｘ＋ｆLOWs（ｖ）が計算される。
【００９０】
また、ｖb≦ｖ＜２５におけるLNS数ｘとｙの減算を行う場合には、制御部８２は、fsテーブル７２から読み出されたデータを選択するようにマルチプレクサ７５を制御し、マルチプレクサ７５の出力を選択するようにマルチプレクサ７６を制御する。また、制御部８２は、マルチプレクサ７９を“０”を出力するように制御する。
【００９１】
これにより、fsテーブル７２から読み出されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrが補間回路４１ａに供給され、補間回路４１ａにおいて求められたｆHIGHs（ｖ）が、減算器８０を介して加算器８１に供給される。そして、加算器８１において、ｃ＝ｘ＋ｆHIGHs（ｖ）が計算される。
【００９２】
第１の手法の詳細な評価結果については図２３を参照して後述するが、第１の手法を用いてLNSの減算を行うことにより、ｆss（ｖ）が０近傍で発散することがないので、テーブルサイズを削減することが可能となる。
【００９３】
ところで、上述した第１の手法では、LNS数の減算を、０近傍の０≦ｖ＜ｖbにおいては、式（１１）に基づくｆLOWs（ｖ）により求め、ｖb≦ｖ＜２５においては、従来と同様の式（５）に基づくｆHIGHs（ｖ）により求めるが、ｆLOWs（ｖ）とｆHIGHs（ｖ）をどこで分けるのが良いか、即ち、ｖbをいくつに設定するのが良いかについては言及していない。このｆLOWs（ｖ）とｆHIGHs（ｖ）を区分するｖbは、図６に示すように、０から２５のうちの所定の範囲で、対数演算部２０内に実際どれくらいのテーブルサイズが必要かどうかを事前に計算した結果から決定する。
【００９４】
図６は、ｖbを１刻みで変更し、各ｖbにおいて必要なテーブルサイズを計算した計算結果の例を示している。
【００９５】
図６の計算結果に含まれるテーブルは、ｆLOWs（ｖ）を求める場合のｆss（ｖ）のテーブルとlog2（ｖ）のテーブル、および、ｆHIGHs（ｖ）を求める場合のｆHIGHs（ｖ）テーブルである。なお、サンプリング点の点数は、各ｖで同一とする。
【００９６】
図６によれば、ｖbを５に設定したときが最もテーブルサイズを小さくすることができることがわかる。従って、０≦ｖ＜５においては、式（１１）に基づくｆLOWs（ｖ）により求め、５≦ｖ＜２５においては、従来と同様の式（５）に基づくｆHIGHs（ｖ）により求めることにより、テーブルサイズを最も小さくすることができる。
【００９７】
なお、最適なｖb値は、LNS数ｘの小数部のビット数F、０≦ｖ＜２５内のサンプリング点数等の諸条件によって異なる場合がある。
【００９８】
次に、第２の手法について説明する。なお、前提条件（F＝２３，ｒ＝２）については第１の手法と同様である。
【００９９】
上述した第１の手法は、０近傍の０≦ｖ＜ｖbにおけるLNS数ｘとｙの減算に対して適用される手法であったが、第２の手法は、反対に、ｖb≦ｖのときのLNS数ｘとｙの減算を行う場合と、LNS数ｘとｙの加算を行う場合に対して適用される手法である。従って、第１の手法と第２の手法は併用が可能である。
【０１００】
まず、Ｖ＝２-vと置き、ｆa（ｖ）およびｆs（ｖ）をＶ＝０でテイラー展開すると、式（１７）および式（１８）のように表すことができる。
【０１０１】
【数８】
2008287645.tif 000010
ここで、Ｏ（Ｖn）は、ｎ次以降の剰余を表す。
【０１０２】
従って、ｆa（ｖ）およびｆs（ｖ）を１次までテイラー展開した式は、式（１９）および式（２０）と表すことができる。
【０１０３】
【数９】
2008287645.tif 000011
【０１０４】
さらに、ｆti（ｖ）を式（２１）のように定義するとともに、式（１９）のＯ（Ｖ2）／ln２に対応する誤差（剰余）をｆa1（ｖ）、式（２０）のＯ（Ｖ2）／ln２に対応する誤差（剰余）をｆs1（ｖ）と置くと、上述した式（１９）および式（２０）は、次の式（２２）および式（２３）と表すことができる。
【０１０５】
【数１０】
2008287645.tif 000012
【０１０６】
式（２２）および式（２３）によれば、ｆa（ｖ）は、ｆt1（ｖ）とｆa1（ｖ）の和として求めることができ、ｆs（ｖ）は、−ｆt1（ｖ）とｆs1（ｖ）の和として求めることができる。
【０１０７】
式（２２）および式（２３）において、ｆa1（ｖ）またはｆs1（ｖ）が左辺となるように変形すると、
【数１１】
2008287645.tif 000013
となる。
【０１０８】
同様に、ｆa（ｖ）およびｆs（ｖ）を２次までテイラー展開した誤差をｆa2（ｖ）およびｆs2（ｖ）と表すと、ｆa2（ｖ）およびｆs2（ｖ）は、次の式（２６）および式（２７）で表すことができる。
【０１０９】
【数１２】
2008287645.tif 000014
【０１１０】
式（２６）および式（２７）を、ｆa（ｖ）およびｆs（ｖ）を求める形に変形すると、
【数１３】
2008287645.tif 000015
となる。
【０１１１】
式（２８）および式（２９）によれば、ｆa（ｖ）は、ｆt1（ｖ）、−ｆt2（ｖ）、およびｆa2（ｖ）の和として求めることができ、ｆs（ｖ）は、−ｆt1（ｖ）、−ｆt2（ｖ）、および、ｆs2（ｖ）の和として求めることができる。
【０１１２】
なお、ｆt1（ｖ）およびｆt2（ｖ）は、上述した式（２１）から、それぞれ、
【数１４】
2008287645.tif 000016
である。
【０１１３】
ｆa（ｖ）、ｆs（ｖ）、ｆt1（ｖ）、ｆa1（ｖ）、ｆs1（ｖ）、ｆt2（ｖ）、ｆa2（ｖ）、およびｆs2（ｖ）のグラフを図７に示す。但し、ｆs（ｖ）、ｆs1（ｖ）、およびｆs2（ｖ）については、正の値となるように、マイナスを乗算した値（−ｆs（ｖ）、−ｆs1（ｖ）、および−ｆs2（ｖ））を示している。
【０１１４】
図７を参照して分かるように、ｖを大きくしたときに、ｆa1（ｖ）および−ｆs1（ｖ）は、ｆa（ｖ）および−ｆs（ｖ）＝−ｆHIGHs（ｖ）よりも早く収束する。このことは、各ｖに対してもつｆa1（ｖ）テーブルおよびｆs1（ｖ）テーブルの実装範囲（テーブルサイズ）が、ｆa（ｖ）テーブルおよびｆs（ｖ）＝ｆHIGHs（ｖ）テーブルよりも少なくて済むことを意味する。
【０１１５】
また、ｆa2（ｖ）および−ｆs2（ｖ）も、ｖを大きくしたとき、ｆa（ｖ）および−ｆs（ｖ）＝−ｆHIGHs（ｖ）よりも早く収束する。このことは、各ｖに対してもつｆa2（ｖ）テーブルおよびｆs2（ｖ）テーブルの実装範囲（テーブルサイズ）が、ｆa（ｖ）テーブルおよびｆs（ｖ）＝ｆHIGHs（ｖ）テーブルよりも少なくて済むことを意味する。
【０１１６】
なお、ｆt1（ｖ）は、ｆa（ｖ）およびｆs（ｖ）と同レベルの収束速度となっているが、ｆt1（ｖ）およびｆt2（ｖ）は、α・２βｖ（α、βは定数）の形式に変形することができるので、区間［０，１）のｆt1（ｖ）テーブルおよびｆt2（ｖ）テーブルのみ実装すればよいため、ｆt1（ｖ）およびｆt2（ｖ）も、テーブルの実装範囲（テーブルサイズ）が少なくて済む。
【０１１７】
従って、１次までのテイラー展開に基づく第２の手法では、LNS数の加算において、ｆa（ｖ）のテーブルを持つのではなく、ｆt1（ｖ）のテーブルとｆa1（ｖ）のテーブルを持つようにして、式（２２）の関係を用いて、ｆa（ｖ）を求める。
【０１１８】
また、１次までのテイラー展開に基づく第２の手法では、ｖb≦ｖのときのLNS数の減算において、ｆHIGHs（ｖ）のテーブルを持つのではなく、ｆt1（ｖ）のテーブルとｆs1（ｖ）のテーブルを持つようにして、式（２３）の関係を用いて、ｆs（ｖ）を求める。ｆt1（ｖ）のテーブルは、ｆa（ｖ）とｆs（ｖ）の演算に共用する。
【０１１９】
２次までのテイラー展開に基づく第２の手法では、LNS数の加算において、ｆa（ｖ）のテーブルを持つのではなく、ｆt1（ｖ）、ｆt2（ｖ）、およびｆa2（ｖ）のテーブルを持つようにして、式（２８）の関係を用いて、ｆa（ｖ）を求める。
【０１２０】
また、２次までのテイラー展開に基づく第２の手法では、ｖb≦ｖのときのLNS数の減算において、ｆHIGHs（ｖ）のテーブルを持つのではなく、ｆt1（ｖ）、ｆt2（ｖ）、およびｆa2（ｖ）のテーブルを持つようにして、式（２９）の関係を用いて、ｆs（ｖ）を求める。ｆt1（ｖ）およびｆt2（ｖ）のテーブルは、ｆa（ｖ）とｆs（ｖ）の演算に共用する。
【０１２１】
なお、以下では、１次までのテイラー展開に基づく第２の手法を第２の（１）の手法と称し、２次までのテイラー展開に基づく第２の手法を第２の（２）の手法と称する。
【０１２２】
次に、第２の（１）の手法または第２の（２）の手法と、第１の手法とを併用した対数演算部２０の構成について、図を参照して説明するが、第２の（１）の手法または第２の（２）の手法と、第１の手法とを併用した場合においても、LNS数ｘとｙの減算を行うときに、第１の手法と、第２の（１）の手法または第２の（２）の手法をどこで使い分けるか事前に決めておく必要がある。即ち、テーブルサイズが最小になるようなｖbを予め決めておく必要がある。
【０１２３】
図８は、第１の手法と第２の（１）の手法とを併用した手法を採用した場合に、対数演算部２０として必要なテーブルサイズを、図６と同様に計算した計算結果の例を示している。なお、以下では、第１の手法と第２の（１）の手法とを併用した手法を、適宜、第２の（１）の併用手法と称する。
【０１２４】
また、図９は、第１の手法と第２の（２）の手法とを併用した手法した場合に、対数演算部２０として必要なテーブルサイズを、図６と同様に計算した計算結果の例を示している。なお、以下では、第１の手法と第２の（２）の手法とを併用した手法を、適宜、第２の（２）の併用手法と称する。
【０１２５】
第２の（１）の併用手法では、図８に示されるように、ｖb1＝４のときにテーブルサイズが最小となり、第２の（２）の併用手法では、図９に示されるように、ｖb1＝３のときにテーブルサイズが最小となる。
【０１２６】
なお、図７を参照して説明したように、ｖを大きくしたときに、ｆa1（ｖ）および−ｆs1（ｖ）は、ｆa（ｖ）および−ｆs（ｖ）＝−ｆHIGHs（ｖ）よりも早く収束するので、第２の（１）の併用手法では、｜ｆa1（１２）｜＝０および｜ｆs1（１２）｜＝０とみなしてよい。したがって、対数演算部２０は、０≦ｖ＜４の減算においては、式（１１）を用いた演算を行い、４≦ｖ＜１２の減算においては、式（２２）を用いた演算を行う。また、０≦ｖ＜１２の加算においては、対数演算部２０は、式（２３）を用いた演算を行う。
【０１２７】
また、ｆa2（ｖ）および−ｆs2（ｖ）は、ｆa1（ｖ）および−ｆs1（ｖ）よりもさらに早く収束するので、第２の（２）の併用手法では、｜ｆa2（８）｜＝０および｜ｆs2（８）｜＝０とみなしてよい。したがって、対数演算部２０は、０≦ｖ＜３の減算においては、式（１１）を用いた演算を行い、３≦ｖ＜８の減算においては、式（２９）を用いた演算を行う。また、０≦ｖ＜８の加算においては、対数演算部２０は、式（２８）を用いた演算を行う。
【０１２８】
図１０は、第２の（１）の併用手法を採用した場合の対数演算部２０の詳細な構成を示すブロック図である。なお、図１０において、図５と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
【０１２９】
fa１テーブル１０１、fs１テーブル１０２、またはfssテーブル１０３は、それぞれ、ｆa1（ｖ）テーブル、ｆs1（ｖ）テーブル、またはｆss（ｖ）テーブルを記憶し、供給されたｖに最も近いサンプリング点ｘl（≦ｖ）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrをマルチプレクサ（MUX）７５または７６に出力する。
【０１３０】
分解部（split）１０４は、差分ｖを整数部ｖiと小数部ｖf（ｖ＝ｖi＋ｖf）に分解し、整数部ｖiをシフト回路（shift）１０６に出力するとともに、小数部ｖfをft１テーブル１０５に出力する。
【０１３１】
ft１テーブル１０５は、区間［０，１）における所定数のサンプリング点それぞれに対するｆt1（ｖ）テーブルを記憶し、供給された小数部ｖfに最も近いサンプリング点ｘl（≦ｖf）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrを補間回路４１ｃに出力する。
【０１３２】
補間回路４１ｃは、図４を参照して説明した補間回路４１の構成を有し、入力されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrに基づいて２次補間演算を実行し、その結果としての２次補間値ｆhat（ｘl＋ｘr）であるｆt1（ｖf）をシフト回路１０６に出力する。
【０１３３】
シフト回路１０６は、補間回路４１ｃの出力であるｆt1（ｖf）を差分ｖの整数部ｖiだけ右シフトする。即ち、シフト回路１０６は、ｆt1（ｖf）をｖiで除算する。
【０１３４】
マルチプレクサ（MUX）１０７は、制御部１０９からの制御に従い、加算器７８からの出力である｛ｉ＋log2（ｖ／２i）｝か、または、シフト回路１０６の出力であるｆt1（ｖf）／ｖiのいずれかを選択し、加減算器１０８に出力する。より具体的には、マルチプレクサ１０７は、０≦ｖ＜４におけるLNS数ｘとｙの減算を行う場合には、加算器７８からの出力である｛ｉ＋log2（ｖ／２i）｝を選択して加減算器１０８に出力し、LNS数ｘとｙの加算を行う場合には、シフト回路１０６の出力であるｆt1（ｖf）／ｖiを選択して加減算器１０８に出力する。
【０１３５】
加減算器１０８は、制御部１０９からの制御に従い、補間回路４１ａからの出力と、マルチプレクサ１０７からの出力との加算または減算を行い、その結果を加算器８１に出力する。
【０１３６】
制御部１０９は、LNS数ｘとｙの加算を行うかまたは減算を行うか、さらに、LNS数ｘとｙの減算を行う場合には、０近傍の０≦ｖ＜４における減算であるか、または、４≦ｖ＜１２における減算であるかに応じて、マルチプレクサ７５、７６、１０７、または加減算器１０８を制御する。
【０１３７】
より具体的には、LNS数ｘとｙの加算を行う場合、制御部１０９は、fa１テーブル１０１から読み出されたデータを選択するようにマルチプレクサ７６を制御し、シフト回路１０６の出力であるｆt1（ｖf）／ｖiを選択するようにマルチプレクサ１０７を制御する。また、加減算器１０８における補間回路４１ａからの入力をInput1、マルチプレクサ１０７からの入力をInput2とすると、制御部１０９は、−Input1＋Input2を演算させるように加減算器１０８を制御する。
【０１３８】
これにより、加減算器１０８において、式（２２）で表されるｆa（ｖ）が求められ、加算器８１において、ｃ＝ｘ＋ｆa（ｖ）が計算される。
【０１３９】
一方、０≦ｖ＜４におけるLNS数ｘとｙの減算を行う場合、制御部１０９は、fssテーブル１０３から読み出されたデータを選択するようにマルチプレクサ７５を制御し、マルチプレクサ７５からの出力を選択するようにマルチプレクサ７６を制御する。また、制御部１０９は、加算器７８からの出力である｛ｉ＋log2（ｖ／２i）｝を選択するようにマルチプレクサ１０７を制御するとともに、Input1−Input2を演算させるように加減算器１０８を制御する。
【０１４０】
これにより、加減算器１０８において、式（１１）で表されるｆs（ｖ）が求められ、加算器８１において、ｃ＝ｘ＋ｆs（ｖ）が計算される。
【０１４１】
また、４≦ｖ＜１２におけるLNS数ｘとｙの減算を行う場合、制御部１０９は、fs１テーブル１０２から読み出されたデータを選択するようにマルチプレクサ７５を制御し、マルチプレクサ７５からの出力を選択するようにマルチプレクサ７６を制御する。また、制御部１０９は、シフト回路１０６の出力であるｆt1（ｖf）／ｖiを選択するようにマルチプレクサ１０７を制御するとともに、Input1＋Input2を演算させるように加減算器１０８を制御する。
【０１４２】
これにより、加減算器１０８において、式（２３）で表されるｆs（ｖ）が求められ、加算器８１において、ｃ＝ｘ＋ｆs（ｖ）が計算される。
【０１４３】
なお、シフト回路７４から加算器７８までのlog2（ｖ）の演算と、分解部１０４からシフト回路１０６までのｆt1（ｖ）の演算は、そのいずれか一方を、ｆa（ｖ）を求めるかまたはｆs（ｖ）を求めるかに応じて行えば足りるので、補間回路４１ｂと４１ｃを１つの補間回路４１で共用することが可能である。この場合、共用する補間回路４１の前段に、ｆa（ｖ）を求めるかまたはｆs（ｖ）を求めるかに応じて、logテーブル７７からのデータを入力とするか、または、ft１テーブル１０５からのデータを入力とするかを選択するマルチプレクサが設けられる。
【０１４４】
図１１は、第２の（２）の併用手法を用いた場合の対数演算部２０の詳細な構成を示すブロック図である。図１１において、図１０と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
【０１４５】
fa２テーブル１２１、fs２テーブル１２２、またはfssテーブル１２３は、それぞれ、ｆa2（ｖ）テーブル、ｆs2（ｖ）テーブル、またはｆss（ｖ）テーブルを記憶し、供給されたｖに最も近いサンプリング点ｘl（≦ｖ）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrをマルチプレクサ（MUX）７５または７６に出力する。
【０１４６】
分解部（split）１２４は、差分ｖを整数部ｖiと小数部ｖf（ｖ＝ｖi＋ｖf）に分解し、整数部ｖiをシフト回路（shift）１０６に出力し、小数部ｖfをft１テーブル１０５とft2テーブル１２５に出力する。
【０１４７】
ft２テーブル１２５は、区間［０，１）における所定数のサンプリング点それぞれに対するｆt2（ｖ）テーブルを記憶し、供給された小数部ｖfに最も近いサンプリング点ｘl（≦ｖf）のｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrを補間回路４１ｄに出力する。
【０１４８】
補間回路４１ｄは、図４を参照して説明した補間回路４１の構成を有し、入力されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrに基づいて２次補間演算を実行し、その結果としての２次補間値ｆhat（ｘl＋ｘr）であるｆt2（ｖf）を加減算器１２６に出力する。
【０１４９】
加減算器１２６は、制御部１２７からの制御に従い、補間回路４１ｃからの出力と、補間回路４１ｄからの出力との加算または減算を行い、その結果をシフト回路１０６に出力する。
【０１５０】
シフト回路１０６は、加減算器１２６の出力結果を差分ｖの整数部ｖiだけ右シフトする。
【０１５１】
制御部１２７は、LNS数ｘとｙの加算を行うかまたは減算を行うか、さらに、LNS数ｘとｙの減算を行う場合には、０近傍の０≦ｖ＜３における減算であるか、または、３≦ｖ＜８における減算であるかに応じて、マルチプレクサ７５、７６、１０７、加減算器１０８、または加減算器１２６を制御する。
【０１５２】
より具体的には、LNS数ｘとｙの加算を行う場合、制御部１２７は、fa２テーブル１２１から読み出されたデータを選択するようにマルチプレクサ７６を制御する。また、制御部１２７は、加減算器１２６における補間回路４１ｃからの入力をInput3、補間回路４１ｄからの入力をInput4とすると、Input3−Input4を演算させるように加減算器１２６を制御する。マルチプレクサ１０７と加減算器１０８の制御については、図１０における場合と同様である。
【０１５３】
これにより、加減算器１０８において、式（２８）で表されるｆa（ｖ）が求められ、加算器８１において、ｃ＝ｘ＋ｆa（ｖ）が計算される。
【０１５４】
一方、０≦ｖ＜３におけるLNS数ｘとｙの減算を行う場合、制御部１２７は、fssテーブル１２３から読み出されたデータを選択するようにマルチプレクサ７５を制御し、マルチプレクサ７５からの出力を選択するようにマルチプレクサ７６を制御する。マルチプレクサ１０７と加減算器１０８の制御については、図１０における場合と同様である。
【０１５５】
これにより、加減算器１０８において、式（１１）で表されるｆs（ｖ）が求められ、加算器８１において、ｃ＝ｘ＋ｆs（ｖ）が計算される。
【０１５６】
また、３≦ｖ＜８におけるLNS数ｘとｙの減算を行う場合、制御部１２７は、fs２テーブル１２２から読み出されたデータを選択するようにマルチプレクサ７５を制御し、マルチプレクサ７５からの出力を選択するようにマルチプレクサ７６を制御する。また、制御部１２７は、Input3＋Input4を演算させるように加減算器１２６を制御する。マルチプレクサ１０７と加減算器１０８の制御については、図１０における場合と同様である。
【０１５７】
これにより、加減算器１０８において、式（２９）で表されるｆs（ｖ）が求められ、加算器８１において、ｃ＝ｘ＋ｆs（ｖ）が計算される。
【０１５８】
図１１の対数演算部２０においても、補間回路４１ｂと補間回路４１ｃまたは４１ｄとを共用することが可能である。
【０１５９】
次に、図１２のフローチャートを参照して、図１１の対数演算部２０による対数演算処理について説明する。
【０１６０】
初めに、ステップＳ１において、減算器７０は、LNS数ｘからyを引いた差分ｖ（＝ｘ−ｙ）を演算し、fa２テーブル１２１、fs２テーブル１２２、fssテーブル１２３、シフト回路７４、および分解部１２４に出力する。
【０１６１】
ステップＳ２において、fa２テーブル１２１、fs２テーブル１２２、およびfssテーブル１２３のそれぞれは、供給されたｖに対応するデータ、即ち、ｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr（＝ｖ−ｘl）、およびｘdrを出力する。
【０１６２】
ステップＳ３において、制御部１２７は、マルチプレクサ７５または７６を制御する。これにより、fa２テーブル１２１、fs２テーブル１２２、およびfssテーブル１２３から読み出されたデータのうちのいずれか１つが補間回路４１ａに供給される。
【０１６３】
ステップＳ４において、補間回路４１ａは、入力されたｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrに基づいて２次補間演算を実行し、その結果としての２次補間値ｆhat（ｘl＋ｘr）を加減算器１０８に出力する。ここでのｆhat（ｘl＋ｘr）は、ｆa2（ｖ）、ｆs2（ｖ）、またはｆss（ｖ）のいずれかに相当する。
【０１６４】
ステップＳ５において、シフト回路７４は、（ｖ／２i）が１以上２より小さい値となるまでｉビットシフトし、ビットシフトの回数ｉを加算器７８に出力するとともに、ｉビットシフト後の（ｖ／２i）をlogテーブル７７に出力する。
【０１６５】
ステップＳ６において、logテーブル７７は、供給された（ｖ／２i）に対応するｆ（ｘl），Chat1（ｘl），Chat2（ｘl），ｘr、およびｘdrを補間回路４１ｂに出力し、補間回路４１ｂは、その２次補間値ｆhat（ｘl＋ｘr）であるlog2（ｖ／２i）を演算し、加算器７８に出力する。
【０１６６】
ステップＳ７において、加算器７８は、ｉ＋log2（ｖ／２i）を演算し、マルチプレクサ１０７に出力する。
【０１６７】
ステップＳ８において、分解部１０４は、差分ｖを整数部ｖiと小数部ｖf（ｖ＝ｖi＋ｖf）に分解する。整数部ｖiは、シフト回路１０６に供給されるとともに、小数部ｖfはft１テーブル１０５およびft２テーブル１２５に供給される。
【０１６８】
ステップＳ９において、補間回路４１ｃは、小数部ｖfに対応する２次補間値ｆt1（ｖf）を演算する。そして、ステップＳ１０において、補間回路４１ｄは、小数部ｖfに対応する２次補間値ｆt2（ｖf）を演算する。
【０１６９】
ステップＳ１１において、加減算器１２６は、制御部１２７の制御に従い、補間回路４１ｃからの入力であるInput3と、補間回路４１ｄからの入力であるInput4とを用いた演算を行う。即ち、加減算器１２６は、LNS数ｘとｙの加算を行う場合には、Input3−Input4を演算し、３≦ｖ＜８におけるLNS数ｘとｙの減算を行う場合には、Input3＋Input4を演算する。なお、０≦ｖ＜３におけるLNS数ｘとｙの減算を行う場合には、制御部１２７は、加減算器１２６については関知しない。
【０１７０】
ステップＳ１２において、シフト回路１０６は、ｆt1（ｖf）をｖiで除算する。
【０１７１】
ステップＳ１３において、制御部１２７は、マルチプレクサ１０７を制御する。制御部１２７の制御により、マルチプレクサ１０７は、LNS数ｘとｙの加算を行う場合と３≦ｖ＜８におけるLNS数ｘとｙの減算を行う場合には、シフト回路１０６からの出力を選択して加減算器１０８に出力し、０≦ｖ＜３におけるLNS数ｘとｙの減算を行う場合には、加算器７８からの出力を選択して加減算器１０８に出力する。
【０１７２】
ステップＳ１４において、加減算器１０８は、制御部１２７の制御に従い、補間回路４１ａからの入力であるInput1と、マルチプレクサ１０７からの入力であるInput2とを用いた加減算を行う。具体的には、加減算器１０８は、LNS数ｘとｙの加算を行う場合、−Input1＋Input2を演算し、０≦ｖ＜３におけるLNS数ｘとｙの減算を行う場合、Input1−Input2を演算し、４≦ｖ＜１２におけるLNS数ｘとｙの減算を行う場合、Input1＋Input2を演算する。その結果、LNS数ｘとｙの加算ではｆa（ｖ）が、LNS数ｘとｙの減算ではｆs（ｖ）が、加算器８１に供給される。
【０１７３】
ステップＳ１５において、加算器８１は、LNS数ｘと、マルチプレクサ１０８からの出力であるｆs（ｖ）またはｆa（ｖ）とを加算し、LNS数ｘとｙの加算結果、即ちｘ＋ｆa（ｖ）か、または、減算結果、即ちｘ＋ｆs（ｖ）を出力して、処理を終了する。
【０１７４】
なお、上述した対数演算処理において、ステップＳ２乃至Ｓ４の処理と、ステップＳ５乃至Ｓ７の処理、およびステップＳ８乃至Ｓ１２の処理は並行に行うことが可能である。
【０１７５】
次に、第１の手法、第２の（１）の併用手法、または第２の（２）の併用手法を採用した場合に対数演算部２０に必要なテーブルサイズを実際に計算し、従来の手法と比較考察する。
【０１７６】
初めに、第１の手法、第２の（１）の併用手法、または第２の（２）の併用手法のそれぞれについて、必要なテーブルサイズを計算した計算結果を、図１３乃至図２２に示す。
【０１７７】
図１３は、第１の手法を採用した場合に、対数演算部２０に必要なテーブルサイズを示している。
【０１７８】
図１３の“func”の項目はテーブル名を表し、“ｆa”は図５の対数演算部２０のfaテーブル７１を、“ｆs”はfsテーブル７２を、“ｆss”はfssテーブル７３を、“log2”はlogテーブル７７をそれぞれ表している。“range”の項目は、各テーブルが有する差分ｖの範囲を表し、“Ａ”の項目は、各テーブルのテーブルサイズを表す。
【０１７９】
faテーブル７１、fsテーブル７２、またはfssテーブル７３についての詳細な計算結果が、それぞれ、図１４、図１５、または図１６に示されている。
【０１８０】
図１３に示されるfaテーブル７１の１１５４７ビットは、図１４に示される０≦ｖ＜２５のすべてのテーブルサイズの合計に相当し、図１３に示されるfsテーブル７２の３５４３ビットは、図１５に示される５≦ｖ＜２５のテーブルサイズの合計に相当し、図１３に示されるfssテーブル７３の４４１６ビットは、図１６に示される０≦ｖ＜５のテーブルサイズの合計に相当する。logテーブル７７のテーブルサイズは６７８４ビットである。
【０１８１】
以上より、第１の手法を採用した場合に、対数演算部２０に必要なテーブルサイズは、図１３に示されるように、２６２９０ビットとなる。
【０１８２】
なお、図１４の各項目について説明すると、“Ｗf”，“Ｗc1”，または“Ｗc2”の項目は、それぞれ、ｆ（ｘl），Chat1（ｘl），またはChat2（ｘl）の１サンプリング点あたりのワードサイズ（ビット）を表し、“Ｗ”の項目は、“Ｗf”，“Ｗc1”，および“Ｗc2”の和を表す。また、“Ｌ”の項目は、各ｖの範囲内に設定されたサンプリング点の点数（エントリ数）を表す。従って、各ｖの範囲のテーブルサイズ“Ａ”は、“Ｗ”×“Ｌ”で求められる。例えば、図１４において、０≦ｖ＜１のテーブルサイズ“Ａ”は、Ａ＝Ｗ×Ｌ＝１６９６ビットである。
【０１８３】
その他の図のテーブルサイズの表記も、図１３または図１４と同様である。
【０１８４】
図１７は、第２の（１）の併用手法を採用した場合に、対数演算部２０に必要なテーブルサイズを示している。
【０１８５】
図１７の“ｆa1”は図１０の対数演算部２０のfa１テーブル１０１を、“ｆs1”はfs１テーブル１０２を、“ｆss”はfssテーブル１０３を、“log2”はlogテーブル７７を、“ｆt1”はft１テーブル１０５をそれぞれ表している
【０１８６】
また、図１８または図１９は、fa１テーブル１０１またはfs１テーブル１０２の詳細なデータをそれぞれ示している。
【０１８７】
図１７のfa１テーブル１０１に必要なテーブルサイズである１０１５３ビットは、図１８に示される０≦ｖ＜１２のテーブルサイズの合計に相当し、図１７のfs１テーブル１０２に必要なテーブルサイズである１２５７ビットは、図１９に示される４≦ｖ＜１２のテーブルサイズの合計に相当する。また、fssテーブル１０３の３５２０ビットは、図１６に示される０≦ｖ＜４のテーブルサイズの合計に相当する。logテーブル７７のテーブルサイズは、第１の手法と同様の６７８４ビットであり、ft１テーブル１０５のテーブルサイズが３２６４ビットである。
【０１８８】
以上より、第２の（１）の手法を採用した場合に、対数演算部２０に必要なテーブルサイズは、図１７に示されるように、２４９７８ビットとなる。
【０１８９】
図２０は、第２の（２）の併用手法を採用した場合に、対数演算部２０に必要なテーブルサイズを示している。
【０１９０】
図２０の“ｆa2”は図１１の対数演算部２０のfa２テーブル１２１を、“ｆs2”はfs２テーブル１２２を、“ｆss”はfssテーブル１２３を、“log2”はlogテーブル７７を、“ｆt1”はft１テーブル１０５を、“ｆt2”はft２テーブル１２５をそれぞれ表している
【０１９１】
また、図２１または図２２は、fa２テーブル１２１またはfs２テーブル１２２の詳細なデータをそれぞれ示している。
【０１９２】
図２０のfa２テーブル１２１に必要なテーブルサイズである１１０１１ビットは、図２１に示される０≦ｖ＜８のテーブルサイズの合計に相当し、図２０のfs２テーブル１２２に必要なテーブルサイズである９０３ビットは、図２２に示される３≦ｖ＜８のテーブルサイズの合計に相当する。また、fssテーブル１２３の２６２４ビットは、図１６に示される０≦ｖ＜３のテーブルサイズの合計に相当する。
【０１９３】
logテーブル７７のテーブルサイズとft１テーブル１０５のテーブルサイズは、第２の（１）の併用手法を採用した場合と同様の６７８４ビットと３２６４ビットであり、ft２テーブル１２５のテーブルサイズは６５２８ビットとなる。
【０１９４】
以上より、第２の（２）の併用手法を採用した場合に、対数演算部２０に必要なテーブルサイズは、３１１１４ビットとなる。
【０１９５】
図１３、図１７、および図２０に示した各手法における総合計のテーブルサイズと、従来の手法によるテーブルサイズを比較した比較結果を図２３に示す。
【０１９６】
図２３において、“ｆa”は、LNS数の加算のみに用いられるテーブル、即ち、第１の手法ではfaテーブル７１、第２の（１）の併用手法ではfa１テーブル１０１、第２の（２）の併用手法ではfa２テーブル１２１のテーブルサイズに対応し、“ｆs”は、LNS数の減算のみに用いられるテーブル、即ち、第１の手法ではfsテーブル７２、fssテーブル７３、およびlogテーブル７７、第２の（１）の併用手法ではfs１テーブル１０２、fssテーブル１０３、およびlogテーブル７７、第２の（２）の併用手法では、fs２テーブル１２２、fssテーブル１２３、およびlogテーブル７７のテーブルサイズに対応する。
【０１９７】
また、図２３において、“その他”は、LNS数の加減算両方に用いられるテーブル、即ち、第２の（１）の併用手法ではft１テーブル１０５、第２の（２）の併用手法ではft１テーブル１０５およびft2テーブル１２５のテーブルサイズに対応する。
【０１９８】
対数演算部２０が行う本手法と比較する従来の手法としては、“Taylor”の手法、“Lewis89”の手法、および“Lewis94”の手法を選択した。
【０１９９】
“Taylor”の手法は、差分ｖを１ないしは０．５刻みで分割することにより、テーブルサイズを減らす手法である。“Lewis89”の手法は、いくつかの式変形と線形補間を利用したテーブル圧縮を行うことによりテーブルサイズを減らす手法である。“Lewis94”の手法は、通常のテーブルにrotatorを接続した回路と２次補間を利用した手法である。“Lewis94”の手法の“ｆa”および“ｆs”のテーブルサイズは、全体のテーブルサイズとエントリ数から推定した。
【０２００】
なお、“Taylor”の手法については、「F. J. Taylor R. Gill, J. Joseph and J. Radke “A 20 Bit Logarithmic Number System Processor,” IEEE Trans. Comput., Vol.37, No.2, Feb. 1988.」に、“Lewis89”の手法については「D. M. Lewis and L. K. Yu, “Algorithm design for a 30-bit integrated logarithmic processor,” Proc. 9th IEEE Symp. Compuf. Arithmec, pp.192-199, 1989.」に、“Lewis94”の手法については、「D. M. Lewis, “Interleaved Memory Function Interpolators with Application to an Accurate LNS Arithmetic Unit,” IEEE Trans. Comput., vol. 43, No. 8, pp. 974-982, Aug. 1994.」にその詳細が記載されている。
【０２０１】
図２３を参照して分かるように、本手法のいずれにおいても従来の手法のほぼ１／３のテーブルサイズを実現することが可能である。また、第１の手法、第２の（１）の併用手法、および第２の（２）の併用手法のなかでは、第２の（１）の併用手法が最も少ないテーブルサイズを実現する。
【０２０２】
次に、本手法と従来の手法とで回路実装したときの遅延について比較考察する。
【０２０３】
遅延は、主にテーブル参照と乗算の回数に依存するので、本手法と従来の手法においてクリティカルパスを求め、そのテーブル参照の回数と乗算の回数で遅延を比較する。
【０２０４】
本手法のクリティカルパスは、第１の手法、第２の（１）の併用手法、および第２の（２）の併用手法のいずれにおいても、テーブル参照１回、乗算２回、加減算３回、および可変シフト１回である。
【０２０５】
一方、“Lewis89”の手法のクリティカルパスは、テーブル参照２回、乗算２回、加算４回と、“Lewis94”の手法のクリティカルパスは、テーブル参照１回、乗算２回、加減算４回、および可変シフト２回である。なお、“Taylor”の手法については、小数部F＝１２から２３ビットに拡張すると、テーブルサイズが膨大になるため、遅延は評価しない。
【０２０６】
従って、遅延について言えば、本手法は、“Lewis89”の手法や“Lewis94”の手法と同程度であると考えられる。
【０２０７】
次に、テーブルサイズが最も少なくて済む第２の（１）の併用手法について論理合成し、その結果得られた面積を図２４に示す。
【０２０８】
図２４において、“ROM（A）”は、fa１テーブル１０１、fs１テーブル１０２、およびfssテーブル１０３を格納するROM（Read Only Memory）である。“ROM(BC)”は、logテーブル７７およびft１テーブル１０５を格納するROMである。“補間A”は、補間回路４１ａに対応し、“補間BC”は、補間回路４１ｂと補間回路４１ｃを共用する補間回路４１に対応する。また、“shift1”はシフト回路７４に、“shift2”はシフト回路１０６にそれぞれ対応する。“addsub”は、加減算器１０８に対応する。
【０２０９】
第２の（１）の併用手法の回路全体の面積は、図２４に示すように、789,852μｍ2であり、そのうちROMの面積は232,498＋149,909＝382,407μｍ2である。
【０２１０】
これに対して、従来の手法のなかで、最もコストの低い“Lewis94”の手法のテーブルサイズは、図２３に示したように第２の（１）の併用手法の約3.5倍であるので、“Lewis94”の手法のROMの面積は約1,338,000μｍ2であり、これに演算回路の面積が加わる。“Lewis94”の演算回路として、少なくとも補間回路４１ａ程度の回路を仮定してよいから、補間回路４１ａの面積約154,000μｍ2を加えることにより、“Lewis94”の回路全体の面積は、約1,492,000μｍ2と見積もることができる。従って、第２の（１）の併用手法の回路全体の面積は、“Lewis94”の回路全体の面積の約５３％である。即ち、本手法は、従来の手法よりも回路全体の面積も少なくすることができる。
【０２１１】
以上のように、対数演算部２０は、少ないテーブルサイズでLNSの加減算（演算）を行うことができる。即ち、LNS数の演算を簡単に行うことができる。その結果、信号処理装置１全体としても、より少ないテーブルサイズで、より簡単な構成として実現することが可能である。
【０２１２】
なお、上述した例では、対数演算部２０の各テーブルには、絶対値を記憶させるようにしたが、負の値を記憶させるようにすることもできる。各テーブルに正の値を記憶させるか、または、負の値を記憶させるかにより、制御部１０９または制御部１２７は、加減算器１０８および１２６の加減算を適宜変更する。即ち、各テーブルから読み出された値を用いて、上述した式（１１）、式（２２）、式（２３）、式（２８）、および式（２９）が計算されるようにすれば、各テーブルには、正負のいずれの値を記憶してもよい。
【０２１３】
対数演算部２０は、上述したように、AGC処理を行う信号処理装置の一部として対数演算回路として組み込むものでもよいし、信号処理装置とは別個独立に対数演算装置として構成し、入力されるLNS数ｘとｙに対して、LNS数の加減算処理を実行し、出力するものでもよい。
【０２１４】
このような対数演算回路または対数演算装置は、上述したAGC処理を行う信号処理装置のほかに、ミュージックシンセサイザー、航空機制御、カメラの制御、FIR(Finite Impulse Response）フィルタ、グラフィックス、ニューラルネットワーク、FFT(Fast Fourier Transform)、サポートベクターマシンでの認識処理などの様々な処理を行う情報処理装置で採用することが可能である。
【０２１５】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２１６】
【図１】ｆa（ｖ）およびｆs（ｖ）のグラフを示す図である。
【図２】本発明を適用した信号処理装置の一実施の形態の構成例を示すブロック図である。
【図３】ｆss（ｖ）のグラフを示す図である。
【図４】補間回路の構成例を示すブロック図である。
【図５】図１の対数演算部の第１の詳細な構成を示すブロック図である。
【図６】第１の手法を採用した場合の最適なｖbについて説明する図である。
【図７】第２の手法に必要なテーブルを示す図である。
【図８】第２の（１）の併用手法を採用した場合の最適なｖb1について説明する図である。
【図９】第２の（２）の併用手法を採用した場合の最適なｖb2について説明する図である。
【図１０】図１の対数演算部の第２の詳細な構成を示すブロック図である。
【図１１】図１の対数演算部の第３の詳細な構成を示すブロック図である。
【図１２】対数演算処理について説明するフローチャートである。
【図１３】第１の手法を採用した場合のテーブルサイズを示す図である。
【図１４】faテーブルのテーブルサイズの詳細を示す図である。
【図１５】fsテーブルのテーブルサイズの詳細を示す図である。
【図１６】fssテーブルのテーブルサイズの詳細を示す図である。
【図１７】第２の（１）の併用手法を採用した場合のテーブルサイズを示す図である。
【図１８】fa1テーブルのテーブルサイズの詳細を示す図である。
【図１９】fs1テーブルのテーブルサイズの詳細を示す図である。
【図２０】第２の（２）の併用手法を採用した場合のテーブルサイズを示す図である。
【図２１】fa2テーブルのテーブルサイズの詳細を示す図である。
【図２２】fs2テーブルのテーブルサイズの詳細を示す図である。
【図２３】本手法と従来の手法のテーブルサイズの比較結果を示す図である。
【図２４】第２の（１）の併用手法の論理合成の結果を示す図である。
【符号の説明】
【０２１７】
１  信号処理装置，  ２０  対数演算部，  ７１  faテーブル，  ７２  fsテーブル，  ７３  fssテーブル，  ７７  logテーブル，  ８０  減算器
【図１】
2008287645.tif 000017
【図２】
2008287645.tif 000018
【図３】
2008287645.tif 000019
【図４】
2008287645.tif 000020
【図５】
2008287645.tif 000021
【図６】
2008287645.tif 000022
【図７】
2008287645.tif 000023
【図８】
2008287645.tif 000024
【図９】
2008287645.tif 000025
【図１０】
2008287645.tif 000026
【図１１】
2008287645.tif 000027
【図１２】
2008287645.tif 000028
【図１３】
2008287645.tif 000029
【図１４】
2008287645.tif 000030
【図１５】
2008287645.tif 000031
【図１６】
2008287645.tif 000032
【図１７】
2008287645.tif 000033
【図１８】
2008287645.tif 000034
【図１９】
2008287645.tif 000035
【図２０】
2008287645.tif 000036
【図２１】
2008287645.tif 000037
【図２２】
2008287645.tif 000038
【図２３】
2008287645.tif 000039
【図２４】
2008287645.tif 000040