舰船科学技术  2024, Vol. 46 Issue (2): 134-138    DOI: 10.3404/j.issn.1672-7649.2024.02.023   PDF    
北斗卫星船载导航信号并行捕获算法
石默然, 许承东     
北京理工大学大学 宇航学院,北京 100081
摘要: 信号捕获作为实现北斗卫星船载导航的第一阶段,也是最重要的一环,为此研究基于北斗卫星船载导航信号并行捕获算法,在短时间内捕获卫星信号,为船舶提供高精度的定位和导航服务。建立北斗卫星导航信号模型,依据模型生成的北斗卫星导航信号,采用傅里叶变换(Fast Fourier Transformation,FFT)算法以及快速傅里叶逆变换(Inverse Fast Fourier Transform,IFFT)算法,通过并行频率搜索和并行码相位搜索分别将伪随机码相位、载波频移的二维搜索变成一维进行并行搜索,获取北斗卫星信号的伪随机码和载波频移,实现北斗卫星船载导航信号并行捕获。实验结果表明,该算法可以成功地捕获船载导航信号,并且捕获耗时短;对船载导航信号的载波频率估计误差小。
关键词: 北斗卫星     信号导航模型     伪随机码     船载导航信号     FFT算法     并行捕获算法    
Research on parallel acquisition algorithm for shipborne navigation signal of beidou satellite
SHI Mo-ran, XU Cheng-dong     
School of Aerospace Engineering, Beijing Institute of Technology, Beijing 100081, China
Abstract: Signal acquisition, as the first stage and most important part of implementing Beidou satellite onboard navigation, is studied based on the Beidou satellite onboard navigation signal parallel acquisition algorithm to capture satellite signals in a short time and provide high-precision positioning and navigation services for ships. Establish a Beidou satellite navigation signal model, and based on the generated Beidou satellite navigation signal, use the Fourier Transform (FFT) algorithm and Fast Fourier Inverse Transform (IFFT) algorithm to transform the two-dimensional search for pseudo-random code phase and carrier frequency shift into one-dimensional parallel search through parallel frequency search and parallel code phase search, respectively, to obtain the pseudo-random code and carrier frequency shift of the Beidou satellite signal, Realize parallel acquisition of Beidou satellite onboard navigation signals. The experimental results show that the algorithm can successfully capture ship borne navigation signals, and the capture time is short, and the carrier frequency estimation error of ship borne navigation signals is small.
Key words: beidou satellite     signal navigation model     pseudo random code     ship navigation signal     FFT algorithm     parallel capture algorithm    
0 引 言

船载卫星导航系统作为船舶在海上航行过程中不可或缺的设备[1],对保障船舶的安全航行起到重要的作用。目前,大多数船舶经常使用的船载卫星导航全球定位系统[2],而随着中国北斗卫星导航系统的建立,北斗卫星船载导航被逐渐应用,各领域也将北斗卫星导航系统应用其中。对于航海领域,通过捕获北斗卫星导航信号,可以确定船舶的位置和航向,对于航海领域的运行安全非常重要。

对于船载导航信号并行捕获算法,相关学者对此进行了研究。林明达等[3]提出了小波降噪的信号捕获算法,先对信号进行降采样处理,再以捕获信号灵敏度为目的,通过小波变换进行第二次信号降采样的去噪,再以捕获信号的效率为目的,结合全球定位系统(Global Positioning System,GPS)信号以及伪随机码之间互相关的稀疏性,并行求出信号相关值,实现信号的捕获。杨峰等[4]提出了交错方向乘子法的信号捕获算法,该算法通过伪随机码建立正交基,基于压缩理论,构建GPS信号捕获模型,结合交错方向乘子法,将多个信号并行迭代求解,实现高效地信号捕获算法。但是这2种算法在信号处理过程中会发生信号能量损失的情况,且难以解决信号的捕获模糊问题。

基于以上算法存在的不足,研究一种北斗卫星船载导航信号并行捕获算法,结合北斗卫星导航系统可以提供多个频点信号、高精度、覆盖范围广等特点[5],采用并行化设计,将接收到的卫星信号分成多个支路,每个支路都使用独立的处理单元进行信号处理和解析,可以大大缩短获取位置信息的时间,提高定位速度和精度,提高算法的实时性。

