当接收机在捕获、跟踪接收信号后,它接着要对信号进行位同步和帧同步处理,从而从接收信号那里获得信号发射时间和导航电文,并最终实现GPS定位。
位同步
即从接收信号中找到数据比特的边缘。
位同步算法的依据
-
在没有噪声的情况下,载波环正确解调出来的1 ms宽的比特值在同一个20 ms宽的数据比特时沿下应该相等,而相邻两个1 ms宽的比特值只可能在数据比特边沿处发生跳变。
-
在正常情况下,接收到的卫星信号中所含的导航电文必然存在着数据比特跳变。
-
每一个20 ms宽的数据比特起始沿在时间上必定与某个C/A码周期中的第一个码片起始沿重合。
在1 ms宽的相干积分起始沿与C/A码周期起始沿对齐的前提下,位同步算法可利用这三个事实来确定数据比特起始沿。
位同步算法
直方图
在相干积分时间 T c o h T_{coh} Tcoh为1 ms的情况下,载波环每1 ms输出一个值为0或1的当前数据比特估计值。如果没有噪声和其他接收机运行错误,那么确定比特边沿这一任务其实相当简单:
- 凡是相邻两个1 ms宽的数据比特之间发生了跳变,那么它们之间的交界沿就是数据比特边沿,并且在该比特边沿后的每20个值,应该与全部为0或者全部为1的1 ms宽的数据比特一起,合并成一个值为0或者为1的20 ms宽的正常数据比特。
在实际中,由于噪声等各种原因,1 ms宽的数据比特流有时并不呈一个清晰而又有规律的模式,我们需要观察多个数据比特跳变现象以提高判断比特边沿的可靠性。
直方图法首先将载波环所输出的1 ms宽数据比特流用1~20循环编号,其中编号为1的首个数据比特是任意选定的,然后逐个统计相邻两个毫秒之间的数据跳变情况:若第i个数据到第i+1个数据发生了跳变,则对应于第i+1个直方的计数器值加一,否则计数器值保持不变。这样,每当处理完20 ms的数据之后,直方图法查看统计结果是否为以下两种情况中的一种:
- 有一个直方的计数器值达到门限值 N 1 N_{1} N1:这种情况(如图)位同步被认为已经成功实现,其中比特边沿偏差为3 ms。第1至第3毫秒属于一个比特,第4至第20毫秒加上紧随其后的第1至第3毫秒属于下一个比特。
- 至少有两个直方的计数器值达到或超过门限值
N
2
N_{2}
N2:这种情况表明了信号强度太弱,或者这一段导航电文所包含的数据比特跳变太少,于是位同步失败,所有各个直方的计数器清零,然后重新开始对数据跳变的统计。
如果以上两种情况均没有发生,那么接收机继续对数据流进行逐个检查和统计。若载波环在尚未实现位同步之前出现对信号的失锁,则以上统计过程同样需要清零重启。
在实现位同步的统计过程期间,直方图法认为信号强度不变,于是门限值 N 1 N_{1} N1和 N 2 N_{2} N2可各自为一常数。为了保证对弱信号进行位同步的可靠性,接收机通常需要增加对弱信号数据比特跳变的统计时间 T b s T_{bs} Tbs(在 T b s T_{bs} Tbs秒的统计时间内,20 ms宽的数据比特共有50 T b s T_{bs} Tbs个)。
硬件方法
接收机利用20个并行相关器及其相关支路对接收信号进行时间长度均为20 ms的相干积分,其中的关键是让这20个相关支路的相干积分起始沿分别相差1 ms,然后检查这20个相干积分结果的信噪比。若某条相关支路获得最高的相干积分结果信噪比,则相应的相干积分起始沿必定与比特起始沿对齐,即 比特起始沿被找到,位同步实现。
容错性
数据比特解调必须具有一定的容错性,即属于同一数据比特的20个1 ms宽的数据比特值并不需要相互完全一致,偶尔发生几个毫秒的数据解调错误有时可能对整个数据比特的正确解调没有影响。比如,
- 利用科思塔锁相环对20个1 ms长的相干积分值 I p I_{p} Ip进行相加,然后根据和的正负号来判断该20 ms长的正常数据比特值
- 求平均值:将1 ms宽的数据比特表达成+1和−1的电平值形式,然后如果20个1 ms宽的数据比特电平值的平均值不小于+0.9或者不大于−0.9,那么相应的正常数据比特的电平值就等于+1或者−1;如果平均值位于−0.9至+0.9之间,那么这一正常数据比特的解调结果视为无效,或者先前实现的位同步正确性值得怀疑。
误差来源
- 当载噪比 C 0 / N C_{0}/N C0/N较低或者用户动态性较强时,锁相环解调出的 T c o h T_{coh} Tcoh宽数据比特的错误率会较高,相应地,比特错误率和位同步错误率也就较高。
- 采样时钟的偏差和频率漂移也有可能造成某1 ms的数据从这一个比特时段被错误地划分到另一个比特时段。位同步错误会在信号发射时间和相应的伪距测量值中引入整数个毫秒的错误(又称毫秒错误)。由 于1 ms错误相当于约300 km的伪距测量误差,在卫星伪距测量值足够多的情况下,定位导航运算模块应该很容易检测出这种由基带数字信号处理模块引入的毫秒错误。
帧同步
即从接收信号中找到子帧起始边缘。
在实现了位同步之后,载波环解调出来的20 ms宽的正常数据比特流还存在如下两个问题:一是这些具有180°相位模糊度的比特值是否应该被全部反相,二是如何将这些比特分成每30个一组的字。
基本思路
导航电文每一子帧的第一字为遥测字,而遥测字的首八个比特是值固定在10001011的同步码。卫星首先对原始数据比特进行海明编码,然后再将编码后的比特播发出去。在卫星实际播发的比特中,因为每一子帧最后一字的最后两个比特始终被控制为00,所以这两个比特与下一个字(即恰好为遥测字)的原始比特放在一起进行编码后,从卫星上实际播发出去的同步码始终为10001011,而不可能是其反相值。
因此,通过逐个搜索被解调出来的数据比特,从中找到与同步码完全相匹配或者全部反相的八个连续比特,可以确定子帧边缘并解决数据比特的180°相位模糊度问题。除了同步码以外,帧同步算法还可利用周内时(TOW)、奇偶校验码等导航电文中的其他数据比特信息帮助更快、更可靠地完成帧同步及其确认过程。
需要指出的是,在解调出来的数据比特流中寻找同步码的过程,可以等价地视为同步码与数据比特流进行相关运算,而搜索到绝对值最大的相关值就相当于找到了同步码或者其反相值。
帧同步算法
奇偶校验和电文译码
奇偶校验流程
卫星对所要播发的数据比特采用海明(32, 26)编码方式进行编码,并且编码也同时产生了6比特的奇偶检验码。当接收机从接收到的卫星信号中解调出以字为结构单位的数据比特
D
i
D_{i}
Di后,它一方面需要检验每个字中的30个数据比特
D
i
D_{i}
Di是否满足奇偶检验,另一方面要对
D
i
D_{i}
Di进行编码的逆向操作,即解码,从而得到原始数据比特
d
i
d_{i}
di。
矩阵H中的元素值1与0分别代表相应的比特值是否参加异或相加运算。
经海明(32, 26)编码后的奇偶检验具有一定的检错与纠错功能,然而它对爆发型多比特错误的检错能力不强。如果接收通道一旦发现奇偶检验不通过但又未能纠正所有的错误比特,那 么 作为整个字的这30比特一般被全部放弃,而只有能满足奇偶检验的一个字才会被认为是正确的。
当一个字通过奇偶检验后,该字的前24个解码结果 d 1 , d 2 , . . . , d 24 d_{1}, d_{2}, ..., d_{24} d1,d2,...,d24应当被保存起来。当一个子帧的10个字被全部收集完整后,接收机就可以按照《GPS界面控制文件》给出的数据比特格式翻译出导航电文参数。
译码
译码的首要任务是从子帧的交接字中获得属于信号播发时间一部分的周内时TOW。一旦某个接收通道对卫星信号的交接字通过了奇偶检验,则周内时就可从该字的前17个比特获得,于是整个接收机对当前时间的掌握准确程度就可达微秒级,这非常有利于接收机加快完成对其他可见卫星信号的捕获和实现GPS定位。
若一个测量值能被用于GPS定位运算,则接收机必须至少拥有相应卫星的钟差校正参数和星历参数,也就是说接收机必须至少正确、完整地收集其第一子帧、第二子帧和第三子帧的数据比特。为了实现首次定位,接收机一般来说需要收集至少四颗不同卫星的前三个子帧数据比特,于是包括信号的捕获所需花费的时间在内,接收机冷启动首次定位所需时间的平均值大约为30 s。
谢钢.《GPS原理与接收机设计》.[Z].undefined.电子工业出版社.2017.