基于MWORKS的GNSS导航电文建模与仿真

2023-10-31 11:39刘正东夏斐然许承东
软件导刊 2023年10期
关键词:子帧电文编码

刘正东,夏斐然,许承东

(北京理工大学 宇航学院,北京 100081)

0 引言

20 世纪70 年代后期,全球定位系统(Global Positioning System,GPS)开始建设,自此全球主要国家都在不断发展和完善导航卫星系统。目前全世界共有4 种国际导航卫星系统,分别为美国的全球定位系统(Global Positioning System,GPS)、俄罗斯的格洛纳斯导航卫星系统(GLONASS Navigation Satellite System,GLONASS)、中国的北斗导航卫星系统(Beidou Navigation Satellite System,BDS)和欧盟的伽利略导航卫星系统(Galileo Navigation Satellite System,Galileo),四者成为全球卫星导航系统(Global Navigation Satellite System,GNSS)国际委员会公布的卫星导航系统供应商[1]。近年来,中国、美国、欧盟、俄罗斯等持续推进和完善导航卫星系统建设,GNSS 建设步入新阶段。

随着GNSS 应用领域的日益拓展,用户对GNSS 接收机和用户终端的测试提出了更高要求。然而,真实的卫星信息都夹杂着环境噪声的高频信息,通过硬件装置进行仿真时需要考虑多种干扰和传输延迟等复杂影响因素,使得硬件仿真设备复杂程度大大增加[2]。因此,为测试接收机的静态性能和动态性能,需要应用GNSS 卫星信号模拟器模拟真实环境下的卫星信号。GNSS 导航电文是从卫星发送到地面设备的数据包,包含卫星状态、卫星轨道和时间等信息数据,可以帮助设备确定卫星位置和速度。GNSS 导航电文可以被不同的卫星系统发送,以帮助全球用户进行导航、定位与时间同步,是卫星导航信号的重要组成部分。因此,采用软件仿真卫星信号乃至完整的导航系统时,导航电文仿真必不可少。在该方面,许多学者进行了研究。例如,辛洁等[3]基于已公开发布的卫星导航电文分析了导航电文的设计要素和基本属性,并提出卫星导航电文设计方案;胡涛等[4]以GPS 和Galileo 的导航电文设计为例,对传统和新式导航电文的性能进行分析评估,并对导航电文进行了优化设计;常志巧等[5]比较了现有3 种导航电文类型的电文结构及播发方式,详细分析了星历参数、钟差参数及完好性参数等核心定位参数的发展演变特点和改进效果;艾卿[6]阐述了海明校验码的编解码技术及其在GLONASS 卫星导航系统中的具体运用;王莹等[7]提出一种适用于GPS 卫星星座排序规则的导航电文生成方法,并通过MATLAB 软件计算了远推轨道参数下的星座分布。

MWORKS.Syslab 是同元软控MWORKS 平台全新推出的新一代科学计算软件,基于高性能科学计算语言Julia 提供交互式编程环境的完备功能,具有开放的矩阵运算、函数编程能力,支持仿真结果可视化绘图,用户界面友好,语法简单易学。本文在参考四大GNSS 官方接口控制文件(Interface Control Document,ICD)以及借鉴国内外研究的基础上,利用国产建模仿真软件MWORKS 对GNSS 导航电文进行建模与仿真,以期为提高导航卫星定位系统的准确性奠定基础。

1 GNSS信号体制概述

导航卫星系统的信号体制直接关系着定位、授时和测速等基本功能,以及定位测量的准确度、可靠性、互操作性、信息保密性、抗干扰功能等重要性能与技术指标的实现,是链接卫星、地面运控中心与用户间协同工作的重要纽带。导航信号是完成通信体制的重要载体,其主要内容涉及载波频率、测距码特性、调制方法、电文纠错校验方法等。导航卫星信息通常由载波、伪码和数据码3 个部分构成。其中,数据码是由卫星通过二进制码流的方式传给接收器的导航定位信息,又称为导航电文。在发射端,导航电文与伪码模结合完成扩频,再由载波调制产生射频模拟信号,合成的信号由卫星天线发出;在地面接收端,天线搜索并接受射频模拟信号,在接收机内部经历一系列复杂的信号处理程序后变成模拟中频信号,然后经过模拟数字转换处理后成为数字中频信号[8]。

