NXP i.MX8系列平台开发讲解 - 4.1.2 GNSS 篇(二) - 卫星导航定位原理

专栏文章目录传送门:返回专栏目录![]()
Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】
文章目录
关注+星号公众号,不容错过精彩

作者:HywelStar
Hi, 我是你们的老朋友HywelStar, 根据前一章节介绍(传送门 -> GNSS篇(一) - 定位基础知识),对GNSS 系统的四大全球系统和区域定位系统有了简单介绍,以及一些定位原理进行阐述,本章节将对卫星定位原理进行分析。
本章节你将收获内容:卫星定位原理,卫星定位精度影响,如何提高定位精度,还有距离测量方法。
本章专用名词与概念
星历(Ephemeris):描述卫星运动轨道的信息,是一组对应某一时刻的轨道根数及其变率。根据卫星星历可以计算出任一时刻的卫星位置及其速度,精密的轨道信息是精密定位的基础。在这里我理解的为卫星未来的运动轨迹相关信息的天气预报,可能存在一些误差。
DGPS - 差分全球定位系统
SBAS - 星基增强系统
1. GNSS定位原理
1.1 三边测量(Trilateration)原理
根据上一章节已经了解到采用三遍策略的方法进行计算,可以计算出各个的坐标值。下图采用更加形象的立体图进行展示,

通过Satlite1, Satlite2, Satlite3, 正常来说可以确定交叉点的位置。这里需要声明,关于天上的卫星坐标是已知的,虽然说随着时间变化会有变化,但是都会有已知的数据通过导航电报文发送。
对于测量定位就回到了:测量卫星到接收机的距离;忽略一些其他因素影响,目前只要知道了4颗卫星到接收机的距离就可以确定位置。
1.2 定位模式分类
根据定位模式可以分三类:
-
单点定位(绝对定位):
以地球为质心为参考点,测定接收机天线在协议地球坐标系中的绝对位置,精度低。
-
静态相对定位:
静态相对定位是在已知基准站位置的情况下,通过长时间观测两个接收机之间的相对距离差异来提高定位精度。该方法通过消除共同误差,特别是对流层延迟和电离层延迟的影响,实现高精度的坐标计算。由于采用静态观测,定位结果的精度极高,常用于大地测量、变形监测等高精度场景,定位精度可达到毫米级。
-
差分定位(DGPS):
差分定位是一种基于修正信号的定位方法,通过使用一个或多个已知坐标的参考站(基准站)对卫星信号进行误差校正,来提高流动站(用户端)的定位精度。差分定位系统可以实时传输修正数据,消除部分卫星钟差、轨道误差及大气误差,从而大幅提升定位精度。典型的差分定位系统包括地基增强系统(GBAS)和卫星增强系统(SBAS),其精度通常可达亚米级甚至更高,广泛应用于航空、航海及车辆导航等领域。
2. 卫星定位精度影响分析
卫星定位精度影响从整个定位原理所涉及的源,路径,接受这些部分进行一个分析。
卫星端
-
星历误差:由星历给出的卫星在空间的位置与实际位置之差称为卫星星历误差,这是一种属于系统中的误差。
-
卫星钟差:指的是卫星的时钟误差与卫星标准时钟的误差,虽然GNSS 卫星采用了高精度的原子钟保证时钟的进度,但随着时间长期运行下去还存在频率偏差和老化的问题,所以这也会出现一个误差。
-
相对论效应:卫星钟和接收机钟所处的运动状态(运动速度和重力位)不同而引起卫星钟和接收机钟之间产生相对钟误差的现象。
-
卫星天线相位中心偏差:卫星天线和接收机天线的天线相位中心既不是一个物理点,也不是一个稳定的点,对任一天线,天线相位中心都会随着来自卫星信号方向的变化而变化。天线相位中心的误差由两部分组成,一部分是相对于天线物理参考点的平均相位中心偏差(PCO),另一部分是与高度角和方位角有关的瞬时相位中心变化(PCV)。
传输路径
-
电离层影响:电离层中含有气体分子,由太阳灯天体各种射线辐射,产生电离,形成大量的自由电子和正离子。GNSS 信号经过电离层时候,信号路径可能发生弯曲,传播速度也会发生变化。
-
应对措施:双频观测方法
-
对流层:对流层是靠近地面这一层,大气层密度最高,含有几乎所有水汽以及其他。对流层的折射影响,在天定方向可以产生2~3M。
-
多路劲效应:GPS计算中一个可能的误差源是多径效应。当 GPS 卫星信号从附近的建筑物和山脉等结构反弹时,就会发生多路径。这些反射信号会产生干扰,并在计算接收器位置时引入错误,从而导致 GPS 测量不准确。

