(57)【特許請求の範囲】
【請求項１】
歩行中に検出される三軸加速度センサのセンサ値から左右方向の一方と他方の加速度の大きさを生成する加速度センサ出力処理を，コンピュータに実行させる加速度センサ出力処理プログラムであって，
前記加速度センサ出力処理は，
前記センサ値からローパスフィルタにより抽出した重力成分ベクトルと，ハイパスフィルタにより抽出した振動成分ベクトルとの外積を生成する工程と，
前記外積の大きさに対応する第１の値を求める工程と，
前記歩行の奇数番目の歩周期と偶数番目の歩周期とを判定する工程と，
前記判定結果に応じて，前記第１の値の符号を反転して，前記左右方向の一方と他方の加速度の大きさを生成する工程とを有する加速度センサ出力処理プログラム。
【請求項２】
請求項１において，
前記判定する工程は，前記重力成分ベクトルと振動成分ベクトルとの内積を生成し，前記内積の奇数番目の周期と偶数番目の周期に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定する加速度センサ出力処理プログラム。
【請求項３】
請求項１において，
前記判定する工程は，前記外積と任意のベクトルとの内積の符号に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定する加速度センサ出力処理プログラム。
【請求項４】
請求項１において，
前記判定する工程は，前記外積と同一平面内にない少なくとも３つのベクトルとの内積のうち最大絶対値の内積の符号に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定する加速度センサ出力処理プログラム。
【請求項５】
請求項１において，
前記判定する工程は，前記外積と任意のベクトルとの内積の符号に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定し，前記任意のベクトルを前記外積に前記内積の符号を乗じて平均化して生成する加速度センサ出力処理プログラム。
【請求項６】
歩行中に検出される三軸加速度センサのセンサ値から左右方向の一方と他方の加速度の第１の大きさを生成する加速度センサ出力処理を，コンピュータに実行させる加速度センサ出力処理プログラムであって，
前記加速度センサ出力処理は，
前記センサ値からローパスフィルタにより抽出した重力成分ベクトルと，第１のバンドパスフィルタにより抽出した前後振動成分ベクトルとを外積して第１の外積を生成する工程と，
前記第１の外積に交互に変化する所定の符号を乗じて平均化して左右いずれかの方向と一定の大きさを有する左右基準ベクトルを生成する工程と，
前記第１の外積と前記左右基準ベクトルとの第１の内積の符号に基づいて前記所定の符号を生成する工程と，
前記センサ値から，前記第１のバンドパスフィルタより通過周波数帯域が低い第２のバンドパスフィルタにより抽出した左右振動成分ベクトルと前記左右基準ベクトルとを内積して前記第１の大きさを生成する工程とを有する加速度センサ出力処理プログラム。
【請求項７】
請求項６において，
前記加速度センサ出力処理は，更に，
前記重力成分ベクトルと前記左右基準ベクトルとを外積して前後いずれかの方向と一定の大きさを有する前後基準ベクトルを生成する工程と，
前記前後振動成分ベクトルと前記前後基準ベクトルとを内積して前後方向の一方と他方の加速度の第２の大きさを生成する工程とを有する加速度センサ出力処理プログラム。
【請求項８】
請求項６において，
前記加速度センサ出力処理は，さらに，
前記センサ値からハイパスフィルタにより抽出した振動成分ベクトルと前記重力成分ベクトルとの第２の内積の符号に基づいて，前記第１の大きさの符号を修正して，左右方向を区別可能な第１の大きさを生成する工程を有する加速度センサ出力処理プログラム。
【請求項９】
請求項７において，
前記加速度センサ出力処理は，さらに，
前記センサ値からハイパスフィルタにより抽出した振動成分ベクトルと前記重力成分ベクトルとの第２の内積の符号に基づいて，前記第２の大きさの符号を修正して，前後方向を区別可能な第２の大きさを生成する工程を有する加速度センサ出力処理プログラム。
【請求項１０】
請求項１乃至９のいずれかの加速度センサ出力処理により生成された左右方向の一方と他方の加速度の大きさの比を生成する工程と，
前記比に基づいて歩行評価を行う工程とを有する，歩行評価プログラム。
【請求項１１】
歩行中に検出される三軸加速度センサのセンサ値から左右方向の一方と他方の加速度の大きさを生成する加速度センサ出力処理装置であって，
前記センサ値からローパスフィルタにより抽出した重力成分ベクトルと，ハイパスフィルタにより抽出した振動成分ベクトルとの外積を生成する外積生成手段と，
前記外積の大きさに対応する第１の値を生成する第１の値生成手段と，
前記歩行の奇数番目の歩周期と偶数番目の歩周期とを判定する判定手段と，
前記判定結果に応じて，前記第１の値の符号を反転して，前記左右方向の一方と他方の加速度の大きさを生成する大きさ生成手段とを有する加速度センサ出力処理装置。
【請求項１２】
請求項１１において，
前記判定手段は，前記重力成分ベクトルと振動成分ベクトルとの内積を生成し，前記内積の奇数番目の周期と偶数番目の周期に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定する加速度センサ出力処理装置。
【請求項１３】
請求項１１において，
前記判定手段は，前記外積と任意のベクトルとの内積の符号に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定する加速度センサ出力処理装置。
【請求項１４】
請求項１１において，
前記判定手段は，前記外積と同一平面内にない少なくとも３つのベクトルとの内積のうち最大絶対値の内積の符号に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定する加速度センサ出力処理装置。
【請求項１５】
請求項１１において，
前記判定手段は，前記外積と任意のベクトルとの内積の符号に基づいて，前記歩行の奇数番目の歩周期と偶数番目の歩周期を判定し，前記任意のベクトルを前記外積に前記内積の符号を乗じて平均化して生成する加速度センサ出力処理装置。
【請求項１６】
歩行中に検出される三軸加速度センサのセンサ値から左右方向の一方と他方の加速度の第１の大きさを生成する加速度センサ出力処理装置であって，
前記センサ値からローパスフィルタにより抽出した重力成分ベクトルと，第１のバンドパスフィルタにより抽出した前後振動成分ベクトルとを外積して第１の外積を生成する外積生成手段と，
前記第１の外積に交互に変化する所定の符号を乗じて平均化して左右いずれかの方向と一定の大きさを有する左右基準ベクトルを生成する左右基準ベクトル生成手段と，
前記第１の外積と前記左右基準ベクトルとの第１の内積の符号に基づいて前記所定の符号を生成する符号生成手段と，
前記センサ値から，前記第１のバンドパスフィルタより通過周波数帯域が低い第２のバンドパスフィルタにより抽出した左右振動成分ベクトルと前記左右基準ベクトルとを内積して前記第１の大きさを生成する第１の大きさ生成手段とを有する加速度センサ出力処理装置。
【請求項１７】
請求項１６において，更に，
前記重力成分ベクトルと前記左右基準ベクトルとを外積して前後いずれかの方向と一定の大きさを有する前後基準ベクトルを生成する前後基準ベクトル生成手段と，
前記前後振動成分ベクトルと前記前後基準ベクトルとを内積して前後方向の一方と他方の加速度の第２の大きさを生成する第２の大きさ生成手段とを有する加速度センサ出力処理装置。
【請求項１８】
請求項１６において，
前記加速度センサ出力処理は，さらに，
前記センサ値からハイパスフィルタにより抽出した振動成分ベクトルと前記重力成分ベクトルとの第２の内積の符号に基づいて，前記第１の大きさの符号を修正して，左右方向を区別可能な第１の大きさを生成する手段を有する加速度センサ出力処理装置。
【請求項１９】
請求項１７において，さらに，
前記センサ値からハイパスフィルタにより抽出した振動成分ベクトルと前記重力成分ベクトルとの第２の内積の符号に基づいて，前記第２の大きさの符号を修正して，前後方向を区別可能な第２の大きさを生成する手段を有する加速度センサ出力処理装置。
【請求項２０】
歩行中に検出される三軸加速度センサのセンサ値から左右方向の一方と他方の加速度の大きさを生成する加速度センサ出力処理方法であって，
前記センサ値からローパスフィルタにより抽出した重力成分ベクトルと，ハイパスフィルタにより抽出した振動成分ベクトルとの外積を生成する工程と，
前記外積の大きさに対応する第１の値を求める工程と，
前記歩行の奇数番目の歩周期と偶数番目の歩周期とを判定する工程と，
前記判定結果に応じて，前記第１の値の符号を反転して，前記左右方向の一方と他方の加速度の大きさを生成する工程とを有する加速度センサ出力処理方法。
【請求項２１】
歩行中に検出される三軸加速度センサのセンサ値から左右方向の一方と他方の加速度の第１の大きさを生成する加速度センサ出力処理方法であって，
前記センサ値からローパスフィルタにより抽出した重力成分ベクトルと，第１のバンドパスフィルタにより抽出した前後振動成分ベクトルとを外積して第１の外積を生成する工程と，
前記第１の外積に交互に変化する所定の符号を乗じて平均化して左右いずれかの方向と一定の大きさを有する左右基準ベクトルを生成する工程と，
前記第１の外積と前記左右基準ベクトルとの第１の内積の符号に基づいて前記所定の符号を生成する工程と，
前記センサ値から，前記第１のバンドパスフィルタより通過周波数帯域が低い第２のバンドパスフィルタにより抽出した左右振動成分ベクトルと前記左右基準ベクトルとを内積して前記第１の大きさを生成する工程とを有する加速度センサ出力処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，加速度センサ出力処理プログラム，処理方法，処理装置及び歩行評価プログラムに関する。
【背景技術】
【０００２】
近年の携帯電話などの携帯機器は，様々なセンサを有し，センサ出力値を利用した様々な機能を有している。例えば，加速度センサを有する携帯機器は，そのセンサ値に基づいて，携帯機器の現在の状態を判定する。【０００３】
一例として，加速度センサのセンサ値を利用してユーザの歩行状態を評価する携帯機器が提案されている。例えば，特許文献１，２などである。これらの文献には，加速度センサのセンサ値から携帯機器の所有者の歩数を計測することや，センサ値から歩行中における鉛直方向（重力方向，または上下方向）の加速度の大きさと水平方向の加速度の大きさを四則演算により求めることが記載されている。【０００４】
また，歩行評価については，特許文献３などに記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２５７３９５号公報
【特許文献２】特開２０１２−０６３２０８号公報
【特許文献３】特開２０１１−２５１０１３号公報
【特許文献４】特開２０１０−２７１１６７号公報
【特許文献５】特開２００８−３３５２６号公報
【特許文献６】特許第４４４３９７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら，歩行状態を評価するためには，上下方向の加速度の大きさに加えて，左右方向の一方と他方の加速度の大きさや，前後方向の一方と他方の加速度の大きさが検出されることが望ましい。さらには，右方向と左方向の加速度の大きさや，前方向と後ろ方向の加速度の大きさが検出されることが望ましい。【０００７】
加速度センサの座標系で出力されたセンサ値を上下左右前後の座標系に変換することは，回転行列を利用する演算処理により可能である。しかし，この演算処理によれば，三角関数の演算が必要であり，四則演算などの簡単な演算処理しかできないマイクロプロセッサでは容易ではなく，より高度な演算処理が可能なマイクロプロセッサが必要になる。【０００８】
そこで，本発明の目的の一つの側面は，四則演算などの簡単な演算処理で加速度センサのセンサ値から歩行状態の左右方向の一方と他方の加速度を求める加速度センサ出力処理プログラム，処理方法，処理装置を提供することにある。【０００９】
また，本発明の目的の別の側面は，四則演算などの簡単な演算処理で加速度センサのセンサ値から歩行状態の左方向と左方向それぞれの加速度を求める加速度センサ出力処理プログラム，処理方法，処理装置を提供することにある。【００１０】
さらに，本発明の目的の別の側面は，歩行状態の前後方向の一方と他方の加速度，または，歩行状態の前方向と後方向それぞれの加速度を求める加速度センサ出力処理プログラム，処理方法，処理装置を提供することにある。【００１１】
そして，本発明の目的の別の側面は，上記の求められた加速度に基づいて歩行状態を評価する歩行評価プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本実施の形態の第１の側面は，歩行中に検出される三軸加速度センサのセンサ値（A)から左右方向の一方と他方の加速度の大きさ（ｈ）を生成する加速度センサ出力処理を，コンピュータに実行させる加速度センサ出力処理プログラムであって，
前記加速度センサ出力処理は，
前記センサ値（A)からローパスフィルタにより抽出した重力成分ベクトル（G)と，ハイパスフィルタにより抽出した振動成分ベクトル（S)との外積（S×G)を生成する工程と，
前記外積の大きさに対応する第１の値を求める工程と，
前記歩行の奇数番目の歩周期と偶数番目の歩周期とを判定する工程と，
前記判定結果に応じて，前記第１の値の符号を反転して，前記左右方向の一方と他方の加速度の大きさ（ｈ）を生成する工程とを有する。
【発明の効果】
【００１３】
第１の側面によれば，加速度センサのセンサ値から歩行状態の左右方向の一方と他方の加速度を求めることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態における携帯機器の構成図である。
【図２】人間の歩行における体幹と両脚の動きを模式的に表す図である。
【図３】センサ座標系と歩行者の座標系について説明する図である。
【図４】姿勢が不明な加速度センサのセンサ出力から歩行者の振動の上下方向の加速度の大きさを求める演算処理を示すシーケンス線図である。
【図５】姿勢が不明な加速度センサのセンサ出力から歩行者の振動の水平方向の加速度を求める演算処理を示すシーケンス線図である。
【図６】歩行に伴う振動成分Sと，Sの左右方向Hの成分hと，Sの前後方向Fの成分fとの関係を示す図である。
【図７】第１の実施の形態におけるサブマイクロプロセッサ１４内の加速度センサ出力処理プログラム１５の処理機能を示す図である。
【図８】第１の実施の形態の第１の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。
【図９】図８の演算処理における絶対値演算処理部３２の出力|H|と乗算器MXの出力ｈの一例を示す図である。
【図１０】図９の係数＋１，−１を生成する方法を説明する図である。
【図１１】第１の実施の形態の第１の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。
【図１２】図１０の上下運動の大きさ|v|の変化と，左右方向（水平方向）の運動の大きさ|H|との位相がずれた場合を説明する図である。
【図１３】外積S×Gのベクトルと任意のベクトルKとの関係を説明する図である。まず，矢上面，冠状面，横断面について説明する。
【図１４】第１の実施の形態の第２の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。
【図１５】第１の実施の形態の第３の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。
【図１６】第１の実施の形態の第４の例を説明する図である。
【図１７】第１の実施の形態の第４の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。
【図１８】歩行評価プログラムの第１の例を説明する図である。
【図１９】歩行評価プログラムによる最大加速度を求めるフローチャート図である。
【図２０】加速度比を利用した歩行評価プログラムの歩行評価のフローチャート図である。
【図２１】図２０で求めた比の時間推移の例を示す図である。
【図２２】歩行評価プログラムの第２の例を説明する図である。
【図２３】第２の例における加速度の二乗の面積Peng，Nengを抽出するフローチャート図である。
【図２４】歩行評価プログラムの第３の例を説明する図である。
【図２５】歩行評価プログラムの第４の例を説明する図である。
【図２６】第２の実施の形態における加速度センサ出力処理プログラムの機能を示す図である。
【図２７】上記の原理でバンドパスフィルタにより分離された左右方向の加速度Hfと，上下方向の加速度Vfとの関係を示す図である。
【図２８】第２の実施の形態における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度の大きさと，前後方向の一方及び他方の加速度の大きさとを求める演算処理を示すシーケンス線図である。
【図２９】第２の実施の形態における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度と前後方向の一方及び他方の加速度とを求める演算処理を示すシーケンス線図である。
【図３０】第３の実施の形態における加速度センサ出力処理プログラムの機能を示す図である。
【図３１】歩行における上下運動と前後運動との関係を示す図である。
【図３２】第３の実施の形態における加速度センサ出力処理プログラム内の左右方向の加速度の大きさと前後方向の加速度の大きさとを求める演算処理を示すシーケンス線図である。
【図３３】ローパスフィルタLPFの演算処理のシーケンス線図である。
【図３４】ハイパスフィルタHPFの演算処理のシーケンス線図である。
【図３５】バンドパスフィルタBPFの演算処理のシーケンス線図である。
【発明を実施するための形態】
【００１５】
図１は，本実施の形態における携帯機器の構成図である。スマートホンなどの携帯機器１０は，メインマイクロプロセッサ１１と，サブマイクロプロセッサ１４と，メモリ１７とを有し，さらに，携帯機器１０は，周辺リソースとして，図示しない表示パネルのタッチパネル制御部１や，無線通信などを行う通信マクロ１８などを有する。さらに，携帯機器１０は，三軸加速度センサ１３を有する。
【００１６】
メインマイクロプロセッサ１１は，制御プログラム12Aを実行して携帯機器が有する各種の機能を実現する。サブマイクロプロセッサ１４は，加速度センサ出力処理プログラム14Aを実行して，加速度センサ１３のセンサの座標系で出力されたセンサ出力を演算処理して，上下方向の加速度gと，左右の一方と他方の加速度または左右方向の加速度h，前後の一方と他方の加速度または前後方向の加速度fとを出力する。さらに，サブマイクロプロセッサ１４は，歩行評価プログラム14Bを実行して所有者の歩行状態の評価結果を生成し，記憶する。
【００１７】
メインマイクロプロセッサ１１は，高速演算処理が可能であるが消費電力が大きい。したがって，常時動作状態に保つことは好ましくなく，動作時間に一定の制限があり，一時的に休止状態に制御される。一方，歩行状態を評価するためには，日常の歩行データを常時取得し，その歩行データに基づいて歩行状態を評価することが求められる。
【００１８】
そこで，サブマイクロプロセッサ１４は，少なくとも歩行中は活性状態にされ，加速度センサ１３のセンサ値を入力し，センサの座標系のセンサ値を演算処理して前述の上下，左右，前後の加速度データを生成する。ただし，サブマイクロプロセッサ１４は，四則演算など簡単な演算処理やメモリへのアクセス処理などしかできないが，消費電力が小さいので，長時間にわたり加速度センサ出力処理プログラム14Aを実行することができる。さらに，サブマイクロプロセッサ１４は，歩行評価プログラム14Bを実行して，歩行状態を評価し評価結果を記憶する。
【００１９】
そして，メインマイクロプロセッサ１１は，間欠的に動作状態にされ，サブマイクロプロセッサ１４が常時または長時間にわたり生成した歩行状態の評価結果に基づいて，ユーザに分かりやすい値に変換したり統計情報を作成したりして，ユーザに出力する。
【００２０】
以上のとおり，サブマイクロプロセッサ１４が実行する加速度センサ出力処理プログラム14Aは，簡単な演算処理によりセンサ座標系のセンサ出力を，携帯機器を携帯している所有者の座標系の加速度に変換する。この簡単な演算処理には，内積や外積の演算処理が含まれる。
【００２１】
図２は，人間の歩行における体幹と両脚の動きを模式的に表す図である。体幹２０は，人間の股関節から頭部までの部分に対応し，脚20L,20Rは左脚と右脚とに対応する。人間は，歩行中，左右の脚20L,20Rを交互に地面に着いて，体幹20を上下，左右，前後に揺らす。図２に示されるとおり，体幹20の上下動の周期は，左右の脚20L,20Rが地面に着いている期間と一致し，一方，体幹20の左右の揺れの周期は，左脚20Lが地面に着いている間は左側に揺れ，右脚20Rが地面に着いている間は右側に揺れるので，上下動の周期の２倍の周期（1/2周波数）である。
【００２２】
また，人間は，歩行中，左右の脚20L,20Rを地面に着地する瞬間が最も下方向の加速度が大きく，着地後体幹20を上昇させる時に上方向の加速度が発生し，最上点でその加速度が最小になり下方向の加速度に切り替る。また，左右方向の加速度は，左脚20Lを着地すると左方向の加速度が発生し，右脚20Rを着地すると右方向の加速度が発生する。
【００２３】
本実施の形態では，このような人間の歩行の特徴点を利用して，四則演算によりセンサ座標系（X,Y,Z）のセンサ出力を歩行者の座標系（上下（z軸），左右（x軸），前後（y軸））に変換する。
【００２４】
図３は，センサ座標系と歩行者の座標系について説明する図である。歩行者HBは，加速度センサ１３を有する携帯機器１０を携帯している。携帯機器１０は様々な方向で携帯されるので加速度センサ１３の座標系も様々な方向になる。そして，加速度センサ１３は，センサ座標系（X,Y,Z）で検出した加速度ベクトルを出力する。そこで，サブマイクロプロセッサ１４の加速度センサ出力処理プログラム１５は，このセンサ座標系の加速度ベクトルから，歩行者HBの座標系(x,y,z)の上下方向，左右方向，前後方向の加速度の大きさを演算する。しかも，その演算処理は，四則演算程度の簡単な演算処理だけを有する。より具体的には，演算処理は内積と外積の演算を有し，内積と外積演算は四則演算で行うことができる。
【００２５】
図４は，姿勢が不明な加速度センサのセンサ出力から歩行者の振動の上下方向の加速度の大きさを求める演算処理を示すシーケンス線図である。図４中の（１）は，加速度センサのセンサ出力Aと，重力加速度Gと，歩行者による振動の加速度Sとを示す。加速度センサは，センサ出力Aとして，センサ座標系X,Y,Z内における座標値（X1,Y1,Z1）Tを出力する。このセンサ出力Aの座標値には，センサ出力Aの方向と大きさ（スカラー値）が含まれるベクトルをあらわす。
【００２６】
このセンサ値A＝（X1,Y1,Z1）Tは，重力加速度ベクトルGと歩行に伴う振動の加速度ベクトルSとの合成である。歩行に伴う振動Sは，図２で説明したとおり，ある周期の繰り返し運動である。したがって，センサ出力Aを，適切なカットオフ周波数のローパスフィルタとハイパスフィルタとを通すと，振動加速度Sと重力加速度Gに分離することができる。
【００２７】
図４（２）に示されるとおり，歩行の振動に伴う上下方向の加速度は，振動Sの中の重力Gと並行な成分Vである。このVの大きさ|V|は，SとGの成す角をθとすると，
|V|  =  |S|  cos  θ    （式１）
と表現できる。
【００２８】
ここでSとGの内積（dot  product）を考える。内積はベクトルのX,Y,Z成分同士を乗算した後に加算すれば得られるため，非力なサブマイクロプロセッサ１４でも簡単に計算することができる。すなわち，内積は，S=(ax,  ay,  az),
G=(bx,  by,  bz)とすると，以下の演算式で求められる。
S・G  =  axbx+ayby+axby
SとGの内積は定義より，
S・G  =  |S||G|  cos  θ    （式２）
である。この式２を先の式１に当てはめると
|V|  =  |S|  cos  θ  =  |S||G|  cos  θ/|G|  =  S・G  /  |G|    （式３）
となる。
【００２９】
ここでGは重力加速度であるため，その大きさ|G|は地球上ではほぼ一定である。すなわち図４（３）のように，センサ値Aに対しローパスフィルタLPFとハイパスフィルタHPFを通し，それぞれの出力の内積を演算することで，歩行運動に伴う上下方向の加速度Vの大きさ|V|に比例した数値を得ることができる。つまり，加速度Vは正と負の符号を有するが，式（３）の|V|により，少なくとも上方向の加速度の大きさと下方向の加速度の大きさを得ることができる。
【００３０】
図５は，姿勢が不明な加速度センサのセンサ出力から歩行者の振動の水平方向の加速度を求める演算処理を示すシーケンス線図である。図４と同様に，図５（１）に示されるように，加速度センサのセンサ出力Aは，歩行状態に伴う振動の加速度Sと重力加速度Gの合成と考える。
【００３１】
ここで振動成分SがGと平行な成分VとGと直交する成分Hとの和と考えると，Hは歩行状態に伴う振動の水平成分と考えることができる。ここでSとGの外積を考える。外積もまた各ベクトルの要素の掛け算と引き算によって得られるため，非力なマイコンでも簡単に計算することができる。すなわち，外積は，S=(ax,  ay,  az),  G=(bx,  by,  bz)とすると，以下の演算式で求められる。
S×G  =  （aybz-azby，azbx-axbz，axby-aybx）
SとGの外積は定義より，S，G共に垂直の方向で，S，Gによって構成される平行四辺形の面積|W|と等しい大きさのベクトルWである。すなわち  
|W|  =  |S  ×  G|    （式４）
である。ここで，図５（２）のように，平行四辺形の面積|W|は，|W|  =  |G||H|  とも記述できる。この式  |W|  =  |G||H|  を，式４に当てはめると，
|H|  =  |W|/|G|  =  |S  ×  G|/|G|
と表現できる。
【００３２】
図４と同じく|G|は地球上ではほぼ一定であることを考慮すると，図５（３）に示すとおり，センサ出力Aを，ローパスフィルタLPFとハイパスフィルタHPFを介して重力方向加速度Gと振動の加速度Sを抽出し，それらの外積G×Sを演算し,その外積の絶対値を求め|G|で除算すれば，歩行状態に伴う振動Sの水平成分Hの大きさ|H|に比例した数値を得ることができる。
【００３３】
なお，この方法には留意すべき点が二つある。一つは絶対値を得る方法である。絶対値を得るためには，外積S×Gのベクトルの各要素を二乗して加算し，その加算値の平方根を求めなければならないが，そのためには計算コストがかかる。そこで，図５では，水平成分の大きさの大小比較しか行わない場合は，平方根を求めず外積ベクトルの各要素を二乗した結果そのものを使うことができる。つまり，サブマイクロプロセッサ14でも，水平方向の加速度の大きさ|H|に対応した大きさ（|H｜2）を演算で求めることができる。したがって，図５内の絶対値を求める演算は外積ベクトルS×Gの各要素の二乗を加算して|G|で除算する演算であればよい。
【００３４】
もう一つは，絶対値を用いることから，得られる数値は必ず正になることである。すなわち，得られる結果は|H|であり，h=|S|sinθのような符号付きの値ではない。ただし，水平成分の大きさの大小比較しか行わない場合は，水平方向を判別する符号付きの値である必要はない。
【００３５】
［本実施の形態の概略］
上記の図４の方法によれば，上下の振動成分を分離することができる。また，図５の方法によれば，水平方向の振動成分を分離することができる。しかし，振動成分Sを，左方向と右方向，前方向と後方向の成分に分離することはできない。
【００３６】
図６は，歩行に伴う振動成分Sと，Sの左右方向Hの成分hと，Sの前後方向Fの成分fとの関係を示す図である。図６中には，歩行者の重力方向の上下軸zと，前後軸xと，左右軸yとが示されている。歩行に伴う振動成分Sは，重力方向成分Vと水平方向成分Hとの合成である。そして，水平方向成分Hと前方向F(前後軸x)との角度をφとすれば，前方向の加速度の大きさfは，f＝|H|cosφ,左方向の加速度の大きさhは，h＝|H|sinφである。これらにはそれぞれ符号がつくので，f＝|H|cosφは前後の方向の加速度の大きさ，h＝|H|sinφは左右の方向の加速度の大きさを意味する。
【００３７】
そこで，本実施の形態では，歩行動作の特徴点を考慮することで，歩行者の歩行に伴う振動Sを，前方向Fと水平成分の振動Hの成す角φを求め，前後方向の大きさ|H|cosφと，左右方向の大きさ|H|sinφを得る。ただし，先ずは，左右の区別はつかないが，左右方向の一方と他方の加速度の大きさを求める第１の実施の形態を説明し，その後，左右方向の一方と他方の加速度の大きさに加えて前後方向の一方と他方の加速度の大きさを求める第２の実施の形態と，左右方向を区別する加速度の大きさと前後方向を区別する加速度の大きさを求める第３の実施の形態を説明する。
【００３８】
［第１の実施の形態の第１の例］
図７は，第１の実施の形態におけるサブマイクロプロセッサ１４内の加速度センサ出力処理プログラム１５の処理機能を示す図である。加速度センサ出力処理プログラム１５は，加速度センサ１３が出力するセンサ座標系のセンサ出力Aから，上下方向の加速度の大きさを算出し（15A），左右方向の一方と他方の加速度の大きさを算出する（15B）。ただし，この例では，右方向と左方向を区別する加速度の大きさは算出しない。
【００３９】
前提として，図２に示した人間の歩行における体幹20の動きを考える。ここで，歩行は定常状態では等速で歩行しているとする。歩行者は支持脚20L,20Rの膝を曲げないために，上下方向の動きが発生する。支持脚20L,20Rの長さは接地期間中変化しないため，体幹20は足首を中心とした円弧の軌跡を描く。また，左右方向に関しては，支持脚20L,20Rの足裏内に重心(正確には，ZMP（Zero  moment  point))を置く必要上，体幹20は左右に振動する。つまり，上下方向が支持脚毎に一周期であるのに対し，左右方向は支持脚毎に半周期，つまり左右の支持脚で一周期となる。
【００４０】
一方前後方向に関しては，多数の実測データを観察したところによると，歩き出しや止まる時以外の定常状態では，一定速度で前進し，前後方向の加速度はほとんど発生しない。これは，上体が等速運動をしていることからも明らかである。前後方向には加速度が発生しないとすると，図6の水平方向成分Hの角度φは，90°もしくは-90°しか示さないと考えることができる。
【００４１】
そこで，第１の実施の形態では，加速度センサの出力情報Aから，角度φが+90°か-90°かどちらかであるかを取り出す。角度φが90°か-90°かが分かれば，図５に示した演算により求めた|H|に，角度φが90°か-90°に応じた+1，-1の係数を乗算すれば，左右方向の一方及び他方の加速度ｈを求めることができる。
【００４２】
図８は，第１の実施の形態の第１の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。図８の演算処理では，図５と同様にして求めた外積S×Gの絶対値（または絶対値の二乗）を|G|で除算し，角度φが90°か-90°かに応じた係数+1，-1を乗算する。すなわち，図８の演算処理は，加速度センサ出力Aから重力成分Gを抽出するLPFと，振動成分Sを抽出するHPFと，それらの外積S×Gを演算する外積演算処理部３０と，外積S×Gの絶対値（または絶対値の二乗）を|G|で除算する絶対値演算処理部３２と，その出力|H|（または|H|2）に90°か-90°かに応じた係数+1，-1を乗算して，左右の一方方向では正，他方方向では負になる左右の一方及び他方の大きさｈ（符号付き）を出力する乗算器MXとを有する。
【００４３】
なお，前述のとおり，絶対値を求める演算では平方根を用いても用いなくてもよいので，以後，加速度の大きさを|H|と表記するが，平方根を用いない|H|2であってもかまわないこととする。
【００４４】
図８の演算処理は，次の工程を有する。すなわち，演算処理は，センサ値Aからローパスフィルタ21により抽出した重力成分ベクトルGと，ハイパスフィルタ22により抽出した振動成分ベクトルSとの外積S×Gを生成する工程と，その外積S×Gの大きさに対応する第１の値|H|を求める工程と，歩行の奇数番目の歩周期と偶数番目の歩周期とを判定する工程（φ＝９０°か−９０°かを判定する工程）と，その判定結果に応じて，第１の値|H|の符号を反転して，左右方向の一方と他方の加速度の大きさｈを生成する工程とを有する。
【００４５】
図９は，図８の演算処理における絶対値演算処理部３２の出力|H|と乗算器MXの出力ｈの一例を示す図である。図９（１）に示される絶対値演算処理部３２の出力|H|は，正と負の符号がなく，単に大きさのみである。この出力|H|に係数＋１，−１を適切なタイミングA,Bで乗算して符号を反転することで，図９（２）に示されるように左右の一方と他方を符号で示す出力ｈが得られる。この場合，左右を区別する必要はないので，係数＋１，−１を乗算するタイミングがB,Aのように逆になると，図９（３）のように出力ｈは，図９（２）と逆相の大きさになる。
【００４６】
このように，第１の実施の形態では，歩行者の左右脚の一方が支持脚時の加速度の大きさと，左右脚の他方が支持脚時の加速度の大きさとを区別して検出する。したがって，歩行評価において，現在の支持脚が右脚か左足かを区別する必要性がない場合に，適用できる。
【００４７】
図１０は，図９の係数＋１，−１を生成する方法を説明する図である。第１の実施の形態では，係数＋１，−１を歩行の歩数を利用する。すなわち，歩行者は右脚と左脚を交互に接地して歩行し，それに同期して上下方向に揺れて上下方向の加速度が発生する。そこで，図４で説明した上下方向の加速度の大きさ|ｖ|の符号をカウントして左右の脚の切り替えタイミングを検出する。つまり，歩数が偶数歩目なら右脚で係数を＋１としｈ＝＋|H|を出力し，奇数歩目なら左脚で係数を−１としｈ＝−|H|を出力する。
【００４８】
図１０（１）に示されるとおり，上下運動による加速度ｖの大きさ|v|は，歩数毎に正と負の大きさを繰り返す。この上下方向の加速度の大きさ|ｖ|の符号の変化から歩数の切り替わりを検出して，図１０（２）に示す左右方向の一方及び他方の加速度の大きさ|H|に，奇数歩目のn+1歩目，n+3歩目（ｎは偶数）で，係数−１を乗算して，図１０（３）に示すｈ＝＋|H|または−|H|を生成することができる。
【００４９】
図１１は，第１の実施の形態の第１の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。図８の演算処理に，係数＋１，−１を生成する演算処理３３が追加されている。したがって，図１１において，ＬＰＦ２１，ＨＰＦ２２，外積演算処理部３０，絶対値演算処理部３２，乗算器ＭＸ１は，図８と同じである。
【００５０】
係数＋１，−１を生成する演算処理３３は，加速度センサ出力Ａから抽出した重力成分Ｇと，振動成分Ｓの内積を演算する内積演算処理部３４と，その出力|v|の符号を抽出する符号抽出部３５と，センサ出力のサンプリングタイミングを遅延する遅延処理部３６と，減算器３７と，係数＋１，−１の出力SHoutを生成するサンプルホールド処理部S/Hと，係数SHoutに−１を乗算してサンプルホールド処理部S/Hへの入力SHinを生成する乗算器MX3とを有する。
【００５１】
内積の出力|v|の符号は，図１０（１）に示されるとおり，正と負とに交互に変化する。そこで，遅延処理部３６と減算器３７とにより，負から正になるゼロクロス点のタイミングで２になるホールド入力Hinが生成される。正から負になるゼロクロス点のタイミングでは−２が減算器３７により出力される。そして，サンプルホールド処理部S/Hが，ホールド入力Hinが２になる度に，乗算器MX3による出力SHout×（−１）の入力SHinをホールドし，出力SHoutの値を維持する。これにより，図１０の上下運動|v|が負から正になるゼロクロスを通過する度に，乗算器MX1に入力される係数（SHout)が＋１と−１に交互に変化する。
【００５２】
そして，乗算器MX1が，外積S×Gの絶対値|H|に，その係数SHout（＋１，−１）を乗算することで，左右方向の一方と他方に対応した符号付きの加速度の大きさｈを生成する。
【００５３】
図１０の第１の例の演算処理は，前述した図８の演算処理において，判定する工程（演算処理部３３）では，重力成分ベクトルGと振動成分ベクトルSとの内積を生成し，その内積の奇数番目の周期と偶数番目の周期に基づいて，歩行の奇数番目の歩周期と偶数番目の歩周期を判定する。
【００５４】
上記の演算処理は，サブマイクロプロセッサ１４がセンサ出力処理プログラム１５を実行したときに実行される。
【００５５】
図１２は，図１０の上下運動の大きさ|v|の変化と，左右方向（水平方向）の運動の大きさ|H|との位相がずれた場合を説明する図である。歩行者の歩行形態によっては，体のしなりなどによって上下運動と左右運動とが必ずしも決まった位相差で動かない場合がある。そのため，図１２のようにそれらの位相がずれると，図１１のシーケンス線図では，左右の一方及び他方の加速度の大きさの変化が，図１２の（３）のようになることがある。
【００５６】
［第１の実施の形態の第２の例］
第１の実施の形態の第２の例では，図１１の係数＋１，−１を生成する演算処理３３を，振動加速度Sと重力加速度Gとの外積S×Gと任意のベクトルKとの内積の符号にしたがって生成する演算処理にしている。
【００５７】
図１３は，外積S×Gのベクトルと任意のベクトルKとの関係を説明する図である。まず，矢上面，冠状面，横断面について説明する。図１３の（１）に示されるとおり，矢上面SF1は前後軸ｘと上下軸ｚとを含む面，冠状面SF2は左右軸ｙと上下軸ｚとを含む面，そして，横断面SF3は前後軸ｘと左右軸ｙを含む面である。
【００５８】
そして，前述のとおり，振動加速度Sと重力加速度Gの外積S×Gの絶対値は水平方向の加速度の大きさに対応する。そして，前述のとおり，歩行に伴う前後方向の加速度がないことを前提にすると，振動加速度Sは常に冠状面SF2内にある。
【００５９】
したがって，図１３の（２）に示されるとおり，外積S×Gのベクトルは，矢上面SF2と横断面SF3の交線である前後軸ｘの正の方向である前方か，負の方向である後方かをさすベクトルである。図１３の例では，振動加速度Sが左方向にあるため，外積S×Gは後方（前後軸ｘの負の方向）をさしている。図１３には示されていないが，振動加速度Sが右方向にあるなら，外積S×Gは前方をさすことになる。この原理を利用すれば，外積S×Gのベクトルが前向きなら振動加速度Sは右方向，後ろ向きなら左方向であると判定できる。
【００６０】
第１の実施の形態の第２の例では，この判定結果を利用して，前述の＋１，−１の係数を生成する。なお，上記の振動加速度Sの方向と外積との関係は，外積をG×Sにすると，逆の関係になる。
【００６１】
次に，外積S×Gのベクトルの向きの切り替わりを判定する方法について説明する。図１３の（３）に示すとおり，外積S×Gは，冠状面SF2に対して垂直な前方と後方の方向になる。そこで，任意のベクトルKと外積S×Gの内積を求めると，外積S×Gの方向に応じて内積は正と負になる。つまり，両ベクトルの角度が90°未満なら内積は正になり，90°を超えると内積は負になる。したがって，任意のベクトルKとして，外積S×Gと直角の関係にないベクトルを選択すれば，ベクトルKと外積S×Gとの内積の符号を，前述の＋１，−１の係数として使用することができる。
【００６２】
図１４は，第１の実施の形態の第２の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。図１４において，ＬＰＦ２１，ＨＰＦ２２，外積演算処理部３０，絶対値演算処理部３２，乗算器ＭＸ１は，図１１と同じである。そして，係数＋１，−１を生成する演算処理部３３は，外積S×Gと任意のベクトルKとの内積を演算する内積演算処理部３７と，符号判定処理部３８とを有し，符号判定処理部３８の出力＋１，−１が乗算器MX1に入力されている。
【００６３】
この第２の例によれば，上下運動の加速度の大きさ|v|を利用しないので，上下運動と左右運動との位相がずれていても，左右方向の一方及び他方の加速度の大きさを求めることができる。
【００６４】
図１４の第２の例の演算処理は，前述した図８の演算処理において，判定する工程（演算処理部３３）では，外積（S×G)と任意のベクトル（K)との内積の符号に基づいて，歩行の奇数番目の歩周期と偶数番目の歩周期を判定する。
【００６５】
上記の演算処理は，サブマイクロプロセッサ１４がセンサ出力処理プログラム１５を実行したときに実行される。
【００６６】
［第１の実施の形態の第３の例］
図１４の例では，任意のベクトルKが外積S×Gと直角の関係にないベクトルであることが必要である。しかし，偶然にベクトルKが冠状面内に存在する場合は，ベクトルKと外積S×Gの内積が０になり，符号判定できない。そこで，図１４の改良例として，同一平面上にない３つの異なるベクトルK1,K2,K3を用いて，係数＋１，−１を生成する例を説明する。
【００６７】
図１５は，第１の実施の形態の第３の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。この例では，図１４と異なり，歩行の奇数番目の歩周期と偶数番目の歩周期に対応する係数＋１，−１を生成する係数演算処理部３３が，同一平面上にない３つの異なるベクトルK1,K2,K3と，外積S×Gとの内積を演算する内積演算処理部３７−１，３７−２，３７−３と，さらに，それらの内積のうち最も大きなものを選択する最大値スイッチ３９を有する。それ以外の構成は，図１４と同じである。
【００６８】
この演算処理によれば，３つの異なるベクトルK1,K2,K3の２つが偶然に冠状面内に存在したとしても，残りのベクトルは必ず冠状面とある角度を有するベクトルになる。したがって，図１３の（３）で示すようなベクトルKを利用することができる。
【００６９】
図１５の第３の例の演算処理は，前述した図８の演算処理において，判定する工程（演算処理部３３）では，外積（S×G)と同一平面内にない少なくとも３つのベクトル（K1-K3)との内積のうち最大絶対値の内積の符号に基づいて，歩行の奇数番目の歩周期と偶数番目の歩周期を判定する。
【００７０】
上記の演算処理は，サブマイクロプロセッサ１４がセンサ出力処理プログラム１５を実行したときに実行される。
【００７１】
［第１の実施の形態の第４の例］
上記の第１の実施の形態の第２，第３の例では，振動加速度Sに前後方向の成分が全くなく，冠状面内にあるという前提に基づいている。しかし，実際の歩行データによれば，ノイズや遊脚の接地に衝撃などわずかながら前後にも加速度が発生する。したがって，外積S×Gは完全に１８０°変化していない場合がある。そのような場合，上記の３つの異なるベクトルK1,K2,K3を利用したとしても，３つのベクトルによっては各ベクトルで内積の結果が異なるどのベクトルによる判定を採用して良いか分からない場合がある。
【００７２】
そこで，第１の実施の形態の第４の例では，歩行の奇数番目の歩周期と偶数番目の歩周期に対応する係数＋１，−１を生成する演算処理部３３が，外積S×Gの方向を前後一方の方向（前方または後方）に切り替えた前方向ベクトルKf（または後方向ベクトル）を生成し，その前方向ベクトルKfと外積S×Gとの内積の符号に基づいて係数＋１，−１を求める。そして，その係数を外積S×Gの絶対値である水平方向の加速度の大きさ|H|に乗算して，左右の一方または他方を示す符号付きの大きさｈを生成する。
【００７３】
図１６は，第１の実施の形態の第４の例を説明する図である。図１３の（３）と異なり，振動加速度Sは，冠状面SF2とはわずかに角度がずれている。これは，振動加速度Sにはわずかな前後方向の成分が含まれているからである。
【００７４】
図１３で説明したとおり，振動加速度Sと重力加速度Gとの外積S×Gは，振動加速度Sが右方向か左方向かに応じて，前方方向または後方方向を指す。つまり，振動加速度Sが左方向なら外積S×Gは後方を向き，振動加速度Sが右方向なら外積S×Gは前方を向く。この傾向は，振動加速度Sがわずかな前後方向の成分を有している場合も変わらない。そこで，振動成分Sが例えば左方向に動いた場合に，外積S×Gにマイナスを乗算すれば，常時前方を向くベクトルKfを生成することができる。そして，この常に前方を向くベクトルKfと外積S×Gとの内積を求めれば，外積S×Gの向きが前方なら内積は正，後方なら内積は負となる。よって，内積結果の符号を利用して係数＋１，−１を生成し，外積S×Gの絶対値である水平方向の加速度の大きさ|H|に乗算することで，左右の一方か他方かを示す符号付きの加速度の大きさを求めることができる。
【００７５】
図１７は，第１の実施の形態の第４の例における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度を求める演算処理を示すシーケンス線図である。この例では，図１５と異なり，歩行の奇数番目の歩周期と偶数番目の歩周期に対応する係数＋１，−１を生成する係数演算処理部３３が，乗算器MX4と，LPF４０と，内積演算処理部４１と，正負判定部４２とを有する。それ以外の構成は，図１５と同じである。
【００７６】
係数演算処理部３３は，外積S×Gに＋１，−１の係数を乗算する乗算処理部MX4と，その出力の平均値を求めるLPF４０とを有する。外積S×Gは，前後方向のベクトルであるから，乗算処理部MX4で係数＋１，−１を乗算することで，前後の一方の方向，例えば前方方向のベクトルKfを求めることができる。そして，内積演算処理部４１が，その前方方向のベクトルKfと外積S×Gとの内積を求めると，その内積の符号は，外積S×Gが前方側方向（振動加速度Sが右側方向）なら＋１になり，外積S×Gが後方側方向（振動加速度Sが左側方向）なら−１になる。よって，この符号を符号判定部４２で検出し，乗算器MX1が水平方向の加速度の大きさ|H|に係数＋１または−１を乗算して，左右の一方及び他方の符号付きの加速度の大きさｈを生成する。
【００７７】
係数演算処理部３３には無限ループが存在するが，ベクトルKfとして任意の初期値を設定することで，正常に動作することが確かめられている。つまり，ベクトルKfの初期値に応じて，左右の一方及び他方の符号付きの加速度の大きさｈは，右方向で正になったり，負になったりする。つまり，図１７のシーケンス線図により演算されるｈは，右方向と左方向の区別はできないが，左右の一方と他方の区別は可能である。したがって，得られた水平方向の左右一方と他方の大きさｈが，サブマイクロプロセッサにより生成されれば，メインマイクロプロセッサが歩行評価プログラムを実行して，歩行状態を評価することができる。
【００７８】
図１７の第４の例の演算処理は，前述した図８の演算処理において，判定する工程（演算処理部３３）では，外積（S×G)と任意のベクトル（Kf)との内積の符号に基づいて，歩行の奇数番目の歩周期と偶数番目の歩周期を判定し，任意のベクトル（Kf)を前記外積（S×G)に前記内積の符号を乗じて平均化して生成する。
【００７９】
上記の演算処理は，サブマイクロプロセッサ１４がセンサ出力処理プログラム１５を実行したときに実行される。
【００８０】
［歩行評価プログラム］
次に，第２，第３の実施の形態の説明を行うまえに，左右方向の一方及び他方の大きさｈを利用した歩行状態の評価方法について説明する。
【００８１】
図１８は，歩行評価プログラムの第１の例を説明する図である。上記の通り，サブマイクロプロセッサ１４は，左右の一方および他方の加速度の大きさｈを生成する。この加速度の大きさｈは，図１８に示されるとおり，時間と共に正と負の大きさを持つデータである。
【００８２】
そこで，この左右方向の一方および他方の加速度の大きさｈの正側最大加速度Paccと，負側最大加速度Naccとの比に基づいて，歩行評価を行う。例えば，前記比Pacc/Naccが１に近い程，左右対称に歩行していると評価され，比Pacc/Naccが１より大きいまたは小さい程，左右のいずれかの方向に大きく偏って歩行していると評価される。
【００８３】
図１９は，歩行評価プログラムによる最大加速度を求めるフローチャート図である。まず，メインマイクロプロセッサ１１が，サブマイクロプロセッサ１４から出力される左右方向の一方及び他方の加速度の大きさｈを入力し（S1)，歩行評価プログラム12Bを実行して，最大加速度を求める。図１９の工程S1〜S11は，サブマイクロプロセッサから左右方向の一方及び他方の加速度ｈを受信するたびに，繰り返される。
【００８４】
メインプロセッサ１１は，受信した加速度ｈを現在の加速度accに置き換える（S1)。そして，前サイクルで受信した加速度acc1との積acc*acc1が負か否かを判断する（S2)。工程S2で正の場合，すなわち，加速度accがゼロクロス点を通過していない場合は，時間ｔをｔ＝ｔ＋１とし（S3)，現在の加速度accが記憶している正側最大加速度Paccより大きいかの判定をし（S4)，また，現在の加速度accと記憶している負側最大加速度-Naccより小さいかの判定をする（S5)。Pacc，Naccはいずれも最大加速度の絶対値である。両工程S4,S5での判定がいずれもNOの場合には，現サイクルの加速度accを前サイクルの加速度acc1に置き換える（S6)。
【００８５】
一方，工程S2で積acc*acc1が負の場合，つまり加速度accがゼロクロス点を通過した場合は，前サイクルで得られた最大加速度PaccまたはNaccにより歩行評価を行う（S7)。そして，時間ｔをリセットし（S8)，現在の加速度accが正であれば（S9のyes)，その加速度accを正側最大加速度Paccに置き換え（S10)，現在の加速度accが負であれば（S9のno)，その加速度accを負側最大加速度Naccに置き換える（S11)。なお，ｈが符号を有するので，負側最大加速度の絶対値Naccは，現在の負の加速度accに-1を乗じた-accに置き換えられる。
【００８６】
前述の工程S4,S5のいずれかで判定結果がyesの場合も，上記の工程S10またはS11が実行される。
【００８７】
このようにして所定期間の間，加速度ｈの正側最大値Paccと，負側最大値Naccとが検出される。
【００８８】
なお，歩行評価S7は，以下に説明するが，加速度ｈの隣接するゼロクロス点の時間ｔが計測されているので，歩行評価S7ではその時間ｔが通常の歩行動作の左右脚を入れ替える時間と大きく異なっている場合は，例えば，歩行者が船などの乗り物に乗っているものと見なして，その間の最大加速度Pacc,Naccは採用しない。
【００８９】
図２０は，加速度比を利用した歩行評価プログラムの歩行評価のフローチャート図である。図２０のフローチャート図では，図１９で求めた最大加速度Pacc,NaccをPos,Negと置き換えている。まず，歩行評価プログラムを実行するメインプロセッサ１１は，評価の基準値として，正値Posと負値Negと時間ｔを入力する（S20)。正値Pos,負値Negは，例えば，図１９で求めた最大加速度Pacc,Naccである。
【００９０】
次に，正値Pos,負値Negのいずれかが負，または時間ｔが２つの閾値Vth1とVth2の間にないか（ｔ＜Vth1,  ｔ＞Vth2，但しVth1<Vth2)のいずれかの場合は（S21のyes），適切な歩行状態の値ではないと見なして，メインプロセッサ１１は，非歩行状態と判定する（S22)。
【００９１】
また，工程S21において，正値Pos,負値Negがいずれも正であり，時間ｔがVth1＜ｔ＜Vth2の場合は（S21のno），正値Posと負値Negとを比較し（S23)，比としてPos/NegまたはNeg/Posを求める（S24,S25)。このようにするのは，比が１以上になるようにして，歩行評価を容易にするためである。
【００９２】
そして，メインプロセッサ１１は，工程S26で，後述する方法で，左右方向の最大加速度の比に基づいて歩行状態を評価する。
【００９３】
図２１は，図２０で求めた比の時間推移の例を示す図である。このように，比は，最小値１以上の値になり，歩行中の時間の経過と共に変化する。そこで，メインプロセッサ１１は，一定期間（例えば１日）の歩行の比の時間推移に基づいて，比の平均値，比の分散傾向，閾値を超える頻度などを抽出し，歩行評価とする。例えば，比の平均値が１に近ければ，左右バランス良く歩行していると逆に１より大きければ左右のバランスが悪いと評価できる。また，比の分散が少なければ安定して歩行していると逆に比の分散が多ければ不安定と評価できる。そして，閾値を超える頻度が高いと左右のバランスが崩れる頻度が高いと評価できる。
【００９４】
図２２は，歩行評価プログラムの第２の例を説明する図である。第２の例では，加速度ｈの面積の比を評価する。加速度ｈは，|H|の絶対値に左右方向の符号を加えた値である。ここで，絶対値は，ベクトルの要素の二乗の加算値のルートを演算して求められる。その場合，ルートの演算を行わない場合は，加速度ｈは加速度の二乗の値になる。図２２には，この加速度の二乗の変化が示されている。そして，加速度の二乗の面積は，エネルギー値に対応する。
【００９５】
そこで，第２の例では，メインプロセッサ１１が，加速度の二乗を累積することで，正の加速度の二乗の面積Pengと，負の加速度の二乗の面積Nengを抽出して，それらの比を図２０の方法で求めて，歩行評価に利用する。
【００９６】
図２３は，第２の例における加速度の二乗の面積Peng，Nengを抽出するフローチャート図である。メインマイクロプロセッサ１１は，歩行評価プログラム内の図２３のフローチャートのプログラムを実行して，加速度の二乗の面積Peng，Nengを抽出する。
【００９７】
まず，メインマイクロプロセッサ１１は，加速度の二乗の値ｈを入力して，現在の加速度の二乗accとする（S30)。そして，現在の加速度の二乗accと前回のサイクルでの値acc1との乗算値の符号が負か否かを判定する（S31)。この判定がyesの場合は，ゼロクロス点を通過したことになるので，現在の加速度の二乗accが負であれば（S34のno），それまでに累積した加速度の二乗の累積値engを正の面積Pengに置き換え（S35），現在の加速度の二乗accが正であれば（S34のyes），それまでに累積した加速度の二乗の累積値engを負の面積Nengに置き換える（S36)。そして，それらの値により歩行評価を実行する（S37)。そして，初期値として，累積値engに現在の加速度の二乗accを代入する（S38)。
【００９８】
一方，工程S31での判定がnoの場合は，ゼロクロス点を通過していないので，単純に累積値engに現在の加速度の二乗accを加算する（S32)。そして，現在の加速度の二乗accを前サイクルの加速度の二乗acc1に代入する（S33)。
【００９９】
上記のフローチャート図の処理を実行することで，メインマイクロプロセッサ１１は，図２２に示した加速度の二乗の面積を，正側Pengと負側Nengそれぞれについて抽出することができる。
【０１００】
図２４は，歩行評価プログラムの第３の例を説明する図である。第３の例では，サブマイクロプロセッサ１４から入力する加速度ｈについて，メインマイクロプロセッサ１１が，２回積分することで，歩行者の左右方向の一方及び他方の位置を抽出する。この左右方向の位置Ppos，Nposの比を，図２１のようにして評価することで，歩行者の歩行状態を評価することができる。すなわち，比が１に近ければ左右バランス良く歩行していると評価でき，比が１より大きければ左右のバランスが悪いと評価できる。左右の位置の比の平均値や，分散値，そして，閾値を超える頻度なども，同様に歩行評価に利用できる。
【０１０１】
図２５は，歩行評価プログラムの第４の例を説明する図である。上記の例では，左右方向の一方および他方の加速度ｈに基づいて歩行を評価している。図２５の第４の例では，上下の揺れと横方向の揺れの２つの情報に基づいて歩行を評価する。
【０１０２】
図２５において，ｘ軸とｙ軸には，たとえば，上下の揺れの大きさ|v|と，左右方向の加速度ｈの最大値，加速度の二乗の面積，位置の最大値などのそれぞれの比の組み合わせが割り当てられる。たとえば，加速度の最大値の比と加速度の二乗の面積の比との組み合わせが，ｘ軸とｙ軸に割り当てられる。そして，各歩毎の組み合わせの座標が，座標内にプロットされる。そして，プロット点を評価することで，歩行を評価することができる。
【０１０３】
［第２の本実施の形態］
第１の実施の形態では，歩行者が体幹に装着している携帯端末は，歩行の定常状態において，ほとんど前後方向の揺れがないことを前提にしている。この前提に基づいて，加速度センサ出力処理プログラムを実行するサブマイクロプロセッサ１４は，振動加速度Sと重力加速度Gの外積S×Gの大きさ|H|を，左右方向の一方及び他方の加速度の大きさｈとして出力する。
【０１０４】
しかしながら，例外的に，歩行者がぶかぶかの服の胸ポケット等やズボンの前ポケット等に携帯端末を入れている場合は，携帯端末が振り子のように前後に揺れて，前後方向の加速度が観測されてしまう場合がある。
【０１０５】
そこで，第２の実施の形態では，加速度センサ出力処理プログラムを実行するサブマイクロプロセッサ１４が，左右方向の一方と他方の加速度の大きさを算出する。さらに，サブマイクロプロセッサ１４が，左右方向の一方と他方の加速度お大きさに加えて，前後方向の一方と他方の加速度の大きさを算出してもよい。ただし，左方向と右方向の区別と前方向と後方向の区別はできない。
【０１０６】
図２６は，第２の実施の形態における加速度センサ出力処理プログラムの機能を示す図である。この加速度センサ出力処理プログラム１５は，上下方向の加速度の大きさｖを算出する機能15Aと，左右方向の一方と他方の加速度の大きさｈを算出する機能15Bと，それに加えて，前後方向の一方と他方の加速度の大きさｆを算出する機能15Cとを有する。
【０１０７】
歩行状態における加速度センサの出力は，左右方向の運動に対する加速度と，上下方向の運動に対する加速度と，わずかではあるが前後方向の運動に対する加速度の合成である。そして，図２に示した歩行状態によれば，左右運動の周期は上下運動の周期の約２倍である。このように，左右運動と上下運動の周波数が異なっているので，それぞれに対応する通過周波数帯域特性を有する異なるバンドパスフィルタを利用して，センサ出力Aから左右運動の加速度と上下運動の加速度とを分離することができる。上下運動は歩行周期と等しく，左右運動はその２倍の周期と見なせる。平均的な人間の歩行によれば，上下運動の周波数は2Hz，左右運動の周波数は1Hzと定めることができる。若しくは，歩行評価対象者の身長や歩行実績などによりこれらの周波数を最適な周波数に設定してもよい。
【０１０８】
図２７は，上記の原理でバンドパスフィルタにより分離された左右方向の加速度Hfと，上下方向の加速度Vfとの関係を示す図である。図２８は，第２の実施の形態における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度の大きさと，前後方向の一方及び他方の加速度の大きさとを求める演算処理を示すシーケンス線図である。
【０１０９】
このシーケンス線図には，センサ出力Aから重力方向加速度Gを抽出するローパスフィルタ２１と，前後方向加速度Vfを抽出する第１のバンドパスフィルタ（BPF1)２３と，左右方向の加速度Hfを抽出する第２のバンドパスフィルタ（BPF2)２４と，左右方向の一方の方向の単位ベクトルHeと，前後方向の一方の方向の単位ベクトルFeとを生成する単位ベクトル算出部60と，内積処理部56，59を有する。
【０１１０】
図２７において，左右方向の加速度Hfも上下方向の加速度Vfも共に，わずかであるが前後方向の加速度を含んでいる。
【０１１１】
ただし，図２８に示す２つバンドパスフィルタ（BPF1）２３,（BPF2）２４の働きにより，左右方向の加速度Hfには，前後方向の成分は含まれるが，上下方向の成分は含まれていない。よって，左右方向の加速度Hfはｘ軸とｙ軸の平面（横断面SF3）内にある。同様に，上下方向の加速度Vfには，前後方向の成分は含まれるが，左右方向の成分は含まれていない。つまり，上下方向の加速度Vfはｘ軸とｚ軸の平面内（矢状面SF1)内にある。
【０１１２】
そして，十分な大きさのローパスフィルタ（LPF)２１によって，加速度センサの出力から重力方向の加速度成分Gを抽出することができる。したがって，図２７に示されるように，重力方向成分Gと上下方向の加速度Vfとの外積G×Vfは，横断面SF3と冠状面SF1との交線であるｙ軸上のベクトルとなる。図２７では，上下方向の加速度Vfが前方向成分を有するので，外積G×Vfは，右方向を向いている。上下方向の加速度Vfが後方向成分を有する場合は，外積G×Vfは，左方向を向くことになる。
【０１１３】
そこで，図１７の例と同様に，図２８の単位ベクトル算出部60において，外積処理部50により外積G×Vfを求め，外積G×Vfに前後の変化のタイミングで＋１，−１の係数を乗算（乗算器51）して，図２７の左右の一方の方向のベクトルKhを生成する。このベクトルKhは，左右の一方の方向と平均化された一定値の大きさを有する左右方向基準ベクトルである。図２７ではベクトルKhは左を向いているが，乗算器51で外積G×Vfの方向が逆になった場合に対応するにすぎない。そして，そのベクトルKhと外積G×Vfとの内積（内積処理部54）の正負により，外積G×Vfが左方向か右方向の一方を向いているか他方を向いているかを判定し（符号判定部55），上記の係数を求める。図２８中のローパスフィルタ52は，平均値を取る機能を有する。
【０１１４】
そして，ベクトルKhは，左右の一方方向を向くが，その大きさは前後方向の動きVfの大きさに依存しているので，ベクトルKhの大きさを正規化して単位ベクトルHeを生成する。
【０１１５】
さらに，外積処理部57にて，重力方向加速度ベクトルGと単位ベクトルHeとの外積G×Heを求めると，その外積G×Heは，図２７に示すとおり，矢状面SF1と横断面SF3との交軸であるｘ軸上のベクトルになる。このベクトルG×Heの方向は前方か後方かの一方を向いている。つまり，ベクトルG×Heは，前後の一方の方向と平均化された一定値の大きさを有する前後方向基準ベクトルである。そして，この基準ベクトルである外積G×Heの大きさを正規化して（正規化処理部58），前方向の単位ベクトルFeを求める。
【０１１６】
上記の通り単位ベクトル算出部60が算出した左右方向の単位ベクトルHeと，左右方向の加速度ベクトルHfとの内積（内積処理部56）を生成することで，左右方向の一方と他方を区別可能な加速度の大きさｈを生成する。このｈは，図２７に示されるとおり左右方向の加速度Hfのｙ軸上の大きさに対応し，前後方向の成分を含まない純粋な左右方向の加速度の大きさである。
【０１１７】
同様に，前後方向の単位ベクトルFeと，上下方向の加速度ベクトルVfとの内積（内積処理部59）を生成することで，前後方向の一方と他方を区別可能な加速度の大きさｆを生成する。このｆも，前後方向の加速度Vfのｘ軸上の大きさに対応し，上下方向の成分を含まない純粋な前後方向の加速度の大きさである。
【０１１８】
図２７では，左右方向の一方と他方の大きさｈは，左方向を向いているが，右方向の可能性もある。また，前後方向の一方と他方の大きさｆは，前方向を向いているが，後方向の可能性もある。このように一方を向いている単位ベクトルHe，Feとの内積で求めた大きさｈ，ｆは，正と負の値となり左右方向または前後方向の一方と他方を区別できるが，左右のいずれの方向または前後のいずれの方向を向いているかは不明である。その理由は，単位ベクトル算出部60における外積G×Vfと，それを一定方向に補正したベクトルKhとのループにおいて，初期値のKhをどちらに設定するかに依存して，単位ベクトルHe，Feの方向が異なるからである。さらに，外積処理部50，57での外積演算の順番によっても，単位ベクトルHe，Feの方向が異なる。
【０１１９】
図２９は，第２の実施の形態における加速度センサ出力処理プログラム内の左右方向の一方及び他方の加速度と前後方向の一方及び他方の加速度とを求める演算処理を示すシーケンス線図である。図２９は，図２８の変形例である。図２９において，図２８と異なる構成は，正規化処理部53が設けられていないことである。それ以外は，図２８と同等である。それにより，単位ベクトルHeの代わりにｙ軸上のベクトルKhが利用され，単位ベクトルFeの代わりにｘ軸上のベクトルFが利用されている。
【０１２０】
正規化処理は，ベクトルのx,y,zの成分をそれぞれ二乗した値の平方根を求め，割り算で単位大きさにする演算処理が必要である。そこで，図２９の例では，正規化処理部を設けていない。図２９では，ベクトルKhはLPF52を通過して求められていて，ベクトルFもLPF58Aを通過して求められているので，それらのLPFの時定数を十分大きくすることで，その大きさは平均化され一定値になる。すなわち，ベクトルKh，Fは，単位ベクトルHe，Feの定数倍であるので，内積により求められる左右方向の加速度の大きさｈと前後方向の加速度の大きさｆは，加速度を定数倍したものとなる。
【０１２１】
ただし，前述の歩行評価では，左右方向の加速度の大きさｈと前後方向の加速度の大きさｆの絶対的な大きさを利用するのではなく，前後の比較である比を利用しているので，大きさが定数倍されていても支障はない。
【０１２２】
第２の実施の形態を示す図２８，図２９では，左右方向の加速度の大きさｈだけを生成するようにしてもよい。逆に，図２８，図２９では，前後方向の加速度の大きさｆだけを生成するようにしてもよい。さらに，両方の大きさｈ，ｆを生成するようにしてもよい。
【０１２３】
図２８，図２９の演算処理は，次の工程により行われる。
【０１２４】
すなわち加速度センサ出力処理は，センサ値Aからローパスフィルタ２１により抽出した重力成分ベクトルGと，第１のバンドパスフィルタ２３により抽出した前後振動成分ベクトルVfとを外積して第１の外積G×Vfを生成する工程と，
第１の外積G×Vfに交互に変化する所定の符号を乗じて平均化して左右いずれかの方向と一定の大きさを有する左右基準ベクトルKh,Heを生成する工程と，
第１の外積G×Vfと左右基準ベクトルKh,Heとの第１の内積の符号に基づいて所定の符号を生成する工程と，
センサ値Aから，第１のバンドパスフィルタ２３より通過周波数帯域が低い第２のバンドパスフィルタ２４により抽出した左右振動成分ベクトルHfと左右基準ベクトルHeとを内積して左右方向の一方と他方の加速度の第１の大きさｈを生成する工程とを有する。
【０１２５】
さらに，加速度センサ出力処理は，更に，重力成分ベクトルGと左右基準ベクトルKh,Heとを外積G×Heして前後いずれかの方向と一定の大きさを有する前後基準ベクトルFeを生成する工程と，前後振動成分ベクトルVfと前記前後基準ベクトルFeとを内積して前後方向の一方と他方の加速度の第２の大きさｆを生成する工程とを有する。
【０１２６】
上記の処理は，サブマイクロプロセッサ１４がセンサ出力処理プログラム１５を実行したときに実行される。
【０１２７】
［第３の本実施の形態］
上記の第２の実施の形態では，加速度センサ出力処理プログラムを実行するサブマイクロプロセッサ１４が，左右方向の一方と他方の加速度の大きさに加えて，前後方向の一方と他方の加速度の大きさも算出するが，左方向と右方向の区別と前方向と後方向の区別はできない。それに対して，第３の実施の形態では，左方向と右方向の区別と前方向と後方向の区別を可能にする。
【０１２８】
図３０は，第３の実施の形態における加速度センサ出力処理プログラムの機能を示す図である。この加速度センサ出力処理プログラム１５は，上下方向の加速度の大きさｖを算出する機能15Aと，左右方向の加速度の大きさｈ’を算出する機能15Bと，前後方向の加速度の大きさｆ’を算出する機能15Cとを有する。上記のｖは上下を区別することができ，ｈ’は左右を区別することができ，ｆ’は前後を区別することができる。
【０１２９】
図２８，２９で生成した左右方向の一方と他方の加速度の大きさｈと，前後方向の一方と他方の加速度の大きさｆは，演算処理の初期値や外積演算の順番などに依存して，どちらの方向かを区別することができない。それに対して，第３の実施の形態では，歩行者の上下の運動と前後の運動とが，上と前，または下と後の組み合わせになる現象を利用して，左右方向の一方と他方の加速度の大きさｈの符号と，前後方向の一方と他方の加速度の大きさｆの符号とを，左右方向と前後方向に対応した正しい符号に修正する。この修正により，左右方向を区別可能な加速度の大きさｈ’と，前後方向を区別可能な加速度の大きさｆ’を正しく生成することができる。
【０１３０】
図３１は，歩行における上下運動と前後運動との関係を示す図である。図３１の（１）は体幹の動きを示している。このように，体幹は上下方向にわずかに振動しているため，上下運動に応じて位置エネルギが変化する。一方，体幹の持つ力学的エネルギは変化しないため，変化した位置エネルギはそのまま運動エネルギとなる。運動エネルギとは速度のことであるため，前後方向の加速度は，図３１（２）のように，負から正への変化を繰り返す。図３１（３）は，前後方向の加速度をセンサフィルタにより平滑化した波形である。
【０１３１】
一方，上下方向の加速度は，図３１（４）に示すとおり，支持脚の切り替え時に大きく正となりその後は負となる。これをセンサフィルタにより平滑化すると，図３１（５）のようになる。なお，センサフィルタの出力は，所定の位相遅延を有していて，図３１（３）と（５）の位相は同位相に調整されている。
【０１３２】
図３１に示したとおり，体幹が上昇する場合は減速して前向きの加速度が負になり，体幹が下降する場合は加速して前向きの加速度が正になる。また，上下方向についても，体幹が下降して接地する瞬間まで下向きの加速度が正になり，接地後の体幹が上昇すると下向きの加速度が負になる。
【０１３３】
このように，図３１（３）と（５）を比較すると，上下方向と前後方向の加速度変化の周期は一致することが分かる。そして，上下方向の加速度が正の時に前後方向の加速度も正になり，上下方向の加速度が負の時に前後方向の加速度も負になることが分かる。また，上下の向きは重力方向との比較により知ることができる。この歩行動作の性質を利用して，第３の実施の形態では，左右方向を区別する加速度の大きさと，前後方向を区別する加速度の大きさを生成する。
【０１３４】
図３２は，第３の実施の形態における加速度センサ出力処理プログラム内の左右方向の加速度の大きさと前後方向の加速度の大きさとを求める演算処理を示すシーケンス線図である。このシーケンス線図では，この歩行動作の性質を利用して，図２８，図２９で求めた前後方向の加速度ｆと左右方向の加速度ｈの符号を正しい符号に修正している。
【０１３５】
すなわち，加速度センサ出力処理プログラムでは，上下方向の加速度ｖと前後方向の加速度ｆとを乗算器70で乗算する。その乗算値が正であればｖとｆの符号が同相（共に正または負）であるであることを意味するので，前後方向の加速度ｆの符号が正しく，ｆは正で前方向，負で後方向であることが分かる。したがって，乗算器72により前後方向の加速度ｆの符号を反転せずにｆ’を生成する。一方，乗算器70の乗算値が負であればｖとｆの符号が逆相（正と負，または負と正）であるので，ｆの符号が逆になっていることが分かる。したがって，乗算器72により前後方向の加速度ｆの符号を反転してｆ’を生成する。これにより，修正された前後方向の加速度ｆ’は，正で前方向，負で後方向となる。
【０１３６】
さらに，左右方向の加速度ｈの符号についても，乗算器70の乗算値の符号によって乗算器73で修正すれば，修正されたｈ’は，正で左方向，負で右方向になり，左右方向を区別可能になる。その理由は，図２８，図２９において，ベクトルKhが，初期値などにより左向きか右向きかのいずれかになることで，単位ベクトルHeとFeの方向が定まらず，前後方向の加速度ｆの符号による方向と，左右方向の加速度ｈの符号による方向が，正しい場合と逆の場合が生じていた。つまり，ベクトルKhの方向に依存して，単位ベクトルHe，Feの方向が異なり，それに伴い，前後方向の加速度ｆと左右方向の加速度ｈの符号による方向が不確かになっていた。そこで，修正された前後方向の加速度ｆ’が正で前方向，負で後方向とされているのであれば，単位ベクトルFeは前方向であり，単位ベクトルFeが外積G×Heと同じ方向であることから，単位ベクトルHeは左方向であることは，図２７から明らかである。よって，乗算器70の乗算値の符号で修正されたｈ’は，正で左方向，負で右方向になる。
【０１３７】
ただし，外積の演算順が異なる場合は，修正されたｈ’は，正で右方向，負で左方向になる。したがって，演算処理に依存して修正されたｆ’やｈ’の正と負の方向を画一的に決定できる。
【０１３８】
以上の通り，図３２において，乗算器70が上下の大きさｖと前後の大きさｆとを乗算し，その乗算結果の符号に応じて，左右方向の一方と他方の加速度の大きさｈの符号と，前後方向の一方と他方の加速度の大きさｆの符号とを修正して，ｈ’とｆ’を生成する。これにより，修正されたｈ’は，正の場合は左方向，負の場合は右方向と区別可能になり，修正されたｆ’は，正の場合は前方向，負の場合は後方向と区別可能になる。
【０１３９】
図３２の演算処理は，次の処理工程を有する。すなわち，図２８，２９の演算処理に加えて，センサ値Aからハイパスフィルタにより抽出した振動成分ベクトルSと前記重力成分ベクトルGとの第２の内積の符号に基づいて，第１の大きさｈの符号を修正して，左右方向を区別可能な第１の大きさｈ’を生成する工程を有する。
【０１４０】
さらに，図２８，２９の演算処理に加えて，センサ値Aからハイパスフィルタにより抽出した振動成分ベクトルSと重力成分ベクトルGとの第２の内積の符号に基づいて，第２の大きさｆの符号を修正して，前後方向を区別可能な第２の大きさ（ｆ’）を生成する工程を有する。
【０１４１】
［LPF,HPF,BPFの処理］
上記の実施の形態において，LPF，HPF，BPFの演算が行われている。そこで，これらのフィルタの演算処理について説明する。
【０１４２】
図３３は，ローパスフィルタLPFの演算処理のシーケンス線図である。加速度センサ値Aが複数のフリップフロップFF0〜FFn-1に，加速度センサのサンプリングクロックに同期したクロックCLKに同期して，記憶される。そして，加算器８０と1/n倍する除算器８１とを有する平均化処理AVEにより，連続するｎ個のセンサ値Aの平均値が求められる。つまり，このローパスフィルタLPFは，ｎ個のセンサ値Aの平均を求める平均化処理を実行することにより実現可能である。したがって，サブマイクロプロセッサ１４は，加速度センサ出力処理プログラム１５を実行するときに，センサ値Aを逐一メモリに記憶し，直前のｎ個のセンサ値Aを加算し，ｎで除算することで，ローパスフィルタの演算処理を実行する。これにより，サブマイクロプロセッサ１４は，ＬＰＦによる抽出処理を，加速度センサ出力プログラム１５により実現できる。
【０１４３】
図３４は，ハイパスフィルタHPFの演算処理のシーケンス線図である。ハイパスフィルタの演算処理は，図３３で求めたローパスフィルタの出力LPFoutを，センサ値Aから除算器８２で除算することで実現できる。したがって，サブマイクロプロセッサ１４は，センサ値Aからローパスフィルタ出力LPFoutを除算演算すればよい。ＨＰＦによる抽出処理も，加速度センサ出力プログラム１５により実現できる。
【０１４４】
図３５は，バンドパスフィルタBPFの演算処理のシーケンス線図である。バンドパスフィルタBPFの演算処理は，ハイパスフィルタHPFの演算を行い，その出力に対して更にローパスフィルタLPF-bの演算を行うことで実現できる。ハイパスフィルタHPFの演算処理は，図３４と同様で，センサ値AからローパスフィルタLPF-aの出力を減算することで実現できる。この場合，ハイパスフィルタHPF内のローパスフィルタLPF-aのカットオフ周波数を，後段のローパスフィルタLPF-bのカットオフ周波数より低くする必要がある。そのためには，例えば，図３３のローパスフィルタのフリップフロップ数ｎをより多くすることでカットオフ周波数をより低くでき，より少なくすることでカットオフ周波数をより高くできる。ＢＰＦによる抽出処理も，加速度センサ出力プログラム１５により実現できる。
【０１４５】
このように，サブマイクロプロセッサ１４は，上記の演算を実行することで，LPF，HPF，BPFの機能を実現することができる。
【符号の説明】
【０１４６】
A：センサ値
G：重力成分ベクトル
S：振動成分ベクトル
S×G：外積
|H|：外積の大きさに対応する第１の値
ｈ：左右方向の一方と他方の加速度の大きさ
ｆ：前後方向の一方と他方の加速度の大きさ
【図１】
0005900655.tif 000002
【図２】
0005900655.tif 000003
【図３】
0005900655.tif 000004
【図４】
0005900655.tif 000005
【図５】
0005900655.tif 000006
【図６】
0005900655.tif 000007
【図７】
0005900655.tif 000008
【図８】
0005900655.tif 000009
【図９】
0005900655.tif 000010
【図１０】
0005900655.tif 000011
【図１１】
0005900655.tif 000012
【図１２】
0005900655.tif 000013
【図１３】
0005900655.tif 000014
【図１４】
0005900655.tif 000015
【図１５】
0005900655.tif 000016
【図１６】
0005900655.tif 000017
【図１７】
0005900655.tif 000018
【図１８】
0005900655.tif 000019
【図１９】
0005900655.tif 000020
【図２０】
0005900655.tif 000021
【図２１】
0005900655.tif 000022
【図２２】
0005900655.tif 000023
【図２３】
0005900655.tif 000024
【図２４】
0005900655.tif 000025
【図２５】
0005900655.tif 000026
【図２６】
0005900655.tif 000027
【図２７】
0005900655.tif 000028
【図２８】
0005900655.tif 000029
【図２９】
0005900655.tif 000030
【図３０】
0005900655.tif 000031
【図３１】
0005900655.tif 000032
【図３２】
0005900655.tif 000033
【図３３】
0005900655.tif 000034
【図３４】
0005900655.tif 000035
【図３５】
0005900655.tif 000036