一般来说,载波为信号的最底层,伪码和导航电文经过调制依附在正弦载波上,而卫星实际播发的即为经过调制后的载波。伪码是实现码分多址技术的关键,有助于接收机及时确定信号相位。导航电文则是卫星所播发的含有导航信息的二进制码,内容包括卫星星历、工作状况、日期、轨道摄动校正、数据校测纠错等数据,这些信息对于接收机正确识别和计算卫星位置非常关键,在导航信号中具有重要作用。

2 GNSS导航电文模型

2.1 导航电文编排

卫星导航电文信息中包含定位所必须的重要信息,是导航卫星系统信息的主要组成之一,其设计方案的优劣直接影响系统中通信设备的效益和实际应用的可靠性。设计导航电文系统时,必须针对整个系统的服务目标综合考虑各个设计参数,以满足接收机各方面的要求。导航电文的编排一般要考虑数据电文形式、电文容量、播发方式、纠错校验方法、码率等诸多要素[9]。

2.1.1 导航电文结构

目前,导航电文的结构主要分为固定帧、数据块以及固定帧与数据块相融合3 种方式。其中,固定帧结构极大便利了接收机译码,只需根据电文结构的按位分析即可,不足之处在于各个导航参数的具体播发方式比较固定,修改或调整导航电文结构和信息类型的余地较小。第一代定位系统的导航电文结构主要使用固定帧结构,而数据块结构能够直接定义新的数据块,在增加新的信息类型时具备较好的灵活性,不足之处在于接收端需要添加额外的辅助数据,处理程序更复杂。相比之下,固定帧与数据块相融合的设计方式具备信息容量扩展快捷、播发模式简单的特性,是现代导航卫星系统导航电文架构设计的最新趋势。

2.1.2 导航电文内容

导航电文内容包括基本导航信息、增强导航信息和扩展导航信息3 类,各系统的导航电文均通过编写好的数据模型向地面接收端播发。基本导航信息通常包含卫星定位数据、卫星钟差数据、卫星基本信息数据(包括卫星健康状况信息和信号精度)、卫星轨道参数及其摄动项、系统时间转换数据等,用于实现最基本的导航服务需求。增强导航信息内容通常包含卫星传输星历差分更正消息、钟差差分更正消息、电离层格网及差分完好性信息等,这些信号多用于满足对单频或多频广域增强服务的需求。扩展导航信息一般包括卫星历书信息、电离层延迟参数修正信息、地球定向参数(Earth Orientation Parameters,EOP)和协调世界时(Coodinated Universal Time,UTC)等,该类信息主要用于满足除基本导航服务和增强服务外的其他服务需求。为保证接收机能快速搜寻全部卫星历书数据,通常仅从扩展基本导航数据处播发简化的历书数据。

2.1.3 导航电文信道编码

信道编码是使码字具备检错纠正能力的差错控制编码。得益于接收机和通信编码技术的快速进步,信道编码的检错纠错能力大大提高,保证了电文传递的可靠度。传统线性分组码(例如汉明码和BCH 码)抑制随机错误的能力低,无法满足复杂系统的要求,现已被更高效的卷积码和LDPC(Low-Density Parity-Check)码等代替。具有强大纠错能力的CRC(Cyclical Redundancy Check)码和交织码也已投入使用,其能够处理突发错误。现代导航电文信道编码采用多种复杂的差错控制技术,普遍方法是利用CRC校验码抑制误码产生,然后结合纠错码和交织码实现有效编码。各种系统在导航电文编码方案设计方面均有一定差异,表1 为全球主要卫星导航系统中部分导航电文的编码方案。

Table 1 Encoding schemes for some navigation messages in major global satellite navigation systems表1 全球主要卫星导航系统中部分导航电文的编码方案

2.2 GPS导航电文编码模型

GPS 导航电文使用长度为1 500 bit 的基本帧格式,每个帧由5 个自帧构成,每个子帧长度为300 bit。全部数据信息均通过25 帧传送,持续播发30 s,其中子帧4 与子帧5需要分为25 页。每个子帧包含10 个字,每个字的长度为30 bit,包括一个遥测字(Telemetry Word,TLM)、一个转换字(HandoverWord,HOW)以及大量导航数据,上述信息全部由卫星产生。GPS导航电文的结构如图1所示。

Fig.1 GPS navigation message structure图1 GPS导航电文结构

在卫星进行工作时,TLM/HOW 为一对字同时进行传送,TLM 字首先传送,然后是HOW,接着是8 个含有导航信息的数据字。字为GPS 导航电文中最基本的组成单元,包括TLM、HOW 和大量二进制导航信息组成的数据字,含有1个6 bit长校验位,用于检查数据中是否出现差错,每个字长均为150 bit。GPS导航电文内容如表2所示。