GPS多径效应
接收机端
-
接收机钟差:接收机的时钟一般没有卫星端的时钟源好,一般采用石英晶体振荡器,由于这种远没有原子钟好,将会带来一定的误差。
-
天线相位中心位置偏差:(和卫星端类似)
-
接收机本身装置:
-
相对论效应:(和卫星端类似)
表格总结
3. 如何提高定位精度
尽管所有潜在的错误类型都会降低 GNSS 定位的准确性,但还是有一些方法可以提高准确性。根据影响的因子,现实中很多都无法避免,只能去减弱它的影响或者修正。这里以GPS 为例介绍两种校正方法:
-
DGPS(差分全球定位系统)
DGPS 来说比GPS 这种更加准确,它添加了能够纠正GPS信号中的错误,其实就是在已经精确测定坐标的参照物上设置GPS接收机,并和移动台上的GPS接收机同步观测不少于四颗的同一组卫星,求得差分数据进行校正。

固定式 GPS 接收器检测到与您的 GPS 接收器相同的卫星信号,它就可以根据其精确测量的位置向您的接收机发送校正数据。
-
SBAS(星基增强系统)
是一种区域或全球导航卫星系统,可提高来自现有全球导航卫星系统的信号的准确性、完整性和可用性。
增强系统将校正后的错误与GPS信号一起实时广播。事实上,这是基于卫星的增强系统(SBAS)的主要思想,可以提供亚米级的GPS精度。

