BDS区域系统于2012年底建成,包括5颗GEO(geostationary earth orbits,地球静止轨道)卫星、5颗IGSO(inclined geostationary orbits,倾斜地球同步轨道)卫星和4颗MEO(medium earth orbits,中圆地球轨道)卫星,服务覆盖亚太地区;区域系统信号采用QPSK(quadrature phase shift keying,正交相移键控)调制于B1、B2和B3 3个频率上,且GEO卫星和非GEO卫星采用不同的伪码调制方式和电文格式[1]。BDS区域系统信号与GPS信号相似但有差异,接收算法需要改进。
卫星导航软件接收机凭借其灵活的实现方式深受欢迎,往往用于算法创新和性能分析等研究。GNSS软件接收机可以分为2类。①以商用接收机输出的二进制原始数据或RINEX(receiver independent exchange format,接收机无关数据交换格式)观测量和星历数据作为输入,实现各种导航解算算法,如东京海洋大学Tomoji Takasu等人开发的RTKLIB[2],米兰理工大学开发的goGPS[3];②以中频信号采集器输出的GNSS中频信号作为输入,实现捕获、跟踪、数据解调等整个基带信号处理,并完成导航解算,如科罗拉多大学Dennis M.Akos等人开发的MATLAB GPS软件接收机[4]、东京海洋大学Taro Suzuki等人用C++开发的目前尚只支持GPS的GNSS-SDRLIB[5]。后一类接收机功能更完整,且对于涉及信号捕获及环路跟踪等基带信号处理算法的研究能够发挥强大作用,如弱信号接收、矢量跟踪、深耦合等算法。MATLAB平台具有灵活的运算能力和强大的作图功能,虽然难以实现实时软件接收机,但是对于算法创新和性能分析有着无可比拟的优势。然而,文献[4]中的MATLAB软件接收机仅适用于GPS L1单频信号,且接收机各通道无法在同一信号接收时刻生成针对各卫星的RINEX观测量,解算结果也仅限用户位置。
本文以文献[4]中经典的MATLAB GPS软件接收机为基础,针对BDS区域系统的GEO和非GEO信号提出相应的基带信号处理策略,并给出BDS/GPS双系统RINEX观测量(伪距、载波相位、多普勒、载噪比)的生成方法,以及双系统定位定速解算算法。在楼顶进行动态实验,采用GNSS中频信号采集器输出的数字中频信号作为输入,验证了BDS/GPS双系统软件接收机的功能,并对比了BDS/GPS双系统与GPS和BDS单系统的DOP值和定位定速性能。在Google Earth上标注实验轨迹,对比了三者的差异。
1 基带处理算法本文提出的BDS/GPS双系统软件接收机的结构如图 1所示,其中输入为包含GPS L1和BDS B1频段的中频信号,基带信号处理部分包括捕获、跟踪、帧同步及电文解调,之后是双系统观测量生成及联合解算部分。
![]() |
图 1 BDS/GPS双系统软件接收机结构 |
文献[4]中的MATLAB GPS软件接收机采用码相位并行相关捕获算法完成GPS L1信号的快速捕获。本地伪码与接收伪码的相关过程的时域和频域表达式如(1)式和(2)式所示,利用(2)式进行FFT码相位维并行相关,然后将得到的结果进行iFFT得到时域相关结果。
![](PIC/20160416-M1.jpg)
![](PIC/20160416-M2.jpg)
GPS L1信号数据率为50 bit/s,每比特数据位历时20 ms,伪码周期为1 ms,因此1个数据比特上调制了20个伪码。相邻20个伪码中仅有1个可能发生数据比特跳变,该伪码在进行1 ms相关时会造成相关峰能量损失。因此选择相邻2个伪码同时进行1 ms伪码相关,必有1个相关结果是无损的。根据BDS ICD文件[1],公开信号B1I和B2I的伪码速率均为2.046 Mcps,码长为2 046,伪码时长与GPS同为1 ms。然而,BDS非GEO和GEO卫星分别播发D1和D2电文格式,数据率分别为50 bit/s和500 bit/s,数据比特跳变周期分别为20 ms和2 ms。另外,D1电文上还调制了NH(纽曼-霍夫曼,Neumann-Hoffman)二级码,码长20位,每一位历时1 ms,D1电文上的比特跳变周期则变为1 ms。面对BDS信号如此快的比特跳变速率,即使进行1 ms伪码相关,也不可避免地损失相关峰能量。为了消除比特跳变对相关结果的影响,往往采用zero-padding补零算法[6]。本文采用本地“1 ms伪码+1 ms补零”与2 ms接收信号相关的捕获策略,取结果的前一半作为无损相关结果。
跟踪过程BDS与GPS没有什么差别。相干积分时间均为1 ms,利用DLL跟踪码环、PLL跟踪载波环,BDS的环路滤波器参数需要适当调整。为了观测量的生成,跟踪阶段需要在每个环路调整周期中记录伪码起始沿对应的采样点索引、本地载波频率和本地载波相位,其中通道c第n+1个环路周期结束时的本地载波相位如(3)式所示。
![](PIC/20160416-M3.jpg)
BDS的帧同步过程需要特别对待非GEO的D1电文。经过捕获跟踪以后,本地非GEO信号仅对齐了1 ms伪码边界,并没有对齐NH码并剥离。将11位帧同步头与NH码相乘,再与跟踪好的本地非GEO信号相关,仍然采用(2)式所示的并行相关方法,可快速得到帧头位置。帧同步以后NH码也是对齐的,剥离NH码后即可得到导航电文。
2 观测量生成在跟踪阶段,每一个1 ms伪码的起始位置对应的采样点都被记录下来。帧同步后可以得到第一个子帧起始位置(对于BDS GEO信号则是第一个主帧起始位置)对应的采样点和周内秒,进而可以得到该通道所有采样点对应的卫星信号发送时间,如(4)式所示。
![](PIC/20160416-M4.jpg)
图 2所示为BDS/GPS双系统观测量的生成方法,其中黑点即各通道在帧同步后第一个帧同步头起始位置对应的采样点。采样点索引越大,说明卫星信号到达接收机越晚,二者距离越大。选择索引最大的采样点Su作为计算各观测量的参考点,然后计算各通道在该采样点处的卫星信号发送时间,如(5)式和(6)式所示。
![](PIC/20160416-M5.jpg)
![](PIC/20160416-M6.jpg)
![]() |
图 2 BDS/GPS双系统观测量生成方法示意图 |
得到各通道在同一采样点Su处的卫星发送时间后,即可按照(6)式计算各通道的伪距观测量。
![](PIC/20160416-M7.jpg)
如图 2所示,假设通道1的首个帧头起始位置S(1)即第i个伪码的起始位置,在跟踪阶段记录的伪码i起始位置对应的采样点索引、本地载波频率和本地载波相位分别为Si(1)、fc,i(1)和φi(1)。可以利用一阶线性插值计算出采样点Su处的本地载波频率和载波相位,如(8)式和(9)式所示。
![](PIC/20160416-M8.jpg)
![](PIC/20160416-M9.jpg)
同理可以得到各通道在采样点Su处的本地载波频率fc,u(c)和载波相位φu(c),该点处的多普勒频率fd(c)则如(10)式所示。
![](PIC/20160416-M10.jpg)
假设计算观测量的时间间隔为Tobs,将各通道的采样点S(c)按照(11)式所示均推移Tobs得到新的采样点S′(c),继续按(7)~(10)式计算各观测量。
![](PIC/20160416-M11.jpg)
最后,载噪比观测量是一段数据的统计结果,不对应于某个采样点,且其意义在于示意信号强度,采样点区段不必太过精确。这里选择从首个帧头起始位置S(c)开始,经历一个Tobs这一段数据作为计算载噪比的对象,采用(12)式和(13)式所示的相关器比较法[7]计算载噪比C。
![](PIC/20160416-M12.jpg)
![](PIC/20160416-M13.jpg)
得到了BDS/GPS双系统在同一采样点处的观测量后即可进行双系统定位定速。解算前需要先得到解算时刻的伪距和伪距率,(14)式为修正伪距的表达式,(15)式将修正伪距对时间求导得到修正伪距率表达式。
![](PIC/20160416-M14.jpg)
![](PIC/20160416-M15.jpg)
![](PIC/20160416-G1.jpg)
![](PIC/20160416-G1.jpg)
![](PIC/20160416-G2.jpg)
![](PIC/20160416-G3.jpg)
![](PIC/20160416-G4.jpg)
![](PIC/20160416-G5.jpg)
![](PIC/20160416-G6.jpg)
![](PIC/20160416-G7.jpg)
![](PIC/20160416-M16.jpg)
将(14)式和(15)式的等式右边分别在估计值和
处一阶泰勒展开,可得到(17)式和(18)式所示的线性化迭代式。
![](PIC/20160416-M17.jpg)
![](PIC/20160416-M18.jpg)
![](PIC/20160416-G10.jpg)
![](PIC/20160416-G11.jpg)
![](PIC/20160416-G12.jpg)
将所有通道根据(17)式和(18)式列出线性迭代公式,写成如(19)式所示的矩阵形式。
![](PIC/20160416-M19.jpg)
BDS/GPS中频数据由Nottingham Scientific公司的NSL-STEREO v2射频前端采集得到,使用多频段碟形天线,实验设备如图 3所示。
![]() |
图 3 BDS/GPS中频信号采集设备 |
本文实验选在实验室楼顶进行,场地开阔无遮挡。首先采集40 s左右的静态数据,实际得到的BDS/GPS信号的频谱图、时域图以及柱状图如图 4所示。
![]() |
图 4 BDS/GPS中频信号分析 |
将采集信号进行捕获得到的结果如图 5所示,以最高相关峰与次高相关峰值的比(即主副相关峰比)作为捕获判断标准。
![]() |
图 5 BDS/GPS卫星捕获结果 |
定位解算后得到的双系统可见卫星天空图如图 6所示,其中G表示GPS,C表示BDS,后面的两位数字是卫星PRN号。此时BDS有8颗可见卫星,GPS有7颗。
![]() |
图 6 BDS/GPS可见卫星天空图 |
采集完40 s的静态数据后环绕楼顶步行一圈,起点为东南角,逆时针环绕,整个静态和动态过程历时140 s左右。图 7所示为BDS/GPS双系统在ENU(东北天)站心坐标系下的定位定速结果。图 8则在Google Earth上标出了GPS单系统、BDS单系统和BDS/GPS双系统3种定位结果的轨迹,其中三角形为GPS定位轨迹点,水滴形为BDS定位轨迹点,圆形为BDS/GPS双系统定位轨迹点。可以看到GPS定位轨迹比BDS单系统以及BDS/GPS双系统的要杂乱些。
![]() |
图 7 BDS/GPS双系统联合定位定速结果 |
![]() |
图 8 BDS/GPS双系统与单系统动态定位结果轨迹对比 |
为了更精确地评价三者的定位定速性能,表 1列出了前40 s静态定位定速在ENU方向上的RMS(均方根)误差结果,表 2列出了整个140 s过程站心坐标系下的精度因子统计结果。由于GPS可见卫星数量比BDS少,且30号星的高度角较低,导致多径误差较大,因此GPS单系统的ENU定位RMS误差稍大于BDS单系统的,然而其定速RMS误差仍优于BDS;在没有去除低仰角卫星的情况下,BDS/GPS双系统的定位定速误差居于BDS和GPS单系统之间。另外,即使是在可见卫星比BDS少1颗的情况下,GPS单系统的GDOP(几何精度因子)、HDOP(水平方向精度因子)、VDOP(竖直方向精度因子)和TDOP(钟差精度因子)均优于BDS单系统;BDS/GPS双系统的各个精度因子均是最优的。
参与解算卫星系统 | 定位RMS误差/m | 定速RMS误差/(m·s-1) | ||||
E | N | U | E | N | U | |
GPS | 1.134 | 1.564 | 6.692 | 0.008 920 | 0.019 007 | 0.011 453 |
BDS | 1.110 | 1.186 | 2.290 | 0.010 746 | 0.018 933 | 0.020 190 |
BDS/GPS | 0.912 | 1.394 | 3.960 | 0.009 047 | 0.016 739 | 0.012 012 |
参与解算卫星系统 | GDOP | HDOP | VDOP | TDOP | ||||||||
最小值 | 最大值 | 平均值 | 最小值 | 最大值 | 平均值 | 最小值 | 最大值 | 平均值 | 最小值 | 最大值 | 平均值 | |
GPS | 2.705 | 2.752 | 2.728 | 1.221 | 1.224 | 1.227 | 2.000 | 1.989 | 1.972 | 1.416 | 1.447 | 1.431 |
BDS | 3.188 | 3.189 | 3.188 | 1.605 | 1.620 | 1.612 | 2.088 | 2.097 | 2.093 | 1.785 | 1.785 | 1.785 |
BDS/GPS | 2.198 | 2.208 | 2.203 | 0.925 | 0.925 | 0.925 | 1.346 | 1.354 | 1.350 | 1.010 | 1.020 | 1.015 |
经典的开源MATLAB GPS软件接收机仅支持GPS单系统的L1信号,且无法生成RINEX文件所需的伪距、载波相位、多普勒频率、载噪比等观测量用于更高级的定位算法的研究。本位在该接收机的基础上,给出了BDS信号的捕获跟踪和电文解调策略,提出了计算BDS/GPS双系统观测量的方法,并给出了在MATLAB软件接收机平台上的具体实现方法。本接收机利用生成的双系统观测量以及解调出的星历,可以生成双系统RINEX文件。最终,文中推导了双系统定位定速解算的迭代式,并设计了实际场景下的实验来验证接收机性能。文中采用NSL-STEREO v2射频前端和多频段碟形天线在实验室楼顶采集了实际的BDS/GPS双系统中频信号,前40 s静态,后100 s低动态环绕楼顶一周。文中给出了BDS/GPS双系统和各单系统的定位轨迹、定位定速RMS误差以及精度因子的对比和分析。
GPS可见卫星数量比BDS少1,且有一颗仰角低于15°的卫星。在这种情况下,BDS单系统的ENU定位RMS误差小于GPS单系统,然而定速RMS误差却稍大于GPS,说明BDS的定速精度要弱于GPS,这可能与BDS的GEO和IGSO卫星运动缓慢导致多普勒频移和载波相位测量值误差偏大有关;在没有去除低仰角卫星的情况下,BDS/GPS双系统的定位定速误差居于2个单系统之间。实验期间BDS可见卫星比GPS多1颗,但是GDOP、HDOP、VDOP和TDOP均劣于GPS的,说明目前BDS区域系统星座的几何分布不如GPS;BDS/GPS双系统的各个精度因子均是最优的。
[1] | BeiDou Navigation Satellite System Signal in Space Interface Control Document: Open Service Signal (Version 2.0) [R]. China Satellite Navigation Office, 2013 |
[2] | Takasu T, Yasuda A. Development of the Low-Cost RTK-GPS Receiver with an Open Source Program Package RTKLIB[C]//International Symposium on GPS/GNSS, Jeju, Korea, 2009: 1-6 |
Click to display the text | |
[3] | Herrera A M, Suhandri H F, Realini E, et al. goGPS: Open-Source MATLAB Software[J]. GPS Solutions, 2015, 20(3): 1-9 |
Click to display the text | |
[4] | Borre K, Akos DM, Bertelsen N, et al. A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach[M]. New York, USA, Birkhäuser Boston, 2007 |
Click to display the text | |
[5] | Suzuki T, Kubo N. GNSS-SDRLIB: An Open-Source and Real-Time GNSS Software Defined Radio Library[C]//ION GNSS+2014, Tampa, USA, 2014: 1364-1375 |
Click to display the text | |
[6] | Macchi F. Development and Testing of an L1 Combined GPS-Galileo Software Receiver[D]. Calgary, Alberta, Canada, University of Calgary, 2010 |
Click to display the text | |
[7] | Groves P D. GPS Signal to Noise Measurement in Weak Signal and High Interference Environments[C]//ION GNSS 2005, Long Beach, USA, 2005: 643-658 |