资源描述:
《GPS软件接收机中信号捕获算法研究及Matlab仿真【开题报告+文献综述+毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
本科毕业论文系列开题报告电子信息工程GPS软件接收机中信号捕获算法研究及Matlab仿真一、课题研究意义及现状GPS(GlobalPositioningSystem)即全球卫星定位系统,从1973年发展到2009年36年间,实际意义早已超过设计之初的定义。现在,GPS不仅仅为移动目标提供导航、定位作用,而且还派生出许许多多新型功能;是人脑,电脑,移动目标三者之间的一种有机联系系统。随着我国城市建设和改造步伐加快,城区道路不断新建,错综复杂的道路交通甚至衍生出一批以指路为业者。新建的楼堂馆所,新铺的柏油马路让一些本来熟悉的地方变得陌生,纵横交错的城市道路,形态各异的立交桥,使得本城市的居民出门都不得不经常查看地图。有数据表明,每年北京图书大厦销售排行榜的前三名中一定有地图。为了适应城市的快速发展,电子地图也应运而生。电子地图正是GPS软件接收机在实际应用中的一个典型例子。使用者可以通过使用电子地图,随时随地知道自己所在的具体位置,还可以知道去目的地的具体路线。卫星导航应用产业在国民经济中发挥着越来越重要的作用,将成为“十一五”发展的亮点。在“十一五”期间,卫星导航在其它领域如航空、海路、铁路、建筑、电信、电力等方面的应用都会有很大的发展空间。由此可见,无论在军事经济上,还是人们的日常生活中,GPS定位技术在未来的很长时间里仍会扮演着十分重要的角色。通过对信号捕获算法的研究,不仅能使我进一步理解所学知识,还会对以后的工作起到意想不到的好处,尤其在提高信号接收速度和提高GPS性能方面,更能起到事半功倍的效果。二、课题研究的主要内容和预期目标课题主要任务是研究时域滑动相关、并行频域搜索和并行码相位搜索的GPS信号捕获算法,并用Matlab软件对GPS信号进行捕获仿真实验,分析比较各种捕获方法的优缺点。具体内容:(1)研究GPS信号捕获的基本捕获方法及基本原理; (2)设计出GPS信号捕获的流程图,使用Matlab软件进行仿真;(3)对三种方法所得结果互相进行比较,分析出各自的优缺点;(4)将仿真结果与预期结果进行对比,确认捕获方法的正确与否。(5)对研究结果进行总结;三、课题研究的方法及措施本次研究的课题是GPS软件接收机中信号捕获算法及Matlab仿真,而且要对三种捕获算法进行研究和对比,所以采用比较研究和与实证研究相结合的方法。研究措施:(1)搜集查阅大量相关的资料,了解GPS信号捕获原理及捕获方法。(2)充分利用网络资源,搜集与课题结果相似的正确数据,用来和自己所得出的结果作对比参考。(3)在研究过程中遇上难题,找导师探讨求教,也可以在网络中寻找参考资料。研究方法:首先对三种方法进行分析,并对其捕获原理进行了解,制定三种方法的流程图。然后一一进行Matlab仿真研究,分析得出的结果,并与实际正确结果进行对比,验证自己得出的结果是否正确。如果不正确,则反复进行修改,完善。如果正确,则对三种方法的优缺点进行比较与分析。最后得出自己课题的成果。另外,在研究过程中应该对研究的每一步都做好笔记,并对实验的每一步进行分析,了解其原理以及作用,为毕业答辩以及毕业论文做充足的准备。并最终完成毕业设计以及毕业论文的撰写。四、课题研究进度计划2010/2011(第一学期):明确任务,收集资料,确定系统总体设计方案,完成外文翻译、文献综述及开题报告,并做好开题答辩。2010/2011(第二学期):第1周至第3周:掌握三种捕获算法,同时学习并掌握Matlab程序设计;第3周至第4周:编写Matlab程序实现GPS信号捕获算法功能,得出相对应结果,并进行反复论证;第5周至第6周:进行方案补充以及相关信息的修改;第7周至第8周:撰写毕业论文,完善与修改毕业论文;做好论文答辩的PPT资料,准备答辩,并提交所有电子文档材料。 五、参考文献[1]胡伍生,高成发.GPS测量原理及其应用[M].北京:人民交通出版社,2004,7.[2]李斯泽,丁晓阳.GPS定位技术的应用研究[J].科技信息(学术研究),2008,8,24:83~88.[3]胡斌,陈林.全球定位系统(GPS)技术浅谈[J].内蒙古科技与经济,2009,2,3:218~219.[4]韩高楼.GPS定位技术的优缺点[J].陕西建筑,2010,2,2:56~58.[5]武建锋,胡永辉,蔡成林.GPS信号串行捕获算法研究[J].小型微型计算机系统,2010,1,31(1):186~189.[6]SaschaM.S.,IainScott,DavidG.M.,etal.AnFFT-BasedApproachforFastAcquisitioninSpreadSpectrumCommunicationSystems[J].WirelessPersonalCommunications,2000,4,13(1):27~55.[7]AlisonBrown,MarvinMay,BarryTanju.BenefitsofSoftwareGPSReceiversforEnhancedSignalProcessing[J].GPSSolutions,2000,6,4(1):56~66.[8]李继忠,李魏.GPS信号快速捕获方案研究[J].航空电子技术,2006,6,2:5~9.[9]刘亿民,宋学瑞.基于FPGA的GPS信号快速捕获方法实现[J].全球定位系统,2006,12,6:45~49.[10]唐斌,董绪荣,杨保平.软件接收机基带信号处理研究[J]电光与控制,2007,2,4(1):115~119.[11]李玉红,寇艳红,张其善.微弱GPS信号捕获算法研究[J].遥测遥控,2005,7,4:61~65.[12]郭蓉.探讨GPS信号捕获及性能的提高[J].科技创新导报,2009,1,1:41~42. 毕业论文文献综述电子信息工程GPS信号捕获算法研究综述摘要:本文介绍了GPS信号的结构及定位原理,分析了GPS信号捕获的基本原理,对三种常见的捕获方法进行介绍和分析,并进行了简要的对比,最后对GPS的发展走势进行了展望。关键词:GPS系统;GPS信号结构;GPS信号捕获1GPS概述1.1GPS定义和起源GPS是英文GlobalPositioningSystem(全球定位系统)的简称,而其中文简称为“球位系”。GPS是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,是美国独霸全球战略的重要组成。经过20余年的研究实验,耗资300亿美元,到1994年3月,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。2.1GPS的定位原理若按用户接收机天线在测量中所处的状态来分,GPS的定位方法可分为静态定位和动态定位方法;若按定位的结果来分,可分为绝对定位和相对定位[1]。①绝对定位原理利用GPS进行绝对定位的基本原理为:以GPS卫星与用户接收机天线之间的几何距离观测量为基础,并根据卫星的瞬时坐标(XS,YS,ZS)确定用户接收机天线所对应的点位,即观测站的位置。 卫星的瞬时坐标(XS,YS,ZS)可根据导航电文获得,所以式中只有X、Y、Z三个未知量,只要同时接收3颗GPS卫星,就能解出测站点坐标(X,Y,Z)。可以看出GPS单点定位的实质就是空间距离的交会。(1)②相对定位原理GPS相对定位,亦称差分GPS定位,是目前GPS 定位中精度最高的一种定位方法。其基本定位原理为:用两台GPS用户接收机分别安置在基线的两端,并同步观测相同的GPS卫星,以确定基线端点(测站点)在WGS-84坐标系中的相对位置或称基线向量。2GPS信号捕获原理在软件接收机中,捕获是利用伪随机码良好的相关特性,检测本地从码和卫星信号伪随机码的相关输出。对某一颗可见卫星,当本地码的码相位、本地载波的频率和输入信号中的码相位以及载波频率相匹配时,有最大的相关值。本地码的码相位与输入信号中的码相位在任何一边的偏移超过一个码元时,有最小的相关值。当检测到最大相关值时便达到了捕获的目的。通过对信号的捕获,可以确定几颗卫星中的可见卫星,并可计算出可见卫星的载波频率和码相位的粗略值。接收到的GPS信号通常是几颗可见卫星播发的信号的组合,如下式:(2)(2)式中表示卫星n播发的信号,是接收机接收到的所有n颗可见卫星播发的GPS信号的组合。当捕获卫星k时,输入信号和本地所产生的不同C/A码序列、不同本地载波序列相乘。利用C/A码良好的相关特性,通过检测到的最大相关值,找到可见卫星和对应卫星的载波频率和C/A码的码相位的粗略值,达到捕获的目的。其中信号捕获输出的C/A码的码相位和载波频率是用于跟踪的初始条件[2-4]。3GPS卫星信号捕获方法3.1序列搜索捕获方法序列搜索捕获方法是在CDMA系统中首先使用的捕获方法。序列搜索捕获算法是基于与本地生成的PRN码序列和本地生成的载波信号相乘实现的,进入信号是指天线接收到的GPS卫星信号经过变频后由A/D转换成的可供计算机直接处理的中频数字信号。PRN发生器针对每颗卫星生成对应的PRN序列。进入的信号和PRN序列相乘后,信号和本地生成的载波信号相乘。和载波直接相乘的信号生成I信号,与90°相位位移后的载波信号相乘生成Q信号;处理时I和Q信号被综合考虑,并最终进行平方后相加。序列搜索算法采用两种不同的扫描方式:一种是针对中频信号在±10kHz范围内以500Hz的步长扫描所有可能的载波频率,另一种是针对码相位扫描1023个不同的码相位。总计扫描的次数为[5]: (3)3.2并行频率空间搜索捕获方法并行频率空间搜索捕获方法是通过傅立叶变换使得处理过程由时域变为频域。进入信号和本地生成的PRN序列相乘,一个码对应一颗卫星和0到1023码片之间的某个相位[6-8]。相乘后的信号通过傅立叶变换由时域变换到频域。傅立叶变换可以通过离散傅立叶变换(DFT)或者快速傅立叶变换(FFT)来实现。FFT在二者当中速度较快,但需要输入的序列为2的指数倍长度。在并行频率空间搜索捕获方法中,信号是傅立叶变换函数的输入,在C/A码相位完全对齐的情况下,傅立叶变换后的输出在幅度值上有一个显著的峰值,其对应的频率值就是载波信号的频率[9]。3.3并行码相位搜索捕获方法并行码相位搜索捕获是在某一个多普勒频率搜索步长里对所有码相位搜索,对接收到的伪码序列和本地产生的码序列做循环卷积,产生相关峰值[10]。根据离散傅里叶变换的圆周相关定理,如果将时域的循环卷积转换到频域上完成,则只需对接收到的伪码和本地伪码分别做FFT后,对其中的一组FFT序列作复共轭处理再将二者相乘,通过逆离散傅里叶变换(IFFT)和绝对值平方运算。图1是并行码相位搜索算法的流程图。输入的信号和本地生成的载波信号相乘生成的信号,和90°相位位移的载波信号相乘生成的信号。输入信号经傅立叶变换与傅立叶变换后的PRN码相乘,其结果通过傅立叶反变换转换到时域。傅立叶反变换后输出的绝对值表示输入信号和PRN码的相关性。如果相关性的值中有一个明显的峰值,这个峰值对应的就是进入信号的码相位[11-12]。图1并行码相位搜索算法流程图4GPS信号捕获方法比较 序列搜索捕获方法通过频率和码相位这两个参数的所有组合序列化,因而非常耗时。如果这两个参数中任何一个能从搜索过程中被剔除或者并行实现,整个过程的性能会显著改善。而并行频率空间搜索方法正好实现了这一过程。序列搜索捕获方法需要步进所有可能的码相位和载波频率,而并行频率空间搜索方法只需步进1023个不同的码相位。两者相比之下,并行频率空间搜索方法的搜索效率明显比序列搜索捕获方法快。并行频率空间搜索方法需要对每一个码相位都进行频域变换。这种方法依赖于频域变换的具体实现,很容易使并行频率空间搜索的某个实现快于序列搜索捕获方法。然而从式(3)中可以看出在搜索的步数当中,码相位的维数要显著高于频率的维数(1023比41)。并行频率空间搜索捕获方法用来并行频率空间搜索使得剔除搜索41种不同的频率的必要性。如果捕获时能并行码相位,则仅需要41步不同的频率搜索,较并行频率时需要搜索1023种不同的码相位的效果更好。相比之下,并行码相位搜索捕获方法不论在搜索速率上还是在搜索步骤上都比另外两种方法更方便更快捷。5结论GPS的建成和投入使用在导航和定位领域具有划时代的意义,而且随着GPS现代化逐步实施它在将来会有着更为广阔的应用前景。本文对GPS软件接收机卫星信号捕获算法进行了广泛深入的研究和比较。本文中列举了3中常见的GPS信号捕获方法,从序列搜索捕获方法繁杂的PRN码序列和本地生成的载波信号相乘得到实现,再到并行频率空间捕获方法的通过傅里叶变换将处理过程由时域变为频域,大大缩减了搜索时间,最后到并行码相位搜索捕获算法的在捕获过程中码相位较并行频率空间搜索方法又大大加快的运行速率。总体来说,把信号由时域变到频率进行处理,能大大减少相关性计算的运算量。由于这种方法大大提高了速度,可以在现实生活中得到广泛的运用。参考文献: [1]胡伍生,高成发.GPS测量原理及其应用[M].北京:人民交通出版社,2004,7.[2]李斯泽,丁晓阳.GPS定位技术的应用研究[J].科技信息(学术研究),2008,8,24:83~88.[3]胡斌,陈林.全球定位系统(GPS)技术浅谈[J].内蒙古科技与经济,2009,2,3:218~219.[4]韩高楼.GPS定位技术的优缺点[J].陕西建筑,2010,2,2:56~58.[5]武建锋,胡永辉,蔡成林.GPS信号串行捕获算法研究[J].小型微型计算机系统,2010,1,31(1):186~189.[6]SaschaM.S.,IainScott,DavidG.M.,etal.AnFFT-BasedApproachforFastAcquisitioninSpreadSpectrumCommunicationSystems[J].WirelessPersonalCommunications,2000,4, 13(1):27~55.[7]AlisonBrown,MarvinMay,BarryTanju.BenefitsofSoftwareGPSReceiversforEnhancedSignalProcessing[J].GPSSolutions,2000,6,4(1):56~66.[8]李继忠,李魏.GPS信号快速捕获方案研究[J].航空电子技术,2006,6,2:5~9.[9]刘亿民,宋学瑞.基于FPGA的GPS信号快速捕获方法实现[J].全球定位系统,2006,12,6:45~49.[10]唐斌,董绪荣,杨保平.软件接收机基带信号处理研究[J]电光与控制,2007,2,4(1):115~119.[11]李玉红,寇艳红,张其善.微弱GPS信号捕获算法研究[J].遥测遥控,2005,7,4:61~65.[12]郭蓉.探讨GPS信号捕获及性能的提高[J].科技创新导报,2009,1,1:41~42. 本科毕业设计(20届)GPS软件接收机中信号捕获算法研究及Matlab仿真摘要GPS即为全球定位系统,具有全球覆盖、全天候工作等特点。目前,GPS 接收机在陆用、航空和海事等领域的应用越来越广泛,为用户定位和导航发挥着巨大的作用。随着GPS的升级和新的卫星导航系统的发展,相比较传统GPS接收机,GPS软件接收机具有的成本低、灵活性高等优点越来越突出。文中重点对GPS软件接收机的捕获部分进行了研究,并在Matlab中进行了仿真。首先,论文介绍了GPS信号包含的主要内容和GPS软件接收机的基本原理。然后,详细讨论了时域滑动相关搜索、并行频域搜索和并行码相位搜索三种GPS信号捕获算法。最后在Matlab环境下,编写了GPS信号产生、时域滑动相关搜索捕获、并行频域搜索捕获和并行码相位搜索捕获程序,用软件方式实现了对GPS信号的捕获。仿真结果表明,上述三种方法都可以实现GPS信号的正确捕获。关键词:GPS;C/A码;GPS信号捕获 AbstractGPSnamelyforGlobalPositioningSystem,hastheglobalcoverage,all-weatherworkCharacteristicsetc.Atpresent,theGPSreceiveriswidelyusedinlanduse,aviationandmaritimeandotherfields,andplaysatremendousrolefortheuserpositioningandnavigation.AlongwiththedevelopmentofGPSinupgradesandnewsatellitenavigationsystem,comparedwithtraditionalGPSreceiver,GPSsoftwarereceiveradvantagesoflowcost,highflexibilityagainisbecomingmoreandmoreprominent.PaperemphaticallystudiedonGPSreceiversofcapturesoftwarepart,andsimulationinMatlab.Firstly,thispaperintroducesthemaincontentsoftheGPSsignalsandthebasicprincipleofGPSsoftwarereceiver.Then,thispaperdiscussedthreekindsofGPSsignalscapturingmethodssuchastime-domainglidecorrelationsearching,parallelfrequency-domainsearchingandparallelcodephasesearching.Finally,writeprogramtoproduceGPSsignal,captureprogramtemporalglideofcorrelationsearchcapture,andHangPindomainsearchcaptureandparallelcodephasesearch,realizetheGPSsignalsofcapturewithsoftwarewayinMatlab.SimulationresultsshowthatallthreemethodscancaptureGPSsignalsproperly.KeyWords:GPS;C/Acode;captureofGPSsignal 目录1 引言12 GPS软件接收机工作原理22.1GPS接收机类型22.2GPS软件接收机工作原理43 GPS软件接收机中信号捕获算法研究53.1GPS信号的结构和内容53.1.1载波信号53.1.2C/A码生成原理53.2信号捕获原理73.3信号捕获算法研究93.3.1时域滑动相关捕获算法93.3.2并行频域搜索捕获算法123.3.3并行码相位搜索捕获算法144 GPS软件接收机中信号捕获算法的MATLAB仿真164.1Matlab仿真软件介绍164.2GPS接收信号的Matlab仿真174.3GPS信号捕获的Matlab仿真204.3.1时域滑动相关串行捕获方法的Matlab仿真204.3.2并行频域捕获方法的Matlab仿真234.3.3并行码相位捕获方法的Matlab仿真255 结论28致谢29参考文献30附录GPS信号捕获仿真程序32 1 引言GPS(GlobalPositioningSystem)即全球卫星定位系统,从1973年全球定位系统(GlobalPositioningSystem,GPS)是美国国防部在上个世纪70年代创建的一种基于无线电的导航定位系统。该系统能够在全球范围内向接收机用户提供精确、连续的三维位置和速度信息,具有良好的抗干扰性和保密性[1]。GPS系统主要由三个部分组成:卫星星座部分、地面监控部分和用户接收设备部分。GPS卫星星座由安排在互成55°角的6个轨道面的24颗卫星组成,每个平面上有4颗卫星。其主要作用是将一定组成形式的导航信号实时发送给用户接收机,以用于定位解算。地面监控部分负责监测卫星的健康与状态,同时也向卫星上载导航数据和其他数据[2]。用户接收设备,主要是指GPS接收机,用来接收卫星发射的导航信号,并用其解算出用户位置、速度和时间。GPS系统设计和诞生之初主要用于军事目的,发展到现在已经成为了一种双重用途的系统,即提供民用和军用两种不同的服务。随着美国政府取消了SA政策(selectedavailability,选择性可获得),使得该系统的民用单机精度可达15米以内,民用市场广泛,各种应用已渗透到许多行业。测量行业用GPS进行大地测量、资源勘查、地籍测量等;交通行业用GPS进行车载导航定位;公安、消防部分用GPS进行紧急救援或报警;广播电视行业用GPS与罗盘制造卫星电视定向接收天线;物流行业用GPS用于物流配送定位管理;通讯、网络行业逐渐融合了GPS服务,把通讯、电脑、网络、GPS连成为一体化的移动终端设备;同时利用了GPS长期有效的高精度定位特点,在军用导航系统中,GPS也成为不可或缺的一种导航定位技术[2]。 2 GPS软件接收机工作原理2.1GPS接收机类型GPS卫星发送的导航定位信号,是一种可供无数用户共享的信息资源。对于陆地、海洋和空间的广大用户,只要用户拥有能够接收、跟踪、变换和测量GPS信号的接收设备,即信号接收机,就可以在任何时候用信号进行导航定位测量。根据使用目的的不同,用户要求的信号接收机也各有差异。目前世界上已有很多工厂生产接收机,产品也有几百种。这些产品可以按照原理、用途、功能等来分类[3]。①按接收机的载波频率分类[3]1)单频接收机单频接收机只能接收载波信号,测定载波相位观测值进行定位。由于不能有效消除电离层延迟影响,单频接收机只适用于短基线的精密定位。2)双频接收机双频接收机可以同时接收,载波信号。利用双频对电离层延迟的不一样,可以消除电离层对电磁波信号的延迟的影响,因此双频接收机可用于长达几千公里的精密定位。②按接收机的用途分类[3]1)导航型接收机此类型接收机主要用于运动载体的导航,它可以实时给出载体的位置和速度。这类接收机一般采用码伪距测量,单点实时定位精度较低,一般为±10m,有SA影响时为±100m。这类接收机价格便宜,应用广泛。根据应用领域的不同,此类接收机还可以进一步分为:航海型——用于船舶导航定位;车载型——用于车辆导航定位;航空型——用于飞机导航定位。由于飞机运行速度快,因此,在航空上用的接收机要求能适应高速运动。 星载型——用于卫星的导航定位。由于卫星的速度高达以上,因此对接收机的要求更高。2)测地型接收机测地型接收机主要用于精密大地测量和精密工程测量。这类仪器主要采用载波相位观测值进行相对定位,定位精度高。仪器结构复杂,价格较贵。3)授时型接收机这类接收机主要利用卫星提供的高精度时间标准进行授时,常用于天文台及无线电通讯中时间同步。③按接收机工作原理分类[3]1)码相关型接收机码相关型接收机是利用码相关技术得到伪距观测值。2)平方型接收机平方型接收机是利用载波信号的平方技术去掉调制信号,来恢复完整的载波信号,通过相位计测定接收机内产生的载波信号与接收到的载波信号之间的相位差,测定伪距观测值。3)混合型接收机这种仪器是综合上述两种接收机的优点,既可以得到码相位伪距,也可以得到载波相位观测值。4)干涉型接收机[3]这种接收机是将卫星作为射电源,采用干涉测量方法,测定两个测站间距离。④按接收机通道数分类[3]接收机能同时接收多颗卫星的信号,为了分离接收到的不同卫星的信号,以实现对卫星信号的跟踪、处理和量测,具有这样功能的器件称为天线信号通道。根据接收机所具有的通道种类可分为:1)多通道接收机2)序贯通道接收机3)多路多用通道接收机 2.2GPS软件接收机工作原理GPS信号接收机的任务是:能够捕获到按一定卫星高度截止角所选择的待测卫星的信号,并跟踪这些卫星的运行,对所接收到的信号进行变换、放大和处理,以便测量出信号从卫星到接收机天线的传播时间,解译出卫星所发送的导航电文,实时地计算出测站的三维位置,甚至三维速度和时间[4]。在GPS硬件接收机中,天线接收到的信号首先在RF模块中被滤波及下变频至中频,并进行数字化。接着在专用芯片中进行信号相关,相关器使用带有多普勒频移的中频信号,并将接收到的信号与本地伪随机码进行相关运算,把信号分解到多个信号通道进行解调。解调出的导航信息进入定位模块计算出位置信息。如图2-1所示的GPS软件接收机与传统硬件接收机有明显的不同。信号相关部分被移至通用处理器,使用软件实现。因此,硬件部分只需要一个下变频数字采样单元和通用处理器模块,数字中频信号流被传送至通用处理器模块,并在通用处理器模块上运行软件进行相关捕获、追踪解调及定位处理[4]。判决RF前端模数转换相关捕获单元追踪解调定位天线导航电文解调输出图2-1GPS软件接收机结构框图GPS软件接收机使用与硬件接收机相似的算法,但根据软件处理的特点进行了优化并使用软件实现。根据各个部分的不同作用,软件接收机主要分为数字下变频模块、实现信号捕获、载波同步和码同步的同步模块及数据解调三个模块。数字下变频模块的作用是GPS接收机接收到的信号进行混频,将L1信号下变频到中频信号,再将中频信号A/D转换为数字信号[5]。同步模块的作用主要体现在捕获和跟踪环节,主要完成C/A码同步与载波同步的一系列运算,并完成捕获和跟踪。数据解调模块的作用是将数字信号转化为模拟信号回馈给客户。 3 GPS软件接收机中信号捕获算法研究3.1GPS信号的结构和内容GPS信号包含三个部分:载波信号、伪随机(PRN)码(包括C/A码和P(Y)码)和导航数据信号(或称D码)[5,6]。3.1.1载波信号GPS卫星使用的载波频率有L1和L2两部分,其中载波L1的中心频率为1575.42MHz,载波L2的中心频率为1227.6MHz。载波L1和L2都是基于卫星中的原子钟所产生的10.23MHz基准频率f形成的:f=154f1575.42MHz(3-1)f=120f1227.6MHz(3-2)其中L1频段同时包含有C/A码和P(Y)码,L2频段只包含P(Y)码。GPS卫星信号中载波的基本作用为传送导航电文和测距码。另外,由于卫星和接收机之间的相对运动,就会使载波产生Doppler频移。对于固定的GPS接收机,偏移载波L1的最大Doppler频移可达到MHz。对于高速运动的GPS接收机,偏移载波L1的最大Doppler频移可达到10MHz。此频移量可以用于精确测定接收机的三维运动速度。在高精度GPS定位中,载波本身也可作为一种测距信号使用,这时可以提高测距精度。而使用两个载波频率发送卫星导航信号可以对电离层产生的附加延时进行双频校正。3.1.2C/A码生成原理每个GPS卫星发送的测距码有两种:精密测距码P(Y)码和粗捕获码C/A码,两种均为伪随机码。伪随机码全称伪随机噪声码,简称伪码,是一种可以预先确定又可重复产生和复制,具有类似于白噪声随机统计特性的二进制码序列。伪码的产生方式很多,GPS系统中采用的是由m序列(即最长线性反馈移位寄存器序列)产生的复合码。m 序列是由多级反馈移位寄存器产生的,不同级数的反馈寄存器以及不同的反馈抽头都将产生不同的m序列[7]。m序列是一种伪随机序列,有着优良的自相关函数,而且易产生与复制,所以在扩频通信中得到广泛的应用。m序列是最大周期线性移位寄存器序列的简称,它是由多级移位寄存器或其他延迟元件通过线性反馈产生的最长周期码序列。m序列是构成Gold码的基础。在二进制移位寄存器码发生器中,若移位寄存器级数为n,则产生的码序列最大长度为2-1。图3-1表示了一个四级最长线性移位寄存器。Yx1x2x3x4输出序列反馈逻辑图3-1四级最长线性移位寄存器最长线性移位寄存器的反馈特性与其产生的m序列特性一一对应。数学上用特征多项式来表征。图3-1所示最长线性移位寄存器的特征多项式为。Gold码是m序列的复合码,它是由两个码长相等、码时钟相同的m序列优选对的模2相加产生。Gold码生成器结构比较简单,由两个n级线性移位寄存器并联模2相加产生。改变产生它的两个m序列的相对相位,就可得到一个新的Gold序列,两个m序列总共有2-1个相对位移,所以通过两个m序列复合可以产生2-1个序列,加上原来2个m序列,一共可以产生2+1个Gold码。可见,Gold码序列的数量要比m序列的数目多得多[8]。C/A码序列采用了Gold码,序列长度为1023位,由两个10级移位寄存器产生m序列和进行模2和产生。图3-2为C/A序列发生器结构框图。G1和G2的特征多项式分别为:(3-3)那么C/A码的输出为,是码元对应的时间, 是和之间相位偏移的位数。有1023个不同的偏移量,可以产生1023个不同的Gold码,由于实际卫星的数目有限,在产生C/A码时,G2的时延效果主要通过两个所选抽头位置S1、S2相关联来得到,而S1、S2的选择则对应不同的GPS卫星,例如,S1选择G2发生器2号位置,S2选择G2发生器6号位置,此时对应的是1号卫星,所产生的C/A是1号卫星的C/A的输出。可以简单记作:。各个卫星C/A码的相位分配如表3-1所示[9]。图3-2CA码生成原理框图表3-1各个卫星C/A码的相位分配卫星号相位选择C/A码延时卫星号相位选择C/A码延时卫星号相位选择C/A码延时卫星号相位选择C/A码延时126593101411714469255751323761023251182547026685143487113425219364712779515459812562542047472288105165191713672552158473291685962101814782562269474302786071813915892572313509313886182914016910258244651232498623.2信号捕获原理GPS卫星向用户发送的信号,是由Ll和L2两个分量组成的,Ll和L2均是已调制的载波信号,其调制波是卫星导航电文D码和伪随机噪声码P码(精确码)、C/A码(粗捕获码)[9]。L1和L2两种已调制的载波信号,分别可记为:(3-4) (3-5)公式(3-4)和(3-5)中:Ap和Bp分别为载波L1和载波L2的振幅;、和分别为卫星的P码、C/A码和D码;、分别为载波L1、L2对应的角频率;、分别为GPS卫星的载波L1、L2的初相。由式(3-4)、(3-5)可知载波信号Ll上调制有P码、C/A码和D码,而载波信号L2上只调制有P码和D码。GPS信号的C/A码是由两个最大长度的十级移位寄存器的移位相加构成的,属于戈尔德(GOLD)码族。其周期为P=1023,码速率1.023Mbps,且在1、-1之间以频率为1.023MHz跳变。信号捕获的目的是确定可见卫星信号的载波频率以及码相位的粗略值。GPS卫星通过32个不同的PRN序列来区分。PRN序列在本文中即C/A码。对码相位,就是对齐当前数据块中C/A码的时刻。计算码相位必须使本地生成的C/A码和信号中对应的码完全对齐。只有在完全对齐的情况下,信号中的C/A码才能被剔除[10]。图3-3二维搜索示意图由于GPS信号是基于码分多址(CDMA)技术,因此捕获时需要在本地接收机上复现32颗卫星的C/A码,以与降频后的中频信号进行相关运算。码相位,指的是C/A码在当前数据块中的时间同步信息。为了复现与接收信号C/A码完全对齐的本地C/A码,需要取得码相位,才能从信号中剥离C/A码。而两个C/A码只有同属于一颗卫星而且在时延为零的时候才能得到最大的相关值,即两个信号必须完全对齐才能剥离接收信号中的C/A码。载波频率,在下变频的情况下是指数字中频。接收到的L1频点1575.42MHz 射频信号,通过前端射频电路模块处理后,可采样得到数字中频信号。本文的采样频率约为C/A码频率的5倍,在1ms的C/A码周期上有5115个点,即一个码元上大约有5个采样点,所以在C/A码上有5115个搜索点。在接收机低速或静止状态下,最大多普勒频移为±10KHz,所以频域上搜索范围在10KHz以内,若以500Hz作为搜索步长,则共有20个搜索点,则二维搜索域总共有5115×20=114280个栅格需要搜索[11],如图3-3所示。一般情况下,一个多普勒分格规定近似为2/(3T),这里T表示每方格的信号积分时间或者每方格的滞留时间。滞留时间是可变的,对于强信号来说可小于1ms(667Hz的多普勒分格),对于弱信号可大到10ms(67Hz的多普勒分格)。捕获主要有三种常用的方法:时域滑动相关串行搜索、并行频率搜索捕获算法以及并行码相位搜索捕获算法。时域滑动相关串行搜索采用相关运算,每次只搜索一个栅格,搜索速度较慢,耗时长,但是实现较简单;并行频率搜索捕获算法每次在一个频率点搜索,可同时输出所有栅格的相关结果,速度较快。并行码相位搜索捕获算法则在并行频率搜索捕获算法的基础上加快了搜索速度[11]。论文主要研究时域滑动相关、并行频域搜索和并行码相位搜索的GPS信号捕获算法,并用Matlab软件对GPS信号进行捕获仿真实验。3.3信号捕获算法研究3.3.1时域滑动相关捕获算法N进入信号C/A码发生器求和本地振荡器积分相关IQ捕获判决图3-4时域滑动相关捕获算法原理图 时域滑动相关捕获算法是基于与本地生成的PRN码序列和本地生成的载波信号相乘实现的,其原理框图如图3-4所示。图中进入信号是指天线接收到的GPS卫星信号经过下变频后由A/D转换成的可供通用处理器直接处理的中频数字信号。C/A码发生器针对每颗卫星生成对应的C/A码序列。进入的信号和C/A码序列相乘后,信号和本地生成的载波信号相乘。和载波直接相乘的信号生成I信号,与90°相位位移后的载波信号相乘生成Q信号;并对I信号与Q信号进行求和并积分。中频数字接收信号的表达式为:(3-6)在式3-6中,表示中频数字频率,表示发送端CA码。本地C/A码和输入信号相乘后的输出信号为:(3-7)在式3-7中,表示本地C/A码与接收信号的C/A码的相位差。接下来将信号分为I路和Q路,并分别进行解调。解调后I路的输出表达式为:(3-8)解调后Q路输出表达式为:(3-9)在式3-8,3-9中,表示本地接收数字中频频率。接下来将I路和Q路所得的输出进行求和,求和结果表达式为:(3-10)最后对求和结果进行积分,积分相关器输出表达式为:(3-11) 对接收结果进行分析:当收、发载波同步时,,(3-12)此时,积分相关器。在收、发载波同步时,滑动码相位,当码相位完全同步时,即(3-13)这时会出现最大相关值,从而达到了捕获的目的,上述两个条件有一个未达到标准,则不会出现峰值。图3-5码相位滑动相关捕获过程图码相位的滑动相关过程可以用图3-5表示,通常情况下,滑动相关捕获算法每个码相位检测后增加半个码元,所以有2046(2×1023)个码相位需要检测。如果采用数字采样信号,那么捕获时可以每次移动一个采样点或者多个采样点,但对应的码元移动要少于半个码元。对Ll载波多普勒频率搜索步长的设定,可以将频率步长选取为捕获所使用的数据度的倒数,或者更小的频率值。如果事先有载波或者码相位的分布信息,可利用这些信息来减小搜索范围。若每次清零之间使码相位移动一个采样值,则需通过移动L次本地码采样值,再与输入信号的L个采样值进行相关计算[12,13]。 滑动相关捕获算法采用两种不同的扫描方式:一种是针对中频信号在±10kHz范围内以500Hz的步长扫描所有可能的载波频率,一种是针对码相位扫描1023个不同的码相位。总计扫描的次数为:(3-14)滑动相关捕获方法的主要缺点是组合扫描次数巨大,比较耗时。3.3.2并行频域搜索捕获算法由上一小节的介绍可以看出,因为要顺序搜索频率和码相位这两个参数所有可能的值,串行搜索捕获方法非常的耗时。如何能从搜索过程中消除对其中一个参数的搜索,或者能使对两个参数的搜索同时进行,算法性能将会大大提高。这一小节介绍的并行频域搜索捕获算法,就是对一个参数的搜索。这种方法利用了傅立叶变换将信号从时域变换到频域[13]。并行频域搜索捕获算法的原理图如图3-6所示。反傅里叶变换进入信号C/A码发生器捕获判决取模傅里叶变换图3-6并行频域搜索捕获算法原理图图3-6中,输入信号首先和本地产生的C/A码序列相乘。对于一个特定的卫星,C/A码的相位介于0-1022个码元之间。然后对相乘后的信号进行傅里叶变换,使其变换到频域。进行傅里叶变换时,可以通过离散傅里叶变换(DFT)或快速傅里叶变换(FFT)来实现。其中FFT比DFT的运算速度快,但是要求输入序列的长度等于2的正整数次幂。图3-7是输入信号和一个完全对齐的本地C/A码序列相乘后的结果,相乘后得到的信号是一个单一频率的连续波(同相路信号)。只有当本地C/A码和输入信号中的码完全对齐时,才能得到上图的结果[14]。 在并行频域搜索捕获过程中,图3-7中相乘后得到的信号在经过傅立叶变换后,其输出在幅值会有一个很清晰的尖峰。这个尖峰用来确定和连续波信号频率相等的频率值,也就是载波信号的频率。图3-7码相位同步时同相路解调输出信号确定出的频率的准确度依赖于DFT的长度。也就是用来分析的数据抽样后的点数。如果分析1ms的数据,抽样后的点数就等于抽样频率的1/1000。也就是说,如果抽样频率,抽样点数N=10000。如果DFT的长度等于10000,前N/2个输出的抽样点代表0-Hz的频率,也就是输出的频率分辨率。(3-15)滑动相关捕获算法对所有可能的码相位和载波频率都进行了搜索,而并行频域搜索捕获算法仅仅对1023个不同的码相位进行了搜索。但是并行频域搜索捕获方法在减少搜索量的同时,它又带来了对和每个不同的码相位相乘后的信号进行傅立叶变换时的时间消耗。和串行搜索捕获相比,这种方法依靠了频域变换,其更快速的实现应该是可能的。像串行搜索捕获方法一样,并行频域搜索方法的实现也是简单直接的,它可以基于图3-6直接实现。并行频域搜索捕获方法的第一步和串行搜索捕获方法的第一步是相同的,也是输入信号和本地C/A码相乘。在和C/A码相乘后,通过傅立叶变换将信号从时域转换到频域。在进行傅立叶变换时,FFT是比较快速有效的方法。经过FFT运算后,信号变成了复信号。如果第一步中本地C/A码和输入信号中的码完全对齐,FFT运算后的结果会在中频丁士多普勒频移处有一个大的尖峰。为了找到可能的尖峰频率,对所有的值都取了绝对值。 3.3.3并行码相位搜索捕获算法相比较以500Hz为步长的载波频率搜索总量41,码相位的搜索总量1023是比较大的。上节介绍的并行频域搜索捕获方法中,通过将信号在频域的搜索并行化方式,消除了对41个可能的载波频率进行必要的搜索过程。如果能使捕获过程在相位域并行化,那么相比较并行频域搜索捕获方法中的1023次搜索,这种情况下只需要搜索41次。下面介绍的并行码相位捕获算法就是用到了以上提到的并行化码相位搜索过程的办法[15]。捕获的目的就是为了对输入信号和一个C/A码序列做相关运算。相比较串行搜索捕获方法中输入信号分别和1023个不同码相位的码序列相乘,对输入信号和具有不同码相位偏移的C/A码序列做循环互相关更方便。下面是一种通过傅立叶变换实现循环相关的方法。两个长度同为N的有限长序列想x(n)和y(n)的离散傅立叶变换X(k)和Y(k)计算如下:X(k)=(3-16)Y(k)=(3-17)两个长度相同的有限长序列x(n)和y(n)的循环互相关计算如下:=(3-18)下面的分析中均省略了z(n)中的缩放因子。z(n)的N点离散傅立叶变换Z(k)计算如下:=(3-19)其中X*(k)是X(k)的复共扼。 由以上分析可以看出,两个序列x(n)和y(n)的循环互相关z(n)的傅立叶变换可以用这两个序列的频域表达式X(k)的复共扼X*(k)和Y(k)表示。然后再对Z(k)取反傅立叶变换,就可以得到序列x(n)和y(n)的循环互相关的表达式:(3-20)I进入信号复数共轭本地振荡器傅里叶变换C/A码发生器傅里叶反变换捕获判决傅里叶变换Q图3-8并行码相位搜索算法原理图图3-8是并行码相位的搜索算法的原理图。输入的信号和本地生成的载波信号相乘生成I信号,和90°相位位移的载波信号相乘生成Q信号。输入信号经傅立叶变换与傅立叶变换后的C/A码相乘,其结果通过傅立叶反变换转换到时域。傅立叶反变换后输出的绝对值表示输入信号和C/A码的相关性。如果相关值中有一个明显的峰值,这个峰值对应的就是进入信号的码相位。 4 GPS软件接收机中信号捕获算法的Matlab仿真4.1Matlab仿真软件介绍Matlab是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。Matlab和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且Matlab也吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到Matlab函数库中方便自己以后调用,此外许多的Matlab爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用[15]。Matlab软件的优势(1)友好的工作平台和编程环境(2)简单易用的程序语言(3)强大的科学计算机数据处理能力(4)出色的图形处理功能(5)应用广泛的模块集合工具箱 (6)实用的程序接口和发布平台(7)应用软件开发(包括用户界面)4.2GPS接收信号的Matlab仿真GPS信号是一种调制波,它不仅采用L波段的载波,而且采用扩频技术传送卫星导航电文。所谓扩频是将原来打算发送的几十比特速率的电文变换成发送几兆甚至几十兆比特速率的由电文和伪随机噪声码组成的组合码。采用扩频技术时,若信号功率仅为噪声功率的1/10,那么信号将深深地淹没在噪声之中而不易被他人捕获,从而使得信号具有极强的保密性[16]。GPS信号的调制波,是卫星导航电文和伪随机噪声码(PseudoRandomNoiseCode,简称PRN码,或称伪噪声码)的组合码。卫星导航电文是一种不归零二进制码组成的编码脉冲串,称之为数据码,记作D(t),其码率为50b/s。对于距离地面20000km之遥的GPS卫星,扩频技术能有效地将很低码率的导航电文发送给用户。其方法是用很低码率的数据码作二级调制(扩频)。第一级,用50Hz的D码调制一个伪噪声码,例如调制一个被叫做P码的伪噪声码,它的码率高达10.23MHz。D码调制P码的结果,便形成了一个组合码——P(t)D(t),使得D码信号的频带宽度从50Hz扩展到10.23MHz,也就是说,GPS卫星从原来要发送50b/s的D码,转变为发送10230b/s的组合码P(t)D(t)。在D码调制伪噪声码以后,再用它们的组合码去调制L波段的载波,实现D码的第二级调制,而形成向广大用户发送的已调波。本课题主要研究GPS信号的捕获,所以主要考虑GPS中的同步信号。仿真中同步数据的速率设为50bit/s,C/A码的速率为1.023MHz,中频调制频率为4.092MHz,每个载波周期采样10个样点,中频采样率为40.93MHz,则每个码片采样点数为40个。需要注意的是,GPS信号虽然有几种分量(C/A易捕码、P精确码和D导航数据码),但是它们均来源于一个公共的10.23MHz的基准频率。它们的频率不仅与基准频率有一定的比例关系,而且相互之间也存在一定的比例关系,详细如表4-1所示[17-19] 。这既有利于GPS卫星发送信号,又便于广大用户接收和测量GPS信号。从表4-1中可以看出,在D码的一个码元内,将有20460个C/A码码元,204600个P码码元,31508400个L1周期和24552000个L2周期。表4-1GPS信号的频率关系同步数据产生器数据扩展C/A码中频调制上变频下变频中频解调捕获算法信道P码信息图4-1GPS同步信号的产生和传输原理框图导航数据的第一个子帧包含8比特的同步数据,每比特导航数据包含20个C/A码组(1023位),每组C/A码的周期为1ms,载频为154F(L1载波)。论文主要研究GPS信号的捕获原理及仿真,所以主要考虑同步信号部分,基于软件接收机的GPS同步信号产生和传输原理如图4-1所示,仿真结果如图4-2所示,相应的仿真程序流程图如图4-3所示。图4-2GPS信号仿真结果 设定中频调制频率设定采样频率调用C/A码生成子程序从第一个同步数据开始读入同步数据扩展成与C/A码同速率的数据数据C/A码中频调制同步数据序号加18个同步数据读完了吗YN结束图4-3GPS信号生成流程图 4.3GPS信号捕获的Matlab仿真4.3.1时域滑动相关串行捕获方法的Matlab仿真时域滑动相关串行捕获算法是目前商用GPS接收机通用的信号捕获方法,也是一种比较容易实现的捕获算法。它主要是通过不断的调整本地码的码相位和本地载波频率,来实现信号的捕获。捕获策略如下:首先在一定的范围内任意选定一个载波频率,在这个载波频率下,将本地产生的C/A码序列和输入信号相乘,并进行一个码周期的循环累加。将累加结果和事先设定的门限比较,如果大于事先设定的门限,则判断信号捕获,记录此时的C/A码相位和载波频率作为跟踪程序的初始条件,接收机转换到码跟踪环路和载波跟踪环路;如果小于事先设定的门限,则移动一定数目的码片,更改码相位,重复上述过程。当所有可能的码相位都搜索完毕,但是仍然没有捕获到信号,则换一个载波频率重复上述过程,直到信号被捕获。如果所有的码相位和载波频率(多普勒频率)范围内全部搜索完毕仍然没有捕获到信号,则这个周期捕获信号失败。本地C/A码产生器将生成其它颗卫星的码序列,重复上述过程,继续捕获[20-21]。捕获算法的实现过程如图4-4所示。.输入数据频率为f1的载波频率为f2的载波频率为fn的载波乘积和累加乘积和累加乘积和累加移动本地C/A码判决判决判决移动本地C/A码移动本地C/A码图4-4时域滑动相关捕获算法的实现过程示意图 时域串行捕获算法是利用本地载波和本地C/A码与输入信号串行相乘,来进行信号的捕获运算。捕获原理如3.3.1节图3-4所示。设定接收载波初始值及步进量设定本地C/A码初始相位及搜索步进量正交解调I路和Q路相关I路和Q路相加相位步进频率步进所有相位是否搜索完毕YN一个C/A码周期内相关求和相关峰大于阀值?YN结束图4-5时域滑动相关峰值的流程图 首先在一定的范围内任意选定一个载波频率,在这个载波频率下将本地复制的C/A码序列和输入的信号相乘,相乘的目的是对输入信号进行解扩,当信号解扩后,分成两路,分别和由本地载波产生的两路正交信号相乘得到两路基带信号(I、Q支路),对这两路信号进行一个或者多个C/A码周期的累加,将累加结果平方,再求和。考虑到白噪声的随机特性,须重复K次以减少噪声的影响,提高信号的能量,最后将累加结果和事先设定的门限比较,若所得到的累加值大于预先设定的门限,则成功捕获到信号;若小于设置的门限,须移动一定数目的码片(通常为1或1/2码片的整数倍),更改码相位重复上述过程。当所有可能的码相位都搜索完毕都没有捕获到信号,则换一个载波频率重复上述过程,直到信号被捕获[18]。时域滑动相关捕获流程图如图4-5所示。Matlab仿真时,假设接收信号从第二个数据的第一个样点开始,选取一个完整的CA码长度序列,本地CA码的初始相位设为400个码片,相位的步进量设为1个码元,设定载波频率为fc1=3.093MHz,载波频率的步进量为500kHz。先将接收信号进行正交解调,解调后的I路和Q路进行解扩,I路和Q路信号相加后计算一个CA码周期内的相关值,将这个相关值与预设的阀值进行比较,如果相关值大于阀值,则认为捕获到了信号,载波频率和码元相位即为当前解调和解扩所用的值;如果相关值小于阀值,则没有捕获到信号,判定是否所有相位都搜索完毕,要是没搜索完毕,则再重复上述的操作,直至搜索完毕,如果所有的相位都已搜索完毕仍然没有捕获到信号,则改变接收载波频率,重新进行搜索。当接收载波频率为3.093MHz时,一个CA码周期内的搜索结果如图4-6所示,在整个CA码周期内都没有出现相关峰值。改变接收载波的频率,当接收载波频率为4.093MHz,图4-6载波不同步时时域滑动相关峰值仿真图 图4-7载波同步时时域滑动相关峰值仿真图即收发载波同步时,一个CA码周期内的搜索结果如图4-7所示,当码元相位滑动到400时出现明显的相关峰值,表明可以成功捕获到信号,相关峰值为1023,和理论上的数值相一致。4.3.2并行频域捕获方法的Matlab仿真并行频域捕获算法的基本思想就是展开输入信号,找到载波频率。捕获策略如下,一个周期的输入信号中包含载波和C/A码。首先剥离C/A码,当本地产生的码与输入信号中的C/A码同相位时,二者相乘后,C/A码剥离,得到载波信号,如图3-7所示。由于载波信号为一连续信号,对其做FFT后,可以在频谱中得到其频率,这便是输入信号的载波频率。由于频域并行捕获算法得出的波形由峰值就可以得出载波频率,因此频域并行捕获算法不需要考虑载波频率。只需要考虑码相位的变化。所以在编程中只需要先设定C/A码的初始相位及相位步进量。接收信号首先与本地C/A码相乘进行本地解扩,然后对解扩后的信号进行傅里叶变换。 搜索FFT变换后频谱中的峰值,与之前设定好的门限做比较,如果大于门限,则判定捕获成功,如果小于门限,则重复上述过程,若所有码相位都搜索完毕都未能捕获,则判定捕获失败。仿真程序流程图如图4-8所示。本地C/A码相位与输入信号的码相位不同步时,FFT变换后频谱如图4-9所示,图中虽然也出现了峰值,但没有超过门限,而且峰值也不尖锐,有很多杂波信号,所以未能捕获到信号。当本地C/A码相位与输入信号的码相位同步时,FFT变换后频谱如图4-10所示,图中出现了明显的数值超过门限的峰值,峰值很尖锐,旁边几乎没有杂波信号,所以可以判断捕获到了信号。载波的频率即为峰值的位置k乘上频率分辨率。仿真时,采样频率为40.93MHz,FFT长度为40920,所以频率分辨率为,谱峰的位置在k=4092处,所以载波的频率为,与理论值一致。设定本地C/A码初始相位及搜索步进量码相位步进YN对输入信号进行本地解扩对解扩后的信号进行傅里叶变换结束是否捕获到信号?图4-8频域并行捕获算法流程图 图4-9码相位不同步时并行频域搜索捕获仿真结果图4-10码相位同步时并行频域搜索捕获仿真结果4.3.3并行码相位捕获方法的Matlab仿真并行码相位捕获法是一种复杂度较低的软件实现方法。它的基本原理是将多普勒频移和码相位搜索法结合起来,在经过伪随机码FFT的变换后,将所有码元的相位信息转换到频域内,这样只需搜索多普勒频移上的空间即可。因此,这是一种快速而高效的软件搜索方法。并行码相位捕获法的理论基础:是两个信号时域内的卷积运算,变换到频域后则是乘法运算。时域捕获法的弊端在于本地C/A码与接收到的C/A码进行大量的相关运算,而相关的运算从数学角度看就是信号间的卷积运算。信号被变换到频域后,减少了运算量,提高了捕获速度。并行码相位捕获算法流程图如图4-12所示。 设定接收载波初始值及步进量I路和Q路解调傅里叶变换和本地C/A码傅里叶变换、复数共轭后的数值相乘频率步进反傅里叶变换是否有超过门限的相关峰值N结束Y图4-11并行码相位捕获算法流程图Matlab仿真时,假设接收信号从第二个数据的第一个样点开始,选取一个完整的CA码长度序列,设定载波频率为fc1=3.093 MHz,载波频率的步进量为500kHz。先将接收信号进行正交解调,解调后的I路和Q路相加后进行傅里叶变换,同时也对本地C/A码进行傅里叶变换及复数共轭,最后将两个数值相乘并进行反傅里叶变换,得到解调后的信号与本地C/A码的相关值。将这个相关值与预设的阀值进行比较,如果相关值大于阀值,则认为捕获到了信号,载波频率即为当前解调所用的值,同步码相位即为相关峰对应的位置;如果相关值小于阀值,则没有捕获到信号,判定是否所有频率都搜索完毕,要是没搜索完毕,则再重复上述的操作,直至搜索完毕,如果所有的频率都已搜索完毕仍然没有捕获到信号,则捕获失败,进入下一轮搜索。当接收载波频率为3.093MHz时,一个CA码周期内的搜索结果如图4-12所示,在整个CA码周期内都没有出现相关峰值。改变接收载波的频率,当接收载波频率为4.093MHz即收发载波同步时,一个CA码周期内的搜索结果如图4-13所示,在n=100处出现明显的相关峰值,峰值的值为1023,和理论上的数值相一致,表明可以成功捕获到信号,同步码相位为100,同步载波频率为4.093MHz。图4-12载波不同步时并行码相位搜索捕获仿真结果图4-13载波同步时并行码相位搜索捕获仿真结果 5 结论本文的研究目的是对三种GPS信号捕获算法进行研究并对三种捕获算法进行的比较。通过本课题的研究,完成了以下工作:(1)分析了GPS软件接收机的起源及用途。论述了三种常见GPS信号捕获算法的捕获原理。(2)详细介绍了Matlab软件以及在各领域的应用。(3)详细说明了中频信号的生成以及相关的编程、仿真。(4)完成三种捕获算法的Matlab仿真,并加以描述。(5)在三种捕获算法中,并行码相位搜索捕获算法在Matlab环境下执行速度短,性能高,捕获结果精度也比另外两种方法高,提高了GPS软件接收机的定位速度和定位精度。通过对GPS中频信号的捕获算法的仿真结果分析,本文设计的GPS信号捕获程序能够实现对中频信号的捕获。但是其中还是有些许不足。(1)本文接收的GPS信号仅仅考虑信号的前8位同步头。而且研究的信号仅仅针对L1信号进行捕获。(2)研究过程中并没有考虑到噪音以及延迟等误差,所以捕获精度有待于提高。(3)研究局限于Matlab软件的仿真平台,要在实际应用中得到运用还需要把程序代码向DSP,ARM或FPGA移植,使GPS信号捕获功能可以再硬件条件下得到实现。 参考文献[1]余丹,廖凯宁.GPS全球定位系统的改进与发展[J],全球定位系统,2006.1,1:41-44.[2]陈军,潘高峰.GPS软件接收机基础[M].第二版.北京:电子工业出版社,2008,7.[3]刘基余.GPS卫星导航定位原理与方法[M].北京:科学出版社,2003,8.[4]胡伍生,高成发.GPS测量原理及其应用[M].北京:人民交通出版社,2004,7 .[5]李斯泽,丁晓阳.GPS定位技术的应用研究[J].科技信息(学术研究), 2008,8,24:83~88.[6]胡斌,陈林.全球定位系统(GPS)技术浅谈[J].内蒙古科技与经济,2009,2,3:218~219.[7]韩高楼.GPS定位技术的优缺点[J].陕西建筑,2010,2,2:56~58.[8]武建锋,胡永辉,蔡成林.GPS信号串行捕获算法研究[J].小型微型计算机系统,2010,1,31(1):186~189.[9].曹意.GPS软件接收机的实现和定位算法研究[D],上海:上海交通大学,2009.[10]SaschaM.S.,IainScott,DavidG.M.,etal.AnFFT-BasedApproachforFastAcquisitioninSpreadSpectrumCommunicationSystems[J].WirelessPersonalCommunications,2000,4,13(1):27~55.[11]AlisonBrown,MarvinMay,BarryTanju.BenefitsofSoftwareGPSReceiversforEnhancedSignalProcessing[J].GPSSolutions,2000,6,4(1):56~66.[12]刘亿民,宋学瑞.基于FPGA的GPS信号快速捕获方法实现[J].全球定位系统,2006,12,6:45~49.[13]李雄飞,邱乐德,王宇.一种基于FFT的PN码捕获方法研究[J].空间电子技术.2007,4,4(4):28~33.[14]唐斌,董绪荣,杨保平.软件接收机基带信号处理研究[J].电光与控制,2007,2,4(1):115~119. [15]王家文,王皓.Matlab编程基础与应用[M].北京:机械工业出版社,2006,7.[16]仁付园,杨长青.基于Matlab的扩频码设计仿真及性分析[J].广西轻工业,2008,9,9:83-85.[17]李继忠,李魏.GPS信号快速捕获方案研究[J].航空电子技术,2006,6,2:5~9.[18]李玉红,寇艳红,张其善.微弱GPS信号捕获算法研究[J].遥测遥控,2005,7,4:61~65.[19]郭蓉.探讨GPS信号捕获及性能的提高[J].科技创新导报,2009,1,1:41~42.[20]杨俊,武奇生.GPS基本原理及其Matlab仿真[M].西安:西安电子科技大学出版社,2006,8.[21]徐卫明,刘雁春,朱穆华.GPS中频信号快速捕获技术分析[J].测绘科学,2007,32(S):98-100. 附录GPS信号捕获仿真程序clearall%发送数据,即接收数据%同步头为10001011,位于第一子帧的1~8bi%******CA码生成*****%m序列,从a(10)输出%f(x)=x^10+x^3+1n=10;a=[0000000001];mlead1=[a(n)];loop=2^n-1;fori=2:loop;b=[a(1:n-1)];a(1)=mod(a(3)+a(n),2);a=[a(1),b];mlead1=[mlead1,a(n)];end%test,相关值%mlead1=2*mlead1-1;%0——-1,1——1%con(1)=mlead1*mlead1';%fori=2:loop%mlead2=[mlead1(i:loop),mlead1(1:i-1)];%con(i)=mlead1*mlead2';%end%figure(1),plot(con)%%Gold序列,从a(3)和a(8)输出,这是第颗卫星%f(x)=x^10+x^9+x^8+x^6+x^3+x^2+1a=[0000000001];Gmlead1=[a(3)];Gmlead2=[a(8)];fori=2:loop;b=[a(1:n-1)];a(1)=mod(a(2)+a(3)+a(6)+a(8)+a(9)+a(n),2);a=[a(1),b];Gmlead1=[Gmlead1,a(3)];Gmlead2=[Gmlead2,a(8)];end%G1、G2和m序列模2加,输出C/A码CA=mod(Gmlead1+Gmlead2+mlead1,2);%**********************加上数据码********************************D=[10001011];%同步头 %设中频频率为4.093MHz,每个中频载波周期取10个样点,CA码频率为1.023MH,即每个码片取样40个样点,%每个数据重复20次,每次用1023bi的CA码表示,所以每个数据用1023*40*20个样点表示;%载波序列fc=4.093*10^6;%中频sample_n=10;fs=fc*sample_n;D_number=1023*40;n=1:D_number*8*20;w=2*pi*fc/fs;%载波振幅取1%x=exp(j*w*n);%plot(x)out_sample=zeros(1,D_number*8*20);D_out=zeros(1,D_number*8*20);CA_out=zeros(1,D_number*8*20);DCA_out=zeros(1,D_number*8*20);%画图用fori=1:length(D)%读入第一个数据%扩展数据样本D_sample=[D(i)*ones(1,40)];forp=1:20fork=1:length(CA)CA_sample=[CA(k)*ones(1,40)];temp2=mod(D_sample+CA_sample,2);temp3=D_number*(i-1)*20+D_number*(p-1)+(k-1)*40+1:D_number*(i-1)*20+D_number*(p-1)+40*k;temp2=2*temp2-1;%+1-1,temp3=exp(j*w*temp3);%仿真用%调制%temp3=sin(w*temp3);%Q,画图%out_sample(D_number*(i-1)*20+D_number*(p-1)+(k-1)*40+1:D_number*(i-1)*20+D_number*(p-1)+40*k)=temp2.*temp3;%画图用D_out(D_number*(i-1)*20+D_number*(p-1)+(k-1)*40+1:D_number*(i-1)*20+D_number*(p-1)+40*k)=D_sample;CA_out(D_number*(i-1)*20+D_number*(p-1)+(k-1)*40+1:D_number*(i-1)*20+D_number*(p-1)+40*k)=CA_sample;DCA_out(D_number*(i-1)*20+D_number*(p-1)+(k-1)*40+1:D_number*(i-1)*20+D_number*(p-1)+40*k)=temp2;endendend%figure(1),subplot(4,1,1),plot(D_out(D_number*20-80:D_number*20+80)),ylim([-0.1,1.1])%subplot(4,1,2),plot(CA_out(D_number*20-80:D_number*20+80)),ylim([-0.1,1.1])%subplot(4,1,3),plot(DCA_out(D_number*20-80:D_number*20+80)),ylim([-1.1,1.1])%subplot(4,1,4),plot(out_sample(D_number*20-80:D_number*20+80)),ylim([-1.1,1.1]) formatlong%************滑动相关接收******************%当码相位和载波都同步的时候,输出corr中出现最大的相关峰,由此可以判断信号的捕获%当码相位或载波不同步的时候,输出结果没有最大的相关峰%载波同步%fc1=4.093*10^6;%中频%载波不同步fc1=4.093*10^6-500*2;n=1:D_number*8*20;w1=2*pi*fc1/fs;%载波振幅取1%N=1023*40;%1个CA码长度,每个码片40个样点fort=1:1023start=20*40*1023+1;%起始样点,第二个数据的第一个样点开始x(t)=out_sample(start+(t-1)*40);Tcos(t)=cos(w1*(start+(t-1)*40));Tsin(t)=sin(w1*(start+(t-1)*40));endfork=1:1023m=k+1023-400;%400为码元初始相位,考虑码元相位不同步ifm>1023m=m-1023;elsem=m;endTCA=[CA(m+1:1023),CA(1:m)];temp=x.*Tcos.*TCA-j*x.*Tsin.*TCA;%%%%%%%%%%%%%Q和I路合成corr(k)=sum(temp);%积分求和endfigure(2),plot(real(corr)+imag(corr));%I和Q路平方取模后相加,%***********************************FFT****************************%当码相位同步的时候,输出temp经fft变换后出现谱峰,由谱峰的位置可以计算出载波的频率,不需要搜索载波%当码相位不同步的时候,输出结果没有最大的谱峰值start=20*40*1023+1;%起始样点,第二个数据的第一个样点开始%假设码相位同步?%TCA=CA_out(start:start+40*1023);%是否需要转换成+1和-1的值?%如果码相位不同步m=300;TCA=CA_out(start+m*40:start+40*1023+m*40);x=out_sample(start:start+40*1023);temp=x.*TCA;%%%%%%%%%%%%%%%%本地解扩figure(3),plot(abs(fft(temp)))%频率分辨率为fs/(40*1023)=10*4.093*10^6/(40*1023)=1kHz,中频处于4.093*10^6/10^3=4093 %*****************3****************%当载波同步的时候,输出out结果中包含最大相关峰值,可以看出码相位的值,不需要搜索码相位%当载波不同步的时候,输出结果没有最大的相关峰值%载波同步fc1=4.093*10^6;%中频%载波不同步%fc1=4.093*10^6-500*10;%频差5kn=1:D_number*8*20;w1=2*pi*fc1/fs;%载波振幅取1%N=1023*40;%1个CA码长度,每个码片40个样点fort=1:1023start=20*40*1023+1;%起始样点,第二个数据的第一个样点开始x1(t)=out_sample(start+(t-1)*40);Tcos(t)=cos(w1*(start+(t-1)*40));Tsin(t)=sin(w1*(start+(t-1)*40));endtemp=x1.*Tcos-j*x1.*Tsin;%%%%%%%%%%%解调后Q和I路合成y=fft(temp);%40倍抽取后,频率分辨率为fs/40/1023=10*4.093*10^6/40/1023=1kHzm=100;%考虑码元相位不同步TCA=[CA(m+1:1023),CA(1:m)];z=fft(TCA);z=z'.';%复数共轭gg=y.*z;out=ifft(gg);figure(5),plot(abs(out));format