我们如何收到卫星信号?(导航电文,载波与测距码)

卫星信号

在介绍所有卫星信号之前,首先要明确一些概念:

所有的卫星信号,都是一段电磁波,用户接收的,也是一段电磁波。

但是我们认知中的电磁波,就是一段波,就像我们打出去的交一样,怎么通过这一段波来转换成有用的数据呢?

首先,卫星发射信号的是计算机,接收机也是计算机,卫星发出信号,我们接收信号,接收的都是一段二进制01码,然后把01码进行转换。因为卫星不可能直接发出一串文字,而计算机就算接收到了这串文字,也无法看懂,所以计算机之间的交互很默契地都采用二进制码来交互。

因此,我们接收信号,方法就是将电磁波转换为二进制序列。但是怎么转换?转换方法就多了,我们可以:

  • 电磁波高波峰表示1,低波峰表示0
  • 电磁波正波表示1,负波表示0,曼波out

具体的实现方案,我们就不需要深究,也不是我们需要管的事,我们只用知道:卫星发出和我们接收的信号都是电磁波,最终转换为的形式为二进制序列。

而因为电磁波可以转化成二进制码,我们可以重新用码的特性去定义卫星信号的一些特性:

  1. 码元:二进制序列中每一个二进制数称为一个码元
  2. 码元宽度:每个码元持续时间或其对应的距离成为码元宽度
  3. 码速率:码发生器每秒输出的码元个数 

卫星信号分为三种:载波,测距码与导航电文

测距码

测距码是用来测距的一串码序列,最终他的形式也是可以转换成01的。测距码最大的特性,也就是他定位的原理,便是他采用的是一段伪随机码。什么是伪随机?

就如同我们在编程语言中涉及到的获得伪随机数与设定种子一样:

伪随机数列是一个数组:


对每一个数组中的元素,都有一个固定的算法:

比如:第一空的算法为f(x)=x^2+5x

我们在给定种子为x=2的时候,第一个空的数据就是f(2)=14

同理,一直填满所有的空

而当我们想取随机数的时候,就按顺序依次从这个数组里取,

比如我们在玩掷硬币,假设为奇数是正面,偶数是反面

那么第一次掷硬币,我们取第一个元素,14,为反面

第二次掷硬币,我们取第二个元素,g(2)

过了很长时间,我们再掷第三次硬币,只要我们不重新设置种子,还是从上一次的位置开始往下取,即取第三个元素h(2)

也就是说,只要种子确定了,我们就能把这个序列给推算出来。但是,因为随机数组对于不同种子是完全不同的,所以我们可以近似认为他是随机的,也便是可以预测的随机:伪随机。而用这个特性,我们可以得到两个结论:

  1. 知道卫星产生随机序列的种子,我们可以在接收机端产生一段一模一样的序列
  2. 因为序列是随机产生的,对不同种子,序列完全不同,而且就算一个相同的序列,如果没有对齐(即第一个数组以a[0]为起点,第二个数组以a[2]为起点),所以序列的自相关性极强
    (自相关性是指,两个序列的重合程度)

导航电文

导航电文,导航电文是一串比较特殊的序列,他又叫做数据码,作用是传递一些与定位有关的数据和卫星状态。导航电文搭载的信息就比较格式化,

  • 导航电文的传输速率为为50b/s,也就是每秒传输50个二进制码
  • 一个完整的导航电文信息为1500b,为一个主帧,所以发送完一个主帧需要1500/50=30秒
  • 一个主帧分为5个子帧,每个子帧含1500/5=300b
  • 一个子帧有10个字,每个字30b

也就是,一个导航电文被分为了很多很多小块,系统地来分便是5个子帧,50个字,每个字代表着一个信息。我们知道,一个int类型为4子节32个bit,而一个字30个bit,也就是一个字刚好能表示一个数,这也是导航电文的分块——分成了一块又一块的数字。

但是,导航电文的数据非常多,用50个字没有办法全部表示完。怎么办?所以我们不得不用两串完整的导航电文去表示一个定位数据,也就是用100个字来表示,还不够就150个,200个。

而在实际实现的过程中,采用的是25串完整的导航电文,去表示一个导航数据,其中:

  • 对一串完整的导航电文,前三个子帧播发卫星的基本数据,如时间等。这些是不会变的,25串导航电文一直重复播发
  • 而后两个子帧,需要播发卫星的状态和定位数据,在25串导航电文里,轮流去表示这些数据。

