【发布时间】:2017-07-29 14:45:10
【问题描述】:
我有一些由 NMEA GPS 字符串加时间戳的数据,我对其进行解码以获得单个数据点年、月、日等。
问题在于,在少数情况下 GPS(可能是由于某些信号丢失)会出现故障,并且会吐出非常非常错误的信息。这会在时间戳数据中产生尖峰,您可以从所附图片中看到,该图片绘制了 GPS 输出的 Days 向量。
如您所见,GPS 数据通常表现良好,天数在每月 1 到 30/31 之间,然后在下个月回落到 1。但在某些时刻,GPS 会随机显示一天。
我尝试了所有用于去尖峰的标准 MATLAB 函数(例如 medfilt1 和 findpeaks),但要么它们不适合该任务,要么我不知道如何正确设置它们。
我的另一个想法是遍历相邻元素之间的差异,但是向量太大以至于计算机无法真正处理它。
是否有任何矢量化方法可以沿着这条路走并检测那些尖峰?
非常感谢!
【问题讨论】:
-
你能上传你的数据吗?
-
你可以试试这个吗?
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')。y是您的数据。请告诉我。