(57)【特許請求の範囲】
【請求項１】
ディジタルデータに対し所定のしきい値を設定してこのしきい値内のデータ部分を丸め処理する第１工程と、丸め処理後のデータを積分演算する第２工程と、前記積分演算後のデータに対し所定のしきい値を設定してこのしきい値内のデータ部分を丸め処理する第３工程と、更に丸め処理後のデータを積分演算する第４工程と、前記第４工程による積分演算後のデータに対し所定のしきい値を設定してこのしきい値内のデータ部分を丸め処理する第５工程とを、有することを特徴とする積分演算処理方法。
【請求項２】
前記第１，第３又は第５工程において、ディジタルデータをｘ、しきい値をth、αを１未満の正数としたとき、ｘをしきい値ｔｈで丸める処理を行う関数Ｆ（ｘ、th）が、int（ａ）を実数ａの整数部を示す記号として、ｘ／th≧int（ｘ／th）＋αの場合に、Ｆ（ｘ、th）＝int（ｘ／th）×th＋thで表され、ｘ／th＜int（ｘ／th）＋αの場合に、Ｆ（ｘ、th）＝int（ｘ／th）×thで表されることを特徴とする請求項１に記載の積分演算処理方法。
【請求項３】
前記αは０．５であることを特徴とする請求項２に記載の積分演算処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アナログデータをデジタルでサンプリングして２回以上積分する際に、しきい値を設定して、数値の丸め処理を行い、単純な処理でかつ高速に積分演算の際に生じる誤差の発散を抑え、高精度の積分演算が可能となる数値演算の方法に関するものである。
【０００２】
【従来の技術】
センサ等で検出されたノイズを含む信号波形から、ノイズを除去する方法としては、ノイズ成分の周波数をカットするようなフィルタを用いるのが一般的であり、目的の波形が高周波ならばハイパスフィルタ、低周波ならローパスフィルタを用いる。しかし、これらのアナログフィルタは、目的とする周波数の波形まで歪ませてしまうので、目的の精度が得られない場合がある。また、確率統計的に既知で時間的に一様なホワイトノイズは、平滑化するのがもっとも一般的であり、デジタルフィルタであるカルマンフィルタ等は目的の波形と誤差を含む波形との最小二乗誤差を小さくするような処理を行うため、このような系の場合によく利用される。
【０００３】
例えば、加速度センサ（又は角加速度センサ）を使用して、加速度（又は角加速度）を測定すると、図６に示すような結果が得られる。測定方向以外からの入力は、他軸感度により誤差として影響するが、これは前述したホワイトノイズとは異なり、確率統計的なものではない。センサにより測定された加速度（又は角加速度）を２階積分して得られる距離（又は角度）には、誤差も積分されるために、この誤差が時間とともに累積し、センサが装着された移動体が停止した後も距離（又は角度）が変化し、実際には移動していないにも拘わらず、あたかも移動しているような測定結果が得られてしまう。
【０００４】
図７は図６の測定結果を１回積分処理して角速度を求めた結果であり、図８は更に積分処理して角度を求めた結果を示す。図中、理論値を示してあるが、誤差の積分に伴い、移動体の停止後も角速度が有意値を持ち、角度は低下していく。
【０００５】
１階積分（図７）よりも２階積分（図８）による結果の方がより大きな誤差となるのは明白であるため、速度（又は角速度）ではなく、距離（又は角度）を必要とする場合には、測定値中に含まれる誤差成分を除去する必要がある。
【０００６】
【発明が解決しようとする課題】
しかしながら、前述のカルマンフィルタのような高度な数学的手法を使用して誤差成分を除去しようとすると、複雑なアルゴリズムが必要であるため、その処理のためには、高速で高価なＣＰＵ（例えば３２bit ＲＩＳＣ  ＣＰＵ）が必要となり、装置コスト及び処理コストが著しく上昇する。
【０００７】
このため、比較的安価なＣＰＵでも高速で処理することができるように、簡単なアルゴリズムが求められているが、単に平均化するだけのような単純な手法を使用すると、高速ではあるが、前述のように目的とする波形までも歪んでしまうので、所望の精度を得ることができないという難点がある。
【０００８】
本発明はかかる問題点に鑑みてなされたものであって、簡素なアルゴリズムで誤差成分を除去することができ、ＣＰＵ等に過大な性能を必要とせず、高精度で積分処理することができる積分演算処理方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明に係る積分演算処理方法は、ディジタルデータに対し所定のしきい値を設定してこのしきい値内のデータ部分を丸め処理する第１工程と、丸め処理後のデータを積分演算する第２工程と、前記積分演算後のデータに対し所定のしきい値を設定してこのしきい値内のデータ部分を丸め処理する第３工程と、更に丸め処理後のデータを積分演算する第４工程と、前記第４工程による積分演算後のデータに対し所定のしきい値を設定してこのしきい値内のデータ部分を丸め処理する第５工程とを、有することを特徴とする。
【００１１】
前記第１，第３又は第５工程において、ディジタルデータをｘ、しきい値をth、αを１未満の正数としたとき、ｘをしきい値ｔｈで丸める処理を行う関数Ｆ（ｘ、th）は、int（ａ）を実数ａの整数部を示す記号として、下記数式１及び２により表される。
【００１２】
【数１】
Ｆ（ｘ、th）＝int（ｘ／th）×th＋th
但し、ｘ／th≧int（ｘ／th）＋αの場合
【００１３】
【数２】
Ｆ（ｘ、th）＝int（ｘ／th）×th
但し、ｘ／th＜int（ｘ／th）＋αの場合
なお、このαは０．５であることが誤差をより小さくする上で好ましい。
【００１４】
【発明の実施の形態】
以下、本発明の実施例について添付の図面を参照して具体的に説明する。図１は本発明の実施例方法に使用する装置を示すブロック図である。センサ１が検出したアナログ信号、例えば、加速度又は角加速度の信号Ｓは信号処理部２に入力され、この信号処理部２において、初期条件の判定及びオフセットの検出及び除去を行い、更に、アナログ／ディジタル変換器により所定のサンプリングタイムでディジタル信号に変換される。このディジタル信号は数値演算部３に入力され、所定の積分演算が実施された後、演算結果がディスプレイ等の外部の出力デバイス４に出力される。
【００１５】
数値演算部３においては、ディジタル変換された加速度又は角加速度信号ｘ（ディジタルサンプリングされた測定データ）がデータ受信処理され（ステップＳ１）、補正処理された後（ステップＳ２）、しきい値をth１として数値丸め処理を受ける（ステップＳ３）。このデータｘの数値丸め処理は下記数式３にて表され、丸められた数値がｆとなる。
【００１６】
【数３】
ｆ＝Ｆ（ｘ、th１）
この数式３を数式１及び２のもとで実施すると、図２に示すように、しきい値内のデータが０となる。即ち、図２に示すように、データがしきい値th内で変動しても、それはすべて０となり、積分値は０となる。そこで、このｆを時間で積分して速度又は角速度を求める（ステップＳ４）。そして、この積分値を下記数式４にて示すように、しきい値をth２として丸め処理する。
【００１７】
【数４】
ｇ＝Ｆ（∫fdt，th２）
次いで、下記数式５に示すように、得られたデータｇを時間ｔで積分し、同様にしきい値をth３として関数Ｆにより、丸め処理する（ステップＳ５）。
【００１８】
【数５】
ｈ＝Ｆ（∫gdt，th３）
そして、この２階積分値ｈを数値演算部３の外部に出力し（ステップＳ６）、ディスプレイ等の出力デバイス４に表示させる。なお、数値演算部３は１個の集積回路（ＩＣ）で構成することができるが、サンプリングを行う信号処理部２もこのＩＣ内に組み込むことができる。
【００１９】
このように構成された本実施例方法においては、従来の欠点を解消するために、先ず、センサ１により測定された加速度又は角加速度の値ｘをしきい値th１を使用して数値的に関数Ｆにより丸める処理を行う。この丸め処理は、数式１及び２と、図２に示すように、しきい値th１内の数値を０にするものであるが、その結果、図３に示すように、バラツキが小さいデータｆになる。
【００２０】
次いで、このデータｆを時間ｔで積分し、更に、しきい値th２を使用して同様の丸め処理を行い、１階の積分結果とする（ステップＳ４）。そして、得られたデータｇを時間ｔで積分し、更に、しきい値th３を使用して同様の丸め処理を行い、２階の積分結果とする（ステップＳ５）。
【００２１】
この本実施例による２階積分後のデータｈを図４に示す。この図４に示すように、本実施例方法により積分処理することにより、理論値と同様のデータを高精度で得ることができる。これに対し、従来方法により２階積分した結果（図８参照）を図４に合わせて示すが、この従来方法の場合は、角度一定になり停止している場合に、誤差が時間と共に、増幅されてしまう。従って、図５に角度誤差を示すように、本実施例の場合には、停止している場合に極めて小さな誤差が生じるだけでこの誤差が増大することはないが、従来の場合は、時間の経過と共に、誤差が増大していく。
【００２２】
このように、本実施例においては、従来に比して誤差が極めて少なく、また、誤差の累積により誤差の増大が生じない。このため、本実施例方法は演算精度が極めて高い。特に、移動体が停止している場合に、上述の効果が顕著である。
【００２３】
なお、本発明は上記実施例に限定されないことはもちろんである。例えば、上記実施例において、丸め処理は数式１及び２により表される関数Ｆによるものであったが、これに限るものではなく、切り捨て又は切り上げにより丸め処理することも可能である。このように、誤差を除去するような関数又は演算であれば、本発明の数値丸め処理に使用することができる。
【００２４】
また、上記実施例においては、角加速度センサ１の出力から角速度及び角度を算出する例を示したが、本発明は２階積分を必要とするあらゆるシステムに応用できる。例えば、加速度センサを用いて、速度及び距離を算出する場合にも適用することができる。
【００２５】
更に、上記実施例は、２階積分についてのものであるが、１階積分に本発明を適用してもよいことは勿論である。但し、１階積分への適用よりも、２階積分への適用の方が効果は大きい。また、３階積分以上に本発明を適用した場合は、更に優れた効果が得られる。
【００２６】
なお、積分演算自体は公知の方法によればよく、種々の方法を使用することができる。
【００２７】
【発明の効果】
以上説明したように、本発明によれば、デジタルデータを積分処理する際の誤差が小さく、この誤差の累積を回避することができるので、極めて高精度で積分処理することができる。また、センサの出力が０の場合においても、即ち、移動体が停止している場合にも、積分後のデータの発散が防止される。しかも、アルゴリズムが単純なので、他のアルゴリズムに比べて高速に演算することができると共に、ＣＰＵ及びメモリ等の性能が低くても足り、低コストでデバイスを構成することができる。
【図面の簡単な説明】
【図１】本発明の実施例方法に使用する装置のブロック図である。
【図２】丸め処理の原理を説明する図である。
【図３】関数Ｆにより丸め処理されたデータを示す図である。
【図４】本発明の実施例方法により２階積分されたデータを理論値及び従来データと比較して示すグラフ図である。
【図５】実施例方法と従来方法との誤差を比較するグラフ図である。
【図６】センサによる角加速度の測定結果を示すグラフ図である。
【図７】従来方法により、積分演算を１回実行した後のデータを示すグラフ図である。
【図８】従来方法により積分演算を２回実行した後のデータを示すグラフ図である。
【図９】従来の積分演算方法による誤差を示すグラフ図である。
【符号の説明】
１：センサ
２：信号処理部
３：数値演算部
４：出力デバイス
【図１】
0004097318.tif 000002
【図２】
0004097318.tif 000003
【図３】
0004097318.tif 000004
【図４】
0004097318.tif 000005
【図５】
0004097318.tif 000006
【図６】
0004097318.tif 000007
【図７】
0004097318.tif 000008
【図８】
0004097318.tif 000009
【図９】
0004097318.tif 000010