我想使用 .NET CF 显示 GPS 设备的信号条。我能够读取 NMEA 数据并获得 SNR 信号。但它们是一些卫星,有些处于活动状态,有些处于不活动状态,具有各种 SNR。我考虑过获得总信噪比的平均值,但它不会给出准确的值,因为三颗强信号卫星足以进行 GPS 定位,而另外 5 颗信噪比差的卫星会扰乱信号条计算。我如何以正确的方式计算 GPS 信号的百分比?
3 回答
使用GSA
NMEA 句子获得Dilution of Precision
:
这句话提供了有关修复性质的详细信息。它包括当前解决方案中使用的卫星数量和 DOP。DOP(精度稀释)表示卫星几何形状对定位精度的影响。这是一个无单位的数字,越小越好。对于使用 4 颗卫星的 3D 修复,1.0 将被认为是一个完美的数字,但对于超定解决方案,可能会看到低于 1.0 的数字。
来自GPS 信息。
1 的 DOP 值是完美的,而 20 或更大的 DOP 值是差的。您通常希望 DOP 小于 10。
不,不要使用 DOP,使用 HDOP(精度水平稀释)值。DOP 确实包括高度(高于椭球/海平面的高度)。由于高度不是很准确,GPS 主要用于水平(纬度、经度)位置。因此,hdop 更有用。您通常会使用 hdop < 5 的值。
另一种方式:上面的答案,计算与特定位置和时间相关的质量。如果你真的想要信号强度,例如比较车内 GPS 接收器的安装质量,或者天线的质量:那么你应该平均所有使用的信噪比!卫星。您将在 GSV 句子中找到这一点。据我所知,没有标准的方法来计算整体信号强度。但我不会用它在显示器上显示条形图,它更多的是用于分析和监控。
有一句话叫
$PGRME 估计位置误差[1.NMEA0183 Ref]
我想说这正是我们正在寻找的,但不幸的是,这是 Garmin 的专有句子。这让我觉得计算这样的事情可能需要大量的工作,Garmin 试图为其自己的协议打上烙印。
还有关于使用GSA的建议。当我看这句话的时候,里面没有DOP。搜索给我 “$PGRMF Position Fix Sentence”,这又是一个 Garmin 专有的句子。
正如我所看到的,只发送了GGA。具有水平稀释精度。
我想知道是否需要特定的 Garmin 兼容硬件来阅读 Garmin 语句,或者是否有其他解决方案。