首页/文章/ 详情

一起读卫星导航经典书籍《GPS原理与应用》,读书笔记连载(2)

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/博士学历/特邀专家/独家讲师
平台推荐
内容稀缺
11天前浏览140
本文完整的展示一位本科生读本书之后的总结,我对此称赞不已,孺子可教,当然要一如既往的保持这份学习的热情和耐心。不知不觉,学生们看书已经来到了第三周了,第三周的任务是仿真,不知有了AI加持,他们能进展到什么程度?也许大家会问:为何不直接给工程代码给他们学呢?好问题,后面我会详细解释为什么不会也不能这么做!先来看看本科生的读书总结。

《GPS原理与应用》前两章读书汇报

学习范围 第一章至第二章    技术资料更新至2026年9月

用ai优化了一下语言,然后向ai问了一些问题,还有一些问题想周一组会讨论一下。

第一章

GPS不是一个只靠卫星完成的系统,它还需要地面控制和用户接收机配合。卫星通过L1、L2、L5等频点广播测距码和导航电文,接收机利用扩频码的相关性找出信号延迟。GPS时连续运行,而UTC会根据地球自转加入闰秒,这也说明导航中的“时间”本身就是需要严格处理的量。

第二章

到达时间测距,传播时间乘以光速得到距离。但接收机的钟一般没有卫星原子钟那么准,因此测到的是带钟差的伪距。三维坐标加上接收机钟差一共有四个未知量,所以实际定位不能简单理解成“三颗星定位”,在钟差未知时至少需要四颗卫星。

要让这些距离真正落到地球上,还要知道如何描述位置和卫星运动。书中用ECI坐标系讨论轨道,用ECEF和WGS 84描述地面位置;卫星位置由轨道模型和广播星历得到。真实轨道会受到地球非球形引力、日月引力和太阳光压等扰动,因此二体运动只是第一步,后面还要靠校正参数把理想模型拉回真实情况。

位置解算本质上是一组非线性伪距方程。接收机通常从一个近似位置出发,把方程线性化,再用迭代最小二乘不断修正。多于四颗卫星时,多出来的观测量可以减小随机误差;速度则可以利用载波多普勒来估计。电离层、对流层、多径、星历、卫星钟和接收机噪声都会进入最终误差,所以“卫星更多”并不自动等于“结果一定更准”,卫星几何和观测质量同样重要。

二、MATLAB仿真

这次MATLAB学习主要放在仿真操作上,包括把公式写成矩阵、修改参数、运行程序和观察结果。它对我最大的帮助不是记住某条命令,而是把纸面上的定位过程拆成输入、计算和输出:输入卫星与接收机相关参数,运行迭代,再通过数值或曲线判断结果是否收敛、误差怎样变化。

下一步我想先做一个最小的四星伪距定位仿真,再逐个加入钟差、测量噪声、大气延迟和多径。这样可以看清每一种误差把结果推向哪里,也能比较普通最小二乘、加权最小二乘和卡尔曼滤波分别适合什么情况。

三、教材和当前技术的距离

教材讲清了底层原理,但书中的系统状态已经明显落后于现在。书里提到的北斗更多还是早期区域有源定位阶段,而北斗三号已经提供全球服务;GPS也已从早期L1 C/A和P码体系继续升级到GPS III和多民用信号。现在真正实用的方向是多频、多系统、高精度增强和抗干扰,而不是只靠单一星座的基础伪距。

先看星座和覆盖。北斗三号的基本星座由3颗GEO、3颗IGSO和24颗MEO卫星组成。这种混合构型既提供全球服务,也照顾亚太地区的卫星可见性和区域服务。GPS则以MEO星座为主,标称24个工作星位。2025年4月的官方资料列出38颗在轨、31颗健康卫星,说明它已经形成了很成熟的全球运行体系。

再看公 开信号和升级进度。北斗公 开信号包括B1I、B1C、B2a、B2b和B3I,可以利用多频观测改正部分电离层误差,B1C也考虑了与其他GNSS的兼容。GPS在L1 C/A之外逐步加入L2C、L5和L1C。2026年4月,第10颗GPS III卫星完成发射,但这些新信号仍要随着卫星和地面系统逐步形成完整能力。2025年公开计划把L5初始能力放在2026财年、完整能力放在2029财年。

