我有一些數據由一個NMEA GPS字符串加時間標記,我將其解碼以獲得單一數據點Year,Month,Day等。使用MATLAB去除週期性數據中的尖峯
問題是,在很少的情況下,GPS(可能是由於一些信號損失)變得不穩定,它吐出了非常非常錯誤的東西。這會在時間戳數據中產生尖峯,正如您可以從附圖中看到的那樣,它會繪製GPS輸出的天數向量。
正如你所看到的,GPS數據一般都很乖,和1 30/31每個月的天走在下月回落至1日前。但在某些時候,GPS會隨機抽出一天。
我嘗試了所有的標準MATLAB函數來實現despiking(比如medfilt1和findpeaks),但是它們不適合這個任務,要麼我不知道如何正確設置它們。
我的另一個想法是循環相鄰元素之間的差異,但矢量太大以至於電腦無法真正處理它。
有沒有矢量化的方式來走這樣一條路,並檢測到這些尖峯?
非常感謝!
你能上傳你的數據嗎? – shamalaia
你可以試試嗎? 'd1 = [diff(y)0];''q = q = find(diff(abs(d1))== 0)''plot(1:10,[y(1:q(1)-1 )y(q(1)+2)y(q(1)+2)y(q(1)+2:end)],'r')'。你的數據在哪裏。請讓我知道。 – shamalaia