1 北斗卫星船载导航信号并行捕获 1.1 北斗卫星导航信号模型

研究北斗卫星船载导航信号捕获算法的基础是了解北斗卫星导航信号结构[6]

北斗卫星导航信号的产生依据北斗卫星的编号,通过编码算法生成2路伪随机码,分别是$ I $路和$ Q $路。将伪随机码与导航电文做相乘运算,增加扩频信号的宽度。通过单/双极性变换将导航信号调制到正弦和余弦载波上,形成二进制相移键控(Binary Phase Shift Keying,BPSK)信号,再将$ I $路和$ Q $路导航信号相结合生成正交相移键控(Quadrature Phase Shift Keying,QPSK)信号。北斗卫星导航信号模型如图1所示。

图 1 北斗卫星导航信号模型 Fig. 1 Beidou satellite navigation signal model

北斗卫星导航信号模型的数学公式可表示为:

$ \begin{split} {S^j}(t) = &{A_I}C_I^j(t)D_I^j\cos (2\text{π} {f_1}t + \phi _I^j) + \\ & {A_Q}C_Q^j(t)D_Q^j\sin (2\text{π} {f_Q}t + \phi _Q^j) 。\end{split} $ (1)

其中:$ j $为卫星编号;$ {A_I} $$ I $路信号振幅;$ C_I^j $$ I $路伪随机码;$ D_I^j $$ I $路导航电文;$ {f_1} $$ I $路载波频率;$ \phi _I^j $$ I $路载波初始相位;$ {A_Q} $$ Q $路信号振幅;$ C_Q^j $$ Q $路伪随机码;$ D_Q^j $$ Q $路导航电文;$ {f_Q} $$ Q $路载波频率;$ \phi _Q^j $$ Q $路载波初始相位。

由于北斗卫星的基带信号频率很低,无法将卫星信号直接传输到海面的船舶上,因此通过QPSK将调制载波,能够使船舶接受高频率的卫星信号,并捕获多普勒位移。

北斗卫星导航信号通过码多分址(Code Division Multiple Access,CDMA)的扩频技术,将高频率的伪随机噪声码(Pseudo Random Noise,PRN)调制到导航电文上,船舶接收机通过解析导航电文的信号实现定位。每一颗卫星都有自己唯一能够区别卫星的标识符号的PRN,该标识符号又叫做C/A码。C/A码具有强自相关特性,当本地PRN码和北斗卫星信号的PRN码完全一致时,获取最大相关值,船舶接收机便能够求出所接收卫星信号的编码。同时,通过PRN码可以测量卫星与船舶之间信号的传输距离,为信号的捕获提供一定的支持,因此PRN码是非常重要的信号分量。

伪随机码具有强自相关特性,可以为北斗卫星导航信号的捕获提供支持。

伪随机码的时间平均自相关可用公式表达为:

$ {R_{j,j}}(\tau ) = \frac{1}{T}\int \begin{gathered} T \\ 0 \\ \end{gathered} {c_j}(t){c_j}(t + \tau ){\mathrm{d}}t,\tau \in ( - T,T)。$ (2)

式中:$ j $为北斗卫星信号的伪随机噪声码;$ T $为伪随机噪声码的周期;$ {T_c} $为设置的伪随机噪声码片长度;$ T = N{T_c} $$ N = {2^n} - 1 $,其中,$ n $为移位寄存器的位数;$ {c_j}(t) $为伪随机噪声码的时间函数。

$ \tau $$ T $的整数倍,则能够求出$ {R_{j,j}}(\tau ) $的取值范围:

$ {R_{j,j}}(k{T_c}) = \left\{ {1,\frac{{ - 1}}{N},\frac{{ - \beta (n)}}{N},\frac{{\beta (n) - 2}}{N}} \right\} ,$ (3)
$ \beta (n) = 1 + {2^{[(n + 2)/2]}} 。$ (4)

$ \tau $为0,则本地PRN码与北斗卫星信号的PRN码完全一致,$ {R_{j,j}}(\tau ) $的相关性最大,取值为1。

北斗卫星船载导航信号的捕获就是通过搜索卫星信号的伪随机噪声码和载波,得到导航电文,从而得到卫星信号的数据,为船舶定位功能提供支持。

1.2 基于FFT的北斗卫星船载导航信号并行捕获