Table 2 GPS navigation message content表2 GPS导航电文内容

TLM 包括同步码、遥测码和奇偶校验编码;HOW 包括Z 计数器计值、警告标志、A-S 标记、子帧识别标记和奇偶校验位。第一数据块提供时钟校准信息和健康状况信息;第二数据块提供用于定位和定速的卫星广播星历,是导航电文的核心部分;第三数据块提供所有卫星的历书数据信息,涵盖电离层校正、卫星位置、UTC 日期以及健康状况等信息。一帧中的第四和第五子帧没有足够的空间播发所有卫星的历书参数,故采用分页的方式播发。BDS、GLONASS 导航系统均有信号支路参考分页播发的帧排列方式。总体来说,GPS 导航电文包含的这些信息对于接收机的定位与定速至关重要,而各种校验位的设计可以保证数据传输的准确性。GPS 官方的ICD[10]给出了各数据块内部的导航数据排列方式。

2.3 BDS导航电文编码模型

北斗D1 导航电文为北斗卫星发射的导航信息,采用北斗自定的数据格式和协议。北斗D1 导航电文提供卫星位置、信号传输时间、信号频率、精度等参数,采用基于超帧、主帧和子帧的帧结构。所有电文均以超帧形式定时播发,超帧长为36 000 bit,历时12 min,由24 个主帧构成;每一个主帧长1 500 bit,历时30 s;每一个主帧由5 个子帧构成,每一个子帧长300 bit,历时6 s;每一个子帧由10 个字构成;每一个字长30 bit,历时0.6 s。字为D1 导航电文的基本组成单元,由导航信息和校验码两部分构成。所有子帧第一个字的前15 bit内容不编码,后11 bit内容通过BCH(15,11,1)进行纠错,信息位共计26 bit;其他9 个字均通过BCH(15,11,1)加交织方法完成纠错编码,信息位共计22 bit。原始数据码每11 bit 一组,先后进行串/并转换-BCH(15,11,1)纠错编码-并/串转换,形成一个长为30 bit 的基本单元字,最终组合成子帧和超帧[11]。BDS D1 导航电文结构如图2所示。

Fig.2 BDS D1 navigation message structure图2 BDS D1导航电文结构

图3 为D1 导航电文主帧的结构和内容,其中子帧1 至子帧3 播发基本导航数据;子帧4 和子帧5 的24 个页面播发所有卫星历书数据以及其他系统工作时间的转换数据。其结构和内容安排与GPS数据码非常相似。

Fig.3 Structure and content of D1 navigation message main frame图3 D1导航电文主帧的结构和内容

上述导航信息,即导航文件中的星历参数、电离层参数、时间转换关系等,需转化为二进制序列并组合为主帧。D1 导航电文子帧的格式编排详见北斗导航官方于2020 年发布的接口控制文件-公开服务信号B2b[12]。

2.4 Galileo导航电文编码模型

Galileo I/NAV 导航电文包括卫星的位置、速度、时间、时钟偏差等参数,以及潜在卫星的信号质量信息和其他辅助信息。Galileo I/NAV 导航电文的传输速率为50 bps,采用欧洲自行研发的二进制格式和协议,支持多路径传输,可实现导航与定位等功能。Galileo I/NAV 电文采用基于帧、子帧和页的基本帧结构形式。图4 为Galileo I/NAV 电文的结构及每页电文数据比特总体安排情况。

Fig.4 Structure of Galileo I/NAV messages and the overall arrangement of data bits per page of the message图4 Galileo I/NAV电文的结构及每页电文数据比特总体安排情况

与GPS 和BDS 的导航电文相比,Galileo I/NAV 导航电文的基本单元页还有更细化的奇偶页之分。Galileo I/NAV导航电文采用奇偶页结构,每页历时1 s,分别播发奇数页和偶数页,分别携带不同的导航信息。每页I/NAV 电文的偶奇数部分均以一串相同的十位同步码0101100000开始,不参与任何卷积或交织运算。十位同步码后为240 位携带导航信息的编码字符,由长120 bit 的原始数据码经过卷积运算编码而成。Galileo I/NAV 导航电文采用速率为1/2、约束长度为7 的卷积加交织编码算法,以增加数据的随机性和纠错能力。每一个I/NAV 页面偶数或奇数部分的240位FEC 编码符号首先被按行填写成30×8 的阵列,然后按列读取阵列从而完成块交织编码[13]。Galileo ICD 中给出的卷积码编码结构如图5所示。