北斗在2026年3月公布在轨卫星50颗,空间信号精度优于2米,全球定位精度优于10米;区域精密单点定位水平优于0.3米、垂直优于0.6米。GPS的2024年公开服务评估满足全球平均水平误差不大于8米、垂直误差不大于13米的指标。两套数据的测试条件和统计口径不同,因此不能直接拿来排高低。

两套系统的侧重点。北斗的特点是混合星座,以及短报文、搜救和区域精密单点定位等服务集成;GPS的优势是长期全球运行形成的成熟生态、完整标准和安全关键应用经验。它们现在共同面对的问题,是怎样用多频多系统接收、RTK或PPP增强、惯性与视觉融合,提高复杂环境中的精度,并在干扰和欺骗下保持可用。

四、还没有解决的问题

1 北斗B1C、GPS L1C等信号可以在相近频段上实现互操作,它们靠什么避免互相干扰,兼容到底发生在频率、信号结构还是接收机算法这一层?

2 二体运动的六个开普勒轨道根数怎样直观地对应卫星轨道,广播星历又怎样一步步把这些参数变成某一时刻的ECEF坐标?

3 从理想二体模型加入地球非球形引力、日月引力和太阳光压后,各类扰动对短时定位误差的影响有多大?

4 码伪距、载波相位和多普勒分别更适合测位置、精密位移和速度,那么载波整周模糊度在实际接收机中是怎样可靠固定的?

5 在MATLAB里怎样把卫星钟、大气、多径和接收机噪声分开建模,并用同一组数据公平比较最小二乘、加权最小二乘和卡尔曼滤波?

五、下一步学习安排

接下来我准备先用MATLAB尝试一下轨道可视化,再加入误差模型,最后用同一段数据分别做GPS、北斗和双系统解算。

资料来源

[1] 北斗系统在轨升级公告 2026年3月   

[2] 新时代的中国北斗白 皮书 2022年11月

[3] 美国太空军 GPS III第10星发射 2026年4月

[4] GPS官方2024年公开服务性能评估    

[5] GPS官方2025年公开接口工作组资料    

[6] GPS官方新民用信号说明

点评:看看豆包如何回答第一个问题。

B1C信号的解释有些错误,请豆包再次解答。

其他问题暂时不用解答,更无需多考虑,毕竟这里基础的信号处理知识太多遥远,一口吃不成一个胖子。学生不知道理论和实际应用之间的距离,不能让学生凭空想象,一步一个脚印的学起来最务实。

我这里就把B1C的相关文章推给大家,已经工程的研发人员自然会看。

大学毕业设计一席谈之三十七 北斗卫星B1C信号的捕获仿真(1)信号生成

重点:多了一个方波子载波!!!

这位本科生还没有学完通信原理,等学完扩频通信之后就可以开始跟着做仿真了。

通信原理与考研  第一章 绪论

先打好基础,BPSK调制解调器仿真可以作为入门。通信中有BPSK和导航中的BPSK有差异,为何会有差异呢?先搞懂这些,然后才能写出仿真程序。

通信原理与MATLAB仿真v4 第四章 BPSK调制解调器(1)

关于轨道参数的影响分析,这和早期的通信知识没有关联,了解即可。早期要学好基础通信知识,然后才能过渡到卫星导航信号处理。

从信号处理层面论,卫星导航和卫星通信哪个难?

我们的目标是完成GPS/北斗接收机的研制。那么大家会问,研制到什么程度,程序才算完成呢?产品升级过程其实没有尽头,但肯定有阶段性目标。我找出了当年写的产品的测试文档,从下面的性能指标就可以看出我们最终要研制的产品具备哪些性能?反推一下就知道产品要具备哪些功能?

6 测试方法与评判依据

6.1 性能指标

6.1.1接收灵敏度

6.1.2开机捕获时间

