北斗导航信号捕获系统的硬件设计与实现

  • 格式:doc
  • 大小:24.50 KB
  • 文档页数:3

北斗导航信号捕获系统的硬件设计与实现
【摘要】北斗卫星导航系统是我国自主研制的全球卫星导航系统,是继美国
的GPS以及俄罗斯的GLONASS之后的第三个成熟的卫星导航系统。北斗卫星
导航系统的卫星信号采用了二次编码技术,限制了相干积分的时间,给北斗导航
信号的捕获带来了挑战,因此本文提出了基于4ms的遍历并行码相位搜索的卫
星捕获算法,用来解决这个问题,提高卫星捕获的灵敏度,提高卫星捕获的性能。

【关键词】北斗卫星捕获;4ms遍历;并行码相位搜索;FPGA
1.引言
北斗卫星导航系统是中国自行研制的全球卫星定位与通信系统,是继美国的
全球定位系统(GPS)和俄国的GLONASS之后第三个成熟的卫星导航系统。2012
年12月27日,北斗导航业务正式对亚太地区提供无源定位、导航、授时服务。

随着北斗卫星导航系统的建立,北斗卫星导航接收机终端的研发也进入了关
键阶段,卫星导航接收机终端按照信号处理的流程来讲,分为三个阶段,第一阶
段是卫星的捕获,第二阶段是卫星的跟踪,第三阶段是定位结算[1]。本文研究
的重点就是卫星的捕获阶段,导航终端接收到的卫星信号的能量必须要能够保证
进行PVT计算,如果当信号被建筑物所阻挡,那么信号的强度将会受到严重的
衰减,这也意味着对该信号进行捕获也将更具挑战性。因此,在上述严峻的条件
下我们需要引入新的捕获技术来增加卫星捕获的灵敏度。

北斗卫星信号不仅仅调制了数据位,而且还调制了NH码,NH码是一种二
级码,周期为20ms,每1ms就有可能发生比特跳变,为了保证卫星信号的捕获
性能,一种通用的方法是非相干积分算法[2],该算法将1ms的扩频结果进行平
方,借此消除了比特跳变的影响,但是这种方法却引入了平方损耗,而且经过
1ms相关解扩后的信噪比越低,引入的平方损耗就越大,因此无法应用于弱卫星
信号的捕获。有一些研究方向是采用差分的方法来减小平方损耗,但是对于调制
了NH码的北斗信号而言并不适用,还有一种方法就是延长相干积分时间,这也
是最行之有效的方法。卫星信号上的NH码把相干积分时间限制在1ms,也限制
了相干积分增益,进而限制了捕获的灵敏度。因此我们的研究目标是消除NH码
带来的比特跳变的影响,避免引入平方损耗,提高捕获灵敏度。

2.基于4ms的遍历并行码相位搜索算法
北斗卫星信号上调制的NH码:
[3]。
每个NH码片的长度为1ms,周期为20ms,从NH码中我们可以找到规律,
即NH码的前5个比特是相同的,如果用该段数据进行相干积分,那么就可以不
采用非相干积分的算法,直接延长相干积分的时间,从而可以增大相干积分增益,
提高北斗卫星信号的捕获灵敏度。因此在这个思路之下,我们设计了基于4ms
的遍历并行码相位搜索算法,具体算法步骤如下:

A.取24ms的卫星中频信号;
B.取4ms数据进行一次粗混频,得到基带信号;
C.对基带信号进行抽取,降速率至4.092 MHz;
D.对降速率的信号进行插值,将信号速率调整至4.096MHz;
E.本地产生载波,对数据进行二次精细混频,在频率域上进行搜索;
F.将二次混频后的数据进行4点DFT,然后送入4096点FFT模块进行FFT
运算;

G.本地产生该颗北斗卫星的PRN码,预先作4096点FFT并取共轭,与卫星
信号FFT后的数据相乘;

H.将相乘后的结果作4096点IFFT取模,根据模值进行排序;
I.搜索完这个频率,再转到步骤E,搜索其他的频率;
J.搜索完这个4ms数据的全部频率,再将数据的起点往后移1ms,再取4ms
的数据,转到步骤B.

K.重复20次的4ms数据搜索,就可以遍历整个NH码序列,因为取得是4ms
的数据长度,无论起点的位置,遍历之后4ms的数据都会落在5ms的相同符号
的区域之内,搜索完毕之后,将最大的模值结果取出进行判决,如果超过阈值,
那么说明该颗卫星存在并被捕获到,如果没有超过阈值,说明该颗卫星没有被捕
获到。

上述步骤可以用图1所示的流程图描述。
图1 基于4ms遍历并行码相位算法流程图
3.北斗导航信号捕获系统硬件系统设计
北斗导航信号的捕获算法的计算量大,而且实时性要求较高,这样就需要使
用硬件实现,加速计算,保证实时性的要求[4]。因此本文中的北斗卫星导航信
号捕获系统由Verilog语言在FPGA平台上进行设计,作为协处理器通过AMBA
总线挂载在ARM7核上,负责北斗卫星信号的捕获过程,各个功能模块如图2
所示。
图2 北斗导航信号捕获系统功能模块设计框图
(1)ae_decimator模块:混频抽取模块,将中频输入的卫星信号混频至基
带,然后抽取降速。

(2)cap_buffer和cap_wr_ctl模块:控制数据存储到dsp_ram中。
(3)CPU register模块:用来和ARM7核进行数据的交互。
(4)CRAM模块:用来暂存最终的捕获结果以及从CPU register模块接收
来的捕获控制信息。

(5)AE_CTL模块:用来控制捕获协处理器的算法流程。
(6)Interpolator模块:用来对暂存到dsp_ram中的数据进行插值,将原速
率为4.092MHz的数据插值成4.096MHz的数据,方便后面进行4096点的FFT
操作。

(7)FFT/IFFT engine模块:负责4096点的FFT/IFFT的计算
(8)Work_mem模块:用于FFT/IFFT计算中中间结果的暂存。
(9)MEM_arbiter模块:DSP_MEM的仲裁器。