北斗卫星导航系统C/A码的正交性研究

2014-08-15 01:39王爱生
测绘通报 2014年4期
关键词:二进制寄存器导航系统

王爱生,张 棋,魏 猛

(江苏师范大学 测绘学院,江苏 徐州 221116)

一、引 言

2012年12月27日,中国卫星导航系统管理办公室公开了北斗卫星导航系统空间信号接口控制文件公开服务信号B1I(1.0版)[1],正式公布了B1频点的信号结构和基本特性参数、射频信号特性,即可以通过仿真来研究北斗信号的特性,这对于扩频码的同步和扩频信号的解扩、噪声的控制、测距精度的测试等具有非常重要的意义。文献[2]通过仿真研究了GPS-C/A码的平衡性,文献[3—5]也对GPS的测距码进行了仿真。本文将对北斗B1频点I支路测距码(相当于C/A码)进行计算机仿真,从而研究它们的正交性。

二、m序列

随机序列有很好的自相关性,最大长度序列(m序列)与随机序列一样也有很好的自相关性,并且能够通过带反馈的二进制移位寄存器生成。移位寄存器的输入是输出寄存器与各种内部寄存器的模2和。设移位寄存器的存储位数为m,如果反馈抽头选择适当,将产生一个长度为2m-1的序列。通常用一个二进制的不可约多项式来描述反馈抽头的集合,这个多项式称为m序列的生成多项式。

m序列有许多重要性质[6],其中,m序列的自相关为

三、Gold码

对同一长度的两个m序列求和,但使用不同的生成多项式,这样得到的一个新的0-1序列就是Gold码。在实际应用中,我们希望分配给发射机的扩频码具有很好的互相关特性。Gold证明了对于特定选择的生成多项式,生成的Gold码序列具有很好的互相关性质,即

(2)

式(2)说明,对于所有的时间偏移τ,两个不同符号波形的互相关近似为0,这意味着不同序列是近似正交的。使实际信道和接收机影响最小化所必须附加的自正交性要求为

Rkk(τ)≈0 (τ>0)

(3)

也就是说,对于任何正的时间偏移τ,每个扩频码自身是正交的。

四、北斗C/A码的结构

北斗C/A码不是真正的Gold码,其序列长度是2046位码片数(Gold码应该是211-1=2047位)。北斗C/A码发生器的结构方案[1]如图1所示。

图1 C/A码发生器

由图1可以看出,C/A码是由两个线性序列G1和G2模2和产生的。G1和G2序列分别由一个11级线性移位寄存器生成,其生成多项式是

G1(X)=1+X+X7+X8+X9+X10+X11

(4)

G2(X)=1+X+X2+X3+X4+X5+X8+X9+X11

(5)

G1的初始相位为01010101010,G2的初始相位为01010101010,通过对产生G2序列的移位寄存器不同抽头的模2和可以实现G2序列相位的不同偏移,与G1序列模2和后再去掉最后一位分配给不同卫星,每个卫星对应一个唯一的C/A码,见表1。表1中一共有37个C/A码,下面将用Matlab程序仿真这些码并对它们的正交性进行分析。

表1 北斗卫星的G2序列相位分配

五、北斗C/A码的实现及相关性计算

1. m序列生成算法

李栋等编写了m序列的仿真Matlab函数[7],本文对其略加改动,形成下面的程序

Function[mseq]= mseries(coeffict,iniregis,wayout)

len=length(coeffict); %移位寄存器的级数

L=2^len-1; %生成的伪随机码的长度

Mseq(1)=iniregis(wayout);

for i=2∶L

newregis(2∶en)=iniregis(1∶len-1);

newregis(1)=mod(sum(coeffict..*iniregis),2);

iniregis=newregis;

mseq(i)=iniregis(wayout);

end

函数mseries生成m序列并保存在矩阵mseq 中,它有3个参数:coeffict表示m序列生成多项式的二进制系数,iniregis表示初始寄存器内容,wayout表示抽头或出口。

2. 北斗C/A码的生成

按照图1生成码序列。G1序列的生成多项式的二进制系数为[1 0 0 0 0 0 1 1 1 1 1],寄存器的初始内容为[0 1 0 1 0 1 0 1 0 1 0],抽头为11。G2序列的生成多项式的二进制系数为[1 1 1 1 1 0 0 1 1 0 1],寄存器的初始内容为[0 1 0 1 0 1 0 1 0 1 0],将抽头设置为6(有多种选择,这里以6为例),则产生G2-1序列;将抽头设置成11(有多种选择,这里以11为例),则产生G2-2序列。将G2-1和G2-2进行模2和,生成G2序列,最后将G1和G2进行模2和生成一个Gold码序列,将新序列的最后一个码片去掉,则为北斗的C/A码,长度为211-1-1=2046。生成过程如图2所示。

图2 C/A码的生成过程(前20个码元)

3. 相关系数计算

利用式(1)计算生成m序列的自相关系数。G1序列只有1个,G2-1或G2-2序列有11个,但是自相关系数都相同,如图3所示。

图3 m序列G1、G2-1、G2-2的自相关系数

利用式(1)计算了Gold码的自相关系数,按照表1,共有37个,图4是其中的一个。

图4 Gold码G2(6⊕11) 的自相关系数

利用式(1)计算了C/A码的相关系数,按照表1,共有37个,图5是其中的一个。

图5 C/A码G2(6⊕11)的自相关系数

根据式(2)计算两个C/A码之间的互相关系数,共有666对,图6是其中的一对。

为了全面考核C/A码的自相关性,把37个C/A码序列绝对值最大的自相关系数表示在图7中。

为了考核所有C/A码的互相关性,将666对C/A码的互相关系数最大值表示在图8中。

图6 C/A码PRN21和PRN30的互相关系数

由图3可以看出,对于G1、G2-1序列、G2-2序列,当延迟(移位)为0时,自相关系数等于1;当延迟不等于0时,自相关系数为-1/2047,符合m序列的特性。由图4可以看出,由两个不同的码发生器生成的Gold码当延迟等于0时,相关系数等于1;当延迟不为0时,相关系数不等于-1/2047,但最大值为0.031 8,说明相关性很好,这符合Gold的特性。北斗的C/A码长度是2046,比正常的2047少1,但是它的自相关系数也很小,如图5和图6所示,所有C/A码自相关系数当延迟不等于0时的最大值是0.083 1。由图8可看出,互相关系数最大值为0.102 6,最小值为0.042 3,平均值为0.072 0。而按照Gold的推导[6],如果两个码序列是最大长度随机序列,构成的Gold序列的互相关系数的绝对值不应该超过0.05,显然,北斗的C/A码的互相关系数并不是最小的,是由于北斗C/A码并不是真正的Gold码,而比真正的Gold的长度少1。互相关系数的最大值分布如图9所示。

图7 C/A码在延迟不等于0时的自相关系数最大值

图8 所有C/A码的互相关系数的最大值

图9 互相关系数统计频度图

六、结束语

本文编写了m序列的生成程序,按照北斗导航系统的ICD文件中对C/A码的生成方案,产生了37个C/A码序列。对这些码序列的自相关系数进行研究,结果表明,这37个序列的自相关性当延迟为0时,自相关系数等于1,当延迟不为0时,最大为0.083 1;对这37个序列两两之间的互相关系数也进行了研究,一共有666个码对,结果表明,最大互相关性为0.102 6。因为北斗的C/A码的长度是2046,比最大长度序列的正常长度2047小1,因此,与真正的m序列(或Gold序列)相比,正交性略差。

参考文献:

[1] 中国卫星导航系统管理办公室.北斗卫星导航系统空间信号接口控制文件公开服务信号B1I(1.0版)[EB/OL].[2013-01-01].http:∥www.beidou.gov.cn/

[2] 卢晓春,陈清刚,胡永辉.卫星导航定位系统中伪随机码的研究[J].时间频率学报,2004,27(1):23-32.

[3] 苗正戈,鹿珂珂,刘陵顺,等.GPS信号结构及其测距码研究[J].电子设计工程,2011,19(16):112-115.

[4] 刘芳,赵运韬,郝亮,等.GPS伪随机码仿真技术研究[J].沈阳理工大学学报,2008,27(2):27-30.

[5] 谢伟,蔡德林,孙开荣,等.GPS中伪随机码生成原理的研究[J].信息技术,2007(5):113-116.

[6] HAYKIN S, MOHER M. 现代无线通信[M]. 郑宝玉,泽.北京:电子工业出版社,2006.

[7] 李栋,刘进江.m序列的Matlab仿真与实现[J].重庆工学院学报:自然科学版,2008,22(4):139-141.

猜你喜欢
二进制寄存器导航系统
STM32和51单片机寄存器映射原理异同分析
用二进制解一道高中数学联赛数论题
说说“北斗导航系统”
Lite寄存器模型的设计与实现
有趣的进度
二进制在竞赛题中的应用
“北斗”导航系统是怎样炼成的
一种GNSS/SINS容错深组合导航系统设计
解读全球第四大导航系统
二进制宽带毫米波合成器设计与分析