6.1.3重捕时间

6.1.4伪距测量精度

6.1.5载波相位测量精度

6.1.6多普勒测量精度

6.1.7接收信号功率测量精度

6.1.8接收信号功率范围

6.1.9抗多路径能力

6.1.10干扰抑制性能

6.1.11设备通道时延实时标定不确定度

6.1.12设备通道时延互差

......

6.2功能指标

6.2.1接口要求

6.2.2内外频标工作方式选择

6.2.3本地钟面校时

6.2.4通道时延偏差参数输出

6.2.5接收卫星截止角设定

6.2.6载波相位平滑时间设定

6.2.7接收通道和接收卫星设定

6.2.8输出数据内容(数据格式)设定

6.2.9数据记录间隔、输出间隔设定

6.2.10数据存储和存储时段设定

6.2.11完好性检测门限的设置和参数输出

6.2.12载波相位周跳检测功能

6.2.13卫星导航电文解调和定位解算功能

......

就先展示这么多,其他的以后在学习过程中再逐渐提及。不过可以看看AI对这些指标的理解程度。

一、信号捕获、跟踪、同步类算法(对应 6.1.1~6.1.3,灵敏度、开机捕获、重捕时间)

对应指标:接收灵敏度、开机捕获时间、重捕时间

  1. 卫星信号捕获算法

    并行码相位捕获、FFT 快速捕获、串行滑动相关捕获;弱信号捕获算法(提升接收灵敏度,低载噪比下捕获)。决定冷启动 / 温启动开机捕获时间、信号失锁后的重捕时间。  
  2. 载波与码跟踪环算法

    DLL 码延迟锁定环(伪码跟踪)、PLL 载波锁相环、FLL 频率锁定环(多普勒辅助跟踪); 环参数自适应调整(带宽切换,弱信号 / 高动态场景),是维持信号稳定跟踪的基础。  
点评:现在不使用FLL环路了,因为捕获的频偏精度足够高,能够保证PLL快速入锁,前提不是高动态和低信噪比环境。环路还有带宽切换?是的,这个技术早已普遍使用,怎么切换呢?做的人才能写出经验,以后也一定会讲解。不过要付费阅读。
伪距测量值如何能提高精度,这将是课题组的主要目标之一。提高采样率肯定可以,还有其他办法吗?
载噪比测量算法应该能让AI搞定,以前我则是想了很多招让这个数字接近于真实值。这不是核心算法,相信网上有很多类似的代码,因此AI搞定应该没问题。后面的内容暂时和信号处理没有什么关联,暂时不深入了解。
再来看看两位研究生在第二周的学习进展。
本周主要进行了DSSS系统的仿真,并学习了GPS信号的结构以及其产生的PRN码:C/A码与P码的相关知识。  

首先在进行DSSS仿真之前了解了两种典型的PRN码:M序列以及Gold码。其中M序列由“线性反馈移位寄存器(LFSR)通过将最末端(最左或最右)的数字输出,然后将剩余序列经过反馈函数(对某些位异或)运算后填充回最前端,之后重复上述过程”生成。其序列长度为
(n为级数即寄存器个数),且反馈函数的特征多项式一定是本原多项式(阶为
)。而Gold码则是由两个本质不同的M序列通过模2相加生成的符合序列。  

PRN码生成:  

在matlab仿真过程中我首先学习了M序列以及Gold码的生成。了解到不同的本原多项式可生成本质不同的M序列,这种本质差异有别于通过移位形成的相位不同,其码型结构、互相关特性皆有差异。而为了得到不同本原多项式我还学习了通过primpoly函数便捷地取得对应级数下的不同本原多项式并用以生成不同的M序列,以便于生成标准的Gold码。后面我学习并设置了用来计算并生成M序列的m_sequence函数。在该函数中通过先输出寄存器最左端作为当前序列值,然后将提取到的多项式与剩余寄存器位按照“最高次对应最右端,最低次对应最左端”一一进行相乘求和后模2运算计算出反馈值,最后将反馈值填充到寄存器最右端来模拟生成M序列的循环。本次模拟我设置了LFSR的初始状态为[1 0 0 0 0],通过上述过程得到了该级数(5)下的前两个不同的本原多项式并生成了两个不同的M序列。然后学习到通过模2相加运算将两个M序列生成为对应Gold码。  