也就是,前三个子帧是不会变的,一直重复播发,而后两个子帧则在25串电文,一共2*25=50个子帧中,将数据播发完整。

导航电文的更新频率是2个小时,也就是在两个小时之内一直会重复播发这25个主帧。

假设在12:00的时候更新,那么一直到14:00,导航电文会重复播发25个子帧,这25个子帧表示的状态都是12:00时刻时,卫星的运动状态和轨道参数。

载波

载波,翻译成人话,就是搭载信号的波,再通俗地说,就是信号波的交通工具。信号从外太空发射过来,会经历大气层,而在传输的过程中会有个特点:

  1. 如果波的频率过高,则电离层的延迟很严重,导致电离层误差过高
  2. 如果波的频率过低,则会被大气层严重吸收,导致信号的强度大大降低

所以采用适中频率的波——L波段无线电信号最合适。载波就是一个交通工具,如果直接用导航电文和测距码,那么要么频率过高要么频率过低,所以就要把导航电文和测距码与载波相调制,把导航电文和测距码调制到L波段上,减少误差。

载波一共有三个频率,

  1. 第一个频率负责搭载信号,
  2. 第二个频率用来采用差分的方法消除电离层延迟,
  3. 第三个频率来实现更多用以提升定位精度的功能 

卫星定位原理

测距码测量 

原理:测距码是一串伪随机码,只有码序列相同并且对齐,其相关系数才为1

所以,我们可以利用这一特性,在接收机上输入相同的种子,产生一段与卫星相同的伪随机序列

比如:

卫星发出的伪随机码是:abcdefghijk...
(卫星当然发出的是二进制码,但是这里为了更直观比对结果,举例就采用更直观的码序列)
那我们就用相同的种子,在接收机上也构建一段相同的码序列:abcdefghijk...

但是,当接收机接收到信号的时候,不可能是从起点abcd开始的,有可能出现下面的情况:

因为没有对齐,他们的相关系数是极低的。于是,我们就固定住接收到的卫星码,然后向后挪动接收机自己产生的码:

他们之间的差距由两个字母到了一个字母,但是还是没有对齐,相关系数还是很低,我们再挪动一下:

这个时候,计算相关系数,发现相关系数为1了,而且再读取计数器,发现挪动了两个码,所以计算机就知道了:

在一个码序列周期内,他们之间相差了两个码的距离

所以,就可以计算出,在一个码序列周期内,他们相差的时间为:

但是除此之外,他们还相差了很多个整周期T,这个整周期T因为码序列的长度是固定的,所以T一般来说也是固定的一个数,可以直接采用。

所以,信号的传输时间为:

然后再用最基础的L=V*t,就可以求出卫星到接收机之间的距离:

L=\Delta t*c 


载波测量

但是在高精度测量中,测距码的测量精度并不高。因为其精度求得的时间和码元的宽度强相关,如果码元过宽,对齐过于简单,那么最终的精度也会很低。但是,载波就像三角函数一样,是一段连续的波,我们可以采用这段连续的波,缩短他们的误差,来提高定位精度。

比如在途中,我们接收到的卫星信号是波峰的位置,我们就可以知道,卫星信号的相位是二分之Pi。但是,光知道这个二分之Pi,我们并无法进行定位,因为从卫星发出信号到接收机接收到信号,一定有以下几个部分:

用公式表示便是:

L=\Delta\varphi +(int)T ,前者为不满一整周期的相位,后者为整周期数,因为我们并不知道整周期数是多少,又叫他整周模糊度
但是,这个整周模糊度,我们怎么求出来?

我们在测距码定位的时候,就已经求出来了传播的时间,只不过,这个时间的精度不怎么高。
但是,就算再怎么不高,他也不可能相差一整个周期。所以,我们就采用这个测距码测量时得到的时间,逆推出整周模糊度的大小,然后就可以求出卫星到接收机的波长长度。

所以,可以认为,测距码测量的目的是确定整周的长度,而载波测量实际上是确定了不满一周的相位长度,提高了定位的精度。


导航电文测量

导航电文的测量,和前两个有着很大的不同。导航电文测量就不再用波进行测量,而是采用导航电文给出的数据进行解算。在导航电文的第二三子帧中,会给出GPS的轨道参数,而在卫星定位中,采用的卫星轨道描述方法为:开普勒轨道根数

