一种北斗B1C信号导航电文帧同步及解码方法

文档序号:27681038发布日期:2021-11-30 23:40阅读:956来源:国知局
一种北斗B1C信号导航电文帧同步及解码方法
一种北斗b1c信号导航电文帧同步及解码方法
技术领域
1.本发明属于北斗b1c基带信号定位导航与控制技术领域,特别涉及一种北斗b1c信号导航电文帧同步及解码方法。


背景技术:

2.随着军用和民用领域对导航应用需求的不断提升,各个国家近些年开始实施全球定位系统(gnss,global navigation satellite system)的现代化升级计划,其中在民用信号方面,在l1频段上gps新增了l1c新体制信号,北斗导航系统增加了北斗三号b1c信号,伽利略系统增加了e1os信号。在使用新体制信号的过程中,北斗b1c信号数据分量部分的b

cnav1电文引入了很多线性纠错编码并使用了没有固定同步头的帧结构,这为北斗电文的帧同步及导航电文解码带来了全新的挑战。因此,解决北斗电文帧同步和解码导航电文及降低解码电文的复杂度成为卫星导航领域卫星软件接收机重要的一部分,对北斗三号接收机有重要的工程意义。
3.北斗b1c信号是导航系统现代化的信号之一,其信号由数据信号和导频信号组成。b1c一帧电文的周期为18s,电文数据的帧结构包括:经过bch(21,6)+bch(51,8)编码后的72比特子帧1信息;经过ldpc(1200,600)和ldpc(528,264)编码及crc校验然后块交织后的1728比特电文的子帧2和子帧3。子帧1信息是随时变化的,说明电文数据没有固定的帧头,无法使用传统的方法来完成帧同步,电文纠错编码方式多样,解码复杂度较高。
4.在最传统的北斗和gps导航信号系统中不存在多分量数据,从跟踪环路输出的i支路的值直接二值化为1和

1通过8bit或者11bit同步头获得子帧的起始位置然后直接根据电文结构读取导航电文的数据;同时后来的新播发的二代信号中北斗和伽利略系统在电文结构上增加了少量数据的比特交织和bch(15,11,1)编码及其硬判决解码。现在新体制信号不光使用了数据分量和导频分量,还在导航电文上使用了大量的线性纠错编码和上千位的块交织编码。因此,设计一种北斗b1c信号导航电文的子帧同步和电文解码的策略方法,可以有效的降低解码电文的复杂度,提高解码导航电文的效率。


技术实现要素:

5.本发明提供一种北斗b1c信号导航电文帧同步及解码方法,以解决现有技术中的问题。
6.为实现上述目的,本发明采用的技术方案为:
7.一种北斗b1c信号导航电文帧同步及解码方法,包括以下步骤:
8.步骤(1)、北斗b1c接收机将天线接收到的北斗卫星信号进过射频前端处理后变成数字中频信号,提供给接收机输入信号来源;
9.步骤(2)、接收机通过捕获算法获取当前时候存在可见星及其捕获码相位和多普勒频率便于后续跟踪使用;
10.步骤(3)、接收机通过用户需求及捕获信号载噪比选择对北斗卫星包含的数据分
量或导频分量进行跟踪,当捕获信号载噪比大于等于40db

hz或根据用户需要选择只跟踪数据分量,并设置跟踪分量参数为1;当捕获信号载噪比小于40db

hz或不考虑运行时间选择跟踪导频分量和数据分量,并设置跟踪分量参数为2;
11.步骤(4)、获取跟踪分量参数后,接收机根据捕获获得的prn号、码相位和多普勒频率进行跟踪过程;
12.步骤(5)、prn号、跟踪分量i支路值和跟踪分量参数值传入双分量帧同步模块,通过跟踪分量参数值选择对单数据分量帧同步或对导频分量辅助数据分量帧同步;当跟踪分量参数为1时,通过prn号生成数据分量同步头序列对18s以上的数据分量进行同步帧头得到子帧1位置p
df1
同时推算出第n个完整帧子帧2和3起始位置和当跟踪分量参数为2时;获得6s内导频分量的数据进行相关获得当前数据所对应一帧数据起始位置p
pn
进行推算此刻数据分量第n个完整帧周期子帧1、2和3起止位置算此刻数据分量第n个完整帧周期子帧1、2和3起止位置和
13.步骤(6)、多星联调解码模块获得子帧1的起始位置,当判断外部soh值为999时,判断为是首颗卫星解码,通过bch解码解算子帧1数据获得soh信息,并储存给外部存储;当判断外部soh值不是999,即其他星子帧1解码已经解码完成,可根据外部储存的其它星soh信息生成soh编码超前滞后序列与当前soh值相关,获取最大峰值判断编码序列的soh值,减少bch解码过程,完成子帧1解码过程;
14.步骤(7)、将子帧2、3的解交织模块获得子帧2的起止位置,将获得的子帧2和子帧3交织的数据块,分开成子帧2、3对应的编码电文,便于对每个子帧进行单独处理;将解交织后子帧2、3的编码电文传入去lpdc模块,去lpdc模块分别对子帧2,3比特冗余数据剔除进行留下解码的子帧2、3电文数据;
15.步骤(8)、将步骤(7)中子帧2、3解码电文数据进行crc校验模块,校验成功则解码电文数据为正确的电文数据进行解读,若不正确则从步骤(5)中重新推算新的下一周期的电文子帧1、2、3的起止位置;
16.步骤(9)、重复循环步骤(2)~(8),持续得到接收机实时同步电文帧头和解码的电文信号,储存子帧所包含的导航电文,和更新电文的信息。
17.进一步的,所述步骤(5)中,双分量帧同步模块利用读取的跟踪参数及prn信息,通过判断跟踪参数是否为1,来进行选择单数据分量帧同步或导频分量辅助数据分量帧同步;当参数为1时,将获取36秒的跟踪数据分量进行极性转换并储存,读取本地生成的同步帧头矩阵f,根据卫星prn号选取矩阵f中21位帧头序列,对跟踪数据分量进行相关积分操作得到跟踪数据分量的相关函数;对于跟踪数据分量的时间长度大于两个连续帧播发的时间,即相关函数出现帧头序列获取间隔为18s的多个为21的最大相关值;确定第一个最大相关值为第一个整帧起始位置p
df1
,推算出第n个完整帧子帧2和3起始位置和当跟踪参数不为1时,获取数据分量和导频分量内容极性转换并储存,然后将极性转化后导频分量6s的数据与单周期完整1800位子码进行导频分量子码同步算法,获取同步位p
pn
,将同步为进行推算第n个完整帧周期子帧1、2和3起止位置和
18.进一步的,所述步骤(5)中,本地数据分量同步帧头矩阵f如下,每一行用分号隔开,1到45行分别对应prn19到prn63的同步帧头:
19.f=[010010011001011000001;010011001011000001010;010100100110010110000;010101110100001111011;010110000010100100110;010111010000111101101;011000001010010011001;011001011000001010010;011010101110100001111;011011111100111000100;011100010001101111110;011101000011110110101;011110110101011101000;011111100111000100011;100000101001001100101;100001111011010101110;100010001101111110011;100011011111100111000;100100110010110000010;100101100000101001001;100110010110000010100;100111000100011011111;101000011110110101011;101001001100101100000;101010111010000111101;101011101000011110110;101100000101001001100;101101010111010000111;101110100001111011010;101111110011100010001;110000010100100110010;110001000110111111001;110010110000010100100;110011100010001101111;110100001111011010101;110101011101000011110;110110101011101000011;110111111001110001000;111000100011011111100;111001110001000110111;111010000111101101010;111011010101110100001;111100111000100011011;111101101010111010000;111110011100010001101]。
[0020]
进一步的,所述步骤(5)中,双分量帧同步模块中的推算公式如下:
[0021][0022][0023][0024][0025][0026][0027]
所述导频分量子码同步算法,本地子码发生器nco输出经过fft变换后与经过fft变换并取共轭的本地输入6s数据信号进行相乘,输出结果再经过ifft变换为时域信号,ifft变换输出的模值表示输入数据与本地子码的相关积分结果;若出现峰值,则代表输入6s数据在18s整周期子码里起始的同步位p
pn

[0028]
进一步的,所述步骤(6)中,多星联调子帧1解码模块获取子帧1起始位置后,剔除电文中prn所编码信息,对子帧1中剩余代表soh计数值的soh编码序列进行解码。
[0029]
进一步的,所述步骤(6)的具体步骤,首先,读取外部soh计数后,进行判别;由于soh计数值范围为0到256,方法开始前对soh计数值进行初始化,则给予soh计数值初始化值为999便于后续判别及更新;其次,当soh计数值等于999时表示,首颗卫星开始进行soh计数值解码,将获取的电文中的soh编码序列值与本地生成所有序列进行相关获取256个最大相关值,并对相关值进行峰值点检测,最大峰值点则代表的当前soh编码序列对应的soh计数值,将解码的soh计数值储存至本地协助其他星进行联合解码soh值;当soh值不等于999时,
表示当前值为上一时段其他星解码最新soh计数值,根据罪行soh值分别提取,当前值前后计数值差值为1所代表的soh序列;最后,对接受到的soh电文编码序列进行相关获取最大峰值判断soh值,并更新至本地。
[0030]
进一步的,所述步骤(7)中,根据获取的完整帧的子帧2、3的起始位置,对子帧2、3所交织形成的1728比特数据进行解交织处理分别获得1200比特的子帧2数据和528比特的子帧3数据,然后更具ldpc编码的性质将子帧2、3的冗余位截去,留下信息位。
[0031]
进一步的,所述步骤(7)中,对于2k长度的64进制ldpc(2k,k)行序列m1×
2k
,去冗余位后的序列m
′1×
k
与冗余位序列m
″1×
k
与原始m1×
2k
的关系为:
[0032]
m1×
2k
=[m
′1×
k
,m
″1×
k
]
[0033]
其中:m
′1×
k
为长度为k的解码序行向量,m
″1×
k
为长度为k的冗余为行向量;ldpc(2k,k)表示对长度为k的信息码字进行编码得到长度为2k的信息码字,每个码字由6个二进制数代表64进制序列。
[0034]
进一步的,所述步骤(8)中,对信息位的内容进行crc校验,校验输出为1则解码错误,重新推算下一个整帧的子帧2、3的起始位置,进行上述操作;若校验输出为0则表示解码电文正确、将解码电文进行储存以便后续进行读取星历数据。
[0035]
与现有技术相比,本发明具有以下有益效果:
[0036]
本发明在接收机实时解码导航电文的情况下可以减少解码电文的复杂度,提高解码电文的效率,为北斗b1c接收机解码导航电文提供了有效方案,具有实际工程意义。
附图说明
[0037]
图1是本发明中北斗b1c信号导航电文帧同步及解码流程图;
[0038]
图2是本发明中双分量帧同步模块方法流程图;
[0039]
图3是本发明中导频分量子码同步算法流程图;
[0040]
图4是本发明中多星联调子帧1解码方法流程图;
[0041]
图5是本发明中子帧2、3电文解码流程图;
[0042]
图6是本发明中双分量数据同步测试,其中:图6(a)为单数据分量帧同步;图6(b)为导频分量辅助数据分量帧同步;
[0043]
图7是本发明中实验数据码片推算位置示意图;
[0044]
图8是本发明中子帧1快速迟滞延后数据判断。
具体实施方式
[0045]
下面结合实施例对本发明作更进一步的说明。
[0046]
实施例1
[0047]
一种北斗b1c信号导航电文帧同步及解码的模块包括双分量帧同步模块、子帧1多星联调解码模块、子帧2和子帧3解码模块,
[0048]
来自北斗b1c信号接收机天线的数字中频信号经过捕获得到卫星捕获的伪随机码编号(prn号)、码相位及多普勒频率初值,获得捕获结果可根据接收机需求对单数据分量进行跟踪或对数据分量和导频分量双分量进行跟踪选择设置参数。设置完跟踪分量,接收机对选择分量进行跟踪获得跟踪分量同相支路即时值的输出值(i支路)。此时的输出同相支
路即时值的信号,对导频分量表示含有子码信息的信号,对数据分量表示编码后的导航数据信息的信号。为了进一步便于获得导航电文信息的起始比特位置,将prn号、跟踪分量i支路输出值输入到双分量帧同步模块中。
[0049]
双分量帧同步模块根据prn号、跟踪分量的i支路值和跟踪参数选择进行数据分量的帧头同步或导频分量辅助数据分量进行帧同步。通过帧同步模块后得到的子帧1、2、3的帧头起始位置进行电文解码模块操作。将子帧1的起止位置传入多星联调解码模块解码获取子帧1的电文数据;完成子帧1解码之后,将子帧2和3的起止位置和二值化的导航电文传入子帧2、3模块进行解交织,获得子帧2和子帧3编码的电文;将子帧2、3的编码电文通过去ldpc冗余位模块将ldpc编码剥离,再通过crc校验模块直接进行解码验证获得解码的子帧2、3解码电文信息。
[0050]
一种北斗b1c信号导航电文帧同步及解码方法,包括以下步骤:
[0051]
步骤(1)、北斗b1c接收机将天线接收到的北斗卫星信号进过射频前端处理后变成数字中频信号,提供给接收机输入信号来源;
[0052]
步骤(2)、接收机通过捕获算法获取当前时候存在可见星及其捕获码相位和多普勒频率便于后续跟踪使用;
[0053]
步骤(3)、接收机通过用户需求及捕获信号载噪比选择对北斗卫星包含的数据分量或导频分量进行跟踪,当捕获信号载噪比大于等于40db

hz或根据用户需要选择只跟踪数据分量,并设置跟踪分量参数为1;当捕获信号载噪比小于40db

hz或不考虑运行时间选择跟踪导频分量和数据分量,并设置跟踪分量参数为2;
[0054]
步骤(4)、获取跟踪分量参数后,接收机根据捕获获得的prn号、码相位和多普勒频率进行跟踪过程;
[0055]
步骤(5)、prn号、跟踪分量i支路值和跟踪分量参数值传入双分量帧同步模块,通过跟踪分量参数值选择对单数据分量帧同步或对导频分量辅助数据分量帧同步;当跟踪分量参数为1时,通过prn号生成数据分量同步头序列对18s以上的数据分量进行同步帧头得到子帧1位置p
df1
同时推算出第n个完整帧子帧2和3起始位置和当跟踪分量参数为2时;获得6s内导频分量的数据进行相关获得当前数据所对应一帧数据起始位置p
pn
进行推算此刻数据分量第n个完整帧周期子帧1、2和3起止位置算此刻数据分量第n个完整帧周期子帧1、2和3起止位置和
[0056]
具体地讲:所述步骤(5)中,双分量帧同步模块利用读取的跟踪参数及prn信息,通过判断跟踪参数是否为1,来进行选择单数据分量帧同步或导频分量辅助数据分量帧同步;当参数为1时,将获取36秒的跟踪数据分量进行极性转换并储存,读取本地生成的同步帧头矩阵f,根据卫星prn号选取矩阵f中21位帧头序列,对跟踪数据分量进行相关积分操作得到跟踪数据分量的相关函数;对于跟踪数据分量的时间长度大于两个连续帧播发的时间,即相关函数出现帧头序列获取间隔为18s的多个为21的最大相关值;确定第一个最大相关值为第一个整帧起始位置p
df1
,推算出第n个完整帧子帧2和3起始位置和当跟踪参数不为1时,获取数据分量和导频分量内容极性转换并储存,然后将极性转化后导频分量6s的数据与单周期完整1800位子码进行导频分量子码同步算法,获取同步位p
pn
,将同步为进行推算第n个完整帧周期子帧1、2和3起止位置和
[0057]
所述步骤(5)中,本地数据分量同步帧头矩阵f如下,每一行用分号隔开,1到45行分别对应prn19到prn63的同步帧头:
[0058]
f=[010010011001011000001;010011001011000001010;010100100110010110000;010101110100001111011;010110000010100100110;010111010000111101101;011000001010010011001;011001011000001010010;011010101110100001111;011011111100111000100;011100010001101111110;011101000011110110101;011110110101011101000;011111100111000100011;100000101001001100101;100001111011010101110;100010001101111110011;100011011111100111000;100100110010110000010;100101100000101001001;100110010110000010100;100111000100011011111;101000011110110101011;101001001100101100000;101010111010000111101;101011101000011110110;101100000101001001100;101101010111010000111;101110100001111011010;101111110011100010001;110000010100100110010;110001000110111111001;110010110000010100100;110011100010001101111;110100001111011010101;110101011101000011110;110110101011101000011;110111111001110001000;111000100011011111100;111001110001000110111;111010000111101101010;111011010101110100001;111100111000100011011;111101101010111010000;111110011100010001101]。
[0059]
所述步骤(5)中,双分量帧同步模块中的推算公式如下:
[0060][0061][0062][0063][0064][0065][0066]
所述导频分量子码同步算法,本地子码发生器nco输出经过fft变换后与经过fft变换并取共轭的本地输入6s数据信号进行相乘,输出结果再经过ifft变换为时域信号,ifft变换输出的模值表示输入数据与本地子码的相关积分结果;若出现峰值,则代表输入6s数据在18s整周期子码里起始的同步位p
pn

[0067]
步骤(6)、多星联调解码模块获得子帧1的起始位置,当判断外部soh值为999时,判断为是首颗卫星解码,通过bch解码解算子帧1数据获得soh信息,并储存给外部存储;当判断外部soh值不是999,即其他星子帧1解码已经解码完成,可根据外部储存的其它星soh信息生成soh编码超前滞后序列与当前soh值相关,获取最大峰值判断编码序列的soh值,减少bch解码过程,完成子帧1解码过程;
[0068]
具体地讲,所述步骤(6)中,多星联调子帧1解码模块获取子帧1起始位置后,剔除
电文中prn所编码信息,对子帧1中剩余代表soh计数值的soh编码序列进行解码。
[0069]
所述步骤(6)的具体步骤,首先,读取外部soh计数后,进行判别;由于soh计数值范围为0到256,方法开始前对soh计数值进行初始化,则给予soh计数值初始化值为999便于后续判别及更新;其次,当soh计数值等于999时表示,首颗卫星开始进行soh计数值解码,将获取的电文中的soh编码序列值与本地生成所有序列进行相关获取256个最大相关值,并对相关值进行峰值点检测,最大峰值点则代表的当前soh编码序列对应的soh计数值,将解码的soh计数值储存至本地协助其他星进行联合解码soh值;当soh值不等于999时,表示当前值为上一时段其他星解码最新soh计数值,根据罪行soh值分别提取,当前值前后计数值差值为1所代表的soh序列;最后,对接受到的soh电文编码序列进行相关获取最大峰值判断soh值,并更新至本地。
[0070]
步骤(7)、将子帧2、3的解交织模块获得子帧2的起止位置,将获得的子帧2和子帧3交织的数据块,分开成子帧2、3对应的编码电文,便于对每个子帧进行单独处理;将解交织后子帧2、3的编码电文传入去lpdc模块,去lpdc模块分别对子帧2,3比特冗余数据剔除进行留下解码的子帧2、3电文数据;
[0071]
具体地讲,所述步骤(7)中,根据获取的完整帧的子帧2、3的起始位置,对子帧2、3所交织形成的1728比特数据进行解交织处理分别获得1200比特的子帧2数据和528比特的子帧3数据,然后更具ldpc编码的性质将子帧2、3的冗余位截去,留下信息位。
[0072]
所述步骤(7)中,对于2k长度的64进制ldpc(2k,k)行序列m1×
2k
,去冗余位后的序列m
′1×
k
与冗余位序列m
″1×
k
与原始m1×
2k
的关系为:
[0073]
m1×
2k
=[m
′1×
k
,m
″1×
k
]
[0074]
其中:m
′1×
k
为长度为k的解码序行向量,m
″1×
k
为长度为k的冗余为行向量;ldpc(2k,k)表示对长度为k的信息码字进行编码得到长度为2k的信息码字,每个码字由6个二进制数代表64进制序列。
[0075]
步骤(8)、将步骤(7)中子帧2、3解码电文数据进行crc校验模块,校验成功则解码电文数据为正确的电文数据进行解读,若不正确则从步骤(5)中重新推算新的下一周期的电文子帧1、2、3的起止位置;
[0076]
具体地讲,所述步骤(8)中,对信息位的内容进行crc校验,校验输出为1则解码错误,重新推算下一个整帧的子帧2、3的起始位置,进行上述操作;若校验输出为0则表示解码电文正确、将解码电文进行储存以便后续进行读取星历数据。
[0077]
步骤(9)、重复循环步骤(2)~(8),持续得到接收机实时同步电文帧头和解码的电文信号,储存子帧所包含的导航电文,和更新电文的信息。
[0078]
仿真说明
[0079]
(1)、双分量帧同步的实验图形图6(a)为实验数据分量帧同步相关结果,图6(b)为实验导频分量相关算法实验结果。图6(a)可以看出60s数据分量再利用帧头进行同步时获得3个相关值为21的最大相关峰值,间隔为18s,可判断数据中1524位为首个完整帧帧头,也是子帧1的起始位置,通过推算公式可知到子帧2、3的位置分别为1596位和2796位。图6(b)可以得到数据在整子码周期的起始位置278位(即2.78秒处),即推算整帧子帧1、2、3位置分别位1524、1596、2796位如图7。
[0080]
图7表示图6(a)中实验数据所真实对应的子码的位置。数据的其实位置对应整周
期子码第278比特位,数据1524位对应子帧1开头位置,可以看出数据开始的6s数据可以精确判断出此刻导频数据对应子码第278位开始。符合实验结果。
[0081]
(2)、多星联调子帧1解码方法,实验使用数据可捕获跟踪的卫星为prn38、20、29、39、19、30、35。根据多星联调的原理,将首次跟踪完成的卫星prn38的子帧1的电文的小时内秒的数据进行储存,作为当前小时内秒。此次实验soh计数值为115,将当soh计数值作为基准,分别获取计数值114和116对应的bch(51,8)的编码序列及当前soh值对应的编码电文序列,与已经同步的帧头的相对应的子帧1soh数据进行相关。为了方便观察,如图8,选取前后2计数值数据作为分析图,可知此刻捕获跟踪的卫星的子帧1的soh值,都与prn38在相同soh处有最大相关值。
[0082]
(3)、分别将含有多星联调解码法的和传统相关法的进行对比,两种方法都包含传统的提取36s以上的数据通过相关导频子码获得帧头再对子帧1进行解码,子帧2和3采用传统的解交织和去ldpc、crc校验解码电文,两种方法均可解码正确的电文。多星联调法相对传统解码方法,省去了子帧1中prn号的解码和对soh的大量计算,每次实验将一组数据完整的从开始解码第一颗卫星,然后储存所获得的soh值,的前后18s的差值与此刻捕获卫星的soh值相关快速解码来提高速度。分别进行了5、10、20、50、100、1000次完整实验得到如下表的时间对比。
[0083]
可发现当实验次数变长,即实时接收机运行时间边长,多星联调算法可以明显显现出优势,缩短53.6%左右的时间。
[0084]
表1算法用时检测
[0085][0086]
目前对新信号的导航电文帧同步和解码电文中的编码的方法比较少,对降低解码电文复杂度的方面研究也比较少。因此,本发明在接收机实时解码导航电文的情况下可以减少解码电文的复杂度,提高解码电文的效率,为北斗b1c接收机解码导航电文提供了有效方案,具有实际工程意义。
[0087]
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1