小米8手机的上市,让大家认识了一个新的名词:GPS L5,那么到底什么是L5?如何编写L5软件接收机呢?
(1)GPS L5信号模型
和传统的GPS L1信号相比,L5信号的特点就是码长更长,带宽更宽,所以带来的最直接的变化就是定位精度更高了。L1信号的码长是1023,而L5信号的码长是10230,定位精度直接提高了一个数量级。
而且L5信号中,还包含了NH码,这也是L1信号所没有的。因此,相对于L1信号,在处理时,不但要剥除L5 CA码,还要剥除NH码。
(2)捕获算法
L5的捕获和L1的捕获几乎完全相同,根据经典的L1信号。仍然读取11ms的数据,然后使用相邻的2个1ms的数据进行并行码相位捕获。捕获时使用I通道和Q通道都可以,但要注意,后面的NH码要和通道相对应。得到码相位以后,就是精捕获,也就是精频率搜索,这里尤其要注意,因为,剥离了L5CA码以后,信号中还包括NH码,所以,直接进行FFT进行频率估计,是有误差的,而且这种误差会直接导致后面跟踪的失败。所以要进行NH码剥离,但有一个问题,就是虽然L5CA码和NH码是对齐的,但不确定是对齐的NH码是哪个,也就是说,要确定NH码的码相位。方法同以确定L5CA码相位相同,NH码就是10位或20位长的,分别对每个NH码相位做相关,找个最大值的那个就是NH码相位了。然后就可以剥离NH码,剥离后再用FFT做精频率估计,就可以得到这颗星的频率以及多普勒频移了。然后就是跟踪。
(3)跟踪算法
跟踪过程和L1完全相同,使用频率环和码环两个环路共同跟踪,I_P就是最终的跟踪结果。从图中可以清楚的看到NH码的变化,每一个NH码对应一位导航电文,在做导航定位解算时,要进行卷积码的解算,然后就可以解出导航电文,进行定位处理了。
同样,北斗的解码也可以使用类似的方案。
具体的代码,可以参考我上传的MATLAB L5软件接收机。