在人工轨道理论中,用六个开普勒轨道根数来描述卫星椭圆轨道的形状,大小和在空间的指向,其包含以下六个参数:

  1.  升交点赤经
  2. 轨道倾角
  3. 长半径
  4. 偏心率
  5. 近地点角距
  6. 卫星过近地点的时刻

升交点赤经 

一般来说,卫星轨道和赤道会有两个交点,东边一个西边一个。卫星从赤道下也就是南半球,经过交点,进入赤道上北半球,这个交点叫做升交点,就像太阳升起;而另外一个叫做降交点,就像太阳落下。升交点的赤经,也就是天球下的经度,叫做升交点赤经。

轨道倾角 

在升交点处,轨道正方向(也就是卫星运动的方向)与赤道的正方向(赤经增加的方向) 的夹角。

长半径

轨道椭圆长轴的一半

偏心率

e=\frac{c}{a}=\frac{\sqrt{a^2-b^2}}{a}

近地点角距 

由地心(A),升交点(B),近地点(C)组成的角BAC就称为近地点角距 

而除了给出这几个参数以外,还会给出几个摄动参数。因为导航电文是2个小时更新一次,在两个小时之间,卫星已经运动出了一段距离。我们需要通过这些摄动参数,来模拟卫星的运动状态,从而求出卫星在任意时刻的位置,而非两个小时之前的位置。

具体的公式,可以看看具体代码实现的文章:

卫星位置解算icon-default.png?t=N7T8http://t.csdnimg.cn/iKBmL


最后,给自己叠个甲。因为自己才是导航工程大二的本科生,有些概念理解可能不到位,而又想用最容易理解的方式表达出来,所以可能正确性会稍微有些偏差。但是对初学者来说,应该不会存在太大的错误,如果可以帮到你,真的荣幸之极。还有,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/340543.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算期末复习(3)

Amazon云计算 习题 私有IP、公有IP和弹性IP的区别在哪里? EC2的实例一旦被创建就会动态地分配公共IP地址和私有IP地址。私有IP地址由动态主机配置协议(DHCP)分配产生。 私有IP、公有IP和弹性IP的主要区别在于它们的使用场景、可达性和管理方式: 私有IP&#xff1a…

加油卡APP系统开发,打造便利的汽车加油模式

随着人们生活水平的提高,汽车已经成为了家中必备的交通工具,因此,汽车加油也成为了大众经常要做的事。在互联网的发展下,汽车加油卡APP出现在了居民的生活中。加油卡系统与各个加油站合作,提供各种优惠折扣&#xff0c…

小程序配置自定义tabBar及异形tabBar配置操作

什么是tabBar? 小程序的tabbar是指小程序底部的一组固定导航按钮,通常包含2-5个按钮,用于快速切换小程序的不同页面。每个按钮都有一个图标和文本标签,点击按钮可以切换到对应的页面。tabbar通常放置在小程序的底部,以…

哥斯拉、冰蝎、中国蚁剑在护网中流量特征分析,收藏起来当资料吧,24年护网用得上

护网哥斯拉、冰蝎、中国蚁剑流量分析 【点击免费领取】CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》🔗包含了应急响应工具、入侵排查、日志分析、权限维持、Windows应急实战、Linux应急实战、Web应急实战。 护网中最担心的是木马已经到了服…

6月软考新通知:24下集成大概率是中级蕞简单的一门

2024下半年软考6月新通知: 一、24下软考考试时间安排: 24下半年软考报名时间:8月19日-9月15日 24下半年软考考试时间:11月9-12日 24下半年软考成绩查询:12月中(预计) 二、考情分析 24上软考…

腾讯云SSL证书获取及Nginx配置教程

前言 很多人应该都有属于自己网站,刚开始基本是只能用http进行访问,无法使用https安全访问,但是随着网络安全意识的不断提高,越来越多的网站开始使用HTTPS协议来保护用户的数据安全,SSL证书是实现HTTPS协议的关键组件,本文将讲解如何在腾讯云上获取SSL证书,并配置到Ngi…

激光、超声波、霍尔、DS18B20 温度、模拟温度传感器 | 配合Arduino使用案例

