GNSS-SDR 是一款开源的软件定义 GNSS 接收机,具备全链路 GNSS 信号处理能力,可完成从信号检测、同步、解调、导航消息解码,到观测量解算、最终定位结果输出的全流程处理。该接收机支持多频段、多系统的卫星信号解析,具体覆盖范围如下:

  • L1 频段:兼容 GLONASS L1 C/A(1602.000 MHz)、GPS L1 C/A(1575.420 MHz)、伽利略 E1b/c(1575.420 MHz)、北斗 B1I(1561.098 MHz)信号;
  • E6 频段:支持伽利略 E6B(1278.750 MHz)信号解析;
  • L2 频段:可处理北斗 B3I(1268.520 MHz)、GLONASS L2 C/A(1246.000 MHz)、GPS L2C(1227.600 MHz)信号;
  • L5 频段:适配伽利略 E5b(1207.140 MHz)、伽利略 E5a(1176.450 MHz)、GPS L5(1176.450 MHz)信号。

此外,GNSS-SDR 提供了多类射频前端的适配接口,支持原始样本文件的格式兼容,输出结果可生成标准化格式,能够实现信号处理全链路的可追溯检查,同时为新功能的研发提供了灵活的扩展框架。更多关于该开源软件定义接收机的详情,可参考官方网站: https://gnss-sdr.org 。

在终端中输入下面命令即可运行GNSS-SDR(以GPS L2C频段为例)

gnss-sdr --config_file=gpsl2_test.conf

