iPhoneから取得した加速度データに必要な最大値を見つけるにはどうすればよいですか?
加速度計の値のストリームが最大になる回数を見つける必要があります。私はiPhoneModelから取得した加速度計の値を、CoreMotionメソッドを使用してDeviceMotionUpdatesを取得してプロットしました。データが記録されているとき、私は電話を9回揺らしました(各四肢は最高加速点の1つでした)。
私は、プロット上の赤いボックスで加速が最大に達したときに18(つまり9 * 2)回のマークを付けました。
しかし、あなたが見るように、私は考慮したくないローカルマキシマがいくつかあります。誰かが私に重要性の最大値を検出するのに役立つアイデアに向かって私を導くことができますか?
編集:ローパスフィルターを使用する必要があると思います。しかし、私はこれをSwiftにどのように実装しますか?カットオフの頻度をどのように選択するのですか?
編集2: ローパスフィルタを実装し、ローモーションデータを渡してグラフを次のように取得しました。これははるかに良いです。私はまだ観察できる重要でない最大値を避ける方法が必要です。私はフィルターと深く勉強し、おそらくそれを修正するでしょう。
[ローカル最大値を特定するアルゴリズム]の複製があります(http://stackoverflow.com/questions/3242910/algorithm-to-locate-local-maxima) – andand
@andこれはその複製ではありません。その質問は、極大値を見つける方法を尋ねる。これはグローバルな最大値を見つける方法を尋ねます – Nyakiba
グローバルな最大値を探しているとは思いません。線形時間で徹底的な検索を使用して見つけることができる単なる1つの値になります。あなたが特定のしきい値を超えるすべての極大値を数えたいと思うように私には見えます。そうでない場合は、あなたの質問に言い直す必要があります。 – andand