激光传感器 用来发出红色激光。 /****** Arduino 接线 注意哈,这里直接两根***** Arduino 传感器* VCC 5v* GND A0 ***********************/ int pin A0; void setup() { Serial.begin(9600); // 串口通信用于输出 log pinMode(pin, OUTPUT)…

Laya设置Text组件scroll滑动文本

1设置 首先设置Text组件的overflow为scroll,如下图所示 2挂载脚本 将TextScroll脚本挂载到Text上,该脚本主要实现了手指或鼠标滑动文本的功能。 import Script Laya.Script; import Text Laya.Text; import Event Laya.Event;export default class…

Vue3整合Tailwindcss之padding样式类

04 常用基础样式 padding 样式类 什么是内边距 基础样式 ClassPropertiesp-0padding: 0px;px-0padding-left: 0px; padding-right: 0px;py-0padding-top: 0px; padding-bottom: 0px;ps-0padding-inline-start: 0px;pe-0padding-inline-end: 0px;pt-0padding-top: 0px;pr-0pa…

DeepDriving | 基于YOLOv8分割模型实现垃圾识别

本文来源公众号“DeepDriving”,仅用于学术分享,侵权删,干货满满。 原文链接:基于YOLOv8分割模型实现垃圾识别 0. 引言 YOLOv8是Ultralytics开源的一个非常火的AI算法,目前支持目标检测、实例分割、姿态估计等任务。…

卡塔尔央行启动CBDC项目 5月Solana区块链上创建近五十万种代币

近期加密货币和区块链领域的动态令人振奋,展现了这个领域的快速发展和潜力。首先,卡塔尔央行启动CBDC项目表明中央银行数字货币已经成为全球金融系统中的一部分,并且对于大额支付结算有着广泛的应用前景。Solana区块链上创建近五十万种代币的…

鸿蒙Ability Kit(程序框架服务)【ServiceExtensionAbility】

ServiceExtensionAbility 概述 [ServiceExtensionAbility]是SERVICE类型的ExtensionAbility组件,提供后台服务能力,其内部持有了一个[ServiceExtensionContext],通过[ServiceExtensionContext]提供了丰富的接口供外部使用。 本文描述中称被…

【UE5 刺客信条动态地面复刻】实现无界地面01:动态生成

2024.6.4更新 昨天半夜意识到生成Cube的方案不合适,又开始到处找动态地面的方法,发现了我想要的效果直接可以用nigara实现!!!! 于是这个部分就暂时告一段落,今季开始新的方向的学习。 为了快速…

动态规划——打家劫舍问题

198. 打家劫舍 问题描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一…

中国青年网投稿三下乡社会实践稿件方法

文稿要求 实践纪实类文稿 (1)标题:10-30个汉字为宜,要用一句话标题,清楚叙述开展社会实践的学校、内容等基本信息。 (2)正文:表述要流畅,不可写宣传稿,要注…

文件中找TOPK问题

一.TOP—K问题简介: TOP-K 问题:即求数据结合中前 K 个最大的元素或者最小的元素,一般情况下数据量都比较大 。 比如:专业前 10 名、世界 500 强、富豪榜、游戏中前 100 的活跃玩家等。 对于 Top-K 问题,能想到的最简…

c# - 运算符 << 不能应用于 long 和 long 类型的操作数

Compiler Error CS0019 c# - 运算符 << 不能应用于 long 和 long 类型的操作数 处理方法 特此记录 anlog 2024年5月30日

个人笔记-随意记录

常见问题&#xff1f; 1.linux重启服务 端口被占用如何解决&#xff1f; 查看某个端口被占用的进程 netstat -tulnp | grep :23454 强制杀死进程 kill -9 1776 重启服务即可

无人机、机器人10公里WiFi远距离图传模块,实时高清视频传输,飞睿CV5200模组方案,支持mesh自组网模块

在快速发展的物联网时代&#xff0c;远距离无线通信技术已成为连接各种智能设备的关键。无人机、安防监控、机器人等领域对数据传输的距离和速度要求越来越高。 公里级远距离WiFi模组方案可以通过多种技术和策略的结合来实现无人机和机器人之间的高效通信传输。 飞睿智能CV52…

Java排序算法汇总篇,八种排序算法

排序算法汇总: Java排序算法(一)&#xff1a;冒泡排序 Java排序算法(二)&#xff1a;选择排序 Java排序算法(三)&#xff1a;插入排序 Java排序算法(四)&#xff1a;快速排序 Java排序算法(五)&#xff1a;归并排序 Java排序算法(六)&#xff1a;希尔排序 Java排序算法(…