2011-09-05 62 views
6

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

静止坐标和传感器读数都是嘈杂的,所以它类似于地理签到问题。它让我想起了一个已知的多噪声传感器问题,您可以在此模拟噪声并计算最可能的值,但我不记得解决方案。

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


澄清:坐标是时间。每个读数来自独特的传感器,无需重复测量。

回答

2

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

对于它可能会有所帮助使用从SQL Server中的空间索引的实现 - 例如参见​​

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

虽然℃的一些应用卡尔曼滤波看到http://interactive-matter.eu/2009/12/filtering-sensor-data-with-a-kalman-filter/

编辑 - 按评论:

取决于它可以使利用卡尔曼滤波的修改版本,它不仅需要白噪声考虑又考虑时间相关的错误更有意义的要求 - 例如参见http://hss.ulb.uni-bonn.de/2011/2605/2605.pdf

EDIT 2 - 的澄清后,来自OP:

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

EDIT 3 - 从OP注释后:

一个这样的算法是点集的最小权重-三角...看到http://en.wikipedia.org/wiki/Minimum-weight_triangulationhttp://code.google.com/p/minimum-weight-triangulator/

+0

卡尔曼滤波器是我想到的滤波器,谢谢。它适用于通过少量传感器连续测量速度或加速度,但它是否可以用于由不同传感器产生的数百次噪声静态时间读数,并且具有未知错误? –

+0

有一些修改它可以 - 看到我的编辑上面的链接... – Yahia

+0

不幸的是我的修正坐标不是时间序列(我已经添加了一个说明)。引用的论文涉及“静态时间序列”,它是从静态GPS接收器完成的一系列测量。在这种情况下,多个独立的传感器每个在所期望的位置处或者在所希望的位置的边界上“登记”一次(并且仅仅一次)。 –