基础资料
1. 卫星导航技术的发展过程:
1957年第一颗人造地球卫星上天就引起各国科学家的关注,美国霍普金斯大学应用物理实验室的W. Guier博士和G. Wieffenbach博士对该卫星发射的无线电信号的多普勒频移产生兴趣,研究表明,利用地面跟踪站上测得的卫星信号的多普勒频移可以精确确定卫星轨道;另外两名科学家F. McClure博士和R. Kershner博士则反向研究,指出对一颗轨道已被精确确定的卫星的信号进行多普勒测量,可以根据测量值确定用户的位置,这项研究为美国子午卫星系统的诞生奠定了基础。
子午卫星系统Transit是由美国海军研制、开发和管理的第一代卫星导航系统,初衷是为了对潜艇惯性导航系统进行间断地、精确地校正。R. Kershner博士的研究引起美国海军的兴趣,1958年美国海军资助了应用物理实验室开展进一步的研究,1964年1月Transit正式投入军用,1967年该系统解密并供民用,1996年随着GPS系统的建成该系统退役。Transit是世界上第一个成功运行的卫星导航系统,但仅能提供精度较低的二维定位,精度分米级至米级,且所需定位时间较长。
美国国防部于1973年决定研制新一代卫星定位与导航系统,即GPS。历经20年努力,耗资200亿美元,1993年12月终于建成并投入使用。GPS共有24颗卫星,分布在6个轨道面上,每个轨道面上有4颗卫星,轨道倾角55°,各个轨道面之间相隔60°,6个轨道面覆盖率全部360°范围。卫星轨道半径26560km,运行周期11h56min04s。GPS在L1波段上发射一个民用的C/A码信号,并在L1和L2波段上分别发射两个军用P(Y)码信号。GSP定位精度可达±15~±40m。考虑到国家安全,美国于1991年7月1日起对所有卫星实施选择可用性SA政策,即通过认为地给卫星信号加入干扰以降低定位精度。SA政策下,未经许可的用户只能使用标准定位服务SPS,其平面位置的定位误差为±100m,高程误差为±156m。美国军方及盟国军方及美国政府授权的少数非军方用户可以获得精密定位服务PPS,定位精度±16m或更好。
随着民用领域对卫星定位服务需求的增长,俄罗斯等也开始建设,美国为维护GPS的市场地位于2000年5月2日宣布取消SA政策,并开始GPS现代化计划。新发射的GPS卫星将会有4个民用信号和4个军用信号。
为了维护自身国家安全并摆脱对GPS的依赖,一些国家也在积极发展自己的卫星导航定位系统,如俄罗斯的GLONASS、欧盟的Galileo系统、中国的北斗系统、日本的准天顶卫星系统QZSS、印度的区域卫星导航系统IRNSS。其中GLONASS由分布在三个轨道平面上的24颗卫星组成,卫星轨道倾角64.8°,使其在高纬度地区具有更好地信号覆盖。GLONASS采用频分多址技术,造成接收机体积大、成本高,因资金问题终止了系统扩建,导致GLONASS不能独立组网。
2003年欧盟启动伽利略Galileo系统,卫星星座由30颗卫星组成,均匀分布在三个倾角为56°的轨道面上,每个轨道面有9颗工作卫星和1颗备用卫星。卫星轨道半径29600km,运行周期14h7min,地面跟踪的重复时间为10天。Galileo系统还具有搜救功能,并向用户提供公开服务、安全服务、商业服务、政府服务等不同模式服务,其中前两种服务对全体用户公开,后两种服务需要经过许可才能使用。
2000年19月31日和12月31日,中国研制的两颗北斗导航试验卫星发射,随后由发射一颗备用卫星,第一代导航系统于2002年试验运行,并于2004年对民用客户开放。北斗一代导航系统是主动式、双向定位系统,首先用户设备接收卫星发射的信号,并向卫星发射应答信号;然后卫星将应答信号送往地面站计算用户位置;最后地面站将计算结果发射给卫星,并由卫星将结果传给用户。因为接收机需要收发信号功能,因此用户设备的体积和造价都很大。2007年,中国开始正式建设北斗二代卫星导航系统,由5颗地球静止轨道GEO卫星、27颗中圆地球轨道MEO卫星和3颗倾斜地球同步轨道IGSO卫星组成。GEO卫星轨道高度35786km,分别定点在东经58.75°、80°、110.5°、140°、160°;MEO卫星轨道高度21528km,轨道倾角55°;IGSO卫星轨道高度35786km,轨道倾角55°。
2006年日本开始筹建QZSS卫星系统,由7颗卫星组成,包括一颗GEO卫星、3颗IGSO卫星、3颗大椭圆轨道HEO卫星。QZSS除了发射与GPS和Galileo卫星信号兼容的导航信号以外,还播发GPS、GLONASS和Galileo系统的差分校正量,与GPS和Galileo具有较好的兼容性和互操作性。
印度在2006年也开始筹建IRNSS卫星导航系统,并力图与其他卫星导航系统和区域增强系统兼容。IRNSS系统由7颗卫星组成,包括3颗GEO卫星和4颗IGSO卫星,其中三颗GEO卫星原本属于为东南亚地区提供服务的印度GPS辅助型增强卫星。
随着不同卫星导航定位系统的建设,对需要利用卫星进行导航定位的用户非常有利,因为空中可见星数目增加,用户可以选择不同系统的卫星进行定位,以获得最优的几何精度因子,尽可能提高定位精度。
2. GPS的时间系统:
GPS在已知卫星位置和卫星到用户的距离的前提下对用户进行定位,而卫星位置是随时间动态变化的,因此卫星必须给出相应时刻,卫星位置与时刻精度是密切相关的。如卫星运行速度大约为4000m/s,若要求卫星的位置误差小于1m时,相应的时刻误差应小于2.5×10-4s。同时,卫星到用户距离的测量也是依赖时间的,用户到卫星的距离等于卫星信号到达用户的传播延迟时间与光速的乘积。若要求卫星到用户的距离误差小于1cm时,卫星信号传播时间的测定误差应小于3×10-11s。常用两种时间系统,协调世界时UTC和GPS时。
1)UTC时间:
协调世界时在英文中为Coordinated Universal Time,法文中为Temps Universel Cordonne,因为这是在法国计量局产生,为了保持语言中立,选择UTC作为协调世界时的缩写。
度量时间是以某一时间尺度为标准的,此前先以地球自转为周期的世界时UT,用自转周期的1/86400作为1s;又有以地球公转为周期的历书时ET,以1900年1月1日12时开始的回归年长度的1/31556925.9747作为1s;现在以原子跃迁时所吸收或释放的电磁波的频率为基础的原子时AT,秒定义为铯133原子基态的两个超细能级结构间在零磁场下跃迁时辐射9192631770周所持续的时间。AT起始点为1958年1月1日0时0分0秒,规定在这一瞬间AT时刻与UT时刻重合。根据AT的定义,任何原子钟在确定起始历元后,都可以提供原子时,国际时间局综合各地实验室的铯原子钟数据,最后确定的原子时称为国际原子时TAI。
由于TAI与地球自转无关,使得它与UT的差距逐年增大,造成对天文观测无法准时。为了让时间标准既具有TAI秒长的稳定性和均匀性,又能够利用该时间标准进行天文观测,提出了UTC。UTC是对UT和TAI的折中,UTC时刻与UT时刻差保持在0.9秒以内,一旦二者的时刻超过0.9秒,就在UTC中加上或减去1s,称为跳秒,以缩小UTC时刻与UT时刻的差距。
2)GPS时间:
GPS时间是专为GPS建立的时间系统,其秒长基于AT,由安装在GPS地面监测站上的原子钟和卫星原子钟的观测值综合得出。GPS时间是连续的,初始时刻为1980年1月6日0时0分0秒,与TAI差19s,即TAI-GPST=19s。随着时间的累积,GPS时与UTC时之间的时间差通过时间服务部门定期公布。
目前,几乎所有国家都采用UTC作为标准时间,处于不同时区的国家和地区,当地时间与UTC之间只存在整数小时的差异,人们所熟知的格林尼治时间GMT通常是指UTC时间。
3. GPS的坐标系统:
GPS会用到天球坐标系和地球坐标系两类坐标系。天球坐标系是在空间固定的坐标系ICRS,其坐标原点和各坐标轴的指向在空中保持不变。ICRS是一类惯性坐标系,描述卫星的位置和运行状态非常方便,卫星在ICRS下遵循开普勒三定律。地球坐标系是与地球固定相连的坐标系ITRS,用于描述地面测站的位置。
1)相关地理术语:
赤道:通过地球质心,并与地球自转轴垂直的平面称为赤道面,赤道面与地球表面相交的大园称为赤道。
黄道:地球绕太阳公转的轨道平面与地球表面相交的大园称为黄道,黄道与赤道之间的夹角称为黄赤交角,值为23.5°。
南极与北极:地球自转轴与地球表面的两个交点称为南极和北极。
南黄极和北黄极:通过地心且与黄道面垂直的直线跟地球表面的两个交点称为南黄极和北黄极。
春分点和秋分点:黄道与赤道有两个交点,分别称为春分点和秋分点。从地球上看,太阳黄道逆时针运动,太阳沿黄道从南到北通过的那个交点称为春分点,对应的另一点称为秋分点。由于地心到春分点的方向并不随着地球的自转和公转而发生变化,所以春分点成为GPS坐标系统以及天文学和大地测量学中的一个重要空间基准点。
天球:以地心为中心、地球自转轴的延长线为轴的半径无穷大的理想球体。
天轴和天极:天轴是地球自转轴的无线延伸,天极是天轴与天球的交点,分北天极和南天极。
天球赤道:天球赤道面是过地心并且与天轴垂直的平面,天球赤道面和天球表面的交线称为天球赤道,天球赤道是半径无穷大的圆。
岁差:由于地球受自身密度不均匀和日月引力的影响,地球自转轴并不是恒定不变的,而是绕北黄极做缓慢的顺时针方向旋转,旋转的周期约为25800年,这种现象在天文学中称为岁差。岁差是一种长周期运动,岁差现象的存在导致春分点S沿黄道缓慢向西移动至S’。
章动:地球自转轴在绕北黄极做圆周运动的同时,还在局部进行小幅度的旋转,称为章动。章动轨迹近似椭圆,周期约为16.8年。相比于岁差,章动是一种短周期运动。
从长期来看,地球自转轴绕北黄极做圆周运动,从短期来看,地球自转轴绕岁差轨迹上的某一点做椭圆运动。
2)天球坐标系和地球坐标系:
在描述一个物体的空间位置时,通常是基于某一特定的坐标系,在不同的坐标系下物体的位置是不同的。GPS涉及两类坐标系统,天球坐标系统和地球坐标系统。
天球坐标系统是一种惯性坐标系统,也称为空间固定坐标系统,这类坐标系统与地球自转无关,对于描述卫星的位置和状态非常方便。此坐标系在空间的位置和坐标轴的方向保持不变,或者做匀速直线运动。这是在一定程度上的近似。
惯性坐标系与地球自转无关,所以地球上任一点在这种坐标系中的坐标会随着地球自转而发生改变,这给描述地面上的物体的坐标带来不变。因此提出地球坐标系,该坐标系固定在地球上且随地球在空间做自转或公转运动,也称为地心地固坐标系ECEF。在ECEF坐标系下,地球上任一点的坐标不会随着地球的自转和公转而发生改变。
3)卫星轨道坐标系:
在描述卫星运动时,通过采用的是卫星轨道坐标系,也是一种惯性坐标系。在卫星轨道上离地球最近的那一点称为近地点,离地球最远的那一点称为远地点,近地点和远地点的连线为卫星的椭圆轨道的长轴。地心和近地点之间的连线与地心和卫星的连线之间的夹角称为真近点角υ。在卫星轨道坐标系中,x轴沿地心和近地点连线方向,y轴垂直于x轴,z轴过地心垂直于卫星轨道,x、y、z轴构成右手系。卫星在轨道坐标系上遵循开普勒三定律。
根据开普勒第一定律,卫星运行轨道是一个椭圆,而该椭圆的一个焦点与地心重合,可以得到卫星绕地球质心运动的轨道方程:
式中,r为卫星到地心的距离;as为开普勒椭圆的长半轴半径;es为开普勒椭圆的偏心率;υ为真近点角。
根据卫星的轨道方程,可以得到卫星在轨道坐标系下的坐标为:
这一位置并不以地球表面上任何一点作为参考点,而是以地心为参考点。人们希望能够以地球表面或其上的用户位置作为参考点,因此必须选取一个公共点,这个点既要在卫星轨道面上又要在地球表面上。卫星轨道平面和地球的赤道平面相较于一条直线,这条直线与地球表面相交于两点,因此定义卫星向上(向北)穿过赤道平面的那一点为升交点,轨道平面近地点方向与升交点方向之间的夹角定义为近地点角距ω。
找到公共参考点升交点后,将卫星轨道坐标系在卫星轨道平面内进行旋转,即以z1为轴,将x1由近地点方向顺时针旋转角度ω后至升交点方向,得到旋转后的坐标系,该坐标系仍然在卫星轨道平面上。本次旋转所用到的方向余弦矩阵为:
式中,近地点角距ω由星历给出。通常认为逆时针旋转时角度为正,顺时针旋转时角度为负,即逆时针旋转的方向余弦矩阵是顺时针旋转时方向余弦矩阵的转置。上式为x1、y1、z1坐标系绕z1轴顺时针旋转角度ω时的方向余弦矩阵。
方向余弦矩阵的作用可以理解为:若某一点在坐标系1下的坐标为(x1,y1,z1),从坐标1转换到坐标2的方向余弦矩阵为C,那么该点在坐标系2下的坐标为:(x2,y2,z2)=C·[x1,y1,z1]T
4)ECI坐标系:
由于不同卫星具有不同的升交点,即使将卫星轨道坐标旋转到升交点方向,不同的卫星仍然处于不同的坐标系下,这对描述卫星位置非常不便。因此,还需要找到所有卫星的一个参考点,这个参考点仍然必须在地球上,春分点就是这个参考点。以地心为原点,春分点方向为x正轴,z轴垂直于赤道平面的右手坐标系为ECI坐标系。ECI坐标系是惯性坐标系,因为卫星的运行周期为11小时56分钟零4秒,这个时间远远小于地球公转的周期、岁差周期和章动周期,在这段时间内可近似认为ECI坐标系是做匀速运动的惯性坐标系。
为了将卫星轨道坐标系转换到ECI坐标系,需要进行以下两步转换。第一步,将卫星坐标系以卫星轨道坐标系的x2为轴,将z轴顺时针旋转角度i(i为卫星轨道面与地球赤道面之间的夹角)至赤道坐标系,即以地心为原点、升交点方向为x轴正向,z轴垂直于赤道平面的右手系,如上面右图所示的x3、z3轴所在的右手系;第二步,将上一步得到的坐标系以z轴为轴,将x轴顺时针旋转角度Ω(Ω为升交点方向与春分点方向的夹角)至春分点方向,得到ECI坐标系,如上面右图所示的x4、z4轴所在的右手系。为了实现上述两步转换,需用到两个方向余弦矩阵:
式中,i为卫星与赤道平面的夹角,称为轨道倾角;Ω为升交点方向与春分点方向之间的夹角,称为升交点赤经角。i与Ω由星历给出。
从卫星轨道坐标系到ECI坐标系用到的全部变换可表示为:
需要注意的是,ECI坐标系并未考虑地球自转。
5)ECEF坐标系:
在ECI坐标系下,地球上静止的物体在不同时刻其坐标是不同的,这是由地球自转造成的,这不符合地球上观测者描述位置变化时的需求,人们希望只有当物体在地球上的位置改变时其坐标才改变。因此,需要一种可以描述地球自转的坐标系,即ECEF坐标系。
假设地球的自转速率为Ωie,定义一个初始时刻ter,在该时刻格林尼治子午线(0°经线)与春分指向线对齐。春分点可由格林尼治子午线的旋转来确定,得到如下发出:Ωer=Ω-Ωieter
式中,Ωer为格林尼治子午线与升交点之间的夹角;为地球自转速率,其值为7.2921151467×10-5rad/s。当ter为0时,格林尼治子午线与春分指向线重合。
在地球上描述物体的位置经度是以格林尼治子午线为参考的,因此若将上面第二步转换改为,将第一步变换后得到的坐标系以z为轴,将x轴顺时针旋转角度Ωer至格林尼治子午线,即可得到ECEF坐标系。将上面公式中的Ω替换为Ωer,可得到考虑地球自转的方向余弦矩阵:
上式中通过使用时间ter来描述地球的自转,当格林尼治子午线与春分指向线重合时,有ter=0。ter最大值为一个恒星日,即33小时56分09秒,因为格林尼治子午线与春分指向线每恒星日对齐一次。
然而,在GPS中使用的时间是GPS时间。GPS时间是由格林尼治时间周六午夜开始,因此最大GPS时间是7个太阳日,即604800s。很显然,ter时间基准和GPS时间t基准是不同的,因此需要将ter时间转换为GPS时间。这个转换是通过时间基准的线性平移来实现的:ter=t+Δt
式中,Δt为基于ter基准的时间和基于GPS时间t之间的差值。将上式代入Ωer公式得到:Ωer=Ω-Ωieter=Ω-Ωiet-ΩieΔt=Ω-α-Ωiet=Ωe-Ωiet
式中,α=ΩieΔt;Ωe=Ω-α。Ωe由星历数据给出。
这样就得到了考虑地球自转,但不考虑摄动影响的全部变换,可将卫星在卫星轨道坐标系下的坐标(xs,ys,zs)转换到ECEF坐标系下的坐标(xECEF,yECEF,zECEF),即:
上面公式给出了ECEF坐标系中的卫星坐标。求解上式需要用到的星历数据见下表:
参数 | 参数意义 | 计算卫星在ECEF坐标时的作用 |
---|---|---|
Ω | 升交点赤经 | 确定卫星轨道平面在空间中的位置 |
i | 轨道平面倾角 | |
ω | 近地点角距 | 确定卫星轨道的形状和大小 |
as | 开普勒椭圆的长半轴 | |
es | 开普勒椭圆的偏心率 | |
M | 平近点角 | 确定卫星在卫星轨道上的瞬时位置 |
在求解卫星位置时,需要知道真近点角υ,而星历给出的是平近点角M,实际上是在参考时刻toe的平近点角M0,且有M=M0+n(t-toe)。toe由星历数据给出,t为信号发射时刻的GPS系统时间,n为卫星的平均角速度,t、n可求出,因此需要根据M求解υ。υ的求解过程可以分两步来完成,第一步根据M求出偏近点角E,第二步根据E计算υ。在求解υ时,要用到开普勒定律和开普勒方程。
开普勒定律同样适用于卫星运动,卫星运动的轨迹是个椭圆,地球位于其中一个焦点上。按开普勒第二定律,在相等的时间内卫星和地球的连线扫过的区域面积相等,公式为:
式中,t为卫星当前位置所在的时刻;A1是地心、近地点P和卫星位置构成的区域面积;T为卫星周期;as和bs分别表示开普勒椭圆的长半轴和短半轴,πasbs为椭圆的总面积。上式表明,卫星扫过的面积A1的时间与扫过椭圆总面积的时间T成正比。
按照开普勒第三定律,卫星运行周期的平方和卫星到地球平均距离的立方成正比,表达式为:
式中,μ=GM=3.986005×1014m3/s2,是万有引力常数。对上式进行变换,得到:
若定义n=2π/T为卫星运动的平均角速度,则有:
利用开普勒方程:
式中,M0为参考时刻toe时的平近点角(M0和toe由星历数据给出,t可以获取得到);M为信号发射时刻的平近点角,实际上一旦给出M0即可求出M;es为卫星轨道偏心率,由星历数据给出;E为偏近点角。可以看出,M与时间t成线性关系,因此称为平近点角。
根据开普勒方程的第二个方程式,通过迭代计算可求出偏近点角E:Ek+1=M+essinEk
式中,Ek为当前值;Ek+1为下一时刻的值;初值E0可设为M。由于卫星运行轨道非常接近圆,该方程会快速收敛于一点。可以定义误差信号Eer=Ek+1-Ek,当Eer小于预定值时停止迭代。
现在需要根据偏近点角E求出真近点角υ。以开普勒椭圆的中心O为原点,以as为半径做一个辅助圆,并过卫星位置S作垂直于x轴的直线,与x轴交于C点,与辅助圆交予T点,并设地心为D点,开普勒椭圆的另一个焦点为D’点,如下图。
上图中,偏近点角为E=∠TOP,真近点角υ=∠SDP,卫星到地心的距离r=SD,开普勒椭圆半轴as=OT,开普勒椭圆中心到地心距离:
bs为开普勒椭圆短半轴,则DD’=2cs。
根据上图可知:
根据余弦定理可得:
由于椭圆上任意一点S到两焦点的距离之和为长轴的长度:D’S+r=2as
联立上面两式,可得到卫星到地心距离:
将上式代入前面的偏近点角表达式,可得:
进而得到:
可以解出υ:
式中,υ的绝对值大小由υ1决定,υ的符号由υ2的符号sign(υ2)决定,即:υ=sign(υ2)υ1
这样就求解出真近点角。
并有公式:r=as(1-escosE)
可以看出,确实卫星位置的方程中,只有时间t是未知的。
6)WGS-84坐标系:
由于地球受岁差和章动的影响,不同时刻下的ECEF坐标系并不完全相同,因此需要找到一个特殊的ECEF坐标系,使其z轴指向某一固定的基准点,从而使坐标轴在地球球体中的指向不再随时间而变化。美国国防部研制了协议地球坐标系,称为WGS-84大地坐标系(World Geodetic System 1984),该坐标系是GPS的参考系,卫星广播星历以及根据星历解算的定位坐标均是基于WGS-84坐标系的。WGS-84坐标系是目前通用的全球大地测量参考系统。
WGS-84大地坐标系采用的是地球椭圆,称为WGS-84椭球,其常数为国际大地测量与地球物理学联合会IUGG第17界大会的推荐值,4个主要参数:
⑴椭球长半径ae=(6378137±2)m;
⑵地球(含大气层)引力常数μ=GM=3.986005×1014m3/s2;
⑶正常二阶带谐系数C2.0=-484.16685×10-6±1.3×10-9;
⑷地球自转角速度Ωie=7.2921151467×10-5rad/s。
利用上述4个基本参数,可算出WGS-84椭球的扁率为f=1/298.257223563。
WGS-84坐标系分为直角坐标系和大地坐标系两种。WGS-84直角坐标系用于描述卫星和接收机在笛卡尔坐标系中的位置,根据前面的公式计算的(xECEF,yECEF,zECEF)卫星坐标就是卫星在WGS-84坐标系直角坐标系下的坐标。WGS-84大地坐标系通常用于描述接收机所在位置P的经度l、纬度L和高度h。假设接收机P在WGS-84直角坐标系下的位置为(xu,yu,zu),则直角坐标系转换为大地坐标系可分两步完成,首先求出(xu,yu,zu)在球坐标系下的经度l、纬度Lc和高度he,如上面左图;然后在椭球坐标系下修正纬度和高度,得到地球上任一点的l、纬度L和高度h。修正的原因在于地球不是理想的球体而是椭球体,如上面右图。
在球坐标系下,有:
式中,re为地球的平均半径。
需要在椭球坐标系下对纬度和高度进行修正,因为在椭球坐标系和在球坐标系下的经度相同,所以经度不需要修正。纬度修正公式为:L=Le+epsin2L
式中,L为修正后的大地纬度;ep=(ae-be)/ae为地球椭圆率;ae为地球椭球的长半轴;be为地球椭球的短半轴。该方程可以通过迭代的方法来计算,L的初始值可设为Le。
对高度的修正主要是修正接收机位置处的地球半径r0,接收机处的地球半径为:
上式忽略了高阶项对r0的影响,则修正后的高度为:
综上可知,直角坐标系转换为大地坐标系的公式。而大地坐标系转换为直角坐标系的公式为:
式中,N为椭球的卯酉圈曲率半径,且有:
式中e为地球偏心率。
WGS-84坐标系是ECEF坐标系的一种,其定义的椭球体是对整个地球球体的逼近,在这个坐标系下计算出的接收机位置有时与某一区域的实际位置并不一致,这是因为在某一局部地区的地球形状并不与WGS-84所定义椭球形状完全一致。为了让所计算出的接收机位置与当地地图更加匹配,有些国家和地区采用当地的坐标系,如我国北京的-54坐标系和西安的-80坐标系。
7)站心坐标系:
WGS-84坐标系是以地球质心为参考点的地固坐标系,而实际应用中,通常需要以观测站为参考点,站心坐标系就是以观测站位置为参考点的坐标系。站心坐标系分为站心直角坐标系和站心极坐标系,如下图,图中xz、yz、zz分别表示站心坐标系的坐标轴。
①站心直角坐标系:
站心直角坐标系定义为,坐标原点P位于观测站,z轴与P点的椭球法线(天顶方向)相重合,x轴垂直于z轴指向正东方,y轴指向正北方,构成右手坐标系,站心坐标系也称为东北天ENU坐标系。采用ENU坐标系的原因是人类在实际生活中习惯于用东南西北等方向来表示某一点相对于自己的位置,这里的东南西北等方向就是该点在用户位置处ENU坐标系中的表示。
在WGS-84坐标系中,若卫星S的位置用(xs,ys,zs)WGS-84表示,观测站P点的位置用(xu,yu,zu)WGS-84表示,由观测站P到卫星S的向量PS可以表示为:
则WGS-84坐标系下的观测向量PS在站心坐标系中的向量可表示为:
观测向量PS从站心坐标系到WGS-84坐标系下的公式为:
其中变换矩阵H为:
显然,如果已知物体在站心直角坐标系下相对于站心P的位移量(Δx,Δy,Δz)z,可先将该位移量转换为WGS-84坐标系下的位移量(Δx,Δy,Δz)WGS-84,再加上站心P在WGS-84坐标系下的坐标(xu,yu,zu)WGS-84,得到位移后的物体在WGS-84坐标系下的坐标(xw,yw,zw)WGS-84为:
然后根据ECI坐标系一节的内容将物体的坐标从WGS-84坐标系转换到大地坐标系,得到经度lw、纬度Lw和高度hc,w。
②站心极坐标系:
实际应用中,通常在站心坐标系判断卫星是否可视时,需要知道卫星相对于站心的仰角,只有当仰角大于0度时,卫星才可能可视,这时需要将卫星位置从站心直角坐标系转换到站心极坐标系。
站心极坐标系定义为,以P为极点,Px为极轴,P点所在的水平面(xPy平面)为基准面。极坐标(θ,α,ρ)中,θ和α分别为卫星在极坐标系中的仰角和方位角,ρ为S到观测站P的距离。通常只选择θ大于10°的卫星为可视卫星,选择这些卫星作为定位卫星具有较高的定位精度。
站心直角坐标系转换为站心极坐标系的公式为:
式中,Δx、Δy、Δz为站心直角坐标系下卫星相对于站心的位移量(Δx,Δy,Δz)z的三维分量。
站心极坐标系转换为站心直角坐标系的公式为:
然后可根据前面的公式将物体位置转换到WGS-84坐标系。不管在哪种坐标系下,都需要先求出卫星和用户在ECEF坐标系的坐标,然后才可以进行相应的转换。
4. GPS定位原理:
确定接收机位置,需要已知卫星位置坐标和卫星到接收机的距离。
1)用户位置解算的基本方程:
空间某点的位置可以通过测量它到空中一些已知位置的距离来得到,如下图。
用户位置在x轴上,这是一维的情况。如果卫星的位置S1以及卫星与用户的距离ρ1已知,用户的位置则有两种可能,在S1的左边或右边。为了确定用户的位置,必须测量用户距离另一颗已知卫星的距离;已知卫星S2和ρ2就能确定用户的唯一位置U。
对于二维的情况,要确定用户的位置需要3颗卫星和3个距离。二维情况下,和一个固定点具有恒定距离的点的轨迹是圆,两颗卫星和两个距离有两个解,因为两个圆相交于两点,需要第3个点来确定用户的唯一位置,如下面左图。
以此类推,对于三维情况,要确定用户的位置需要4颗卫星和4个距离。三维情况下,和一个固定点等距离的点是个球体,两个球相交于一个圆,这个圆与另外一个球相交于两点。为了确定用户的位置,还需要一个卫星,如上面右图。
理论上,如果测量的距离是精确的,已知空间任意3点S1、S2、S3坐标为(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)以及三点到目标点的距离ρ1、ρ2、ρ3,根据任意两点的距离公式:
可以得到两个坐标,其中一个靠近地球表面,为U的坐标(xu,yu,zu),另一个在太空中,可以排除。然而,GSP由于受接收机时钟偏差等因素的影响,导致了测距误差的产生,为了计算这个偏差量,还需要已知第四个卫星S4的位置(x4,y4,z4)以及第四个卫星到用户的距离ρ4才能对目标进行定位,以消除定位偏差bu=cΔt,其中c为光速,Δt为各种因素导致的时间延迟偏差。所以,GPS卫星定位的基本方程为:
这这个定位方程中,需要已知卫星位置(xi,yi,zi)和卫星接收机的伪距ρi,i=1,2,3,4。
2)卫星位置的确定:
前面得到的ECEF坐标系的卫星位置计算公式是在不考虑摄动影响下得到的,而在实际应用中,摄动的影响不容忽视。公式中Ωer是与卫星信号发射时刻t紧密相关的,因此信号的发射时刻t的精确程度也直接影响卫星位置的解算精度。
①摄动:
摄动是一个天体绕另一个天体规律运动时,因受别的天体的吸引或其他原因的影响,在轨道上产生的偏差。卫星在绕地球运动时,受太阳和月亮对卫星的影响,同时由于地球是不规则的椭球体,这样会影响卫星的运动。这些因素对卫星轨道的影响是通过一些常数来修正的,这些常数由卫星星历数据提供。
这些常数共有9个,Δn、i*、Ω*、Cus、Cuc、Crs、Crc、Cis、Cic。在ECEF坐标系的卫星坐标公式中,Δn、i*、Ω*分别对M、i和Ω进行先行校正,Cus、Cuc一起对υ+ω进行正、余弦调和校正,Crs、Crc一起对r进行正、余弦调和校正,Cis、Cic一起对i进行正、余弦调和校正。令u=υ+ω为卫星信号发射时刻的纬度,则校正之后的各参数为:
式中,toe为星历参考时刻;Ωer为toe时刻升交点赤经;Ω*为赤经变化率;Ω*ie为地球自转角速率常数,值为7.2921151467×10-5rad/s;M0为toe时刻的平近点角;μ为万有引力常数,在WGS-84系统中,μ
将这个修正之后的参数代入ECEF坐标系的卫星位置计算公式,即可得到考虑摄动时的卫星位置坐标计算公式。然而,在这个修正公式中,卫星信号的发射时刻t仍然是个未知量。
②发射时刻GPS系统时间的修正:
计算卫星位置的计算公式中用到的时间t是指卫星信号的发射时刻,若忽略卫星的时钟误差,所以的卫星信号都是在同一时刻发送的。但由于不同的卫星信号经过的传输路径不同,因此传输时间也就不相同。若以发射时刻t为参考时刻,那么在接收机端接收到的时间是不相同的,这似乎不合理。因此在计算用户位置时,通常选择接收时间tu为参考点,并用tu反推发射时刻t。如果已知第i颗卫星到接收机的伪距ρi,则有:t=tu-ρi/c
式中,tc为发射时刻的组略值。受其他因素影响,卫星信号发射时刻的t会被不断修正。由于在确定卫星位置时需要计算t和星历参考时刻toe之间的差,即差值tk=t-toe,这里用tc代替t,这个差值必须考虑是周转换开始或者结束。
因为GPS时间在周六午夜零时重新置零,tk有时会引入604800s的偏差,故需要对tk调整。如果tk=tc-toe>302400,则tk→tk-604800或tc→tc-604800;如果tk=tc-toe<-322400,则tk→tk+604800或tc→tc+604800。上述调整可以看作信号发射时间的秒级调整,接下来对发射时刻t进行更精细的调整,即修正卫星时钟偏差和群延时误差对t的影响。
式中,af0、af1、af2、toc、TGD都是由群延迟误差引起的修正项,都由星历数据给出。
es为卫星轨道偏心率,由星历数据给出;E为偏近点角。至此,关于卫星位置解算时所需要的全部信息都已获得。
3)卫星在ECEF坐标系中的位置:
解算卫星位置所需的星历数据见下表:
编号 | 参数 | 物理意义 |
---|---|---|
1 | toe | 星历基准时间 |
2 | as1/2 | 卫星轨道长半轴的平方根 |
3 | es | 卫星轨道偏心率 |
4 | i | 卫星轨道倾角 |
5 | Ωer | toe时刻升交点赤经 |
6 | ω | toe时刻的近地点角距 |
7 | M0 | toe时刻的平近点角 |
8 | Δn | 卫星平均运动速率的校正量 |
9 | i* | 卫星轨道倾角变化率 |
10 | Ω* | 升交点赤经变化率 |
11 | Cuc | 对纬度的余弦校正量 |
12 | Cus | 对纬度的正弦校正量 |
13 | Crc | 对卫星和地心距离的余弦校正量 |
14 | Crs | 对卫星和地心距离的正弦校正量 |
15 | Cic | 对卫星轨道倾角的余弦校正量 |
16 | Cis | 对卫星轨道倾角的正弦校正量 |
17 | af0 | 卫星时钟的时间漂移 |
18 | af1 | 卫星时钟的频率漂移 |
19 | af2 | 卫星时钟的频率漂移率 |
20 | toc | 卫星时间校正的基准时间 |
21 | TCD | 卫星群延迟校正项 |
⑴对tk进行校正:
如果tk=tc-toe>302400,则tk→tk-604800或tc→tc-604800;
如果tk=tc-oe<-322400,则tk→tk+604800或tc→tc+604800。
⑵计算卫星发射信号时刻t:
用下式修正卫星时钟偏差和群延迟误差后的卫星信号发射时刻:
⑶计算卫星发射信号时刻的平近点角M:
⑷计算偏近点角E:
使用迭代方法计算近点角E:Ek+1=M+essinEk
令E0=M。
⑸计算真近点角:
υ=sign(υ2)υ1
⑹计算卫星信号发射时刻的升交点纬度u:
u=ω+υ
⑺校正r:
计算卫星信号发射时刻的卫星和地心距离r:
r=as(1-escosE)
⑻校正Ωer、u和i:
校正公式:
Ω*ie为地球自转角速率常数,值为7.2921151467×10-5rad/s。
⑼计算卫星距离:
根据校正后的参数计算卫星距离:
上式是考虑了摄动,并对发射时刻进行校正后的卫星位置计算公式。有些资料上在计算卫星位置时并未考虑时钟修正项,即没有上述步骤的第2步,直接使用tc来代替t来计算卫星的概略位置。在上式中,对时间求导即可得到卫星速度的计算公式。
4)伪距测量:
通常对地球上任意一点进行定位时,即使已知卫星的坐标,也不能直接得到卫星到目标点的距离。GPS根据位移和速度的关系来确定距离:ρ=υ·t
如果已知速度υ,只要测得传播时间t,就可以测得卫星到用户的距离。
GPS信号采用的测距码是伪随机码,民用的伪码信号通常称为C/A码,C/A码经过一定的传播时间τ后被用户接收。假设接收机时钟与卫星时钟精确同步,发射C/A码c(t)与接收到的C/A码c(t-τ)以及本地C/A码之间的关系如下图。只要测得传播时间τ就可以测得距离。
为了测得τ,需要用接收机接收卫星的信号,并对接收到的具有特定形式的伪码信号进行跟踪,只要完成对伪码的跟踪就能够确定信号的传播时间τ。
关于跟踪,可以理解为,在接收机端产生一个与某卫星的C/A码信号完全相同的C/A码,但由于不知道接收C/A码起始位置,接收机端产生的本地C/A码与接收C/A码并不对齐,根据某种策略计算出二者的时间差,并不断调整接收机端产生的C/A码,使之与接收信号的C/A码码完全对齐,即完成跟踪。一旦跟踪完成,就能够确定接收信号的C/A码的起始位置,即可测定信号的传播延迟时间τ。已知信号的传播速度c和信号的传播时间τ,根据公式ρ=c·τ即可测得卫星到用户的距离。这就是伪码测距的基本原理。
5)求解用户位置:
根据上述方法已经测得了卫星到接收机的伪距,那么定位方程中解算接收机位置的信息都已获得,可以进行导航解算。由于方程是非线性方程组,很难直接解算出用户位置,一个采用的方法是对方程进行线性化。对方程微分可得:
式中:
则方程的解为:
令:
A-1表示A的逆。方程中,卫星位置(xi,yi,zi)已知,伪距ρi已知,可以采用迭代法计算用户位置(xu,yi,zi)和时钟偏差bi。具体步骤为:
⑴给用户位置设定初值xu0、yu0、zu0、bu0,例如可设为0、0、0、0
⑵根据前面给出的ρi的方程计算伪距,得到计算值ρi’,并计算与ρi之间的偏差Δρi。
⑶根据上面的公式计算Δxu、Δyu、Δzu、Δbu,并计算误差:
⑷如果e小于给定的门限值,则计算结束,且xu=xu0+Δxu,yu=yu0+Δyu,zu=zu0+Δzu,bu=bu0+Δbu。否则转到⑸。
⑸令xu1=xu0+Δxu,yu1=yu0+Δyu,zu1=zu0+Δzu,bu1=bu0+Δbu。,并将初值改变为xu0=xu1,yu0=yu1,zu0=zu1,bu0=bu1。
⑹重复⑴到⑸的步骤,直到误差e小于门限值。
上述计算中,假设卫星数目为4,当卫星数目大于4时,可用最小二乘法和迭代法相结合的方式求解用户位置。若卫星数目为n,矩阵A为n×4矩阵,方程变为:
然后再利用迭代法的6个步骤进行用户位置的解算。
5. GPS信号与导航电文:
卫星位置和用户位置信息的获取都需要用到星历数据,而星历数据是以导航电文的形式调制在伪码上的。同时,为了提高伪码在远距离传输的抗干扰能力,需要对低频伪码用高载波进行频谱扩展。
1)GPS信号:
GPS导航电文以数据码的形式调制在伪码上,为了提高1.023MHz伪码的抗噪声能力,需要将其频谱扩展,用高频载波发送出去。发射信号的形式可用表示为:si(t)=Pdi(t)ci(t)cos(2πfct+φi)
式中,P为发射信号功率,di(t)为第i个卫星的数据码,值为±1;ci(t)为第i个卫星的伪码,值为±1;fc为载波频率。
上式仅为一个射频段上的发射信号模型,实际发射的GPS信号为L1和L2频段上的混合信号,这两个频段上的信号都具有类似的形式,这里都以L1频段上的信号来介绍。
接收端接收到的信号是具有实际延迟的调制信号:ri(t)=Pdi(t-τ)ci(t-τ)cos(2π(fc+fd)t+φi)
为卫星和用户运动引起的频率偏移,fd称为多普勒频移。要想得到包含卫星位置信息的数据码,需要对接收信号进行解调和解扩,即将伪码和载波从接收信号中剥离,这实际上就是伪码跟踪和载波跟踪的过程。伪码跟踪和载波跟踪是由伪码跟踪环和载波跟踪环来实现的。
①载波:
GPS信号的载波是高频正弦波,有L1和L2两个频段。其中L1载波的频率为1575.42MHz,波长约为19cm;L2载波的频率为1227.6MHz,波长约为24.4cm。卫星信号的载波信号是通过卫星提供的原子钟的基准频率f0=10.23MHz来产生的,L1和L2载波频率与基准频率的关系为:f1=154f0,f2=120f0。
②伪码:
GPS信号实际上是一个码分多址(CDMA)的扩频信号,其中实现扩频的码就是伪码。虽然不同的卫星占据相同的频率,但却具有不同的伪码,而不同卫星伪码的形式和结构是已知的,因此在接收到信号后,就可以根据接收机接收到的伪码来识别是哪颗卫星发射的信号。
伪码的全称是伪随机码,是指具有类似随机特点的一种码,但这种码是认为产生并重复的,具有周期性。GPS采用的伪码有C/A码和P码,前者称为粗/捕获码,也就是所说的民用码;后者为精码,为美国军方所用。C/A码调制在L1频率上,速率为1.023MHz,周期1ms,一个C/A码周期有1023个码片,不同卫星具有不同的C/A码。如果用正电平表示0,用负电平表示1,C/A码示意图见下图。P码调制在L2载波上,其速率为10.23MHz,周期比38周还长,但每周P码都会复位,不同的卫星使用P码的不同区段。
C/A码属于Gold码的伪随机系列,由两个1023位的伪随机序列产生器G1和G2产生。G1和G2都是10位最大长度的线性移位寄存器,并由1.023MHz的时钟驱动,见下图。
通常,将移位寄存器最后一级的输出作为序列的输出,称为最大长度序列MLS输出。然而G2并不采用MLS输出作为其输出,而是采用称为码相位选择的两个位经一个模2加法器产生,G2输出是延迟后的MLS输出,而延迟时间是由所选择的两个相位输出点决定。
G1和G2的工作原理类似,都是MLS产生器,MLS是由带适当反馈的移位寄存器构成,n位移位寄存器产生的序列长度为2n-1。G1和G2的长度都是10,所以产生的序列长度为1023,反馈电路由模2加法器实现。如果用正电平1表示0,用负电平-1表示1,则模2加法可表示为乘法,运算规则见下表。
G1的反馈抽头连接了第3级和第10级,相应的反馈多项式为1+x3+x10;G2的反馈抽头连接了第2、3、6、8、9、10级,相应的反馈多项式为1+x2+x3+x6+x8+x9+x10。图示的C/A码发生器采用G1和G2的输出作为输入,再用另外一个模2加法器产生C/A码。两个移位寄存器G1和G2的初值全是1,且预先置入寄存器,而且卫星号的选择是根据G2选择器的两个输出位置来决定。有37个不同的输出序列,其中33个序列分别为32颗卫星使用,但目前在轨卫星仅有24颗,另外5个序列留作他用,如地面发射等。下表列出了不同卫星的码相位分配表:
卫星 编号 |
GPS 伪码编号 |
码相位 选择 |
延迟 码片数 |
C/A码前10个码片 (二进制,第1个C/A码为左边第1个码) |
---|---|---|---|---|
1 | 1 | 2⊕6 | 5 | 1100100000 |
2 | 2 | 3⊕7 | 6 | 1110010000 |
3 | 3 | 4⊕8 | 7 | 1111010000 |
4 | 4 | 5⊕9 | 8 | 1111100100 |
5 | 5 | 1⊕9 | 17 | 1001011011 |
6 | 6 | 2⊕10 | 18 | 1100101101 |
7 | 7 | 1⊕8 | 139 | 1001011001 |
8 | 8 | 2⊕9 | 140 | 1100101100 |
9 | 9 | 3⊕10 | 141 | 1110010110 |
10 | 10 | 2⊕3 | 251 | 1101000100 |
11 | 11 | 3⊕4 | 152 | 1110100010 |
12 | 12 | 5⊕6 | 254 | 1111101000 |
13 | 13 | 6⊕7 | 255 | 1111110100 |
14 | 14 | 7⊕8 | 256 | 1111111010 |
15 | 15 | 8⊕9 | 257 | 1111111101 |
16 | 16 | 9⊕10 | 258 | 1111111110 |
17 | 17 | 1⊕4 | 469 | 1001101110 |
18 | 18 | 2⊕5 | 470 | 1100110111 |
19 | 19 | 3⊕6 | 471 | 1110011011 |
20 | 20 | 4⊕7 | 472 | 1111001101 |
21 | 21 | 5⊕8 | 473 | 1111100110 |
22 | 22 | 6⊕9 | 474 | 1111110011 |
23 | 23 | 1⊕3 | 509 | 1000110011 |
24 | 24 | 4⊕6 | 512 | 1111000110 |
25 | 25 | 5⊕7 | 513 | 1111100011 |
26 | 26 | 6⊕8 | 514 | 1111110001 |
27 | 27 | 7⊕9 | 515 | 1111111000 |
28 | 28 | 8⊕10 | 516 | 1111111100 |
29 | 29 | 1⊕6 | 859 | 1001010111 |
30 | 30 | 2⊕7 | 860 | 1100101011 |
31 | 31 | 3⊕8 | 861 | 1110010101 |
32 | 32 | 4⊕9 | 862 | 1111001010 |
** | 33 | 5⊕10 | 863 | 1111100101 |
** | 34 | 4⊕10 | 950 | 1111001011 |
** | 35 | 1⊕7 | 947 | 1001011100 |
** | 36 | 2⊕8 | 948 | 1100101110 |
** | 37 | 4⊕10 | 950 | 1111001011 |
用本地码识别是哪颗卫星发射的伪码,利用的伪码的相关性。GPS的C/A码具有很强的自相关性和较弱的互相关性,即相同的C/A码之间具有较高的相关性,不同的C/A码之间近似正交,相关值近似为0。伪码序列的自相关函数可以表示为:
式中,τ为一个伪码序列与其移位序列之间的位移量,通常以码片Tc为单位;T为伪码周期,对于C/A码,T
伪码的互相关函数表示为:
式中,s1和s2分别为不同的伪码序列。C/A码的互相关值也有三个,-65/1023、1/1023、63/1023,即C/A码的互相关值近似为0。
可以看出,相关值只与时间延迟τ有关,而与从何时开始进行相关、相关周期是多少无关。正是这个特性,使接收机端能够通过产生并移动本地的C/A码,与接收信号的C/A码进行相关运算,得到不同延迟下的相关输出值。当在接收机端产生某一卫星的C/A码,使之与接收信号C/A码进行相关运算,所相关输出值大于某阈值时,认为本地产生的C/A码与接收到的某一卫星的C/A码相同,从而可知卫星的编号。若没有明显的相关输出峰值,则认为接收信号中不包含该卫星发出的信号。若相关输出值超出阈值,则根据相关输出值的大小通过R(τ)=1-|τ|来计算本地码与接收码之间的时间延迟τ,并移动本地码使之与接收码对齐,这实际上是信号同步。信号同步包括捕获和跟踪,前者是粗同步,同步精度通常为1个码片后者是精同步,同步精度可达1/10甚至1/100个码片。
③数据码:
导航电文即数据码,其原始编码也是二进制编码0和1。数据码和伪码都是以不归零二进制码的形式进行传播的,用高电平表示二进制码0,用低电平-1表示二进制码1。导航电文的传播速率是50bit/s,每个码位占时20ms,数据码携带导航信息,每个数据码包含20个伪码周期。
2)导航电文:
①导航电文的格式:
导航电文是GPS信号中调制的数据,数据率50bit/s,每个数据长20ms,30个数据为一个字,10个字组成一个子帧,5个子帧为1页,25页为一套完整的导航电文。
数据 | 数据位 | 字 | 子帧 | 页 | 套 |
---|---|---|---|---|---|
时间长度 | 20ms | 600ms(30×20ms) | 6s(10×600ms) | 30s(5×6s) | 12.5min(25×30s) |
每个子帧的前两个字分别为遥测字TLW和交接字HOW,后面8个字组成数据块。通常,第1个子帧中的数据块称为第一数据块,第2、3子帧中的数据块称为第二数据块,第4、5子帧中的数据块称为第三数据块。其中,第一数据块和第二数据块包含导航解算所需的星历数据,第三数据块则包含历书数据。
在一个新的GPS星期开始的那一刻开始播发第1子帧的第1个数据,顺序播发全部25页数据。若某一页的第1子帧、第2子帧和第3子帧的内容需要更新时,新的导航电文从该页的边缘处开时播发,即需要更新该页的全部5个子帧的数据;若第4、5子帧的内容需要更新时,只需要更新该页的第4、5子帧即可,前3个子帧无需更新。
②遥测字和交接字:
每个子帧的前两个字分别为遥测字TLW和交接字HOW,每个字都有30bit。TLW主要用于子帧同步搜索,因为TLW的前8个bit是固定的同步码10001011,TLW的前30bit数据分布为:
HOW的30bit数据分布如上图,它提供的信息包括:
⑴周内时计数TOW:由TOW的前17位提供。TOW将一周的604800s以6s为单位划分为100800个周内计数,第一个计数值为0,最大计数值为100799。6s正好是一个子帧的长度,所以一周共有100800个子帧。TOW给出的是下一个子帧开时的周内计数,当前子帧的起始时刻为6×(TOW-1)s。若到了TOW,就可以知道后续任一数据码处的GPS时间。若当前子帧的周内计数为100,则当前子帧的第5个字的第20bit的GPS时间为:
6×(100-1)+4×0.6+20×0.02=596.8s
该式中的4是指该子帧的前4个字,每个字占时0.6s,20是第5个字的第20个bit,每个数据码占时0.02s。可以看出,TOW提供的卫星信号发射时刻的精度为20ms,即一个数据位。而高于20ms的精度只能通过信号的伪码跟踪环路提供的信息来确定。
⑵标记位:为HOW字的第18、19bit。对于block II卫星来说,第18bit为报警位,第19bit为反欺骗位。
⑶子帧号:为HOW字的第22~22bit,它们的值为001、010、011、100、101,分别表示第1、2、3、4、5子帧,用于子帧匹配。
⑷奇偶校验位:HOW字的后6bit用于奇偶校验,以检验数据的正确性和极性。
③子帧匹配和奇偶校验:
当跟踪环进入稳定的跟踪状态,并找到第一个导航数据跳变点后,就可以根据每20s输出的数据得到导航信息。这些解调出的导航数据是否正确,还需要进行子帧匹配和奇偶校验。
子帧匹配的目的是找到子帧的起始位置,然后根据这个起始位置找到交接字HOW的后两位,并校验其极性的正确性。在实际的信号处理过程中,用正电平1表示二进制0,用负电平-1表示二进制1,即所有的导航数据都被表示为1和-1的数据流。由于跟踪环解调出的数据存在0和π的相位模糊,即1可能被解调为1也可能被解调为-1。校正导航数据极性的工作是通过奇偶校验来完成的,而要进行奇偶校验就要先找到子帧的起始位置,即进行子帧匹配。
⑴子帧匹配:
子帧匹配根据遥测字TLW的同步码来实现。TLW的8bit同步码为10001011,转换为1和-1后的同步码为-1111-11-1-1。解调后该同步码可能被输出为-1111-11-1-1,也可能输出其反向值1-1-1-11-111。子帧匹配时,需要找到同步码的第一个数据码所在位置,由于子帧的第一字的极性未知,在进行相关时,设定的相关码可以为-1111-11-1-1,也可以为1-1-1-11-111。假设选择的相关码为1-1-1-11-111,则用第1个子帧的导航数据(每次用8bit)与该同步码进行相关时得到的相关值可能是8也可能为-8,即相关值为±8的导航数据段为某一子帧的同步码。为了保证解调出的导航数据中总存在一个同步码,选择的数据长度通常为360个数据码,即一个子帧加两个字。子帧匹配示意图:
上图中,将解调出的360bit导航数据以第一数据码开时的连续8bit作为一个同步数据块,这8bit数据块与设定的相关码进行相关运算(对应位相乘再相加)得到第一个相关输出结果4,然后将这8bit数据块后移一位再与设定相关码进行相关,得到第2个相关结果-2。以此类推,总共可得到353个相关输出结果。在这353个相关输出中,第8个相关输出结果为8,可知在选定的360个导航数据中,第8个数据码是某子帧的第1个数据位。然而,在这353个相关输出结果中,可能有多个相关输出为±8,可以检测连续3个子帧的同步码,若检测到第m个数据块的相关输出结果为8,则从第(m+300)和第(m+600)个数据码开时的连续8bit数据块与设定的相关码的相关输出也应该为±8;否则,第m个导航数据不是某一帧的第一个数据位。
⑵奇偶校验:
确定了子帧的起始位置后,就可以对数据的极性进行检验。导航电文的每一个字都要进行奇偶校验,子帧的每一个字的后6bit(25~30)都是奇偶校验位。在进行奇偶校验时,要用到8个奇偶位,即当前字的6个奇偶位和前一个字的最后2个奇偶位(29,30),如图:
若当前字的各位记为D1、D2、……、D30,前一个字的后两位记为D*29、D*30,则奇偶校验是将D*29、D*30与D1、D2、……、D24作为奇偶校验的输入,即分别与D*30进行异或运算,得到结果分别为d1、d2、……、d24,然后将这24个结果与D*29、D*30进行编码运算得到d*25、d*26、……、d*30。若d*25、d*26、……、d*30与D25、D26、……、D30的结果一致,则导航数据校验通过,且将d1、d2、……、d24、d*25、d*26、……、d*30作为极性校正后的当前字;否则说明出现误码,当前子帧不可用。公式表示为:
若H6×24的某一行进行异或运算时存在di,则该行的第i个元素为1;若不存在di,则改行的第i个元素为0。符号⊕表示矩阵H6×24的每一行分别与[D*29 D*30 D*29 D*30 D*29 D*30]T的对应元素进行异或运算,如:
式中,⊕为异或运算。可以看出,除最后一行外,H6×24的每一行均为前一行的循环变化。
需要注意,当用正电平1表示二进制0、用负电平-1表示二进制1时,异或运算可以表示为相乘运算。当D*30=1,则D1、D2、……、D24的极性不变;若D*30=-1,,则将D1、D2、……、D24的极性反向。
根据每一帧的第2个字HOW的第20~22bit确定子帧号,子帧号必须是1~5,且按1、2、3、4、5、1……的顺序排列。若子帧号不满足上述规则,说明解码错误。
奇偶校验的另外一种简便方法是利用HOW字的最后两位。当导航电文的极性正确时,最后两位的值应为-1-1,而实际上这两位的值也可能为11。但如果这两位的值为1-1或-11,说明导航解调错误;如果HOW字的最后两位的值为11,HOW字的极性就正确,子帧号由HOW字的第20~22位确定;如果HOW字的最后两位的值为-1-1,HOW字的极性必须求反,然后再得到子帧号。根据子帧号可以搜索子帧1、2、3的起始位置,这三个子帧包含了计算用户位置的信息。
④子帧1的导航数据:
对每一个子帧的所有导航电文顺序编码。子帧1的第一个数据码编号为1,第5个字的第30个数据编号为300,则子帧1包含的星历数据如下表:
参数 | 位置 | 位数 | 格式 | 比例因子 | 有效范围 | 单位 |
---|---|---|---|---|---|---|
WN:星期数 | 61~70 | 10 | 二进制 | 1 | 星期 | |
URA:卫星精度 | 73~76 | 4 | 二进制 | 0~15 | 无量纲 | |
卫星健康状况 | 77~82 | 6 | 二进制 | 1 | 无量纲 | |
IODC:时钟发布号 | 83~84,211~218 | 10 | 二进制 | 无量纲 | ||
TCD | 197~204 | 8 | 二进制补码 | 2-31 | s | |
toc | 219~234 | 16 | 二进制 | 24 | 0~604784 | s |
af2 | 241~248 | 8 | 二进制补码 | 2-55 | s/s2 | |
af1 | 249~264 | 16 | 二进制补码 | 2-43 | s/s2 | |
af0 | 271~292 | 22 | 二进制补码 | 2-31 | s |
⑵卫星精度URA:给出了对用户测距精度的预测,N值的范围为0~15,对应的精度值X为:
N值越大,表示利用该卫星信号得到的GPS距离测量值的精度越低。当N=15时,URA的值默认,此时用户应根据实际情况确定是否要使用该卫星。
⑶卫星健康状况:共6bit。若最高位为0,则表示导航电文全部正确;若最高位为1,则表示导航电文出错。低5bit则指出信号出错的具体情况。
⑷数据与时钟发布号IODC:是用10bit表示的时钟数据块的编号,一个IODC值对应一套时钟校正参数。IODC在7天内不会发生变化。如果某个卫星播发了一个新的IODC,说明该卫星更新了时钟校正参数;否则,说明时钟校正参数未被更新。若时钟校正参数未被更新,则不必每隔30s都要读取时钟校正参数。
⑸群延迟校正值TGD:用于卫星信号发射时间修正,见之前的介绍。
⑹卫星时钟修正值af2、af1、af0:用于卫星发射信号时间修正,参加之前的介绍。
有些参数是以二进制补码形式给出,计算时需要换算成十进制:
最后乘以相应的比例因子,即为该参数的实际十进制值。对于以二进制表示的参数,直接将其转换为十进制并乘以对应的比例因子即可。
⑤子帧2的导航数据:
子帧2包含的星历数据见下表:
参数 | 位置 | 位数 | 格式 | 比例因子 | 有效范围 | 单位 |
---|---|---|---|---|---|---|
IODE:星历发布号 | 61~68 | 8 | 二进制 | 1 | 无量纲 | |
Crs:轨道半径的正弦调和修正项幅值 | 69~84 | 16 | 二进制 | 2-5 | m | |
Δn:平均角速度修正值赋值 | 91~106 | 16 | 二进制补码 | 2-43 | πrad/s | |
M0:参考时间的平近点角 | 107~114,121~144 | 32 | 二进制补码 | 2-31 | πrad | |
Cuc:卫星信号发射时刻纬度的余弦调和修正项赋值 | 151~166 | 16 | 二进制补码 | 2-29 | rad | |
es:卫星轨道偏心率 | 167~174,181~204 | 32 | 二进制 | 2-33 | 0~0.03 | 无量纲 |
Cuc:卫星信号发射时刻纬度的正弦调和修正项赋值 | 211~226 | 16 | 二进制补码 | 2-29 | rad | |
as1/2:卫星轨道长半轴平方根 | 227~234,241~264 | 32 | 二进制 | 2-19 | m1/2 | |
toe:星历数据的参考时刻 | 271~286 | 16 | 二进制 | 24 | s |
⑵其他各项:参考之前的介绍。要注意一些参数的单位,有的为rad,有的为πrad,在计算时需统一单位。换算方法为,将单位πrad的参数乘以π即可得到单位为rad的参数。
⑥子帧3的导航数据:
子帧3包含的星历数据见下表:
参数 | 位置 | 位数 | 格式 | 比例因子 | 有效范围 | 单位 |
---|---|---|---|---|---|---|
Cic:轨道倾角的余弦调和修正项幅值 | 61~76 | 16 | 二进制补码 | 2-29 | rad | |
Ωer:卫星轨道的升交点经度 | 77~84,91~114 | 32 | 二进制补码 | 2-31 | πrad | |
Cis:轨道倾角的正弦调和修正项幅值 | 121~136 | 16 | 二进制补码 | 2-29 | rad | |
i0:参考时刻的卫星轨道倾角 | 137~144,151~174 | 32 | 二进制补码 | 2-31 | πrad | |
Crc:卫星轨道半径的余弦调和修正项幅值 | 181~196 | 16 | 二进制 | 2-5 | m | |
ω:近地点角距 | 197~204,211~234 | 32 | 二进制补码 | 2-31 | πrad | |
Ω*:升交点经度变化率 | 241~266 | 24 | 二进制补码 | 2-43 | πrad/s | |
IODE:星历发布号 | 271~278 | 8 | 二进制 | 1 | 无量纲 | |
i*:轨道倾角变化率 | 279~292 | 14 | 二进制补码 | 2-43 | πrad/s |
⑵其他各项:参考之前的介绍。
⑦子帧4和子帧5的导航数据:
⑴子帧4有6种格式:
1、6、11、16、21页是一种格式;
12、19、20、22、23、24页是一种格式;
18页是一种格式;
25页是一种格式;
2、3、4、5、7、8、9、10页是一种格式;
与子帧5的1~24页格式相同。
⑵子帧5有两种格式:
1~24页为一种格式,包含1~24号卫星的历书数据;
25页是一种格式,包含1~24颗卫星的健康状况、历书数据和历书参考星期数。
子帧4和子帧5包含的历书参数有es、历书参考时刻toa、周内时为0时的轨道升交点赤经Ω0、as1/2、ω、M0、af0、af1。历书数据比星历数据的精确度差很多,但其具有较长的有效期,可用于接收机的暖启动。
子帧5的第18页中包含电离层校正参数(Klobuchar模型):
参数 | α0 | α1 | α2 | α3 | β0 | β1 | β2 | β3 |
---|---|---|---|---|---|---|---|---|
bit | 69~76 | 77~84 | 91~98 | 99~106 | 107~114 | 121~128 | 129~136 | 137~144 |
3)伪距的获取:
一旦完成跟踪,就可以根据跟踪结果和导航电文确定信号传输延迟时间τ,τ乘以光速c即可得到卫星到接收机之间的距离。但τ在测定的过程受到各种误差源的影响,如电离层延迟、对流层延迟、卫星和接收机钟差等因素的影响,导致获得的距离并不是真实的距离,称这个距离为伪距。
C/A码的周期是1ms,对应的距离约为300km,而GPS卫星到地面的距离大约为20200km,在这段距离上有(67~86)
卫星到接收机之间需要传播的时间范围为67~68ms,也就是不同卫星信号到达接收机之间的时间差不超过19ms。在GPS卫星端,在高精度时钟的控制下,不同卫星的子帧1的第一个数据位是在同一时刻发送的,而一个导航数据位为20ms,因此接收机接收到不同卫星的子帧1的第一个数据位的时间差不应超过19ms,该时间差见下图。
上图中,i为第i个卫星,τi为第i个卫星的传播时间延迟,67ms≤τi≤86ms;Δτi,1为第i个卫星与第一个卫星之间的信号传播时间延迟之差,|Δτi,1|≤19ms。
软件接收机中,采集到的数据没有固定的时间参考,开始采样到的第1个数据点是随机的,通常情况下不会正好为子帧1的第1个数据点。这些采样数据点之间的间隔为采样间隔Ts,Ts=1/fs,fs为采样频率,在处理数据时用到的时间是指距离第一个采样点的时间。接收机的目的是找到子帧1的第1个采样点的位置n,导航电文与采样点之间的关系见下图:
当跟踪环路完成信号跟踪后,就可以解调出导航数据,即将每20ms数据转换成1和-1。导航数据的转换方法是从接收数据中找到第一个相位跳变点,一种常用的方法是根据相邻ms输出之间的差值是否超过某阈值来判断数据跳变,即相邻ms输出之间的差值超过该阈值时,认为数据发生了跳变,根据这些跳变可将跟踪结果转换为导航数据。在上图中,接收到的数据是以采样点来计数的,假设采样频率为fs,若第一个导航数据跳变点发生的时间为tnav1,则tnav1的时间分辨率为1ms,因为它是根据相邻ms数据差值是否超过阈值来判断数据跳变的。
发射端C/A码的起始位置和导航数据的起始位置是严格对齐的,只是接收端C/A码的起始位置发生了移位,即移位后的C/A码与导航数据起始位置对齐。根据相邻ms输出之间的差值来判断导航数据跳变时,精度1ms,分辨率为1/fs,而高于1ms的精度由跟踪环提供。找到第一个数据跳变点,就可以将接收到的采样数据划分为两部分,如上图中虚线,左半部分是跳变前的数据,右半部分是跳变后的数据。对于跳变前的数据,按每20ms进行划分,可知跳变点之前共有p个完整的导航数据和q毫秒不完整的导航数据。在跳变点之后,从1开始对导航数据进行计数,直到找到子帧1的第1个导航数据位。若子帧1的第一个数据位发生在跳变后的第s个导航数据点,则在子帧1的第1个导航数据位之前共有(p+s-1)个完整的导航数据位,即(p+s-1)个20ms和qms不完整的导航数据位。
至此,对时间延迟的估计可以精确到1ms,对于高于1ms精度则有跟踪环来提供,其中粗跟踪可以将时间精度提高到1个C/A码码片(约977ns),而精跟踪可以将精度提高到1个C/A码码片以内。假设粗跟踪确定的伪码相位为第a个码片,1≤a≤1023,精跟踪确定的精确时间为b,b<Tc。a和b的值合称精确时间tfin,由跟踪环路以采样个数的形式提供,且1≤tfin≤fs/1000。那么,子帧1的第1个导航数据对应的采样点编号为:
式中,fs/1000为每1ms上的采样点个数。
在上述阐述中,默认每毫秒输出一个精确时间,实际上为了提高信噪比,使tfin输出结果更加平滑,通常采用连续r毫秒的码相位平均值作为tfin,即每毫秒进行一次相关运算,并根据r个相关输出的平均值计算码相位。此时,每隔r毫秒才输出一个码相位,r常取5和10,相关积分时间为1ms。假设当前r毫秒数据的相关输出之和为R1,上一个r毫秒数据的相关输出之和为R0,为了判断第几个r毫秒数据发生了相位跳变,需计算R1与R0的差,若该差值超过某一阈值就认为当前r毫秒数据中发生了相位跳变,否则认为当前r毫秒数据无相位跳变。而为了以1ms的精度判断出导航数据跳变点,需要对发生相位跳变的那r毫秒数据的r个相关输出再进行分析,以找出相位跳变点发生在哪个1ms。若跳变点发生在第pr个r毫秒的第qrms处,在第一个导航数据跳变点之后的第s个导航数据位为子帧1的起始点,跟踪输出为tfin,如下图:
则子帧1起始点对应的采样点n为:
上式中,第一部分表示第1个导航数据跳变点子帧1之间有(s-1)个导航数据;第二部分表示跳变点之前有(pr-1)个r毫秒数据;第三部分表示在第pr个r毫秒数据的第qrms处发生了相位跳变;第四部分为跟踪输出的精确时间。
根据上述方法,可以求得多颗卫星的子帧1起始位置对应的实际采样点,由采样点表示的子帧1的起始位置的值非常大,表述时不方便。软件接收机中,用不同卫星传播时间只差来表示,以ni表示第i颗卫星子帧1的起始位置,若以第1颗卫星为参考,则第i颗卫星的子帧1与第1颗卫星子帧1之间的时间差可表示为:Δτi,1=(ni-n1)×1/fs
上式在计算过程中可能有正有负,因此再将其上加上一个常数const使其伪证,如const=75ms。这个常数不是必须的,若不加,在进行解算时的时钟偏差的值会较大。根据不同卫星子帧1起始位置的时间差可计算第i颗卫星接收机的伪距为:ρi=(const+Δτi,1)×c
式中,c为光速,其值为299792485m/s。在实际计算中,还应该包括电离层延迟和对流层延迟的修正项,但这需要利用子帧4的相关信息。
上面主要介绍了找到子帧1起始点对应的采样点,并求取接收机接收到不同卫星信号的子帧1之间的时间偏差,并将该值用于伪距提取。
6. 射频前端:
在GPS接收机中,天线用于接收GPS卫星发射的射频信号,射频前端将射频信号转换为接收机可以处理的中频信号。射频前端的噪声性能直接影响着后续基带信号处理部分的性能,包括跟踪环的跟踪精度和导航定位结果的精度。同时射频前端的频率设置决定了接收到的卫星信号的理论中频值,该值是在没有多普勒频移和本地钟漂时的载波频率的理论值,并直接决定了捕获算法的频率搜索范围。
1)硬件结构:
天线与射频前端是接收机的硬件,结构框图见下图。天线以外的所有模块统称为前端,包括放大器、滤波器、混频器和A/D转换器。通常有多个放大器和滤波器,而魂魄器的个数也可能大于1。
①天线:
天线性能决定了其捕获微弱GSP信号的能力,要保证接收到的高仰角卫星和低仰角卫星信号具有相近的强度,以得到较多的可用卫星信号。GPS接收天线都是圆极化工作,一般为右旋圆极化,但当需要用到反射信号实现遥感时也有采用左旋极化天线的情况。接收天线有许多种类,如单极天线、螺旋天线、微带天线等,可根据不同的应用场合选择合适的天线。
②射频前端:
射频前端的功能包括,将信号放大到一定电平,并保证信号不失真;选择信号频带,抑制带外噪声;将高频信号转换为中频信号。
2)卫星信号接收功率:
GPS卫星在L1载波上发射的C/A码信号的功率大概为27W,用分贝表示为14.3dBW。当卫星向空间所有反向均匀发射信号时,信号功率在传输过程中衰减速度与距离的平方成反比。发射功率减去路径损耗后为到达接收机的功率。当卫星仰角90°时,R最小,约为20190km,路径衰减约157.1dB;当卫星处于地平线方向,如仰角5°,R最大,约为25240km,路径损耗约159dB。
实际上GPS卫星的发射天线是对准地球的定向天线,以21.3°的立体角发射信号,这个角度大于覆盖地球所需的最小角度13.87°。卫星天线将发射信号集中于立体角21.3°范围内时,功率将集中于以高为h=[1-cos(21.3°)]、R为半径的球冠内,与全向天线相比,天线增益为:
表示为dB形式约为14.7dB。
考虑到天线增益,在地平线方向的卫星,信号到达接收机天线的功率密度约为:
上式得到的是接收天线处信号的功率密度,若要计算接收信号功率,需要乘以天线的有效面积。天线有效面积与接收信号波长和接收天线增益有关:
对于L1信号,λ=19cm;GRec表示接收天线对某个方向信号的捕捉能力,如果设计为全向则为1。此时接收天线有效面积约为2.872×10-3m2,以dB形式表示为-25.4dB。于是,接收信号功率为:
上面是对接收信号功率的粗略估计,实际数值与卫星仰角及天线增益等多个因素有关。
3)射频前端的功率放大倍数:
一般要求射频前端输出信号电压100mV,输出阻抗50Ω,则输出功率为0.0001W,也就是-40dBW。实际上,接收天线不仅接收GPS信号,还接收噪声。热噪声功率与温度和信号带宽有关:Nin=kTB (W)
式中,k为玻尔兹曼常数,值为1.38×10-23J/K;T为天线处的绝对温度;B为信号带宽。对C/A码,信号带宽2MHz,若T=290K,噪声功率为-141dBW。对比信号功率,可知其值高于信号功率。通常是将噪声功率放大到100mV,此时需要的放大倍数为:-40dB-(-141dB)=101dB。
因此,GPS射频前端需要的净增益约为101dB,这个增益是对滤波器、混频器、线缆损耗补偿后的增益。一般商用GPS接收机前端可以提供90~110dB的增益。
虽然GPS信号相对于噪声信号来说功率很低,但因为利用了伪随机码的相关性,通过对C/A码解扩能带来扩频增益,这样可以有效抑制噪声。解扩是由伪码跟踪环来实现的。
7. 信号的捕获与跟踪:
接收GPS信号时,要解调出导航数据,必须先完成信号同步,即实现伪码同步,而要完成伪码同步必须同时完成载波同步。在信号同步过程中,伪码同步与载波同步是同时进行的,信号同步分为捕获和跟踪两步,捕获完成信号的粗同步,用于搜索可见卫星信号,捕获输出载波频率和C/A码起始相位的概略值;跟踪完成信号的精同步,输出载波相位和精细的C/A码起始相位。
1)同步与跟踪的基本概念:
由于不同卫星采用不同的C/A码,而且对于同一颗卫星其信号从发射到接收产生了时间延迟,使其C/A码相位发生了改变,因此需要对C/A码进行同步,通常称为伪码同步。
对载波同步的原因在于载波频率发生了偏移。由于卫星和接收机之间的相对运动,导致载波频率在接收时偏离其发射频率,称为多普勒效应,载波频率的偏移量称为多普勒频移。必须估计出多普勒频移,才能对信号进行解调,进而对伪码进行解扩。
卫星运动引起的多普勒频移范围为±5kHz,需要注意,只有卫星相对于接收机的径向运动才会引起多普勒频移。对于高速运动的接收机载体,不仅要考虑到卫星运动,还要考虑接收机自身的运动,因此设定多普勒频移范围±10kHz比较合理,这决定信号捕获时对载波频率的搜索范围。
捕获的主要目的是找到可视星信号,而跟踪用于估计多普勒频移和伪码同步的精确值。当捕获发现可视星时,就会给出该可视星信号的多普勒频移和伪码相位的粗略估计值。捕获过程实际上是一个三维搜索过程,第一维是伪码方向,即找到接收到的信号中包含32颗卫星中的哪一颗卫星的信号;第二维是伪码相位方向,即寻找伪码的起始相位是1023个码片中的哪一个;第三维是多普勒频移方向,即寻找多普勒频移范围内的一个确定值。只有这三维搜索的结果与接收信号的实际值相匹配,才会有一个较大的相关输出值。
通常,为了提高捕获速度,伪码相位和多普勒频移的搜索步长都比较长,如伪码搜索步长一般为0.5或1码片,多普勒频移搜索步长与积分时间有关,可以认为是相关时间的倒数。若在没有先验信息情况下,需要对32颗卫星进行盲搜索,对应冷启动,总共需要搜索21×1023×32=687456次。若一次搜索时间为2ms,为一次相干积分时间,采用基于滑动相关的串行搜索时,需要总搜索时间687456×0.002s=1375s,大约需要23min才能搜索到全部可视卫星信号。因此,需要将信号同步分为捕获和跟踪两步,捕获主要用于快速搜索可见星,跟踪则用于估计多普勒频移和伪码相位的精确值,捕获关注速度,跟踪关注精度。
2)信号捕获:
实际的信号捕获中,伪码相位的搜索和载波频率的搜索是同时完成的,只有同时完成伪码剥离和载波剥离以后,才得到一个低频连续波信号,通过积分器后才会出现比较高的相关峰。实际信号捕获过程中,要同时设置好本地伪码和本地载波频率,然后进行相关运算,最后检查相关结果以决定是否实现了信号捕获。信号捕获主要有基于滑动相关的捕获和基于FFT的快速捕获两种。
基于滑动的捕获是一种简单使用的捕获方法,结构包括本地载波发生器、本地伪码发生器、同相I支路乘法器、正交Q支路乘法器、相干积分器、相关峰值检测以及控制逻辑。原理见下图:
其中,相关峰值检测根据I和Q路的相关输出值调整控制本地载波发生器工作在某一固定载波频率处,并控制伪码发生器滑动本地伪码相位,本地伪码滑动范围1~1023码片。
可以看出,信号捕获就是不断调整本地载波和伪码相位的过程,直至载波频率差和伪码相位差为0。实际上只要小于某个门限值,积分器就会输出很强的相关结果,从而将控制权交给跟踪回路。
基于滑动相关的捕获算法是一种串行捕获算法,即每次只输出一个栅格的相关值,因此限制了捕获速度,增加相关器数量,让多个相关器并行处理,可以增加捕获速度,但增加硬件开销。这种方法适用于实时性要求较高的场合。
由于相干积分结果可以通过输入信号与本地信号的卷积运算得到,而时域卷积等效于频域相乘,即相关输出的傅里叶变换为输入信号和本地信号的傅里叶变换之积。若要得到时域相关的结果,可对二信号的傅里叶变换之积求逆变换。对于离散系统,则利用离散傅里叶变换DFT。
3)信号跟踪:
捕获提供了可视卫星载波频率和C/A相位的粗略估计值,随着信号的不断输入,受多普勒频移和信号传播路径的影响,这两个估计值会逐渐偏离真实值。为了保持对可视卫星信号的持续同步,在完成信号捕获后,需要一个跟踪环路对接收信号持续跟踪。
信号跟踪包括伪码跟踪和载波跟踪,通常用延迟锁定环DLL实现伪码跟踪,用锁频环FLL和锁相环PLL实现载波跟踪。伪码跟踪环和载波跟踪环相互耦合、同时工作,伪码跟踪环的输出结果反馈给载波跟踪环,用于对输入信号进行解扩;载波跟踪环的输出结果反馈给伪码跟踪环,用于对输入信号进行解调。
跟踪方法有传统的信号跟踪法和基于数据处理的信号跟踪法BASS。BASS也称为同步信号块调整法,只产生一次本地C/A码就可以一直使用,且不需要初始相位调整。BASS利用两个相邻的1ms数据在最大频率分量处的相位变化量来确定其多普勒频移,进而确定载波频率的精确值,适用于软件接收机,但对噪声敏感。
①数字延迟锁相环:
传统的信号跟踪法基于锁相,基本锁相环由鉴相器、环路滤波器、压控振荡器组成。环路滤波器实际上是低通滤波器,用于滤除鉴相器输出信号中的高频分量和噪声,其输出用于控制压控振荡器,以产生跟随输入信号变化的本地信号。环路滤波器的阶数直接决定整个环路的阶数,环路的阶数总比滤波器阶数多1。当二阶锁相环具有最佳性能时,其阻尼系数为0.707,对于的噪声带宽为1.89ω0。即在最佳阻尼比下,环路噪声带宽与环路的固有频率呈线性关系。
软件接收机一般使用数字延迟锁相环DDLL实现伪码跟踪,它主要由积分-清零器、伪码鉴相器、环路滤波器和伪码发生器等组成,结构图如下:
根据鉴相器种类不同,DLL分为相干型和非相干型,判断DLL是否完成对接收伪码的跟踪是判断其鉴相器输出是否为零。相干型DLL具有理想的跟踪精度,但要求载波必须完全同步,微小的载波同步偏差都会带来较大的伪码跟踪偏差,实际上载波完全同步的要求很难满足,因此通常采用非相干型DLL。数字环路滤波器框图如下:
二阶DLL实现框图如下:
②数字载波跟踪环:
载波跟踪环的是通过产生本地载波使之与接收信号的载波保持一致,以使用混频实现剥离接收信号中载波的目的。典型的载波环路包括混频器、积分-清零器、载波发生器、载波NCO,框图如下。
由于捕获完成后,本地载波与输入载波之间的频率偏差较大,可能达到200Hz,若直接使用PLL跟踪载波相位需要的环路带宽较宽,也就引入较多噪声。因此,在采用PLL之前通常先用FLL完成载波频率同步,再利用PLL实现载波相位同步。
载波NCO的工作过程为累加和溢出清零再累加的过程,在产生本地载波时需要查询正弦和余弦函数表,结构如图:
锁频环辅助的锁相环框图如下:
③伪码跟踪环和载波跟踪环组合:
实际应用中,GPS接收机的伪码跟踪环和载波跟踪环是紧密耦合的,下图是一种载波环辅助伪码环的结构:
完成跟踪后,将跟踪输出的每20ms的数据转换导航数据。步骤为:
⑴找到所有的导航数据跳变。定义第1个发生相位跳变的位置为导航数据的起始位置,若起始位置没有发生在20ms内,那么用这个时间减去20ms的整数倍,得到第1个小于20ms的导航数据起始位置,将这个位置简称为第一个导航数据点。
⑵一旦找到导航数据点,就需要校验这些跳变的正确性。从第一个导航数据点开始,以20ms为间隔划分,如果数据跳变点没有发生在20ms的整数倍,说明解调出的数据错误,应该剔除。
⑶当导航数据点通过正确性检查后,这些输出就转换为导航数据。导航数据的符号可以任意选择,值为1和-1,奇偶校验可以给出正确的极性。
⑷根据前面给出的方法计算出卫星接收机的伪距,用于接收机位置的确定。
8. 接收机定位中的误差源:
GPS接收机的定位精度受多种误差的影响,这些误差可分为与卫星有关的误差、与信号传播有关的误差和与接收机有关的误差三类。而与卫星有关的误差又分为卫星星历误差、卫星钟误差、相对论效应,与传播有关的误差分为电离层延迟、对流层延迟和多路径效应。
1)卫星星历误差:
由卫星星历给出的卫星位置和速度,与卫星实际位置和速度只差,称为卫星星历误差。星历误差的大小主要取决于卫星定轨系统的质量,如定轨站的数量及其地理分布、观测值的数量及精度、定轨时所用的数学力学模型和定轨软件的完善程度等。此外,与星历外推时间间隔也有直接关系。
卫星星历分为广播星历和精密星历。GPS广播星历是由GPS的地面控制站所确定和提供的,经GPS卫星向全球用户公开播发的一种预报星历,也就是对接收到的信号进行解调和解扩后得到的导航数据,目前的广播星历所给出的卫星三维坐标的误差为5~7m。
精密星历是为了满足大地测量、地球动力学研究等精密应用领域的需要而研制、生产的高精度事后星历,按一定的时间间隔(通常为15min)来给出卫星的三维坐标、三维运动速度及卫星钟改正参数等信息。目前精度最高、使用最广泛、最为方便的精密星历是由国际GNSS服务组织IGS提供的精密星历,可免费从网上获得。在精度要求很高的场合,可使用IGS提供的精密星历以消除卫星星历误差带来的定位偏差。IGS提供的各类星历见下表:
卫星星历 | 精度/cm | 滞后时间 | 更新率 | 数据的时间间隔/min |
---|---|---|---|---|
广播星历 | 100 | 实时 | ||
超快星历(预报部分) | 5 | 实时 | 1次/6h,UTC 3h 9h 15h 21h发布 | 15 |
超快星历(实测部分) | 3 | 3~9h | 1次/6h,UTC 3h 9h 15h 21h发布 | 15 |
快速星历 | 2.5 | 17~41h | 1次/1天,UTC 17h发布 | 15 |
最终星历 | 2.5 | 12~18天 | 1次/1星期,每周四发布 | 15 |
2)卫星钟的误差:
卫星上虽然使用了高精度的原子钟,但也不可避免存在误差,这种误差既包含系统性误差,如钟差、钟速、频漂等偏差,也包含随机误差。系统误差通过校验和对比来确定,并通过模型加以校正;二时钟随机误差只能通过时钟的稳定度来描述其统计特性,无法确定符号和大小。
卫星钟误差可根据广播星历的导航电文提供的钟参数af0、af1、af2计算卫星钟差:
式中,af0、af1、af2、toc都是由卫星钟误差引起的修正项,都由星历数据给出;tc为卫星信号的概略发射时刻,可由前面的公式计算得到。
由于广播星历给出的卫星钟误差是以卫星发射天线的平均相位中心为参考点,而不同的卫星信号在卫星内的时间延迟不同,信号离开卫星天线相位中心的时间并不相同,故而不同卫星信号对应的卫星钟差也不相同,因此在上式基础上还应加一个群延迟误差改正TCD,由星历给出:
为了提高GPS定位精度,可由IGS提供的卫星钟改正数校正来自卫星时钟误差引起的定位偏差,如下表:
卫星星历 | 精度/cm | 滞后时间 | 更新率 | 数据的时间间隔/min |
---|---|---|---|---|
广播星历中的卫星钟差 | 5(RMS) 2.5(SDev) |
实时 | ||
超快星历(预报部分)的卫星钟差 | 3(RMS) 1.5(SDev) |
实时 | 1次/6h,UTC 3h 9h 15h 21h发布 | 15 |
超快星历(实测部分)的卫星钟差 | 150ps(RMS) 50ps(SDev) |
3~9h | 1次/6h,UTC 3h 9h 15h 21h发布 | 15 |
快快速星历的的卫星钟差 | 75ps(RMS) 25ps(SDev) |
17~41h | 1次/1天,UTC 17h发布 | 15 |
最终星历的的卫星钟差 | 75ps(RMS) 20ps(SDev) |
12~18天 | 1次/1星期,每周四发布 | 15 |
3)相对论效应:
相对论效应是指,由于卫星钟和接收机钟所处的状态不同而引起的两台钟的相对误差现象。相对论效应主要取决于卫星的运动速度和所处的位置与重力位,而且是以卫星钟误差的形式出现的。
爱因斯坦的相对论在GPS中有着重要作用。GPS卫星以约4000m/s的速度在距离地心26560km的高空高速运转,运行周期11h56min04s。而GPS信号传播时间3.33ns的测量误差对应着1m的测距误差。因此,只有将GPS卫星的时钟误差控制在20~30ns内,GPS才能成为具有实际应用价值的精确定位系统。精密的GPS卫星原子钟以及GPS地面监测站部分,对原子钟的进一步监视、校正,使得校正后的卫星钟误差可控制在几ns内。
然而,GPS卫星相对于地面上的观测者在做高速运动,由此带来的相对论效应不可忽视,相对论效应包括狭义相对论效应和广义相对论效应。根据狭义相对论,高速运动的GPS卫星在地面上看起来呈时间膨胀现象,也就是说,GPS卫星上的原子钟比地面上一模一样的原子钟运行要慢,可以计算预测出GPS卫星原子钟每天要慢约7us。而由广义相对论,GPS卫星在高空运行,离地球越远,则由地球引起的时空弯曲度越小,预测对比在时空弯曲较大的地面上的原子钟,运行于时空弯曲度较小的卫星原子钟在地面上看起来会变快,计算表明,GPS卫星钟比地面上一模一样的原子钟每天要快45us。
综合狭义相对论和广义相对论的共同作用,在高空中高速运行的卫星原子钟比它们在地面上每天大致要快38us,也就是38000ns,每秒快0.44ns,而在两分钟内卫星原子钟的时间差就可以超过50ns。
卫星时钟提供的基准频率10.23MHz,为了补偿相对论效应,在设计卫星时,必须特意将它的实际运行基准频率减小至10.22999999543MHz,即调低0.00457Hz。这样,一旦GPS卫星发射升空,它的时钟频率正好等于所需要的10.23MHz这个设计值。但由于卫星的运行轨道是个椭圆而不是正圆,地面上的GPS用户接收机还必须根据卫星的当前位置对相对论效应做适当校正,校正公式:
式中,es为卫星轨道偏心率;as为卫星轨道长半轴;E为卫星的偏近点角,可由前面公式计算;F=-2μ1/2/c2=-4.442807633×10-9s/m1/2为常数,μ为万有引力常数,c为光速。
对于L1单频接收机,卫星时钟的校正在前面公式基础上要加上相对论效应校正项:
根据广播星历数据提供的钟差校正参数校正后,卫星钟误差带来的测距误差一般不超过3m,均方差约为2m。
4)电离层延迟:
电离层是高度在60~1000km间的大气层,在太阳紫外线、X射线、γ射线和高能粒子作用下,该区域内的气体分子和原子将产生电离,形成自由电子和正离子。带电粒子的存在将影响无线电信号的传播,使传播速度发生变化,传播路径产生弯曲,从而使得信号传播时间与真空中光速的乘积不等于卫星与接收机之间的几何距离,产生所谓电离层延迟。电离层延迟取决于信号传播路径上的总电子含量TEC和信号的频率f,而TEC又与时间、地点、太阳黑子数等多种因素有关。在仅顾及f2项情况下,测距伪码观测值和载波相位观测值所受到的电离层延迟大小相同,但符号相反。
电离层延迟与卫星仰角有关,视界内的卫星在低仰角时引起的延迟几乎等于在天顶时的三倍。对垂直入射的信号来说,延迟的范围从夜间的10ns(对应距离3m)左右增加到白天时的50ns(对应距离15m)。在低卫星视角时,延迟范围可从夜间的30ns(对应距离9m)增加到白天的150ns(对应距离45m)。残留的电离层延迟1σ典型值是7m。对于单频接收机来说,要想消除该误差,通常采用模型改正的方法,最常用的模型是Klobuchar模型,根据该模型可以消除40%~60%的电离层延迟误差。Klobuchar模型为:
式中,Tiono为附加的电离层延迟时间,单位s;αi和φi为星历参数,i=1,2,3,4;TGPST为GPS时间,单位s;仰角θ、方位角α、纬度L、φi的单位为π,PER和AMP及Tiono的单位为s,x的单位为rad。
采用Klobuchar模型计算电离层延迟时,需要用到用户的经度、纬度以及卫星的仰角和方位角信息,因此在计算电离层延迟前需要根据用户在WGS-84坐标系下的坐标(xu,yu,zu)WGS-84计算出上述信息。计算步骤为:
⑴根据用户在WGS-84坐标系下的坐标(xu,yu,zu)WGS-84,由前面介绍的公式计算出用户的经度l和纬度L。
⑵根据用户在WGS-84坐标系下的坐标(xu,yu,zu)WGS-84和卫星在WGS-84坐标系下的坐标(xs,ys,zs)WGS-84,由前面介绍的公式计算出用户和卫星在站心直角坐标系下的向量[Δx Δy Δz]zT,然后再利用该向量根据前面的公式计算卫星相对于用户的仰角θ(范围0~π/2)和方位角α(范围0~2π)。
⑶根据上面的公式计算用户位置和电离层交叉点的地球投影点之间的地球的中心角Ψ。
⑷根据上面的公式计算电离层交叉点在地球上投影点的地磁纬度φi。
⑸根据上面的公式计算电离层交叉点在地球上投影点的地磁经度λi。
⑹根据上面的公式计算电离层交叉点在地球上投影点的地磁纬度φm。
⑺根据上面的公式计算当地时间T。
⑻根据上面的公式计算PER.
⑼根据上面的公式计算倾斜度因子F。
⑽根据上面的公式计算相位x。
⑾根据上面的公式计算AMP。
⑿根据上面的公式计算电离层延迟Tiono。
在计算过程中,需要将各参数的单位转换成模型中指定的单位。对于双频接收机,L1频率上电离层延迟的计算公式要简单:
式中,f1和f2分别为L1和L2的频率;δ(Δt)是来自同一颗卫星的频率f1和f2之间的测量时间差;Tiono可认为是测量值。
不管是根据双频模型还是单频模型,测得的电离层延迟与实际的电离层延迟之间必然存在一个差异,这个差异称为GPS测量中的电离层延迟误差。根据单频电离层模型校正后的电离层延迟误差约为1~5m,而根据双频模型校正后的电离层延迟误差约为1m。
5)对流层延迟:
对流层是50km以下的大气层,整个大气层中的绝大部分质量集中在对流层中。GPS卫星信号在对流层中的传播速度υ=c/n,其中c为真空中的光速,n为大气折射率,其值取决于气温、气压和相对湿度等因子。此外,信号的传播路径也会产生弯曲。由于上述原因,使距离测量值产生的系统性偏差称为对流层延迟。对流层延迟对测距伪码观测值和载波相位观测值的影响是相同的。
对流层位于大气层底部,其顶部距离地面约40km,各种气象因素都主要发生在这一层。对流层集中了大气层中90%的质量,其中氧气、氮气和水蒸气是造成GPS信号传播延迟的主要原因。由于对流层不存在色散效应,不能采用双频模型来消除对流层延迟,只能采用建模法来消除对流层延迟,目前最常用的是Hopfield模型。
Hopfield模型将对对流层误差分为两个分量造成的误差,干分量Nd和湿分量Nw。干分量Nd一般指氧气和氮气等干空气,湿分量主要指水蒸气。将这两个分量造成的距离误差分别记为ΔRd和ΔRw,根据Hopfield模型测得的对流层延迟造成的总的距离误差为:ΔRtrop=ΔRd+ΔRw
式中,ΔRtrop、ΔRd和ΔRw单位均为m;Tr为接收机所处位置的气温,采用绝对温度,单位K;hr为接收机距离地面的高度,单位m;Pr和er分别为接收机处大气压和水气压,均以mbar为单位,1mbar=500Pa;θ为卫星在用户接收机点处的仰角,单位rad。上述的Hopfield模型认为,高度在hd以上的对流层中不含干分量,高度在hw以上的对流层中不含湿分量。
由于卫星播发的导航电文中不包含关于对流层延迟模型及参数,因而要想根据Hopfield模型估计对流层延迟,必须获得实时的气象数据,如接收机处的气压、水压和温度。显然,让接收机同时具有测得这些参数的功能是不切实际的,而专用的气象仪器去测量这些参数有成本,而且气象仪器本身也存在测量误差。因此,实际使用中,若无法测得气象参数,也可采用简易模型估计对流层延迟:
式中,θ为卫星在用户接收机点处的仰角;Rtrop单位为m。
在未用模型对对流层延迟进行校正时,对流层延迟带来的伪距测量误差可达几米(对流层延迟在天顶方向)甚至20多米(对流层延迟在低于10°的高度角方向时),这个误差同电离层延迟的影响相比,对流层的影响会小一个数量级。当考虑对流层延迟时,要从实际测得的伪距ρ中减去Rtrop以校正对流层延迟的影响。根据模型得到的对流层延迟与实际受到的对流层延迟之间的差异是GPS测量值中的对流层延迟误差,根据简易公式校正后的对流层延迟误差一般在0.1~1m左右。
6)多路径误差:
经某些物体表面反射后到达接收机的信号,如果与直接来自卫星的信号叠加,然后进入接收机,将使测量值产生系统误差,这就是所谓多路径误差。多路径误差对伪距观测值的影响比对载波相位观测值的影响大得多。多路径误差主要取决于接收机周围的环境。
多路径现象是指接收机天线除了接收到一个来自GPS卫星发射后经直线传播后到达接收机的信号,还可能接收到一个或多个由该信号经周围障碍物反射后的信号。而通常只期望接收机天线接收直接信号,多径信号的存在导致接收机测量值偏离期望值,由此带来测距误差,称为多径误差。对多径信号进行分析时,普遍采用的接收信号模型为:
式中,d()为导航数据,值为±1;c()为C/A码信号,值为±1;a0、τ0、θ0分别为直接信号的幅度、时间延迟和相位延迟;ai、τi、θi分别为第i路多径信号的幅度、时间延迟和相位延迟;M为多径信号的数目。上述模型实际上是接收信号的基带信号模型,即在相位延迟θ0和θi中以及合并了载波频率跟踪误差带来的相位偏差。
与直接信号相比,多径信号的一个重要特征是传播路径长,因而要较迟到达接收机天线。因而τi的值总是大于τ0的值,二者对应的距离偏差短则几十米、长则几百米。一般来说,低仰角卫星发生多径现象的概率比高仰角卫星发生多径现象的概率要大。卫星仰角越高,所产生的多径延迟越短,并且功率越强。因为信号经无源发射体的反射后强度变弱,强度通常比相应的直接信号若,衰减系数ai/a0小于1。但也有例外,例如直射波信号在其传播过程中因需穿过浓厚的树叶层等建筑物,导致其强度变弱,那么反射波信号的功率就有可能比直射波强。对于C/A信号来说,其L1波长只有19cm,由一个值比波长长很多的多径延迟τi所引起的第i路反射波的相位变化量θi,可以视为0~2π之间的随机数。相位变化量θi随时间变化是反射波的另一个特征。
接收机的伪码跟踪环利用本地伪码相位与接收信号的伪码相位之间的偏差,调整本地伪码相位使之与接收信号的伪码相位同步。当多径信号存在时,接收信号实际上是直接信号与多径信号的合成信号,此时伪码跟踪环跟踪的合成信号的伪码相位,而不是直接信号的伪码相位,二者之间存在偏差即伪码多径误差,带来测距误差。
多径信号不仅影响伪码的测量精度带来测量误差,同时还影响载波相位的测量精度。载波跟踪环根据本地载波与接收信号的载波之间的相位差来调整本地载波相位,当多径信号存在时,接收信号实际上是直接信号与多径信号构成的合成信号,此时载波跟踪环跟踪的是合成信号的载波相位,而不是直接信号的载波相位,二者直接存在偏差,即载波多径误差。载波多径误差的存在带来测速偏差。
对于多径干扰带来的影响,一些学者提出了不同的多径误差消除方法,主要分为基于前端技术的多径误差消除、基于相关器和鉴相器的多径误差消除、基于数据处理的多径误差消除三类。前端技术主要只天线技术,是在信号进入接收机前抑制多径干扰,最简单的方法是在天线下方设置一个金属抑制板屏蔽地面反射波信号,但反射信号到达抑制板边缘时会在板的上面形成表面感应波馈入天线,一般使用扼流圈来解决。扼流圈是在抑制板上设置的一系列同心圆槽,圆槽深度为1/4波长,圆槽等同于底部断路的传输线,在其顶端就表现出对接收信号的高阻抗,就不会产生表面波感应,对反射波有显著消弱作用,扼流圈技术成为目前常用的天线技术之一。但扼流圈天线尺寸、质量、造价都远大于抑制板,且不能抑制水平反射波,因此有人提出天线移动、阵列天线、智能天线等抑制多径干扰的方法。
基于相关器和鉴相器的多径误差消除,主要是在接收机的跟踪环路实现多径误差消除,通常通过改变DLL的鉴相函数和相关函数来实现,是目前技术最成熟的方法。常用的基于鉴相器的多径误差消除主要有窄相关技术、strobe相关器技术、MET、脉冲间隙相关器技术。窄相关技术是Novatel公司专利、strobe相关器是Astech公司专利,基于参数估计的MEDLL也已应用在Novatel公司的导航定位系统中。这些方法可以抑制中等长度时间延迟的多径干扰带来的误差,但为了进一步提高DLL的抗多径性能需要较多硬件资源。
基于数据处理的多径误差消除方法的核心是参数估计,一般采用开环结构,根据所估计的参数不同可分为两类,一类不仅可以估计直接信号时间延迟,而且可以估计多径参数;另一类只估计直接信号时间延迟就可以测得伪距。第一类方法对伪码和载波多径误差都具有较好的抑制,但计算量较大;第二类方法计算量较小,可用于实现鉴相器的DLL,但不能有效抑制载波多径误差。第一类多径估计方法,常用的有基于MEL的方法、子空间方法、基于LS的方法、基于二次编程QP的方法、基于EKF的方法、基于粒子滤波PF的方法等;第二类多径估计方法,常用的有斜率差分SD技术、二阶斜率差分Diff2技术、匹配滤波MF技术以及基于TK算子的技术等。
7)接收机噪声:
接收机并不参考本地时钟,而是以采样点作为参考,因此采样频率的精度间接影响定位精度。测量噪声是影响定位精度的另一重要因素,主要是由于射频前端受外界环境影响而引起的随机误差,其值取决于射频前端的性能及工作环境。一般而言,热噪声产生的误差远小于上述各种误差。
接收机噪声是指除星历误差、卫星钟误差、相对论效应、电离层延迟、对流层延迟和多径误差之外的所有误差,包括天线、放大器、信号量化误差、卫星信号之间的互相关性、测定伪码相位与载波相位的算法误差,以及软件接收机中的各种计算误差等。接收机噪声具有随机性,通常很难测定。一般来说,接收机噪声引起的伪距误差小于1m,在载波相位误差约为几mm。通常将接收机噪声作为一个未知参数包含在测距的观测方程中。