您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 图形图像 > GPS信号C-A码生成算法设计及仿真实现
2162008年第11期,第41卷通信技术Vol.41,No.11,2008总第203期CommunicationsTechnologyNo.203,Totally·其他·GPS信号C/A码生成算法设计及仿真实现张威①,张克①,徐熙宗②(①北京石油化工学院信息工程分院,北京102617;②韩国全南大学电子通信工学科,550-749)【摘要】全球定位系统(GlobalPositioningSystem,GPS)是一种基于卫星的定位系统,向全球范围内的用户全天候提供高精度的导航、定位和授时服务。GPS系统的测距码可以分为粗码(C/A码)和精码(P码),其中C/A码用于民用导航。本文在深入研究C/A码信号生成原理的基础上,利用Matlab对C/A码信号的实现方式进行了仿真实现和分析。仿真结果进一步证实了该方法的正确性和可行性。这对在仿真平台上进一步研究真实环境下的GPS信号,使其能捕获跟踪复杂环境下的卫星信号,改进卫星接收部分的性能有着十分重要的实际意义。【关键词】全球定位系统,信号仿真,Matlab,粗捕获码【中图分类号】TN967.1【文献标识码】A【文章编号】1002-0802(2008)11-0216-03SimulationAnalysisofinGPSSignalC/AcodeAlgorithmDesignZHANGWei①,ZHANGKe①,SUHHeejong②(①CollegeofinformationEngineering,BeijingInstituteofPetrochemicalTechnology,Beijing,China,102617;②ChonnamNationalUniversity,Yeosu-si,Jeollanam-do550-749Korea)AbstractGlobalPositioningSystem(GlobalPositioningSystem,GPS)isasatellite-basedpositioningsystem,withinthescopeofglobaluserstoprovideround-the-clockhigh-precisionnavigation,positioningandtimingservices.RangingCodeGPSsystemcanbedividedintoroughcode(C/Acode)andthefinecode(Pcode),C/Acodeusedforcivilnavigation.Basedonin-depthstudyC/Acodesignalsgeneratedonthebasisofprinciple,theuseofMatlabC/AcodesignalsintheformoftherealizationofSimulationandanalysis.SimulationresultsfurtherconfirmthevalidityofthemethodandfeasibilityofthissimulationplatformintherealenvironmentfurtherstudytheGPSsignal,enablingittocapturecomplexenvironmenttrackingthesatellitesignal,improvetheperformanceofsatellitereceiverhasaveryimportantpartpracticalsignificance.Keyword:GPS;signalsimulation;Matlab;C/Acode0引言全球卫星定位系统,简称GPS系统,可在全球范围内,全天候为用户连续地提供高精度的位置、速度和时间信息。文中目的就是搭建一个GPS仿真平台,使得各种信号生成的算法能在该仿真平台上得以仿真实现,以验证算法的性能,从而为信号模拟器的研制提供理论依据。因此对GPS的卫星信号的仿真必将推动中国自主研制的卫星导航系统的发展。1GPS信号的原理及特性GPS卫星要向用户接收机传送的是卫星星历。根据卫星星历就可以计算出任意时刻的卫星位置及其速度。1.1GPS信号的频率特性、调制方式及其特性卫星中装有接收机、发射机、高精度的振荡器、导航电文存贮器。GPS发射的测距码信号包括C/A码和P码。卫星上时钟的标准频率f0=10.23MHz,它是卫星上各种频率的同步信号。P码的码频率等于f0,C/A码的码频率为f0/10,载波频率f1=154f0,f2=120f0。载波L1用P码、C/A码和导航数据信息进行相位调制。载波L2只用P码和导航数据信息调制。C/A码是一种伪随机噪声码序列,其频率为1.023MHz,周期1ms。它是一种短码,易于捕获。不同的卫星分配了不收稿日期:2008-04-16。作者简介:张威(1973-),男,讲师,主要研究方向为数字信号处理、卫星通信、自动检测技术、虚拟仪器技术等;张克(1962-),男,留学归国研究生,硕士学位,副教授,主要研究方向为无线通信、网络通信、移动通信、数字电视等;徐熙宗(1949-)男,教授,主要研究方向为计算机通信、网络通信、移动通信、海洋通信等。217同结构的C/A码。P码也是一种伪随机噪声码序列。其频率为10.23MHz,周期约267d。实际上使用的P码周期为7d。不同结构的P码分配给不同的卫星,在一星期内,各卫星的P码不会重复。P码是一种长期的精确码,它难以捕获。通常先捕获C/A码,然后使用导航电文中含有的交接码转到P码[1][2]。信号调制采用移相键控调制方式,L1载波采用四相移相键控调制(QPSK),L2载波采用二相移相键控调制(BPSK)。首先将P码与数据D码模2相加构成复合码P⊕D,C/A码与D码模2和构成复合码C/A⊕D。用P⊕D复合码调制L1载波的同相分量,用C/A⊕D复合码调制L1载波的正交分量。由于QPSK相当于两个正交的BPSK的合成,因此,在L1载波的同相支路和正交支路上,分别是以BPSK方式调制复合码[1]。1.2GPS测距码原理及实现方式GPS的测距码采用的是C/A码和P码。从信号传输的角度来看,C/A码和P码又可称为扩频码。C/A码周期为1ms,易于捕获,测距分辨率约为0.978ns,测距误差约为29.3~2.9m,故称为粗捕获码。P码周期约为226天9小时,不易捕获,测距精度约为2.93~0.29m,仅为C/A码的1/10,故称为精跟踪码[2]。C/A码和P码均是伪随机码。GPS系统中采用的是由m序列(即最长线性反馈移位寄存器序列)产生的复合码。C/A码是用m序列优选对组合形成的Gold码,其除保持了m序列的良好自相关特性之外,还具有良好的互相关特性,此外它具有比m序列多得多的独立码组,Gold码被广泛地应用于多址通信中。1.2.1C/A码生成原理及实现方式C/A码是用m序列优选对组合形成的Gold码。Gold码是由两个长度相同而互相关极大值为最小的m序列逐位模2相加所得到的码序列。它是由两个10级反馈移位寄存器组合产生的,其产生原理如图1所示。C/A码的码长较短,易于捕获。C/A码的码元宽度较大,测距误差为29.3~2.9m。由于其精度较低,所以称C/A码为粗捕获码。图1C/A码发生器原理1.2.2精码P码产生原理P码(PreciseCode)是卫星的精测码,码速率为10.23MHz,它是由两组各有两个12级反馈移位寄存器结合产生的,其基本原理与C/A码相似,但其线路设计细节远比C/A码复杂,且严格保密。P码的距离误差约为2.93~0.29m,仅为C/A码的1/10。所以P码可用于较精密的导航和定位,称为精码。目前美国政府对P码保密,不提供民用,因此一般GPS用户实际只能接收到C/A码[1]。1.3GPS数据码特性导航电文D码是用户赖以导航和定位的基础信息,必须以二进制形式发送给用户。它的主要内容有:卫星星历、卫星星钟改正参数、电离层延迟改正参数、卫星的工作状态信息和C/A码转换到捕获P码的信息、全部卫星的概略星历等。D码是一个不归零的数据流,传输速率为50b/s。对于初始阶段的GPS信号仿真而言,只需将数据码看作50Hz的二进制随机码处理即可,无需考虑数据码本身携带的物理意义[4]。2基于Matlab的GPS信号仿真及实现2.1GPS信号生成算法的设计及参数的选取对1号星C/A码产生仿真,仿真图如图2所示,图2中纵坐标为幅度。在程序中定义一个数组,使得卫星号与G2的码片延时一一对应。g2s=[5;6;7;8;17;18;139;140;141;251;252;254;255;256;257;258;469;470;471;472;473;474;509;512;513;514;515;516;859;860;861;862]。定义两个1×1023的数组g1、g2用来存放生成的Gold码。定义一个全1的10位数组,作为移位寄存器,相当于G1、G2生成模块的初值均置为全“1”。按原理式10311)(tttG++=。(1)109863221)(tttttttG++++++=。(2)来生成两个Gold码序列。设定两个Gold码产生器的反馈抽头:save1=reg(3)*reg(10);%g1码的反馈值;save2=reg(2)*reg(3)*reg(6)*reg(8)*reg(9)*reg(10);%g2码的反馈值。在移位寄存器数组reg中逐位移动,将末端值reg(10)送入g1(g2),将反馈抽头的模2值输出save1、save2送入寄存器首位reg(1)。g1码这样重复运算1023次后即可生成。g2码在此基础上要引入与卫星号相对应的码片延时g2s(s),s为输入的卫星号。以码片延时时间作为分界点,将其后半段数据前移,前半段数据后移,这样就得到g2码。将产生的g1和g2码逐点相乘,反向,即得C/A码。由于数据码的码率为50Hz,0ms长,C/A码的码率为1.023MHz,1ms长,相当于一个D码码片中包含20个完整的C/A码。由于C/A码周期每1ms更新一次,故对于一般的捕获系统,仅记录1ms接收数据进行处理即可。在这1ms数据中,包含D码引起的C/A码相位跳变的概率非常小。如有由D码引起的相位变化,则邻近的两个C/A÷10置“1”G1(t)G2(t)G3(t)相位选择器C/A码GOLD码模2加法器10.23MHz时钟1234567891012345678910218码码片相位就有±π的差别,FFT后的相关峰将减半,这是能检测出来的。这时捕获系统对紧接着的下1ms数据进行处理即可,因为下1ms数据中不可能再包含由D码引起的C/A码相位跳变[3]。因此,在模拟GPS卫星信号用于检测接收端捕获性能的时候,就可以暂不考虑D码的影响,而直接将C/A码调制到载波上,设定延时值,由此产生进入接收机的信号。图21号星C/A码的产生(前50个码)此外,由于大多数接收机都是中频接收机,因此,可以直接模拟进入模数转换器的中频卫星信号而非射频信号[5][6]。这样,整个系统的运行效率将大大提高。C/A码调制到载波之前,要对其进行数字化采样,这就涉及到采样频率的选取问题。通常用的较多的是Nyquist采样定理和带通采样定理。2.2GPS信号生成算法的实现及结果分析1号星的信号生成:code1=digitizg(n,fs,0,1);%产生数字化C/A码fd1=5.123456789e3;%设置多普勒频率值lc1=code1.*exp(j*2*pi*(fc+fd1)*ts*nn);%与载波相乘得中频调制波信号delay1=2831;%设置C/A码延时值expandlc1=[lc1lc1];lc1=expandlc1(delay1:(delay1+n-1));%延时后的调制波中心频率fc为1.25×106Hz,采样频率fs为5×106Hz,采样时间ts=1/fs。程序中fd1的设置,是载波多普勒频率搜索范围±10KHz中任意给定的一个值。这个数据本身不具备任何实际物理意义,但后续对仿真
本文标题:GPS信号C-A码生成算法设计及仿真实现
链接地址:https://www.777doc.com/doc-5295248 .html