年、月、日などのデータポイントを取得するためにデコードするNMEA GPS文字列でタイムスタンプを付けたデータがあります。MATLABを使用して定期データからスパイクを削除
問題は、いくつかの機会にGPSが(おそらく何らかの信号損失のために)沸騰し、非常に間違ったものが吐き出されるということです。これは、タイムスタンプデータにスパイクを生成します。これは添付の画像から分かるように、GPSによって出力されたDaysのベクトルをプロットします。
あなたが見ることができるように、GPSデータは、一般的に行儀あり、そして日が来月に戻って1に落ちる前に、毎月1と30/31の間に行きます。しかしある一定の瞬間に、GPSはランダムな日を吐き出します。
私はdespiking用の標準的なMATLAB関数(medfilt1やfindpeaksなど)を試しましたが、タスクには適していないか、正しく設定する方法がわかりません。
私の他のアイデアは、隣接する要素間の違いをループすることでしたが、ベクトルは非常に大きく、コンピュータは実際にそれを処理できません。
このような道路を降りてスパイクを検出するベクター化された方法はありますか?
ありがとうございます!
あなたのデータをアップロードできますか? – shamalaia
これを試すことができますか? plot(1:10、[y(1:q(1)-1)]は、d1 = [diff(y)0]; q = q = find(diff(abs(d1))== 0) )、y '(q(1)+ 2)y(q(1)+2)y 'y 'はあなたのデータです。私に教えてください。 – shamalaia