首页 > 范文大全 > 正文

北斗软件接收机B1频点信号捕获算法研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇北斗软件接收机B1频点信号捕获算法研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 北斗MEO/IGSO卫星信号调制速率为1 Kb/s的NH码,在使用传统的并行码相位捕获算法时,并不一定能成功捕获到信号,这里使用一种改进的并行码相位捕获算法,并用基于曲线拟合的精捕获方法减小频率估计误差。仿真结果表明,改进的并行码相位捕获算法成功地捕获到了北斗MEO/IGSO卫星信号,并通过基于曲线拟合的精捕获算法减小了频率估计误差。

关键词: NH码; 并行码相位捕获算法; 曲线拟合; 频率估计误差

中图分类号: TN967.1?34 文献标识码: A 文章编号: 1004?373X(2015)13?0016?05

Abstract: The modulation rate of BeiDou MEO/IGSO satellite signal is 1 Kb/s NH code, so it is uncertain to acquire BeiDou signal successfully with traditional parallel code phase acquisition algorithm. In this paper, an improved parallel code phase acquisition algorithm is used. To reduce frequency estimation error, the refined acquisition method based on curve fitting is adopted. Simulation results show that BeiDou MEO/IGSO satellite signal is acquired by the improved phase acquisition algorithm successfully, and frequency estimation error is reduced by the refined acquisition method based on curve fitting.

Keywords: NH code; parallel code phase acquisition algorithm; curve fitting; frequency estimation error

0 引 言

软件接收机的关键技术在信号的捕获、跟踪部分。信号捕获是软件接收机信号处理过程中的第一步,捕获结果的好坏直接影响到接收机能否正确跟踪信号并解算出导航定位结果。捕获是一个二维搜索过程,不仅要搜索码相位,还要搜索多普勒频移。常用的GNSS信号捕获算法有串行捕获、并行频率捕获和并行码相位捕获三种[1]。串行捕获方法由于其运算简单,容易用硬件实现,通常在硬件接收机中使用。而并行码相位捕获算法利用傅里叶变换将时域信号转换到频域,大大减少了计算量,因此在软件接收机中广泛使用。

北斗b1频点信号和GPS的L1频点信号在结构上有着极大的相似性,因此可以借鉴GPS软件接收机常用的并行码相位捕获算法来捕获北斗B1信号。但是北斗B1信号在伪码生成、数据码调制方面又有着本身不同于GPS信号的特点,因此需要对并行码相位捕获算法进行改进。本文通过分析基于FFT的并行码相位捕获算法原理并结合北斗信号的特点,对捕获算法进行改进,并通过实验验证结果。

1 北斗B1信号结构

北斗B1信号由I,Q两个支路的“测距码+导航电文”通过正交相移键控(QPSK)调制在载波上构成[2?3],其表达式如式(1)所示:

[Sit=AcCitDictcos2πf1t+φic+ApPitDiptsin2πf1t+φip] (1)

式中:上标[i]表示卫星编号;[Ac]表示I支路信号振幅;[Ap]表示Q支路信号振幅;[C]表示I支路普通测距码;[P]表示Q支路精密测距码;[Dc]表示调制在I支路测距码上的数据码;[Dp]表示调制在[Q]支路测距码上的数据码;[f1]表示B1频点信号载波频率,其标称值为1 561.098 MHz;[φc]表示I支路信号载波初相;[φp]表示Q支路信号载波初相。

2 捕获算法研究

2.1 并行码相位捕获算法原理

信号捕获是将输入信号与接收机产生的本地信号进行相关运算。传统的串行捕获算法是在确定载波频率和码相位搜索步长后,将输入信号与不同码相位和不同载波频率的参考信号相乘,并计算相关结果。而并行码相位捕获算法则是采用傅里叶变换将时域的循环相关运算变换为频域的乘积运算[4]。

并行码相位捕获算法原理如下[5?6]:

设长度都为[N]的两个周期性序列[xn,][yn,]其离散傅里叶变换为:

[Xk=n=0N-1xne-j2πknN] (2)

[Yk=n=0N-1yne-j2πknN] (3)

序列[x(n)]和[y(n)]的相关值为:

[zn=1Nm=0N-1xmym-n] (4)

