我有一个 (x,y) 数据流,我想从中确定速度和加速度。这些数据非常典型,可以被认为代表了一辆正在四处行驶的汽车。
每 2ms 出现一个新数据点,我不想累积/存储不必要的值,所以我想使用boost::accumulator
.
有没有更简单的方法来处理这类任务?或者可能已经存在的其他库已经这样做了?或者我的想法是否正确。尚不确定我将使用哪些标签,但我喜欢容器为给定属性保留更新值并且不存储旧位置数据的想法。
另一个想法是使用循环缓冲区(例如大小 200)并根据最后 50 个值计算加速度,并根据缓冲区中的所有值计算速度。但是,如果缓冲区存储原始位置数据,则每次都需要循环遍历所有元素以计算加速度和速度。这可以通过保留某种滚动加速度和速度值来改进,该值通过从最终元素中删除值并添加新元素中的值来重新计算以插入(重量为 1/缓冲区中的元素)。然而,这对我来说似乎是某种增强滚动加权累加器。