显示如下则定位成功

 运行结束后会产生如下文件:

  • gps_cnav_ephemeris.xmlGNSS‑SDR 从 GPS 卫星 L2C/L5 信号中解调出来的 CNAV 导航电文与广播星历参数文件,它是接收机基带解调后的原始星历数据。该文件主要用于排查基带解调是否正常、CNAV 星历是否完整、卫星是否健康、星历是否及时更新,用来判断定位异常是来自星历接收 / 解码问题,还是后续定位算法的问题。

  • gps_cnav_utc_model.xmlGNSS-SDR 从 GPS 卫星 L2C/L5 信号的 CNAV 导航电文中,解调并提取出的 UTC(协调世界时)转换模型参数文件。这些参数不是接收机计算的,而是卫星广播的、用于将 GPS 系统时转换为 UTC 时间的标准系数,文件仅对这些系数做解码和 XML 格式化存储。简单说:这是卫星下发的 “GPS 时 ↔ UTC 时” 转换公式参数,接收机原样保存成了 XML 文件。这个文件主要用来排查和 UTC 时间相关的异常,具体包括:

  • 时间转换异常排查:如果定位结果中时间戳错误、和实际 UTC 时间偏差大,可查看文件中 UTC 模型参数是否存在(无参数→接收机未解调成功)、是否为有效值(参数全 0 / 乱码→CNAV 电文解码故障);
  • CNAV 电文解调完整性排查:UTC 模型是 CNAV 导航电文的核心组成部分,若该文件缺失 / 参数异常,可佐证接收机对 L2C/L5 信号的 CNAV 电文解调不完整,而非单纯星历解调问题;
  • 跨系统时间同步排查:若你的设备需要 GNSS 授时、多系统(如 BDS/GPS)时间对齐,可通过该文件参数验证 GPS 时转 UTC 时的准确性,定位时间同步偏差的根源(是参数错误还是授时算法问题)。
  • 一、核心输出文件 1:L2output.rinex.26N(导航电文文件)

    1. 文件本质

    符合 RINEX 2.6 版本规范的 GPS L2 频段 CNAV 导航电文文件,后缀 N 代表 Navigation(导航电文),存储接收机从 GPS 卫星 L2C 信号中解调的原始广播数据(卫星下发的 “指令”,非接收机计算结果)。

    2. 核心内容拆解

    内容段 示例 / 关键标识 含义与排查价值
    头部版本标识 2.11 N: GNSS NAV DATA G: GPS RINEX VERSION / TYPE 2.11(兼容 RINEX 2.6)、N(导航电文)、G: GPS(仅含 GPS 数据),确认文件类型合规性。
    基础属性 GNSS-SDR ma 27-FEB-26 13:45 PGM / RUN BY / DATE 生成工具(GNSS-SDR)、运行用户、生成时间,用于确认文件生成环境。
    辅助修正参数 GPSA/GPSB(IONOSPHERIC CORR)GPUT(TIME SYSTEM CORR)LEAP SECONDS 分别对应 GPS 电离层修正参数、GPS 时转 UTC 时修正参数、闰秒参数,用于补偿定位误差、同步时间。
    头部结束标记 END OF HEADER RINEX 格式合规的核心标识,缺失则说明文件输出异常。
    卫星星历数据 G11 2005 02 08 02 00 00 -.737793743610D-03 ... G11(GPS 卫星 PRN 号)、2005 02 08 02 00 00(星历参考时间 Toe)、后续数值为核心星历参数:- -.737793743610D-03:卫星钟差(秒),修正卫星时钟与 GPS 系统时偏差;- .515377307894D+04:轨道半长轴平方根(米 ^0.5),计算卫星位置的核心参数;- 其余:偏心率、轨道倾角、摄动修正项等开普勒轨道参数。

    3. 故障排查场景

    排查方向 排查方法
    CNAV 电文解调完整性 查看卫星数据行(如 G11/G13)参数是否完整:- G11/G13 参数正常 → 解调正常;- G15 参数全 0 → 该卫星 L2C 电文解调失败。
    时间转换异常 检查 GPUT(TIME SYSTEM CORR)/LEAP SECONDS 参数:- 无参数 / 全 0 → 接收机未解调成功;- 参数乱码 → CNAV 电文解码故障(导致定位时间戳偏差)。
    跨系统时间同步 验证 GPUT 参数有效性,定位 GPS 时转 UTC 时偏差根源(参数错误 / 授时算法问题)。

    二、核心输出文件 2:L2output.rinex.26O(观测值文件)

    1. 文件本质

    符合 RINEX 2.6 版本规范的 GPS L2 频段观测值文件,后缀 O 代表 Observation(观测值),存储接收机对 GPS L2C 信号的实际测量结果(接收机 “感知” 的信号特征)。

    2. 核心内容拆解

    内容段 示例 / 关键标识 含义与排查价值
    头部版本标识 2.11 O: GNSS OBS DATA G: GPS RINEX VERSION / TYPE O 确认是观测值文件,G: GPS 限定数据范围为 GPS 系统,是区分于 26N 的核心标识。
    观测值类型 G L2C C1C L2C L1C # / TYPES OF OBSERV 标注观测值类型,核心关注 L2 相关:- L2C:L2 载波相位(RTK/PPP 高精度定位核心);- S2C:L2 信噪比(信号强度指标);- D2C:L2 多普勒频移(卫星与接收机相对速度)。
    卫星列表 11 13 PRN / # OF OBS 参与观测的卫星 PRN 号,确认可跟踪的 GPS L2C 卫星数量。
    观测值数据 G11 1234567.890 D+00 456789.123 D+00 35.0 D+00 OBS DATA (G11) 每颗卫星的实测数据:- 第一值:伪距(米),接收机到卫星的距离测量值;- 第二值:载波相位(周),高精度距离测量值;- 第三值:信噪比(dB-Hz),信号质量核心指标。

    3. 故障排查场景

    排查方向 排查方法
    L2 信号捕获 / 跟踪异常 查看是否有 L2 观测值(L2C/S2C):- 有值 → L2 信号跟踪正常;- 无值 → L2 射频 / 基带故障(天线不支持 L2、跟踪环失锁);- 仅 G11/G13 有值、G15 无值 → 佐证 26N 中 G15 星历全 0 是信号接收问题。
    观测值质量问题 1. 信噪比:SNR<30dB-Hz → 信号弱(遮挡 / 多路径 / 天线故障);2. 伪距 / 载波相位:出现跳变 / 阶跃 → 周跳 / 信号失锁(多路径 / 射频干扰)。
    定位算法输入异常 定位结果偏差大时,对比伪距数值:- 伪距异常偏大 → 观测值错误;- 伪距正常 → 定位解算算法问题。
    RINEX 格式输出异常 检查字段完整性、数值格式(如科学计数法 D+00):- 字段缺失 / 格式错误 → GNSS-SDR 的 RINEX 输出模块故障。

    三、26N 与 26O 核心区别(排查时快速区分)

    特征 L2output.rinex.26N L2output.rinex.26O
    核心类型 导航电文(卫星广播数据) 观测值(接收机测量数据)
    核心内容 星历、钟差、电离层 / 时间修正参数 伪距、载波相位、多普勒、信噪比
    数据来源 卫星下发的 CNAV 电文(“听” 到的内容) 接收机对 L2C 信号的实测(“测” 到的结果)
    核心排查方向 L2C 电文解调是否完整、时间同步 L2 信号接收质量、观测值有效性
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