加速度計データを分類する方法は?


7

iPhoneの加速度計を使用して、車が加速したかブレーキをかけたかを検出しようとしています。

下の図では、収集したデータをプロットしています。(データを収集するために、電話は、車の中で、電話の上部を正面に向けて平らに置いていました)。

私が今持っている問題は、車が加速した場所とブレーキをかけた場所を視覚的にはっきりと確認できることです(以下を参照)。しかし、プログラムでそれを行う方法を理解することはできません。

基本的に私が欲しいのは、特定の時間帯に車がブレーキまたは加速した頻度を知ることです。(ウィンドウサイズは約10〜30秒)。

任意の助けをいただければ幸いです。

前もって感謝します! 加速|  車のブレーキ


の単位は何ですか?xaxis
Gilles

x軸の単位は時間です。60 Hzでサンプリングしました。したがって、x軸の値を60で割ると、秒を表します。
riik 14

さて、それはサンプルの数です。1つの方法は、提案するサイズのスライディングウィンドウを取得し、収集されたサンプルの平均と分散に条件を設定し、必要に応じてゼロ交差間隔に条件を追加することです。しかし、短時間のウィンドウなしで分析を行う場合、アクティビティ信号(青色信号)の立ち上がりエッジの数から、加速した回数と、ブレークのための立ち下がりエッジを取得できませんか?
Gilles、

1
@PaulR明確化に感謝!私はそれに応じて質問を更新しました。
riik 14

2
加速度計のデータを使用する場合は、原則として、加速の符号を使用するだけでかまいません(-ブレーキ、+加速)。問題はノイズです。おそらく、Savitzky Golayフィルターを使用することで、SNRを十分に上げることができます
Matt L.

回答:


1

加速度計信号でSTFTを実行することを検討する必要があります。これにより、信号の周波数を視覚化できます。ブレーキの頻度を特定できる場合は、その特定のブレーキ頻度のしきい値を設定し、それを超えるたびにカウントできるはずです。また、ブレーキがかかる時間を測定することもできます。

信号をどのように処理していますか?Matlabとpythonにはspecgram関数があり、実際の周波数ブレーキを確認できます。そこから、ブレーキ頻度としきい値を決定することができます。


1

ブレーキをかけると、運動方向に沿った加速度が符号を反転します。たとえば、アクセルのz軸が重力軸の方向(つまり、地球に面する方向)になるように携帯電話を配置すると、z軸に沿った加速度は-gになります。一方、負のz軸がgと整列している場合、加速度計のz軸は+ gを測定します。これは、自動車の加速と制動のシナリオに似ていますが、減速の大きさは加速よりも少し低くなります。まず、回転行列を使用して、参照軸をg軸として定義し、最小および最大加速度の方向に基づいて他の2つの軸を定義します。基本的に、参照軸を電話の向きに基づくx、y、z座標から静止g、a、s参照系に変更します(gは重力軸、aは最大加速度の方向であり、sは静止軸です。で説明されているように、ジャイロスコープを使用してこの軸回転を実現することもできます。このページ。変換された軸で加速度計のデータを見ることができる1つで、ゼロ交差を探すことにより、電話の向きに関係なく、1つの軸からの信号に基づいて加速と減速の領域を簡単に分類できます。


1

軸の記号は車の動きと同じでなければならないため、電話の向きを知っている必要があります。軸の記号が正しいと仮定すると、でfilter加速度計信号を使用してlowpass、高周波をクリーンにしてからnoise、信号の記号を確認して、それがブレークであるかどうかを検出できます。a(ti)<0 または加速 a(ti)>0

butterworthたとえば、低周波数の2次または3次のローパスでフィルタリングする必要があります。10Hz またはそれ以下の場合は、グラフィックを見てカット周波数をいくつか試す必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.