GLONASS信号处理流程总结

1. 捕获跟踪

glonass信号虽然是FDMA调制,但是在经过FPGA降到中频后,其捕获过程需要进行相应调节,完成捕获后转入跟踪模块,其跟踪环路与GPS/BDS无任何区别,可以参照实现。接下来重点介绍的是其位同步与帧同步的实现过程。

2. 位同步

由于glonass的一个数据比特持续时间为20ms,但是上面调制了一个明德码,如下图所示,在一个20ms的完整数据比特中,前10个1ms环路输出电平相位保持一致,然后发生反相,后10个1ms环路输出电平继续保持一致。所以glonass位同步需要找到该每10ms发生一次的跳变的起始沿。
GLONASS信号处理流程总结
程序中使用的方法为直方图法,其具体实现过程类似于GPS位同步,主要区别是GPS寻找的是20ms电平跳变起始沿,而glonass寻找10ms电平跳变起始沿。所以glonass位同步程序中最大偏移值设置为10,对连续10个位置的电平跳变情况进行统计,当某一位置的跳变次数达到预设阈值N1时,判断其它9个偏移位置的跳变次数是否有超过阈值N2(N1>N2),若没有,则位同步通过,该位置即为电平跳变起始沿。否则不通过,重置计数器,重新进行上述统计判断。当重置次数达到一定次数时,认为此卫星信号质量不好,将该卫星踢除,清空通道。

算法流程图如下图所示:
GLONASS信号处理流程总结

3. 帧同步

glonass的数据比特上调制有明德码,导致其前10ms的电平与数据比特一致,后10ms则相反。在卫星通道完成位同步后,其输入到帧同步的1个数据对应10ms的电平值。找到glonass字符串(类似GPS的子帧,为信号结构的最小单元)的起始位置,对其进行帧同步处理。由于字符串长度为2s,包含85比特(1.7s)的导航数据和长度为0.3s的时间标志。该时间标志类似GPS的同步码,是一串由30个长度为10ms的数据组成固定序列,用于初步定为字符串起始位置,并获得电平翻转标识,但是其位置处于一个字符串的末尾。其结构如图所示
GLONASS信号处理流程总结

对应帧同步算法具体实现步骤为:首先进行数据累积,累积长度达到330后,去数据前30个与时间序列进行互相关,未通过互相关(互相关结果不是30/0),则丢弃数据最前的一位,继续进行数据输入。若通过互相关,则每隔1个取85个数据(因为数据比特长度为20ms),并利用互相关结果消除相位模糊。然后对这85个数据进行汉明码校验,若通过校验,则取下一个字符串的页编号F2,与当前字符串页编号F1做比较,若两者连续(F2=F1+1,或者F1=15时F2=1),则判断完成帧同步。具体算法流程图如下图所示。
GLONASS信号处理流程总结

4. 解码

glonass解码实现则比较简单,对每一字符串的数据,按照其字符串编号进行相应解码,其结构在ICD文件中有清楚说明,这里不作叙述。由于glonass的星历结构与GPS和BDS不同,因此其需要使用单独的结构体对星历进行保存,并在pvt解算模块中针对其特殊星历进行相应调整。