袁 进,郭新年,刘 浏
(宿迁学院 信息工程学院,江苏 宿迁 223800)
全球导航卫星系统(GNSS)主要包括我国的北斗系统、欧盟的伽利略系统、俄罗斯的格洛纳斯系统(GLONASS)和美国的全球定位系统(GPS),由这些系统提供的定位服务已应用到生活中的各个领域。目前,我国的北斗系统已完成全球组网,能够为全球用户提供高精度的定位服务。在北斗系统中,B1C信号是应用较早的新体制信号,能否有效对其捕获,将直接影响着北斗接收机的捕获性能[1]。B1C信号捕获方法众多,各方法均具有各自的优势,有效解决了B1C信号在捕获中出现的副峰、捕获时间长、捕获精度低等问题,但在捕获效率、算法硬件实现等方面尚存在改进的空间。针对B1C信号的捕获问题,文献[2]提出了一种基于ASPeCT的B1C信号非匹配捕获算法,该算法能够有效提高捕获效率,但牺牲了一定的信噪比,同时,在弱信号环境下的捕获能力有待研究;文献[3]围绕B1C信号的联合捕获问题,基于最优相干积分时间的理论,给出了不同信噪比下的捕获参数设计及联合捕获算法选择的方法;文献[4]将基于BPSK-like的单边带信号捕获方法和联合边带信号捕获方法相结合,提出了一种基于预检测通道的双通道捕获方法,有效解决了BOC信号搜索时间与捕获精度相矛盾的问题,但在硬件实现上,缺少资源有效分配的考虑,实际测试中易出现硬件模块延迟等问题,造成捕获性能不佳;文献[5]针对高动态环境下BOC信号同步问题,提出一种分数阶傅里叶变换和离散多项式相位变换相结合的捕获算法,有效提高信号捕获概率,缩短捕获时间,但算法复杂度相对较高。文献[6]提出了一种基于相关函数的信号无模糊捕获方法,该方法有效解决了BOC信号在捕获和跟踪中出现的模糊问题,但在算法的抗干扰能力上还有进一步提高的空间。
本文主要针对B1C信号捕获模块设计中遇到的算法复杂度高、兼容性差、硬件实现难、硬件资源占用大等问题,提出一种基于BPSK-like捕获的改进方法。该方法仅对B1C信号中的BOC(1,1)信号分量进行捕获,在单边带信号处理上通过加入相干累加与非相干累加运算、FFT模块并行流水线处理、蝶形运算单元截位处理等方式,实现了一定的优化设计,有效解决上述问题。
B1C信号是北斗三号卫星播发的一种新体制信号,其载波频率中心为1 575.42 MHz,带宽为32.736 MHz,B1C信号为复合包络信号,包含导频分量(B1C_pilot)和数据分量(B1C_data)两部分,2个分量的主码长均为10 230,主码周期均为10 ms[7]。
B1C信号的调制特性如表1所示,B1C信号的2个分量均采用了二进制偏移载波(BOC)调制方式。数据分量由BOC(1,1)调制而成,该分量的信号功率占总功率的1/4;导频分量由BOC(1,1)和BOC(6,1)两种调制方式调制而成,其中,采用BOC(1,1)调制的分量功率占总功率的29/44,采用BOC(6,1)调制的分量功率占总功率的1/11[8]。
表1 B1C信号调制特性Tab.1 Modulation characteristics of B1C signal
为了降低算法设计难度,节约硬件资源,本文在捕获模块的设计中,牺牲了互操作信号中的BOC(6,1)调制信号成分,仅捕获BOC(1,1)调制信号分量。
BOC调制是GNSS现代化进程中的一种新型信号调制方式,其特点是通过某种编码处理方法,使得信号的频谱产生一定的偏移。
BOC调制原理如图1所示。导航电文首先与扩频码进行扩频调制;接着,扩频调制信号与副载波信号调制成BOC基带信号;最后,在BOC基带信号上进行BPSK调制,得到BOC调制信号[9]。
图1 BOC调制原理Fig.1 Principle of BOC modulation
BPSK调制信号和BOC(1,1)调制信号的自相关函数如图2所示。由图2可得,BPSK调制信号只有一个相关峰值,而BOC(1,1)调制信号除了一个主峰,还存在2个副峰。如果直接采用BPSK调制信号的捕获方法对BOC调制信号进行捕获,则会出现模糊性问题,影响捕获的准确性[10-11]。故在捕获模块设计中,要采取相应的方法解决副峰值问题。
图2 BPSK与BOC(1,1)调制信号自相关函数Fig.2 Autocorrelation function of BPSK and BOC (1,1) modulated signals
由于BOC信号的自相关函数存在多个峰值,如果直接采用传统的BPSK捕获方法来捕获BOC信号,难以解决多峰值问题,容易造成误捕,从而影响接收机的整体性能。BOC信号捕获算法主要围绕如何有效消除副峰带来的影响进行设计。
相较于其他BOC捕获算法,BPSK-like捕获算法技术相对成熟,具有算法逻辑简单、硬件实现方便等优点[12-15]。BPSK-like算法的基本原理为:首先,通过滤波器将BOC信号分为上边带和下边带2路信号;接着,分别对2路信号采用BPSK信号捕获方法进行处理;最后,将处理后的2路信号进行累加合并,并进行判决。若合并后的峰值超过设定的阈值,则判定捕获成功;否则,捕获不成功,需要重新进行捕获[15-18]。BPSK-like算法原理框图如图3所示。
图3 BPSK-like算法原理Fig.3 Principle block diagram of BPSK-like algorithm
结合上述对BOC信号的分析及BPSK-like算法的介绍,设计了一种基于BPSK-like算法的改进方法,改进部分主要体现在单边带信号处理模块上。
图8示出机组综合供电煤耗降低随负荷增加而单调增大,随空冷岛散热面积的增加而单调增大。机组为设计散热面积时,综合供电煤耗为343.3 g/kWh。在散热面积分别增加16.7%、33.3%、50%、66.7%时,机组综合供电煤耗降低Δbg分别为4.4、7.5、9.7和11.4 g/kWh。随散热面积增加,综合供电煤耗降低Δbg的等差差值分别为4.4、3.1、2.2和1.7 g/kWh。表明随散热面积均匀增加,机组综合供电煤耗降低的边际效应逐渐变弱。
设计的单边带信号处理模块以并行码相位捕获算法为基础,在FFT模块设计及信号累加方式上进行了优化设计,算法实现过程为:① 单边带信号分量经混频后,以(i+jq)的形式进行FFT运算;② 经FFT处理后的数据与经FFT处理后的本地伪码数据进行共轭相乘运算;③ 将共轭相乘运算结果输入到IFFT模块进行处理,完成信号的相关运算;④ 对IFFT输出数据进行相干累加及非相干累加运算,实现信号能量的积聚,同时避免因符号翻转带来的影响。单边带信号处理模块的设计框图如图4所示。
图4 单边带信号处理模块设计框图Fig.4 Design block diagram of single sideband signal processing module
从图4可以看出,FFT模块在捕获算法中具有关键作用,故本文在FFT模块的算法及硬件设计上进行了一定的优化处理。
采用基于频率抽取的方法对FFT模块进行设计,主要包括数据缓存单元、蝶形运算单元和自然排序单元等部分。由于B1C信号和L1C信号的主码长均为10 230,故将FFT点数设置为1 024,通过分段处理的方式提高了捕获的速度,降低了硬件实现成本。FFT模块结构如图5所示。
图5 FFT模块结构图Fig.5 Structure diagram of FFT module
在蝶形运算单元中加入了数据截位运算和原位运算,进一步降低了FFT运算量及硬件资源的占用[19]。另外,考虑到捕获模块中涉及到FFT及IFFT运算,故将旋转因子单独存储在存储单元中,当使用到IFFT模块时,只需将旋转因子做相应的改变即可,而不需要重新设计一个IFFT模块。
在相干累加次数设置方面,考虑到B1C信号主码周期均为10 ms,且FFT模块的点数为1 024点,故将两分量的相干累加时长均设置为10 ms。
在非相干累加次数设置方面,本文使用蒙特卡罗评估方法,对不同非相干累加次数下的检测概率进行了统计分析。
非相干累加段数与检测概率的关系图如图6所示。由图6可以看出,对于载噪比为30 dB·Hz的信号,需要进行至少4次非相干累加合并,才能保证信号检测概率高于95%;而对于载噪比为28 dB·Hz的信号,若想使信号检测概率达到满足实际应用需求的95%,则至少需要进行7次非相干累加合并。
图6 非相干累加段数与检测概率关系Fig.6 Relationship between the number of incoherent accumulation segments and detection probability
本文以BOC(1,1)上边带信号为例,使用Matlab软件对算法进行了验证分析。将信号的码片偏移值设置为312.5,多普勒频率偏移值设置为667 Hz(算法以667 Hz的多普勒频率偏移值为步进单元进行扫描),信号功率设置为-125 dBm,非相干累加次数设置为10。
捕获结果如图7所示。由图7可以看出,非相干累加结果中出现了单个明显的峰值,其对应的码片偏移值为312.5,相应的载波多普勒频率偏移值显示在Matlab界面的命令行窗口,值为667 Hz,与设定值一致,故信号捕获成功。
图7 捕获结果(-125 dBm)Fig.7 Acquisition result (-125 dBm)
在非相干累加次数为10的条件下,不同信号功率下的检测概率统计如图8所示。由图8可以看出,当信号功率低于-136 dBm时,捕获模块的检测概率低于95%,不符合实际应用需求,若想实现对较低信号功率的信号捕获,则需提高非相干累加次数。
图8 不同信号功率下的检测概率Fig.8 Detection probability under different signal power
本文借助verilog语言在Vivado软件平台上对算法进行了仿真实现。蝶形运算单元中截位运算模块的仿真结果如图9所示。由结果可得,正弦输入信号(iVal)位宽与输出信号(oVal)位宽相差7位,但输入信号和输出信号包络未发生改变,仅相差一个时钟周期,说明截位模块起到了缩小幅值的作用,减少了运算量,节约了硬件存储空间。
图9 截位运算Fig.9 Truncation operation
基2-1 024点FFT模块的仿真结果如图10所示。通过分析可得,在连续的正弦输入信号(RE(in))作用下,得到的输出波形(RE(out))与正弦信号频域转换结果相符(同步脉冲(OSynYnEp)为高电平时,代表一个正弦周期的开始),证明了FFT模块运算的准确性。由于FFT模块在算法中需要多次使用,但在硬件实现中仅设置一个FFT模块,使用时直接调用即可,既减少了数据处理的运算量,也进一步节约了硬件资源。
图10 FFT仿真结果Fig.10 FFT simulation results
将BOC(1,1)上边带信号码相位偏移量设置为14,多普勒频率偏移值设置为2 000 Hz,信号功率设置为-135 dBm,非相干累加次数设置为10次,输入到本文设计的捕获模块中进行仿真。信号捕获结果如图11所示。分析结果可得,非相干累加结果中(iPowValue)出现了明显的峰值,其中,第10次非相干累加过程中出现最大峰值,对应的码相位偏移量(oCd0fsQ)为14,频点(oFpIdx)为6(对应的多普勒频率偏移值为2 000 Hz),均与设置值相符,证明了捕获算法的易实现性及可靠性。
图11 捕获结果Fig.11 Acquisition results
围绕北斗B1C信号的捕获问题进行研究,针对信号在捕获过程中遇到的算法复杂度高、兼容性差、捕获性能不佳和硬件实现难等问题,提出了一种基于BPSK-like的改进方法。该方法牺牲了BOC(6,1)调制成分,仅对BOC(1,1)调制成分进行捕获。算法首先将BOC信号分离为上、下两路边带信号;接着,将2路信号分别进行处理;最后,将处理后的2路信号进行非相干累加合并,当非相干累加合并峰值高于阈值,则证明捕获成功。相比于其他BOC信号捕获算法,本文所设计的算法主要有以下几个特点:① 算法在考虑B1C信号特点及信号分量功率分配比重的基础上,从节约设计成本的角度出发,提出了仅捕获BOC(1,1)调制信号成分的方案;② 在单信号捕获模块设计中,本文设计的基2-1 024点FFT模块中采用了截位、原位等运算,使模块在运算量、硬件资源占用量等方面得到一定的降低;③ 加入了相干累加与非相干累加运算,提高了接收机捕获性能,并且,算法中的非相干累加次数可调,可根据实际信号的强弱进行合理设置。
本文对所设计的算法在Matlab平台及Vivado软件平台上进行了验证,经仿真分析得,本文所提算法能够有效捕获B1C信号,捕获性能满足实际应用需求,解决了其他算法出现的复杂度高、兼容性差、硬件实现难、硬件资源占用大等问题,具有一定的参考价值及工程应用价值。由于研究时间有限,本文未对算法进行实际环境下的硬件实现及测试,后期将进行相关方面的研究工作。