BPSK:  

然后我对BPSK的调制与解调操作进行了学习。了解到首先需要定义一个余弦载波用以调制,同时还需要将基带信号(本次通过randi([0, 1], 1, num_bits)随机生成)映射成±1的数字信号形式(通过“乘2减1”)。而且在余弦载波中需要一个与每个采样点一一对应的时刻所形成的从0开始的时间向量。最终通过逐位地将每个比特的基带信号乘以载波来形成调制信号(本次仿真使用“.*”来实现)。而在解调部分学习到了相干解调(接收端需要恢复与发送端同频同相的本地载波)与非相干解调(通过差分方式)两种方式,一般(包括本次仿真)采用了将调制信号与本地载波相乘的相干解调方式。还学习到了在解调之后建议一个低通滤波器以滤除高频成分(本次仿真通过其他方式进行了模拟)。  

扩频与解扩:  

紧接着我对DSSS的扩频与解扩操作进行了学习。明白了扩频是把每一个数据比特用一个高速PRN码进行扩展即将原始信号与扩频信号(扩频码)相乘,同时了解到GPS信号一般是先扩频在进行调制(便于操作)以及在实际仿真扩频之前也需要将原始基带信号映射成±1的数字信号。学习到扩频PRN码长度即扩频因子(每比特 码片数)应该>1才能起到扩频的作用。而在本次仿真中,我将映射后的基带信号每个数据比特都与上文生成的Gold扩频码(映射后)通过克罗内克积来逐个相乘后拼接起来进行扩频实现。这之后学习到解扩便是将扩频信号乘以一个与发送扩频码同步的本地扩频码(本地扩频码长度需要与扩频后的信号长度相同,码片位置一一对应。而仿真中扩频过程是“每个比特都与扩频码相乘后再拼接”,所以需要将单段扩频码重复“总比特数”次来与之对应。)进行去扩频化。之后我学习了通过循环“将去扩后的信号按照原始比特边界进行切片,每段对应1个原始数据比特(despread_signal((i-1)*N+1 : i*N))。然后将这些片进行求和(积分累加,sum函数)”操作来得到完整的扩频处理增益,还原出基带比特判决值(模拟了低通滤波器作用)。最后再对滤后的信号进行判决还原回数字(大于0判为1,否则为0)。

后面是学生写的仿真程序及相关讲解。如果本科阶段没有进行过全面的通信仿真,那么在这一个月里首先要完成BPSK信号及扩频和解扩过程的实现。这是最基础的内容,从总结的文字来看,学生是首次接触相关的概念,仿真基本都是AI,虽然来的快,但理解和消化过程也需要时间。

再看另一位研究生的学习内容,他学的快很多,已经在学习锁相环内容了,毕竟这是相干解调的基础。

本人在公 众号的相关文章有借鉴作用,可以帮助学习加速。

大学毕业设计一席谈v2之十六  锁相环 (1)

如果要学习PSK信号的相干解调,那么建议看下面的文章。

PSK信号使用锁相环进行相干解调,鉴相器采用了松尾环,频偏锁定了,但是解调结果不正确?(1)

大学毕业设计一席谈之二十  BPSK相干解调仿真(1)

能不能让AI写出完整的相干解调的代码呢?以前我试过,ChatGPT没能搞定,不知现在AI到了什么水平,我是让学生借助AI写仿真代码了,不知进展如何?

了解了噪声带宽和环路滤波器的作用,环路也就了解的差不多了,后面把传递函数理解清楚,那么环路基本就掌握了。至于特性如何,还是要通过看书和仿真来深入了解。

最后公布上文中测试文档的部分内容,让大家解解馋。


来源:通信工程师专辑
非线性MATLAB通信UM理论控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-09-30
最近编辑:11天前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 428粉丝 2858文章 624课程 40
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