コンテンツにスキップ

何千歩ものノイズの中から「本当の波形」を取り出す ― 接地トリガー加算平均という考え方

テックノート No.7

1回のランでは、何千回もの「接地」(足が地面に着くこと)が起きています。1歩1歩を見ると、着地の衝撃やフォームのちょっとしたブレでセンサーの波形は大きくばらつき、そのまま眺めても再現性のあるパターンは読み取りにくいものです。ところが、「接地」という共通の基準点に全ストライドの波形を揃えてから平均すると、ノイズに埋もれていた「典型的な波形の形」が浮かび上がってきます。Dailythm Runの記録詳細画面にある「接地トリガー加算平均波形」は、この考え方を使った機能です。この記事では、その仕組みと、そこから読み取れそうな特徴・活用のヒントを紹介します。

7-1. 1歩ずつはノイズだらけ、でも重ねると形が見える

センサーの生波形を1ストライドずつ見ると、着地の仕方や路面のちょっとした凹凸、フォームの微妙なブレによって、毎回かなり違う形に見えます。この「ばらつき」の中に、そのランナー自身の典型的なパターン(着地の衝撃、そこからの跳ね上がり方など)が隠れているのですが、1歩だけを見ていてもなかなか気づけません。

この平均が示すもの

加算平均は、1回のランの中の何千歩を平均して、その人のその日の典型波形を取り出す方法です。この平均だけでは、「多くのランナーに共通する傾向」は示せません。複数のランナーに共通する特徴を言うには、別々のランナーの記録を集めて比べる必要があり、現時点で私の手元にあるのは、1人(1台のスマートフォン)の記録だけです。

そこで、「接地」という共通の基準点(トリガー)に全ストライドの時刻を揃えてから重ね合わせ、平均を取ります。ランダムに生じているばらつきは平均を取るほど打ち消し合って小さくなっていく一方、多くのストライドに共通して現れるパターン(同じランの中で繰り返し出る形)は平均に残ります。1回のランに何千ストライドも含まれていれば、それだけ「たまたま」の影響が小さくなり、より安定した典型波形が得られます。

Thousands of individual strides, averaged Individual strides (noisy, thin gray) Average (thick teal)

Fig. 7-1-1. 1本1本のストライド波形はノイズが大きいが、多数を平均すると共通のパターンが浮かび上がる

7-2. アプローチ: 接地をそろえてから平均する

この手法は、信号処理や振動解析の分野で「トリガー平均」と呼ばれる考え方に近いものです(天文・地球物理の分野で使われる superposed epoch analysis も同じ発想です)。ある共通の出来事(トリガー)が起きた瞬間を基準点として揃え、その前後の波形を重ね合わせて平均する、という手法です。

Dailythm Runでは、次の手順でこれを行っています。

  1. 記録全体から、すべての「接地」(ステップが確定した瞬間)の時刻を集める
  2. それぞれの接地時刻を基準点(時刻ゼロ)として、そこから一定時間分の波形を切り出す
  3. 切り出した波形を、共通の時間軸(グリッド)に合わせて補間する
  4. 全ストライド分をグリッドの各点で平均する(同時に、ばらつきの大きさを示す標準偏差も求める)

センサーの欠測などでうまく切り出せなかったストライドは平均から除外されるため、結果として「典型的な接地〜跳ね上がりの波形」と、そのばらつきの大きさ(標準偏差の帯)が得られます。

Before alignment Peaks scattered in time After alignment (trigger = 0) Peaks now line up Trigger (contact)

Fig. 7-2-1. 接地時刻を基準点(トリガー)としてストライドの時刻を揃えてから重ね合わせる

現在Dailythm Runでは、線形加速度(X・Y・Z軸。横向き装着ではXが上下、Zが前後、Yが左右)、前傾角、XZ角(重力方向に対する体の傾き)といった指標の中から選んで、この加算平均波形を確認できます。既定では、着地から最高点への跳ね上がりが最も顕著に現れる線形加速度の軸が選ばれています。

平均の単位は、接地ごとに1歩分を平均する「1歩」と、左右1歩ずつを1周期として切り出す「2歩周期」から選べます。2歩周期では、1歩目(起点の足)と2歩目(反対の足)の波形を並べて見られますが、どちらが左右どちらの足かまでは特定していません。1歩ごとの波形から左右を判定するのはノイズの影響で不安定なため、まず2歩周期のパターンをきちんと観測できるようにすることを優先しています。

