GNSS全球导航定位系统_gagsv-程序员宅基地

技术标签: 硬件工程  智能手机  人工智能  

1 GNSS概述

        GNSS(Global Navigation Satellite System),是全球导航卫星系统的英文缩写,泛指所有的卫星导航系统,包括全球系统、区域系统的和增强系统。如美国GPS、俄罗斯Glonass、欧盟Galileo、中国北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等,还涵盖在建和以后要建设的其他卫星导航系统。GNSS系统是个多系统、多层面、多模式的复杂组合系统,如下图所示。

        GNSS全球导航卫星系统能在地球表面或近地空间的任何地点,为用户提供全天候的三维坐标、速度以及时间信息。由空间星座部分、地面控制部分和用户设备部分组成。 

 2 GNSS定位原理

        

        地球表面的任何一个位置,都有它的三维坐标,也就是经度、纬度和高程。它头顶上的 GNSS 卫星,也有自己的三维坐标。我们把整个空间看成一个坐标系,可以画一个立方体。立方体的两个对角,分别是用户和卫星。卫星坐标(x',y',z')由地面控制部分测算,为已知量;用户坐标(x,y,z)为需要测算的未知量。根据几何知识可以计算卫星和用户之间的距离△L如下:

        同时,卫星可以给用户终端发信号,信号的传输速度几乎等同于光速c。而卫星上面有精度极高的原子钟,所以知道自己的时间是t'。假设用户终端的时间是t,那么,卫星和用户之间的距离△L,又可以通过下面这个公式算出:

        两个公式合并后,得如下公式: 

        最后这个公式里就有4个未知数:x,y,z,t。

        当然这个公式是解不出来的,大家可以想想怎样才能解出这4个未知数呢?

        方法很简单,就是再列三个公式!

        也就是说,再找3个卫星的坐标值,组成4个四元方程,就OK了。

        讲到这里,应该大家也就明白了为什么说GPS定位成功至少需要4颗星可用!     

3 GNSS频段及双频GNSS

        下图为全球GNSS频段信息表

        简单了解一下就可以了,但需要知道普通的智能手机搭载的GPS都是单频GPS接收芯片,这里的单频一定是L1频段。

        近几年也有很多双频GPS手机上市,双频GPS就是搭载了L1+L5两个频段的接收芯片。

        那么,单频GPS和双频GPS到底有何区别?L5频段既然比L1更牛逼那为何不直接取代L1?请往下看!……

        由前面GNSS定位伪码测算公式可以看出,GPS定位的关键是要获得用户和卫星之间的距离。而要计算距离,必须知道信号的传播时间,这一数据由用户(假设为手机)计算得出,关键就在于GPS信号发射后到达手机需要的时间是多少。而影响GPS信号到达手机的时间,最主要的一个因素就是该信号的所在频段带宽。

  •         L1频段带宽远小于L5频段
    •         在目前市面上的手机中,绝大部分都使用的是L1频段1575.42MHz的GPS信号,它的带宽较小,只有1MHz。也就是一个最小周期的传输时间是1μS,乘以光速3*10e8 M/S就是300米。这就意味着,只使用L1频段进行定位,理论误差会达到半径300米的一个范围。必须结合多颗卫星的数据同时比对,才能减少误差到一个可以接受的范围。这也是为什么手机的“搜星”能力如此重要的原因。
      •         而L5即1176.45MHz频段GPS信号的带宽高达10MHz,是L1频段的10倍,最小周期传输时间为0.1μs,单颗卫星定位测距误差也随之降至30米。

        L1频段信号易受到城市建筑干扰

        手机除了从GPS卫星发射后经直线传播的信号外,还会接收到一个或多个经过周围地形反射后的信号。这样,手机接收的多个信号会叠加起来,导致距离最短的直射信号变得不明显,连续使用中的手机无法判断出哪条信号才是最接近真实定位的信号,从而降低了卫星和手机之间距离计算的准确度,严重时甚至会导致卫星信号“失踪”。

        L5频段GPS信号不易受反射干扰,在高楼大厦等多径效应影响严重的场景中,L5频段信号波峰差异很明显,直射和反射很难叠加,从而提高定位精度。

         L1频段GPS信号易受电离层影响

        在空旷地带,定位不准的主要原因则是大气中电离层导致的GPS信号折射,从而增加传输时间。大气中电离层在太阳光的照射下充满了离子和电子,对GPS信号这种电磁波的影响严重。研究发现,电离层造成的折射效应与信号带宽的平方成反比。也就是说,带宽越低,电离层造成的影响越大。

        而L5频段GPS信号受到电离层的影响是L1频段的百分之一。其次,由于电离层对L1、L5两个频段信号的影响不同,双频GPS设备可以不依赖于其他因素,通过对比两路信号的延迟,用计算来消除电离层带来的误差,将GPS定位精度进一步提高。

        如下是小米8发布会宣传其双频GPS时,与其他单频GPS手机测试对比图 

        那么L5频段可以取代L1频段吗?目前来说肯定不能。

        虽然L1频段有着众多劣势,但是它的低码率相较于L5频段要更容易被捕获,也就是说用L1频段来定位的时间要更短。如果只是使用L5频段的话,可能出现满天卫星但需要很长的时间才能定位的问题。

        所以,用L1频率捕获信号节省时间,用L5频率来提高信号精度,才能获得更好的效果。

 4 GNSS重要指标

        衡量GNSS性能的指标有很多因素,比如搜星数量、接收灵敏度、信噪比、定位时间、定位精度、时间精度、时钟偏移量及功耗等。

        概括起来最重要的有三个指标:速度、精度和灵敏度。

        定位时间TTFF 

        GNSS定位时间(TTFF)分为冷启动、温启动及热启动定位时间。

        冷启动(Cold Start):GPS接收机清空了所有历史信息并重启,然后它尝试定位并锁定卫星,由于没有先前信息,这将花去很长的时间。GPS接收机采用类似于轮询的方法,从所有的卫星中锁定信号,这将比事前知道该搜索哪些卫星要慢不少。这一类重新获取锁定要花最长的时间,一般冷启动TTFF在30S~60S。

        冷启动条件:①初次使用时; ②电池耗尽导致星历信息丢失时;③关机状态下将接收机移动1000公里以上距离。

        暖启动(Warm Start):GPS接收机保存有最后计算的卫星的位置、星历和UTC时间,但保存的内容不是当前可视卫星的数据。GPS接收机重启以后尝试去获得当前卫星和信号并计算其新位置。接收机基于其最后的位置和历书得以大概知道当前天空中的可视卫星。

        暖启动条件:距离上次定位的时间超过两个小时的启动。

        热启动(Hot Start):GPS接收机保存有其最后计算的可视卫星的位置、星历和UTC时间,在重启以后,GPS接收机以保存的上述内容为基础获取和计算当前卫星的最新位置,一般热启动TTFF小于5S。

        热启动条件:距离上次定位的时间小于两个小时的启动。

        定位精度

        GNSS接收机输出的经纬度信息与当前实际地点经纬度信息的接近程度,主要测试GNSS接收机的时钟精度、抗干扰能力及接收机算法精度。测试方法一般如下:

        第一种是将接收机放置到一个固定且已知经纬度信息的地点,接收机定位成功后返回的定位信息与之对比计算,即得出单点静态定位误差。这个方法一般要GNSS芯片厂商支持,因为他们一般会有这样一个已知经纬度信息的参考地点。

        第二种就是用GPS信号发生器模拟经纬度信息,Cable先连接GPS天线或者用天线耦合方式测试手机定位成功且稳定后的经纬度,抓出NEMA Log的定位信息与之对比。

接收灵敏度

        GNSS接收灵敏度是指GNSS接收机能够追踪到一个卫星的输入最小信号强度。

        GNSS定位灵敏度是指GNSS接收机在工作时间内完成位置定位时天线端的最低信号强度。

        手机GPS定位灵敏度测试一般是通过GPS信号发生器连接GPS天线,GPS信号发生器模拟卫星,逐步调节降低信号发生器的输入信号强度,直到手机刚好能定位成功的最低输入功率。

        接收灵敏度则是处于能接收与接收不到信号的最低输入功率。

        对于一般设备或者GPS测试软件所能看到的GPS信号强度是以信噪比CN0来衡量的,也就是GPS接收机通过NMEA LOG的相关语句输出的信噪比的值,一般在35~45;数值越大表示信号强度越好。

5 NMEA解析

        NEMA,是美国国家海洋电子协会为统一海洋导航规范而制定的标准,该格式标准已经成为国际通用的一种格式,是GNSS接收机应当遵守的标准协议,也是目前GNSS接收机上使用最广泛的协议,大多数常见的接收机、数据处理软件、导航软件都遵守或者至少兼容这个协议。它其实就是GNSS接收机从底层输出的包含所有底层数据信息的一种报文。如右图,是在我自己手机上使用GNSS测试软件抓取到的NEMA LOG。

        下面就逐条解析一下NEMA语句的含义!

$GPGGA:定位信息

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>

<1> UTC时间,hhmmss(时分秒)格式

<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)