对相关值[z(n)]进行离散傅里叶变换:[Zk=n=0N-1zne-j2πknN=n=0N-11Nm=0N-1xmym-ne-j2πknN=1Nm=0N-1xme-j2πknNNn=0N-1ym-nej2πkm-nN=1NXk?Y?k (5)]

式中[Y?k]表示[Yk]的复共轭。

计算出[Z(k)]后,其时域的相关结果可通过离散傅里叶反变换得到:

[zn=k=0N-1Zke-j2πknN] (6)

式(6)表明:两个序列[x(n)]和[y(n)]在时域内做相关运算,相当于他们的离散傅里叶变换在频域内做乘积运算。因此乘积[Xk?Y?k]的离散傅里叶反变换正好是接收机需要进行检测的各个码相位处的相关值[z(n)。]

并行码相位捕获算法流程如图1所示[7]。

软件接收机先产生某一频率的I支路本地正弦波和Q支路本地余弦波,在数字中频信号分别与两路本地载波信号混频后,对其复数形式混频结果[I+jQ]进行傅里叶变换,然后将变换结果与本地复制伪随机码傅里叶变换的共轭值进行相乘,接着将所得的乘积经傅里叶反变换得到在时域内的相关结果,最后对这些相关值进行检测来判断信号是否存在。

2.2 改进的并行码相位捕获算法

对于GPS信号,当信号强度大,信噪比高时,可以取1 ms的数据长度进行捕获,但是为了防止所取1 ms数据中存在导航电文数据比特跳变,则取相邻的两个1 ms长度数据分别进行捕获运算,然后对两次运算得到的相关幅值的最大值进行比较,选取幅值大的1 ms数据作为捕获数据。这样就排除了数据跳变所带来的影响。

对于北斗卫星导航系统,GEO卫星的B1频点信号调制的D2导航电文速率为500 b/s,即每2 ms可能产生1次跳变,可以使用相干积分时间为1 ms的并行码相位捕获算法进行捕获。但是对于MEO/IGSO卫星的B1信号所调制的D1导航电文,由于其调制有速率为1 Kb/s的二次编码,即导航电文数据在相邻的两个1 ms内都有可能产生跳变,所以不能采用取相邻两个1 ms数据进行捕获并比较相关值大小的方法对MEO/IGSO卫星信号进行捕获。本文采用一种改进的并行码相位捕获算法对北斗MEO/IGSO卫星信号进行捕获,其基本原理如下:

对于MEO/IGSO卫星信号, 捕获数据长度取为2 ms,相应的也要生成2 ms的本地码进行相关运算,而2 ms的本地码的前1 ms数据为一个周期的相应卫星的伪随机码,而后1 ms数据则为全0序列,其原理如图2所示。

一个伪随机码周期为1 ms,因此2 ms的数据中存在两个完整的伪随机码序列。假设在2 ms数据内存在两次数据跳变。从时域分析,通过循环移动本地码相位并与接收数据伪码逐次进行相关,从而搜索一个伪码周期内所有的码相位,当本地伪码没有和数据中伪码对齐时,所得到的相关值较小,随着码相位的移动,当本地码中的伪码码沿与2 ms数据中伪码1的码沿对齐时,将获得最大相关值。而由于本地码内0序列的存在,会使除了对齐伪码范围以外的其他相关值为0,从而排除了由于数据跳变对相关值的影响。同时也可以发现,当本地伪码码沿与数据中伪码2的码沿对齐时,也可以得到最大相关值。这样在一次搜索过程中会出现两个自相关峰值,由于数据中伪随机码是周期重复出现的,因此只需要选取一个自相关峰值的信息就可以确定捕获结果。

上述方法不仅适用于存在连续数据跳变的情况,在只存在一次或不存在数据跳变的情况下也适用,并且不需要判断是否存在数据跳变,因此不仅适用于北斗MEO/IGSO卫星信号的捕获,也适用于北斗GEO卫星信号以及GPS信号的捕获。

当信号强度较大时,采用比较相关幅值最大值与次大值的方法检测信号是否被捕获到[8]。在得到某个搜索频带的码相位相关值[z(n)]后,对[z(n)]取模得到相关幅值[z(n),]首先找到相关幅值的最大值,然后将搜索范围设定在最大值所在码相位对应的前后两个码片长度范围外,在此范围搜索得到相关幅值的次大值,计算相关幅值最大值和次大值的比值,通过判断比值是否超过门限值来检测信号是否被捕获到,本文中门限值设为2.5。若比值超过捕获门限值,则接收机捕获到信号,当前搜索频带即为捕获的信号频率,[z(n)]峰值对应的码相位即为捕获的信号码相位。

2.3 信号的精捕获

信号成功捕获后,对信号载波频率的估计误差不大于半个频率搜索步长。本文中载波频率的搜索步长为500 Hz,信号载波频率的估计误差为±250 Hz,而载波跟踪环路的带宽一般为几十赫兹。因此需要对信号频率进行精捕获,使其频率误差能够在载波跟踪环路带宽范围内。

通常情况下频率搜索步长表达式为[9?10]:

[fbin≤23Tcoh] (7)

式中[Tcoh]为相干积分时间。

可以看出搜索步长和相干积分时间成反比,因此可以通过增加相干积分时间来减小频率搜索步长,从而减小频率估计误差。前提是在相干积分时间内捕获数据不存在数据跳变,对于北斗信号,D1导航电文调制有速率为1 Kb/s的二次编码,D2导航电文速率为500 b/s。因此不能用增加相干积分时间的办法来减小频率估计误差。

实际的载波频率值可以通过式(8)表示:

[freal=fP-ferr] (8)

式中:[freal]表示实际的载波频率值;[fP]表示粗略的频率估计值;[ferr]表示频率误差。在实际应用中,很难直接得到频率误差值,可以采用一种曲线拟合的方法得到频率误差的估计值[11?12],使频率误差估计值尽可能接近频率误差值。

图1中的数字中频B1I信号表达式如下:

[stk=ACkDkcos2πfIF+fdtk+φ0] (9)

式中:[tk]为采样时间;[A]为信号幅度;[Ck]为数值为[±1]的伪码;[Dk]是数值为[±1]的数据码;[fIF]为中频频率;[fd]为多普勒频移;[φ0]为初始载波相位。

数字中频信号分别与本地同相载波、正交载波相乘进行载波剥离,将载波剥离后的信号再与本地伪码信号相乘完成信号的解扩,经过积分累加后,同相支路与正交支路的输出分别为[13]:

[I=ADRτk=1MEcosΔf?tk+Δφ=MEADRτsinπΔf?TπΔf?TcosπΔf?T+Δφ] (10)

[Q=ADRτk=1MEsinΔf?tk+Δφ=MEADRτsinπΔf?TπΔf?TsinπΔf?T+Δφ] (11)

在式(10)和式(11)中,[ME]表示积分累加点数;[τ]表示本地伪码与信号伪码的相位偏差;[Rτ]表示伪随机码的自相关函数;[Δf]表示载波频率估计误差;[T]表示相干积分时间;[Δφ]表示本地载波初相与信号载波初相的偏差。在捕获过程中,信号的相关幅值:

[G=MEARτsinπΔf?TπΔf?T] (12)

当相干积分时间为1 ms时,归一化相关幅值[G]与频率估计误差[Δf]的关系如图3所示。四条竖线表示宽为500 Hz的三个频率搜索频带,其中捕获到的相关幅值最大值一定是位于中间频带,[L,P,R]为捕获到的位于相关峰值附近的三个搜索频带上的频率,其间隔为500 Hz,三个频率点所对应的相关幅值[GL,GP,GR]是关于频率估计误差[Δf]的函数。

在软件接收机中采用如下误差鉴别公式:

[F=5×GL-GRGP] (13)

式中[F]是关于频率估计误差[Δf]的函数。

精捕获后的频率估计值可以表示为:

[facq=fP-mF] (14)

式中:[mF]是根据[F]得到的频率估计误差[Δf]的近似值,通过对[F]和[Δf]关系曲线的三次多项式拟合[14],可以得到:

[mF=-0.231 5F3+77.32F] (15)

通过式(14)和式(15)可以得到频率估计误差[Δf]和精捕获后频率估计值[facq]的关系曲线,如图4所示,当[Δf]在±250 Hz之内时,精捕获后频率估计值误差降到了±2 Hz范围内。在实际情况下,由于噪声等外界干扰的存在,误差会达到几十赫兹。

3 仿真结果

本文采用的实验数据为北斗导航信号模拟器产生的信号,采样频率为37.844 8 MHz,中频为9.461 2 MHz。