Fig.5 Galileo ICD convolutional code encoder structure图5 Galileo ICD 中卷积码编码器结构

每个I/NAV 电文页面历时2 s,播发时遵循先奇数页再偶数页的顺序,每一页播发1 s。I/NAV 电文的奇偶页为Galileo 导航电文中播发时间最短的基本结构单元。每个页面进行卷积编码之前的120 bit 原始数据信息依次由奇偶标记、页号、112 位数据比特和6 位尾码4 个部分组成。其中,奇偶标记长1 bit,用1 和0 表示该页的奇偶性;页号长1 bit,用于指出I/NAV 电文页的类型,用0 和1 区分该页为标称页还是警告页;数据比特包含导航信息,由官方ICD 统一规定[14];尾码是固定值为000000的二进制数。

每一个标称页的偶数和奇数两部分在时间上先后依次连续播发,其内容安排和播发顺序如图6 所示。官方ICD 文件中给出的I/NAV 字类型有0—10 和16—20 两种,其对每个字的数据内容进行了详细介绍,并规定了这些字的奇偶部分与总子帧的对应关系。

Fig.6 Nominal page content arrangement and advertisement order图6 标称页内容安排和播发顺序

2.5 GLONASS导航电文编码模型

GLONASS 导航电文采用基于超帧和帧的经典帧结构形式编排数据码。卫星以超帧为单位播发导航电文,每一超帧长15 000 bit,历时2.5 min,由5 个帧组成,依次记为帧1—帧5;每一帧长3 000 bit,历时30 s,由15 串二进制数据码组成,依次记为串1—串15;每一串长200 bit,历时2 s,由1.7 s 的数据码和0.3 s 的时间志两部分组成。串为GLONASS 导航电文的基本结构单位[15]。与Galileo 电文页类似,每个GLONASS 电文串前1.7 s 的数据码由长85 bit,码率为50 bps 的原始二进制电文(包括汉明校验码),与码率为100 Hz 的曲码经异或相加计算得出,数据码经曲码扩频后,比特长和码率扩大至原来的两倍,与时间志匹配;而后0.3 s 的30 位时间志数值固定[16],码率为100 Hz。曲码可简单视为不停震荡的方波,不含任何有效信息,仅起调制作用。GLONASS 电文的信道编码方案一般统称为曼彻斯特编码,结构如图7 所示,内容包括即时数据和非即时数据[17]。

Fig.7 GLONASS navigation message structure图7 GLONASS导航电文结构

GLONASS 导航电文中每一帧(除了第五帧外)前4 串给出了电文中的导航信息部分,第5~15 串则给出非即时信息部分。从信息的重要性与时效性方面评价,GLONASS第1~4 串中即时信息数据的功能类似于GPS 定位系统所需要的第1~3 帧中的精密星历参数,而第5~15 串中非即时信息数据的功能则类似于GPS 第4~5 子帧中的历书参数[18]。不同于BDS 和Galileo,GLONASS 导航电文中的每个串都具有相同的比特安排,通过时间志分隔开,每串中的85 位数据加校验码遵循由右至左的顺序编码,即第1~8位为汉明码,第9~85 位为77 位数字比特,第81~84 位则给出了该串在当前帧上的编号,第85位为空位[19]。

3 基于MWORKS的导航电文仿真

3.1 导航电文仿真流程

在导航电文参数生成之后,通过编码、填充等操作将一系列导航电文参数根据ICD 文件中规定的格式编排成二进制的导航电文。导航电文仿真基本流程包括电文参数量化、信道编码、电文帧生成。电文参数量化是指从实际导航文件中提取所需电文参数,将十进制浮点型电文参数按照ICD 文件中规定的比例因子全部转换为二进制整型,为导航电文仿真提供具有实际物理意义的参数。信道编码可提高信息传输的可靠性[20],本文仿真的四大GNSS导航电文中,GPS 电文采用汉明码(32,26)编码方案;BDS D1 电文采用BCH(15,11,1)加交织编码方案;Galileo I/NAV 电文采用CRC-6 加卷积码(240,120)加块交织(30×8)编码方案;GLONASS 电文采用曼彻斯特编码方案[21]。编码结束后,按照官方规定格式将二进制电文序列编排成完整的帧电文。仿真流程如图8所示。

Fig.8 Navigation message simulation flow图8 导航电文仿真流程

以下为产生导航电文及误差计算的部分程序,考虑到GNSS 导航电文大体相同的构架及篇幅限制,本文仅以GPS为例:

#二进制码写入导航电文

3.2 仿真结果与分析

利用MWORKS.Syalab 仿真四大GNSS 导航电文,各系统导航电文仿真条件如表3所示。

Table 3 Simulation condition表3 仿真条件

仿真得到的导航电文部分波形如图9所示。

Fig.9 Navigation message simulation waveform图9 导航电文仿真波形

受限于小数进制转换问题,导航文件中的大量十进制原始数据无法完全精确转换为二进制数,因此导航系统通过特定的比例因子将导航电文作为中间量传递给接收机,使得在译码端得出的数据保持较高精度。

设某个需要编码的参数为a(十进制),其对应的比例因子为k,转换公式为:

为检验仿真所得导航电文的准确性,根据式(1)、式(2)、式(3),选择GPS、BDS、Galileo 一个时段内的开普勒六根数和GLONASS 电文中的卫星坐标与速度分量,利用MWORKS.Syslab 分别对其编码误差进行计算,结果如图10(彩图扫OSID 码可见)所示。计算得到的误差在图中以对数形式给出。

Fig.10 Coding errors of some parameters图10 部分参数编码误差

由图10(a)、(b)和(c)可以看出,开普勒六根数中轨道偏心率e和根号轨道长半轴误差波动较大,其他参数误差分布较稳定,集中在10-9~10-11之间,Galileo 系统平近点角M0的误差明显小于GPS 和BDS;由图10(d)可以看出,GLONASS 系统6 个卫星坐标与速度分量误差波动很大,相邻时刻误差变化最大可达到109,整体误差分布在10-6~10-14之间。总体来看,GPS 电文参数编码误差最小,分布最稳定。

同时给出GPS、BDS、Galileo 系统16 星历参数在仿真时的相对编码误差,每个系统选择3 颗卫星计算,结果见表4、表5、表6。由于GPS、BDS、Galileo 系统共用一套16星历参数用于精确定位,而GLONASS 系统采用卫星空间坐标、速度和加速度分量作为即时数据进行定位,故本文不再单独列出GLONASS 系统各个参数的编码误差。表中数据均以10-11为量级基准统一化。

Table 4 GPS 16 ephemeris parameter coding error表4 GPS 16星历参数编码误差 (×10-11)

Table 5 BDS 16 ephemeris parameter coding error表5 BDS 16星历参数编码误差 (×10-11)

Table 6 Galileo 16 ephemeris parameter coding error表6 Galileo 16星历参数编码误差 (×10-11)

两个轨道半径修正项Crc和Crs原数据小数位不多于4位,除以对应比例因子可做到精准二进制转换,故无误差;toe为整数,表示星历参考时间,故也无误差。由上述分析可知,导航参数的相对编码误差基本集中在10-5~10-18范围内,高精度编码保证了信号传输时参数的稳定性,为精确定位奠定了基础。

4 结语

导航电文仿真是GNSS 信号仿真研究的源头,四大GNSS 导航电文的结构整体上遵循由基本单位按时间顺序组合成完整数据流的结构层次,而在此基本框架下,各个系统依照自身需求制定了不同的信道编码方案和排列方式。本文首先从导航文件中提取了具备实际物理意义的一系列参数,参照各系统官方接口控制文件设计仿真流程;然后利用国产软件MWORKS 实现了对电文数据的仿真;最后根据比例因子转换原理对编码误差进行分析,结果表明误差数量级远小于原参数,在后续译码过程中仍保持较高的精度。然而本研究尚存在一些不足之处,例如模拟的导航电文数据量偏小;误差计算仅考虑了比例因子引起的理论误差,未考虑实际环境中多种噪声的干扰;基于MWORKS.Syalab 编写的程序尚有优化空间。后续将根据参数外推设计导航电文自主生成算法,并在此基础上研究中频信号的软件仿真。

猜你喜欢
子帧电文编码
一种与内部缺陷仪设备通讯的接口模块
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
ADS-B延迟转发电文检测及干扰台定位方法
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
LAA系统在非授权频段上的动态子帧配置策略
卫星导航系统导航电文编排结构研究
LTE-A异构网中空白子帧的动态配置*
一种内容固定与可变相结合的导航电文结构