<3> 纬度半球N(北半球)或S(南半球)

<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)

<5> 经度半球E(东经)或W(西经)

<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算

<7> 正在使用解算位置的卫星数量

<8> HDOP水平精度因子(0.5~99.9)

<9> 海拔高度(-9999.9~99999.9)

<10> 地球椭球面相对大地水准面的高度

<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)

 

$GNGSAGNSS可用卫星信息(包含GPSBDGLONASSGALILEO等所有星座系统 

$GNGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*<18><CR><LF>

<1> 模式2:M = 手动, A = 自动

<2> 模式1:定位型式1 = 未定位,2 = 二维定位,3 = 三维定位

<3> 第1信道正在使用的卫星PRN码编号

<4> 第2信道正在使用的卫星PRN码编号

<5> 第3信道正在使用的卫星PRN码编号

<6> 第4信道正在使用的卫星PRN码编号

<7> 第5信道正在使用的卫星PRN码编号

<8> 第6信道正在使用的卫星PRN码编号

<9> 第7信道正在使用的卫星PRN码编号

<10> 第8信道正在使用的卫星PRN码编号

<11> 第9信道正在使用的卫星PRN码编号

<12> 第10信道正在使用的卫星PRN码编号

<13> 第11信道正在使用的卫星PRN码编号

<14> 第12信道正在使用的卫星PRN码编号

<15> PDOP综合位置精度因子(0.5 - 99.9)

<16> HDOP水平精度因子(0.5 - 99.9)

<17> VDOP垂直精度因子(0.5 - 99.9)

<18> 校验值 

$**GSA:各星座系统可用卫星信息

GPGSA为GPS可用卫星信息、GLGSAGLONASS可用卫星信息

BDGSA为BD可用卫星信息、GAGSAGALILEO可用卫星信息

QZGSA为QZSS可用卫星信息、PJGSAIRNSS可用卫星信息

$**GSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*<18><CR><LF>

<1> 模式2M = 手动, A = 自动

<2> 模式1:定位型式1 = 未定位,2 = 二维定位,3 = 三维定位

<3> 1信道正在使用的卫星PRN码编号

<4> 2信道正在使用的卫星PRN码编号

<5> 3信道正在使用的卫星PRN码编号

<6> 4信道正在使用的卫星PRN码编号

<7> 5信道正在使用的卫星PRN码编号

<8> 6信道正在使用的卫星PRN码编号

<9> 7信道正在使用的卫星PRN码编号

<10> 8信道正在使用的卫星PRN码编号

<11> 9信道正在使用的卫星PRN码编号

<12> 10信道正在使用的卫星PRN码编号

<13> 11信道正在使用的卫星PRN码编号

<14> 12信道正在使用的卫星PRN码编号

<15> PDOP综合位置精度因子(0.5 - 99.9

<16> HDOP水平精度因子(0.5 - 99.9

<17> VDOP垂直精度因子(0.5 - 99.9

<18> 校验值 

 

$**GSV各星座系统可见卫星信息

GPGSV为GPS可见卫星信息、GLGSVGLONASS可见卫星信息

BDGSV为BD可见卫星信息、GAGSVGALILEO可见卫星信息

QZGSV为QZSS可见卫星信息、PJGSVIRNSS可见卫星信息

$**GSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*<8><CR><LF>

<1> 总的GSV语句电文数

<2> 当前GSV语句号(第几条GSV语句)

<4> 卫星编号,01<3> 可视卫星总数,0012

<5> 卫星仰角,00至90度

<6> 卫星方位角,000至359度实际值

<7> 信噪比(C/No),00至99dB;无表未接收到讯号

<8> 校验

注:每条**GSV语句最多包括四颗卫星的信息,其他卫星的信息将在下一条$**GSV 语句中输出

$GPRMC推荐定位信息

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*<13><CR><LF>

<1> UTC时间,hhmmss(时分秒)格式

<2> 定位状态,A=有效定位,V=无效定位

<3> 纬度ddmm.mmmm(度分)格式

<4> 纬度半球N(北半球)或S(南半球)

<5> 经度dddmm.mmmm(度分)格式

<6> 经度半球E(东经)或W(西经)

<7> 地面速率(000.0~999.9节)

<8> 地面航向(000.0~359.9度)

<9> UTC日期,ddmmyy(日月年)格式

<10> 磁偏角(000.0~180.0度,前导位数不足则补0)

<11> 磁偏角方向,E(东)或W(西)

<12> 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

<13> 校验和

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40693786/article/details/134315254

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf

推荐文章

热门文章

相关标签