为了验证改进后的并行码相位捕获算法可以有效解决北斗MEO/IGSO卫星信号捕获问题,选择属于MEO/IGSO卫星的11号星产生的信号,通过后期跟踪结果可以验证此卫星信号用于捕获的2 ms数据中存在连续两次数据跳变。分别用传统的并行码相位捕获算法和改进后的算法进行捕获实验。

图5为使用传统并行码相位捕获算法得到的二维捕获结果图,可以看出由于连续数据跳变的存在,使得捕获后的频谱相关幅值呈现出多个峰值。

图6为使用改进并行码相位算法得到的二维捕获结果图。可以看出成功捕获到了卫星信号。与理论分析相同,由于使用了2 ms数据进行捕获,可以发现在相邻两个伪码周期范围内出现了两个相关峰值。

分别使用两种捕获方法对模拟器产生的所有北斗卫星信号进行捕获,捕获结果对比如表1所示。

从表1结果可以看出,使用两种捕获算法都成功捕获到了全部卫星信号。但是由于导航电文数据跳边的影响,使用传统并行码相位捕获算法虽然捕获到了全部卫星信号,但是10,11号星信号得到的捕获频率出现了较大的频率误差,导致软件接收机无法正确跟踪信号。而通过改进的并行码相位捕获算法不仅成功捕获到了全部卫星信号,并且得到了正确的捕获结果。同时可以看出,通过使用基于曲线拟合的精捕获方法,使捕获频率误差控制在50 Hz以内。

4 结 论

使用改进的并行码相位捕获算法成功捕获到了全部北斗卫星信号,解决了北斗MEO/IGSO卫星信号由于D1导航电文速率为1 Kb/s的二次编码调制带来的数据跳变问题。使用基于曲线拟合的精捕获方法,将捕获到的载波频率估计误差降低到了50 Hz以内。通过验证,此方法同样适用于GPS信号的捕获。

参考文献

[1] 易维勇,董绪荣,孟凡玉,等.GNSS单频软件接收机应用与编程[M].北京:国防工业出版社,2010.

[2] 中国卫星导航系统管理办公室.BDS?SIS?ICD?2.0北斗卫星导航系统空间信号接口控制文件公开服务信号(2.0版)[S].北京:中国卫星导航系统管理办公室,2013.

[3] 徐昭,李荣冰,谢非,等.北斗B1频点中频信号仿真系统设计[J].系统仿真技术,2013(3):229?235.

[4] 马若飞.GPS弱信号捕获算法研究及其在软件接收机上的实现[D].哈尔滨:哈尔滨工业大学,2010.

[5] KAPLAN E D, HEGARTY C J. Understanding GPS principles and applications [M]. 2nd ed. Boston: Artech House Publishers, 2006.

[6] 谢钢.GPS原理与接收机设计[M].北京:电子工业出版社,2009.

[7] VAN NEE D J R, COENEN A J R M. New fast GPS code?acquisition technique using FFT [J]. Electronics Letters, 1991, 27(2): 158?160.

[8] 王萌,廉保旺.软件GPS接收机捕获算法的研究[J].计算机仿真,2010(1):32?35.

[9] 朱国良,陈小惠.GPS软件接收机捕获和跟踪算法研究[J].舰船电子工程,2009(5):70?71.

[10] 郭利超,廉保旺,马朝霞.新的微弱GPS信号快速捕获算法[J].现代电子技术,2011,34(15):74?78.

[11] LACHAPELLE C M G, CANNON M E. Implementation of a software GPS receiver [C]// Proceedings of 2004 ION GNSS. Long Beach: ION, 2004: 21?24.

[12] ZHENG Yuling. A software?based frequency domain parallel acquisition algorithm for GPS signal [C]// 2010 International Conference on Anti?Counterfeiting Security and Identification in Communication. Chengdu: IEEE, 2010: 298?301.

[13] SCOTT L, JOVANCEVIC A, GANGULY S. Rapid signal acquisition techniques for civilian & military user equipments using DSP based FFT processing [C]// Proceedings of the 14th International Technical Meeting of the Satellite Division of the Institute of Navigation. Salt Lake City: ION, 2001: 2418?2417.

[14] WARD P W. GPS receiver search techniques [C]// Procee?dings of 1996 IEEE Position Location and Navigation Symposium. Atlanta: IEEE, 1996: 604?611.