颜舒琳,丁超
(青岛杰瑞自动化有限公司, 山东 青岛266061)
中国北斗三号卫星导航系统(BDS-3)发布了一种名为B1C的现代民用GNSS信号.与之前的B1I信号相比,它采用了更新颖的信号设计方法,用以满足不断增长的服务需求.这些方法包括用于增强卫星信号之间的互相关性能的较长扩展码,用于加速比特同步过程的二次编码,以及不携带数据信息以提高捕获灵敏度的导频分量.虽然信号的新设计方法可改善信号捕获性能,但同时带来了一系列问题,使信号捕获技术的实现更加困难.为此,在设计新型北斗接收机的捕获技术时,需考虑三大问题.
1)符号翻转问题
基于快速傅里叶变换(FFT)的快速捕获技术在当前接收机实现中非常流行.与常见的串行搜索捕获技术相比,它可以大大加快搜索速度,并且易于在接收机硬件和软件中实现. 基于FFT的捕获方法等效于循环相关技术,故在积分周期内发生的符号翻转会引起捕获性能的下降,特别是当翻转出现在码周期1/2处,相关峰极可被底噪淹没,使卫星信号无法被探测到.
B1C信号的扩展码由主码和副码的乘法构成,其中每个副码码片覆盖一个主码周期.副码是导频信道中的一种短PRN代码,但在数据信道中是恒定值.二次编码会使导频信道的搜索过程存在符号翻转问题,但不会影响数据信道.然而,B1C信号以与副码相同的速率播发导航消息,因此符号翻转问题也存在于数据信道中.
学者们已经提出了各种技术来克服该问题[1].其中,最直接的解决方案[2-3]是通过将长度为两个主码周期的卫星信号与等长补零的一个主代码周期的本地测距码进行相关.此方法由于增加了数据长度,故大大增加了计算复杂度,并且由于仅使用了一半的信号,因此该方法效率不高.之后,文献[4-9]提出了通过将相关周期分成一组子相关的方法来提高搜索效率,再通过组合子相关结果的方法避免灵敏度的衰减.这类技术可同时实现多个较短信号的相关运算,因此利于实际接收机采用FPGA的工程实现.此外,文献[10-11]引入了两级搜索的技术方案来克服符号翻转问题.这类技术是基于符号翻转可引起多普勒频移而不影响码相位的假设提出的.据此,这些技术在第一步中先找到正确的码相位,第二步在正确的码相位上搜索多普勒频率.这些方法可有效实现强信号的捕获,而计算复杂度仍相对较高.
2)高计算复杂度问题
B1C的主码长度是B1I扩频码的十倍,这将大大增加计算复杂度.基于FFT的捕获技术被公认是运算有效的;然而,长FFT运算模块的价格非常高,限制了实际接收机的开发.在现代的北斗接收机中,采样率通常达到50~60MHz的量级.为了完成主码(10ms)的积分周期,必须对超过500 000点的数据进行FFT运算,民用接收器选用的廉价FPGA资源根本无法实现此数量级的运算.
Wilde[12]通过减少搜索维度的方法解决上述问题,其表明当BPSK调制信号的搜索间隔设为1/2码片和BOC(1,1)调制信号的搜索间隔设为1/6码片时,其方法可造成的最大功率损耗分别为2.50dB和1.16dB.B1C信号采用的调制方式分别是BOC(1,1)和BOC(6,1),每个码片需要至少6个采样点,即仍然需要61 380个点(6×10230长度的主码)的FFT计算.文献 [13]提出了更简单有效的方法,称之为平均相关(AC)技术.该方法的基本思想是首先将接收信号通过取平均的方法从采样点降维到以码片为基准的维度上,然后对降维后的信号进行FFT运算,其长度等于主码的长度(即10 230).此外,由于主码起始的采样点未知,若从接近半码片的采样点开始进行取均将极大地降低搜索性能.为解决此问题,在实际工程实现中采用同时从码片内不同点开始的方法进行并行相关,随后在多个并行搜索中选取最大相关峰值作为搜索结果.该方法适用于并行处理.
3)多峰性问题
B1C信号的数据和导频信道分别采用BOC(1,1)和QMBOC(6,1,4/33)进行调制,其中QMBOC(6,1,4/33)可视为BOC(1,1)和BOC(6,1)的组合.BOC信号自相关函数主峰比较尖锐,抗多径性能比BPSK调制信号要强.但由于BOC信号的自相关函数存在多个副峰,导致信号在捕获过程中存在一定的模糊度,易发生误锁现象.学者们已提出各种方法来解决此类多峰性的问题,例如类似BPSK的方法,子载波相位消除(SCPC)方法[14]和自相关副峰消除技术(ASPeCT)[15].这些技术旨在除去副峰以避免错误的码相位锁定.对于BOC(1,1),此方法适用于搜索步长小于1/6码片的情况,此时的分辨率足以区分主峰和副峰.然而如上所述,在实际应用中,快速捕获技术倾向于使用更大的搜索间隔(例如,AC技术采用1个码片).此时,搜索到的码相位的不确定性为一个码片,覆盖主峰和副峰.使用此捕获结果初始化的跟踪过程很容易导致跟踪的误锁.因此,针对BOC调制信号的快速捕获技术,应尽可能地提高其搜索分辨率,以避免跟踪阶段的误锁定.
本文提出了一种旨在解决上述三个问题的两级捕获技术,为BDS-3接收机信号捕获技术的工程实现提供有效的解决方案.此技术在第一阶段采用了扩展AC技术,以实现粗略和快速信号搜索,其分辨率是一个码片.扩展AC技术是在AC技术的基础上采用并行部分FFT的方法提高工作效率.这种方法不仅允许接收机使用更便宜的FPGA模块来提供有效的捕获解决方案,而且还消除了电文数据和二次编码引起的符号翻转带来的影响.第二阶段采用精密搜索技术,以实现高精度的捕获.此过程能有效避免由BOC信号多峰性引起的跟踪阶段的误锁现象.除此之外,本文还介绍了两种捕获方法,单信号和多信道组合方式,其中前者仅使用数据或导频信道的一个信号,后者同时使用两个信道的信号.信道组合技术相较单信道方法可提高捕获灵敏度,但需要更多的计算资源.这将增加运算复杂度和实现成本.设计人员可根据应用需求选择实现方法,在资源充足的情况下也可以同时实现这两种方法,在工作过程中自适应地切换两种模式以获得资源利用和捕获性能的最佳状况.
北斗B1C信号的详细描述可参见北斗接口控制文档[16].信号的发射频率为1 575.42MHz,中地球轨道(MEO)和倾斜地球同步轨道(IGSO)卫星的最小规定接收功率分别为-158.5dBW和-160.3dBW.信号由两个正交分量组成,可表示为
(1)
式中:P为接收到的B1C信号的总功率;sB1Cdata为BOC(1,1)调制的数据信道;sB1Cpilot为QMBOC(6,1,4/33)调制的导频信道,QMBOC(6,1,4/33)信号可以被认为是由BOC(1,1)和BOC(6,1)调制的两个信号分量(即子信道)组成的复信号.另外,由于数据和导频信道的功率比为1∶3,信号可以进一步详细说明如下:
(2)
式中第一行是数据信道的表达式,后两行为导频子信道的表达,在本文剩余部分将被简化为pilot_b和pilot_a,每个通道之前的常数是信道间的功率比,并且DB1Cdata是二进制电文数据,其长度为1 800,其符号率为100sps.CB1Cdata和CB1Cpilot分别是数据和导频的扩展码,由主码和副码组成.主代码长度为10 230码片,码率为1.023MHz,周期为10ms.副码具有与电文数据相同的长度和频率.sign(sin(2πfsct))表示子载波信号,其中fscB1Ca=1.023MHz是用于实现BOC(1,1)调制的子载波频率,fscB1Cb=6.138MHz用于BOC(6,1)调制的实现.
总而言之,数据和导频pilot_b具有相同的相移但在频谱上不同,而数据和导频pilot_a具有相同的子载波频率但其载波具有90°的相位差.此外,所有信道的每个主码周期均可能含有符号翻转(如图1所示),其中数据信道由电文数据引起,并且导频信道由副码引起.
图1 B1C信号结构示意图
与之前的北斗民用信号(如B1I)相比,B1C信号具有更长的扩频码,更短的电文数据宽度和更复杂的信号结构,这些新的特性在捕获过程中引入新的问题需要被处理,如符号翻转和多峰性.这对软件和硬件设计提出了更高的要求,并且需要特定的方法来处理新类型的信号,因此传统的北斗接收机不再适用.为了实现新型北斗接收机中的捕获功能,本文提出了一种新颖有效的两级捕获技术.第一阶段旨在实现快速且符号翻转不敏感的搜索过程.该过程使用扩展平均相关方法来实现粗略搜索.随后,在第二阶段中进行精密搜索处理,目的是提供高搜索精度,以克服BOC(1,1)信号多峰性带来的误锁问题.在下面的小节中,首先解释单信道和多信道组合捕获技术,然后详解两个阶段中使用的关键技术.
信号捕获的基本思想是为输入信号找到最可能的本地生成的扩频码和载波,这可以通过采用串行相关技术来实现.然而,由于其计算效率低,故在实际实现中通常采用计算效率更高的基于FFT的并行码相位搜索技术.该方法将搜索维度从Mt×Nt减小到Nt,其中Mt是码相位的数量,Nt是多普勒频率的个数.图2示出了基于FFT单通道技术的数据或导频信道捕获技术框架.
图2 基于FFT的单通道捕获技术示意图(I和Q为相关的两个正交分量)
由于接收信号的功率分布在数据和导频信道上,故仅单独处理其中一个分量将丢失另一分量的能量,降低了信号捕获的灵敏度.多信道组合捕获技术可充分利用信号功率,提高捕获灵敏度.
多信道联合跟踪技术可分为相干和非相干两种方法(如图3和图4所示),其重要差别为数据和导频信号与本地信号相关后先进行加权再积分,还是先积分后加权. 相干式组合方法较非相干式方法可提供更高的能量,主峰能量更显著.但与此同时,因为数据信号中的导航电文符号与导频pilot_a信号中子码的符号可能不同,所以需要增加格外的信号反转加权和选择过程,增加了计算资源的消耗.
图3 基于FFT技术的相干联合捕获技术示意图
图3中CB_data和CB_pilot为采用图2所示的相关模块(CB)分别对数据信号和导频pilot_a信号进行相关计算.
图4 基于FFT技术的非相干积分组合式捕获技术示意图
多信道组合式捕获方法可以提高捕获性能,但同时对信号处理能力和处理方法都提出了更高的要求,这将增加实现成本.如式(2)所示,信号的接收功率由三个信道分摊,一个数据信道和两个导频信道.其中,pilot_a和数据信道具有信号的大部分功率(即“≈91%”),组合捕获时通常采用这两个信道信号.另外,两个通道都由BOC(1,1)调制并具有类似的符号翻转问题,因此它们可以共享计算资源和功能模块.此外,由于pilot_a占有总功率的一半,且计算复杂度与数据信道相同,所以当使用单信道方法进行捕获时优先选择pilot_a信道.采用哪种技术取决于接收机的具体应用和预算.
平均相关(AC)[13]技术在接收机的工程实现中非常普遍.它可以大大减少FFT运算的数据长度,故而允许使用廉价的FFT块进行快速捕获.然而,由于原有的北斗信号很少受到符号翻转问题的影响,传统的AC方法对符号翻转敏感,因此不适用于新体制信号捕获的实现.当积分周期中存在符号翻转时,信号的ACF可能在多普勒频移轴之间分离,这将导致多普勒频率的错误锁定,而难以获得正确的码相位.更糟糕的是,当信号噪声增加时,信号可能被底噪淹没而无法被检测到.针对此问题,本文在AC技术的基础上提出了并行部分码相位搜索的概念,称之为扩展AC技术(如图5所示).
图5 并行部分码相位搜索技术示意图(M为10230,L为每个码片中采样点个数)
扩展AC技术主要包括两个过程. 第一个过程是通过取平均的方法对输入信号降维,它将输入的10 ms长度信号从采样点降维到以码片为基准的维度上.假设采样频率为50 MHz,此过程可将处理信号的长度减少近50倍.在第二过程中,两个半周期的本地码信号同时对一个主码周期的卫星信号进行并行搜索,再通过加权方式合并两个搜索结果,其处理过程的表达定义为
(3)
其中:
式中:x为一个主码周期的卫星信号与载波信号的乘积;M=10230为主码长度;h(·)表示BOC调制的主码信号,fft、ifft和conj分别表示FFT,反FFT和共轭计算.
除此之外,由于码片的起始位置(采样点)未知,将输入信号与错误的起始点进行积分可能会造成捕获性能的衰弱;特别是当起始点接近1/2码片时. 为解决该问题,扩展AC算法在一个主码周期内选取多个位置作为起始点进行求和,再从中选取最大相关峰值作为最终结果.此设计可采用并行处理技术,不会显著增加计算时间,但需要更多的计算资源.综合考虑捕获性能和计算资源的占用, 本文采用三个不同起始点进行并行处理,且选取的起始点的间隔为1/3个码周期, 此方法最差会导致1.82 dB的能量损失.此时完成完整的扩展AC算法共需7.5Mlog2M+15M次乘法运算.表1总结了采用不同捕获方法时需进行的乘法运算次数.当采样频率为50 MHz时,表中列出的三种方法将分别需要3.37×107,1.50×106和1.18×106次乘法运算.与传统方法和AC+直接搜索的方法相比,扩展AC的理论乘法次数分别减少95.6%和21.3%.扩展AC方法不仅可以大大降低计算复杂度,还允许高性能的并行处理(6个并发处理),当工程实现采用FPGA时,此技术可进一步提高处理速度.
表1 计算复杂度比较
AC方法可有效降低计算复杂度,从而实现快速捕获.但由于该方法的码相搜索分辨率是一个码片,不能有效区分BOC调制信号自相关函数的主副峰,将此结果对跟踪参数进行初始化时,跟踪环路很容易锁定在副峰上,造成误锁.为克服此问题,本文在粗略搜索的基础上提出了进行缩小范围的精密搜索技术.
第一级搜索可粗略地给出主码的起始位置,搜索范围可大大减小,此时再以采样点为基准进行搜索时,运算量相较整周期搜索可大幅度降低.由于在粗搜索过程中使用的FFT块是10 230点,为了充分利用资源,精密搜索技术也作用于长度为10 230的以采样点为基准的输入信号. 此时输入信号从粗捕获获得码片的第一个采样点的前一个码片开始截取.与主码的整个搜索范围(例如“10230×50”采样点)相比,仅使用10 230个采样点会导致显著的功率损耗.为了解决这个问题,本文提出了一种相关整合技术,其定义如下:
(4)
其中:
xi=[X(s+(i-2)M),…,X(s+(i-1)M)];
(5)
(6)
式中:Y为相关运算输出;Ns是用于计算相关性所截取的输入信号片段的数量;X表示输入信号;H表示长度等于M的本地信号序列;s表示获得粗略搜索获得的码周期的起始位置.mod(·)表示除法运算的余数,且H(-1)=H(M).该过程也可以通过非相干积分来实现,但相干积具有更高灵敏度.由于给出了主码的起点,故不存在符号翻转带来的影响,这使相干和非相干两种方法的计算复杂度几乎相同. 此外,可采用诸如BPSK和ASPeCT之类的副峰消除技术,彻底消除锁定副峰的可能.
该实验主要对不同捕获方法需求的计算资源数量进行比较.由于乘法运算是硬件实现中最耗费资源的过程之一, 因此被选作为资源消耗的衡量指标,对传统和提出的两级捕获技术在采用不同频率下进行比较.
图6示出了两种方法使用的乘法次数,其中第2.3节中提到信号片段数量Ns的设置受采样频率的影响.如上所述,该过程中Ns越大,能量损失越少.当Ns等于每个码片的采样点个数时,其搜索灵敏度最高但资源消耗也最多.故在图6中,采用Ns=L,此情况下给出的是资源消耗的上限值.由图6可见本文所提出的方法相较传统方法可大大减少乘法运算量,这允许工程实现时采用更便宜的处理模块且能有效地加速捕获速度.图7示出了固定采样频率时使用不同数量的Ns的乘法次数,可见乘法数量与Ns值成正比.这表明并行处理数量的减少将牺牲捕获灵敏度,故此,在工程实现中应根据应用要求在捕获灵敏度和计算复杂度之间进行良好的权衡.
图6 传统和本文提出方法的乘法运算个数比较
图7 本文提出方法在设置不同Ns值时的乘法运算量(采样频率为60 MHz)
除此之外,图6、7仅说明了总共需求的乘法量.传统方法使用一个大的FFT块,而本文提出的方法采用多个小模块计算,可并行处理.并行处理可进一步加快捕获速度,尤其当资源量足够允许所有进程同时并行工作时,运行速度最快.表2示出了两种方法计算资源的各项指标.
表2 计算资源各项指标比较
此实验采用仿真信号对各方法的捕获精度进行评估比较. 仿真的B1C信号是根据ICD[16]生成,可提供码相和多普勒频率的真值.该实验对不同强度的信号进行捕获,信号由高斯噪声调制出不同的信噪比(SNR),其范围为[-25 dB,-15 dB],设定采样频率为50 MHz.传统方法的计算复杂度高但捕获精度高,故此,作为本实验的比较方法.其次,采样信号的起点设置为主码半周期的位置,此时为符号翻转影响最大的情况.
图8 捕获精度比较(单信道捕获技术)
图8示出了两种方法的码相位捕获精度.结果为重复实验10次获得的统计值.结果表明,传统方法能够成功地捕获各强度信号,且捕获精度随着SNR的增加而增加.本文提出方法的结果也具有相同的趋势.然而,当信号非常弱(即信噪比RSN=-25~-24 dB)时,本文的方法未能检测到信号.这是由于第一阶段的平均过程会导致信号功率的损失,当信号噪声太大时,相关峰值被噪底淹没.对于这些非常嘈杂的信号,粗搜索过程无法找到正确的峰值,故在精细搜索过程中增加Ns的值也不会得到任何改善.但随着RSN的增加,本文提出的方法可成功地捕获信号.尤其当Ns大于24时,该捕获性能优于传统方法,直到RSN大于-21 dB,两种方法都能准确无误地捕获到信号.
图9示出了实现多信道组合技术时各方法捕获精度的比较.在该实验中,相干和非相干组合技术的性能非常相似,因此仅给出了其中一种.从图中可以看出,比较结果与实现单信道技术时的结果相近,但捕获灵敏度略有提高,这与理论假设一致.另外,当Ns=12时即可获得比传统方法更精确的捕获结果.
图9 捕获精度比较(多信道组合捕获技术)
总而言之,当信号强(即RSN=-21 dB至-15 dB)时,两种方法都能够实现精准捕获;而当信号相对较弱时(即RSN=-23 dB至-22 dB),本文提出方法的捕获性能更高;然而,当信号非常嘈杂时,本文提出的方法不能捕获到信号,这也是此方法存在的最大问题.
由于传统高精度捕获技术存在计算效率低和资源消耗高的问题,故不适用于实际接收机的工程实现.为了完成BDS-3接收机中B1C信号捕获技术的工程实现,本文提出了一种高效的两级捕获技术,该技术在第一阶段中实现粗略捕获,可显著降低计算复杂度;在第二阶中执行精密搜索,以提供更精确的捕获结果.本文提出的方法将一个长FFT运算拆分成一组小FFT运算,这不仅允许使用更便宜的FFT模块,同时可实现并行处理,这非常适用于FPGA的实现.实验结果表明,该方法可以显著降低计算复杂度,当采样频率设置为50 MHz时,乘法运算次数可以减少至少61%.此外,与传统方法相比,仿真结果表明,当信号强(即RSN=-21 dB至-15 dB)时,本文提出的方法与传统方法的捕获精度相当;当信号相对较弱时,其性能比传统方法更好(即RSN=-23 dB至-22 dB),但当信号非常弱时(即RSN=-25 dB至-24 dB),信号捕获失败.对于弱信号的捕获是我们需继续进行研究的问题,也是下一步的研究方向.