对于北斗卫星船载导航信号的捕获[7],通过求出船舶接收机接收到的北斗卫星编号、PRN的相位和多普勒频移,实现北斗卫星船载导航信号的捕获,从而进一步提取到导航电文,实现船舶位置的分析和导航。

基于FFT的北斗卫星船载导航信号的并行捕获算法是通过FFT运算以及FFT的逆变换IFFT算法,将载波频移和伪随机码相位的二维搜索改变为一维搜索。并行码相位搜索算法利用FFT并行捕获载波频移与伪随机码相位的一维搜索。

1.2.1 并行频率搜索算法

依据伪随机码的相关性,获取相互正交的相关结果,通过FFT对2个结果的相加进行处理,能够得到一个码片搜索单元的相关结果在每个载波频率中的强度,再对FFT处理结果进行取模操作,若结果的峰值比判决门限值大,将其对应的载波频率值作为船舶接收到的载波频率值,则本地PRN信号的码相位值表示船舶接收信号的码相位估计值。

为了提升载波频率值的估计准确性,可以调整FFT点数以及北斗卫星信号的采样频率,获取载波频率的分辨率:

$ \Delta f = \frac{{{f_s}}}{M} 。$ (5)

其中:$ M $为FFT点数用;$f_s $为北斗卫星信号的采样频率。

码相位搜索步长是1个码片的情况下,并行频率搜索算法的平均时间为:

$ {t_{pf}} = \frac{L}{2} \times {t_c} 。$ (6)

其中:$ L $为北斗卫星导航信号的码片数目;$ {t_c} $为计算每个码相位搜索的时间。

并行频率搜索算法仅仅需要所搜北斗卫星信号的码相位时延值即可。同时,导航接收机FPGA支持并行计算,能够对多个码相位搜索单元同时处理,降低了北斗卫星船载导航信号捕获的时间。

1.2.2 并行码相位搜索算法

并行码相位搜索算法是将卫星信号和船舶载波信号相乘,获取同相和正交分量,再将二者叠加,获取基带信号,完成FFT运算,将时域信号转化为频域信号,将得到的结果与本地PRN码FFT运算结果的相乘,再实现IFFT运算,求出最大相关峰值,通过判断最大相关峰值是否超过阈值,确定北斗卫星船载导航信号的捕获是否成功[8]

若2个时域信号序列为$ x(n) $$ y(n) $,对二者进行截取,使其序列长为$ B $。将$ x(n) $$ y(n) $进行DFT(离散傅里叶变换):

$ X(k) = \sum\limits_{n = 0}^{B - 1} {x(n){e^{ - \tfrac{{j2\text{π} kn}}{B}}}} ,$ (7)
$ Y(k) = \sum\limits_{n = 0}^{B - 1} {y(n){e^{ - \tfrac{{j2\text{π} kn}}{B}}}} ,$ (8)

$ x(n) $$ y(n) $之间的相关性可表示为:

$ z(n) = \frac{1}{B}\sum\limits_{m = 0}^{B - 1} {x(m)y(m - n)} 。$ (9)

再将$ z(n) $的相关值进行DFT:

$ \begin{split} & Z(k) = \sum\limits_{n = 0}^{B - 1} {{{(\sum\limits_{n = 0}^{B - 1} {x(m)y(m - n)} )^{ - \tfrac{{j2\text{π} kn}}{B}}}}}= \\ &\mathop {}\nolimits_{}^{} \mathop {}\nolimits_{}^{} {X^*}(k)Y(k) 。\end{split} $ (10)

$ x(n) $$ y(n) $在时域内的相关运算就是$ X(k) $$ Y(k) $在频域内的乘积结果。求出后,通过IFFT获取$ x(n) $$ y(n) $的相关值:

$ z(n) = \sum\limits_{m = 0}^{N - 1} {Z(k){e^{ - \tfrac{{j2\text{π} kn}}{N}}}}。$ (11)

将北斗卫星导航信号与船载信号相乘,若北斗卫星信号频率和船载导航信号频率一致,恢复北斗卫星导航信号的伪随机码信号,利用FFT傅里叶变换转换为频域信号,将噪声PRN码共轭和原始信号频域相乘,再利用IFFT运算获取时域信号的相关结果并取模,若最大相关峰值超过门限值,则将最大相关峰值相对应的量作为北斗卫星船载导航信号的PRN码相位,实现北斗卫星船载导航信号的并行捕获。

