以下、図面を参照しながら本発明に係る実施形態を説明する。また、以下に記載する実施形態は、本発明の好適な具体例である。このため、本実施形態には、技術的に好ましい種々の限定が付されている。しかしながら、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。
<実施形態>
1.概要
実施形態の概要について述べる。図1は、実施形態の携帯端末1の模式図である。携帯端末1は、加速度センサ10と、プロセッサ20とを有する。携帯端末1の他の構成については後述する。
携帯端末1は、例えば、スマートフォンである。代替的に、携帯端末1は、携帯電話機であってもよい。携帯端末1には、ユーザの活動量を算出するアプリケーション(後述の活動量算出プログラム310)がインストールされている。このアプリケーションにより、携帯端末1は、活動量の算出に加え、算出した活動量の信頼性をユーザに通知する。活動量の信頼性が通知されるので、ユーザは、算出された活動量にどの程度の信頼性があるかをユーザは把握することができる。
本願明細書において、「活動量」とは、加速度値に基づいて、身体の活動の大きさを示す指標のことである。活動量には、例えば、身体の活動によって消費されるエネルギーである運動消費エネルギーが該当する。
加速度センサ10は、例えば、3軸加速度センサである。図1に示すように、加速度センサ10を基準として、X軸、Y軸およびZ軸を定めた場合、加速度センサ10は、X軸方向の加速度値AX(t)と、Y軸方向の加速度値AY(t)と、Z軸方向の加速度値AZ(t)とを検出する。tは、任意の時刻を表す。また、加速度センサ10は、測定レンジRMAXを超える加速度が発生しても、測定レンジRMAXを超える加速度値を検出することができない。
なお、測定レンジRMAXは、加速度センサ10が加速度値を測定可能な範囲であって、加速度値の取り得る下限値から上限値までの範囲を持つ。
以下の説明では、加速度センサ10に発生した加速度がX軸の正方向成分を持つとき、X軸方向の加速度値AX(t)は、正の値をとる。逆に、発生した加速度がX軸の負方向成分を持つとき、X軸方向の加速度値AX(t)は、負の値をとる。
同様に、加速度センサ10に発生した加速度がY軸の正方向成分を持つとき、Y軸方向の加速度値AY(t)は、正の値をとる。逆に、発生した加速度がY軸の負方向成分を持つとき、Y軸方向の加速度値AY(t)は、負の値をとる。
同様に、加速度センサ10に発生した加速度がZ軸の正方向成分を持つとき、Z軸方向の加速度値AZ(t)は、正の値をとる。逆に、発生した加速度がZ軸の負方向成分を持つとき、Z軸方向の加速度値AZ(t)は、負の値をとる。
プロセッサ20は、例えば、CPU(Central Processing Unit)である。プロセッサ20は、携帯端末1の全体を制御するコントローラとして機能する。なお、プロセッサ20は、DSP(Digital Signal Processor)の機能を包含していてもよいし、サブのCPUを包含していてもよい。プロセッサ20の構成は、特定の構成に限定されない。
プロセッサ20の機能の概要は、次の通りである。第1に、プロセッサ20は、加速度センサ10によって得られたX軸方向の加速度値AX(t)と、Y軸方向の加速度値AY(t)と、Z軸方向の加速度値AZ(t)とに基づいて、活動量を算出する。第2に、プロセッサ20は、加速度値のサチュレーションが何回発生したかを示すサチュレーション回数に基づいて、活動量の信頼性を表す指標を生成する。
本願明細書において、「加速度値のサチュレーション」とは、加速度センサ10の測定レンジRMAXを超える加速度が加速度センサ10に発生し、加速度センサ10によって測定された加速度値が測定レンジRMAXの上限値又は下限値と一致することを言う。また、3軸方向の加速度のいずれか1つでも測定レンジRMAXを超えれば、加速度値のサチュレーションが発生したことになる。
図2は、ユーザによって携帯端末1の位置がY軸の正方向に変化した場合に加速度センサ10から得られたY軸方向の加速度値AY(t)を例示するグラフである。例えば、加速度センサ10の測定レンジRMAXが−2G以上2G以下であると仮定する。図2の例では、加速度センサ10は、−2G以上2G以下の加速度値を検出可能である。しかしながら、点線で示すように、2Gを超える加速度が発生したとしても、加速度センサ10は、2Gを超える加速度値を検出することができない。図2の例では、加速度値のサチュレーションが発生した箇所は、点線で示すように、加速度値AY(t)が測定レンジRMAXの2Gを超えている箇所である。
2.構成
図3は、携帯端末1の構成例を示す機能ブロック図である。携帯端末1は、加速度センサ10と、プロセッサ20とに加え、記憶装置30と、タッチパネル40と、通信部50とを有する。記憶装置30は、ユーザの活動量を算出する活動量算出プログラム310を格納している。なお、加速度センサ10およびプロセッサ20が設けられていれば、携帯端末1の構成は、図3の例に限定されない。例えば、携帯端末1がカメラを更に有していてもよい。
加速度センサ10は、加速度値AX(t)、AY(t)、AZ(t)を検出し、検出した加速度値AX(t)、AY(t)、AZ(t)を取得部210に出力する。加速度センサ10の検出方式は、静電容量方式でもよいし、ピエゾ方式でもよく、特定の方式に限定されない。なお、加速度センサ10の出力は、デジタル信号であってもいし、アナログ信号であってもよい。加速度センサ10の出力がアナログ信号である場合、プロセッサ20に設けられたA/Dコンバータがアナログ信号をデジタル信号に変換する。
プロセッサ20は、活動量算出プログラム310を記憶装置30から読み出し、活動量算出プログラム310を実行することで、取得部210と、第1更新部220と、推定部230と、第2更新部240と、計数部250と、指標生成部260と、算出部270と、補正部280との機能を実現する。なお、第1更新部220および第2更新部240が1つの更新部として構成されていてもよい。計数部250および指標生成部260が1つの生成部として構成されていてもよい。
記憶装置30は、不揮発性メモリと、揮発性メモリとを包含する。記憶装置30は、活動量算出プログラム310に加え、履歴データ320と、後述の条件テーブル330と、後述の規定値テーブル340とを格納する。活動量算出プログラム310は、実施形態の活動量算出方法の処理手順が所定のコンピュータ言語で記述されたものである。
履歴データ320には、次の加速度値が記録されている。
1)X軸の正方向の最大加速度値AX+MAX
X軸の正方向の最大加速度値AX+MAXとは、加速度センサ10によって過去に得られたX軸の正方向における複数の加速値の中で最も大きい正の値をとる加速度値である。つまり、X軸の正方向の最大加速度値AX+MAXとは、X軸の正方向における過去の最大値を意味する。
2)X軸の負方向の最大加速度値AX−MAX
X軸の負方向の最大加速度値AX−MAXとは、加速度センサ10によって過去に得られたX軸の負方向における複数の加速値の中で最も大きい負の値をとる加速度値である。つまり、X軸の負方向の最大加速度値AX−MAXとは、X軸の負方向における過去の最大値を意味する。
3)Y軸の正方向の最大加速度値AY+MAX
Y軸方向の最大加速度値AY+MAXとは、加速度センサ10によって過去に得られたY軸の正方向における複数の加速値の中で最も大きい正の値をとる加速度値である。つまり、Y軸の正方向の最大加速度値AY+MAXとは、Y軸の正方向における過去の最大値を意味する。
4)Y軸の負方向の最大加速度値AY−MAX
Y軸の負方向の最大加速度値AY−MAXとは、加速度センサ10によって過去に得られたY軸の負方向における複数の加速値の中で最も大きい負の値をとる加速度値である。つまり、Y軸の負方向の最大加速度値AY−MAXとは、Y軸の負方向における過去の最大値を意味する。
5)Z軸の正方向の最大加速度値AZ+MAX
Z軸の正方向の最大加速度値AZ+MAXとは、加速度センサ10によって過去に得られたZ軸の正方向における複数の加速値の中で最も大きい正の値をとる加速度値である。つまり、Z軸の正方向の最大加速度値AZ+MAXとは、Z軸の正方向における過去の最大値を意味する。
6)Z軸の負方向の最大加速度値AZ−MAX
Z軸の負方向の最大加速度値AZ−MAXとは、加速度センサ10によって過去に得られたZ軸の負方向における複数の加速値の中で最も大きい負の値をとる加速度値である。つまり、Z軸の負方向の最大加速度値AZ−MAXとは、Z軸の負方向における過去の最大値を意味する。
なお、記憶装置30は、例えば、非一過性(non-transitory)の記録媒体である。更に言えば、記憶装置30は、公知の任意の形式の記録媒体、例えば、半導体記録媒体、磁気式記録媒体または光学式記録媒体である。代替的に、記憶装置30は、これらの記録媒体が組み合わされた記録媒体であってもよい。本願明細書において、非一過性の記録媒体とは、一過性の伝播信号(transitory, propagating signal)を除く全てのコンピュータ読み取り可能な記録媒体を含み、揮発性の記録媒体を除外するものではない。
タッチパネル40は、例えば、静電容量方式のタッチパネルである。タッチパネル40は、入力デバイスおよび表示デバイスの双方の機能を持つ。タッチパネル40は、入力デバイスの機能として、ユーザによるタッチ操作を検出し、検出結果をユーザの指示としてプロセッサ20に出力する。タッチパネル40は、表示デバイスの機能として、プロセッサ20の指示に従って、プロセッサ20の出力結果を表示する。なお、タッチパネル40の代わりに、入力デバイス(テンキーを含む複数のボタン)および表示デバイスを携帯端末1が有していてもよい。
通信部50は、携帯端末1の外部と通信可能に構成されている。具体的には、通信部50は、例えば、携帯端末1が位置するセルの基地局を経由して通話先の携帯端末と音声通信する。更に、通信部50は、例えば、携帯端末1が位置するセルの基地局を経由してコンテンツサーバ装置と通信する。
3.プロセッサの機能
プロセッサ20の機能は、次の通りである。取得部210は、X軸方向の加速度値AX(t)と、Y軸方向の加速度値AY(t)と、Z軸方向の加速度値AZ(t)とを加速度センサ10から取得し、これらの加速度値を第1更新部220に出力する。
第1更新部220は、X軸方向の加速度値AX(t)、Y軸方向の加速度値AY(t)およびZ軸方向の加速度値AZ(t)の各々について、次の処理を実行する。第1更新部220は、X軸方向の現在の加速度値AX(t)が正の値をとるならば、記憶装置30に格納されている履歴データ320からX軸の正方向の最大加速度値AX+MAXを読み出す。そして、第1更新部220は、X軸方向の現在の加速度値AX(t)がX軸の正方向の最大加速度値AX+MAXより大きいかを判定する。現在の加速度値AX(t)が最大加速度値AX+MAXより大きい場合(AX(t)>AX+MAX)、第1更新部220は、X軸の正方向の最大加速度値AX+MAXを現在の加速度値AX(t)に更新する。つまり、第1更新部220は、履歴データ320に記録されているX軸の正方向の最大加速度値AX+MAXを加速度値AX(t)で上書きする。そうでない場合、第1更新部220は、X軸の正方向の最大加速度値AX+MAXを現在の加速度値AX(t)に更新しない。
同様に、第1更新部220は、X軸方向の現在の加速度値AX(t)が負の値をとるならば、記憶装置30に格納されている履歴データ320からX軸の負方向の最大加速度値AX−MAXを読み出す。そして、第1更新部220は、X軸方向の現在の加速度値AX(t)がX軸の負方向の最大加速度値AX−MAX(<0)より小さいかを判定する。現在の加速度値AX(t)が最大加速度値AX−MAXより小さい場合(AX(t)<AX−MAX)、第1更新部220は、X軸の負方向の最大加速度値AX−MAXを現在の加速度値AX(t)に更新する。つまり、第1更新部220は、履歴データ320に記録されている最大加速度値AX−MAXを現在の加速度値AX(t)で上書きする。そうでない場合、第1更新部220は、X軸の負方向の最小加速度値AXMINを現在の加速度値AX(t)に更新しない。
Y軸方向の現在の加速度値AY(t)およびZ軸方向の現在の加速度値AZ(t)に関しても、第1更新部220は、同様の処理を実行する。
推定部230の概要は、次の通りである。上述した6つの最大加速度値AX+MAX、AY+MAX、AZ+MAX、AX−MAX、AY−MAX、AZ−MAXのうちの1つでも第1更新部220が更新した場合、これは、加速度センサ10によって検出された加速度値が測定レンジRMAXの上限値又は下限値と一致していないことを意味する。推定部230は、これらの最大加速度値に基づいて、加速度センサ10の推定測定レンジRMAXeを特定する。推定測定レンジRMAXeは、加速度センサ10において推定される測定レンジである。ただし、推定部230は、最終的な推定測定レンジRMAXeを1回の処理で得るのではない。推定部230は、加速度値AX(t)、AY(t)およびAZ(t)のうちのいずれかが、これまでに得られたどの加速度値よりも大きければ、推定測定レンジRMAXeを拡げていく。つまり、推定部230は、これまでに得られたどの加速度値よりも大きな加速度値を検出する度に、推定測定レンジRMAXeを更新する。推定測定レンジRMAXeの更新を何回も繰り返すことで、推定測定レンジRMAXeの精度を高めることが可能となる。
推定部230の詳細は、次の通りである。上述のように、履歴データ320には、6つの最大加速度値AX+MAX、AY+MAX、AZ+MAX、AX−MAX、AY−MAX、AZ−MAXが記録されている。推定部230は、これらの中から絶対値が最も大きい値を抽出する。以下、抽出された値を最大値AMAXと呼ぶ。推定部230は、抽出された最大値AMAXに基づいて、加速度センサ10の推定測定レンジRMAXeを推定する。
より詳細には、推定部230は、記憶装置30に格納されている条件テーブル330を参照する。条件テーブル330は、後述の図4に示すように、最大値AMAXを推定測定レンジRMAXeに関連付けたテーブルである。推定部230は、最大値AMAXに関連付けられた加速度値が加速度センサ10の現在の推定測定レンジRMAXeであると特定する。なお、本願明細書では、説明を簡単にするため、抽出された最大値AMAXが負をとる場合、その値の絶対値について考える。
条件テーブル330について説明する。図4は、条件テーブル330の一例を示す図である。本実施形態では、最大値AMAXの取り得る範囲を複数に区分する。そして、複数の区分の各々をレベルと称する。条件テーブル330は、複数のレベルの各々に、推定測定レンジRMAXeを関連付けたテーブルである。各レベルの推定測定レンジRMAXeは、図4に示すように、下限値と上限値とを持つ。図4の例では、最大値AMAXのとる範囲が8個のレベルに区分されている。8個のレベルの各々には、推定測定レンジRMAXeが関連付けられている。
1)レベル1:最大値AMAXが1.8G以上、かつ2.2Gよりも小さい場合、推定部230は、推定測定レンジRMAXeが±2Gであると特定する(−2G≦RMAXe≦2G)。
2)レベル2:最大値AMAXが2.2G以上、かつ3.2Gよりも小さい場合、推定部230は、推定測定レンジRMAXeが±3Gであると特定する(−3G≦RMAXe≦3G)。
3)レベル3:最大値AMAXが3.2G以上、かつ4.2Gよりも小さい場合、推定部230は、推定測定レンジRMAXeが±4Gであると特定する(−4G≦RMAXe≦4G)。
4)レベル4:最大値AMAXが4.2G以上、かつ5.2Gよりも小さい場合、推定部230は、推定測定レンジRMAXeが±5Gであると特定する(−5G≦RMAXe≦5G)。
5)レベル5:最大値AMAXが5.2G以上、かつ6.2Gよりも小さい場合、推定部230は、推定測定レンジRMAXeが±6Gであると特定する(−6G≦RMAXe≦6G)。
6)レベル6:最大値AMAXが6.2G以上、かつ7.2Gよりも小さい場合、推定部230は、推定測定レンジRMAXeが±7Gであると特定する(−7G≦RMAXe≦7G)。
7)レベル7:最大値AMAXが7.2G以上、かつ8.2Gよりも小さい場合、推定部230は、推定測定レンジRMAXeが±8Gであると特定する(−8G≦RMAXe≦8G)。
8)レベル8:最大値AMAXが8.2G以上である場合、推定部230は、推定測定レンジRMAXeが−8Gより小さく、8Gより大きいと特定する(RMAXe<−8G、RMAXe>8G)。
推定部230は、最大値AMAXがどのレベルに適合するかを判定する。そして、推定部230は、適合したレベルに対応する推定測定レンジRMAXeを用いる。
なお、レベル1から7の各々における最大値AMXの上限値に着目すると、小数第一位が0ではなく2となっている。これは、加速度センサ10の感度およびオフセットのばらつきを考慮したためである。説明を簡単にするため、加速度センサ10の測定レンジRMAXが±2Gであり、−2Gから2Gまでの範囲が256段階の電圧で得られるとする。また、−2Gが最小電圧0Vに対応付けられ、2Gが最大電圧3Vに対応付けられたとする。例えば、加速度センサ10によって得られた電圧(例えば、X軸方向の加速度値)が最大電圧の半分の1.5Vであった場合、理想的には、0Gの加速度値が得られればよい。しかしながら、同じ加速度センサ10であっても、加速度センサ10の出力の誤差により、0Gが検出されない場合がある。つまり、加速度センサ10の出力が本来の出力でないことがある。このような場合、上述の小数第一位が0であると、最大値AMAXがどのレベルに適合するか推定部230が誤った判定をすることがある。よって、レベル1から7の各々における最大値AMXの上限値が大きめにとられている。
第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+より小さい最大加速度値ANMAXがあるかを判定する。その結果、規定値Th+より小さい最大加速度値ANMAXがある場合、第2更新部240は、その最大加速度値ANMAXを規定値Th+に更新する。同様に、第2更新部240は、記憶装置30に格納された規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−より大きい最大加速度値ANMAXがあるかを判定する。その結果、規定値Th−より大きい最大加速度値ANMAXがある場合、第2更新部240は、その最大加速度値ANMAXを規定値Th−に更新する。
規定値Th+および規定値Th−の各々は、一律ではなく、推定部230による現在の推定測定レンジRMAXeに応じた値によって定まる。より詳細には、規定値Th+は、現在の推定測定レンジRMAXeの上限値より小さい正の値をとり、規定値Th−は、現在の推定測定レンジRMAXeの下限値より大きい負の値をとる。また、規定値Th−の絶対値は、規定値Th+と同じである。規定値Th+および規定値Th−の具体例については、後述する。
例えば、第1更新部220がX軸の正方向の最大加速度値AX+MAXのみをX軸方向の現在の加速度値AX(t)に更新した場合を考える。Y軸方向の現在の加速度値AY(t)がY軸の正方向の最大加速度値AY+MAXより小さい場合、第2更新部240は、Y軸の正方向の最大加速度値AY+MAXが規定値Th+より小さいかを判定する。Y軸の正方向の最大加速度値AY+MAXが規定値Th+より小さい場合、第2更新部240は、Y軸の正方向の最大加速度値AY+MAXを規定値Th+に更新する。Z軸の正方向の最大加速度値Z+MAXについても、第2更新部240は、同様の処理を実行する。
また、第2更新部240は、X軸の負方向の最大加速度値AX−MAXが規定値Th−より大きいかを判定する。X軸の負方向の最大加速度値AX−MAXが規定値Th−より大きい場合、第2更新部240は、X軸の負方向の最大加速度値AX−MAXを規定値Th−に更新する。Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXについても、第2更新部240は、同様の処理を実行する。
また、第2更新部240は、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中で、第1更新部220が最大加速度値(例えば、AX+MAX)を現在の加速度値に更新したにもかかわらず、更新後の加速度値が規定値Th+より小さい場合も、第1更新部220によって一度更新された最大加速値を更に規定値Th+に更新する。同様に、第2更新部240は、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中で、第1更新部220が最大加速度値(例えば、AX−MAX<0)を現在の加速度値(AX(t)<0)に更新したにもかかわらず、更新後の加速度値が規定値Th−より大きい場合も、第1更新部220によって一度更新された最大加速値を更に規定値Th−に更新する。
第2更新部240が設けられていることにより、次の効果が得られる。例えば、図1に示すX−Y面で、ユーザによってX軸の正方向またはX軸の負方向に携帯端末1の位置が変化する場合を考える。この場合、Z軸方向の加速度値AZ(t)の変動は、相対的に小さい。よって、第2更新部240が設けられていない場合、Z軸の正方向の最大加速度値AZ+MAXおよびZ軸の負方向の最大加速度値AZ−MAXを第1更新部220が小さな加速度値AZ(t)に更新してしまう。このような更新が何度も発生すると、処理の無駄が大きくなる、しかしながら、第2更新部240が設けられているので、このような処理の無駄が抑制される。
図5は、規定値テーブル340の一例を示す図である。規定値テーブル340は、複数レベルの各々に割り当てられた最大値AMAXに規定値Th+および規定値Th−を関連付けたテーブルである。図5の例では、規定値Th+に関しては、7段階の規定値Th+1〜Th+7が設けられている。規定値Th−に関しても、7段階の規定値Th−1〜Th−7が設けられている。これらの規定値Th+1〜Th+7、Th−1〜Th−7は、推定部230によって推定される現在の測定レンジRMAXに応じた値で定まる。
1)現在の推定測定レンジRMAXeが−3G以上3G以下である場合、規定値Th+1は、2.5Gをとり、規定値Th−1は、−2.5Gをとる。
2)現在の推定測定レンジRMAXeが−4G以上4G以下である場合、規定値Th+2は、3.5Gをとり、規定値Th−2は、−3.5Gをとる。
3)現在の推定測定レンジRMAXeが−5G以上5G以下である場合、規定値Th+3は、4.5Gをとり、規定値Th−3は、−4.5Gをとる。
4)現在の推定測定レンジRMAXeが−6G以上6G以下である場合、規定値Th+4は、5.5Gをとり、規定値Th−4は、−5.5Gをとる。
5)現在の推定測定レンジRMAXeが−7G以上7G以下である場合、規定値Th+5は、6.5Gをとり、規定値Th−5は、−6.5Gをとる。
6)現在の推定測定レンジRMAXeが−8G以上8G以下である場合、規定値Th+6は、7.5Gをとり、規定値Th−6は、−7.5Gをとる。
7)現在の推定測定レンジRMAXeが−8Gより小さく、8Gより大きい場合、規定値Th+7は、9Gをとり、規定値Th−7は、−9Gをとる。
なお、各規定値Th+1〜Th+7は、対応する推定測定レンジRMAXeの上限値よりも小さい値をとり、各規定値Th−1〜Th−7は、対応する推定測定レンジRMAXeの下限値よりも大きい値をとれば、図5の例に限定されない。例えば、各規定値Th+1〜Th+7は、対応する推定測定レンジRMAXeの上限値の90パーセントの値であり、各規定値Th−1〜Th−7は、対応する推定測定レンジRMAXeの下限値の90パーセントの値であってもよい。代替的に、各規定値Th+1〜Th+7は、対応する推定測定レンジRMAXeの上限値の80パーセント以上の値であり、各Th−1〜Th−7は、対応する推定測定レンジRMAXeの下限値の80パーセント以下の値であってもよい。
以下に、第1更新部220の処理および推定部230の処理を図6Aに関連付けて説明する。図6Aは、時刻t1における加速度値AX(t1)、AY(t1)およびAZ(t1)からどのように測定レンジRMAXが推定されるかを説明するための図である。
図6Aにおいて、黒丸の記号は、時刻t1における加速度値AX(t1)、AY(t1)およびAZ(t1)を表す。白丸の記号は、初期の時刻t0における6つの最大加速度値AX+MAX、AY+MAX、AZ+MAXAX−MAX、AY−MAX、AZ−MAXを表す。
また、「+X」は、X軸の正方向の加速度値を表す。「+Y」および「+Z」についても同様である。「−X」は、X軸の負方向の加速度値を表す。「−Y」および「−Z」についても同様である。
説明を簡単にするため、履歴データ320には、次のような最大加速度値AX+MAX、AY+MAX、AZ+MAX、AX−MAX、AY−MAX、AZ−MAXが予め記録されていると仮定する。
X軸の正方向の最大加速度値AX+MAX=1.8G
X軸の負方向の最大加速度値AX−MAX=−1.8G
Y軸の正方向の最大加速度値AY+MAX=1.8G
Y軸の負方向の最大加速度値AY−MAX=−1.8G
Z軸の正方向の最大加速度値AZ+MAX=1.8G
Z軸の負方向の最大加速度値AZ−MAX=−1.8G
次に、黒丸の記号で示すように、時刻t1における加速度値AX(t1)、AY(t1)およびAZ(t1)が次の値をとったと仮定する。
加速度値AX(t1)=3.9G
加速度値AY(t1)=2.1G
加速度値AZ(t1)=−3.6G
第1更新部220は、X軸方向の加速度値AX(t1)が正の値をとるので、加速度値AX(t1)がX軸の正方向の最大加速度値AX+MAXより大きいか判定する。加速度値AX(t1)が3.9Gであり、最大加速度値AX+MAXが1.8Gであるので、前者が後者より大きい。よって、第1更新部220は、X軸の正方向の最大加速度値AX+MAXを3.9Gに更新する。
第1更新部220は、Y軸方向の加速度値AY(t1)が正の値をとるので、加速度値AX(t1)がY軸の正方向の最大加速度値AY+MAXより大きいかを判定する。加速度値AY(t1)が2.1Gであり、最大加速度値AX+MAXが1.8Gであるので、前者が後者より大きい。よって、第1更新部220は、Y軸の正方向の最大加速度値AY+MAXを2.1Gに更新する。
第1更新部220は、Z軸方向の加速度値AZ(t1)が負の値をとるので、加速度値AZ(t1)がZ軸の負方向の最大加速度値AZ−MAXより小さいかを判定する。加速度値AZ(t1)が−3.6Gであり、最大加速度値AZ−MAXが−1.8Gであるので、前者が後者より小さい。よって、第1更新部220は、Z軸の負方向の最大加速度値AX−MAXを−3.6Gに更新する。
以上の結果、第1更新部220は、次のような最大加速度値AX+MAX、AY+MAXおよびAZ−MAXを履歴データ320に記録することとなる。
X軸の正方向の最大加速度値AX+MAX=3.9G(更新済)
X軸の負方向の最大加速度値AX−MAX=−1.8G
Y軸の正方向の最大加速度値AY+MAX=2.1G(更新済)
Y軸の負方向の最大加速度値AY−MAX=−1.8G
Z軸の正方向の最大加速度値AZ+MAX=1.8G
Z軸の負方向の最大加速度値AZ−MAX=−3.6G(更新済)
続いて、推定部230は、履歴データ320に記録されている最大加速度値AX+MAX、AY+MAX、AZ+MAX、AX−MIN、AY−MAX、AZ−MAXの中から、絶対値が最も大きい値を最大値AMAXとして抽出する。図6Aの例では、推定部230は、3.9Gを最大値AMAXとして抽出する。続いて、推定部230は、条件テーブル330を参照し、最大値AMAXがどのレベルに適合するかを判定する。図6Aの例では、最大値AMAXが3.9Gである。よって、推定部230は、最大値AMAXがレベル3に適合すると判定する。その結果、推定部230は、加速度センサ10の現在の推定測定レンジRMAXeが±4Gであると推定する。
次に、第2更新部240の処理を図6Bに関連付けて説明する。図6Bは、更新されなかった最大加速度値ANMAXがどのように規定値Th+または規定値Th−に更新されるかを説明するための図である。図6Bにおいて、白三角の記号は、更新されなかった最大加速度値を表す。黒三角の記号は、第2更新部240によって規定値Th+または規定値Th−に更新された加速度値を表す。
図6Aの例において、更新されなかった最大加速度値ANMAXは、Z軸の正方向の最大加速度値AZ+MAX、X軸の負方向の最大加速度値AX−MAXおよびY軸の負方向の最大加速度値AY−MAXであった。また、推定部230によって加速度センサ10の現在の推定測定レンジRMAXeが4Gであると特定されている。
以上の場合、第2更新部240は、規定値テーブル340を参照し、現在の推定測定レンジRMAXeに対応する規定値Th+2および規定値Th−2を抽出する。続いて、第2更新部240は、更新されなかったX軸の負方向の最大加速度値AX−MAX(<0)が規定値Th−2(<0)より大きいかを判定する。更新されなかった最大加速度値AX−MAXが−1.8Gであり、規定値Th−2が−3.5Gであるので、前者が後者より大きい。よって、第2更新部240は、更新されなかったX軸の負方向の最大加速度値AX−MAXを規定値Th−2に更新する。同様に、第2更新部240は、更新されなかったY軸の負方向の最大加速度値AY−MAXを規定値Th−2に更新する。
第2更新部240は、更新されなかったZ軸の正方向の最大加速度値AZ+MAXが規定値Th+2より小さいかを判定する。更新されなかった最大加速度値AZ+MAXが1.8Gであり、規定値Th+2が3.5Gであるので、前者が後者より小さい。よって、第2更新部240は、更新されなかったZ軸の正方向の最大加速度値AZ+MAXを規定値Th+2に更新する。
また、Y軸の正方向の最大加速度値AY+MAXは、第1更新部220によって1.8Gから2.1Gに更新されたが、規定値Th+2の3.5Gより小さい。この場合についても、第2更新部240は、第1更新部220によって一度更新された最大加速度値を更に規定値Th+2に更新する。よって、Y軸の正方向の最大加速度値AY+MAXは、2回更新されることとなる。
計数部250は、加速度値のサチュレーションが発生する回数を示すサチュレーション回数Nを特定する。サチュレーション回数Nは、X軸方向の加速度値AX(t)のサチュレーション回数NXと、Y軸方向の加速度値AY(t)のサチュレーション回数NYと、Z軸方向の加速度値AZ(t)のサチュレーション回数NZとの合計で表される(N=NX+NY+NZ)。
計数部250は、X軸方向のサチュレーション回数NXを次のように計測する。あるサンプリング時刻tn−1において、X軸方向の加速度値AX(tn)が正の値をとり、加速度値AX(tn)がX軸の正方向の最大加速度値AX+MAXよりも大きいため、第1更新部220が最大加速度値AX+MAXを更新したとする。この場合、現在の推定測定レンジRAMXeが本来の測定レンジRMAXではなかったとして、計数部250は、サチュレーション回数NXを0にリセットする。その後、今回のサンプリング時刻tnにおいてX軸の正方向の最大加速度値AX+MAXが更新されず、且つ、今回のサンプリング時刻tnにおける加速度値AX(tn)が最大加速度値AX+MAXに一致した場合、計数部250は、サチュレーション回数NXを増やす。
X軸方向のサチュレーション回数NXについて着目して、もう少し具体的に述べる。今回のサンプリング時刻tnにおいて、第1更新部220が最大加速度値AX+MAXを更新しなかった場合、加速度値のサチュレーションが発生した可能性がある。そのため、計数部250は、今回のサンプリング時刻tnにおけるX軸方向の加速度値AX(tn)が最大加速度値AX+MAXと一致するかを判定する。なお、本実施形態は、前者が後者と完全に一致すること要求しない。今回の加速度値AX(tn)が最大加速度値AX+MAXと一致している場合、計数部250は、サチュレーションが発生したと推定し、サチュレーション回数NXをインクリメントする(NX=NX+1)。その後、次のサンプリング時刻tn+1においても、最大加速度値AX+MAXが更新されず、サンプリング時刻tn+1における加速度値AX(tn+1)が最大加速度値AX+MAXと一致した場合、計数部250は、サチュレーション回数NXをインクリメントする。言い換えれば、最大加速度値AX+MAXが更新された後、最大加速度値AX+MAXと同じ大きさの加速度値が得られるたびに、計数部250は、サチュレーション回数NXをインクリメントする。このように、サチュレーション回数NXを計数することで、X軸方向の加速度値AX(t)のサチュレーションが発生した総時間が分かる。
上述の説明では、正の値をとる加速度値AX(tn)を例に挙げた。加速度値AX(tn)が負の値をとる場合、計数部250は、今回のサンプリング時刻tnにおいてX軸の負方向の最大加速度値AX−MAXが更新されず、且つ、今回のサンプリング時刻tnにおける加速度値AX(tn)が最大加速度値AX−MAXと一致した場合、サチュレーション回数NXを増やす。また、Y軸方向の加速度値AY(t)のサチュレーション回数NYおよびZ軸方向の加速度値AZ(t)のサチュレーション回数NZに関しても、計数部250は、同じ処理を実行する。
上述の説明では、処理対象の軸方向における加速度値に関して、最大加速度値が更新されず、且つ、現在の加速度値が最大加速度値に一致した場合、計数部250は、サチュレーションが発生したと推定する。しかしながら、最大加速度値が更新されず、且つ現在の加速度値が最大加速度値と一致するかという判定だけでは、加速度値のサチュレーションを捉えることが難しい場合がある。それは、サンプリング周波数の高低に起因している。
図7は、加速度センサ10によって得られたX軸方向の加速度値AX(t)を例示するグラフである。図7の実線L1は、測定レンジRMAXが−4G以上4G以下である加速度センサ10によって得られた加速度値AX(t)を示している。図7の点線L2は、本来のX軸方向の加速度値AX(t)を示している。図7の例では、点線L2で示すように、サンプリング時刻tn−1からtnにかけて、加速度値AX(t)のサチュレーションが発生している。しかしながら、サンプリング周波数が相対的に低いために、簡単に言えば、サンプリングが粗いために、実線L1で示すように、加速度値AX(t)のサチュレーションを捉えることができない場合がある。それは、次の理由による。図7の例では、サンプリング時刻tn−1における加速度値AX(tn−1)が4Gよりわずかに小さい。次のサンプリング時刻tnにおける加速度値AX(tn)は、前回のサンプリング時刻tn−1における加速度値AX(tn−1)と同じである。また、説明を分かりやすくするため、X軸の正方向における現在の最大加速度値AX+MAXが4Gであるとする。この場合、サンプリング時刻tn−1における加速度値AX(tn−1)が最大加速度値AX+MAXより小さいので、第1更新部220は、最大加速度値AX+MAXを加速度値AX(tn−1)に更新しない。その上、サンプリング時刻tnにおける加速度値AX(tn)が最大加速度値AX+MAXと一致しない。よって、計数部250は、サチュレーション回数NXをインクリメントしない。その結果、サンプリング時刻tn−1からtnにかけて発生しているサチュレーションを捉えることができない。
また、点線L2で示すように、サンプリング時刻tn+14からtn+15にかけて加速度値AX(t)のサチュレーションが発生しているにもかかわらず、このサチュレーションも捉えることができない。それは、次の理由による。図7の例では、サンプリング時刻tn+14における加速度値AX(tn+14)が先のサンプリング時刻tn−1における加速度値AX(tn−1)より大きいものの、測定レンジRAMXよりは小さい。その上、サンプリング時刻tn+15における加速度値AX(tn+15)が前回のサンプリング時刻tn+14より小さい。この場合も、サンプリング時刻tn+14における加速度値AX(tn+14)が最大加速度値AX+MAXより小さいので、第1更新部220は、最大加速度値AX+MAXを加速度値AX(tn+14)に更新しない。その上、サンプリング時刻tn+15における加速度値AX(tn+15)が最大加速度値AX+MAXと一致しない。よって、計数部250は、サチュレーション回数NXをインクリメントしない。その結果、サンプリング時刻tn+14からtn+15にかけて発生しているサチュレーションを捉えることができない。
そこで、計数部250は、今回のサンプリング時刻tnにおけるX軸方向の加速度値AX(tn)が正の値をとるとき、加速度値AX(tn)が許容値T+A以上であるかを判定する。その上で、計数部250は、前回のサンプリング時刻tn−1におけるX軸方向の加速度値AX(tn−1)が許容値T+A以上であるかを判定する。許容値T+Aは、現在の推定測定レンジRMAXeの上限値に応じて定まる正の値であって、例えば、現在の推定測定レンジRMAXeの上限値に0.9を乗じた値である。例えば、現在の推定測定レンジRMAXeが−4G以上4G以下である場合、許容値T+Aは、3.6G(=4G×0.9)となる。今回の加速度値AX(tn)が許容値T+A許容値以上であり(AX(tn)≧T+A)、且つ前回の加速度値AX(tn−1)が許容値T+A以上である場合(AX(tn−1)≧T+A)、計数部250は、サチュレーション回数NXをインクリメントする。図7の例では、サンプリング時刻tnおよびサンプリング時刻tn+15の双方において、計数部250は、サチュレーション回数NXをインクリメントする。
一方、今回のサンプリング時刻tnにおけるX軸方向の加速度値AX(tn)が許容値T+Aより小さい場合(AX(tn)<T+A)、計数部250は、サチュレーション回数NXをインクリメントしない。同様に、前回のサンプリング時刻tn−1に検出されたX軸方向の加速度値AX(tn−1)が許容値T+A以下である場合についても(AX(tn−1)≦TA)、計数部250は、サチュレーション回数NXをインクリメントしない。
一方、計数部250は、今回のサンプリング時刻tnにおける加速度値AX(tn)が負の値をとるとき、加速度値AX(tn)が許容値T−A以下であるかを判定する。その上で、計数部250は、前回のサンプリング時刻tn−1におけるX軸方向の加速度値AX(tn−1)が許容値T−A以下であるかを判定する。許容値T−Aは、現在の推定測定レンジRMAXeの下限値に応じて定まる負の値であって、例えば、現在の推定測定レンジRMAXeの下限値に0.9を乗じた値である。今回の加速度値AX(tn)が許容値T−A許容値以下であり(AX(tn)≦T−A)、且つ前回の加速度値AX(tn−1)が許容値T−A以下である場合(AX(tn−1)≦T−A)、計数部250は、サチュレーション回数NXをインクリメントする。
代替的に、許容値T+Aは、現在の推定測定レンジRMAXeの上限値に0.85を乗じた値であり、許容値T−Aは、現在の推定測定レンジRMAXeの下限値に0.85を乗じた値であってもよい。ただし、現在の推定測定レンジRMAXeに乗じる値が小さすぎても、大きすぎても、加速度値のサチュレーションの発生を的確に捉えることが難しくなる。よって、実用的には、現在の推定測定レンジRMAXeに乗じる値は、0.8以上、0.9以下である。
Y軸方向の加速度値AY(t)のサチュレーション回数NYおよびZ軸方向の加速度値AZ(t)のサチュレーション回数NZに関しても、計数部250は、サチュレーション回数NXの場合と同じ処理を実行する。以上のように、最大加速度値が更新されず、且つ現在の加速度値が最大加速度値と一致するかという判定条件が緩和される。よって、サンプリング周波数が相対的に低くても、加速度値のサチュレーションを的確に捉えることができる。
指標生成部260は、サチュレーション回数Nに基づいて、活動量の信頼性を表す指標を生成する。活動量の信頼性を表す指標の一つとして、単位時間あたりに、本来の加速度値をどの程度正しく捉えることができたかを表す指標がある。この指標を用いる場合、指標生成部260は、次の式(1)に基づいて、以下の補足率Reを算出し、算出した補足率Reをタッチパネル40に出力する。
Re=(NSAMPLING−N)/NSAMPLING×100 (%)
…(1)
式(1)において、NSAMPLINGは、単位時間(例えば、1分間)あたりのサンプリング回数を表す。補足率Reは、単位時間あたりに加速度値(AX(t)、AY(t)、AZ(t))を何回補足することができたかを示す。当然ながら、サチュレーション回数Nが多いほど、活動量の補足率Reは低くなる。その結果として、活動量の信頼性も低くなる。
また、活動量の信頼性を表す指標の一つとして、単位時間(例えば、1分間)あたりにサチュレーションが何回発生したかを表す指標がある。(1)式の替わりに、指標生成部260は、次の式(2)に基づいて、サチュレーション率RSを活動量の信頼性を表す指標として算出してもよい。
RS=N/NSAMPLING×100 (%) …(2)
式(2)に示すとおり、サチュレーション回数Nが多いほど、サチュレーション率RSも高くなる。その結果として、活動量の信頼性は低くなる。
活動量の信頼性を表す他の指標として、どの程度の誤差が単位時間あたりの消費エネルギーに含まれるかを表す指標がある。この指標を用いる場合、指標生成部260は、次に述べる誤差率REを活動量の信頼性を表す指標として算出してもよい。
加速度センサ10の本来の測定レンジRMAXの大きさによるが、サチュレーション率RSと消費エネルギーの誤差率REとの間には相関がある。図8は、サチュレーション率RSとユーザの消費エネルギーの誤差率REとの間の関係を例示するグラフである。黒丸の点は、携帯端末1を持ったユーザが走った場合に得られた値を示したものである。なお、加速度センサ10の本来の測定レンジRMAXは、−4G以上4G以下であった。
図8において、縦軸に示す消費エネルギーの誤差率REは、加速度値のサチュレーションが発生しなかった場合に、消費エネルギーにどの程度の誤差があるかを示し、次の式(3)で表される。
RE=|E1−E2|/E1×100 (%) …(3)
式(3)において、E1は、測定レンジRMAXが十分に大きい理想的な加速度センサを用いた場合に得られる本来の消費エネルギーを示す。つまり、E1は、加速度値のサチュレーションが発生しない場合に得られると推定される消費エネルギーを示す。E2は、加速度センサ10を用いた場合に得られる消費エネルギーを示す。
図8に示すように、サチュレーション率RSが高いほど、消費エネルギーの誤差率REも高くなる傾向にある。図8の例では、両者の間の関係に正の相関が見られることを本願発明者は確認している。そこで、指標生成部260は、以下の推定誤差率Eを次の式(4)を用いて算出する。推定誤差率Eは、図8におけるサチュレーション率RSと消費エネルギーの誤差率REとの間の関係に示すように、あるサチュレーション率RSに対して、消費エネルギーにどの程度の誤差が含まれるかを推定したものである。指標生成部260は、算出した推定誤差率Eをタッチパネル40に出力する。
E=α×RS 2+βRS (%) …(4)
式(4)において、αおよびβは、サチュレーション率RSおよび消費エネルギーの誤差率REから決まる係数である。例えば、指標生成部260は、図8に示す複数の黒丸の点から2次関数を求めることによって、αおよびβを算出する。
指標生成部260が設けられているので、仮に誤った活動量が測定されたとしても、測定された活動量を本来の活動量であるとユーザが信頼してしまう虞がなくなる。
算出部270は、ユーザの活動量を算出する。活動量は、例えば、以下の式(5)に示すユーザの消費エネルギーEEである。算出部270は、式(5)を用いて、単位時間(例えば、1分)あたりの消費エネルギーEEを算出する。
EE=a1+b1×X×W+c1×FFM+d1×A+f1×S …(5)
式(5)において、Xは、加速度値の大きさであって、(AX(t)2+AY(t)2+AZ(t)2)1/2で表される。Wは、ユーザの体重を示す。FFMは、ユーザの除脂肪率を示す。Aは、ユーザの年齢を示す。Sは、性別を示し、性別に応じた値をとる。a1、b1、c1、d1およびf1は、与えられた定数を示す。算出部270は、算出した消費エネルギーEEを補正部280に出力する。
代替的に、算出部270は、次の式(6)を用いて、ユーザの消費エネルギーEEを算出してもよい。
EE=a2+b2×X×W+c2×FFM+d2×FM+e2×A+f2×S
…(6)
式(6)において、FMは、ユーザの脂肪量を示す。a2、b2、c2、d2およびf2は、与えられた定数を示す。なお、消費エネルギーEEの算出方法は、式(5)に示す方法または式(6)に示す方法に限定されない。
補正部280は、サチュレーション回数Nに基づいて、算出部270が算出したユーザの活動量を補正する。換言すれば、補正部280は、加速度値のサチュレーションの発生がないと仮定した場合に得られるユーザの活動量を算出する。補正部280の詳細は、次の通りである。補正部280は、次の式(7)を用いて、消費エネルギーEEを補正する。
EEC=(1+E)×EE …(7)
EECは、補正後の消費エネルギーを示す。Eは、推定される誤差率である。推定誤差率E、サチュレーション率RSおよびサチュレーション回数Nを用いると、補正後の消費エネルギーEECは、次の式(8)で表される。
EEC=[1+(α×RS 2+βRS)]×EE
=[1+(α×(N/NSAMPLING)2+β×N/NSAMPLING)]×EE
…(8)
式(8)に示すように、補正部280は、サチュレーション率RSを用いて消費エネルギーEEを補正する。本実施形態では、サチュレーション率RSを直接用いる替わりに、補正部280は、サチュレーション回数Nに加え、消費エネルギーをEEと、単位時間当たりのサンプリング数NSAMPLINGとに基づいて、消費エネルギーEEを補正する。そして、補正部280は、補正した消費エネルギーEECをタッチパネル40に出力する。
以下に、補正部280の効果を図9Aおよび図9Bに関連付けて説明する。図9Aは、補正前の消費エネルギーEEと、本来の消費エネルギーE1との間の関係を例示するグラフである。横軸に示す消費エネルギーEEは、補正部280によって補正されていない消費エネルギー(kcal/分)を示す。縦軸に示す消費エネルギーE1は、測定レンジRMAXが十分に大きい加速度センサを用いた場合に得られる本来の消費エネルギーを示す(kcal/分)。図9Aに示すように、本来の消費エネルギーE1が増えるほど、補正前の消費エネルギーEEが実線から遠ざかるように分布している。このことは、両者の間の相関が小さいことを意味する。
一方、図9Bは、補正後の消費エネルギーEECと、本来の消費エネルギーE1との間の関係を例示するグラフである。横軸に示す消費エネルギーEECは、補正部280による補正後の消費エネルギーを示す(kcal/分)。縦軸に示す消費エネルギーE1は、図9Aと同様に、測定レンジRMAXが十分に大きい理想的な加速度センサを用いた場合に得られる消費エネルギーを示す(kcal/分)。図9Aの例と比較すると、図9Bの例では、実際の消費エネルギーE1が増えても、補正後の消費エネルギーEECが実線に沿うように分布している。このことは、両者の間の相関が大きいことを意味する。補正部280が設けられていることにより、本来の活動量に近い活動量が得られる。
なお、式(8)に示す補正後の消費エネルギーEECは、式(1)に示す補足率Reを用いて表すことができる。その詳細は、次の通りである。式(2)は、次の式(9)のように変形することができる。
N=NSAMPLING×RS …(9)
式(9)を式(1)に代入すると、次の式(10)が得られる。
RS=1−Re …(10)
式(10)を式(8)に代入することにより、補正後の消費エネルギーEECは、次の式(11)で表される。
EEC=[1+(α×RS 2+βRS)]×EE
=[1+{α×(1−Re)2+β×(1−Re)}]×EE …(11)
サチュレーション率RSを用いる替わりに、補正部280は、式(11)に示すように、補足率Reを用いて消費エネルギーEEを補正してもよい。
4.動作
図10Aから図10Cは、プロセッサ20の動作を例示するフローチャートである。プロセッサ20は、活動量算出プログラム310を初めて起動したとき、初期化を実行する(ステップS0)。第1に、プロセッサ20は、現在の推定測定レンジRMAXeを初期値に設定する。この初期値は、例えば、−2G以上2G以下である。初期の下限値は、例えば、−1.8G以上1.8G以下であっても差し支えはない。第2に、計数部250は、サチュレーション回数Nを0にリセットする。具体的には、計数部250は、サチュレーション回数NX、NY、NZをリセットする。第3に、プロセッサ20は、以下のような最大加速度値AX+MAX、AY+MAX、AZ+MAXAX−MAX、AY−MAX、AZ−MAXを履歴データ320に設定する。
X軸の正方向の最大加速度値AX+MAX=1.8G
X軸の負方向の最大加速度値AX−MAX=−1.8G
Y軸の正方向の最大加速度値AY+MAX=1.8G
Y軸の負方向の最大加速度値AY+MAX=−1.8G
Z軸の正方向の最大加速度値AZ+MAX=1.8G
Z軸の負方向の最大加速度値AZ−MAX=−1.8G
続いて、取得部210は、X軸方向の加速度値AX(t)と、Y軸方向の加速度値AY(t)と、Z軸方向の加速度値AZ(t)とを加速度センサ10から取得し、これらの加速度を第1更新部220に出力する(ステップS1)。続いて、推定部230は、現在の推定測定レンジRMAXeが−8G以上8G以下であるかを判定する(−8G≦RMAXe≦8G)(ステップS2)。ステップS2の処理は、推定測定レンジRMAXeの特定が必要かどうかを判定するために設けられている。図10Aの例では、推定測定レンジRMAXeが−8Gから8Gの範囲になければ、加速度センサ10の性能が十分であり、推定測定レンジRMAXeの特定が不要であるとしている。
現在の推定測定レンジRMAXeが−8G以上8G以下である場合(ステップS2:YES)、推定測定レンジRMAXeを特定するため、プロセッサ20は、ステップS3の処理を進める。一方、現在の推定測定レンジRMAXeが−8G以上8G以下の範囲にない場合(RMAXe<−8G、かつRMAXe>8G)(ステップS2:NO)、推定測定レンジRMAXeの特定は不要であるとして、プロセッサ20は、図10Bに示すステップS7の処理を進める。
ステップS2の結果が肯定の場合(YES)、第1更新部220は、X軸方向の加速度値AX(t)、Y軸方向の加速度値AY(t)およびZ軸方向の加速度値AZ(t)の各々について、次の処理を実行する。ここでは、X軸方向の加速度値AX(t)を例に挙げる。X軸方向の加速度値AX(t)が正の値をとる場合、第1更新部220は、X軸方向の現在の加速度値AX(t)がX軸の正方向の最大加速度値AX+MAXより大きいかを判定する(ステップS3)。X軸方向の加速度値AX(t)が負の値をとる場合、第1更新部220は、X軸方向の現在の加速度値AX(t)がX軸の負方向の最大加速度値AX−MAXより小さいかを判定する(ステップS3)。
ステップS3の判定結果が肯定の場合(ステップS3:YES)、X軸方向の加速度値AX(t)が正の値をとるならば、第1更新部220は、X軸の正方向の最大加速度値AX+MAXをX軸方向の現在の加速度値AX(t)に更新する(ステップS4)。X軸方向の加速度値AX(t)が負の値をとるならば、第1更新部220は、X軸の負方向の最大加速度値AX−MAXをX軸方向の現在の加速度値AX(t)に更新する(ステップS4)。一方、ステップS3の結果が否定の場合(ステップS3:NO)、第1更新部220は、X軸の正方向の最大加速度値AX+MAXを加速度値AX(t)に更新しないし、X軸の負方向の最大加速度値AX−MAXも加速度値AX(t)に更新しない。Y軸方向の加速度値AY(t)およびZ軸方向の加速度値AZ(t)に関しても、第1更新部220は、ステップS3の結果に応じて、ステップS4の処理と同様の処理を実行する。
続いて、ステップS3において、推定部230は、最大加速度値AX+MAX、AY+MAX、AZ+MAXAX−MAX、AY−MAX、AZ−MAXのうちのいずれかが更新されたかを判定する(ステップS5)。ステップS5の判定結果が肯定である場合(YES)、推定部230は、加速度センサ10の推定測定レンジRMAXeを特定する(ステップS6)。ステップS6の詳細については後述する。一方、ステップS5の結果が否定である場合(NO)、現在の推定測定レンジRMAXeに変更がないとして、推定部230は、推定測定レンジRMAXeを新たに特定しない。
次に、プロセッサ20は、図10Bに示すステップS7の処理を進める。最大加速度値AX+MAX、AY+MAX、AZ+MAX、AX−MAX、AY−MAX、AZ−MAXのうちのいずれかを第1更新部220が更新し(ステップS7:YES)、更に推定部230が推定測定レンジRMAXeを更新した場合(ステップS8:YE)計数部250は、サチュレーション回数NXを0にリセットする。同様に、計数部250は、サチュレーション回数NYを0にリセットし、サチュレーション回数NZを0にリセットする(ステップS9)。これは、現在の推定測定レンジRMAXeが加速度センサ10の本来の測定レンジRMAXではないためである。一方、最大加速度値AX+MAX、AY+MAX、AZ+MAX、AX−MAX、AY−MAX、AZ−MAXのうちのいずれかを第1更新部220が更新したにもかかわらず(ステップS7:YES)、推定部230が推定測定レンジRMAXeを更新しなかった場合(ステップS8:NO)、プロセッサ20は、図10Cに示すステップS14の処理を進める。
ステップS7の判定結果が否定であった場合(ステップS7:NO)、つまり、最大加速度値AX+MAX、AY+MAX、AZ+MAXAX−MAX、AY−MAX、AZ−MAXのうちのいずれも更新されなかった場合、計数部250は、サチュレーション回数Nに関して、次の処理を実行する。ここでは、X軸方向の加速度値のサチュレーション回数NXを例に挙げる。X軸方向の加速度値AX(tn)が正の値をとるとき、計数部250は、今回のサンプリング時刻tnにおけるX軸方向の加速度値AX(tn)がX軸の正方向の最大加速度値AX+MAXと一致するかを判定する(ステップS10)。X軸方向の加速度値AX(tn)が負の値をとるとき、計数部250は、今回のサンプリング時刻tnにおけるX軸方向の加速度値AX(tn)がX軸の負方向の最大加速度値AX−MAXと一致するかを判定する(ステップS10)。X軸方向の加速度値AX(tn)が正の値をとる場合でも、負の値をとる場合でも、ステップS10の結果が肯定である場合(YES)、計数部250は、サチュレーション回数NXをインクリメントする(ステップS11)。
ただし、ステップS10の結果が否定であっても(NO)、ステップS12およびS13の双方の条件を満たす場合には、計数部250は、サチュレーション回数NXをインクリメントする。具体的には、今回のサンプリング時刻tnにおけるX軸方向の加速度値AX(tn)が正の値をとるとき、計数部250は、加速度値AX(tn)が許容値T+A以上であるかを判定する(ステップS12)。ステップS12の結果が肯定である場合(YES)、計数部250は、前回のサンプリング時刻tn−1におけるX軸方向の加速度値AX(tn−1)が許容値T+A以上であるかを判定する(ステップS13)。今回のサンプリング時刻tnにおけるX軸方向の加速度値AX(tn)が負の値をとるとき、計数部250は、加速度値AX(tn)が許容値T−A以下であるかを判定する(ステップS12)。テップS12の結果が肯定である場合(YES)、計数部250は、前回のサンプリング時刻tn−1におけるX軸方向の加速度値AX(tn−1)が許容値T−A以下であるかを判定する(ステップS13)。ステップS12の結果が肯定であり(YES)、且つステップS13の結果が肯定である場合(YES)、計数部250は、サチュレーション回数NXをインクリメントする(ステップS11)。
ステップS12の結果が否定である場合(NO)、計数部250は、サチュレーション回数NXをインクリメントしない。同様に、ステップS13の結果が否定である場合も(NO)、計数部250は、サチュレーション回数NXをインクリメントしない。
Y軸方向の加速度値AY(t)のサチュレーション回数NYおよびZ軸方向の加速度値AZ(t)のサチュレーション回数NZに関しても、計数部250は、ステップS10からS13と同様の処理を実行する。
続いて、プロセッサ20は、ステップS1で取得された加速度値AX(t)、AY(t)およびAZ(t)にフィルタリング処理を施す(ステップS14)。フィルタリング処理は、例えば、加速度値AX(t)、AY(t)およびAZ(t)からノイズ成分を除去する処理を含む。続いて、プロセッサ20の時間判定部(図示しない)は、一定時間(例えば、1分)が経過したかを判定する(ステップS15)。一定時間が経過したとプロセッサ20の時間判定部が判定した場合(YES)、指標生成部260は、サチュレーション回数Nに基づいて、ユーザの活動量の信頼性を表す指標を生成する(ステップS16)。活動量の信頼性を表す指標は、式(1)に示す補足率Reでもよいし、式(2)に示すサチュレーション率RSでもよいし、式(4)に示す推定誤差率Eでもよい。あるいは、活動量の信頼性を表す指標は、補足率Re、サチュレーション率RSおよび推定誤差率Eのうちの任意の2つでもよいし、全てでもよい。そして、指標生成部260は、生成した信頼性を表す指標をタッチパネル40に出力する。続いて、算出部270は、式(5)に示すユーザの消費エネルギーEEを用いて、ユーザの活動量を算出する(ステップS17)。続いて、補正部280は、サチュレーション回数Nに基づいて、算出部270が算出したユーザの活動量を補正する(ステップST18)。具体的には、補正部280は、式(7)を用いて、消費エネルギーEEを補正する。代替的に、補正部280は、式(11)を用いて、消費エネルギーEEを補正してもよい。そして、補正部280は、補正した消費エネルギーEECをタッチパネル40に出力する。ステップST18の処理の後、プロセッサ20は、ステップS1の処理に戻る。ステップS15で一定時間が経過していない場合についても(NO)、プロセッサ20は、ステップS1の処理に戻る。
以上の説明の通り、プロセッサ20は、活動量算出プログラム310を一度起動すると、ステップS1からS18の処理を繰り返し、推定測定レンジRMAXeを特定する。また、プロセッサ20は、活動量を計測する処理のバックグラウンドで加速度センサ10の推定測定レンジRMAXeを特定する。よって、携帯端末1のユーザは、活動量を算出するアプリケーション(活動量算出プログラム310)を普段どおりに使うだけでよい。加速度センサ10の推定測定レンジRMAXeを得るためだけに、携帯端末1を振ると言った面倒な操作が不要である。
以下に、図10Aに示すステップS6の処理を説明する。図10Dおよび図10Eは、プロセッサ20の動作を例示するフローチャートである。推定部230は、最大加速度値AX+MAX、AY+MAX、AZ+MAXAX−MAX、AY−MAX、AZ−MAXの中から絶対値が最も大きい値を最大値AMAXとして抽出する(ステップS61)。
推定部230は、最大値AMAXが1.8G以上、かつ2.2Gよりも小さいかを判定する(ステップS62)。ステップS62の結果が肯定の場合(YES)、推定部230は、推定測定レンジRMAXeが−2G以上2G以下であると特定する(ステップS63)。
ステップS62の結果が否定の場合(NO)、推定部230は、最大値AMAXが2.2G以上、かつ3.2Gよりも小さいかを判定する(ステップS64)。ステップS64の結果が肯定の場合(YES)、推定部230は、推定測定レンジRMAXeが−3G以上3G以下であると特定する(ステップS65)。続いて、第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+の2.5Gより小さい最大加速度値ANMAXがあるかを判定する(ステップS66)。判定の結果が肯定の場合(ステップS66:YES)、第2更新部240は、その最大加速度値ANMAXを2.5Gに更新する(ステップS67)。一方、判定の結果が否定の場合(ステップS66:NO)、第2更新部240は、その最大加速度値ANMAXを2.5Gに更新しない。
同様に、第2更新部240は、規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−の−2.5Gより大きい最大加速度値ANMAXがあるかを判定する(ステップS66)。判定の結果が肯定の場合(ステップS66:YES)、第2更新部240は、その最大加速度値ANMAXを−2.5Gに更新する(ステップS67)。一方、判定の結果が否定の場合(ステップS66:NO)、第2更新部240は、その最大加速度値ANMAXを−2.5Gに更新しない。
以下、プロセッサ20は、ステップS64からS67と同様の処理を繰り返す。その詳細は、次の通りである。ステップS64の結果が否定の場合(NO)、推定部230は、最大値AMAXが3.2G以上、かつ4.2Gよりも小さいかを判定する(ステップS68)。ステップS68の結果が肯定の場合(YES)、推定部230は、推定測定レンジRMAXeが−4G以上4G以下であると特定する(ステップS69)。続いて、第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+の3.5Gより小さい最大加速度値ANMAXがあるかを判定する(ステップS610)。判定の結果が肯定の場合(ステップS610:YES)、第2更新部240は、その最大加速度値ANMAXを3.5Gに更新する(ステップS611)。一方、判定の結果が否定の場合(ステップS610:NO)、第2更新部240は、その最大加速度値ANMAXを3.5Gに更新しない。
同様に、第2更新部240は、規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−の−3.5Gより大きい最大加速度値ANMAXがあるかを判定する(ステップS610)。判定の結果が肯定の場合(ステップS610:YES)、第2更新部240は、その最大加速度値ANMAXを−3.5Gに更新する(ステップS611)。一方、判定の結果が否定の場合(ステップS610:NO)、第2更新部240は、その最大加速度値ANMAXを−3.5Gに更新しない。
ステップS68の結果が否定の場合(NO)、推定部230は、最大値AMAXが4.2G以上、かつ5.2Gよりも小さいかを判定する(ステップS612)。ステップS612の結果が肯定の場合(YES)、推定部230は、推定測定レンジRMAXeが−5G以上5G以下であると推定する(ステップS613)。続いて、第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+の4.5Gより小さい最大加速度値ANMAXがあるかを判定する(ステップS614)。判定の結果が肯定の場合(ステップS614:YES)、第2更新部240は、その最大加速度値ANMAXを4.5Gに更新する(ステップS615)。一方、判定の結果が否定の場合(ステップS614:NO)、第2更新部240は、その最大加速度値ANMAXを4.5Gに更新しない。
同様に、第2更新部240は、規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−の−4.5Gより大きい最大加速度値ANMAXがあるかを判定する(ステップS614)。判定の結果が肯定の場合(ステップS614:YES)、第2更新部240は、その最大加速度値ANMAXを−4.5Gに更新する(ステップS615)。一方、判定の結果が否定の場合(ステップS614:NO)、第2更新部240は、その最大加速度値ANMAXを−4.5Gに更新しない。
ステップS612の結果が否定の場合(NO)、推定部230は、最大値AMAXが5.2G以上、かつ6.2Gよりも小さいかを判定する(ステップS616)。ステップS616の結果が肯定の場合(YES)、推定部230は、推定測定レンジRMAXeが−6G以上6G以下であると推定する(ステップS617)。続いて、第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+の5.5Gより小さい最大加速度値ANMAXがあるかを判定する(ステップS618)。判定の結果が肯定の場合(ステップS618:YES)、第2更新部240は、その最大加速度値ANMAXを5.5Gに更新する(ステップS619)。一方、判定の結果が否定の場合(ステップS618:NO)、第2更新部240は、その最大加速度値ANMAXを5.5Gに更新しない。
同様に、第2更新部240は、規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−の−5.5Gより大きい最大加速度値ANMAXがあるかを判定する(ステップS618)。判定の結果が肯定の場合(ステップS618:YES)、第2更新部240は、その最大加速度値ANMAXを−5.5Gに更新する(ステップS618)。一方、判定の結果が否定の場合(ステップS618:NO)、第2更新部240は、その最大加速度値ANMAXを−5.5Gに更新しない。
ステップS616の結果が否定の場合(NO)、推定部230は、最大値AMAXが6.2G以上、かつ7.2Gよりも小さいかを判定する(ステップS620)。ステップS620の結果が肯定の場合(YES)、推定部230は、推定測定レンジRMAXeが−7G以上7G以下であると特定する(ステップS621)。続いて、第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+の6.5Gより小さい最大加速度値ANMAXがあるかを判定する(ステップS622)。判定の結果が肯定の場合(ステップS622:YES)、第2更新部240は、その最大加速度値ANMAXを6.5Gに更新する(ステップS623)。一方、判定の結果が否定の場合(ステップS622:NO)、第2更新部240は、その最大加速度値ANMAXを6.5Gに更新しない。
同様に、第2更新部240は、規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−の−6.5Gより大きい最大加速度値ANMAXがあるかを判定する(ステップS622)。判定の結果が肯定の場合(ステップS622:YES)、第2更新部240は、その最大加速度値ANMAXを−6.5Gに更新する(ステップS623)。一方、判定の結果が否定の場合(ステップS622:NO)、第2更新部240は、その最大加速度値ANMAXを−6.5Gに更新しない。
ステップS620の結果が否定の場合(NO)、推定部230は、最大値AMAXが7.2G以上、かつ8.2Gよりも小さいかを判定する(ステップS624)。ステップS624の結果が肯定の場合(YES)、推定部230は、推定測定レンジRMAXeが−8G以上8G以下であると特定する(ステップS625)。続いて、第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+の7.5Gより小さい最大加速度値ANMAXがあるかを判定する(ステップS626)。判定の結果が肯定の場合(ステップS626:YES)、推定部230は、その最大加速度値ANMAXを7.5Gに更新する(ステップS627)。一方、判定の結果が否定の場合(ステップS626:NO)、推定部230は、その最大加速度値ANMAXを7.5Gに更新しない。
同様に、第2更新部240は、規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−の−7.5Gより大きい最大加速度値ANMAXがあるかを判定する(ステップS626)。判定の結果が肯定の場合(ステップS626:YES)、第2更新部240は、その最大加速度値ANMAXを−7.5Gに更新する(ステップS627)。一方、判定の結果が否定の場合(ステップS626:NO)、第2更新部240は、その最大加速度値ANMAXを−7.5Gに更新しない。
ステップS624の結果が否定の場合(NO)、推定部230は、推定測定レンジRMAXeが−8Gより小さく、8Gより大きいと推定する(ステップS628)。続いて、第2更新部240は、規定値テーブル340を参照し、X軸の正方向の最大加速度値AX+MAX、Y軸の正方向の最大加速度値AY+MAXおよびZ軸の正方向の最大加速度値AZ+MAXの中に、規定値Th+の9.0Gより小さい最大加速度値ANMAXがあるかを判定する(ステップS629)。判定の結果が肯定の場合(ステップS629:YES)、第1更新部220は、その最大加速度値ANMAXを9Gに更新する(ステップS630)。一方、判定の結果が否定の場合(ステップS629:NO)、第1更新部220は、その最大加速度値ANMAXを9Gに更新しない。
同様に、第2更新部240は、規定値テーブル340を参照し、X軸の負方向の最大加速度値AX−MAX、Y軸の負方向の最大加速度値AY−MAXおよびZ軸の負方向の最大加速度値AZ−MAXの中に、規定値Th−の−9.0Gより大きい最大加速度値ANMAXがあるかを判定する(ステップS629)。判定の結果が肯定の場合(ステップS629:YES)、第2更新部240は、その最大加速度値ANMAXを−9.0Gに更新する(ステップS630)。一方、判定の結果が否定の場合(ステップS629:NO)、第2更新部240は、その最大加速度値ANMAXを−9.0Gに更新しない。
以上の実施形態により、仮に誤った活動量が算出されたとしても、算出された活動量を本来の活動量であるとユーザが信頼してしまう虞がなくなる。また、加速度値のサチュレーションの発生がないと仮定した場合に得られるユーザの活動量が算出されるので、ユーザにとっては便利である。アプリケーションの開発者にとっても、携帯端末1にどのような種類の加速度センサ10が搭載されているかに左右されないという利点がある。その上、携帯端末1に搭載されるOSの仕様に左右されない。例えば、あるOSには、加速度センサの本来の測定レンジを得るためのコマンドが用意されている。しかしながら、このコマンドによって得られた測定レンジが正確であるとは限らない。推定測定レンジRMAXeが特定されるので、このような場合においても、本実施形態は顕著な効果を奏する。
<変形例>
本発明の一例として実施形態を説明したが、本発明はこれに限定されるものではなく、以下に述べる各種の変形が可能である。更に、以下の例示から任意に選択された2以上の態様は、技術的に矛盾しない限り適宜併合され得る。
(1)変形例1
実施形態では、図10Cに示すように、ステップS16で指標生成部260がユーザの活動量の信頼性を表す指標を生成した後に、ステップS17で算出部270がユーザの活動量を算出する。続いて、ステップS18で補正部280がユーザの活動量を補正する。代替的に、ステップS16の処理は、ステップS18の処理の後でもよい。つまり、補正部280がユーザの活動量を補正した後に、指標生成部260がユーザの活動量の信頼性を表す指標を通知してもよい。変形例1においても、実施形態と同様の効果が得られる。
(2)変形例2
実施形態では、図10Cに示すように、ステップS14でプロセッサ20が3軸方向の加速度値AX(t)、AY(t)およびAZ(t)にフィルタリング処理を施す。代替的に、取得部210がステップS14の処理をステップS1で実行してもよい。つまり、取得部210が3軸方向の加速度値AX(t)、AY(t)およびAZ(t)にフィルタリング処理を施し、ノイズが除去されたこれらの加速度値を第1更新部220に出力してもよい。変形例2においても、実施形態と同様の効果が得られる。
(3)変形例3
実施形態では、図10Aに示すように、ステップS2の結果が否定である場合(NO)、推定測定レンジRMAXeを推定するため、プロセッサ20は、ステップS3の処理を進める。代替的に、ステップS2の結果が否定である場合(NO)、本来の測定レンジRMAXが既に推定されているとして、プロセッサ20がステップS14の処理を進めてもよい。この場合、プロセッサ20は、ステップS3からステップS13にかけての処理を実行しなくてもよい。変形例3においても、実施形態と同様の効果が得られる上、活動量算出プログラム310の処理速度が向上する。
(4)変形例4
実施形態では、プロセッサ20は、ステップS1からS18の処理を繰り返す。よって、アプリケーション(活動量算出プログラム310)の終了命令をプロセッサ20が受け付けると、その時点で、現在の推定測定レンジRMAXeが消去されることとなる。上述の終了命令の後も、最後に特定された推定測定レンジRMAXeから処理を再開できるように、プロセッサ20の機能(活動量算出プログラム310)が構成されていてもよい。例えば、ステップ6で特定した推定測定レンジRMAXeを推定部230が不揮発性記憶装置に格納しておく。アプリケーション(活動量算出プログラム310)が復帰したとき、ステップS0で、プロセッサ20は、現在の推定測定レンジRMAXeの下限値を最後に特定した推定測定レンジRMAXeに設定する。
(5)変形例5
活動量の信頼性を表す指標の1つとして、推定される測定レンジRMAXを推定部230がタッチパネル40に表示してもよい。測定レンジRMAXの表示は、携帯端末1のユーザあるいはアプリケーション(活動量算出プログラム310)の開発者にとって有意義である。
(6)変形例6
実施形態では、X軸方向の加速度値AX(t)が正の値をとる場合に着目すると、今回のサンプリング時刻tnにおいてX軸の正方向の最大加速度値AX+MAXが更新されず、且つ、今回のサンプリング時刻tnにおける加速度値AX(tn)が最大加速度値AX+MAXに一致した場合、計数部250は、サチュレーションが発生したと推定し、サチュレーション回数NXをインクリメントする。代替的に、最大加速度値AX+MAXと同じ大きさの加速度値AX(tn)が連続するひとつの期間を1回のサチュレーションとして計数部250が計数してもよい。例えば、実施形態と同様に、今回のサンプリング時刻tnにおいてX軸の正方向の最大加速度値AXMAXが更新されず、且つ、今回のサンプリング時刻tnにおける加速度値AX(tn)が最大加速度値AX+MAXに一致した場合に、計数部250は、フラグを立てる。その後、加速度値AXが最大加速度値AX+MAXに一致しなくなった場合に、そのフラグを下げて、サチュレーション回数NXをインクリメントする。Y軸方向のサチュレーション回数NY、およびZ軸方向のサチュレーション回数NZに関しても、同様である。変形例6においても、実施形態と同様の効果が得られる。