(57)【特許請求の範囲】
【請求項１】
所定の固定値である第１の値の累積加算値を、加算回数をカウントしながら求める累積加算装置の累積加算方法であって、
前記加算回数をカウントするカウントステップと、
前記カウントステップの処理によりカウントされた前記加算回数を構成するビットを、その最下位ビットから順次検出していき、最初に１になっているビットを検出したとき、そのビットの、前記最下位ビットからの桁数ｎを求める桁数算出ステップと、
前記第１の値の下位ビットの最上位ビットから、前記桁数算出ステップの処理により求められた前記ｎ桁目のビットを、前記第１の値の上位ビットに加算する第１の加算ステップと、
前記第１の加算ステップの処理の結果得られた第２の値の上位ビットを、前回の累積加算値に加算することで、今回の累積加算値を算出する第２の加算ステップと
を含むことを特徴とする累積加算方法。
【請求項２】
前記第１の値の上位ビットまたは下位ビットは、それぞれ、その第１の値の整数部または小数部である
ことを特徴とする請求項１に記載の累積加算方法。
【請求項３】
所定の固定値である第１の値の累積加算値を求める累積加算装置であって、
前記第１の値を記憶する固定値記憶手段と、
前記第１の値の累積加算をする加算回数をカウントするカウント手段と、
前記第１の値の累積加算値を記憶する加算結果記憶手段と、
前記加算回数を構成するビットを、その最下位ビットから順次検出していき、最初に１になっているビットを検出したとき、そのビットの、前記最下位ビットからの桁数ｎを求め、前記第１の値の下位ビットの最上位ビットから、前記ｎ桁目のビットを、前記第１の値の上位ビットに加算し、その結果得られた第２の値の上位ビットを、前回の累積加算値に加算することで、今回の累積加算値を算出する加算手段と
を備えることを特徴とする累積加算装置。
【請求項４】
前記第１の値の上位ビットまたは下位ビットは、それぞれ、その第１の値の整数部または小数部である
ことを特徴とする請求項３に記載の累積加算方法。
【請求項５】
２つのサンプル点の間を補間するｄ個の補間点の補間値を、補間回数をカウントしながら求める補間装置の補間方法であって、
一方のサンプル点と他方のサンプル点との差分を求め、その差分値を、ｄ＋１で除算する除算ステップと、
前記除算ステップの処理の結果得られた第１の値を固定値としてセットする固定値セットステップと、
前記補間回数をカウントするカウントステップと、
前記カウントステップの処理によりカウントされた前記補間回数を構成するビットを、その最下位ビットから順次検出していき、最初に１になっているビットを検出したとき、そのビットの、前記最下位ビットからの桁数ｎを求める桁数算出ステップと、
前記固定値セットステップの処理によりセットされた前記第１の値の下位ビットの最上位ビットから、前記桁数算出ステップの処理により求められた前記ｎ桁目のビットを、前記第１の値の上位ビットに加算する第１の加算ステップと、
前記第１の加算ステップの処理の結果得られた第２の値の上位ビットを、前回の補間値に加算することで、今回の補間値を算出する第２の加算ステップと
を含むことを特徴とする補間方法。
【請求項６】
前記固定値セットステップの処理によりセットされた前記第１の値の上位ビットまたは下位ビットは、それぞれ、その第１の値の整数部または小数部である
ことを特徴とする請求項５に記載の補間方法。
【請求項７】
前記補間点の数ｄは、２j−１個である（但し、ｊは正の整数）
ことを特徴とする請求項５に記載の補間方法。
【請求項８】
２つのサンプル点の間を補間するｄ個の補間点の補間値を求める補間装置であって、
一方のサンプル点と他方のサンプル点との差分値を求める差分演算手段と、
前記差分値を、ｄ＋１で除算する除算手段と、
前記除算手段の除算結果である第１の値を固定値として記憶する除算結果記憶手段と、
前記補間値を求める補間回数をカウントするカウント手段と、
前記補間値を記憶する補間値記憶手段と、
前記補間回数を構成するビットを、その最下位ビットから順次検出していき、最初に１になっているビットを検出したとき、そのビットの、前記最下位ビットからの桁数ｎを求め、前記第１の値の下位ビットの最上位ビットから、前記ｎ桁目のビットを、前記第１の値の上位ビットに加算し、その結果得られた第２の値の上位ビットを、前回の補間値に加算することで、今回の補間値を算出する加算手段と
を備えることを特徴とする補間装置。
【請求項９】
前記第１の値の上位ビットまたは下位ビットは、それぞれ、その第１の値の整数部または小数部である
ことを特徴とする請求項８に記載の補間装置。
【請求項１０】
前記補間点の数ｄは、２j−１個である（但し、ｊは正の整数）
ことを特徴とする請求項８に記載の補間装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えばディジタル信号処理において、所定の固定値を累積加算する場合などに用いて好適な累積加算方法、累積加算装置、補間方法、並びに補間装置に関する。
【０００２】
【従来の技術】
例えば、ＤＳＰ（ディジタルシグナルプロセッサ）などを有するディジタル信号処理システムにおいて、ある固定値を定期的に累積加算して、その加算結果（正確な加算結果）のうちの上位数ビットを使用する場合の累積加算を行う方法としては、従来、例えば、次のような２つの代表的な方法があった。なお、ここでは、説明を分かりやすくするために、加算結果のうちの上位数ビットを整数部とし、残りの下位ビットを小数部とする。
【０００３】
即ち、第１の累積加算方法は、加算結果Ｘに、固定値ｄＸを正確に加算していき、必要なときに、加算結果Ｘの小数第１位を、例えば四捨五入などして丸めて、その結果得られる整数を使用するものであり、第２の累積加算方法は、加算結果Ｘに、固定値ｄＸの小数第１位を、例えば四捨五入などして丸めて得られる整数値を加算していき、必要なときに、加算結果Ｘを使用するものであった。
【０００４】
【発明が解決しようとする課題】
しかしながら、第１および第２の累積加算方法には、以下のような課題があった。
【０００５】
即ち、いま、例えばｄＸ＝２．４３７５とし、用いる加算結果（加算結果の上位数ビットで表される整数）がとる範囲を０乃至４０９５とすると、第１の累積加算方法による場合には、加算結果Ｘに固定値ｄＸを正確に加算して行くから、加算結果Ｘには誤差は生じない。
【０００６】
しかしながら、この場合、図８に示すように、Ｘのビット数としては、０乃至４０９５の範囲の整数部を表すための１２ビットと、固定値ｄＸの小数点以下の値を表すためのビット数とを合計したビット数が、少なくとも必要となる。
【０００７】
いまの場合、ｄＸは、２．４３７５（＝２＋１／２2＋１／２3＋１／２4）であり、従って２進数で考えると、１０．０１１１Ｂ（Ｂは、２進数を表す）であるから、Ｘには、図８に示すように、１２ビットの整数部の他、４ビットの小数部が必要となり、そのビット数は、少なくとも１６ビットとする必要がある。
【０００８】
従って、第１の累積加算方法によれば、加算結果Ｘの整数部の１２ビットだけが必要であるにも関わらず、累積加算を行うにあたって、それより多いビット数が必要となり、システムが大型化する課題があった。
【０００９】
一方、第２の累積加算方法による場合には、まず、固定値ｄＸの小数第１位が四捨五入される。ここで、固定値ｄＸの小数第１位の四捨五入は、図９に示すように、ｄＸの小数第１位のビットに１を加算し、その加算結果の小数部をカットすることにより行われる。小数第１位のビットに１を加算することは、１０進数で考えれば、０．５を加算することに相当するから、その加算結果の小数部をカットすることで、小数第１位を四捨五入した整数が得られることになる。
【００１０】
いまの場合、ｄＸは、１０．０１１１Ｂであるから、上述したようにして、その小数第１位を四捨五入して得られる整数値（ｄＸの小数第１位のビットに１を加算し、その加算結果の小数部をカットした値）は、図９に示すように、１０Ｂとなる。従って、Ｘに加算する値（加算値）は、小数部のない整数であるから、Ｘのビット数としては、０乃至４０９５の範囲の整数部を表すための１２ビットがあれば足りることとなる（図９）。
【００１１】
しかしながら、第２の累積加算方法では、ＸにｄＸを加算するたびに、ｄＸを四捨五入するため、Ｘに誤差が蓄積し、加算回数が多くなった場合には、その誤差は、無視できないほど大きなものとなる課題があった。即ち、第２の累積加算方法によれば、ｄＸを２として、Ｘと加算していくため、例えば１６８０回だけ加算を繰り返した場合には、Ｘは３３６０（＝２×１６８０）となり、正確な加算結果である４０９５（＝２．４３７５×１６８０）とは大きく異なるものとなる課題があった。
【００１２】
次に、ディジタル信号処理システムでは、２つのサンプル点の間を補間することが良く行われる。図１０は、２つのサンプル点の間を補間する、従来のディジタル信号処理システム（補間システム）の一例の構成を示している。
【００１３】
このシステムでは、信号発生部２１によって、例えば図１１（ａ）に示すようなサンプリング信号が出力され、その信号に対し、補間部２２によって補間処理が施され、図１１（ｂ）に示すような信号が出力される。なお、図１１（ｂ）において、●または○印は、信号発生部２１より出力されたサンプリング信号（サンプル値）、または補間部２２により補間された補間値（補間信号）を示している。
【００１４】
ここで、ある２つのサンプル点Ｘ１またはＸ２それぞれにおけるサンプル値ｆ（Ｘ１）またはｆ（Ｘ２）の間を、例えば直線補間する補間方法としては、次のような２つの代表的な方法がある。
【００１５】
即ち、いま、２つのサンプル点Ｘ１とＸ２との間を補間する補間点の数を、例えば７とした場合、第１の補間方法では、まずサンプル値ｆ（Ｘ２）とｆ（Ｘ１）との差（ｆ（Ｘ２）−ｆ（Ｘ１））が求められ、その差に、補間回数Ｈ（いま補間しようとしている補間点が、点Ｘ１から点Ｘ２の方向に数えて、何番目のものであるか）が乗算される。そして、その乗算結果（（ｆ（Ｘ２）−ｆ（Ｘ１））×Ｈ）が、補間点の数＋１で除算され、即ち、いまの場合、８（＝７＋１）で除算され、その除算結果（（ｆ（Ｘ２）−ｆ（Ｘ１））×Ｈ／８）にサンプル値ｆ（Ｘ１）が加算されることで、補間値（ｆ（Ｘ１）＋（ｆ（Ｘ２）−ｆ（Ｘ１））×Ｈ／８）が求められる。
【００１６】
また、第２の補間方法では、まず、点Ｘ１から点Ｘ２の方向に数えて、１番目の補間点の補間値（１番目の補間値）ｈ１が、サンプル値ｆ（Ｘ１）に、サンプル値ｆ（Ｘ２）とｆ（Ｘ１）との差を、補間点の数＋１で除算したもの（（ｆ（Ｘ２）−ｆ（Ｘ１））／８）が加算されることによって求められる。次に、点Ｘ１から点Ｘ２の方向に数えて、２番目の補間点の補間値ｈ２が、既に求めた１番目の補間値ｈ１に、サンプル値ｆ（Ｘ２）とｆ（Ｘ１）との差を、補間点の数＋１で除算したもの（（ｆ（Ｘ２）−ｆ（Ｘ１））／８）が加算されることによって求められる。さらに、点Ｘ１から点Ｘ２の方向に数えて、３番目の補間点の補間値ｈ３が、既に求めた２番目の補間値ｈ２に、サンプル値ｆ（Ｘ２）とｆ（Ｘ１）との差を、補間点の数＋１で除算したもの（（ｆ（Ｘ２）−ｆ（Ｘ１））／８）が加算されることによって求められる。
【００１７】
以下同様にして、７番目の補間値ｈ７までが求められる。
【００１８】
なお、８＝２3であるから、上述の場合において、８での除算は、右に３ビットシフトすることで行うことができる。
【００１９】
ここで、表１に、以上の第１および第２の補間方法によって求められる補間値を示す。
【表１】
0003695598.tif 000002
【００２０】
いま、サンプル値ｆ（Ｘ１），ｆ（Ｘ２）、および補間値を整数とすると、第１の補間方法による場合には、Ｈ番目の補間値は、サンプル点ｆ（Ｘ１）に、（（ｆ（Ｘ２）−ｆ（Ｘ１））×Ｈ／８）を加算することで求められるから、誤差は、８での除算を行ったときに生じる可能性があるが、その誤差は、８での除算結果の小数第１位を四捨五入することで、小数以下に抑えることができる。
【００２１】
しかしながら、この場合、補間値を求めるにあたって、補間回数Ｈによる乗算を行う必要がある。ある２点間の補間を、正式な演算（精度の高い演算）により行うのではなく、直線補間で行う場合というのは、補間を簡単かつ迅速に行うことを目的とすることが多いことから、補間を行うのに、乗算を必要とすることは、処理が複雑化し、その速度も低下することとなる。
【００２２】
さらに、乗算を行う場合には、その乗算結果のビット数が、システムに与えられている（許容されている）ビット数より多くなり、オーバーフローすることもある。また、上述した場合には、補間点の数を７としたが、補間点の数を、例えば１５や３１などと増加した場合には、オーバーフローする可能性がより高くなる。
【００２３】
そこで、オーバーフローを防止するために、上位ビットを増加することが考えれるが、これでは、システムが大型化することとなる。また、オーバーフローを防止する方法としては、ｆ（Ｘ２）−ｆ（Ｘ１）に、加算回数Ｈを乗算してから８で除算するのではなく、ｆ（Ｘ２）−ｆ（Ｘ１）を、先に８で除算（３ビット右シフト）してから、その除算結果に、加算回数Ｈを乗算する方法がある。
【００２４】
しかしながら、ｆ（Ｘ２）−ｆ（Ｘ１）を８で除算（３ビット右シフト）することにより、その下位３ビットはカットされることになるから、そこで誤差が生じ、このような誤差を含む値に、加算回数Ｈを乗算すれば、誤差が、さらに大きなものとなる。
【００２５】
一方、第２の補間方法による場合は、乗算を行わずに済むので、加算を行う加算器と、８での除算、即ち３ビット右シフトを行うシフタだけで、補間を行うことができ、また第１の補間方法における場合のようにオーバーフローが生じることもない。さらに、第２の補間方法によれば、今回の補間値は、前回の補間値に、固定値である（ｆ（Ｘ２）−ｆ（Ｘ１））／８を加算するという一定の演算プロセスで求めることができる。
【００２６】
即ち、システムを大型化することなく、補間を簡単かつ迅速に行うことができる。
【００２７】
しかしながら、この場合、補間を行うたびに、補間値に含まれる誤差が増加し、図１２に示すように、最後の補間点（同図においては、７番目の補間点）とサンプル点Ｘ２との連続性が損なわれる課題があった。
【００２８】
即ち、第２の補間方法によれば、ｆ（Ｘ２）−ｆ（Ｘ１）を８で除算（３ビット右シフト）することで、その除算結果の小数第１位を四捨五入したとしても、小数点以下の誤差が生じる（これについては、第１の補間方法も同様）。この誤差は、小さなものであるが、第２の補間方法による場合には、上述したように、今回の補間値が、誤差を含む前回の補間値を用いて求められるため、後に求めた補間値には、誤差が蓄積することとなる。従って、最後の方に求めた補間値には、大きな誤差が含まれることとなり、最後の補間値と、サンプル値との間に段差が生じる課題があった。そして、この誤差は、補間点の数の増加とともに増加する課題があった（図１２）。
【００２９】
本発明は、このような状況に鑑みてなされたものであり、システムを大型化することなく、精度の高い（誤差の少ない）累積加算、２点間の補間を、簡単かつ迅速に行うことができるようにするものである。
【００３０】
【課題を解決するための手段】
本発明の累積加算方法は、所定の固定値である第１の値の累積加算値を、加算回数をカウントしながら求める累積加算装置（例えば、図１の構成の装置など）の累積加算方法であって、加算回数をカウントするカウントステップ（例えば、図２のステップＳ２などの処理）と、カウントステップの処理によりカウントされた加算回数を、その最下位ビットからから順次検出していき、最初に１になっているビットを検出したとき、そのビットの、最下位ビットからの桁数ｎを求める桁数算出ステップ（例えば、図２のステップＳ３などの処理）と、第１の値の下位ビットの最上位ビットから、桁数算出ステップの処理により求められたｎ桁目のビットを、第１の値の上位ビットに加算する第１の加算ステップ（例えば、図２のステップＳ５などの処理）と、第１の加算ステップの処理の結果得られた第２の値の上位ビットを、前回の累積加算値に加算することで、今回の累積加算値を算出する第２の加算ステップ（例えば、図２のステップＳ６などの処理）とを含むことを特徴とする。
【００３１】
この累積加算方法においては、第１の値の上位ビットまたは下位ビットを、それぞれ、その第１の値の整数部または小数部とすることができる。
【００３２】
本発明の累積加算装置は、所定の固定値である第１の値の累積加算値を求める累積加算装置であって、第１の値を記憶する固定値記憶手段（例えば、図１に示す固定値レジスタ３など）と、第１の値の累積加算をする加算回数をカウントするカウント手段（例えば、図１に示すカウンタ２など）と、第１の値の累積加算値を記憶する加算結果記憶手段（例えば、図１に示す加算結果レジスタ４など）と、加算回数を構成するビットを、その最下位ビットから順次検出していき、最初に１になっているビットを検出したとき、そのビットの、最下位ビットからの桁数ｎを求め、第１の値の下位ビットの最上位ビットから、ｎ桁目のビットを、第１の値の上位ビットに加算し、その結果得られた第２の値の上位ビットを、前回の累積加算値に加算することで、今回の累積加算値を算出する加算手段（例えば、図１に示す制御部１など）とを備えることを特徴とする。
【００３３】
この累積加算装置においては、第１の値の上位ビットまたは下位ビットを、それぞれ、その第１の値の整数部または小数部とすることができる。
【００３４】
本発明の補間方法は、２つのサンプル点の間を補間するｄ個の補間点の補間値を、補間回数をカウントしながら求める補間装置の補間方法であって、一方のサンプル点と他方のサンプル点との差分を求め、その差分値を、ｄ＋１で除算する除算ステップ（例えば、図６のステップＳ１２などの処理）と、除算ステップの処理の結果得られる第１の値を固定値としてセットする固定値セットステップ（例えば、図６のステップＳ１３などの処理）と、補間回数をカウントするカウントステップ（例えば、図６のステップＳ１４などの処理）と、カウントステップの処理によりカウントされた補間回数を、その最下位ビットから順次検出していき、最初に１になっているビットを検出したとき、そのビットの最下位ビットからの桁数ｎを求める桁数算出ステップ（例えば、図６のステップＳ１５などの処理）と、固定値セットステップの処理によりセットされた第１の値の下位ビットの最上位ビットから、ｎ桁目のビットを、第１の値の上位ビットに加算する第１の加算ステップ（例えば、図６のステップＳ１７などの処理）と、第１の加算ステップの処理の結果得られた第２の値の上位ビットを、前回の補間値に加算することで、今回の補間値を算出する第２の加算ステップ（例えば、図６のステップＳ１８などの処理）とを含むことを特徴とする。
【００３５】
この補間方法においては、第１の値の上位ビットまたは下位ビットを、それぞれ、その第１の値の整数部または小数部とすることができる。また、補間点の数ｄは、２j−１個とする（但し、ｊは正の整数）ことができる。
【００３６】
本発明の補間装置は、２つのサンプル点の間を補間するｄ個の補間点の補間値を求める補間装置であって、一方のサンプル点と他方のサンプル点との差分値を求める差分演算手段（例えば、図５に示す演算回路１２など）と、差分値を、ｄ＋１で除算する除算手段（例えば、図５に示す演算回路１２など）と、除算手段の除算結果である第１の値を固定値としてを記憶する除算結果記憶手段（例えば、図５に示す固定値レジスタ３など）と、補間値を求める補間回数をカウントするカウント手段（例えば、図５に示すカウンタ２など）と、補間値を記憶する補間値記憶手段（例えば、図５に示す加算結果レジスタ４など）と、補間回数を構成するビットを、その最下位ビットから順次検出していき、最初に１になっているビットを検出したとき、そのビットの、最下位ビットからの桁数ｎを求め、第１の値の下位ビットの最上位ビットから、ｎ桁目のビットを、第１の値の上位ビットに加算し、その結果得られた第２の値の上位ビットを、前回の補間値に加算することで、今回の補間値を算出する加算手段（例えば、図５に示す制御回路１１など）とを備えることを特徴とする。
【００３７】
この補間装置においては、第１の値の上位ビットまたは下位ビットを、それぞれ、その第１の値の整数部または小数部とすることができる。また、補間点の数ｄは、２j−１個とする（但し、ｊは正の整数）ことができる。
【００３８】
【作用】
本発明の累積加算方法および累積加算装置においては、まず、加算回数を構成するビットが、その最下位ビットから順次検出されていき、最初に１になっているビットが検出されたとき、そのビットの、最下位ビットからの桁数ｎが求められる。その後、固定値である第１の値の下位ビットの最上位ビットから、ｎ桁目のビットが、固定値の上位ビットに加算され、その結果得られた第２の値の上位ビットが、前回の累積加算値に加算されることで、今回の累積加算値が算出される。従って、システムを大型化することなく、精度の高い（誤差の少ない）累積加算を、簡単かつ迅速に行うことが可能となる。
【００３９】
本発明の補間方法および補間装置においては、一方のサンプル点と他方のサンプル点との差分が求められ、その差分値が、ｄ＋１で除算され、その結果得られる第１の値が固定値として記憶またはセットされる。そして、補間回数を構成するビットが、その最下位ビットから順次検出されていき、最初に１になっているビットが検出されたとき、そのビットの、最下位ビットからの桁数ｎが求められる。その後、第１の値の下位ビットの最上位ビットから、ｎ桁目のビットが、第１の値の上位ビットに加算され、その結果得られた第２の値の上位ビットが、前回の補間値に加算されることで、今回の補間値が算出される。従って、システムを大型化することなく、精度の高い（誤差の少ない）２点間の補間を、簡単かつ迅速に行うことが可能となる。
【００４０】
【実施例】
図１は、本発明を適用した累積加算装置の一実施例の構成を示している。この累積加算装置においては、所定の固定値の累積加算値が、加算回数をカウントしながら求められるようになされている。
【００４１】
制御部１は、カウンタ２によってカウントされる加算回数ｍを参照しながら、固定値レジスタ３に記憶された固定値ｄＸの累積加算値Ｘを求め、加算結果レジスタ４に記憶させるようになされている。カウンタ２は、固定値レジスタ３に記憶された固定値ｄＸを累積加算する加算回数ｍをカウントするようになされている。加算結果レジスタ４は、制御部１より出力される累積加算値Ｘを記憶するようになされている。
【００４２】
次に、図２のフローチャートを参照して、その動作について説明する。累積加算装置においては、まず最初に、ステップＳ１において、カウンタ２、固定値レジスタ３、および加算結果レジスタ４の初期化が、制御部１によって行われる。即ち、制御部１は、カウンタ２の記憶値ｍおよび加算結果レジスタ４の記憶値Ｘをクリアする（０にする）とともに、固定値レジスタ３に、累積加算する固定値ｄＸを記憶させる。なお、ここでは、固定値レジスタ３には、例えば整数部および小数部でなる固定値ｄＸが記憶されるものとする。
【００４３】
そして、ステップＳ２に進み、制御部１によって、カウンタ２の記憶値ｍ、即ち加算回数ｍが１だけインクリメントされ、ステップＳ３に進む。ステップＳ３では、制御部１によって、加算回数ｍをＬＳＢ（最下位ビット）から見て、最初に１になっているビットが検出され、そのビットのＬＳＢからの桁数ｎが求められる。
【００４４】
即ち、例えば、図３（ａ）に示すように、カウンタ２が、４ビットのカウンタで、そのカウント値、即ち加算回数ｍが、０１１０Ｂである場合には、ＬＳＢから見て、最初に１になっているビットは、ＬＳＢから２桁目のビットであるから、ステップＳ３では、ｎ＝２とされる。
【００４５】
その後、ステップＳ４に進み、固定値レジスタ３に記憶された固定値ｄＸのうちの整数部が、制御部１によって取り出され（読み出され）、ステップＳ５に進む。ステップＳ５では、制御部１によって、固定値レジスタ３に記憶された固定値ｄＸの小数第ｎ位のビットが検出され、そのビットが、固定値ｄＸの整数部に加算される。
【００４６】
即ち、例えば、図３（ａ）に示したように、加算回数ｍが０１１０Ｂである場合には、上述したようにｎ＝２であり、さらに図３（ｂ）に示すように、固定値ｄＸが１０．０１１１Ｂである場合には、固定値ｄＸの小数第２位のビットは１であるから、固定値ｄＸの整数部１０Ｂには１が加算され、１１Ｂとされる。
【００４７】
ここで、図４は、固定値ｄＸが１０．０１１１Ｂである場合に、ステップＳ５で求められる固定値ｄＸの整数部を示している。１回目の累積加算時においては、加算回数ｍは０００１Ｂであるから、ｎ＝１であり、固定値ｄＸの小数第１位のビット０が、固定値ｄＸの整数部に加算される。従って、この場合、固定値ｄＸの整数部は１０Ｂのままとなる。２回目の累積加算時においては、加算回数ｍは００１０Ｂであるから、ｎ＝２であり、固定値ｄＸの小数第２位のビット１が、固定値ｄＸの整数部に加算される。従って、この場合、固定値ｄＸの整数部は１１Ｂとなる。２回目の累積加算時においては、加算回数ｍは００１１Ｂであるから、ｎ＝１であり、従って、１回目の累積加算における場合と同様に、固定値ｄＸの整数部は１０Ｂのままとなる。
【００４８】
以下、同様にして、ステップＳ５では、固定値ｄＸの整数部が求められる。
【００４９】
そして、ステップＳ６に進み、制御部１によって、加算結果レジスタ４に記憶されている、前回の累積加算値Ｘに、ステップＳ５で求められた固定値ｄＸの整数部、即ち、いわば小数第１位以下が丸められた固定値ｄＸが加算され、その加算結果は、新たな累積加算値Ｘとして、加算結果レジスタ４に記憶される。
【００５０】
その後、ステップＳ７に進み、固定値ｄＸの累積加算を終了するか否かが、制御部１によって判定される。即ち、例えば、累積加算を行う回数は、あらかじめ設定されており（この設定されている回数を、以下、適宜、設定回数という）、制御部１では、加算回数ｍが、設定回数を超えているか否かが判定される。ステップＳ７において、加算回数ｍが設定回数を超えていないと判定された場合、ステップＳ２に戻る。一方、ステップＳ７において、加算回数ｍが設定回数を超えていると判定された場合、処理を終了する。
【００５１】
この場合、前回の累積加算値Ｘに加算される値は、ステップＳ５で求められた固定値ｄＸの整数部であるから、累積加算値Ｘを記憶しておく加算結果レジスタ４には、固定値ｄＸの小数部を記憶しておくためのビットを設ける必要がなく、従って、累積加算値Ｘがとる値を、０乃至４０９５の範囲とした場合には、前述した第２の累積加算方法における場合と同様に、加算結果レジスタ４は、０乃至４０９５の範囲の整数部を表すための１２ビットで構成することができる。よって、この場合、システムの大型化を防止することができる。
【００５２】
次に、表２は、ｄＸを１０．０１１１Ｂとした場合に、図１の累積加算装置により得られる累積加算値Ｘと、正確な累積加算値の小数第１位を四捨五入して得られる累積加算値（前述した第１の累積加算方法によって得られる累積加算値）とを示している。なお、表中の左から１乃至６番目の項目は、加算回数ｍ、カウンタ２のカウント値ｍ（加算回数ｍを２進数で表したもの）、ステップＳ５で求められる固定値ｄＸの整数部、図１の累積加算装置により得られる累積加算値Ｘ、正確な累積加算値、または正確な累積加算値の小数第１位を四捨五入して得られる累積加算値を、それぞれ示している。なお、カウント値ｍおよびステップＳ５で求められる固定値ｄＸの整数部は２進数で表してあり、これら以外は、１０進数で表してある。
【００５３】
【表２】
0003695598.tif 000003
【００５４】
表２から、図１の累積加算装置により得られる累積加算値Ｘと、正確な累積加算値の小数第１位を四捨五入して得られる累積加算値とでは、１０，１２、および１４回目の加算時に１の差が生じているが、それ以外の場合では、図１の累積加算装置により得られる累積加算値Ｘは、正確な累積加算値の小数第１位を四捨五入して得られるもの同一になっていることがわかる。なお、図１の累積加算装置において、１６８０回の累積加算を行った後の累積加算値Ｘは４０９５となり、その値は、正確な累積加算値（＝１０．０１１１Ｂ×１６８０）と一致する。
【００５５】
従って、図１の累積加算装置によれば、前述した第１の累積加算方法とほぼ同様の精度の、誤差の少ない累積加算値Ｘを得ることができる。
【００５６】
なお、ステップＳ６において求められた累積加算値Ｘは、ステップＳ２乃至Ｓ７の繰り返し処理が行われている最中であっても、図示せぬ他のブロック（装置）から要求に応じて、加算結果レジスタ４から読み出され、そのブロックに供給されるようになされている。
【００５７】
次に、図１の累積加算装置により、前述した第１の累積加算方法とほぼ同様の精度の、誤差の少ない累積加算値Ｘを得ることができることについて、さらに説明する。
【００５８】
まず、固定値ｄＸおよび加算回数ｍは、以下のように表すことができる。
0003695598.tif 000004
但し、ｑ≧ｐとし、ａi，ｂiは、０または１のいずれかの値をとる。
【００５９】
図１の累積加算装置において、第ｍ回目の累積加算が行われることによって得られる累積加算値をＸ（ｍ）と表すとすると、１回目の累積加算により得られる累積加算値Ｘ（１）は、ｄＸの整数部ａk２k＋ａk-1２k-1＋・・・＋ａ1２1＋ａ0２0に、ｄＸの小数第１位のビットａ-1を加算したものであるから、ａk２k＋ａk-1２k-1＋・・・＋ａ1２1＋ａ0２0＋ａ-1となる。また、２回目の累積加算により得られる累積加算値Ｘ（２）は、ｄＸの整数部ａk２k＋ａk-1２k-1＋・・・＋ａ1２1＋ａ0２0に、ｄＸの小数第２位のビットａ-2を加算し、その加算結果を、前回の累積加算値Ｘ（１）に加算したものであるから、２（ａk２k＋ａk-1２k-1＋・・・＋ａ1２1＋ａ0２0）＋ａ-1＋ａ-2となる。
【００６０】
以下同様にして、ｍ回目の累積加算により得られる累積加算値Ｘ（ｍ）は、次式で示すようなる。
0003695598.tif 000005
【００６１】
ここで、加算回数ｍと累積加算値Ｘ（ｍ）との関係を、表３に示す。
【表３】
0003695598.tif 000006
【００６２】
次に、正確な累積加算値ｍ×ｄＸは、式（１）および（２）から以下のようになる。
0003695598.tif 000007
【００６３】
ここで、ｍ×ｄＸが、必ず整数になるようなｍについて考えてみると、それは、ｍが２p-1以下のオーダを有さない場合、即ち、ｂp-1＝ｂp-2＝・・・＝ｂ1＝ｂ0＝０の場合であるが、この場合、Ｘ（ｍ）またはｍ×ｄＸは、式（３）または（４）より、それぞれ次式で表される。
0003695598.tif 000008
【００６５】
従って、正確な累積加算値ｍ×ｄＸの小数第１位を四捨五入したものを、ｓ（ｍ×ｄＸ）とすると、ｍ×ｄＸが整数になる場合には、加算回数ｍの大きさに関わらず、式
Ｘ（ｍ）＝ｓ（ｍ×ｄＸ）
が成立する。即ち、図１の累積加算装置による累積加算値は、第１の累積加算方法による累積加算結果と一致する。
【００６６】
従って、Ｘ（ｍ）は、ｄＸを何度加算しても、正確な累積加算値ｍ×ｄＸから大きくずれることはない。
【００６７】
次に、ｍ×ｄＸが、整数となる場合だけでなく、小数部を有する値となる場合も含めた一般的な場合について考えてみる。まず、式（２）の加算回数ｍは、次のように、ｐ以上のオーダの部分ｍ１と、ｐ未満のオーダの部分ｍ２とに分けて表すことができる。
0003695598.tif 000009
【００６８】
式（５）から、式（３）は、次にようになる。
0003695598.tif 000010
【００６９】
一方、ｍ×ｄＸは、式（５）から次にようになる。
0003695598.tif 000011
【００７０】
ここで、式（７）より、ｍ×ｄＸの小数第１位を四捨五入した値ｓ（ｍ×ｄＸ）は、次のようになる。
0003695598.tif 000012
【００７１】
ｍ１×ｄＸは整数になるから、ｓ（ｍ×ｄＸ）は、
ｓ（ｍ×ｄＸ）＝ｍ１×ｄＸ＋ｓ（ｍ２×ｄＸ）  ・・・（８）
と表すことができる。
【００７２】
式（６）および（８）より、Ｘ（ｍ）とｓ（ｍ×ｄＸ）との違いは、Ｘ（ｍ２）とｓ（ｍ２×ｄＸ）とを比較することによって得られることがわかる。そこで、このＸ（ｍ２）およびｓ（ｍ２×ｄＸ）について考えてみる。
【００７３】
まず、Ｘ（ｍ２）またはｍ２×ｄＸは、式（５）乃至（７）から、式（９）または（１０）に示すようにそれぞれ表すことができる。
0003695598.tif 000013
【００７４】
0003695598.tif 000014
【００７５】
いま、
0003695598.tif 000015
とおくと、式（９）または（１０）は、それぞれ式（１３）または（１４）に示すようになる。
【００７６】
Ｘ（ｍ２）＝Ｃ＋ｆａ（ｍ２）                    ・・・（１３）
ｍ２×ｄＸ＝Ｃ＋Ｕ（ｍ２）                      ・・・（１４）
【００７７】
Ｃは整数となるから、Ｘ（ｍ２）とｓ（ｍ２×ｄＸ）とを比較することは、ｆａ（ｍ２）と、Ｕ（ｍ２）の小数第１位を四捨五入したｓ（Ｕ（ｍ２））とを比較することと等価となる。
【００７８】
即ち、以上から、第１の累積加算方法により得られる累積加算値に対する、図１の累積加算装置によって得られる累積加算値の誤差は、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））を求めることでわかることになる。
【００７９】
ところで、ｘの小数第１位の四捨五入を行う関数ｓ（ｘ）は数式で表現することが困難である。しかしながら、前述したように、ｘの小数第１位を四捨五入した値は、ｘに０．５を加算して、その小数部分をカットすることで得られる。従って、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））は、ｆａ（ｍ２）−（Ｕ（ｍ２）＋０．５）を計算し、その小数部が負の値となるように変形した後、その負の値となっている小数部をカットすることで求められることになる。
【００８０】
即ち、Ａ＝ｆａ（ｍ２）−（Ｕ（ｍ２）＋０．５）とする場合、Ａが、式
0003695598.tif 000016
の形で得られたら、１＝２-1＋２-2＋２-3・・・であるから、上式を、
0003695598.tif 000017
と変形し、小数部が負の値となるようにして、その小数部をカットし、式
Ａ’＝Ａa２a＋Ａa-1２a-1＋・・・＋Ａ0２0＋１
とすることで、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））（＝Ａ’）を求めることができる。
【００８１】
そこで、ｆａ（ｍ２）−（Ｕ（ｍ２）＋０．５）を、式（１１）または（１２）でそれぞれ表されるｆａ（ｍ２）またはＵ（ｍ２）を代入して求めてみる。
【００８２】
ここで、式（１１）で表されるｆａ（ｍ２）は、次のように変形することができる。
0003695598.tif 000018
【００８３】
従って、ｆａ（ｍ２）−（Ｕ（ｍ２）＋０．５）は、式（１２）および（１５）から、次のようになる。
0003695598.tif 000019
【００８４】
図１の累積加算装置によって得られる累積加算値の誤差（正確な累積加算値に対する誤差、第１の累積加算方法により得られる累積加算値に対する誤差）の範囲は、式（１６）の最大値および最小値を求めることによりわかる。そこで、まず、式（１６）の最大値を、ｐの値を変えて求めてみる。
【００８５】
ｐ＝１の場合、式（１６）は、式
0003695598.tif 000020
となるから、ｂ0＝ａ-1＝１のとき、最大値０をとる。なお、この場合、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））の最大値も０となる。
【００８６】
ｐ＝２の場合、式（１６）は、式
0003695598.tif 000021
となるから、ｂ0＝ｂ1＝ａ-1＝ａ-2＝１のとき、最大値１−２-1−２-2をとる。なお、この場合、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））の最大値は、１−２-1−２-2から、負の小数部−２-1−２-2をカットした値である１となる。
【００８７】
次に、ｐ≧３の場合については、ｐが偶数または奇数のときに分けて考える。まず、ｐが奇数の場合、式（１６）の最大値は、以下のようになる。
0003695598.tif 000022
【００８８】
次に、ｐが偶数の場合、式（１６）の最大値は、以下のようになる。
0003695598.tif 000023
【００８９】
次に、式（１６）の最小値を、ｐの値を変えて求めてみる。
【００９０】
ｐ＝１の場合、式（１６）は、式
0003695598.tif 000024
となるから、ｂ0＝ａ-1＝０のとき、最小値−２-1をとる。なお、この場合、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））の最小値は、−２-1から、負の小数部−２-1をカットした値である０となる。
【００９１】
ｐ＝２の場合、式（１６）は、式
0003695598.tif 000025
となるから、ｂ0＝ａ-2＝１，ｂ1＝ａ-1＝０のとき、最小値−２-1−２-2をとる。なお、この場合、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））の最小値は、−２-1−２-2から、負の小数部−２-1−２-2をカットした値である０となる。
【００９２】
次に、ｐ≧３の場合については、最大値の場合と同様に、ｐが偶数または奇数のときに分けて考える。まず、ｐが奇数の場合、式（１６）の最小値は、以下のようになる。
0003695598.tif 000026
【００９３】
次に、ｐが偶数の場合、式（１６）の最小値は、以下のようになる。
0003695598.tif 000027
【００９４】
式（１７）乃至（２０）から求められる、ｐ≧３の場合の式（１６）の最大値および最小値、並びにｆａ（ｍ２）−ｓ（Ｕ（ｍ２））の最大値および最小値を、表４に示す。
【００９５】
【表４】
0003695598.tif 000028
【００９６】
表４からわかるように、固定値ｄＸの小数部の桁数ｐが増加するほど、ｆａ（ｍ２）−ｓ（Ｕ（ｍ２））の最大値と最小値との差、即ち図１の累積加算装置によって得られる累積加算値の誤差も増加する。しかしながら、例えばｐ＝１６の場合、即ち、固定値ｄＸが１６ビットの小数部を有する場合であっても、固定値ｄＸの小数点以下の値を表すための１６ビットを、加算結果レジスタ４に設けずに、従って、装置を大型化せずに、累積加算値Ｘに生じる誤差を、第１の累積加算方法により得られる累積加算値に対して、±３の範囲内と、小さなものにすることができる。
【００９７】
また、表４に示した誤差は、累積加算値Ｘに、ランダムに（突然）現れるのではなく、表２に示したように、累積加算値Ｘが定常的に増加していく過程で現れるので、ある累積加算値Ｘと、その前後の累積加算値とは滑らかに接続されることになる。従って、見た目には、誤差がどこで生じているかがわからないようにすることができる。
【００９８】
さらに、正確な累積加算値が整数となる場合には、上述したように、累積加算値Ｘは、正確な累積加算値と一致するので、誤差が生じることを、完全に防止することができる。
【００９９】
次に、以上の累積加算の手法は、２つのサンプル点の間を補間するｄ個の補間点の補間値を、直線補間によって求める場合にも適用することができる。即ち、前述した第２の補間方法（表１）によれば、補間を行うべき２つのサンプル点Ｘ１またはＸ２それぞれにおけるサンプル値を、ｆ（Ｘ１）またはｆ（Ｘ２）とすると、最初の補間値ｈ１を求める場合は、サンプル値ｆ（Ｘ１）に、（ｆ（Ｘ２）−ｆ（Ｘ１））／（ｄ＋１）を加算することで求められ、以降の補間値は、前回の補間値に、固定値である（ｆ（Ｘ２）−ｆ（Ｘ１））／（ｄ＋１）を加算していくことによって求められる。従って、２つのサンプル点Ｘ１とＸ２との間の補間値は、ｆ（Ｘ１）を初期値として、これに（ｆ（Ｘ２）−ｆ（Ｘ１））／（ｄ＋１）を累積加算値していくことで求めることができる（ｆ（Ｘ２）を初期値とする場合には、これに（ｆ（Ｘ１）−ｆ（Ｘ２））／（ｄ＋１）を累積加算値していくことで求めることができる）。
【０１００】
図５は、本発明を適用した補間装置の一実施例の構成を示している。なお、図中、図１における場合と対応する部分については、同一の符号を付してある。
【０１０１】
制御部１１は、カウンタ２によってカウントされるカウント値ｍを参照しながら、固定値レジスタ３に記憶された固定値ｄＸを、加算結果レジスタ４に記憶された値（前回の補間値）に加算することで、補間値を求めるようになされている。演算回路１２には、補間を行うべき２つのサンプル点Ｘ１またはＸ２それぞれにおけるサンプル値ｆ（Ｘ１）またはｆ（Ｘ２）が入力されるようになされており、そこでは、その差分ｆ（Ｘ２）−ｆ（Ｘ１）が求められ、さらに、その差分値が、補間点の数ｄ＋１で除算され、その除算結果が、固定値ｄＸとして、制御回路１１に供給されるようになされている。
【０１０２】
なお、演算回路１２から出力された演算結果としての固定値ｄＸは、制御部１１から固定値レジスタ３に供給されて記憶されるようになされている。また、この補間装置では、カウンタ２がカウントする加算回数は、補間回数（補間値を求める回数）であり、加算結果レジスタ４が記憶する累積加算値Ｘは、補間値である。
【０１０３】
次に、図６のフローチャートを参照して、その動作について説明する。サンプル値ｆ（Ｘ１）およびｆ（Ｘ２）が演算回路１２に供給されると、ステップＳ１１において、カウンタ２、固定値レジスタ３、および加算結果レジスタ４の初期化が、制御部１１によって行われる。即ち、カウンタ２および固定値レジスタ３は、その記憶値がクリアされ（０にされ）、加算結果レジスタ４には、前回の補間値の初期値として、サンプル値ｆ（Ｘ１）（ｆ（Ｘ１）は、演算回路１２から制御部１１に供給されるようになされている）がセットされる。
【０１０４】
そして、ステップＳ１２に進み、演算回路１２において、（ｆ（Ｘ２）−ｆ（Ｘ１））／（ｄ＋１）が演算され、制御部１１に出力される。制御部１１において、演算回路１２から、（ｆ（Ｘ２）−ｆ（Ｘ１））／（ｄ＋１）が受信されると、ステップＳ１３に進み、それが固定値ｄＸとして、固定値レジスタ３に供給されて記憶される。
【０１０５】
以下、ステップＳ１４乃至Ｓ１８に順次進み、図２のステップＳ２乃至Ｓ６における場合とそれぞれ同様の処理が行われる。即ち、制御部１１において、カウンタ２が記憶している補間回数ｍを、その最下位ビットから見て、最初に１になっているビットが検出され、そのビットの、最下位ビットからの桁数ｎが求められる。そして、固定値レジスタ３に記憶されている固定値ｄＸである（ｆ（Ｘ２）−ｆ（Ｘ１））／（ｄ＋１）の小数部の最上位ビットから、ｎ桁目のビットが、固定値ｄＸである（ｆ（Ｘ２）−ｆ（Ｘ１））／（ｄ＋１）の整数部に加算され、その結果得られた加算値（固定値ｄＸの整数部）が、加算結果レジスタ４に記憶されている前回の補間値に加算される。
【０１０６】
例えば、いま、ｆ（Ｘ２）−ｆ（Ｘ１）＝１１１０１００１Ｂであり、ｄ＝７（＝２3−１）とされている場合、固定値レジスタ３には、図７（ａ）に示すように、１１１０１００１Ｂを、８（＝７＋１）で除算した１１１０１．００１Ｂがセットされる。なお、補間点の数ｄが２j−１で表される場合（ｊは、正の整数）、ｆ（Ｘ２）−ｆ（Ｘ１）の、（ｄ＋１）による除算は、ｆ（Ｘ２）−ｆ（Ｘ１）（ｆ（Ｘ２）−ｆ（Ｘ１）の小数点の位置）を、右にｊビットシフトすることで行うことができる。
【０１０７】
そして、カウンタ２のカウント値、即ち補間回数ｍが、例えば図７（ｂ）に示すように、１００Ｂだとすると、これを、その最下位ビットから見て、最初に１になっているビットの、最下位ビットからの桁数ｎは３であるから、１１１０１．００１Ｂ（固定値ｄＸ）の小数部の最上位ビットから、３桁目のビットが、１１１０１．００１Ｂ（固定値ｄＸ）の整数部に加算される。いまの場合、図７（ｃ）に示すように、１１１０１．００１Ｂの小数部の最上位ビット（小数第１位のビット）から、３桁目のビットは１であるから、ステップＳ１６で取り出される１１１０１．００１Ｂの整数部１１１０１Ｂには１が加算され、これにより１１１１０Ｂとされる。その後、この加算値１１１１０Ｂに、加算結果レジスタ４に記憶されている前回の補間値が加算（累積加算）されることにより、今回の補間値が求められることになる。
【０１０８】
なお、図７は、固定値レジスタ２が、例えば１２ビットでなる場合を示している（上述の説明においては、０となっている固定値ｄＸの上位ビットの記述を省略してある）。
【０１０９】
ステップＳ１８の処理後は、ステップＳ１９に進み、サンプル点Ｘ１とＸ２との間の補間が、すべて終了したか否かが、制御部１１によって判定される。なお、この判定は、カウンタ２が記憶している補間回数ｍを参照することにより行われる。ステップＳ１９において、補間がすべて終了していないと判定された場合、即ち、いまの場合、補間回数ｍが７未満である場合、ステップＳ１４に戻る。一方、ステップＳ１９において、補間がすべて終了したと判定された場合、即ち、補間回数ｍが７である場合、ステップＳ２０に進み、求められた補間値が出力され、処理を終了する。
【０１１０】
以上のように、補間回数ｍを、その最下位ビットから見て、最初に１になっているビットの、最下位ビットからの桁数ｎを求め、一方のサンプル点と他方のサンプル点との差分を、ｄ＋１で除算した除算結果の小数部の最上位ビットから、ｎ桁目のビットを、除算結果の整数部に加算し、その結果得られた加算値（除算結果の整数部）を、前回の補間値に加算することで、補間を行うようにしたので、図１の累積加算装置と同様に、加算結果レジスタ４には、一方のサンプル点と他方のサンプル点との差分をｄ＋１で除算した除算結果の小数部分を記憶するためのビットを設ける必要がなく、従ってシステムを大型化することなく、精度の高い（誤差の少ない）２点間の補間を行うことが可能となる。
【０１１１】
さらに、この場合、前述した第１の補間方法による場合のように乗算を行う必要がないので、２点間の補間を、簡単かつ迅速に行うことが可能となる。また、乗算の必要がないことから、オーバーフローに対する対策を施す必要もない。
【０１１２】
なお、ステップＳ１８で求められた累積加算値、即ち補間値は、図示せぬメモリに記憶されるようになされており、ステップＳ２０では、このメモリに記憶された補間値すべてが出力されるようになされている。但し、補間値は、このようにすべて求めてから出力する他、１つ求めるごとに出力するようにしても良い。
【０１１３】
また、上述の場合には、補間点の数を、２j−１としたが、補間点の数はこれに限定されるものではない。即ち、補間点の数が、２j−１でなくても、表４に示した誤差の範囲で補間を行うことができる（例えば、補間点の数が６３（＝２6−１）以下であれば、固定値ｄＸの小数部は６ビット（＝ｐ）以下となるから、表４より、最大で±１の誤差の範囲で補間を行うことができる）。但し、補間点の数を、２j−１とした場合には、点Ｘ２を、点Ｘ１から２j番目の補間点と考え、その補間値を求めると、この場合は、上述したｍ×ｄＸが整数になる場合に相当するので（２j番目の補間値は、固定値（ｆ（Ｘ２）−ｆ（Ｘ１））／２jを、２j回累積加算することで求められ、その結果得られる累積加算値は整数となる）、その補間値は、ｆ（Ｘ２）に一致する。従って、この場合、最後の補間値と、サンプル値ｆ（Ｘ２）とは、より滑らかに接続されることになる。
【０１１４】
また、例えば誤差の範囲が限定されており、かつその範囲内で、より多くの補間点を求めたい場合には、表４から、補間点の数と、誤差との関係を求め、その関係から、所定の誤差の範囲内で求めることのできる補間点の数を算出することができる。
【０１１５】
通常、ディジタル信号処理システムにおける、バスラインやメモリビット数は、所定の一定値とされる。従って、前述した第１の累積加算方法による場合には、固定値ｄＸの小数部の加算のために、その小数部のビット数と同一の数のビットを拡張した特別のレジスタが必要となることになる。この場合、システムは複雑化し、さらに汎用性も損なわれることになる。このことは、ハードウェアだけでなく、ソフトウェアについても同様で、ワークステーションやパーソナルコンピュータのようなメモリを比較的自由に扱える場合はともかく、ハードウェアのコントロールにマイクロコンピュータを使用する場合のソフトウェアについては、メモリに対する制約が厳しいため、上述のようにビットを拡張する場合には、やはりソフトウェアが複雑化し、その汎用性が損なわれることになる。
【０１１６】
本発明によれば、精度の高い累積加算を、ビットを拡張することなく行うことができるので、以上の問題を解消することができる。
【０１１７】
さらに、ディジタル信号処理システムをＩＣ化する場合には、その内部ブロックやバスは、一定のビット数（例えば、１６ビットなど）とした方がレイアウトし易い。一方、第１の累積加算方法による場合には、ビット数が、他のブロックと異なる特別のレジスタやバスが必要となり、ＩＣのレイアウトが複雑化し、これにより、その面積が増加する。そして、ＩＣの面積増加は、ＩＣのコストに影響を与える。従って、本発明によれば、ＩＣの内部ブロックやバスを一定のビット数とすることができるので、ＩＣの高コスト化を防止することができる。
【０１１８】
以上、本発明を、累積加算装置、補間装置に適用した場合について説明したが、本発明は、この他、固定値の累積加算を行うあらゆる場合に適用可能である。
【０１１９】
なお、本実施例においては、固定値レジスタに記憶される固定値ｄＸを、整数部と小数部とに分けて説明したが、固定値ｄＸの分け方は、これに限定されるものではない。即ち、固定値ｄＸは、任意のビット数からなる上位ビット（整数部に相当する）と、残りの下位ビット（小数部に相当する）とに分け、累積加算を行うようにすることができる。
【０１２０】
【発明の効果】
以上の如く、本発明の累積加算方法および累積加算装置によれば、システムを大型化することなく、精度の高い（誤差の少ない）累積加算を、簡単かつ迅速に行うことが可能となる。
【０１２１】
また、本発明の補間方法および補間装置によれば、システムを大型化することなく、精度の高い（誤差の少ない）２点間の補間を、簡単かつ迅速に行うことが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した累積加算装置の一実施例の構成を示すブロック図である。
【図２】図１の累積加算装置の動作を説明するフローチャートである。
【図３】図１の累積加算装置の動作を説明するための図である。
【図４】図１の累積加算装置の動作を説明するための図である。
【図５】本発明を適用した補間装置の一実施例の構成を示すブロック図である。
【図６】図５の補間装置の動作を説明するフローチャートである。
【図７】図５の補間装置の動作を説明するための図である。
【図８】従来の累積加算方法（第１の累積加算方法）を説明するための図である。
【図９】従来の累積加算方法（第２の累積加算方法）を説明するための図である。
【図１０】従来のディジタル信号処理システム（補間システム）の一例の構成を示すブロック図である。
【図１１】図１０の補間システムから出力される信号を示す図である。
【図１２】従来の補間方法により生じる誤差を説明するための図である。
【符号の説明】
１  制御部
２  カウンタ
３  固定値レジスタ
４  加算結果レジスタ
１１  制御部
１２  演算回路
２１  信号発生部
２２  補間部
【図１】
0003695598.tif 000029
【図２】
0003695598.tif 000030
【図３】
0003695598.tif 000031
【図４】
0003695598.tif 000032
【図５】
0003695598.tif 000033
【図６】
0003695598.tif 000034
【図７】
0003695598.tif 000035
【図８】
0003695598.tif 000036
【図９】
0003695598.tif 000037
【図１０】
0003695598.tif 000038
【図１１】
0003695598.tif 000039
【図１２】
0003695598.tif 000040