若船舶的频率搜索范围为10 kHz,则并行码相位搜索算法的北斗卫星船载导航信号的平均捕获时间为:

$ {t_{pc}} = \frac{{5000}}{{{f_{bin}}}} \times {t_f}。$ (12)

其中:$ {f_{bin}} $为步进频率;$ {t_f} $为计算每个频率搜索的时间。

并行码相位搜索算法通过FFT运算和IFFT运算,使北斗卫星船载导航信号的捕获时间更短。

为了进一步清晰地展示算法的执行步骤和流程,突出并行处理的优势,将以上研究北斗卫星船载导航信号并行捕获的流程绘制成如图2所示。

图 2 北斗卫星船载导航信号并行捕获流程图 Fig. 2 Flow chart of parallel acquisition of shipborne navigation signals from beidou satellite
2 实验分析

为了验证本文算法的北斗卫星船载导航信号并行捕获能力,以某片海域一艘船舶为实验对象,该船长为62 m,宽为40 m,吃水为36 m,可载人数最多为108人。采用北斗卫星接收机,采集实际的船载导航信号数据,仿真环境选取主频为3.4 GHz的Windows 7操作系统,利用GNSS Signal Simulator软件搭建模拟船载导航信号的实验平台,将北斗导航卫星设定为23颗,该软件可以生成各种不同的卫星导航信号,以便进行船载导航信号的仿真实验。同时将多普勒频率区间设置为[−10 kHz, 10 kHz],为了加强北斗卫星船载导航信号并行捕获算法的可信度,对采集到的船载导航信号数据进行预处理和分析,提取有用的信息后,进行北斗卫星船载导航信号的并行捕获,结果如表1所示。

表 1 本文算法的船载导航信号并行捕获结果 Tab.1 Parallel acquisition results of shipborne navigation signals using the algorithm in this paper

可以看出,本文算法可以稳定捕获北斗卫星船载导航信号,且最多能够捕获到8颗北斗卫星导航信号,最少能够捕获到4颗北斗卫星导航信号,而船载导航接收机在捕获北斗卫星导航信号的数目大于3便可以完成船舶的定位导航,证明了本文算法捕获船载导航信号的能力较强,可进一步实现船舶的定位与导航。

为了进一步验证本文算法的北斗卫星船载导航信号的并行捕获的有效性,将小波降噪的信号捕获算法和交错方向乘子法的信号捕获算法与本文算法进行对比,验证3种算法是否可以成功捕获船载导航信号,并且计算不同算法的船载导航信号捕获速度,对比结果如表2所示。

表 2 不同算法的船载导航信号并行捕获结果 Tab.2 Parallel acquisition results of shipborne navigation signals using different algorithms

分析可知,3种算法对于捕获成功的船载导航信号的PRN码相位和多普勒频移基本一致,但是小波降噪的信号捕获算法和交错方向乘子法的信号捕获算法存在船载导航信号捕获失败的情况,并且能够看出小波降噪的信号捕获算法的平均捕获时间为1.732 s,耗时最长,交错方向乘子法的信号捕获算法对船载导航信号的捕获时间平均为0.955 s,而本文算法不但可以成功捕获全部的船载导航信号,同时比2种算法的捕获时间分别降低了约88%和78%。说明本文算法的导航信号并行捕获在时间优势上显著。

为了验证本文算法北斗卫星船载导航信号的并行捕获能力,通过小波降噪的信号捕获算法、交错方向乘子法的信号捕获算法和本文算法对捕获成功的8颗北斗卫星的载波频率与实际采集到的载波频率之间的偏差进行比较,8颗卫星的伪随机码和其对应的码相位一致,3种算法的船载导航信号捕获的载波频率偏差对比结果如表3所示。

表 3 不同方法的载波频率偏差结果 Tab.3 Carrier frequency deviation results of different methods

可以看出,小波降噪的信号捕获算法捕获的8颗卫星船载导航信号载波频率与实际载波频率的偏差平均为38.25 Hz,交错方向乘子法的信号捕获算法对8颗北斗卫星的捕获载波频率与实际载波频率的偏差平均为34.5 Hz,而本文算法捕获的船载导航信号载波频率与实际载波频率的偏差平均为24.25 Hz,对载波频率的估计误差最小,说明本文算法能够提升捕获船载导航信号载波频率的精度。

