(57)【要約】【課題】遅延されない本来のデータに基づいて所定のデータ演算を行うデータ演算処理装置を実現すること。【解決手段】演算ソースメモリから分割取得した演算ソースの前後のデータを用いて分割演算による所定のデータ演算処理を行うデータ演算処理装置において、  前記分割取得した演算ソースのデータから次回の演算に使用するデータをキャッシュすることにより、前記分割演算に起因する演算用データの不足分に応じて演算結果点数を削減することを特徴とするもの。【選択図】                    図１
2011170425.tif 000002
【特許請求の範囲】
【請求項１】
演算ソースメモリから分割取得した演算ソースの前後のデータを用いて分割演算による所定のデータ演算処理を行うデータ演算処理装置において、
前記分割取得した演算ソースのデータから次回の演算に使用するデータをキャッシュすることにより、前記分割演算に起因する演算用データの不足分に応じて演算結果点数を削減することを特徴とするデータ演算処理装置。
【請求項２】
前記キャッシュするデータは、前記分割取得した演算ソースの終端から３点目と４点目のデータであることを特徴とする請求項１に記載のデータ演算処理装置。
【請求項３】
前記データ演算処理は、微分演算であることを特徴とする請求項１または請求項２に記載のデータ演算処理装置。
【請求項４】
演算ソースメモリから分割取得した演算ソースの前後のデータを用いて演算処理部が分割演算による所定のデータ演算処理を行うデータ演算処理装置において、
前記演算処理部は、
前記分割取得した演算ソースのデータから次回の演算に使用するデータをキャッシュするデータキャッシュ制御部と、
ラグランジェの内挿公式を格納する公式格納部と、
この公式格納部から演算するデータに応じて所定の公式を選択する適用公式選択部と、
この適用公式選択部で選択された公式に基づき所定のデータ演算を行う演算部、
で構成されていることを特徴とするデータ演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ演算処理装置に関し、詳しくは、微分演算など、演算にあたって前後のデータを用いるデータ演算処理の改善に関するものである。
【０００２】
波形測定装置における波形演算処理機能の一つに、微分演算処理がある。たとえば、センサから出力される測定対象の位置変化を表す波形データに微分演算処理を施すことにより、測定対象の速度波形データが得られる。
【０００３】
図４はこのような従来のデータ演算処理装置の一例を示す構成説明図であり、波形測定装置における微分演算処理の例を示している。演算ソースメモリ１には時系列的に測定された大量の波形データが格納されている。これらの波形データは演算レジスタ２に読み込まれ、微分演算部３により所定の演算式に基づく微分演算処理が行われる。微分演算部３の微分演算処理結果は再び演算レジスタ２格納され、さらに演算結果バッファ４に格納される。
【０００４】
演算レジスタ２において、指定されたデータ長の波形データを演算ソースメモリ１から一度に取り込んで計算しようとすると、計算結果を一時的に格納するために膨大なデータ格納領域が必要になり、非現実的なサイズになってしまう。そこで、データを所定数（たとえば１０２４点）毎に分割して演算する分割演算が行われている。
【０００５】
このような分割演算は、以下のステップで行われる。
１）演算ソースメモリ１から１０２４点のデータを演算ソースとして取得し、演算レジスタ２に格納する。
２）微分演算部３は演算レジスタ２に格納されたデータに対して演算式に従った微分演算処理を行い、演算結果を再び演算レジスタ２に格納する。
３）演算レジスタ２における演算結果を演算結果バッファ４に格納する。
４）演算結果バッファ４に格納された演算結果点数(１０２４点)を演算レジスタ２の演算開始位置に加算し、新しい演算開始位置で１）〜３）の処理を、指定された演算点数に達するまで繰り返して続ける。
【０００６】
ところで、微分演算部３では、図５に示すようなラグランジェの内挿公式を使用している。図５において、（Ａ）は演算ソースメモリ１から演算レジスタ２に取り込まれる波形データｆ０〜ｆｋ〜ｆｎを示し、（Ｂ）は（Ａ）の各点fｘ０〜ｘｋ〜ｘｎにおける一次微分値の演算式を示し、（Ｃ）は演算レジスタ２に入力されるデータ列を示し、（Ｄ）は演算レジスタ２から演算結果バッファ４に出力されるべき本来の一次微分値のデータ列を示し、（Ｅ）は図４の構成で演算レジスタ２から演算結果バッファ４に出力される一次微分値のデータ列を示している。
【０００７】
各点fｘ０〜ｘｋ〜ｘｎにおける一次微分値の演算式は、以下のように表される。
点ｘ０→f'0＝(-25f0+48f1-36f2+16f3-3f4)/12h  （第１公式）
点ｘ1→f'1＝(-3f0-10f1+18f2-6f3+f4)/12h  （第２公式）
点ｘk→f'k＝(fk-2-8fk-1+8f3-f4)/12h  （第３公式）
点ｘn-n→f'n-1＝(-fn-4+6fn-3-18fn-2+10fn-1-3fn)/12h  （第４公式）
点ｘn→f'n＝(-3fn-4-16fn-3+36fn-2-48fn-1+25fn)/12h  （第５公式）
なお、ｈはサンプリング周期である。
【０００８】
このように、微分演算には５次のラグランジェの内挿公式を使用しているので、各点における演算対象データの前後にはそれぞれ２点のデータが必要になる。
そこで、図４の分割演算では、演算レジスタ２の最後のデータ２点を次の演算のためにキャッシュしておくつなぎ目処理を行っている。
【０００９】
特許文献１には、微分点を含む複数のデータについて、たとえばラグランジェの補間公式に基づく数値微分を演算して微分波形を表示する構成が記載されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１０−３８６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ところが、つなぎ目処理にあたっては、図６に示すような問題がある。すなわち、今回Ｎの演算にあたり、前回Ｎ−１の演算に基づくつなぎ目データは演算レジスタから取得できるが、次回Ｎ＋１の演算はまだ実行されていないので演算レジスタにはデータが存在せず、つなぎ目データを取得できない。
【００１２】
さらに、従来の分割演算では、演算レジスタ２で取得したデータ数をそのまま演算結果バッファ４に出力する仕組みになっているため、最初の分割演算で発生する２点の微分結果不足分をどう補うかが問題になる。
【００１３】
そこで、従来の構成では、図７に示すように前回Ｎ−１の微分結果の先頭２点に「０」を挿入格納してデータ２点分遅延させ、前回Ｎ−１の演算レジスタから終端４点のデータをキャッシュして演算する方法をとっている。
【００１４】
図８は従来の具体的な演算例の説明図であり、測定チャネルＣＨ１の２５００点のデータと測定チャネルＣＨ２の２５００点のデータを加算した結果に対して微分演算を行う例を示している。
【００１５】
図８において、演算ソースメモリ１には、測定チャネルＣＨ１の２５００点のデータと測定チャネルＣＨ２の２５００点のデータが格納されている。
【００１６】
演算レジスタ２は、１回目の処理として、演算ソースメモリ１から、まず測定チャネルＣＨ１のデータを１点目から１０２４点取り込み、続いて測定チャネルＣＨ２のデータも１点目から１０２４点取り込んで加算する。そして、最後のデータ４点を次回の微分演算用にキャッシュしておく。
【００１７】
微分演算部３は、加算された演算レジスタ２のＣＨ１＋ＣＨ２のデータを微分してその結果を再び演算レジスタ２に格納するが、最後の２点の微分には２回目に演算されるＣＨ１＋ＣＨ２のデータの先頭２点の演算結果が必要になる。ところが、現時点では存在しないので、微分データの先頭に「０」を２点挿入して微分データを２点ずらし、１０２４点の微分データを作成する。
【００１８】
演算レジスタ２は、２回目の処理として、演算ソースメモリ１から、測定チャネルＣＨ１のデータを１０２４点目から１０２４点取り込み、続いて測定チャネルＣＨ２のデータも１０２４点目から１０２４点取り込んで加算する。そして、最後のデータ４点を次回の微分演算用にキャッシュしておく。
【００１９】
微分演算部３は、前回キャッシュしたデータを用いて加算された演算レジスタ２のＣＨ１＋ＣＨ２の１０２４点目から２０４７点目までの微分演算を行い、その結果を再び演算レジスタ２に格納する。
【００２０】
演算レジスタ２は、３回目の処理として、演算ソースメモリ１から、測定チャネルＣＨ１のデータを２０４８点目から２４９９点目までの４５２点取り込み、続いて測定チャネルＣＨ２のデータも２０４８点目から２４９９点目までの４５２点取り込んで加算する。
【００２１】
微分演算部３は、前回キャッシュしたデータを用いて加算された演算レジスタ２のＣＨ１＋ＣＨ２の２０４８点目から２４９９点目までの４５２点の微分演算を行い、その結果を再び演算レジスタ２に格納する。
【００２２】
しかし、算出結果の先頭２点には「０」が格納されているために微分演算の結果として好ましくないという問題がある。
【００２３】
本発明は、これらの問題点を解決するものであり、その目的は、遅延されない本来のデータに基づいて所定のデータ演算を行うデータ演算処理装置を実現することにある。
【課題を解決するための手段】
【００２４】
上記目的を達成するために、本発明のうち請求項１に記載の発明は、
演算ソースメモリから分割取得した演算ソースの前後のデータを用いて分割演算による所定のデータ演算処理を行うデータ演算処理装置において、
前記分割取得した演算ソースのデータから次回の演算に使用するデータをキャッシュすることにより、前記分割演算に起因する演算用データの不足分に応じて演算結果点数を削減することを特徴とする。
【００２５】
請求項２記載の発明は、請求項１に記載のデータ演算処理装置において、
前記キャッシュするデータは、前記分割取得した演算ソースの終端から３点目と４点目のデータであることを特徴とする。
【００２６】
請求項３記載の発明は、請求項１または請求項２に記載のデータ演算処理装置において、前記データ演算処理は、微分演算であることを特徴とする。
【００２７】
請求項４記載の発明は、
演算ソースメモリから分割取得した演算ソースの前後のデータを用いて演算処理部が分割演算による所定のデータ演算処理を行うデータ演算処理装置において、
前記演算処理部は、
前記分割取得した演算ソースのデータから次回の演算に使用するデータをキャッシュするデータキャッシュ制御部と、
ラグランジェの内挿公式を格納する公式格納部と、
この公式格納部から演算するデータに応じて所定の公式を選択する適用公式選択部と、
この適用公式選択部で選択された公式に基づき所定のデータ演算を行う演算部、
で構成されていることを特徴とする。
【発明の効果】
【００２８】
これらにより、遅延されない本来のデータに基づいて所定のデータ演算を行うことができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施例を示す構成説明図である。
【図２】本発明における演算の概略説明図である。
【図３】本発明の具体的な演算例の説明図である。
【図４】従来のデータ演算処理装置の一例を示す構成説明図である。
【図５】図５の動作を説明するタイミングチャートである。
【図６】本発明の具体的な演算例の説明図である。
【図７】従来のデータ演算処理装置の一例を示す構成説明図である。
【図８】図５の動作を説明するタイミングチャートである。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照して、本発明を詳細に説明する。図１は本発明の一実施例を示す構成説明図であり、図４と共通する部分には同一の符号を付けている。図１において、微分演算部３は、データキャッシュ制御部３１と、前述の第１から第５までのラグランジェの内挿公式を格納する公式格納部３２と、微分演算対象データに応じて演算に用いる適用公式を選択する適用公式選択部３３と、適用公式選択部３３で選択された公式を用いて微分演算を行う演算部３４とで構成されている。
【００３１】
図２は本発明における演算の概略説明図であり、図７と共通する部分には同一の符号を付けている。図２において、分割演算を行うのにあたり、データの遅延をなくするようにするために、演算に必要なデータが足りない分は出力データを２点減らし、次回の演算を２点前のデータから始めるようにしている。
【００３２】
具体的には、微分演算部３のデータキャッシュ制御部３１は、演算レジスタ２に取り込まれたデータについて、図２に示すように、終端４点のデータのうちの先頭２点をキャッシュしておき、次回の微分演算に用いるように制御する。
【００３３】
図３は本発明の具体的な演算例の説明図であり、図８と共通する部分には同一の符号を付けていて、図８と同様に測定チャネルＣＨ１の２５００点のデータと測定チャネルＣＨ２の２５００点のデータを加算した結果に対して微分演算を行う例を示している。
【００３４】
図３において、演算ソースメモリ１には、測定チャネルＣＨ１の２５００点のデータと測定チャネルＣＨ２の２５００点のデータが格納されている。
【００３５】
演算レジスタ２は、１回目の処理として、演算ソースメモリ１から、まず測定チャネルＣＨ１のデータを１点目から１０２４点取り込み、続いて測定チャネルＣＨ２のデータも１点目から１０２４点取り込んで加算する。ここで、データキャッシュ制御部３１は、微分算出できない点（１０２２点目）から前２点のデータを次回微分に使用するデータとしてキャッシュするように制御する。
【００３６】
演算部３４は、加算された演算レジスタ２におけるＣＨ１＋ＣＨ２のデータの０点目から１０２１点目までの１０２２点について微分演算を行い、それらの演算結果を演算結果バッファ４に出力する。すなわち、演算結果点数を２点減らし、次回の演算開始点は演算結果点数１０２２点を足した１０２２点目となる。
【００３７】
これらの演算にあたり、適用公式選択部３３は、それぞれの微分演算対象データの順番に応じた所定のラグランジェの内挿公式を公式格納部３２から選択して演算部３４に出力する。すなわち、先頭の０点目のデータには第１の公式を選択して適用し、１点目のデータには第２の公式を選択して適用し、２番目以降１０２１点目までのデータには第３の公式を選択して適用する。
【００３８】
演算レジスタ２は、２回目の処理として、演算ソースメモリ１から、測定チャネルＣＨ１のデータを１０２２点目から１０２４点取り込み、続いて測定チャネルＣＨ２のデータも１０２２点目から１０２４点取り込んで加算する。ここで、データキャッシュ制御部３１は、微分算出できない点（２０４４点目）から前２点のデータを次回微分に使用するデータとしてキャッシュするように制御する。
【００３９】
微分演算部３は、前回キャッシュしたデータを用いて加算された演算レジスタ２のＣＨ１＋ＣＨ２の１０２２点目から２０４３点目までの微分演算を、適用公式選択部３３で選択された第３の公式を用いて行い、その結果を再び演算レジスタ２に格納する。この段階でも演算結果点数を２点減らし、次回の演算開始点は演算結果点数１０２２点を足した２０４４点目となる。
【００４０】
演算レジスタ２は、３回目の処理として、演算ソースメモリ１から、測定チャネルＣＨ１のデータを２０４４点目から２４９９点目までの４５６点取り込み、続いて測定チャネルＣＨ２のデータも２０４４点目から２４９９点目までの４５６点取り込んで加算する。
【００４１】
微分演算部３は、前回キャッシュしたデータを用いて加算された演算レジスタ２のＣＨ１＋ＣＨ２の２０４４点目から２４９９点目までの４５６点の微分演算を行い、その結果を再び演算レジスタ２に格納する。最終の演算結果点数は、演算ソースメモリ１に格納されているデータ点数と同じｎ点となる。
【００４２】
これらの演算にあたり、適用公式選択部３３は、それぞれの微分演算対象データの順番に応じた所定のラグランジェの内挿公式を公式格納部３２から選択して演算部３４に出力する。すなわち、先頭の２０４４点目から２４９７点目までのデータには第３の公式を選択して適用し、２４９８点目のデータには第４の公式を選択して適用し、最終２４９９点目のデータには第５の公式を選択して適用する。
【００４３】
微分結果のみを正しく出力するだけならば、微分演算が終了した時点でデータを２点ずらすなどの手法も考えられるが、その手法ではすべての点において微分演算を終了させておかなければならず、微分を含む演算式の演算を行う場合、分割演算毎に行う微分結果として本来の微分結果を用いることは困難である。
これに対し、図１に示す構成の本発明によれば、微分を含む演算式の分割演算時に本来の微分結果を用いることができるため、より正しい演算結果を算出することができる。
【００４４】
なお、上記各実施例では、波形データに対する微分演算の例について説明したが、これに限るものではなく、微分演算と同様に前後データを必要とする移動平均処理やフィルタ処理などにも適用できるものであり、これらに適用することにより、演算時の位相のずれの軽減が期待できる。
【００４５】
以上説明したように、本発明によれば、微分演算などの前後のデータを用いるデータ演算処理において、データを遅延させることなく所定の演算処理が行えるデータ演算処理装置が実現できる。
【符号の説明】
【００４６】
１  演算ソースメモリ
２  演算レジスタ
３  演算処理部
３１  データキャッシュ制御部
３２  公式格納部
３３  適用公式選択部
３４  演算部
４  演算結果バッファ
【図１】
2011170425.tif 000003
【図２】
2011170425.tif 000004
【図３】
2011170425.tif 000005
【図４】
2011170425.tif 000006
【図５】
2011170425.tif 000007
【図６】
2011170425.tif 000008
【図７】
2011170425.tif 000009
【図８】
2011170425.tif 000010