校正多个地理传感器读数中的噪声

时间:2011-09-05 18:47:43

标签: sql-server algorithm geolocation sensor noise

给定一个具有未知错误值的地理编码位置列表和一个噪声较小的公共校正数据库,该数据库靠近真实位置(大多数是可靠的),我该如何设计算法考虑所有修正以最准确地逼近真实位置?

固定坐标和传感器读数都有噪音,因此类似于地理登记问题。它让我想起了多个噪声传感器的已知问题,你可以在其中模拟噪声并计算最可能的值,但我不记得解决方案。

所有坐标都以geography::POINT类型存储在SQL Server 2008中,因此该平台的有效解决方案将非常有用。


澄清:坐标时态。每次读数都来自一个独特的传感器,没有重复测量。

1 个答案:

答案 0 :(得分:2)

虽然我不知道如何在SQL Server 2008中实现这一点,但好的算法可能是http://en.wikipedia.org/wiki/Kalman_filter(参见http://www.developerstation.org/2011/09/kalman-filter-for-dummies-tutorials.html)。

对于实现,使用SQL Server中的空间索引可能会有所帮助 - 例如参见http://blogs.msdn.com/b/isaac/archive/2007/05/16/sql-server-spatial-support-an-introduction.aspx

SQL Server中另一个有趣的资源regargind空间支持是http://www.jasonfollas.com/blog/archive/2008/03/14/sql-server-2008-spatial-data-part-1.aspx

虽然在C中卡尔曼滤波器的一些应用见http://interactive-matter.eu/2009/12/filtering-sensor-data-with-a-kalman-filter/

编辑 - 根据评论:

根据要求,使用卡尔曼滤波的修改版本更有意义,它不仅考虑了白噪声,还考虑了时间相关误差 - 例如参见http://hss.ulb.uni-bonn.de/2011/2605/2605.pdf

编辑2 - 在OP澄清之后:

在你的场景中,没有什么可以以某种方式“猜测”错误,除了嘈杂的公共位置......你可以使用任何噪声感知统计算法......你甚至可以选择3或5个最近的坐标(见链接)关于空间支持)并校正您的测量,例如类似于磁棒...另一种选择是通过加权类似于三角测量等的差异来应用误差校正。

编辑3 - 在OP的评论之后:

一种此类算法是点集的最小权重三角化...请参阅http://en.wikipedia.org/wiki/Minimum-weight_triangulationhttp://code.google.com/p/minimum-weight-triangulator/