2025测绘程序设计国赛二轮实战 | GNSS多星多频数据预处理--全新理解

张开发
2026/4/3 20:08:35 15 分钟阅读
2025测绘程序设计国赛二轮实战 | GNSS多星多频数据预处理--全新理解
前言没错二轮第二篇就是GNSS。本篇是小编从19号早上开始一直到现在一点一点编辑算法、调试、深入感受每一步的实现写了两三版对这道题的理解向纵深发展了几步之后确定能给大家带来一些帮助之后决定发出的。删删改改想给出一版既保证算法严密正确又尽可能简化代码以适配比赛的实现方案。这一篇不会是小编关于GNSS的最后一篇但是确实是继一轮之后更简化更优雅的一篇做出来与诸公分享我们一起深度求索。一、赛情前线一六大选题二预赛省赛已考图幅泰森点云去年随机一致性考过线三本题任务拆分单双三频相位周跳探测、伪距多路径误差估算、相位平滑伪距大致流程二、数据算法原理一数据本次采用单一星座纯粹三频的数据简化上一版的星座数量这一次重点再深度剖析算法原理唯理解至少理解每一步在干嘛能得到什么结果有什么用才能以不变应万变。从左到右星座、历元、卫星编号伪距观测C1C C2W C2X C5X第一个C伪距标识125频率后面的是码不同编码信息不同抗干扰能力也不同不过我们不用深究知道前两个是什么意思就行了相位观测L1C L2W L2X L5X第一个L相位标识125频率后面的也是码不用深究。数据处理注意注意周跳探测的各种方法务必首先按卫星编号分组然后按历元时间排序后再开始处理。注意处理无效值9999999999.999就是无效值处理的时候直接double.NaN。注意单位换算周 距离/波长。在进行多路径效应探测时注意首先将原始数据中以周为单位的相位数据转换为以米为单位和伪距单位保持一致计算结果才有意义。注意L2W,L2X虽然都是2频道接收到的数据但是因为编码不同两者实际上收到的各种影响也是不同的处理的时候不能因为L2W检测到周跳就默认L2X也有多路径等也同理。但是一般来讲比赛的时候不会出现这种情况一般一个频道就给一组就够了考察的是我们理解算法转化算法的能力不会在数据处理上设置太多麻烦二周跳探测与修复//参考文献//贾茜子高玲刘牧天GNSS周跳探测综述[J/OL]无线电工程.//邹璇,李宗楠,陈亮,等.一种历元间差分单站单频周跳探测与修复方法[J].武汉大学学报(信息科学版), 2017, 42(10):1406-1410.//王清旺.GNSS载波相位周跳探测与修复方法研究.//······这一次小编在学习和查资料的过程中真的认知再度被刷新。过去小编更多的是认为单双三各自的周跳检测手段是相互独立的虽然小编知道双频当然可以对单一频率进行单频差分探测三频也当然可以进行差分和MW组合探测但是小编的理解一直是我们用一种手段就可以判断true/false否则这道题没法玩儿了。但是小编在昨天读相关资料的时候真的猛地意识到我想的太简单了。这一部分小编就要好好跟大家讲讲单频、双频、三频的探测手段当然不唯一小编只挑各自最常用的一种各自的作用、局限、以及它们之间的相爱相杀。周跳是啥在卫星定位过程中接收机对 GNSS 卫星的载波信号进行连续追踪观测并记录载波相位的整周数值但由于积分器等硬件问题或受外界环境影响造成接收机中载波锁相环路失锁从而导致整周计数出现失误这一现象称为周跳。我们要做的周跳探测就是找到这些异常点。我们要做的周跳修复就是把异常点拉回来简单讲就是如此。高次差分法单频 / 组合均适用一次差分相邻历元相位差物理意义相邻两个历元的相位变化量正常情况下应平滑受噪声和相位渐变影响周跳会导致突变。二次差分一次差分的差值放大突变物理意义相位变化率的变化周跳会导致此处出现非零阶跃阶跃值约等于周跳大小所以高次差分法可以得到周跳值拿来修复相位。MW 组合法Melbourne-Wübbena适用于任意双频GF 组合法Geometry-Free适用于任意双频三种方法的协同单频检测以高次差分法为例作用针对 L1、L2、L5 每个频段单独检测通过相邻历元的相位差分一次、二次差分定位 “哪个频段可能存在周跳”并初步判断周跳大小。优势直接定位具体频段对单一频段的周跳如仅 L2 跳变敏感结果直观。局限受单频段噪声影响较大小周跳如 1-2 周可能被噪声掩盖无法区分 “真周跳” 和 “信号短时失锁”。GF原理通过三频相位的线性组合如 GFL1−L2、L1−L5、L2−L5消除几何距离、钟差等公共误差仅保留电离层延迟和周跳信息。由于电离层延迟随时间缓慢变化正常情况下 GF 组合应平滑变化周跳会导致其出现阶跃突变。作用放大小周跳单频差分可能漏检的 1-2 周跳变在 GF 组合中会被凸显利用多频组合如 L1-L2、L1-L5交叉验证判断是否为多频段同步周跳如 L1 和 L2 同时跳变。优势对小周跳敏感适合三频冗余信息的利用能反映多频段周跳的关联性。局限受电离层突变如电离层暴影响时可能出现 “伪周跳” 信号。MW原理结合伪距和相位的组合如 MW(P1−P2)/2−(L1L2)/2三频可扩展为多组 MW 组合消除整周模糊度和大部分误差正常情况下应接近常数仅含噪声。周跳会导致 MW 值出现整数倍突变突变值与周跳大小相关。作用作为 “全局校验”验证是否存在真实周跳而非噪声或信号干扰对多频段周跳的同步性敏感如 L1 和 L5 同时跳变MW 组合会有明显突变。优势抗噪声能力强能有效区分周跳和随机噪声结果稳定适合作为 “最终确认” 依据。局限对单频段小周跳如仅 L5 跳 1 周的敏感性较低可能漏检。协同应用单频检测先 “定位嫌疑频段”先用高次差分对 L1、L2、L5 分别检测标记出差分结果超阈值的频段如 L2 差分异常初步锁定 “可能有问题的频段”。GF 组合再 “放大细节验证关联性”对标记的嫌疑频段用 GF 组合如 L1-L2、L2-L5进一步检测若 GF 组合L1-L2同步出现突变且突变大小与单频检测的 L2 周跳一致则确认 L2 周跳若 GF 组合L2-L5也有突变说明 L2 和 L5 可能同时跳变多频段周跳需进一步排查。MW 组合最终 “确认真实性”用 MW 组合如基于 L1/L2、L1/L5 的多组组合验证若单频和 GF 组合均提示周跳且 MW 组合同步出现突变则周跳 “真实存在”若单频检测异常但 MW 组合无突变则可能是噪声或伪周跳如电离层干扰需排除。全新理解单频卫星观测数据因为只有一个频道所以他就只能用高次差分来探测。但是不是说高次差分只能用来探测单频。MW组合法要用到两个频道但是也不是说他就只能用来探测双频。GF组合法也是通过三组双频组合来判定但是也不是说他就只能用来探测三频。限制方法应用的只是它们的数据维度适配性不是都必须三种结合比赛的时候大概也不会让我们处理的这么深入但是我觉得我必须在这里跟大家阐释清楚必须要尊重知识也避免误导大家。三多路径效应检测//参考文献//布金伟李小龙左小清等 2018 Beidou / GPS / GLONASS 多系统卫星定 位 数 据 质量 比 较 分析 地 球 物理学进展33 ( 1 ) : 0001-0009doi: 106038 / pg2018BB0495//尹志豪王广兴胡志刚等。北斗三号观测数据质量分析 [J]. 测绘科学2020, 45 (06): 37-45. DOI:10.16251/j.cnki.1009-2307.2020.06.005//······多路径效应这块儿,小编用的就是最常见的MP组合法翻了很多文献对多路径效应的探讨还是比较规矩和相近的。什么是多路径效应如果测站周围的反射物所反射的卫星信号( 反射波) 进入接收机天线将和直接来自卫星的信号( 直接波) 产生干涉从而使观测值偏离真值观测值与真值的误差即为多路径误差这种由于多路径的信号传播所引起的干涉时延效应称为多路径效应 在 GNSS 数据质量分析中多路径效应是一种重要的误差源将严重影响观测数据的精度。常见的方法基本上都侧重于通过让相位与伪距结合探测出受到多路径干扰的观测值。因为多路径效应的成因和环境和设备和各种因素都存在着一定关系要想很精确探测并进行一些修复还需要我们继续努力此处就用经过简化的MP组合法来近似的求多路径效应引起的误差。MP组合法公式求得的mp,就是多路径粗差。四相位平滑伪距//常见的有Hatch滤波、卡尔曼滤波滑动窗口平均等此处基于卡尔曼滤波法进行介绍。相位平滑伪距在干什么首先我们要知道伪距是一个连续变化的观测数据。所谓相位平滑伪距就是用相位的精确来让不那么精确的伪距数据的变化更连续更平缓更精确。卡尔曼滤波卡尔曼滤波Kalman Filter是一种在不确定环境下通过融合预测与观测数据实现对动态系统状态最优估计的算法。它的核心思想可以用 “预测 - 更新” 循环概括特别适合处理带噪声的动态数据比如 GNSS 伪距 / 相位、惯性导航、传感器融合等场景。实现流程//文献里真的超严谨但这也必然让它超繁琐哈哈这里给的是丢给AI精简之后的。五总体思路设计窗体建立数据模型读入数据基操进行周跳探测--二次差分将有周跳的数据修复。进行多路径效应检测--用修正后相位无周跳就用原始观测值进行相位平滑伪距输出结果报告三、C#实现//这里给出各模块算法的核心实现。周跳探测多路径效应探测相位平滑伪距四、唠唠叨叨行文至此落笔而终。这一次应该也就是是小编最后一次在GNSS上做深度剖析了这一版就是GNSS的最终版。花了很多天走了很多路做了很多尝试但是还是感觉做的还不够还是感觉有很多可以再优化的地方还是感觉有很多没有注意到的bug。但是时间已经不容小编再用龟速用研究者的态度做深度剖析了。小编过去几天也在想看那么多文献做那么多尝试是否真的必要。一边抑或一边怀疑一边继续研究哈哈。小编也想过孤注一掷选择这道题若到时候不是岂不满盘皆输是我不否认。今天已经25号了一天一天过的时候不觉得什么但站在终点回看就会发现啊行百里者已经到九十了。最近小编其实就感觉有一些麻痹了睁眼代码闭眼代码的日子确实已经快要过够了哈哈。难熬是真的但是值得也是真的。之后六天应该就不再重构过去的代码也不再翻新了小编给自己的任务就是保持手感每天和代码面基。日子一天一天走着回顾过去知道在给自己一次机会也做不到更好了这就够了。加油祝大家都顺顺利利

更多文章