3 结 语

本文提出了一种北斗卫星船载导航信号并行捕获算法研究。利用傅里叶逆变换方法,快速实现了频率搜索和码相位搜索,能够在较短的时间内完成信号处理,大大缩短了信号捕获的时间。通过将二维搜索问题转化为一维的方式,减少了搜索的复杂度,简化了算法的实现。同时,一维搜索也更适合在并行计算环境中进行,进一步提高了算法的效率。采用了并行频率搜索和并行码相位搜索的方法,并行化处理了北斗卫星导航信号的捕获过程,显著提高了处理效率,并且能够实时捕获北斗卫星导航信号。实验证明了本文算法可以稳定的捕获北斗卫星船载导航信号,可以提升船载导航信号捕获算法的运行速度和精度,为船舶的定位与导航提供支持。

参考文献
[1]
胡丹, 孟新. 基于时变网格的对地观测卫星搜索海上船舶方法[J]. 吉林大学学报(工学版), 2022, 52(8): 1896-1903.
HU Dan, MENG Xin. Vessel search method by earth observation satellite based on time-varying grid[J]. Journal of Jilin University:Engineering and Technology Edition, 2022, 52(8): 1896-1903. DOI:10.13229/j.cnki.jdxbgxb20210194
[2]
向民志, 柴洪洲, 黄紫如, 等. 附加TDCP约束的无人船载GNSS/MEMS组合导航方法[J]. 中国惯性技术学报, 2023, 31(4): 366-374.
XIANG Min-zhi, CHAI Hong-zhou, HUANG Zi-ru, et al. GNSS/MEMS integrated navigation method for unmanned surface vehicle with TDCP constraints[J]. Journal of Chinese Inertial Technology, 2023, 31(4): 366-374.
[3]
林明达, 王竹刚. 一种利用小波降噪的卫星导航信号并行捕获算法[J]. 电讯技术, 2023, 63(7): 956-962.
LIN Ming-da, WANG Zhu-gang. A Parallel Acquisition Algorithm of Satellite Navigation Signal Using Wavelet Denoising[J]. Telecommunication Engineering, 2023, 63(7): 956-962.
[4]
杨峰, 周飞, 潘丽丽, 等. 基于交错方向乘子法的并行GPS信号捕获算法[J]. 电子科技大学学报, 2020, 49(2): 187-193.
YANG Feng, ZHOU Fei, PAN Li-li, et al. Parallel GPS Signal Acquisition Algorithm Based on Alternating Direction Method of Multipliers[J]. Journal of University of Electronic Science and Technology of China, 2020, 49(2): 187-193. DOI:10.12178/1001-0548.2018112
[5]
张天骐, 方竹, 王雪怡, 等. 窄带干扰环境高动态双二进制偏移载波信号捕获[J]. 北京邮电大学学报, 2023, 46(1): 50-56.
ZHANG Tian-qi, FANG Zhu, WANG Xue-yi, et al. High dynamic dual binary offset carrier signal acquisition in narrowband interference environment[J]. Journal of Beijing University of Posts and Telecommunications, 2023, 46(1): 50-56.
[6]
覃新贤, 齐月敏. 基于CUDA的BDS信号捕获方法[J]. 计算机仿真, 2020, 37(9): 41-44. DOI:10.3969/j.issn.1006-9348.2020.09.009
[7]
毛飞宇, 龚晓鹏, 辜声峰, 等. 北斗三号卫星导航信号接收机端伪距偏差建模与验证[J]. 测绘学报, 2021, 50(4): 457-465.
MAO Fei-yu, GONG Xiao-peng, GU Sheng-feng, et al. Receiver pseudorange biases of BDS-3 satellite navigation signal: modeling and validation[J]. Acta Geodaetica et Cartographica Sinica, 2021, 50(4): 457-465.
[8]
陈林, 靳云迪, 黄杰, 等. 基于副峰叠加的BOC导航信号捕获算法[J]. 系统工程与电子技术, 2023, 45(7): 2211-2219.
CHEN Lin, JIN Yun-di, HUANG Jie, et al. Acquisition algorithm for BOC navigation signals based on sub-peak superposition[J]. Systems Engineering and Electronics, 2023, 45(7): 2211-2219.