北斗和GPS高精度科普
发布时间:2019-09-11 18:10

一直以来,大部分人对北斗/GPS卫星导航定位系统都有一种误解,认为我们使用的民用信号精度要比军用信号的低。实则不然,不管军用还是民用,两者的精度是相差不大的。下图是GPS官网对军用和民用的说明,民用接收机由于其尺寸和费用的考虑,大都采用一个频率,而军用接收机采用两个频率。用两个频率的军用接收机可以消除掉地球大气层引起的误差。
 

要明白民用和军用信号定位精度相差不大,需要先明白民用信号和军用信号的区别是什么。我们用户接收到的导航信号包括3部分:1、载波频率,下图中的1575.42MHz和1227.60MHz就是指频率,频率是非常重要的资源,我国北斗和欧洲伽利略就曾因频率资源进行了一段长达8年的协调。2、扩频码,下图的C/A Code和P Code就是指扩频码,扩频码是用来识别卫星编号的。3、信息,就是Message,包括卫星的位置、时间等信息。

 

我们知道,通过卫星导航系统定位的时候需要4颗卫星的帮助,通过4颗卫星,我们得到了自己的经度、纬度、高度及与标准时间的差等4个数据。那么4颗卫星分别告诉我们的是它们在空间中的位置、它们与标准时间的差等信息,我们再通过测量我们到它们的距离,建立4个方程,解4个未知数。所以,不管军用信号还是民用信号,我们从卫星中得到的信息都是一样的,就是这颗卫星处于哪里、这颗卫星跟标准时间差多少等信息。

 

而军用信号和民用信号,它们的载波频率又是可以是相同的,如下图是各个导航系统的信号频率分布,以第一行的GPS为例,其红色的军用信号和绿色的民用信号是可以处于同一频率的。

 

那么,剩下用来区分军用和民用信号的就只有扩频码了,扩频码代表了卫星的编号。比如,GPS长期工作的卫星共24颗,它们对我们的编号一般是1~24。那么同一颗卫星对军用和民用的用户来说,编号是不一样的嘛?举个栗子,这跟我们区分人的方法是一样的,特朗普,对于我们公众来说,他的代号就是“美国总统”,但在他家庭内部,他是伊万卡“Daddy”。特朗普做了什么、说了什么,并不会因为他对不同人的属性不同而不同。导航卫星的扩频码编号也是一样的,对于公众来说,它的编号可能是1,对于军队内部,它的编号可能是A,但不同的编号并不影响它最终要告诉用户的内容。那么同一颗卫星不同的民用和军用编号最终会影响用户什么呢?还是以特朗普为例,世界上那么多人,可能存在和特朗普长相相似的人,对于我们民用用户,我们可能会错认特朗普,但是伊万卡这个军用用户不会,也就是说,我们定位特朗普的精度会比伊万卡略低。导航卫星也是一样,同一颗卫星民用和军用不同的编号,影响的是民用和军用用户测量其离这颗卫星的距离误差,但是两个测量误差的差别并不会决定性地影响用户最终的定位精度。

为什么军用民用不同卫星编号造成的测量距离误差并不决定性影响定位精度?这要从定位精度的误差来源到底有多少说起。


在我们用户测量我们与卫星间的距离时,外界误差主要包括6个来源:

 


1、轨道误差,就是卫星告诉你的位置和其真实的位置有偏差。
2、时钟误差,就是卫星告诉你的时间和标准时间有偏差。
3、电离层延迟,就是卫星信号在从太空穿越大气层,经过电离层时其速度会变慢,而我们却不知道它慢了多少时间。
4、对流层延迟,与电离层延迟相似。
5、多径,就是卫星信号碰到一些反射物体,发射的信号会对实际信号有影响,让用户误判到底哪个才是真正想要的信号。
6、接收机噪声,就是接收机自己在测量距离时也会带入自己的误判。
 

那么外界的6个误差源对用户测量其与卫星间的距离到底造成多大的误差,如下图。

 

时钟误差和轨道误差都是1米,电离层延迟是10米,对流层延迟是1米,多径是0.5米,接收机噪声是1米。上图中还有两个误差,一个就是选择可用性selective availability,这个误差是10米。这是2000年5月1日前,美国为了防止敌方民用信号精度过高而人为引入的误差,现在已经取消。下图就是这个政策取消前后民用信号的定位精度变化。

 

另外一个误差是pseudo-range noise,直译叫做伪距噪声,是1米。这个伪距噪声就是我们用民用编号和军用编号造成的误差。上面所有的误差的均方差就是我们的测量距离误差,可以看到,我们得到的均方差rms error在15米左右,这是2000年5月1日前还有选择可用性时的精度,怎么算出来的?就是每个误差都自己平方一下,然后都加起来,再开方。2000年5月2日去掉选择可用性造成的人为误差后,rms error就变成了10.2米。就算我们认为军用信号足够好,把军用编号造成的误差pseudo-range noise改成0米,也不会对最终的误差有多大影响,rms error还是在10.16米。

那么我们刚刚在文章开头说到,军用接收机一般会用两个频率,两个频率有什么用?两个频率的好处就是能把最大的误差源——电离层延迟降低到0米左右。这样,我们再来看看军用编号的精度有什么变化,rms error变成1.8米了。


所以,大家看到了吧,军用信号和民用信号在精度上没什么太大区别,它们的区别仅仅在于军用信号扩频码编号是保密的,只有军方知道。就跟伊万卡叫特朗普是什么一样,我们也不知道她到底是叫“Daddy”还是“Papa”,抑或是还有其他称呼。而民用信号接收机为了省钱跟接收机小型化,大都只用一个频率,所以还是保留了电离层延迟的10米误差,所以总体来说最终表现会比军用信号接收机差。

既然军用信号和民用信号精度差不多,那为什么要特地开发军用信号呢?保密!!!没错,民用信号是完全对外公布的,别人可以伪造,发射一个假的信号,欺骗你,比如下面这个案例。而军用信号编码是保密的,别人无法伪造,也就没法用假信号欺骗你了。

细心点进来看的同学可能已经注意到了,我们上面分析的误差结果,最终乘以了一个参数PDOP。因为我们上面计算的均方差rms error实际上只是我们到一颗卫星的距离误差,如下图红线。如果最终要转换到蓝线的4颗卫星定位误差,还需要乘以PDOP。PDOP叫做几何因子,跟我们用的卫星在空间的分布有关。


我们常说北斗在亚太地区的定位精度要比GPS高,实际上说的是在亚太地区,北斗的PDOP要比GPS小,因为北斗不仅有中高地球轨道卫星MEO,还有地球同步轨道卫星GEO,还有倾斜地球同步轨道卫星IGSO,而GPS只有MEO。所以在我们测量和单颗卫星距离误差相同的情况下,在亚太地区,最终的定位误差,北斗要比GPS小。