对于SBAS 各个定位系统存在不一样,目前北斗BDSBAS是对北斗系统的扩展,为我国以及周边地区提供更加精准的定位。WAAS 是美国开发,为GPS 校正定位提供很大帮助。
4. 距离测量
确定接收机与卫星之间的距离,这里简单介绍两种方法:伪距测量和卫星载波相位测量。这是两种主要的距离测量方法,通过原理测量到距离从而进行定位。它们在原理、精度和应用上有显著不同。在实际过程中,这两种往往会结合一起使用。
4.1 伪距测量
原理:伪距测量基于卫星发送的伪随机码(PRN码)。当卫星发送信号时,它会发送一个时间标记,接收机接收到这个信号后,会比较接收到的伪随机码与它自己生成的伪随机码,计算出信号传播所需的时间。通过乘以光速,得出接收机到卫星的距离,这个距离称为“伪距“。
4.2 卫星载波相位测量
原理:卫星载波相位测量是通过测量GNSS信号的载波相位来确定接收机与卫星之间的距离。载波的波长非常短,因此通过测量载波相位的变化,可以获得极高的精度。
通俗来讲,通过载波进行传输信号,载波的波长短,远远小于卫星到接收机的距离,知道中间产生了整数个N周期的差别,这个也叫做周整模糊度,再计算卫星到接收机的距离。另外还需要考虑精度影响,那么可以更加精确计算出距离。对于精度相关的测量对于不同的模型计算方式。
总结
卫星定位原理并不复杂,但是在对于测量的影响度却是非常多,如何去克服这些影响因子是对整个系统的一个挑战,本章节主要对理论知识一个概述理解,对于深度还需要更多时间去思考,查询相关数据,对于这些专业知识,笔者还需继续学习。目前我国北斗导航卫星精度与GPS精度相当,有些数据好于GPS,到达了亚米级别,北斗地基增强系统的实时定位精度可达厘米级别,对于高精度定位将会是趋势。
作为大部分嵌入式开发者来说,对于这些原理和相关测量大概需要了解,当开发者拿到一个定位模块,该如何去使用,如何放到自己设备上运行,测试呢?这将是下一个章节进行分享的内容,关注码思途远,下一期动手操作。
参考:
https://www.keysight.com.cn/cn/zh/solutions/gnss-receiver-sensitivity-testing.html
http://kjdzjs.ijournals.cn/kjdzjs/article/pdf/201804008?st=article_issue
https://malagis.com/principle-and-application-gps-course-summary.html
https://gssc.esa.int/navipedia/index.php/SBAS_Systems
往期推荐
-
GNSS篇(一) - 定位基础知识
-
USB PD 协议介绍与交互过程
-
Type-C 的工作原理
-
认识Type-C 与快充相关知识
相关文章:
NXP i.MX8系列平台开发讲解 - 4.1.2 GNSS 篇(二) - 卫星导航定位原理
专栏文章目录传送门:返回专栏目录 Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】 文章目录 关注星号公众号,不容错过精彩 作者:HywelStar Hi, 我是你们的老朋友HywelStar, 根…...
怎样在 SQL 中对一个包含销售数据的表按照销售额进行降序排序?
在当今数字化商业的浪潮中,数据就是企业的宝贵资产。对于销售数据的有效管理和分析,能够为企业的决策提供关键的支持。而在 SQL 中,对销售数据按照销售额进行降序排序,是一项基础但极其重要的操作。 想象一下,您面前有…...
DIAdem 与 LabVIEW
DIAdem 和 LabVIEW 都是 NI (National Instruments) 公司开发的产品,尽管它们有不同的核心功能和用途,但它们在工程、测试和测量领域中常常一起使用,以形成一个完整的数据采集、分析、处理和报告生成的解决方案。 1. 功能和用途 LabVIEW (Lab…...
UE虚幻引擎可以云渲染吗?应用趋势与挑战了解
虚幻云渲染技术是基于虚幻引擎的云端渲染技术,将虚幻引擎的渲染计算任务通过云计算的方式进行处理和渲染、并将渲染结果传输到终端设备上进行展示。虚幻引擎云渲染技术在近年来得到了迅猛的发展,并在各个领域得到了广泛的应用,包括游戏、电影…...
实战分享:DefenderUI在企业环境中的部署与应用
前言 想象一下,你的电脑就像一座坚固的城堡,但城门却时常被一些不速之客窥探甚至企图入侵;Defender,作为城堡自带的守护者,实力自然不容小觑;但你是否觉得它有时候太过低调,有些隐藏技能还没完…...
中英双语介绍金融经济中的鹰派 (Hawkish)和鸽派 (Dovish)
中文版 在金融和经济政策中,“鹰派”和“鸽派”是两种对货币政策和经济管理有不同立场的群体。 鹰派 (Hawkish) 鹰派倾向于担心通货膨胀的风险,通常支持较高的利率和更紧的货币政策,以防止经济过热和控制物价上涨。具体特征包括࿱…...
Android 开发中常用的布局类型及其选择指南
在 Android 开发过程中,选择正确的布局类型对于构建高效、美观且响应式的用户界面至关重要。本文将介绍 Android 中几种最常用的布局类型,并对比它们的特点和适用场景,帮助开发者们做出明智的选择。 1. LinearLayout - 线性布局 特点: LinearLayout 是最基本的布局类型之一…...
短视频SDK解决方案,降低行业开发门槛
美摄科技匠心打造了一款集前沿技术与极致体验于一体的短视频SDK解决方案,它不仅重新定义了短视频创作的边界,更以行业标杆级的短视频特效,让每一帧画面都闪耀不凡光芒。 【技术赋能,创意无限】 美摄科技的短视频SDK,…...
【C++】String常见函数用法
一、string类对象的常见构造 我们可采取以下的方式进行构造,以下是常用的接口: //生成空字符串 string; //拷贝构造函数 string(const string& str); //用C-string来构造string类对象 string(const char* s); //string类对象中包含n个字符c strin…...
LeetCode49.字母异位词分组
题目大意 给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。 字母异位词是由重新排列源单词的所有字母得到的一个新单词。 思路分析 示例 1: 输入: strs ["eat", "tea", "tan", "ate", &…...
Nginx日志按天分割
需求、日志按照天的单位进行分割存储。 如果你直接百度,可能会搜到很多教你用各种脚本或是三方插件来按天分割的,这边我用nginx服务本身来分割日志。 方法一 通过使用 $time_iso8601 变量和 map 指令,实现了日志文件按天分割的功能。以下是…...
文本摘要简介
文本摘要是从一段长文本中提取出最重要的信息,并生成一个简短而有意义的摘要。这个过程可以分为两种主要方法: 抽取式摘要(Extractive Summarization):从原文中直接提取出关键句子或段落,组成摘要…...
3.MySQL面试题之Redis 和 Mysql 如何保证数据一致性?
Redis 和 MySQL 数据一致性是分布式系统中的一个常见挑战。保证数据一致性通常涉及几种策略,我会详细解释这些策略并提供相应的代码示例。 先更新数据库,再更新缓存 这种方法先更新 MySQL,然后更新或删除 Redis 缓存。 Transactional publ…...
浅谈TCP协议、UDP协议
一、介绍说明 TCP(传输控制协议) 面向连接:TCP在数据传输之前必须建立连接。这通过一个称为三次握手的过程来完成,确保连接的两端都准备好进行数据传输。 可靠性:TCP提供可靠的数据传输,确保数据包正确无…...
SQL业务题: 从不订购的客户
1️⃣题目 Customers 表: ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ---------------------- 在 SQL 中,id 是该表的主键。 该表的每一行都表示客户的 ID 和名…...
怎么直接在PDF上修改内容?随心编辑PDF内容
PDF(Portable Document Format)作为一种专用于阅读而非编辑的文档格式,其设计的核心目的是保持文档格式的一致性,确保文档在不同平台和设备上都能以相同的布局和格式呈现。然而,在实际工作和生活中,我们经常需要对PDF文档进行编辑…...
聊天室项目测试报告
项目介绍 本项目是一个基于Spring Boot框架开发的聊天室应用。一个实时的文本消息交流平台,允许多个用户同时在线聊天。系统采用了Spring Boot作为后端框架,集成了WebSocket技术以实现消息的实时推送与接收提供一个简单、易用且功能完备的在线聊天环境。…...
语音识别(实时语音转录)——funasr的详细部署和使用教程(包括实时语音转录)
阿里达摩院开源大型端到端语音识别工具包FunASR: FunASR提供了在大规模工业语料库上训练的模型,并能够将其部署到应用程序中。工具包的核心模型是Paraformer,这是一个非自回归的端到端语音识别模型,经过手动注释的普通话语音识别…...
【网络编程】TCP机械臂测试
通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂 注意:关闭计算机的杀毒软件,电脑管家,防火墙 1)基于TCP服务器…...
笔记:在WPF中如何注册控件级全局事件和应用程序级全局事件
一、目的:在WPF中如何注册控件级全局事件和应用程序级全局事件 二、实现 应用程序级全局事件 //注册应用程序级全局事件 EventManager.RegisterClassHandler(typeof(Button), Button.ClickEvent, new RoutedEventHandler(ic_event_Click)); 如上代码既会注册全局…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
