(57)【特許請求の範囲】
【請求項１】
０以上１未満の入力データを二乗する二乗手段と、
該二乗手段の出力データの反転されたデータと前記入力データとを加算する第１の加算手段と、
該第１の加算手段の出力データの小数点以下のデータを右側へ２ビットシフトするシフト手段と、
前記入力データと前記シフト手段の出力データとを加算する第２の加算手段とを具備することを特徴とするログの近似値の計算回路。
【請求項２】
０以上１未満の入力データを二乗する二乗手段と、
該二乗手段の出力データの反転されたデータと前記入力データとを加算する第１の加算手段と、
該第１の加算手段の出力データを３で割る乗算手段と、
前記入力データと前記乗算手段の出力データとを加算する第２の加算手段とを具備することを特徴とするログの近似値の計算回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はログの近似値の計算回路に関し、特に近似値のエラー量を減少させることができるログの近似値の計算方法およびその回路に関する。
【０００２】
【従来の技術】
オーディオ信号において人間の耳で感じられる信号の変化はその信号のログ値に比例して変化する。したがって、オーディオ信号の処理において能動的な効果音を作り出すためにはログ演算器が必要になる。しかし、その正確な演算のためのディジタル演算回路は大変複雑であり、その回路規模が大きくなって実際の回路の実現には困難が伴う。
【０００３】
従って、実際のディジタル回路においては、ログ演算は近似式を使って簡略的に構成される。その方法は以下に示すとおりである。
【０００４】
ログの底を２とし、ある数Ｎに対するログの演算結果をＬ（Ｎ）、近似式によって得られる値をＬＡ（Ｎ）とする。ここで、底として２を選択したのはディジタル回路は２進数で処理することが基本で、近似値の計算においても大変便利だからである。
【０００５】
図７は、Ｌ（Ｎ）の理論値による曲線と、Ｌ（Ｎ）の近似値による曲線ＬＡ（Ｎ）を示した図である。
【０００６】
図７において、Ｌ（Ｎ）は２を底とするログ（以下、２進ログという）の曲線であるので、Ｌ（Ｎ）の値が整数となるＮ＝１、２、４、８の点を連結した直線によりＬＡ（Ｎ）を表わしている。
【０００７】
下記の表１は整数Ｎ＝８〜１６についてログ値の近似値を１０進数と２進数によって示したものである。
【０００８】
【表１】
0003768613.tif 000002
表１において、整数Ｎと近似値ＬＡ（Ｎ）の２進表現を比較して見ると、次のことがわかる。
【０００９】
第一に、ＬＡ（Ｎ）の整数の部分はＮの全体のビットにおいて一番左側にある“１”より右側にあるビットの個数と同じである。この個数を指数と呼ぶ。
【００１０】
第二に、ＬＡ（Ｎ）の小数の部分はＮの一番左側にある“１”より右にあるビット列から構成される。この値を仮数と呼ぶ。
【００１１】
例えば、８ビットの２進数Ｎ＝１０１１０１１０に対する２進ログの近似値を求めて見ると、一番左側の“１”より右側にあるビットの個数は７であるので、２進指数の値は“１１１”であり、このビットを除外した残りのビットの値である“０１１０１１０”が近似値の仮数になる。
【００１２】
すなわち、
Ｎ＝１０１１０１１０
ＬＡ（Ｎ）＝１１１.０１１０１１
である。
【００１３】
Ｎ＞１の値に対して２進数の値は次のように表現できる。
【００１４】
Ｎ＝２k ×（１＋ｘ）  ……（１）
ここで、ｋの値は一番左側にある“１”の次の桁から小数点まで（小数点より上）のビットの個数であり、ｘは一番左側にある“１”を除外した残りのビットから構成されるが、ｘ＜１であるので、一番左側にある“１”の代りに小数点を加える。例えばＮ＝１０１１０.１０１の場合、ｋ＝４、ｘ＝０.０１１０１０１となるので、Ｎ＝２4×（１＋０.０１１０１０１）と表わすことができる。
【００１５】
従って、Ｎ＞１の整数に対してログ値Ｌ（Ｎ）は、次のように表わすことができる。
【００１６】
Ｌ（Ｎ）＝ｋ＋Ｌ（１＋ｘ）  ……（２）
また、この式によるログの近似値ＬＡ（Ｎ）は、下記の式によって示すことができる。
【００１７】
ＬＡ（Ｎ）＝ｋ＋ｘ  ……（３）
２進数のＮに対して近似ログ値ＬＡ（Ｎ）を求めるためのｋ及びｘの計算は簡単なシフト機能とカウント機能によって実現することができる。
【００１８】
一方、式（３）により求められるログの近似値のエラー値Ｅ（ｘ）は、次のようになる。
【００１９】
0003768613.tif 000003
すなわち、エラー値Ｅ（ｘ）はｋとは独立であり、ｘにのみ依存する。
【００２０】
図８は近似値のエラー値Ｅ（ｘ）の曲線を示しているもので、エラー値Ｅ（ｘ）はすべての領域において負（−）でない値をもっており、ｘ＝０.４４においてＥmax ＝０.０８６の最大エラーが発生し、ｘ＝０においてＥmin ＝０の最小エラーが発生する。
【００２１】
【発明が解決しようとする課題】
このような近似計算に基づいて構成される回路は、あまり複雑ではないので、近似計算により生じるエラーの量を減らして近似計算の精度を高める努力が講じられて来た。しかし、近似計算値を補正するアルゴリズムは複雑であり、結局、回路量が増加して実際の回路に適用するのが困難であるという問題点があった。
【００２２】
本発明の目的は、近似値のエラー値を最小にすることができるログ近似値の計算方法及び計算回路を提供することにある。
【００２３】
【課題を解決するための手段】
本発明に係るログの近似値の計算方法は、０以上１未満の入力データの二乗を求める段階と、前記入力データから前記入力データの二乗されたデータを減算する減算段階と、該減算段階の出力データを４で割る除算段階と、該除算段階の出力データと前記入力データを加算する加算段階とを備えたことを特徴とする。
【００２４】
本発明に係るログの近似値の計算回路は、０以上１未満の入力データを二乗する二乗手段と、該二乗手段の出力データの反転されたデータと前記入力データとを加算する第１の加算手段と、この第１の加算手段の出力データの小数点以下のデータを右側へ２ビットシフトするシフト手段と、前記入力データと前記シフト手段の出力データとを加算する第２の加算手段とを備えたことを特徴とする。
【００２５】
【発明の実施の形態】
以下、添附図面を参照して本発明によるログ近似値の計算方法およびその回路について説明する。
【００２６】
本発明は、近似値計算から発生するエラー量を補正するために、ログの曲線と特性が類似した関数を使用する。
【００２７】
図１は０≦ｘ＜１である数ｘに対する関数のグラフを示しているもので、曲線Ａはｙ＝ｘ、曲線Ｂはｙ＝ｘ2、曲線Ｃはｙ＝ｘ−ｘ2のグラフである。
【００２８】
図１において、曲線Ｃは、曲線Ａと曲線Ｂとの差を示している曲線であり、この曲線は図８に示されたエラー値Ｅ（ｘ）の曲線と類似している。
【００２９】
この曲線の大きさを実験式により適当な大きさに調整すると、図８のエラー曲線と殆ど同じ曲線を得られ、式（４）からもわかるように、この曲線と図８のｘとを加算すると、元のログ値Ｌ（１＋ｘ）と類似している曲線を得ることができる。
【００３０】
近似ログの演算式とエラー量を求める式は、次のとおりである。
【００３１】
【数１】
0003768613.tif 000004
式（６）によると、Ｅ1はｘ＝０.２においてＥ1max＝０.００９７の値を有する。この値は図８のエラー曲線におけるエラー最大値Ｅmax＝０.０８６に比べて、８.９倍程度のエラー減少効果がある。
【００３２】
図２はログ値Ｌ（１＋ｘ）と本発明によるログ近似値ＬＡ1（ｘ）の曲線を示しているものであり、図３は本発明による補正後のエラー値Ｅ1（ｘ）の曲線を示しているものである。
【００３３】
図３において、エラーが最大になるところは、ｘ＝０.２、０.８である箇所であり、そのときのエラー量はそれぞれ０.００９７と−０.００５３の値を有する。
【００３４】
式（５）を回路に適用するためには小数点以下の値ｘに対する乗算回路と除算回路および加算回路などが追加的に要求される。
【００３５】
上記乗算回路と加算回路は既存の回路を使用し、直列の処理ブロックを使用すれば、極めて小さい面積で済む回路であるが、除算回路は、比較的多くの量の回路が必要となる。かかる点を考慮して近似曲線のエラー量を減少させながら、回路への適用が簡単にできるように修正した式が下記の式（７）である。
【００３６】
【数２】
0003768613.tif 000005
式（７）において、４で割り算する場合、実際の二進数の演算においては小数点以下の値を２ビット右側へシフトすることで、簡単に実現される。この場合、最大のエラーはｘ＝０.３３におけるエラー値Ｅ2max＝０.０２６となり、エラーの補正をしないときより約３.３倍の正確度を有することになる。
【００３７】
図４および図５は回路に容易に適用できるエラー補正をした近似ログ値の曲線と、実際の２進ログ値とエラー補正した近似ログ値との差を示すエラー曲線を示しているものである。
【００３８】
図６は本発明によるログ近似値のエラー補正回路のブロック図である。本発明によるエラー補正回路は、乗算器１０、加算器１２、シフタ１４、および加算器１６から構成される。
【００３９】
乗算器１０は入力信号ｘどうしを乗算して信号ｘ2を出力する。加算器１２は乗算器１０の出力信号ｘ2の反転された信号（−ｘ2）と入力信号ｘとを加算して信号（ｘ−ｘ2）を出力する。シフタ１４は２2シフタで、加算器１２の出力信号（ｘ−ｘ2）の小数点以下の値を右側へ２ビットだけシフトして信号（ｘ−ｘ2）／４を出力する。加算器１６は入力信号ｘとシフタ１４の出力信号（ｘ−ｘ2）／４を加算して信号（（ｘ−ｘ2）／４）＋ｘを出力する。このようにして、式（７）示されているログ近似値を求めることができる。なお、式（５）に示しているログの近似値を求めるためにはシフタで構成しないで、３で割る演算を実行する除算器により構成する。
【００４０】
なお、上記した乗算器１０、加算器１２、シフタ１４、および加算器１６等は、ハードウェア、ソフトウェア、又は両者の組み合わせのいずれで実装してもよい。
【００４１】
表２は、０≦ｘ＜１に対する２進ログ値と近似ログ値、および式（５）による近似ログの補正値、式（７）による近似ログの補正値並びにそれらのエラー値を示しているものである。
【００４２】
【表２】
0003768613.tif 000006
表２から、本発明による補正した近似ログ値はＬＡ1（ｘ）の場合、平均９９％以上、ＬＡ2（ｘ）の場合は、平均９８％以上の精度を有していることが分かる。
【００４３】
【発明の効果】
以上詳細に説明したように、本発明によれば、簡単な回路の追加によってログの近似値のエラーを最小限にすることができる。
【図面の簡単な説明】
【図１】０≦ｘ＜１の範囲にある数ｘについての関数のグラフである。
【図２】ログ値Ｌ（１＋ｘ）と本発明によるログ近似値ＬＡ1（ｘ）の曲線を示す図である。
【図３】本発明による補正後のエラー値Ｅ1（ｘ）の曲線を示すグラフである。
【図４】回路に容易に適用できるエラー補正をした近似ログの曲線を示すグラフである。
【図５】実際の２進ログの値とエラー補正した近似ログ値との差であるエラー曲線を示すグラフである。
【図６】本発明の一実施形態によるログ近似値補正回路のブロック図である。
【図７】Ｌ（Ｎ）の理論値曲線と、Ｌ（Ｎ）の近似値曲線であるＬＡ（Ｎ）を示すグラフである。
【図８】近似値のエラー値Ｅ（ｘ）の曲線を示すグラフである。
【符号の説明】
１０  乗算器
１２  加算器
１４  シフタ
１６  加算器
【図１】
0003768613.tif 000007
【図２】
0003768613.tif 000008
【図３】
0003768613.tif 000009
【図４】
0003768613.tif 000010
【図５】
0003768613.tif 000011
【図６】
0003768613.tif 000012
【図７】
0003768613.tif 000013
【図８】
0003768613.tif 000014