2

我正在使用 android 扫描 WIFI AP 的每一帧,我从每个 AP 获取信号强度(dbm 中的 RSSI),并且我正在使用以下公式计算距离:

public double calculateDistance(double levelInDb, double freqInMHz) {
    double exp = (32.44 - (20 * Math.log10(freqInMHz)) + Math.abs(levelInDb)) / 20.0;
    return Math.pow(10.0, exp);
}

这很好,所以我有三个或更多的距离,现在我需要在地图上绘制所有 AP 的固定位置,我在互联网上做了一些阅读,我发现了三边测量(是确定绝对或相对位置的过程通过距离测量点),但看起来我至少需要一个点(x,y),此时我只有计算出的与信号强度的距离,可以作为不同圆周的半径。

我很困惑,因为我没有任何具体的点 (x,y) 来开始计算手机的位置。

我只需要知道是否有办法计算该点,或者我可以假设初始点,或者我遗漏了一些东西。

谢谢你,我真的很感激。

4

1 回答 1

9

正如 Paulw11 在他的评论中提到的那样,您必须知道所有 AP 或至少其中一个的确切位置以及其他两个与该 AP 的相对位置。然后三边测量程序将为每个 AP 产生一个圆圈,它们的拦截将是设备。

请记住,使用 Wi-Fi 的三边测量将产生一个区域而不是一个点,这将导致一个精度至少为 2-3m 的不确定区域。从我所见,您正在根据通用类型的自由空间损失模型计算距离,这并不是每个环境的真实情况,因此,这种假设会使您的估计变得更糟。

一个好的方法是首先使用来自设备的 Wi-Fi 测量值对您的区域进行无线电映射,然后基于此 Wi-Fi 指纹。或者先准备一个训练期。有很多关于这方面的教程。

于 2014-11-19T09:57:59.467 回答