ジャイロセンサー(回転の速さ)の値も、「ジャイロX・Y・Z」として、同じ加算平均波形で見られます。2歩周期にして、1歩目と2歩目のZ軸回りの回転を並べると、左右で向きが入れ替わっているかを観察できます(観測の途中経過は、センサーからわかること にあります)。

7-3. 波形から読み取れそうな特徴

こうして得られた「典型的な波形」からは、波形の形そのものだけでなく、そこからさらにいくつかの特徴量を取り出せる可能性があります。下の表の「現状」の欄にあるものは、すでに記録詳細画面で自動計算・表示しています。それ以外は、今後の活用に向けたアイデアです。

特徴量 求め方 意味の候補 現状
Peak Acceleration 波形の最大値(接地直後に最初に現れるピーク) 接地時などの衝撃の大きさ 「最大衝撃加速度」(平均波形のピーク)と「衝撃ピーク」(1歩ごとのピークの中央値)
Rise Rate ピークに至るまでの最大の傾き 衝撃の立ち上がりの速さ 「衝撃の立ち上がり率」
Peak Timing ピークに達するまでの時間 動作タイミング ピークから谷までの時間を「沈み込みの時刻」として表示。ピークまでの時間は、20ミリ秒刻みでは粗いため未対応
Negative Peak 波形の最小値 反対方向への動きの大きさ 「沈み込みの深さ」
Impulse-like Area 波形が囲む面積 動作量全体の大きさの目安 「衝撃の力積」(ピークからゼロ交差までの面積)
Peak Width ピーク付近の幅 衝撃が続く時間の長さ 「衝撃の減衰時間」(ピークが半分に落ちるまでの時間)
Variability 標準偏差の帯の幅 ストライドごとのばらつき・安定性 帯は波形に表示。数値は「衝撃のばらつき」(1歩ごとのピークの変動係数)
Peak-to-Peak Interval ピークとピークの間隔 周期・ストライド時間の候補 未対応
Zero Crossing 基準値と交差する時刻 動作の切り替わりのタイミング 計算はできるが、接地時間の代わりにはならないことを確認したため、数値としては表示していない
Asymmetry 左右の波形やピークの比較 左右差の候補 未対応(左右の足を判定できていないため)

また、記録の前半と後半を比べた「後半の衝撃変化」も表示しています。疲れとともに着地が変わるかを見る手がかりになりますが、ペースの変化の影響も混ざる点にご注意ください。

平均波形のピークは、実際より低くなる

接地の検出は、50Hz(20ミリ秒刻み)のセンサーの値で行うため、1歩ごとに、検出の位置が1サンプルほど前後にぶれます。衝撃のピークは数十ミリ秒の鋭い山なので、位置のぶれたままの波形を平均すると、山が潰れて低くなります。実際の2つの記録で確かめたところ、平均波形のピークは、1歩ごとのピークの約79〜91%にとどまっていました(記録によって違います)。

そこで、大きさの数値は、平均する前の1歩ごとの波形から取っています(衝撃ピーク、立ち上がり率、ばらつき)。さらに、波形の「形」(減衰時間・力積・沈み込み)は、1歩ごとのピークの時刻を基準にそろえてから平均した波形から取っています。この方法だと、検出のぶれの影響を受けにくくなります。2つの記録で、記録の前半と後半に分けて見たところ、減衰時間は前半と後半でほぼ同じ値になり、安定した特徴量として使えそうでした。一方、力積や沈み込みの深さは、後半に変わる傾向があり、疲れやペースの変化を追う目安になりそうです(ただし、ここまでは2つの記録での観測にとどまります)。

7-4. 具体例で見る活用のヒント

いくつか具体的な着眼点を挙げて、それぞれ何が見えてきそうかを紹介します。

シューズのクッション性とPeak Acceleration

着地の瞬間からピークまでの立ち上がり方は、シューズのクッション性によって変わることが考えられます。クッション性が低いシューズでは衝撃が急激に伝わるため、ピークが鋭く高く出やすい一方、クッション性が高いシューズでは衝撃が吸収・分散されるため、ピークがなだらかで低めに出やすいと考えられます。同じランナーが違うシューズで走った記録同士を比べれば、この違いを見比べられるかもしれません。記録詳細画面に表示される最大衝撃加速度を、シューズごと(記録の分析ファクターにシューズ名を書き込んでおくと整理しやすくなります)に見比べるのが、いちばん手軽な使い方です。ただし、この値がシューズのクッション性をどれだけ正確に反映するかは、まだ十分に検証できていません。路面・ペース・スマートフォンの装着位置をそろえた記録同士で、あくまで目安として比べてください。

Time since contact Low cushioning Sharp, high peak High cushioning Broad, lower peak

