【GNSS】GNSS数据解析与质量分析:从GNSSAnalysis到MATLAB

发布时间:2026/7/22 4:29:50
【GNSS】GNSS数据解析与质量分析:从GNSSAnalysis到MATLAB 论文引用信息本文内容基于以下SPIE会议论文Zixia Shang, “Off-line Data Processing Based on GNSSLOGGER, GNSS System Positioning Data Quality and Accuracy Analysis,”Fourth International Conference on Geology, Mapping, and Remote Sensing (ICGMRS 2023), Wuhan, China, 14-16 April 2023.Proceedings of SPIE, Vol. 12978. DOI: [10.1117/12.3019575](https://doi.org/10.1117/12.3019575)论文实验数据已上传至GitHubhttps://github.com/ZixiaShang/GNSSLOGGER-Data-8GNSS数据解析与质量分析从GNSSAnalysis到MATLAB一、引言为什么需要数据解析与质量分析在上一篇文章中我们学习了如何使用GNSSLogger采集原始GNSS数据。然而采集到的日志文件.txt格式包含了大量原始数据——Raw测量值、Fix定位结果、NMEA语句、导航消息等——这些数据格式复杂无法直接用于定位精度评估和系统性能对比。数据解析与质量分析的核心目标解析数据格式理解GNSSLogger输出的每一行数据的含义评估信号质量分析卫星信号功率、载波噪声密度C/No、伪距误差等指标对比系统性能比较不同GNSS系统GPS/BDS/GLONASS/Galileo的信号强度和稳定性筛选有效数据为后续的MATLAB轨迹处理准备高质量的数据论文第二章B节和第三章详细介绍了数据解析与质量分析的工具和方法。本文将结合Android官方文档和论文实践系统讲解如何使用GNSSAnalysis和MATLAB进行GNSS数据解析与质量分析。二、GNSSLogger日志文件格式详解2.1 行前缀Row PrefixesGNSSLogger输出的每一行都以特定的字符串前缀标识数据类型前缀数据类型说明Raw原始GNSS测量数据伪距、载波相位、多普勒、C/No等Fix定位解算结果经纬度、高度、速度、精度等Nav导航消息卫星导航电文NMEANMEA语句标准导航数据格式GnssStatus卫星状态信息可见卫星列表、信号强度等Accel/UncalAccel加速度计数据m/s²Gyro/UncalGyro陀螺仪数据rad/s2.2 Fix行格式重点Fix行是定位解算的核心数据包含17个CSV字段Fix,Provider,Lat,Lon,Alt,Speed,Accuracy,Bearing,UnixTimeMs,...各字段含义列号字段说明1Fix固定标识符2Provider定位提供者FLP/GPS/NLP3Lat纬度度4Lon经度度5Alt海拔高度米6Speed速度米/秒7Accuracy定位精度米2.3 Raw行格式Raw行记录的是最原始的GNSS观测数据根据设备不同可以包含以下全部或部分数据伪距和伪距率Pseudorange and pseudorange rate导航消息Navigation messages自动增益控制器AGC值累计变化量ADR或载波相位这些数据是进行高精度定位分析的基础。三、设备兼容性你的手机支持哪些数据3.1 Android版本要求根据Android官方文档原始GNSS测量数据的支持情况如下Android版本原始GNSS测量支持Android 10API 29及以上必须支持Android 9API 28及以下硬件年份2016年或更新的设备必须支持目前超过90%的现有Android手机都具有原始测量数据能力。3.2 不同设备支持的数据字段差异对某些GNSS原始测量字段的支持是可选的并且会因所使用的GNSS芯片组而异。官方文档列出了部分设备的支持情况型号Android版本AGCADR载波相位L5支持系统Google Pixel 4/5/6/712✅✅✅GPSGLOGALBDSQZS小米Mi 99✅❌✅GPSGLOGALBDSQZS小米Mi 88.1❌✅✅GPSGLOGALBDSQZS华为P30 Pro9❌✅✅GPSGLOGALBDS华为Mate 209❌✅✅GPSGLOGALBDS三星S20/S21 Ultra (Exynos)12✅✅✅GPSGLOGALBDSQZS⚠️ 特别注意如果您的设备始终报告可用ADR为0即使在停车状态下且已停用占空比则表明您的设备不支持可用于高精度GNSS的载波相位测量。论文中使用的三款设备——Xiaomi 22041216C、Xiaomi M2007J17C和HUAWEI DBY-W09——均支持原始GNSS测量但华为设备在Galileo卫星信号接收方面表现较弱。四、GNSSAnalysisGoogle官方跨平台分析工具4.1 什么是GNSSAnalysisGNSSAnalysis是Google官方基于MATLAB构建的桌面分析工具用于读取和评估GNSSLogger收集的原始测量数据。该工具最初于2017年公开发布旨在帮助设备制造商详细查看GNSS接收器在每种特定设备设计中的工作情况从而改进设计和GNSS性能。同时它对研究社区和应用开发者社区也有重要价值。GNSSAnalysis的主要功能功能说明交互式绘图分为RF、Clock和Measurements三列展示接收器行为多星座支持支持GPS、GLONASS、Galileo、BeiDou和QZSS多频段支持支持L1、L5、E1、E5等多频信号接收器测试报告自动生成API实现、接收信号、时钟行为、测量精度的测试报告卫星级分析逐颗卫星分析测量误差精度达纳秒级和1 ppb论文中使用GNSSAnalysis对采集的数据进行了系统分析包括卫星信号识别、信号功率分析和伪距变化分析。4.2 GNSSAnalysis的获取与版本说明GNSSAnalysis提供三个平台的版本平台下载链接v3.0.3.0下载链接v4.6.0.1LinuxGnssAnalysisLinuxV3.0.3.0.zipGnssAnalysisLinuxV4.6.0.1.zipWindowsGnssAnalysisWindowsV3.0.3.0.zipGnssAnalysisWindowsV4.6.0.1.zipmacOSGnssAnalysisMacV3.0.3.0.zipGnssAnalysisMacV4.6.0.1.zip版本说明v3.0.3.0是较早的稳定版本v4.6.0.1是较新版本。建议使用最新版本以获得最佳兼容性。完整的安装和用户手册也可在GitHub Releases页面获取。GNSSAnalysis是一个桌面应用它以Android设备记录的原始GNSS测量数据作为输入提供交互式绘图界面。4.3 各平台安装与配置详解4.3.1 通用准备工作无论使用哪个平台都需要安装MATLAB建议使用最新版本从GitHub克隆或下载代码gitclone https://github.com/google/gps-measurement-tools.git4.3.2 Windows平台配置特点提供.exe可执行文件双击即可运行路径分隔符使用反斜杠\安装步骤下载GnssAnalysisWindowsVX.X.X.X.zip解压到目标目录建议路径不含中文和空格双击GnssAnalysis.exe启动应用如需使用MATLAB源码版本在MATLAB中执行addpath(C:\path\to\gps-measurement-tools\opensource);注意事项确保MATLAB已正确安装且许可证有效如遇路径问题检查是否使用了正确的路径分隔符4.3.3 macOS平台配置特点提供.app bundle拖拽即可安装基于Unix内核与Linux有相似的命令行工具安装步骤下载GnssAnalysisMacVX.X.X.X.zip解压后将GnssAnalysis.app拖入Applications文件夹首次打开时如遇“无法验证开发者”提示需在系统设置中允许运行或在终端中执行xattr-dcom.apple.quarantine /Applications/GnssAnalysis.app注意事项macOS可能需要安装Xcode Command Line Tools如使用MATLAB源码版本路径格式为addpath(~/path/to/gps-measurement-tools/opensource);4.3.4 Linux平台配置特点提供压缩包解压后包含可执行文件适合服务器环境和批量处理安装步骤下载GnssAnalysisLinuxVX.X.X.X.zip解压到目标目录unzipGnssAnalysisLinuxV4.6.0.1.zip-d~/gnss-analysis赋予执行权限chmodx ~/gnss-analysis/GnssAnalysis运行./GnssAnalysis注意事项确保MATLAB运行时环境MCR已安装如使用MATLAB源码版本路径格式为addpath(~/gpstools/opensource);4.4 GNSSAnalysis的使用方法基本使用流程运行示例脚本验证安装ProcessGnssMeasScript;该脚本将使用预先记录的日志文件进行处理。处理自定义日志文件将GNSSLogger采集的.txt文件保存到指定目录编辑ProcessGpsMeasScript.m指定文件名和目录路径dirName~/gnss_data/;fileNamegnss_log_2023_03_08_19_48_23.txt;生成测试报告点击Make Report自动创建接收器测试报告评估API实现、接收信号、时钟行为和测量精度。论文中的使用方式论文中使用GNSSAnalysis分析了各设备可接收的卫星信号、卫星信号功率以及伪距变化趋势。五、GnssLogger v3.1 测量屏幕详解借助GnssLogger v3.1用户可以在测量屏幕上实时查看和分析原始GNSS数据。5.1 顶部卡片GNSS时钟与硬件状态左上角显示GNSS时钟数据对应GnssClock类当前GNSS时间时钟偏差等信息右上角显示GNSS硬件HW中断次数来自GnssClock.getHardwareClockDiscontinuityCount()当此计数器递增时表示GNSS信号的连续观测中断了这有助于判断是否启用了占空比周期性调制一种省电模式占空比调制开启时GNSS信号接收会周期性中断影响高精度定位5.2 中部卡片测量结果汇总“# 有效的测量”测量结果被视为有效需要满足的条件必须在GnssMeasurement.getState()中设置STATE_CODE_LOCK码锁定并且设置STATE_TOW_KNOWN周内时已知或STATE_TOW_DECODED周内时已解码“# 可用的累积差值范围ADR”ADR载波相位被视为可用于定位的条件必须设置ADR_STATE_VALID标志不能设置ADR_STATE_RESET重置或ADR_STATE_CYCLE_SLIP周跳5.3 底部卡片单个卫星测量值底部卡片中每一行代表一个单独的GnssMeasurement一颗卫星的一个信号代码类型列使用RINEX 4.01中定义的代码类型显示GNSS信号的确切类型例如GPS L1信号的代码类型为“C”表示L1 C/A码GPS L5信号将具有“Q”代码类型Rx SV Time (ns)列如果测量结果有效文本显示为绿色状态列显示GnssMeasurement.getState()字段中设置的按位标志的人类可读版本有效时也显示为绿色六、基于论文的GNSS数据质量分析6.1 卫星信号接收分析论文通过GNSSAnalysis分析了不同设备可接收的GNSS系统信号实验设备GPSGLONASSGalileoBeiDou2-28-1Xiaomi 22041216C✓✓✓✓3-08-3HUAWEI DBY-W09✓✓✗✓3-08-4Xiaomi M2007J17C✓✓✓✓关键发现GPS和北斗在卫星信号方面优于其他系统Xiaomi接收器性能优于Huawei接收器在3月8日的测试中Huawei设备未收集到任何Galileo卫星信号6.2 卫星信号功率分析GNSSAnalysis可以分析各卫星的信号功率C/No论文中选取了各GNSS系统中信号功率最高的四颗卫星进行对比分析。信号功率分析的意义C/No越高表示卫星信道质量越好信号功率受观测环境、接收器质量和卫星健康状况影响低信号功率可能导致定位精度下降甚至信号丢失6.3 伪距变化分析伪距是卫星到接收器之间的距离测量值。论文中的伪距图显示保持水平的伪距图表示卫星与接收器之间的距离基本恒定短时断连表示卫星与接收器之间的连接中断大幅波动表示信号质量差或多路径效应严重伪距分析的关键结论在建筑物群内实验信道质量整体较差甚至出现信号消失在室外操场实验信道质量较好华为设备虽然伪距误差波动较小但芯片质量可能导致较大误差七、信号质量评估的核心指标7.1 载波噪声密度C/NoC/NoCarrier-to-Noise Density Ratio是衡量GNSS信号质量的最重要指标C/No值dB-Hz信号质量 40优秀- 开阔环境信号强35 - 40良好- 轻度遮挡30 - 35一般- 中度遮挡 30差- 严重遮挡或室内论文中的发现在建筑物群内C/No值普遍较低甚至出现信号完全消失在室外操场C/No值较高信号质量好不同设备的C/No值存在显著差异7.2 伪距误差伪距误差反映了定位的准确性误差越接近0表示定位越准确伪距误差受电离层延迟、对流层延迟、多路径效应等影响7.3 可用卫星数量可用卫星数量直接影响定位精度和可靠性4颗以上卫星可实现基本的3D定位更多卫星提高定位精度和冗余度多系统融合可显著增加可用卫星数量八、不同环境下的数据质量对比论文通过多组实验对比了不同环境下的数据质量实验环境信道质量C/No伪距误差轨迹清晰度建筑物群内Xiaomi差低波动大严重扭曲室外操场Xiaomi好高波动小清晰字母S形室外操场Huawei中中波动小但误差大较清晰核心结论观测环境是影响数据质量的首要因素接收器硬件的质量差异显著影响定位精度算法优化如卡尔曼滤波可以部分弥补硬件和环境的不足九、常见问题与解决方案问题可能原因解决方案GNSSAnalysis无法运行MATLAB路径未正确设置检查addpath路径是否正确日志文件无法读取文件格式不匹配确认使用的是GNSSLogger v3.0生成的日志C/No值异常低处于室内或建筑物密集区选择开阔环境重新采集不同设备结果差异大GNSS芯片组不同参考官方文档确认设备支持的字段Windows路径错误使用了正斜杠而非反斜杠使用\作为路径分隔符macOS无法打开应用未解除隔离属性执行xattr -d com.apple.quarantineADR始终为0设备不支持载波相位检查设备是否在支持列表中十、下一步预告本文是“GNSS数据采集、处理与可视化全流程”系列的第二篇。在后续文章中我们将第三篇使用MATLAB读取和筛选GNSSLogger的Fix数据按ProviderFLP/GPS/NLP分类第四篇基于速度进行分段彩色轨迹绘制geoshape webmap第五篇对比单系统与多系统融合的定位精度第六篇全流程复盘与工程化建议十一、参考资料Zixia Shang, “Off-line Data Processing Based on GNSSLOGGER, GNSS System Positioning Data Quality and Accuracy Analysis,”Proceedings of SPIE, Vol. 12978, 2024. DOI: 10.1117/12.3019575GNSS 原始测量数据 | Android DevelopersGNSS 原始测量数据 | Sensors and location | Android Developers使用 GnssLogger 分析原始测量数据 | Android DevelopersGNSS Analysis Tools from Google | Android Developers BlogGPS Measurement Tools GitHub仓库论文实验数据https://github.com/ZixiaShang/GNSSLOGGER-Data-8 系列文章索引第一篇Android GNSS数据采集入门GNSSLogger完整配置指南已完成第二篇GNSS数据解析与质量分析从GNSSAnalysis到MATLAB本文第三篇MATLAB读取GNSSLogger数据Fix记录筛选与提取实战第四篇MATLAB地理轨迹可视化基于速度的分段彩色地图绘制第五篇多GNSS系统定位对比单系统与融合系统精度分析第六篇GNSS数据处理全流程复盘从手机到地图的完整链路