(57)【要約】【課題】消費電力を低減させること。【解決手段】携帯機器１００は、マイコン１７０を有する。マイコン１７０は、加速度センサ１６０のセンサ値の低周波数成分と、加速度センサ１６０のセンサ値の高周波数成分との内積を算出する内積演算部を有する。また、マイコン１７０は、上記低周波数成分と高周波数成分の外積を算出する外積演算部を有する。マイコン１７０は、内積演算部の演算結果と、外積演算部の演算結果とを基にして、携帯機器１００の状態を判定する。【選択図】図１
2012063208.tif 000002
【特許請求の範囲】
【請求項１】
加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出する内積演算部と、
前記低周波数成分と、前記高周波数成分との外積を算出する外積演算部と、
前記内積演算部の算出結果と、前記外積演算部の算出結果とを基にして、移動状態を判定する状態判定部と
を有することを特徴とする状態判定装置。
【請求項２】
前記加速度センサの出力値を平均化することで、前記低周波数成分を算出する低周波数成分算出部と、前記加速度センサの出力値から前記低周波数成分を減算することで、前記高周波数成分を算出する高周波数成分算出部とを更に有することを特徴とする請求項１に記載の状態判定装置。
【請求項３】
前記状態判定部は、前記内積演算部の算出結果の値が極大点から極小点となるまでのサンプリング数または前記内積演算部の算出結果の極小点から極大点となるまでのサンプリング数を基にして、重力方向の振動数を算出し、該振動数と前記移動状態を識別するための第１の閾値とを比較することで、前記移動状態を判定することを特徴とする請求項１または２に記載の状態判定装置。
【請求項４】
前記状態判定部は、前記外積演算部の算出結果から低周波成分および高周波数成分を取り除いた値と乗り物に乗って移動しているか否かを識別するための第２の閾値とをさらに比較して、乗り物によって移動しているか否かを判定し、乗り物で移動している場合には、前記振動数と前記第１の閾値とを比較して乗り物の種別をさらに判定することを特徴とする請求項１、２または３に記載の状態判定装置。
【請求項５】
コンピュータに、
加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出し、
前記低周波数成分と、前記高周波数成分との外積を算出し、
内積の算出結果と外積の算出結果とを基にして、前記加速度センサの移動状態を判定する処理を実行させる状態判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、状態判定装置等に関する。
【背景技術】
【０００２】
近年の携帯機器は非常に高性能化してきており、様々な機能を有している。例えば、携帯機器は、通話するための機能、インターネットをブラウズするための機能、ゲーム機能等を有している。
【０００３】
また最近の携帯機器には、加速度センサが取り付けられている。携帯機器は、加速度センサから出力されるセンサ値に基づいて、携帯機器が今どのような状態であるのかを判定する。例えば、携帯機器の状態とは、携帯機器を保持するユーザが歩いている状態や、ユーザが電車、バス、自動車等に乗っている状態に対応する。以下において、携帯端末が状態を認識することを状態認識と表記する。この状態認識は、ライフログやコンテキスト連動サービスなどのアプリに利用される。
【０００４】
ここで、携帯機器は、一つ以上のメインＣＰＵ（Central  Processing  Unit）を有しており、このメインＣＰＵが上述した各種の機能を担う。
【０００５】
しかし、メインＣＰＵは高性能であるが故に、消費電力が大きいという欠点がある。携帯機器はバッテリーで駆動するため、携帯機器をできるだけ長く駆動させるためには、メインＣＰＵの消費電力をできるだけ低減させることが求められる。このため、従来の携帯機器は、メインＣＰＵの状態を通常時には休止状態としておき、必要なときにだけメインＣＰＵを稼働させている。
【０００６】
携帯機器は、必要最小限の機能を持ったマイコンを有している。メインＣＰＵの状態が休止状態の場合には、携帯機器はマイコンを稼働させ、メインＣＰＵの代わりをさせる。このマイコンは、メインＣＰＵと比較して性能は低いが、消費電力も低い。このため、メインＣＰＵの機能の一部の処理を代わりに実行させることで、消費電力を低下させることができる。このマイコンが得意とする演算は、整数の四則演算、メモリ操作、整数の大小比較、条件分岐である。整数の四則演算は、加算、減算、積算、除算である。
【０００７】
また、マイコンは、平方根や三角関数を扱う演算を得意としないが、演算することはできる。例えば、ｘの平方根ｒを求める場合には、下記の式（１）の演算を繰り返し実行すればよい。このような演算を実行することで、マイコンは、演算時間はかかるものの平方根を求めることができる。
ｒ＝（ｘ／ｒ＋ｒ）×０．５・・・（１）
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平６−３２４０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術では、マイコンがメインＣＰＵの代わりに状態認識を行うことができず、消費電力を低減させることができないという問題があった。
【００１０】
状態認識を行うためには、例えば、三角関数の演算が必要となる。非力なマイコンは、三角関数の演算を得意としないため、演算結果を得るまでに時間がかかってしまう。状態認識を行う場合には、迅速に状態を判定することが求められるため、演算時間の長いマイコンを用いることができず、メインＣＰＵを動作させ、状態認識を行う他なかった。また、状態認識は、常時行うことが多い。このため、メインＣＰＵを継続的に動作させることになり、消費電力を低減させることができなかった。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、消費電力を低減させることができる状態判定装置および状態判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
開示の状態判定装置は、加速度センサの出力値の低周波数成分と、加速度センサの出力値の高周波数成分との内積を算出する内積演算部を有する。また、開示の装置は、低周波数成分と、高周波数成分との外積を算出する外積演算部を有する。また、開示の装置は、内積演算部の計算結果と、外積演算部の計算結果とを基にして、移動状態を判定する状態判定部を有することを要件とする。
【発明の効果】
【００１３】
開示の状態判定装置によれば、消費電力を低減させることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施例にかかる携帯機器の構成を示す図である。
【図２】図２は、鉛直方向の加速度の大きさと水平方向の加速度の大きさを示す図である。
【図３】図３は、鉛直方向の加速度の大きさと水平方向の加速度の大きさとの関係を示す図である。
【図４】図４は、Ｚｎ−ＧおよびＲを内積と外積で得る原理について説明するための図である。
【図５】図５は、マイコンの構成を示す図である。
【図６】図６は、Ｒ２からＲａｖｅが生成されるまでの信号の変化を示す図である。
【図７】図７は、ＬＰＦの構成を示す機能ブロック図である。
【図８】図８は、ＨＰＦの構成を示す図である。
【図９】図９は、本実施例にかかるマイコンの処理手順を示すフローチャートである。
【図１０】図１０は、ＬＰＦの処理手順を示すフローチャートである。
【図１１】図１１は、角度ｐおよび角度ｒと重力ベクトルＸｇとの関係を示す図である。
【図１２】図１２は、加速度センサの座標系と重力方向および鉛直進行方向の座標系とを示す図である。
【発明を実施するための形態】
【００１５】
実施例の説明を行う前に、発明者が考案した、マイコンによる状態認識の方法について説明する。なお、以下に説明する方法は、周知技術ではない。
【００１６】
携帯機器がどのような姿勢で把持されているのか不明な場合には、加速度センサの座標系で出力されたセンサ値を重力方向と水平方向の座標系に変換する。以下に、加速度センサの座標系で出力されたセンサ値を、重力方向と水平方向の座標系に変換する処理を示す。また、以下ではセンサ値を加速度ベクトルとして説明する。
【００１７】
まず、加速度センサの座標系から見た重力方向を推定する。加速度センサは加速度を検知するものなので、当然重力加速度も検出する。このため、加速度センサが静止している場合には、加速度センサは重力ベクトルと等しい値を出力する。ここで、重力ベクトルは、重力加速度のベクトル表記であり、大きさは１Ｇと等しい。
【００１８】
携帯機器を動かすと、加速度センサが出力する加速度ベクトルＸｓは動きに応じた値となる。この加速度ベクトルＸｓに時定数の大きなローパスフィルタをかけることで、重力ベクトルＸｇを得ることができる。この重力ベクトルＸｇを求める演算は、例えば、式（２）を演算することと等しい。
Ｘｇ＝ｋＸｓ＋（１−ｋ）Ｘｇ・・・（２）
【００１９】
式（２）のｋは、０〜１に含まれる定数であり、ｋの値は時定数によって決まる。時定数が大きいほど、ｋの値は小さくなる。また、加速度ベクトルＸｓを式（３）に示すものとし、重力ベクトルを式（４）に示すものとする。
Ｘｓ＝（ｘｓ、ｙｓ、ｚｓ）Ｔ・・・（３）
Ｘｇ＝（ｘｇ、ｙｇ、ｚｇ）Ｔ・・・（４）
【００２０】
続いて、加速度ベクトルＸｓを鉛直方向と鉛直方向に垂直な２軸で表現された座標系でどのように見えるのかを演算する。加速度センサの座標系から見た重力ベクトルＸｇに対し、図１１に示す角度ｐと角度ｒとを定義する。図１１は、角度ｐおよび角度ｒと重力ベクトルＸｇとの関係を示す図である。
【００２１】
図１１において、線分１ａは、重力ベクトルＸｇをｘｚ平面に射影した線分である。角度ｐは、ｚ軸と線分１ａとの間の角度である。角度ｒは、線分１ａと重力ベクトルＸｇとの間の角度である。このように角度ｐと角度ｒを定義すると、以下の式（５）〜（８）が成り立つ。
【数１】
2012063208.tif 000003
【数２】
2012063208.tif 000004
【数３】
2012063208.tif 000005
【数４】
2012063208.tif 000006
【００２２】
式（５）〜（６）の関係から回転行列Ｒｐ、Ｒｒを作成することができる。回転行列Ｒｐは、式（９）に示すものとなる。回転行列Ｒｒは、式（１０）に示すものとなる。
【数５】
2012063208.tif 000007
【数６】
2012063208.tif 000008
【００２３】
上記の回転行列Ｒｐ、Ｒｒを用いることで、加速度ベクトルＸｓを、重力方向をｚ軸とした新しい座標系で表現することができる。新しい座標系の加速度ベクトルを加速度ベクトルＸｎと表記する。加速度ベクトルＸｎと、回転行列Ｒｐ、Ｒｒ、加速度ベクトルＸｓとの関係は、式（１１）に示すものとなる。なお、加速度ベクトルＸｎは、式（１２）で表される。
Ｘｎ＝Ｒｐ−１Ｒｒ−１Ｘｓ・・・（１１）
Ｘｎ＝（ｘｎ、ｙｎ、ｚｎ）Ｔ・・・（１２）
【００２４】
加速度ベクトルＸｎのｘ、ｙ、ｚ成分のうち、ｘ、ｙ成分が水平方向の成分となる。また、ｚ成分が鉛直方向の成分となる。ここで、加速度ベクトルＸｎのｘ、ｙ成分は、携帯機器を保持するユーザの進行方向と必ずしも一致していない。
【００２５】
このため、ｘ、ｙ成分の加減速パターンから適当なアルゴリズムを用いて、ｘ、ｙ成分と真の進行方向とのずれを算出する。真の進行方向とｘ、ｙ成分とのずれをｙａｗとする。例えば、大きく長い加速度が発生する方向を進行方向とし、この進行方向を基にしてｙａｗを算出する。得られたｙａｗを用いて式（９）、（１０）と同様に適当な三角関数の演算を行えばｚ軸周りの回転行列を導出できる。そこからＲｙａｗ−１Ｘｎを演算することで、ｚ軸が鉛直方向、ｘ軸が進行方向、ｙ軸が進行方向および鉛直方向と垂直な方向の座標系から、加速度センサが得た加速度ベクトルがとのように見えるか知ることができる。
【００２６】
図１２は、加速度センサの座標系と重力方向および鉛直進行方向の座標系とを示す図である。図１２において、座標系１０で表現された加速度ベクトルＸｓを座標系１１の表現に変換するためには、式（１１）で求めたＸｎに対し、座標系１１のＺ軸周りにｙａｗだけ回転させればよい。この演算が前段落でき記述したＲｙａｗ−１Ｘｎであり、式（１１）と合わせるとＲｙａｗ−１Ｒｐ−１Ｒｒ−１Ｘｓと表現できる。このようにして求めた座標系１１で表現された加速度ベクトルに基づいて、状態認識は行われる。
【００２７】
上記のように、状態認識を行うためには、加速度センサの座標系で出力されたセンサ値を重力方向と水平方向の座標系に変換することになる。そして、重力方向と水平方向の座標系に変換するためには、ｙａｗおよびＲｙａｗを算出することになる。このｙａｗおよびＲｙａｗを算出するためには、マイコンが苦手とする三角関数の演算が必要となる場合がある。なお、テーブル参照法やテーラ展開などを用いれば、マイコンは、三角関数の演算を行うことはできるが、メモリの消費量や繰り返し演算などマイコンにかかる負荷が大きく、演算時間も長くなってしまう。
【００２８】
続いて、本願の開示する状態判定装置および状態判定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００２９】
本実施例にかかる携帯機器の構成について説明する。携帯機器は、状態判定装置の一例である。図１は、本実施例にかかる携帯機器の構成を示す図である。図１に示すように、この携帯機器１００は、無線受信モジュール１１０、入力装置１２０、マイク１３０、ディスプレイ１４０、スピーカ１５０、加速度センサ１６０、マイコン１７０、メインＣＰＵ１８０、記憶部１９０を有する。
【００３０】
無線受信モジュール１１０は、例えば、他の携帯機器や無線基地局と通信を行う装置である。入力装置１２０は、携帯機器に各種の情報を入力する入力装置である。ユーザは、この入力装置１２０を操作して、データを携帯機器に入力する。入力装置１２０は、入力ボタンやタッチパネルに対応する。マイク１３０は、例えば、ユーザの音声を集音してメインＣＰＵ１８０に出力する装置である。
【００３１】
ディスプレイ１４０は、メインＣＰＵ１８０から出力されるデータを表示する装置である。スピーカ１５０は、メインＣＰＵ１８０から取得するデータに応じて、音声や音楽などを出力する装置である。加速度センサ１６０は加速度を測定し、測定結果となるセンサ値をマイコン１７０に出力する。
【００３２】
マイコン１７０は、センサ値を基にして携帯機器の状態認識を行う装置である。本実施例にかかるマイコン１７０は、上記に示したような三角関数を用いた演算を行わず、マイコンの得意な演算を利用して状態認識を行う。マイコン１７０は、状態認識の結果をメインＣＰＵ１８０に出力する。
【００３３】
メインＣＰＵ１８０は、例えば、通信機能、通話機能、インターネットブラウズ機能、マルチメディア機能などを有する装置である。また、メインＣＰＵ１８０は、例えば、状態認識の結果の履歴を記憶部１９０に記憶する。記憶部１９０は、各種のデータを記憶する記憶装置である。メインＣＰＵ１８０は、消費電力を抑えるため常時稼働することはなく、必要な場合にだけ稼働し、各種の処理を実行するものとする。例えば、入力装置１２０からの入力を受け付けた場合に、メインＣＰＵ１８０は動作を開始し、所定の処理が終了した後に休止状態となる。
【００３４】
次に、図１に示したマイコン１７０について具体的に説明する。このマイコン１７０は、センサ値に基づいて、鉛直方向の加速度の大きさと水平方向の加速度の大きさを求め、状態認識を行う。この鉛直方向の加速度の大きさを求める演算や、水平方向の加速度の大きさを求める演算は、マイコンの不得意な三角関数の演算等を含まない。
【００３５】
状態認識を厳密に行う場合には、前述のように三角関数の演算を行うこととなるが、鉛直方向の加速度の大きさと水平方向の加速度とを用いるだけで、状態認識を十分な精度で行うことができる。
【００３６】
図２は、鉛直方向の加速度の大きさと水平方向の加速度の大きさを示す図である。図２において、Ｚｎ−Ｇは、鉛直方向の加速度の大きさを示す。Ｒは、水平方向の加速度の大きさを示す。Ｘｓは、加速度ベクトルを示す。Ｘｇは、重力ベクトルを示す。重力ベクトルＸｇの大きさをＧとする。
【００３７】
図３は、鉛直方向の加速度の大きさと水平方向の加速度の大きさとの関係を示す図である。図３において、ベクトルＸｍは、加速度ベクトルＸｓから重力ベクトルＸｇを引いたものに対応する。重力ベクトルＸｇとベクトルＸｍとのなす角をθとすると、鉛直方向の加速度の大きさＺｎ−Ｇは、式（１３）のように示される。また、水平方向の加速度の大きさは、式（１４）のように示される。
Ｚｎ−Ｇ＝｜Ｘｍ｜ｃｏｓθ・・・（１３）
Ｒ＝｜Ｘｍ｜ｓｉｎθ・・・（１４）
【００３８】
上記の式（１３）および式（１４）は、三角関数を用いなくても重力ベクトルＸｇとベクトルＸｍを利用することで算出することができる。具体的に、式（１３）の計算は、重力ベクトルＸｇとベクトルＸｍとの内積を計算することに等しい。また、式（１４）の計算は、重力ベクトルＸｇとベクトルＸｍの外積を計算することに等しい。
【００３９】
ここで、Ｚｎ−ＧおよびＲを内積と外積で得る原理について説明する。図４は、Ｚｎ−ＧおよびＲを内積と外積で得る原理について説明するための図である。
【００４０】
まず、重力ベクトルＸｇおよびベクトルＸｍの内積から、Ｚｎ−Ｇを求める原理について説明する。重力ベクトルＸｇおよびベクトルＸｍの内積は、各ベクトルの成分を積和することで求められ、その値は｜Ｘｇ｜｜Ｘｍ｜ｃｏｓθに等しいことが知られている。例えば、重力ベクトルＸｇの成分を（ｘｇ、ｙｇ、ｚｇ）、ベクトルＸｍの成分を（ｘｎ、ｙｎ、ｚｎ）とすると、式（１５）が成り立つ。また、Ｘｇの大きさが１Ｇであることに着目すると、加速度の単位をＧとすれば式（１５）は式（１６）と等しいこととなる。
【数７】
2012063208.tif 000009
【数８】
2012063208.tif 000010
【００４１】
式（１６）の右辺と、式（１３）の右辺は等しいので、重力ベクトルＸｇおよびベクトルＸｍの内積から、Ｚｎ−Ｇの大きさを求めることができる。Ｚｎ−Ｇの大きさは、図４の２０ａに対応する。
【００４２】
次に、重力ベクトルＸｇおよびベクトルＸｍの外積から、Ｒを求める原理について説明する。重力ベクトルＸｇおよびベクトルＸｍの外積は、各ベクトルの成分を積差することで求められ、その大きさは図４に示す平行四辺形の面積２０ｂと等しい。平行四辺形の面積２０ｂは、底辺２０ｃを重力ベクトルＸｇの大きさ｜Ｘｇ｜とし、高さ２０ｄを｜Ｘｍ｜ｓｉｎθとすると、式（１７）によって求められる。また、Ｘｇの大きさが１Ｇであることに着目すると、加速度の単位をＧで表現すると式（１７）は式（１８）と等しいこととなる。
Ｓ＝｜Ｘｇ｜｜Ｘｍ｜ｓｉｎθ・・・（１７）
Ｓ＝｜Ｘｍ｜ｓｉｎθ・・・（１８）
【００４３】
式（１８）の右辺と、式（１４）の右辺は等しいので、重力ベクトルＸｇおよびベクトルＸｍの外積から、Ｒのベクトル値を求めることができる。Ｒのベクトル値から平方根の演算を使うことなく、Ｒの大きさを求める方法は後述する。
【００４４】
以上、鉛直方向の加速度の大きさと水平方向の加速度の大きさをベクトルの内積および外積で求められることを示した。次に、マイコン１７０の構成について説明する。図５は、マイコンの構成を示す図である。図５に示すように、このマイコン１７０は、ＬＰＦ１７１ａ、１７１ｂと、演算部１７２と、内積演算部１７３と、外積演算部１７４と、変換部１７５、ＨＰＦ１７６と、絶対値抽出部１７７と、状態判定部１７８を有する。
【００４５】
ＬＰＦ（Low  Pass  Filter）１７１ａは、加速度センサ１６０からセンサ値を取得し、取得したセンサ値の低周波数成分を抽出する装置である。ＬＰＦ１７１ａは、センサ値の低周波数成分を、演算部１７２、内積演算部１７３、外積演算部１７４に出力する。加速度センサから取得するセンサ値は、上記の加速度ベクトルＸｓに対応する。また、センサ値の低周波数成分は、上記の重力ベクトルＸｇに対応する。ＬＰＦ１７１ａは、低周波数成分算出部の一例である。
【００４６】
演算部１７２は、加速度センサ１６０から出力されるセンサ値からこのセンサ値の低周波数成分を減算することで、センサ値から高周波数成分を抽出する装置である。センサ値の高周波数成分は、上記のベクトルＸｍに対応する。演算部１７２は、センサ値の高周波数成分を、内積演算部１７３および外積演算部１７４に出力する。演算部１７２は、高周波数成分算出部の一例である。
【００４７】
内積演算部１７３は、重力ベクトルＸｇに対応する低周波数成分と、ベクトルＸｍに対応する高周波数成分との内積を演算する装置である。内積演算部１７３は、演算結果を状態判定部１７８に出力する。内積演算部１７３の演算結果は、鉛直方向の加速度の大きさ「Ｚｎ−Ｇ」に対応する。
【００４８】
ここで、重力ベクトルＸｇとベクトルＸｍとの内積の演算について示す。重力ベクトルＸｇの成分を（ｘｇ、ｙｇ、ｚｇ）Ｔとし、ベクトルＸｍの成分を（ｘｍ、ｙｍ、ｚｍ）Ｔとする。内積演算部１７３は、式（１８ａ）により、Ｚｎ−Ｇを算出する。
Ｚｎ−Ｇ＝ｘｇ×ｘｍ＋ｙｇ×ｙｍ＋ｚｇ×ｚｍ・・・（１８ａ）
【００４９】
外積演算部１７４は、重力ベクトルＸｇに対応する低周波数成分と、ベクトルＸｍに対応する高周波数成分との外積を演算する装置である。外積演算部１７４は、演算結果を変換部１７５に出力する。外積演算部１７４の演算結果は、水平方向の加速度ベクトルに対応する。
【００５０】
ここで、重力ベクトルＸｇとベクトルＸｍとの外積の演算について示す。重力ベクトルＸｇの成分を（ｘｇ、ｙｇ、ｚｇ）Ｔとし、ベクトルＸｍの成分を（ｘｍ、ｙｍ、ｚｍ）Ｔとする。外積演算部１７４は、式（１９）により、水平方向の加速度ベクトルを算出する。
水平方向の加速度ベクトル＝（ｙｇ×ｚｍ−ｚｇ×ｙｍ、ｚｇ×ｘｍ−ｘｇ×ｚｍ、ｘｇ×ｙｍ−ｙｇ×ｘｍ）・・・（１９）
【００５１】
変換部１７５は、水平方向の加速度ベクトルをスカラー値に変換する装置である。水平方向の加速度ベクトルの成分を（ｘ、ｙ、ｚ）とすると、変換部１７５は、ｘ×ｘ＋ｙ×ｙ＋ｚ×ｚを演算する。
【００５２】
変換部１７５が演算したスカラー値は、水平方向の加速度の大きさＲを２乗した値「Ｒ２」に等しい。変換部１７５は、演算結果をＨＰＦ１７６に出力する。変換部１７５の演算結果「Ｒ２」がＨＰＦ１７６、絶対値抽出部１７７、ＬＰＦ１７１ｂを通過することで、演算結果「Ｒ２」は、「Ｒａｖｅ」となる。「Ｒａｖｅ」は、水平方向の加速度ベクトルＲに相当する値である。
【００５３】
ＨＰＦ（High  Pass  Filter）１７６は、変換部１７５の演算結果「Ｒ２」の高周波数成分を抽出する装置である。ＨＰＦは、Ｒ２の高周波成分を絶対値抽出部１７７に出力する。
【００５４】
絶対値抽出部１７７は、高周波数成分の絶対値を抽出する装置である。絶対値抽出部１７７は、高周波数成分の絶対値を、ＬＰＦ１７１ｂに出力する。
【００５５】
ＬＰＦ１７１ｂは、絶対値の低周波数成分を抽出する装置である。ＬＰＦ１７１ｂは、絶対値の低周波数成分を状態判定部１７８に出力する。この絶対値の低周波数成分は、上記のＲａｖｅに対応する。
【００５６】
図６は、Ｒ２からＲａｖｅが生成されるまでの信号の変化を示す図である。図６において、信号３ａは、変換部１７５の演算結果Ｒ２に対応するものである。信号３ａがＨＰＦ１７６に入力されることで、信号３ａの高周波数成分が抽出され、信号３ｂとなる。
【００５７】
信号３ｂが絶対値抽出部１７７に入力されることで、信号３ｂのマイナス値がプラスに変換され、信号３ｃとなる。信号３ｃがＬＰＦ１７１ｂに入力されることで、信号３ｃの低周波数成分が抽出され、信号３ｄとなる。この信号３ｄが上記のＲａｖｅに対応する。
【００５８】
状態判定部１７８は、内積演算部１７３から出力される値と、ＬＰＦ１７１ｂから出力される値に基づいて状態認識を行い、状態認識の結果をメインＣＰＵ１８０に出力する装置である。上述したように、内積演算部１７３から出力される値は、鉛直方向の加速度の大きさ「Ｚｎ−Ｇ」に対応する。また、ＬＦＰ１７１ｂから出力される値は「Ｒａｖｅ」に対応する。
【００５９】
具体的に、状態判定部１７８は、「Ｒａｖｅ」の値と閾値とを比較して、携帯機器１００が乗り物によって移動している可能性があるか否かを判定した後に、「Ｚｎ−Ｇ」の周波数に応じて、詳細な状態を判定する。以下に、状態判定部１７８の処理を順に説明する。
【００６０】
まず、状態判定部１７８は、Ｒａｖｅの値と閾値とを比較し、携帯機器１００が乗り物によって移動している可能性があるか否かを判定する。Ｒａｖｅの値が閾値以下の場合には、状態判定部１７８は、歩行者によって移動している可能性があると判定する。Ｒａｖｅは水平方向の加速度の大きさに対応するため、このＲａｖｅの値が小さければ、携帯機器の移動はそれほど大きくないため、乗り物で移動していないと推測できる。
【００６１】
これに対して、状態判定部１７８は、Ｒａｖｅの値が閾値以上の場合には、Ｒａｖｅの値が所定の範囲の値であるか否かを判定する。Ｒａｖｅの値が所定の範囲の値である場合には、状態判定部１７８は、乗り物によって移動している可能性があると判定する。
【００６２】
状態判定部１７８が、歩行者によって移動している可能性があると判定した後の処理について説明する。この場合には、状態判定部１７８は、Ｚｎ−Ｇの周波数が「１〜３Ｈｚ」に含まれるか否かを判定する。状態判定部１７８は、Ｚｎ−Ｇの周波数が「１〜３Ｈｚ」に含まれる場合に、歩行者によって移動していると判定し、判定結果をメインＣＰＵ１８０に出力する。
【００６３】
状態判定部１７８が、乗り物によって移動している可能性があると判定した後の処理について説明する。この場合には、状態判定部１７８は、Ｚｎ−Ｇの周波数が「１．３〜２．５Ｈｚ」に含まれるか否かを判定する。状態判定部１７８は、Ｚｎ−Ｇの周波数が「１．５〜２．５Ｈｚ」に含まれる場合に、バスによって移動していると判定し、判定結果をメインＣＰＵ１８０に出力する。
【００６４】
一方、Ｚｎ−Ｇの周波数が「１．３〜２．５Ｈｚ」に含まれない場合には、状態判定部１７８は、Ｚｎ−Ｇの周波数が「２．５〜３Ｈｚ」に含まれるか否かを判定する。状態判定部１７８は、Ｚｎ−Ｇの周波数が「２．５〜３Ｈｚ」に含まれる場合に、電車によって移動していると判定し、判定結果をメインＣＰＵ１８０に出力する。
【００６５】
一方、Ｚｎ−Ｇの周波数が「２．５〜３Ｈｚ」に含まれない場合には、状態判定部１７８は、Ｚｎ−Ｇの周波数が「３〜６．３Ｈｚ」に含まれるか否かを判定する。状態判定部１７８は、Ｚｎ−Ｇの周波数が「３〜６．３Ｈｚ」に含まれる場合に、自動車によって移動していると判定し、判定結果をメインＣＰＵ１８０に出力する。状態判定部１７８がＺｎ−Ｇの周波数と比較する閾値は、管理者が適宜変更しても構わない。
【００６６】
なお、状態判定部１７８は、Ｚｎ−Ｇの周波数を求める場合には、Ｚｎ−Ｇのピーク値から次ぎのピーク値までのサンプリング数を求め、このサンプリング数と、予め定められたサンプリング周期とを乗算することで、周波数を求める。サンプリング数をｎ、サンプリングの半周期をＴとすると、Ｚｎ−Ｇの周波数Ｆは、式（２０）によって求められる。
Ｆ＝１／２Ｔｎ・・・（２０）
【００６７】
状態判定部１７８が、ピーク値を判定する処理の一例について説明する。状態判定部１７８は、Ｚｎ−Ｇの値、Ｚ１の値、Ｚ２の値を比較する。ここで、Ｚ１の値は、１つ前のＺｎ−Ｇの値に対応する。Ｚ２の値は２つ前のＺｎ−Ｇの値に対応する。状態判定部１７８は、「Ｚ２＜Ｚ１」かつ「Ｚｎ−Ｇ＜Ｚ１」となる場合、または、「Ｚ１＜Ｚ２」かつ「Ｚ１＜Ｚｎ−Ｇ」となる場合にＺ１の値をピーク値と判定する。
【００６８】
次に、図５に示したＬＰＦ１７１ａの構成について説明する。図７は、ＬＰＦの構成を示す機能ブロック図である。図７に示すように、ＬＰＦ１７１は、データ取得部３０、記憶部３１、平均化部３２を有する。
【００６９】
データ取得部３０は、加速度センサ１６０からセンサ値を取得し、センサ値を記憶部３１に記憶する装置である。
【００７０】
記憶部３１は、Ｎ個の記憶領域ＤＩＭ［ｉ］を有する。例えば、記憶部３１は、センサ値を記憶領域ＤＩＭ［０］、ＤＩＭ［１］、・・・、ＤＩＭ［Ｎ−１］に順次記憶する。また、記憶部３１は、記憶領域ＤＩＭ［ｉ］の全てにセンサ値が記憶された後に、新たなセンサ値を記憶する場合には、ＤＩＭ［ｉ］のうち、最古のセンサ値を記憶するＤＩＭ［ｉ］に新たなセンサ値を順次記憶する。
【００７１】
平均化部３２は、記憶部３１の各ＤＩＭ［ｉ］に記憶されたセンサ値の平均値を算出し、算出した平均値を演算部１７２、内積演算部１７３、外積演算部１７４に出力する。
【００７２】
なお、図５に示したＬＰＦ１７１ｂの構成は図７に示したＬＰＦ１７１ａの構成と同様である。ただし、ＬＰＦ１７１ｂが取り扱うデータは、絶対値抽出部１７７から出力されるデータである。
【００７３】
次に、図５に示したＨＰＦ１７６の構成について説明する。図８は、ＨＰＦの構成を示す図である。図８に示すように、このＨＰＦ１７６は、ＬＰＦ１７１ｃ、演算部１７２ａを有する。
【００７４】
ＬＰＦ１７１ｃは、変換部１７５から出力されるデータから低周波数成分を抽出する。ＬＰＦ１７１ｃは、低周波数成分を演算部１７２ａに出力する。ＬＰＦ１７１ｃの構成は、図７に示したＬＰＦ１７１ａの構成と同様である。
【００７５】
演算部１７２ａは、変換部１７５から出力されたデータから、このデータの低周波数成分を減算することで、データから高周波数成分を抽出する装置である。演算部１７２ａは、データの高周波数成分を絶対値抽出部１７７に出力する。
【００７６】
次に、本実施例にかかるマイコン１７０の処理手順について説明する。図９は、本実施例にかかるマイコンの処理手順を示すフローチャートである。図９に示す処理は、例えば、マイコン１７０が持つタイマ割り込み機能により実行される。
【００７７】
図９に示すように、マイコン１７０は、センサ値を取得し（ステップＳ１０１）、フィルタ処理を実行し（ステップＳ１０２）、Ｚｎ−ＧおよびＲａｖｅを算出する（ステップＳ１０３）。ステップＳ１０２，Ｓ１０３の処理は、図５のＬＰＦ１７１ａ，１７１ｂ、演算部１７２、内積演算部１７３、外積演算部１７４、変換部１７５、ＨＰＦ１７６、絶対値抽出部１７７が実行する処理に対応する。
【００７８】
マイコン１７０は、Ｚ１がピーク値ではない場合には（ステップＳ１０４，Ｎｏ）、ｎに１を加算する（ステップＳ１０５）。マイコン１７０は、Ｚ２にＺ１の値を代入し、Ｚ１にＺｎ−Ｇの値を代入し（ステップＳ１０６）、ステップＳ１０１に再度移行する。
【００７９】
ところで、ステップＳ１０４において、Ｚ１がピーク値の場合には（ステップＳ１０４，Ｙｅｓ）、マイコン１７０は、１／２Ｔｎを計算することで周波数Ｆを算出する（ステップＳ１０７）。
【００８０】
マイコン１７０は、Ｒａｖｅの値が閾値以下である場合には（ステップＳ１０８，Ｙｅｓ）、周波数Ｆの値が１〜３Ｈｚに含まれるか否かを判定する（ステップＳ１０９）。マイコン１７０は、周波数Ｆの値が１〜３Ｈｚに含まれる場合には（ステップＳ１０９，Ｙｅｓ）、状態を「歩行」と判定し（ステップＳ１１０）、ステップＳ１１８に移行する。一方、マイコン１７０は、周波数Ｆの値が１〜３Ｈｚに含まれない場合には（ステップＳ１０９，Ｎｏ）、ステップＳ１１８に移行する。
【００８１】
ところで、ステップＳ１０８において、Ｒａｖｅの値が閾値より大きい場合には（ステップＳ１０８，Ｎｏ）、Ｒａｖｅの値が所定の範囲の値か否かを判定する（ステップＳ１１１）。マイコン１７０は、Ｒａｖｅの値が所定の範囲の値の場合には（ステップＳ１１１，Ｙｅｓ）、周波数Ｆの値が１．３〜２．５Ｈｚに含まれるか否かを判定する（ステップＳ１１２）。
【００８２】
周波数Ｆの値が１．３〜２．５Ｈｚに含まれる場合には（ステップＳ１１２，Ｙｅｓ）、マイコン１７０は、状態を「バスで移動」と判定し（ステップＳ１１３）、ステップＳ１１８に移行する。一方、周波数Ｆの値が１．３〜２．５Ｈｚに含まれない場合には（ステップＳ１１２，Ｎｏ）、マイコン１７０は、周波数Ｆの値が２．５Ｈｚ〜３Ｈｚに含まれるか否かを判定する（ステップＳ１１４）。
【００８３】
周波数Ｆの値が２．５Ｈｚ〜３Ｈｚに含まれる場合には（ステップＳ１１４，Ｙｅｓ）、マイコン１７０は、状態を「電車で移動」と判定し（ステップＳ１１５）、ステップＳ１１８に移行する。一方、周波数Ｆの値が２．５Ｈｚ〜３Ｈｚに含まれない場合には（ステップＳ１１４，Ｎｏ）、マイコン１７０は、周波数Ｆの値が３Ｈｚ〜６．３Ｈｚに含まれるか否かを判定する（ステップＳ１１６）。
【００８４】
周波数Ｆの値が３Ｈｚ〜６．３Ｈｚに含まれる場合には（ステップＳ１１６，Ｙｅｓ）、状態を「自動車で移動」と判定し（ステップＳ１１７）、ｎを０に設定し（ステップＳ１１８）、ステップＳ１０５に移行する。一方、周波数Ｆの値が３Ｈｚ〜６．３Ｈｚに含まれない場合には（ステップＳ１１６，Ｎｏ）、ステップＳ１１８に移行する。また、ステップＳ１１１において、Ｒａｖｅの値が所定の範囲の値でない場合には（ステップＳ１１１，Ｎｏ）、マイコン１７０は、ステップＳ１１８に移行する。
【００８５】
なお、マイコン１７０は、ステップＳ１０３において、Ｚｎ−ＧおよびＲａｖｅを算出した後に、Ｚｎ−ＧおよびＲａｖｅの低周波数成分を算出し、これを利用しても良い。このように、マイコン１７０が低周波数成分を算出することで、Ｚｎ−ＧおよびＲａｖｅのノイズを除去することができる。また、歩行、バス、電車、自動車の特徴量がそれぞれ強調されるように各乗り物個別にフィルタ定数を調整し、各乗り物専用のＺｎ−Ｇ、Ｒａｖｅを算出し、判定に用いても良い。
【００８６】
次に、本実施例にかかるＬＰＦ１７１ａの処理手順について説明する。図１０は、ＬＰＦの処理手順を示すフローチャートである。図１０に示す処理は、例えば、ＬＰＦ１７１ａが加速度センサ１６０からセンサ値を取得したことを契機に実行される。
【００８７】
図１０に示すように、ＬＰＦ１７１ａは、センサ値を取得し（ステップＳ２０１）、ｉに１を加算する（ステップＳ２０２）。ＬＰＦ１７１ａは、ｉの値がＮの値以上の場合には（ステップＳ２０３，Ｙｅｓ）、ｉの値を０に設定し（ステップＳ２０４）、ステップＳ２０５に移行する。
【００８８】
一方、ＬＰＦ１７１ａは、ｉの値がＮの値未満の場合には（ステップＳ２０３，Ｎｏ）、合計値ＳＵＭからＤＩＭ［ｉ］の値を減算し（ステップＳ２０５）、ＤＩＭ［ｉ］にセンサ値を登録する（ステップＳ２０６）。
【００８９】
ＬＰＦ１７１ａは、合計値ＳＵＭにＤＩＭ［ｉ］の値を加算し（ステップＳ２０７）、合計値ＳＵＭをＮで割った値を出力する（ステップＳ２０８）。
【００９０】
次に、本実施例にかかる携帯機器１００の効果について説明する。携帯機器１００の状態を判定するためには、鉛直方向の加速度の大きさと水平方向の加速度の大きさを求めればよい。ここで、鉛直方向の加速度の大きさは、センサ値の低周波数成分と高周波数成分との内積により求めることができる。また、水平方向の加速度の大きさは、センサ値の低周波数成分と高周波数成分との外積により求めることができる。内積および外積の演算は、マイコン１７０の得意な四則演算である。このため、本実施例にかかる携帯機器１００のマイコン１７０は、メインＣＰＵ１８０に頼らなくても、上記内積および外積の演算を行い、演算結果から状態認識を行うことができる。従って、携帯機器１００の状態認識を行う場合に、メインＣＰＵ１８０を常時動作しなくてもよくなり、携帯機器１００の消費電力を低減させることができる。
【００９１】
また、携帯機器１００のＬＰＦ１７１ａは、加速度センサ１６０から出力するセンサ値を平均化することで、センサ値の低周波数成分を算出する。また、演算部１７２は、センサ値からＬＰＦ１７１ａの低周波数成分を減算することで、センサ値の高周波数成分を算出する。このため、簡単な四則演算により、センサ値の低周波数成分および高周波数成分を算出することができるため、マイコン１７０の回路構成を単純にできる。
【００９２】
また、携帯機器１００のマイコン１７０は、Ｚｎ−Ｇのピーク値を求め、ピーク値間のサンプリング数を基にして、鉛直方向の振動数を算出し、各閾値と比較して状態を判定する。このため、マイコン１７０は、複雑な演算を行うことなく振動数を算出することができ、閾値比較も処理負荷が小さいため、遅延することなく携帯機器１００の状態を判定することができる。
【００９３】
また、携帯機器１００のマイコン１７０は、Ｒａｖｅの値を基にして、携帯機器１００が乗り物によって移動しているか否かを判定する。このため、マイコン１７０は、鉛直方向の振動数が、歩行している場合の振動数と、バスや電車に乗っている場合の振動数が類似している場合でも、正確に状態を判定することができる。
【００９４】
ところで、図１に示した携帯機器１００の構成や、図５に示したマイコン１７０の構成は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、図５に示す例では、マイコン１７０は、ＬＰＦ１７１ａ、１７１ｂ、ＨＰＦ１７６を有している。しかし、ＬＰＦやＨＰＦをマイコン１７０以外の外部チップで実現しても良い。
【００９５】
また、ＬＰＦ１７１ａ，１７１ｂ、内積演算部１７３、外積演算部１７４、ＨＰＦ１７６、絶対値抽出部１７７、状態判定部１７８は、集積装置に対応する。この集積装置は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）に対応する。また、図５に示した各装置の機能をプログラムで実現させても良い。
【００９６】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９７】
（付記１）加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出する内積演算部と、
前記低周波数成分と、前記高周波数成分との外積を算出する外積演算部と、
前記内積演算部の算出結果と、前記外積演算部の算出結果とを基にして、移動状態を判定する状態判定部と
を有することを特徴とする状態判定装置。
【００９８】
（付記２）前記加速度センサの出力値を平均化することで、前記低周波数成分を算出する低周波数成分算出部と、前記加速度センサの出力値から前記低周波数成分を減算することで、前記高周波数成分を算出する高周波数成分算出部とを更に有することを特徴とする付記１に記載の状態判定装置。
【００９９】
（付記３）前記状態判定部は、前記内積演算部の算出結果の値が極大点から極小点となるまでのサンプリング数または前記内積演算部の算出結果の極小点から極大点となるまでのサンプリング数を基にして、重力方向の振動数を算出し、該振動数と前記移動状態を識別するための第１の閾値とを比較することで、前記移動状態を判定することを特徴とする付記１または２に記載の状態判定装置。
【０１００】
（付記４）前記状態判定部は、前記外積演算部の算出結果から低周波成分および高周波数成分を取り除いた値と乗り物に乗って移動しているか否かを識別するための第２の閾値とをさらに比較して、乗り物によって移動しているか否かを判定し、乗り物で移動している場合には、前記振動数と前記第１の閾値とを比較して乗り物の種別をさらに判定することを特徴とする付記１、２または３に記載の状態判定装置。
【０１０１】
（付記５）コンピュータに、
加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出し、
前記低周波数成分と、前記高周波数成分との外積を算出し、
内積の算出結果と外積の算出結果とを基にして、前記加速度センサの移動状態を判定する処理を実行させる状態判定プログラム。
【０１０２】
（付記６）前記加速度センサの出力値を平均化することで、前記低周波数成分を算出し、前記加速度センサの出力値から前記低周波数成分を減算することで、前記高周波数成分を算出することを特徴とする付記５に記載の状態判定プログラム。
【０１０３】
（付記７）前記内積の算出結果の値が極大点から極小点となるまでのサンプリング数または前記内積の算出結果の極小点から極大点となるまでのサンプリング数を基にして、重力方向の振動数を算出し、該振動数と前記移動状態を識別するための第１の閾値とを比較することで、前記移動状態を判定することを特徴とする付記５または６に記載の状態判定プログラム。
【０１０４】
（付記８）前記外積の算出結果から低周波成分および高周波数成分を取り除いた値と乗り物に乗って移動しているか否かを識別するための第２の閾値とをさらに比較して、乗り物によって移動しているか否かを判定し、乗り物で移動している場合には、前記振動数と前記第１の閾値とを比較して乗り物の種別をさらに判定することを特徴とする付記５、６または７に記載の状態判定プログラム。
【符号の説明】
【０１０５】
１００    携帯機器
１２０    入力装置
１３０    マイク
１４０    ディスプレイ
１５０    スピーカ
１６０    加速度センサ
１７０    マイコン
１８０    メインＣＰＵ
【図１】
2012063208.tif 000011
【図２】
2012063208.tif 000012
【図３】
2012063208.tif 000013
【図４】
2012063208.tif 000014
【図５】
2012063208.tif 000015
【図６】
2012063208.tif 000016
【図７】
2012063208.tif 000017
【図８】
2012063208.tif 000018
【図９】
2012063208.tif 000019
【図１０】
2012063208.tif 000020
【図１１】
2012063208.tif 000021
【図１２】
2012063208.tif 000022