GPS信号捕获算法Matlab/Simulink仿真
2015-01-17夏运兵龚文斌姜泉江姜兴龙
夏运兵 , 龚文斌 , 姜泉江 , 姜兴龙
(1.中国科学院 上海微系统与信息技术研究所,上海 200050;2.上海微小卫星工程中心 上海 201203)
GPS卫星信号是采用数据码和伪随机码组合的码调制技术[1],将卫星所要传递的数据比特经伪随机码扩频为组合码,再对L频段的载波进行相移键控调制。采用这种调制模式[2]的信号不仅提高了系统导航定位的精度,并且可以让系统具有较强的抗干扰能力,而所用的关键技术是伪随机码的扩频技术[3]。地面或天基等用户终端,实现对伪随机码的捕获至关重要,对其捕获算法的研究一直是GPS接收机研究的一个热点。本文通过Matlab/Simulink对3种常用的捕获算法进行仿真,并给出捕获结果图和捕获时间,这对接收终端[4]的捕获模块研究具有一定的参考作用。
1 捕获原理及性能分析
1.1 线性捕获算法
线性捕获就是利用数字相关器在时域内对所指定的卫星信号的多普勒频移和码相位[5-7]进行扫描式搜索,是最基本的信号搜索捕获方法。它通常从频率搜索范围中间值所对应的频点出发开始搜索,然后左右交替逐渐对其两边的频带进行搜索,直到最后检测出信号或者搜索完所有频带为止。优点在于它所使用的数字相关器只需要几个,并且这些相关器还可以用于信号跟踪,从而降低了硬件设计的复杂程度。缺点是捕获的时间较长,应用受到限制。
传统线性搜索算法在时域内对所有可能的频点和相位进行串行搜索,搜索的过程只需要加法和乘法运算,无论是在硬件还是软件中都容易实现,在GPS接收机设计中得到大量应用。但由于线性搜索算法在实际接收机中实现时,捕获过程需要大量的相乘、累加运算,需要较长的捕获时间。
文中仿真采用多普勒频移范围在0~±10 kHz,以500 Hz的步长进行遍历搜索,码相位以半个码片遍历搜索,则可得到线性捕获算法完成信号捕获的理论时间为:2 046×1 ms×
1.2 并行频率捕获算法
线性搜索是二维搜索,包括前文所述的41个搜索频带和2 046个搜索码带。而并行频率搜索就是将频率一维以并行实现的方式剔除,从而使信号搜索速度大幅提高的算法。并行频率只需要进行2 046个码带的滑动搜索即可,频率一维搜索通过傅里叶变换实现。其实现算法流程如图1所示。
图1 并行频率捕获算法流程Fig.1 The parallel frequency acquisition algorithm
首先,数字中频输入信号与接收机[8]内部复制的载波进行混频,再与复制C/A码做相关运算,由此得到相关结果i和q是一个关于自相关值R(τ)与残余载波频率损耗因子sin c(feT)乘积的函数;然后时域中的相关结果i+jq经傅里叶变换后被转换成频域信号,它反映了相关结果在各个频率成分处的强度;最后,对该频域信号的幅值大小进行分析,从中找出残余频率值fe及其相应的接收信号载波频率值。如果幅值C/A码相位与接收信号中的C/A码相位一致,那么它们两者的低相关性会抑制傅里叶变换前和变换后的信号幅值,使得傅里叶变换结果没有一个较大的幅值,故可断定接收信号不位于此码相位所对应的搜索码带上。只有当复制C/A码与接收C/A码相位对齐时,傅里叶变换输出结果幅值中才有可能出现一个明显的峰值,而该峰值对应的傅里叶变换频带频率值就是频率误差fe的估计值,并且当时复制C/A码信号的码相位就是接收信号的码相位估计值。
1.3 并行码相位捕获算法
并行码相位捕获就是指2 046(以半个码片为步进则有10 23×2=2 046)次码相位的搜索通过傅里叶变换一次性实现,从而使搜索次数由线性搜索捕获法的83 886次急剧地减少至只在频率一维内的41次搜索。这种基于FFT算法的相关技术相当于并行相关器,其算法实现的流程如图2所示。
图2 并行码相位捕获算法流程Fig.2 The parallel code phase acquisition algorithm
并行码相位搜索捕获算法实际上是利用傅里叶变换这种数字信号处理技术来代替数字相关器的相关运算,下面推导两者的等价性。由离散序列的相关函数表达式知,长为N点的两个周期性序列 x(n)与 y(n)的相关值 z(n)为:
将式(1)进行离散傅里叶变换,得到z(n)的离散傅里叶变换值:
将式(1)代入(2)式可得:
对式(3)进行改写得到如下式子:
其中,X(k)和 Y(k)分别为 x(n)与 y(n)的离散傅里叶变换,Y(k)代表复数 Y(k)的共轭。 (4)式表明,乘积 X(k)Y(k)的离散傅里叶反变换正好是接收机需要进行检测的在各个码相位处的相关值z(n)。得到相关值后,接下来的信号检测与线性搜索捕获法一样,即找出在所有搜索单元中自相关幅值|z(n)|的峰值,并将该幅值与捕获门限比较,超过门限则捕获成功,反之则失败。并行码相位捕获算法的优点是搜索速度比线性捕获算法更为快捷,适用于快速捕获的应用领域。
2 捕获算法的Matlab/Simulink仿真
2.1 信号源的产生
用Matlab中的Simulink仿真工具搭建本次仿真的信号源(本文中的信号源是模拟GPS信号源经下变频后得到的中频信号源),并用To File模块将伪码和信号源存储下来作为捕获时的本地伪码和信号源。信号源产生的框图如图3所示。本次仿真中伪随机码产生的速率为1.023 mHz,数据比特速率为50 bps,图3中To file模块前的采样率为10.23 mHz,载波信号频率为4.092 mHz,采样率为10.23 mHz,最后将信号源存储起来备用。
2.2 捕获算法的实现
捕获的实现过程可以通过Matlab的M语言实现的,对于不同的捕获算法其M语言的编写方法有很大不同。首先,Simulink信号源中存储的伪随机码在M文件中载入备用,伪码相位的延迟可以通过循环语句,将存储的C/A码重组,形成一个新变量 CA_acq,它是 1 023×10 230维的变量(行代表码相位延迟,列代表码片采样点,由于采样率是码速率10倍,故而是10 230列),仿真时选择其中一行作为本地伪码即可,行数代表了码相位的延迟数。这样仿真时只需要取其中的某一行,其行数就代表了码相位的延迟数,可使仿真非常方便的选择伪随机码需要延迟的码片数目。而信号源产生的数据也需要载入到M文件中备用,并存储成变量data_acq。
首先线性捕获算法是最基本的算法,仿真的捕获结果图如图4所示。
仿真所用时长为95.018 439秒。
图3 信号源产生框图Fig.3 Signal source generating diagram
图4 线性算法捕获结果Fig.4 The linear acquisition algorithm results
其次,并行频率捕获算法减少了搜索单元,捕获时长较短。仿真的捕获结果图如图5所示。
图5 并行频率算法捕获结果Fig.5 Parallel frequency acquisition algorithm results
仿真所用时长为36.232 367秒。
最后,并行码相位捕获算法搜索的单元数最少,捕获最快。仿真的捕获结果如图6所示。
仿真所用时长为22.113 107秒。
3种捕获算法在采样率,载波频率,C/A码采样点数等条件一致的情况下,其仿真的时长(包括数据载入的时间)情况如表1所示。
仿真结果表明:线性捕获算法虽然实现方法简单,但是其捕获时间较长,不利于快速捕获;并行频率捕获算法由于
图6 并行码相位捕获结果Fig.6 Parallel code phase acquisition algorithm resuls
表1 捕获时间Tab.1 Capture time
3 结束语
文中主要用Simulink仿真工具,通过模块的搭建实现GPS[9]中频信号源,并将信号存储备用,最终通M文件的运行模拟信号捕获的过程。并给出了3种捕获算法的仿真所用时长,结果表明并行码相位捕获最快,并行频率其次,线性捕获最慢,这与实际的情况相符。这些捕获算法的Matlab/Simulink仿真实现对接收终端研究具有一定的参考作用,对其研制的前期仿真论证具有指导性意义。
[1]王超亮,李擎,苏中.高速GPS接收机信号捕获算法研究[J].测控技术,2014,2(33):20-23.WANG Chao-liang,LI Qing,SU Zhong.Acquisition algorithm based on high speed GPSreceiver signal[J].Measurement&Control Technology,2014,2(33):20-23.
[2]周开利.基于MATLAB/SIMULINK的模拟通信系统仿真[J].信息技术,2003,12(27):1-3.ZHOU Kai-li.Simulation of communication system based on Matlab/Simulink[J].Information Technology,2003,12(27):1-3.
[3]姜弢,廖瑞华,卓志敏.直扩系统中匹配滤波器捕获方法研究[J].信息技术,2004,10(28):90-92.JIANG Tao,LIAO Rui-hua,ZHOU Zhi-min.Research of matched filter acquisition method in DSSS system[J].Information Technology,2004,10(28):90-92.
[4]沈振元,聂志泉,赵学荷.通信系统原理[M].西安:西安电子科技大学出版社,1993.
[5]张威,张克,徐熙宗.GPS信号C/A码生成算法设计及仿真实现[J].通信技术,2008,11(41):216-218.ZHANG Wei,ZHANG Ke,XU Xi-zong.GPSsignal C/A code generation design and simulation algorithm[J].Communications Technology,2008,11(41):216-218.
[6]郭海艳,毕红军.MATLAB在伪随机码的生成及仿真中的应用[J].计算机仿真,2004,21(3):149-152.GUO Hai-yan,BI Hong-jun.Application of MATLAB in the generation and simulation of PN code[J].Computer Simulation,2004,21(3):149-152.
[7]卢晓春,陈清刚,胡永辉.卫星导航定位系统中伪随机码的研究[J].时间频率学报,2004,27(1):23-31.LU Xiao-chun,CHEN Qing-gang,HU Yong-hui.Study of the pseudo random code satellite navigation and positioning system[J].Journal of Timeand Frequency,2004,27(1):23-31.
[8]赵昀,张其善.软件GPS接收机架构与捕获算法实现[J].北京航空航天大学学报,2006,1(32):53-56.ZHAO Jun,ZHANG Qi-shan.Architecture of software GPS receiver and capture algorithm[J].Journal of Bejing University of Aeronautics and Astronautics,2006,1(32):53-56.
[9]袁会东,韩峻峰,潘盛辉,等.基于WinCE的GPS数据采集系统设计[J].现代电子技术,2012(19):165-167,171.YUAN Hui-dong,HAN Jun-feng,PAN Sheng-hui,et al.Design of GPS data acquisition system based on WinCE[J].Modern Electronics Technique,2012(19):165-167,171.