JP4330874B2 - 入力信号の数学的関数として出力信号を生成するための方法及び装置 - Google Patents
入力信号の数学的関数として出力信号を生成するための方法及び装置 Download PDFInfo
- Publication number
- JP4330874B2 JP4330874B2 JP2002370530A JP2002370530A JP4330874B2 JP 4330874 B2 JP4330874 B2 JP 4330874B2 JP 2002370530 A JP2002370530 A JP 2002370530A JP 2002370530 A JP2002370530 A JP 2002370530A JP 4330874 B2 JP4330874 B2 JP 4330874B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- const
- correction
- xlog
- shift
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、デジタル入力信号の数学的関数としてデジタル出力信号を生成するための方法及び装置並びにこの方法を実行するためのコンピュータプログラムに関する。
【0002】
【従来の技術】
この種の技術の応用例として、例えば対数を用いてスケーリングされた被制御変数を生じさせるために実数成分Iと虚数成分Qとからなる複素数デジタル入力信号の絶対値の対数を用いなければならないものがある。
【0003】
従来の一般的な手法は、例えば反復的方法によって関数値を計算するか、広範囲のテーブルの中に関数値を準備しておき、入力信号の値に従ってそれらを検索するかのいずれかであった。
【0004】
リアルタイムでの関数値の計算は非常にハードウェア集約的であるので、通常は実行不可能である。入力信号の可能な値の全てについて1つのテーブルが記憶されるとすると、記憶装置の容量が大きくなるか、あるいは、テーブルの各インデックスが非常に大きく離れるので、得られる精度が非常に悪くなるか又はインデックス間を補間するためさらに多くのリソースの使用による補間が必要になるかのいずれかである。
【0005】
【発明が解決しようとする課題】
このような課題を解決するためになされた本発明は、デジタル入力信号の数学的関数としてデジタル出力信号を生成するための方法及び装置、並びにこの方法を実行するためのコンピュータプログラムであって、その関数テーブル用の記憶装置の容量は小さく、出力信号の基礎となる関数値を高精度で決定可能なコンピュータプログラムを提供することを目的とする。
【0006】
【課題を解決するための手段】
かかる目的を達成するためになされた請求項1記載の発明は、コンピュータ、デジタル信号処理機又は電子回路を使用してデジタル入力信号(xLOG(k))の数学的関数としてデジタル出力信号(yLOG(k)/K)を生成する方法であって、前記デジタル入力信号(xLOG(k))を増幅又は減衰して前記数学的関数の絞られた引数の範囲内にある第1の中間信号(A)及び前記デジタル入力信号(xLOG(k))の増幅又は減衰による訂正信号(ShiftLOG)を生成するステップと、前記第1の中間信号(A)に従って各インデックス(xi、xi+1、yi、yi+1)に又はその間にテーブル化された関数値(B1)をテーブルから読み出すステップと、前記第1の中間信号(A)と前記各インデックス(xi、xi+1、yi、yi+1)との偏差に従い、前記絞られた引数の範囲内で一定である傾きmconstを用いて線形補間を行って補間値(B2)を生成するステップと、前記の読み出されテーブル化された関数値(B1)と前記補間値(B2)とを合計することによって第2の中間信号(B)を生成するステップと、前記訂正信号(ShiftLOG)で前記第2の中間信号(B)を訂正することによって前記デジタル出力信号(yLOG(k)/K)を生成するステップとを含み、前記線形補間の際に生じる補間誤差が可能な限り小さくなるように前記傾きmconstを選択することを特徴とする。
請求項2記載の発明は、請求項1記載の発明において、前記数学的関数が2を底とする対数であり、前記絞られた引数の範囲が0.5と1の間であり、前記一定の傾きがmconst=2であることを特徴とする。
請求項3記載の発明は、請求項1記載の発明において、前記絞られた引数の範囲において範囲境界(A1、A2)間の各区分内で一定である傾きmconst.1、mconst.2及びmconst.3を用いて線形補間を行うことを特徴とする。
請求項4記載の発明は、請求項3記載の発明において、前記線形補間の際に生じる補間誤差が可能な限り小さくなるように前記一定の傾きmconst.1、mconst.2、mconst.3を選択することを特徴とする。
請求項5記載の発明は、請求項4記載の発明において、前記数学的関数が2を底とする対数であり、前記絞られた引数の範囲が0.5と1の間であり、前記一定の傾きがmconst.1=2+2-1+2-3、mconst.2=2+2-3及びmconst.3=1+2-3であることを特徴とする。
請求項6記載の発明は、請求項1乃至5のいずれか1項記載の発明において、前記デジタル入力信号(xLOG(k))が、前記数学的関数を適用する前に二乗されて合計される実数成分(I)と虚数成分(Q)とからなることを特徴とする。
請求項7記載の発明は、請求項6記載の発明において、前記デジタル入力信号(xLOG(k))の増幅又は減衰を、前記デジタル入力信号(xLOG(k))の前記実数及び虚数成分(I、Q)の二乗の前に少なくとも部分的に行うことを特徴とする。
請求項8記載の発明は、請求項1乃至7のいずれか1項記載の発明において、前記数学的関数が特定の底の対数であり、前記訂正信号(ShiftLOG)が増幅に用いられる増幅係数(2x)の同じ底の指数(x)を表し、前記訂正信号(ShiftLOG)を前記第2の中間信号(B)から減算することによって前記訂正を行うことを特徴とする。
請求項9記載の発明は、デジタル入力信号(xLOG(k))の数学的関数としてデジタル出力信号(yLOG(k)/K)を生成するための装置(1)であって、前記デジタル入力信号(xLOG(k))を増幅又は減衰することによって前記数学的関数の絞られた引数の範囲内にある第1の中間信号(A)、及び前記デジタル入力信号(xLOG(k))の増幅又は減衰による訂正信号(ShiftLOG)を生成するレベル変更装置(6)と、前記数学的関数のテーブル化された関数値が各インデックス(xi、xi+1、yi、yi+1)に又はその間に記憶される記憶装置(20)であって、テーブル化された関数値(B1)が前記第1の中間信号(A)に従って前記記憶装置(20)から読み出され、第2の中間信号(B)が前記読み出されテーブル化された関数値(B1)に従って生成される記憶装置(20)と、前記訂正信号(ShiftLOG)で前記第2の中間信号(B)を訂正することにより前記デジタル出力信号(yLOG(k)/K)を生成する訂正手段(12)と、前記第1の中間信号(A)と前記各インデックス(xi、xi+1、yi、yi+1)との偏差に従って補間値(B2)を生成する補間器(30)と、前記テーブル化された関数値(B1)と前記補間値(B2)とを合計する加算器(29)とを含み、前記補間器(30)において、前記絞られた引数の範囲の各区分(I1、I2、I3)内でそれぞれ一定の傾き(mconst.1、mconst.2、mconst.3)を用いて線形補間が行われ、前記一定の傾き(mconst.1、mconst.2、mconst.3)は、それぞれ前記線形補間の際に生じる補間誤差が可能な限り小さくなるように選択され、前記第1の中間信号(A)と前記各インデックス(xi、xi+1、yi、yi+1)によって規定される参照位置(xi+xi+1/2、yi+yi+1/2)との偏差に対応する乗数(A−ADR−Δx/2)を、前記中間信号(A)が位置する区分(I1、I2、I3)に応じて、該当する区分(I1、I2、I3)に属する前記一定の傾き(mconst.1、mconst.2、mconst.3)に乗算する切換え可能な乗算装置(31)が設けられていることを特徴とする。
請求項10記載の発明は、請求項9記載の発明において、前記切換え可能な乗算装置(31)が、前記乗数(A−ADR−Δx/2)のビットの桁をずらすビットシフタ(22、24、26)、マルチプレクサ(23、25)及び加算器(27、28)を含むことを特徴とする。
請求項11記載の発明は、請求項9又は10のいずれか1項記載の発明において、前記デジタル入力信号(xLOG(k))の実数成分(I)及び虚数成分(Q)を二乗し、二乗された各成分を合計する二乗生成器(2)が設けられていることを特徴とする。
請求項12記載の発明は、請求項11記載の発明において、前記レベル変更装置(6)が、前記二乗生成器(2)の入力の前段に配置された第1のレベル変更サブ装置(6a)及び前記二乗生成器(2)の出力の後段に配置された第2のレベル変更サブ装置(6b)を含み、前記訂正信号(ShiftLOG)が、前記第1のレベル変更サブ装置(6a)によって生成される第1の訂正サブ信号(ShiftIQ)と前記第2のレベル変更サブ装置(6b)によって生成される第2の訂正サブ信号(ShiftCORR)とからなることを特徴とする。
請求項13記載の発明は、請求項9乃至12のいずれか1項記載の発明において、前記数学的関数が特定の底の対数であり、前記訂正信号(ShiftLOG)が前記レベル変更装置で用いられる増幅係数(2x)の同じ底の指数(x)を表し、前記訂正要素が前記訂正信号(ShiftLOG)を前記第2の中間信号(B)から減算する減算器(12)であることを特徴とする。
請求項14記載の発明は、プログラムがコンピュータ又はデジタル信号処理機において実施される場合において、請求項1乃至8のいずれかに記載の全てのステップを実行可能にするプログラムコード手段を含むコンピュータプログラムである。
請求項15記載の発明は、請求項1乃至8のいずれかに記載の全てのステップを実行可能にするプログラムコード手段を含むコンピュータプログラムが格納された機械可読のデータ媒体である。
【0007】
本発明においては、数学的関数の絞られた引数の範囲だけが用いられる。すなわち、入力信号の値の許容される範囲に比べて、関数がテーブル化された引数の値の範囲はかなり限定されている。この絞られた引数の範囲内では、限られた量の記憶装置のスペースを使用しても関数値を互いに比較的密接させてテーブル化することができる。入力信号のレベルは、適切な増幅又は減衰によって、テーブルに供給される信号が数学的関数がテーブル化された絞られた引数の範囲内にあるように修正される。増幅又は減衰係数は、訂正信号を生成するために用いられ、これによって、テーブル化され必要に応じて補間された関数値からなる出力信号が訂正される。
【0008】
本発明によれば、更なる有利な改良を可能にする。
すなわち、テーブル化された関数値間の線形補間が好適に用いられる。絞られた引数の範囲全体にわたって線形補間のために均一で一定の傾きを用いるか、又は、絞られた引数の範囲をそれぞれの中で一定の傾きが線形補間のために用いられるいくつかの区分に分割するかのいずれかによってかなりの簡略化を達成することができる。各インデックスでの差分商に基づいて傾きが別々に決定される線形補間に対して、上記の線形補間の実行によってかなりの簡略化が達成される。テーブル化された関数値の許容される引数の範囲は、入力信号の値の許容される範囲と比べて非常に狭いので、この線形補間の簡略化に必然的に伴う精度の損失は小さい。
【0009】
複素数入力信号の絶対値の二乗をまず計算する場合、信号の絶対値を二乗する前に少なくとも部分的に入力信号の粗雑な増幅又は減衰を行い、前述の絶対値の二乗の後で適切な場合には細かい増幅又は減衰を行ってそれに応じて訂正信号を調節するのが有利である。
【0010】
【発明の実施の形態】
以下、図面を参照して本発明を詳細に説明する。
図1は、本発明の方法を実施するための本発明による装置1の第1の実施例を示す。
【0011】
図示された実施例において、装置1は、サンプル・シーケンスからなるデジタル入力信号xLOG(k)に基づき、同様にサンプル・シーケンスからなるデジタル出力信号yLOG(k)/Kを生成する機能を有している。
【0012】
ここで、出力信号yLOG(k)/Kのサンプル値は、入力信号xLOG(k)のサンプル値の2を底とする対数である。
【0013】
2を底とする対数は10を底とする対数と定数Kだけ異なるので、サンプル・シーケンスyLOG(k)は、入力信号xLOG(k)のサンプル・シーケンスの10を底とする対数を表す。
【0014】
本発明は、任意の数学的関数、特に単調関数に適しているもので、対数を伴う応用例に限定されるものではない。
【0015】
図1に示す実施例では、まず、二乗生成器2において入力信号xLOG(k)の絶対値の二乗が生成される。なお、入力信号xLOG(k)の対数が直接決定される応用例では、この二乗生成器2を省略することができる。
【0016】
二乗生成器2は、複素数入力信号xLOG(k)の実数成分Iを二乗する第1の乗算器3及び複素数入力信号xLOG(k)の虚数成分Qを二乗する第2の乗算器4を含む。
【0017】
第1の乗算器3及び第2の乗算器4によって二乗された各成分は、加算器5において合計され、これにより二乗生成器2において入力信号xLOG(k)の絶対値の二乗|xLOG(k)|2が得られる。この値を有するデータは、レベル変更装置6へ送られる。
【0018】
レベル変更装置6は、結果として得られる第1の中間信号Aが、数学的関数、すなわち本実施例においては2を底とする対数の所定の絞られた引数の範囲内にあるように、入力信号xLOG(k)又は本実施例においては入力信号xLOG(k)の絶対値の二乗を増幅する機能を有している。
【0019】
この場合、底を2とする対数の絞られた引数の範囲は、好ましくは区間[0.5,1)である。
【0020】
図示された本実施例の場合、増幅は入力信号の絶対値の二乗を表すビットの桁をずらすこと(ビットシフト)によって行われる。このため、まず、決定装置7は以下に記載される方法を用い、入力信号の絶対値の二乗が絞られた引数の範囲[0.5,1)内に入るように、その入力信号の絶対値の二乗の桁をずらさなければならないビットの数shiftLOGを決定する。
したがって、このシフトビットの数shiftLOGは、関数値を後に訂正する必要のある信号である。
【0021】
一般に、増幅係数は底2の奇数乗の場合もあり得るが、その場合はビットシフトによる増幅及びその後の単純な減算による訂正はできない。
これに対し、増幅がビットシフトによってなされる場合は、図1に示すように、乗算器ではなくビットシフタ8を用いることができる。図中、ビットシフタ8は、累乗器9及び乗算器10として描かれている。この場合、負の増幅(減衰)を行うことも可能である。
【0022】
レベル変更装置6から出力される第1の中間信号Aは、第1の中間信号Aのサンプル値に対応する数学的関数の値を第2の中間信号Bとして出力する関数値決定装置11へ送出される。
【0023】
図示された本実施例では、関数値決定装置11は、第1の中間信号Aについて、2を底とする対数を算出し、第2の中間信号Bとして生成する機能を有している。
【0024】
第2の中間信号Bは、訂正信号shiftLOGによって訂正される。このためには、本来第2の中間信号Bと同じ数学的関数即ち2を底とする対数を用いて訂正信号を決定しなければならない。
【0025】
しかし、本実施例のように、増幅係数が底2の整数乗である場合には、値shiftLO Gは底2の累乗となり、訂正は単に減算器(訂正手段)12において第2の中間信号Bから訂正信号shiftLOGを減算することによって行うことができる。
【0026】
このような演算によって、出力信号yLOG(k)/Kが得られる。対数ではなく別の数学的関数を用いる場合は、減算器12の代わりに適切な別の訂正手段を用いなければならない。
【0027】
ここでは、絶対値のみが必要であり、また対数は続いて決定されるので、決定されるのは絶対値ではなく絶対値の二乗である。そして、対数によれば、べき乗は、式(1)に示されるように、一定の係数の違いになる。
【0028】
【数1】
【0029】
xLOG(k)の絶対値の二乗は、単に式(2)に示される加算によって決定することができる。
【0030】
【数2】
【0031】
対数はテーブル法によって決定される。しかし、テーブルを用いるとyLOG(k)の近似値しか得られない。近似による誤差は、例えば0.001dBより小さくなければならない。テーブル法だけを用いて対数の値の範囲全体にわたってこのような高精度を達成するためには、非常に大きなテーブル(およそ120Kワード)を実現することが必要となる。テーブルのサイズは本発明の簡略効果によって著しく低減させることができる。
【0032】
1つの重要な簡略化としては、テーブル入力においてビットシフタ8を用いることがあげられる。テーブルの入力値(絶対値の二乗の計算結果)は、入力値(第1の中間信号A)が式(3)に示される値の範囲内になるまで係数2で乗算される。
【0033】
【数3】
【0034】
対数生成器への入力の際に行われる乗算は、式(4)に示される出力の際の減算によって取り消すことができる。
【0035】
【数4】
【0036】
このため、テーブルは入力値の範囲[0.5,1)だけを包含すればよい。底10を有する対数の場合、2の累乗の対数
【0037】
【数5】
【0038】
を与えるテーブルを作成しなければならないと思われるが、これは2を底とする対数を用いることによって回避することができる。この関係は、式(5)に示すとおりである。
【0039】
【数6】
【0040】
これにより、2の累乗を与えるテーブルは必要なく、シフト係数shiftLOGを直接に減算することができる。出力信号yLOG(k)においては、式(6)に示される係数を考慮することができる。
【0041】
【数7】
【0042】
図1のブロック図においては、絶対値の二乗を計算するため、大きなワードサイズを有する2つの乗算器3及び4が必要である。いったん絶対値の二乗が計算されると、その結果は、対数を規定するテーブルの範囲(絞られた引数の範囲)内になるまでシフトによって増幅される。絶対値の二乗が計算される前にこの増幅が行われると、乗算器3、4は、大きなワードサイズを有さなくてよい。この場合には、式(7)の関係が適用される。
【0043】
【数8】
【0044】
|xLOG(k)|2が非常に大きい場合は、絶対値の二乗を計算するためにさほど大きな乗算器を用いる必要はない。対数が例えば0.001dBまでで精度よく決定される場合、計算における僅かな誤差は許容可能である。
【0045】
しかし、この絶対値の二乗が小さい(つまり入力値もまた小さい)場合は、乗算器のワードサイズを低減させると重要な誤差をもたらすことになる。これは後の増幅を乗算器の前の位置に移動させることにより回避することができる。
【0046】
なお、二乗が計算されるまではどのシフト係数shiftLOGが得られるかがわからないという問題がある。つまり、二乗はこのシフト係数が決定される前に計算しなければならない。しかし、入力値自体からシフト係数の非常に良好な推定値を計算することができる。絶対値の二乗の計算への入力において、入力値は、式(8)に示されるシフト係数shiftIQによって増幅される。
【0047】
【数9】
【0048】
シフト係数shiftIQは、入力値の範囲を最適に活用するように選択される。これは、実数又は虚数部分のいずれか一方が以下の不等式(9)の1つを満たす場合に適用される。
【0049】
【数10】
【0050】
これら実数又は虚数部分のいずれか一方が上記の値の範囲を出るまでは増幅を進めてはならない。したがって、不等式(10)の関係も満たさなければならない。
【0051】
【数11】
【0052】
これらの最初は複雑に思われる規則は、簡単な方法で実行することができる。ビットシフトは例えば5つのステップで行われる。これらのステップのシフト係数は、16、8、4、2及び1である。係数16によるシフトがまず最初に行われる。各ステップにおいては、そのシフトによって押し出された先頭ビット(MSB:Most Significant Bits)の全てが同一であることを確認しさえすればよい。
【0053】
不等式(9)及び(10)から導き出される規則に適合していれば、絶対値の二乗の値の範囲は、式(11)に示されるようになる。
【0054】
【数12】
【0055】
不等式(3)によれば、テーブルへの入力値は、区間[0.5,1)の間になければならない。このため、不等式(12)に示される別の3段階のビットシフタを提供しなければならない。
【0056】
【数13】
【0057】
図2は、上述の2段階増幅を用いて本発明方法を実行するための本発明装置の第2の実施例を示すブロック図である。以下、図1と同じ要素には同じ参照符号を付し、重複する説明を省略する。
【0058】
図2の実施例において、レベル変更装置6は、二乗生成器2への入力の前段に配置された第1のレベル変更サブ装置6aと、二乗生成器2の出力の後段に配置された第2のレベル変更サブ装置6bを有している。
【0059】
訂正信号shiftLOGは、第1のレベル変更サブ装置6aによって生成された第1の訂正サブ信号shiftIQと、第2のレベル変更サブ装置6bによって生成された第2の訂正サブ信号shiftcorrとからなる。
【0060】
ここで、第1の訂正サブ信号shiftIQは、乗算器として表されたビットシフタ13において不等式(12)で定められた係数2で乗算され、その結果が加算器14において第2の訂正サブ信号shiftcorrに加算されて、結果として訂正信号shiftLOGが生じる。
【0061】
図4は、図1及び図2の実施例で用いられる関数値決定装置11の詳細図である。
ここで、関数値決定装置11の入力に中間信号Aが供給される。最上位ビットMSBのいくつか、例えば上位8ビットが、アドレスワードADRを形成し、これがROM(読み取り専用メモリ)などの記憶装置20へと送られる。
【0062】
記憶装置20のインデックスに又は好ましくはインデックスの間に記憶されるのは、表示される数学的関数の値すなわち例えば実施例では2を底とする対数である。
【0063】
上述したように、第1の中間信号Aの生成の際における入力信号の増幅又は減衰によって、第1の中間信号Aは、確実に数学的関数の絞られた引数の範囲内すなわち実施例では区間[0.5,1)内にあるようになる。
【0064】
記憶装置20に対して所定の記憶容量を想定すると、絞られた引数の範囲によってインデックスを互いに比較的近接して置くことができ、その結果、まさに引数の範囲を絞ることによってインデックスに又はその間にテーブル化された関数値B1がより高精度になる。
【0065】
本実施例では、テーブル化された関数値B1の間で線形補間すなわち一次補間を行うことよってさらに精度が高まる。しかし、本発明はこれに限られず、線形補間に用いられる直線の傾きは、テーブルの各インデックスについて個別に、例えば差分商を生成するなどして、考慮されることはなく、引数の範囲全体について均一な直線の傾きが用いられたり、引数の範囲が複数の区分に分けられ、そのそれぞれの中で直線の傾きが一定であったりする。
【0066】
図7は、この線形補間の手順を明らかにするための説明図である。
図7に示すグラフは、第1の中間信号Aの関数としての2を底とする対数を表している。
関数値B1は、記憶装置20において、インデックスxi,xi+1の間や、インデックスxj,xj+1の間などにそれぞれテーブル化される。
線形補間はこれらのテーブル化された関数値の間で行われる。補間に用いられる直線を図7に示す。この直線の傾きはインデックスの位置とは無関係で常に一定であることが理解される。
【0067】
図3は、テーブル化誤差εTAB(i)/Kについて、関数値を記憶装置20において各インデックスxiやxi+1等ではなくそれらの間の位置、すなわち例えば(xi+xi+1)/2という位置に記憶することがより有利であることを明らかにしている。このことはテーブル化誤差εTAB(i)/Kを半減させる。
【0068】
絞られた引数の範囲全体にわたって均一で一定の傾きmconstが線形補間に用いられ、数学的関数が2を底とする対数であり絞られた引数の範囲が0.5と1の間にある場合には、最大補間誤差が最小となる一定の傾きmconstは、式(13)に示される値となることを実証可能である。
【0069】
【数14】
【0070】
しかし、端数を切り捨てた一定の傾きmconst=2の方が現実的である。mconst=2のときに生じる出力信号yLOG(x)の誤差は、図5において第1の中間信号Aの関数として表されている。
【0071】
上述したように、補間誤差は、引数の範囲を、各区分内では一定だが互いの区分では異なる傾きを有する複数の区分I1、I2、I3に分けることによって、よりいっそう低減させることができる。例えば、絞られた引数の範囲[0.5,1)は、式(14)に示される区分に分けることができる。
【0072】
【数15】
【0073】
図6に表すこれらの範囲の境界A1=5/8、A2=3/4について、3種類の異なる区分I1、I2及びI3において線形補間に用いられるべき最適な傾きは、式(15)によって表現できることを示すことができる。
【0074】
【数16】
【0075】
この端数を切り捨てた値は、2の整数乗の組み合わせとして表示でき、このため、線形補間の際に行われる乗算の演算は、ハードウェアに非常に大きな要求を課すことなくビットシフトによって行うことができる。
図6の例で用いられるインデックスの幅Δxは図5のものの4倍であったが、誤差の実質的な増加はなかった。
【0076】
上記の例の実現を図4に示す。
図4に示すように、アドレスワードADRに含まれない最上位でないビットは、データワードA−ADRを形成し、補間器30へ送られる。補間器30の減算器21は、データワードA−ADRから、Δxを2つのインデックス間の距離として値Δx/2を減算する。これは、関数値B1がそれぞれインデックス間にテーブル化されてこの訂正を必要としている、図3との関連で言及した状況に対応する。
【0077】
減算器21は、直接に、また減算器21の出力値の価をそれぞれ1桁だけ増やすビットシフタ22を介して第1のマルチプレクサ23に接続されている。
【0078】
減算器21は、更に、減算器21の出力からのビットの価をそれぞれ1桁だけ減らす第2のビットシフタ24を介して第2のマルチプレクサ25に接続され、もう一方の入力にはデータ値「0」が常に供給されている第2のマルチプレクサ25に接続されている。
【0079】
減算器21の出力値のビットを3桁減らす第3のビットシフタ26を介して、第1の加算器27の第1の入力が減算器21の出力に接続されている。
【0080】
第1の加算器27のもう一方の入力は、第2のマルチプレクサ25の出力に接続されている。第2の加算器28の第1の入力部は第1の加算器27の出力に接続され、第2の加算器28の第2の入力は第1のマルチプレクサ23の出力に接続されている。
【0081】
第2の加算器28からの出力によって補間値B2を得ることができる。そして、記憶装置20から読み出される関数値B1及び上記補間値B2は、第3の加算器29にそれぞれ入力される。そして、第3の加算器29の出力によって第2の中間信号Bが得られる。
【0082】
マルチプレクサ23及び25は、上記の例示の値に従って互いに異なっているが区分内では一定である傾きmconst.3、mconst.2及びmconst.1の間を切り換える作用をする。
【0083】
このため、マルチプレクサ23は、アドレスワードADRの8番目のビットADR(8)が「0」となっている場合には「1」と表示された入力を出力に接続する。そうでない場合には、「0」と表示された第1のマルチプレクサ23の入力が出力に接続される。
【0084】
第2のマルチプレクサ25は、アドレスワードADRの8番目のビットADR(8)が「0」となっているかアドレスワードADRの7番目のビットADR(7)が「1」となっている場合には、「1」と表示された入力を出力に接続する。
【0085】
簡単な論理の組み合わせからわかるように、このことによって、絞られた引数の範囲の種々の区分I1、I2、I3における異なる傾きについて等式(15)で与えられる例示的な値が実現される。このようにして、ビットシフタ22、24、26、マルチプレクサ23、25及び加算器27、28が切換え可能な乗算装置31を形成する。
【0086】
本発明は、上述した実施例に限定されるものではなく、任意の数学的関数にも同様に適用することができる。
【0087】
また、本発明は、電子回路、特にFPGA(フリープログラマブルゲートアレイ(free-programmable gate array))の形態のハードウェアとして、また例えばデジタル信号処理機のソフトウェアとして両方の形態で実現することができる。
【0088】
本発明の好適な実施形態が図示及び記載されているが、本発明の精神及び範囲から逸脱することなく種々の変更をなし得ることが十分にわかるであろう。
【0089】
【発明の効果】
以上述べたように本発明によれば、デジタル入力信号の数学的関数としてデジタル出力信号を生成するための方法及び装置、並びにこの方法を実行するためのコンピュータプログラムであって、その関数テーブル用の記憶装置の容量が小さく、出力信号の基礎となる関数値を高精度で決定可能なコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【図1】 本発明による装置の第1の実施例のブロック図である。
【図2】 本発明による装置の第2の実施例のブロック図である。
【図3】 数学的関数のテーブル化を明らかにするための説明図である。
【図4】 図1及び図2に示す本発明による装置の実施例の細部の好適な実施形態を示すブロック図である。
【図5】 均一で一定の傾きを用いる線形補間の場合の、テーブルに供給された信号の関数としての計算誤差を説明するための図である。
【図6】 線形補間の場合に異なる区分において3つのそれぞれ一定の傾きを用いた際の、テーブルに供給された信号の関数としての計算誤差を説明するための図である。
【図7】 線形補間の手順を明らかにするための図である。
【符号の説明】
1 装置
2 二乗生成器
3、4、10 乗算器
5、14 加算器
6 レベル変更装置
7 決定装置
8、13 ビットシフタ
9 累乗器
11 関数値決定装置
12 減算器(訂正手段)
20 記憶装置
21 減算器
22、24、26 ビットシフタ
23、25 マルチプレクサ
27、28、29 加算器
30 補間器
31 切換え可能な乗算装置
Claims (15)
- コンピュータ、デジタル信号処理機又は電子回路を使用してデジタル入力信号(xLOG(k))の数学的関数としてデジタル出力信号(yLOG(k)/K)を生成する方法であって、
前記デジタル入力信号(xLOG(k))を増幅又は減衰して前記数学的関数の絞られた引数の範囲内にある第1の中間信号(A)及び前記デジタル入力信号(xLOG(k))の増幅又は減衰による訂正信号(ShiftLOG)を生成するステップと、
前記第1の中間信号(A)に従って各インデックス(xi、xi+1、yi、yi+1)に又はその間にテーブル化された関数値(B1)をテーブルから読み出すステップと、
前記第1の中間信号(A)と前記各インデックス(xi、xi+1、yi、yi+1)との偏差に従い、前記絞られた引数の範囲内で一定である傾きmconstを用いて線形補間を行って補間値(B2)を生成するステップと、
前記の読み出されテーブル化された関数値(B1)と前記補間値(B2)とを合計することによって第2の中間信号(B)を生成するステップと、
前記訂正信号(ShiftLOG)で前記第2の中間信号(B)を訂正することによって前記デジタル出力信号(yLOG(k)/K)を生成するステップとを含み、
前記線形補間の際に生じる補間誤差が可能な限り小さくなるように前記傾きmconstを選択することを特徴とする方法。 - 前記数学的関数が2を底とする対数であり、前記絞られた引数の範囲が0.5と1の間であり、前記一定の傾きがmconst=2であることを特徴とする請求項1に記載の方法。
- 前記絞られた引数の範囲において範囲境界(A1、A2)間の各区分内で一定である傾きmconst.1、mconst.2及びmconst.3を用いて線形補間を行うことを特徴とする請求項1に記載の方法。
- 前記線形補間の際に生じる補間誤差が可能な限り小さくなるように前記一定の傾きmconst.1、mconst.2、mconst.3を選択することを特徴とする請求項3に記載の方法。
- 前記数学的関数が2を底とする対数であり、前記絞られた引数の範囲が0.5と1の間であり、前記一定の傾きがmconst.1=2+2-1+2-3、mconst.2=2+2-3及びmconst.3=1+2-3であることを特徴とする請求項4に記載の方法。
- 前記デジタル入力信号(xLOG(k))が、前記数学的関数を適用する前に二乗されて合計される実数成分(I)と虚数成分(Q)とからなることを特徴とする請求項1乃至5のいずれかに記載の方法。
- 前記デジタル入力信号(xLOG(k))の増幅又は減衰を、前記デジタル入力信号(xLOG(k))の前記実数及び虚数成分(I、Q)の二乗の前に少なくとも部分的に行うことを特徴とする請求項6に記載の方法。
- 前記数学的関数が特定の底の対数であり、前記訂正信号(ShiftLOG)が増幅に用いられる増幅係数(2x)の同じ底の指数(x)を表し、前記訂正信号(ShiftLOG)を前記第2の中間信号(B)から減算することによって前記訂正を行うことを特徴とする請求項1乃至7のいずれかに記載の方法。
- デジタル入力信号(xLOG(k))の数学的関数としてデジタル出力信号(yLOG(k)/K)を生成するための装置(1)であって、
前記デジタル入力信号(xLOG(k))を増幅又は減衰することによって前記数学的関数の絞られた引数の範囲内にある第1の中間信号(A)、及び前記デジタル入力信号(xLOG(k))の増幅又は減衰による訂正信号(ShiftLOG)を生成するレベル変更装置(6)と、
前記数学的関数のテーブル化された関数値が各インデックス(xi、xi+1、yi、yi+1)に又はその間に記憶される記憶装置(20)であって、テーブル化された関数値(B1)が前記第1の中間信号(A)に従って前記記憶装置(20)から読み出され、第2の中間信号(B)が前記読み出されテーブル化された関数値(B1)に従って生成される記憶装置(20)と、
前記訂正信号(ShiftLOG)で前記第2の中間信号(B)を訂正することにより前記デジタル出力信号(yLOG(k)/K)を生成する訂正手段(12)と、
前記第1の中間信号(A)と前記各インデックス(xi、xi+1、yi、yi+1)との偏差に従って補間値(B2)を生成する補間器(30)と、
前記テーブル化された関数値(B1)と前記補間値(B2)とを合計する加算器(29)とを含み、
前記補間器(30)において、前記絞られた引数の範囲の各区分(I1、I2、I3)内でそれぞれ一定の傾き(mconst.1、mconst.2、mconst.3)を用いて線形補間が行われ、前記一定の傾き(mconst.1、mconst.2、mconst.3)は、それぞれ前記線形補間の際に生じる補間誤差が可能な限り小さくなるように選択され、前記第1の中間信号(A)と前記各インデックス(xi、xi+1、yi、yi+1)によって規定される参照位置(xi+xi+1/2、yi+yi+1/2)との偏差に対応する乗数(A−ADR−Δx/2)を、前記中間信号(A)が位置する区分(I1、I2、I3)に応じて、該当する区分(I1、I2、I3)に属する前記一定の傾き(mconst.1、mconst.2、mconst.3)に乗算する切換え可能な乗算装置(31)が設けられていることを特徴とする装置。 - 前記切換え可能な乗算装置(31)が、前記乗数(A−ADR−Δx/2)のビットの桁をずらすビットシフタ(22、24、26)、マルチプレクサ(23、25)及び加算器(27、28)を含むことを特徴とする請求項9に記載の装置。
- 前記デジタル入力信号(xLOG(k))の実数成分(I)及び虚数成分(Q)を二乗し、二乗された各成分を合計する二乗生成器(2)が設けられていることを特徴とする請求項9又は10のいずれかに記載の装置。
- 前記レベル変更装置(6)が、前記二乗生成器(2)の入力の前段に配置された第1のレベル変更サブ装置(6a)及び前記二乗生成器(2)の出力の後段に配置された第2のレベル変更サブ装置(6b)を含み、前記訂正信号(ShiftLOG)が、前記第1のレベル変更サブ装置(6a)によって生成される第1の訂正サブ信号(ShiftIQ)と前記第2のレベル変更サブ装置(6b)によって生成される第2の訂正サブ信号(ShiftCORR)とからなることを特徴とする請求項11に記載の装置。
- 前記数学的関数が特定の底の対数であり、前記訂正信号(ShiftLOG)が前記レベル変更装置で用いられる増幅係数(2x)の同じ底の指数(x)を表し、
前記訂正要素が前記訂正信号(ShiftLOG)を前記第2の中間信号(B)から減算する減算器(12)であることを特徴とする請求項9乃至12のいずれかに記載の装置。 - プログラムがコンピュータ又はデジタル信号処理機において実施される場合において、請求項1乃至8のいずれかに記載の全てのステップを実行可能にするプログラムコード手段を含むコンピュータプログラム。
- 請求項1乃至8のいずれかに記載の全てのステップを実行可能にするプログラムコード手段を含むコンピュータプログラムが格納された機械可読のデータ媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10163350A DE10163350A1 (de) | 2001-12-21 | 2001-12-21 | Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals |
DE10163350.5 | 2001-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003263423A JP2003263423A (ja) | 2003-09-19 |
JP4330874B2 true JP4330874B2 (ja) | 2009-09-16 |
Family
ID=7710429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002370530A Expired - Fee Related JP4330874B2 (ja) | 2001-12-21 | 2002-12-20 | 入力信号の数学的関数として出力信号を生成するための方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7233966B2 (ja) |
JP (1) | JP4330874B2 (ja) |
DE (1) | DE10163350A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100402734B1 (ko) * | 2001-12-21 | 2003-10-22 | 한국전자통신연구원 | 부호화된 피승수를 사용하는 고정 소수점 곱셈 장치 및 그방법 |
DE102004060185B3 (de) | 2004-12-14 | 2006-05-18 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Durchführung einer Multiplikations- oder Divisionsoperation in einer elektronischen Schaltung |
TWI307223B (en) * | 2006-02-09 | 2009-03-01 | Realtek Semiconductor Corp | Signal processing system capable of changing signal levels |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4078250A (en) * | 1974-08-21 | 1978-03-07 | The Singer Company | Log-antilog conversion for a digital radar system |
US5359551A (en) * | 1989-06-14 | 1994-10-25 | Log Point Technologies, Inc. | High speed logarithmic function generating apparatus |
JP2861687B2 (ja) * | 1992-12-04 | 1999-02-24 | 日本電気株式会社 | 対数演算回路 |
US5604691A (en) * | 1995-01-31 | 1997-02-18 | Motorola, Inc. | Logarithm/inverse-logarithm converter utilizing a truncated Taylor series and method of use thereof |
US5642305A (en) * | 1995-01-31 | 1997-06-24 | Motorola, Inc. | Logarithm/inverse-logarithm converter and method of using same |
US5703801A (en) * | 1995-01-31 | 1997-12-30 | Motorola, Inc. | Logarithm/inverse-logarithm converter utilizing second-order term and method of using same |
US5600581A (en) * | 1995-02-22 | 1997-02-04 | Motorola, Inc. | Logarithm/inverse-logarithm converter utilizing linear interpolation and method of using same |
JP3110288B2 (ja) * | 1995-07-21 | 2000-11-20 | 日本電気株式会社 | 指数対数変換回路 |
US5951629A (en) * | 1997-09-15 | 1999-09-14 | Motorola, Inc. | Method and apparatus for log conversion with scaling |
US6289367B1 (en) * | 1998-11-16 | 2001-09-11 | Texas Instruments Incorporated | Digital signal processing circuits, systems, and method implementing approximations for logarithm and inverse logarithm |
-
2001
- 2001-12-21 DE DE10163350A patent/DE10163350A1/de not_active Withdrawn
-
2002
- 2002-12-16 US US10/321,829 patent/US7233966B2/en not_active Expired - Fee Related
- 2002-12-20 JP JP2002370530A patent/JP4330874B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE10163350A1 (de) | 2003-07-17 |
US20030131037A1 (en) | 2003-07-10 |
US7233966B2 (en) | 2007-06-19 |
JP2003263423A (ja) | 2003-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004005662A (ja) | 対数、逆対数、逆数の近似値を求めるための回路、システム、および方法 | |
EP0736206B1 (en) | Method and apparatus for quadratic interpolation | |
JP4330874B2 (ja) | 入力信号の数学的関数として出力信号を生成するための方法及び装置 | |
JP5229314B2 (ja) | Cordic演算回路及び方法 | |
JP3493574B2 (ja) | 逆量子化装置及び逆量子化方法 | |
JP2001222410A (ja) | 除算器 | |
US5930160A (en) | Multiply accumulate unit for processing a signal and method of operation | |
US7590675B2 (en) | Digital filter, design method thereof, design device, and digital filter design program | |
JP4219926B2 (ja) | 電子回路中で乗算演算または除算演算を行う方法およびその装置 | |
US5801974A (en) | Calculation method and circuit for obtaining a logarithmic approximation value | |
JPH08504046A (ja) | 浮動小数点2進数を2進形式における対数に変換しまたはその逆変換をするための装置 | |
KR20070018981A (ko) | 복소수 로그 alu | |
US20090089349A1 (en) | Angle Computation Method and Related Circuit | |
KR20020024937A (ko) | 입력연산자 정규화를 이용한 테이블참조 기반 고속통신용위상계산기 | |
KR910008382B1 (ko) | 제 산 기 | |
CN113761451B (zh) | 求平方根的方法和装置 | |
JP2021145260A (ja) | 復調装置および復調方法 | |
US20050120067A1 (en) | Digital filter designing method, digital filter designing program, digital filter | |
JP2002026692A (ja) | アダプティブフィルタおよびアダプティブフィルタのタップ係数更新方法 | |
JP2005227811A (ja) | 近似回路 | |
US6518836B2 (en) | Frequency-variation type demodulator and demodulating method | |
JPH05180932A (ja) | モノパルスレーダ装置 | |
Mohan et al. | Scaling, base extension, sign detection and comparison in RNS | |
JP2945003B1 (ja) | 逆正接演算回路 | |
US20070233768A1 (en) | Method and circuit arrangement for computing a value of a complex signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080519 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080519 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090206 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090206 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090310 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090409 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090409 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090609 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090617 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |