当前位置: 首页 > news >正文

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) 鹰派倾向于担心通货膨胀的风险,通常支持较高的利率和更紧的货币政策,以防止经济过热和控制物价上涨。具体特征包括&#xff1…...

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)); 如上代码既会注册全局…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...