与WiFI强度信号的3个计算距离的三边测量



我正在使用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)来开始计算手机的位置。

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

谢谢,我真的很感激任何。

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

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

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

最新更新