Fig. 7-4-1. ピークの高さ・鋭さの違いから、シューズのクッション性の違いが見えてくる可能性がある(イメージ図)

実際の観測から: 同じスマホで記録した、別の日の2つのランで、衝撃ピーク(1歩ごとの中央値)は、約27 m/s²と約38 m/s²と、大きく違いました。ただし、ペースやシューズ、路面などの条件がそろっていないため、シューズの違いによるものとは言えません。シューズだけを変えた比較は、これからの課題です。上の図も、実測ではなく、考え方を示すイメージです。

ストライド間の安定性とVariability

平均波形と一緒に得られる標準偏差の帯(ばらつきの幅)は、そのままストライドごとの安定性の目安になります。帯が狭ければ、毎回似たような動きで走れていることを示し、帯が広ければ、ストライドごとに動きが大きくばらついていることを示します。この考え方は、「安定したペースで走れたか」を1つの数値にするで紹介したペースの安定度とはまた違う切り口で、フォーム面での安定性を捉えるヒントになりそうです。

この2つのランでは、衝撃ピークのばらつき(1歩ごとのピークの変動係数)が、約26%と約22%でした。1歩ごとの衝撃は、平均の2割以上の幅で揺れていることになり、平均だけを見ていては気づきにくい点です。

左右差の候補としてのAsymmetry

現在は2歩周期の1歩目・2歩目の波形を並べて見られますが、どちらが左右どちらの足かは特定していません。もし左足の接地と右足の接地を区別してそれぞれ平均波形を作れれば、2つの波形を重ねて比較することで、左右の動きの違い(ピークの高さや形の左右差など)が見えてくる可能性があります。左右差は、フォームの癖や、疲労・ケガのリスクと関係することがあるとされており、興味深い着眼点です。

その他の候補

  • Peak Timing / Peak-to-Peak Interval: 接地から跳ね上がりまでのタイミングや、ピーク同士の間隔は、動作のリズムやテンポの特徴を表すかもしれません。ピークから谷までの時間は、すでに「沈み込みの時刻」として表示しています
  • Impulse-like Area: 波形が囲む面積は、瞬間的な大きさだけでなく、動作全体としての大きさを表す指標になりそうです。「衝撃の力積」として表示しています
  • Zero Crossing: 波形が基準値をまたぐタイミングは、動作の切り替わり(例えば上向きの動きから下向きの動きへの転換点)を捉えるヒントになります。ただし、接地時間とは別の量で、接地時間の代わりには使えませんでした

7-5. 実装で工夫した点

  • 着地から一定時間分の波形を切り出し、共通の時間グリッドに揃えてから平均する設計にしています(テンポの速いランでも遅いランでも同じように扱えるよう、余裕を持った時間幅にしています)
  • センサーの欠測などでウィンドウ内のデータが極端に少ないストライドは、平均から除外しています
  • 記録時間が長くなるほど計算コストが上がるため、記録詳細画面を開くたびに自動計算するのではなく、該当セクションを開いたときに一度だけ計算する設計にし、UIの描画が固まらないよう配慮しています

7-6. 限界・今後の展望

  • 波形から自動で数値化して表示している特徴量は、最大衝撃加速度のほか、1歩ごとの波形から求める衝撃ピーク・立ち上がり率・ばらつき・後半の衝撃変化、ピークを揃えて平均した波形から求める衝撃の減衰時間・力積・沈み込みの深さ・時刻です。左右差などは、まだ数値として表示していません
  • ストライド数が少ない記録(短い距離のランなど)では、平均の安定性が低くなりやすい点にご注意ください。衝撃指標は、計算に使える歩数が30歩未満の記録では表示しません(ランニングの解析では、安定した平均に約20歩が目安とされています 1)
  • スマートフォンの装着位置・向きの違いは、波形の形そのものに影響するため、異なる装着条件の記録を単純比較する際は注意が必要です
  • 対象にできる指標は、現在のところ数種類(線形加速度・前傾角・XZ角など)に限られています。ジャイロセンサー(回転の速さ)の波形は、選択肢に加えて観測を始めたところで、指標としての意味は、まだ確定していません
  • 衝撃の特徴量は、スマートフォンを体に付けて測った値です。脛などに付けた専用センサーの値とは、同じ量ではありません

7-7. 関連ページ


  1. Bruneau MM, et al. Gait retraining in injured distance runners: a clinical review. Dtsch Z Sportmed. 2025; 76: 22-28. doi:10.5960/dzsm.2025.621 (同論文が引用する Riazati ほか, J Biomech 2019 の知見) ↩