GPS信号跟踪

合集下载

gps工作原理

gps工作原理

gps工作原理
GPS工作原理。

全球定位系统(GPS)是一种通过卫星信号确定地球上任何位置的系统。

它由一组24颗卫星组成,这些卫星环绕地球轨道运行,为地面接收器提供位置和时间信息。

GPS系统的工作原理可以分为三个主要步骤,跟踪、计算和定位。

首先,GPS接收器通过接收来自至少四颗卫星的信号来确定其位置。

每颗卫星都会发射包含卫星位置和时间信息的信号。

接收器会跟踪这些信号,并计算出从卫星到接收器的距离。

由于信号传播的速度已知,接收器可以通过测量信号传播的时间来计算出距离。

其次,接收器通过将来自至少四颗卫星的距离信息输入到一个数学模型中来计算出自己的位置。

这个数学模型使用三维三角测量技术来确定接收器在地球上的精确位置。

除了位置信息之外,接收器还可以通过比较接收到的信号和卫星发送的原始信号来计算出时间信息。

最后,接收器利用计算出的位置和时间信息来确定自己的地理
位置。

这些信息可以显示在接收器的屏幕上,也可以通过连接到其
他设备来进行导航或地图显示等应用。

通过不断跟踪卫星信号,并
计算出位置和时间信息,GPS接收器可以提供持续不断的位置更新,从而实现精确定位。

总的来说,GPS系统的工作原理是通过卫星信号的跟踪、距离
的计算和位置的定位来确定地球上任何位置。

这种技术已经被广泛
应用于航空、航海、车辆导航、地图绘制等领域。

随着技术的不断
发展,GPS系统的精确度和稳定性也在不断提高,为人们的生活和
工作带来了极大的便利。

GPS系统定位原理:卫星信号的三角定位

GPS系统定位原理:卫星信号的三角定位

GPS系统定位原理:卫星信号的三角定位
全球定位系统(GPS)通过卫星信号的三角定位原理来确定接收器的位置。

以下是GPS系统定位的基本原理:
1. GPS卫星网络:
卫星分布: GPS系统中有一群卫星轨道绕地球运行。

这些卫星在不同的轨道上,确保地球上的任何位置都能接收到至少四颗卫星的信号。

信号传输:每颗卫星都以固定的频率向地球发射信号,其中包含卫星的位置和时间信息。

2. 接收器接收卫星信号:
接收器定位: GPS接收器位于地球表面,能够接收到来自多颗卫星的信号。

接收器通过测量信号的到达时间来确定每颗卫星与接收器之间的距离。

多颗卫星:至少接收到四颗卫星的信号,以确保足够的信息进行精准的定位。

3. 三角定位原理:
测量距离:接收器通过测量从卫星发射信号到接收器接收信号的时间来计算距离。

速度等于距离除以时间。

三角定位:使用接收器到多颗卫星的距离,可以确定接收器相对于每颗卫星的位置。

三个或以上卫星的交汇点就是接收器的位置。

4. 时间同步:
精确时间:由于GPS信号中包含卫星的时间信息,接收器使用这些信息来确保接收到的信号和卫星发射信号的时间是同步的。

5. 定位精度:
多个卫星:使用多颗卫星的信息可以提高定位的精度。

更多的卫星提供更多的交叉验证,减小误差。

差分GPS:通过使用参考站的已知位置进行比较,可以进一步提高定位的精度,称为差分GPS。

通过以上原理,GPS系统能够提供全球范围内高精度的定位服务,广泛应用于导航、地图服务、精准农业等领域。

单频GPS测绘技术的原理与误差分析

单频GPS测绘技术的原理与误差分析

单频GPS测绘技术的原理与误差分析概述全球定位系统(GPS)是一种广泛应用于测绘、导航、地理信息系统等领域的高精度定位技术。

在GPS测绘技术中,单频GPS是最常见的一种技术应用。

本文将介绍单频GPS测绘技术的原理以及存在的误差,并分析其影响因素。

一、单频GPS测绘技术的原理单频GPS测绘技术基于全球定位系统(GPS)的原理,通过接收来自卫星的无线电信号实现位置测量。

GPS系统由24颗运行在轨道上的卫星和位于地面的控制站组成。

当GPS接收机接收到来自至少4颗卫星的信号后,通过计算信号传播时间和卫星位置信息,可以确定接收机的位置坐标。

单频GPS测绘技术的过程可以简单概括为以下几个步骤:1. 接收卫星信号:GPS接收机接收来自卫星的信号,并通过信号解调得到传输的导航信息。

2. 信号跟踪:GPS接收机通过跟踪卫星信号的时间变化,确定卫星信号的到达时间,从而计算传输时间差。

3. 定位计算:通过已知卫星位置和信号传输时间差,利用三角测量原理计算接收机的位置坐标。

二、单频GPS测绘技术存在的误差尽管单频GPS测绘技术在应用中具有一定的精度和可靠性,但同时也存在一些误差。

这些误差对于测量结果的准确性和可靠性具有一定的影响。

1. 观测误差:包括环境条件、接收机接收信号质量、天线姿态等因素引起的误差。

例如,信号遮挡、多径效应、噪声等都可能影响接收机接收到的卫星信号的质量,从而导致测量误差的产生。

2. 距离测量误差:由于GPS信号传播的速度并非无限快,导致接收机计算位置时,需要考虑信号传播的时间差。

由于地球大气层的影响,信号传播速度可能会发生变化,从而导致距离测量误差。

3. 多路径效应:当卫星信号在其传播过程中经过反射、折射等现象时,会出现多径效应,即信号会经过不同路径传播到接收机。

这种现象会导致接收机无法准确判断信号的传播路径,从而引入误差。

4. 定位系统误差:GPS系统本身也存在一定的误差,例如卫星轨道误差、时钟漂移等。

gps码跟踪原理(一)

gps码跟踪原理(一)

GPS码跟踪原理- 什么是GPS码- GPS码如何实现跟踪- GPS码跟踪的原理- GPS码跟踪的应用领域- GPS码跟踪的未来发展什么是GPS码全球定位系统(GPS)是一种通过卫星来确定地球上任意点位置的系统。

GPS系统使用一种特殊的编码来传输信息,这种编码就是GPS码。

GPS码由一组信号组成,每个信号都由特定的频率和时间间隔组成,用来表示卫星的位置和时间信息。

GPS码如何实现跟踪GPS码实现跟踪主要依赖于GPS接收器。

GPS接收器接收来自卫星的GPS码,并通过计算卫星信号传播时间和接收时间的差值来确定自身位置。

GPS接收器通常至少接收来自四颗卫星的信号,通过比对这些信号的时间差来计算出自己的位置。

GPS码跟踪的原理GPS码跟踪的原理主要是基于三角定位和时间测量。

通过接收来自至少三颗卫星的GPS码,可以确定自己的位置,因为每颗卫星的位置都是已知的。

同时,通过测量信号传播的时间差,也可以确定自己与卫星的距离。

结合三角定位和时间测量,就可以实现高精度的定位跟踪。

GPS码跟踪的应用领域GPS码跟踪在许多领域有着广泛的应用,包括但不限于航空航天、军事、交通运输、地理信息系统等。

在航空航天领域,GPS码可以用来确定飞行器的位置和轨迹,保证飞行器能够准确导航。

在军事领域,GPS码可以用来实现精确定位、导航和定时。

在交通运输领域,GPS码可以用来实现车辆跟踪、导航和路况监控。

在地理信息系统领域,GPS码可以用来实现地图绘制和空间分析。

GPS码跟踪的未来发展随着技术的不断发展,GPS码跟踪也在不断进步。

未来,我们可以期待更高精度、更强稳定性和更广应用的GPS码跟踪技术。

例如,通过引入新的卫星系统、改进信号处理算法、提高接收器灵敏度等手段,可以提高GPS码跟踪的定位精度和可靠性。

同时,随着5G、物联网等新兴技术的发展,GPS码跟踪也将在更多领域得到应用,为人类的生产生活带来更多便利和安全保障。

总结通过对GPS码跟踪原理的深入了解,我们可以看到这一技术在当今社会中的重要性和广泛应用。

gps 追踪器原理

gps 追踪器原理

gps 追踪器原理
GPS追踪器是一种利用全球定位系统(GPS)技术进行定位和
追踪的装置。

它的原理主要包括接收和解码GPS卫星发出的
信号、计算位置坐标,并通过通信技术将相关信息传输给用户。

首先,GPS追踪器通过接收GPS卫星发出的信号来确定自身
的位置。

GPS系统由多颗绕地球轨道运行的卫星组成,这些
卫星通过无线电信号不断地发射定位信息。

接收器内置的天线会接收到这些信号,并将其传输到处理器中。

其次,GPS追踪器的处理器会对接收到的信号进行解码和计算,以确定自身的位置坐标。

接收器会同时接收多颗卫星的信号,通过测量信号的传播时间和距离,以及每颗卫星的位置和精确时间,计算出自身的位置。

通常需要接收到至少三颗卫星的信号才能准确计算位置。

最后,GPS追踪器通常会通过通信技术将位置信息传输给用户。

通信技术可以包括无线网络、蜂窝网络或卫星通信等。

追踪器会将定位信息转换成可识别的数据格式,并通过通信模块将数据传输给用户的手机或电脑等设备。

用户可以通过相应的软件或应用程序实时查看设备的位置、运动轨迹等信息。

总的来说,GPS追踪器的原理是利用GPS卫星发射的信号进
行定位、解码和计算,然后通过通信技术将位置信息传输给用户。

这种装置在许多应用领域中起着重要的作用,如车辆追踪、物品定位、个人安全等。

高动态GPS卫星信号混合载波跟踪算法设计

高动态GPS卫星信号混合载波跟踪算法设计

c i r c u ms t a n c e . S o t h e d y n a m i c a d j u s t a b i l i t y o f c a r r i e r t r a c k i n g l o o p i s i m p o v e d . B y f o u r d i f f e r e n t d y n a mi c
高动态 G P S卫星信号混合载波跟踪算法设计
刘 满 国, 张 科
( 西北工业大学航天学院, 西安 7 1 0 0 7 2 )
摘 要: 高动 态运动环境会给 G P S卫星信号带来很大 的多普勒频移及 其变化率 , 甚至产生频率 的突变 , 单一 的
锁相环 、 锁频环 、 四象限鉴频 器无法进行稳定跟踪 。在对传统锁相环 、 锁频环原理及性能分 析的基础 上 , 设计 了一种 基于 C o s t a s 锁相环 ( C o s m s — P L L ) 、 叉积 锁频环 ( C P — F L L ) 及 四相鉴频 器( F Q F D) 并 能够 智能切 换的混 合载 波跟踪算 法, 该算法基 于二 阶 F L L辅助三阶 P L L的跟踪环路实现 , 依据不 同的动态环境使 F L L和 P L L交替l T作 , 以提高 载波
跟踪环路的动态适应性。通过 固定频率 、 频率一次斜升 、 频率二次斜升 和频率突变等 4种不同动态条件下 的实验 , 证 明了该算法在高动态环境下的有效性 和可靠性 。
关键词 : 高动态 , G P S , 四项 鉴频器 , 混合载波跟踪 中图分类号 : T N 9 6 7 . 1 文献标 识码 : A
பைடு நூலகம்
Ab s t r a c t :Hi g h d y n a mi c e n v i r o n me n t b i r n g wi t h g r e a t Do p p l e r s h i f t a n d r a t e o f c h a n g e , e v e n wi t h

GPS卫星导航原理:卫星信号定位技术

GPS卫星导航原理:卫星信号定位技术

GPS卫星导航原理:卫星信号定位技术全球定位系统(GPS)是一种通过卫星信号进行定位的导航技术。

GPS系统由一组卫星、地面控制站和接收设备组成。

以下是GPS卫星导航的基本原理:1. GPS卫星系统组成:卫星: GPS系统由一组绕地球轨道运行的卫星组成,这些卫星携带精确的时钟和GPS系统的控制信息。

地面控制站:位于地球表面的控制站负责监测卫星的状态、时钟校准和轨道调整等任务,以确保系统的正常运行。

接收设备:用户使用的GPS接收器通过接收卫星发射的信号来确定自身的位置。

2. 卫星信号传播原理:GPS卫星发射射频信号,这些信号包含了卫星的位置、时间等信息。

这些信号以电磁波的形式向地球传播。

GPS接收器接收来自多颗卫星的信号,并通过测量信号的传播时间来计算卫星与接收器之间的距离。

3. 距离测量和三边测量原理:GPS接收器通过测量信号传播的时间(即信号的往返时间)来计算卫星与接收器之间的距离。

速度等于距离除以时间。

GPS接收器同时接收多颗卫星的信号,并根据这些卫星与接收器之间的距离,采用三边测量的原理确定自身的位置。

4. 多普勒效应:GPS接收器还利用接收到的信号的多普勒效应,即由于接收器和卫星之间的相对运动,信号频率发生变化。

通过测量频率的变化,接收器可以计算速度。

5. 位置计算:GPS接收器通过测量来自至少三颗卫星的距离,可以在三维空间中确定自身的位置。

更多卫星的信号可以提高精度和稳定性。

6. 误差校正:GPS系统引入了一些误差校正的方法,如差分GPS、增强型GPS等,以提高定位的准确性。

GPS卫星导航系统利用卫星信号的传播时间和多普勒效应,通过测量距离和计算位置,为用户提供准确的定位信息。

该技术在航海、航空、汽车导航、军事应用等领域得到了广泛应用。

GPS信号的捕获与跟踪

GPS信号的捕获与跟踪

电子工程学院141GPS信号的捕获与跟踪第七章 GPS信号的捕获与跟踪前几章讲述了GPS系统结构和GPS定位原理,本章介绍GPS软件接收机和GPS信号处理方法,主要探讨对GPS信号进行捕获和跟踪的过程。

捕获的目的是搜索到可视卫星,并粗略地确定卫星信号的载波频率和伪码相位,跟踪的目的则是精确地跟踪信号的载波频率和伪码相位的变化,完成GPS信号解扩和解调,从而提取出导航电文、伪距观测量等。

7.1 GPS软件接收机目前广泛使用的GPS接收机一般均基于ASIC(Application Specific Integrated Circuit)结构,又称为硬件接收机,结构如图7-1所示。

硬件接收机的数字接收机通道(包括捕获、跟踪的相关运算)一般用一个或几个专用GPS信号通道处理芯片(ASIC)来实现,接收机微处理器从ASIC输出的相关输出结果译出导航数据,从而可以得到卫星星历及伪距,星历可用来得到卫星位置,并最终可由卫星位置及伪距解算出用户位置等信息。

这类ASIC芯片具有运行速度快、成本低的特点。

但由于ASIC限制了接收机的灵活性,用户不能轻易改变硬件接收机各类参数以适应随着GPS发展的升级需要;同时近年来出现了许多减少导航定位误差和提高抗干扰能力的算法,如抗多径跟踪环路设计、高动态的跟踪环路设计等,对于硬件接收机测试和使用新的算法,不便之处显而易见。

随着软件无线电思想的发展,GPS软件接收机的设计与实现逐渐成为研究热点。

图7-1 GPS传统硬件接收机框图软件无线电(Software Radio)的概念是由美国科学家J.Mitola于1992年5月在美国电信系统会议上首次明确提出的。

随着通信技术的迅速发展,新的通信体制与标准不断提出,通信产品的生存周期缩短,开发费用上升,导致以硬件为基础的传统通信体制无法适应这种新局面。

同时不同体制间互通的要求日趋强烈,而且随着通信业务的不断增长,无线频谱变得越来越拥挤,这对现有通信系统的频带利用率及抗干扰能力提出了更高的要求,但是沿着现有通信体制的发展,很难对频带重新规划。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GPS课程设计实验报告(3)学院姓名LSC班级学号指导教员一、试验名称:GPS信号跟踪二、试验目的:1. 熟悉GPS信号跟踪的基本概念;2. 掌握载波跟踪环和码跟踪环的基本思想及处理流程;3. 训练利用课堂所学知识解决实际问题的能力。

三、试验内容1. 编写GPS信号跟踪子程序,其中载波环及码环阶数自定,鉴别器算法自选,通道数自选(简单起见,可为1)。

2. 在实验二的基础上,调用以上信号跟踪子程序对信号进行跟踪处理,解调出导航电文并作图。

3. 画出每一个通道码环鉴别器和载波环鉴别器的输出随时间变化的曲线。

四、试验原理4.1载波和码元跟踪GPS信号的跟踪示意图如下,传统锁相环的输入通常是连续波形或频率调制信号,压控振荡器VCO的频率用来跟随输入信号的频率。

在一台GPS接收机中,输入是GPS信号,接收机的锁相环必须跟随(或跟踪)这个信号。

然而,GPS信号是双向编码信号。

如以前提到的,GPS接收机和GPS卫星的运动产生多普勒效应,使得载波和码元频率会发生改变。

为了跟踪GPS信号,必须首先剥离C/A 码。

结果,就需要两个环路来跟踪GPS信号,一个用来跟踪C/A码,另一个用来跟踪载波频率。

这两个环路必须成对一起使用。

捕获程序找到了C/A码的起始点,码元环路产生相位超前C/A码近似1/2个基波,同时产生相位滞后近似1/2个基波的滞后码。

超前码与滞后码同输入C/A码进行卷积运算,产生两个结果,这两个卷积结果经过动态均值滤波器之后再经过平方运算,比较得到的这两个卷积结果的平方项,用以产生一个本地C/A 码速率的控制信号,使之与输入信号的C/A码匹配。

当C/A码从输入信号中剥离后,载波频率环路接收到的是一个相位只被导航电文调制的连续信号。

捕获过程得到载波频率的初始值,压控振荡器VCO根据捕获过程得到的初始值产生一个载波频率,这个载波频率信号分成两路:一路同相信号和一路正交相信号(相位偏移90°)。

这两路信号与输入信号相关运算,相关结果经过滤波器后,通过反正切比较器,比较它们之间的相位,用以调节本地振荡器的载波频率,来跟随输入的连续信号。

产生的载波频率同时用来从输入信号中剥离载波。

4.2利用锁相环跟踪GPS信号4.2.1二阶锁相环:二阶锁相环意味着传递函数H(s)的分母是s的二阶函数。

构成这种二阶锁相环的传递函数:2s s 101)t (t 44t 81n n s n k k C ωζωζω++= 2s s 2n 102)t (t 44t 41n n s k k C ωζωω++=)( 其中,ωn 表示固有频率,ζ是抑制因子 (1) 设置码元环路和载波环路的带宽与增益。

环路增益包括相位探测器增益和VCO 增益。

(2)抑制因子ζ=0.707, 此值常被认为是最理想值。

(3) 由上式求出固有频率。

(4) 选择码元环路增益(k0k1)为50,载波环路增益为4π×100,这个设置也是若干种设置中的一种,常量C1、C2可由上式求。

这四步为两个环路提供了必要参数,通过调整码元环路的相位和载波频率相位,使其跟踪输入信号。

因为C/A 码是1 ms 长,因此,环路要在每毫秒更新一次,C/A 码也必须每毫秒重新产生一次, 且新产生的C/A 码相位必须与前一时刻相位连续。

典型输出数据设置如图所示, 输出幅值随时间变化,由于跟踪环的传输效应,最终使幅值达到稳定。

五、Matlab 代码及仿真结果5.1追踪子程序function[diata_dll,diata_fll]=tracksignal(iniphcode,inifd,iniph,snr,Code_Meth od_flag,Carrier_Method_flag,codew,codeb,carrierw,carrierfllb,carrierp llb)svnum = 10; %卫星号iniphcode = 120; %生成信号源的码相位inifd = 4600; %生成信号源的载波多普勒频率iniph = 0; %生成信号源的载波初相位snr = 0; %生成信号源的信噪比global time_unit; % 数据跳变时间单位global time; % 数据发送时间global time_cyc;% 一个完整扩频码周期global fs; % 采样率110def τωk k n 22211012102110121022def )(n n n n s s s k k s k k s k k s k k s H ωξωωξωττττττ++++++=global nn; % 一个完整扩频周期采样点数global kk; % 数据总采样点global F_if; % 载波中频global CA_freq; % PN码速率global tc;global CA ; % 扩频码基玛global F_Carrier; % L1波段载波频率%参数设置time = 100*(10^(-3));time_unit = 20*(10^(-3));time_cyc = 1*(10^(-3));fs = 5*(10^6);nn = time_cyc*fs;kk = (time/time_cyc)*nn;F_if = 1.25*(10^6);F_Carrier = 1575.42*(10^6);CA_freq = 1.023*(10^6);%生成C/A以供使用(未用试验一的C/A码)PN = codegen(svnum);CA = [];k = 5;for n = 1:length(PN)CA((1+k*(n-1)):k*n) = PN(n)*ones(1,k);endtc = 1/(k*CA_freq);loop_time = time/time_cyc;%生成信号源 %Signal_Source是生成的信号源, buffer_bit_data是随机生成的数据位,用于与最后解调的数据进行比对[Signal_Source,Phase_signal,buffer_bit_data]=CreateSource(iniphco de,inifd,iniph,snr);%捕获[fd_ac,f_ac_code] = acqu(Signal_Source);%定义跟踪中用到的参数IPSum_old = 0.01;QPSum_old = 0.01;%码跟踪环滤波器参数设置Code_Method_flag=2; %码跟踪环鉴相法选择标志diffoffside = 0.5; %码鉴相时,正负偏移半个码片k0 =10^(-6); %码跟踪环鉴相器增益k1=10^(-3); %码跟踪环NCO增益k1 = 50/k0; %码跟踪环NCO增益codew = 20 %自然圆频率codeb = 2 %阻尼系数offside = f_ac_code;theta_code_old = 0;offside_old = f_ac_code;CodeErr_old = 0;Bk_DLL = [];Track_Code_Buffer =[];%载波跟踪环滤波器参数设置Last_Phase = 0;Control_Buffer = [];ts = 1/fs; %采样时间间隔Carrier_Method_flag =3; %fll,pll,fll->pll的方法选择标志dem_flag = 0; %fll->pll的切换标志add = 0; %fll->pll的切换过程中用到的变量carrierw = 20 %自然圆频率carrierfllb = 0.707 %阻尼系数carrierpllb = 0.706Track_Freq_Buffer = [];track_dopplar_old = 0;%FLL环参数FLLinput_old=0;FLLoutput_old=0;track_freq_fll = 0;Sita_fll = 0;Bk_FLL = [];%PLL环参数PLLinput_old=0;PLLoutput_old=0;track_freq_pll = 0;Sita_pll = 0;Bk_PLL = [];Buffer_Data =[];adj_buffer = [];ALL_Buffer_Data = [];count_buffer = [];Demodulate_I = [];Local_Ph_Buffer = [];%跟踪循环for i = 1:1:loop_timeSignal = Signal_Source((i-1)*nn+1:i*nn);Signalph= Phase_signal((i-1)*nn+1:i*nn);t = [0:nn-1]*ts;track_dopplar = fd_ac+track_freq_fll+track_freq_pll;Track_Freq_Buffer = [Track_Freq_Buffer track_dopplar]; Local_I = cos(2*pi*(F_if+track_dopplar)*t + Last_Phase); Local_Q = sin(2*pi*(F_if+track_dopplar)*t + Last_Phase); Iph = 2*pi*(F_if+track_dopplar)*t + Last_Phase;Local_Ph_Buffer = [Local_Ph_Buffer Iph];Last_Phase=Last_Phase2*pi*(F_if+track_dopplar)*time_cyc; %%上一次积分结束点的相位Carrier_I = Local_I;Carrier_Q = Local_Q;ph_code_p = offside;fd_code_p = track_dopplar;CA_Code_p = CAcode(ph_code_p,fd_code_p,i);lc_p = CA_Code_p.*Signal;ph_code_e = offside+diffoffside;fd_code_e = track_dopplar;CA_Code_e = CAcode(ph_code_e,fd_code_e,i);lc_e = CA_Code_e.*Signal;ph_code_l = offside-diffoffside;fd_code_l = track_dopplar;CA_Code_l = CAcode(ph_code_l,fd_code_l,i);lc_l = CA_Code_l.*Signal;Local_P_I = lc_p.*Carrier_I;Local_P_Q = lc_p.*Carrier_Q;Local_E_I = lc_e.*Carrier_I;Local_E_Q = lc_e.*Carrier_Q;Local_L_I = lc_l.*Carrier_I;Local_L_Q = lc_l.*Carrier_Q;IPSum = sum(Local_P_I);QPSum = sum(Local_P_Q);IESum = sum(Local_E_I);QESum = sum(Local_E_Q);ILSum = sum(Local_L_I);QLSum = sum(Local_L_Q);if Code_Method_flag==1%鉴相器theta_code = k0*((IESum.^2+QESum.^2)-(ILSum.^2+QLSum.^2));%码环路滤波器[CodeErr] = CodeloopFilter(codew,codeb,theta_code,theta_code_old,CodeErr_old); % CodeErr是经过滤波器输出的码相位误差的估计值%码环NCOoffside=offside_old+60*k1*CodeErr; %码NCO的输出theta_code_old = theta_code; %将当前结果保存,用于下一个循环的码跟踪CodeErr_old = CodeErr; %将当前结果保存,用于下一个循环的码跟踪offside_old = offside; %将当前结果保存,用于下一个循环的码跟踪Bk_DLL = [Bk_DLL theta_code]; %记录跟踪过程中的码环鉴想器的输出Track_Code_Buffer = [Track_Code_Buffer offside]; %记录跟踪过程中的码环NCO的数出elseif Code_Method_flag==2%鉴想器theta_code = ((IESum.^2+QESum.^2)-(ILSum.^2+QLSum.^2))/((IESum.^2+QESum.^2)+(ILSum .^2+QLSum.^2));theta_code=10.^(-3)*(1-sqrt(1-theta_code.^2))/(2*theta_code);%码环路滤波器[CodeErr] = CodeloopFilter(codew,codeb,theta_code,theta_code_old,CodeErr_old); % CodeErr是经过滤波器输出的码相位误差的估计值%码环NCOoffside=offside_old+500*CodeErr; %码NCO的输出theta_code_old = theta_code; %将当前结果保存,用于下一个循环的码跟踪CodeErr_old = CodeErr; %将当前结果保存,用于下一个循环的码跟踪offside_old = offside; %将当前结果保存,用于下一个循环的码跟踪Bk_DLL = [Bk_DLL theta_code]; %记录跟踪过程中的码环鉴想器的输出Track_Code_Buffer = [Track_Code_Buffer offside]; %记录跟踪过程中的码环NCO的数出endif Carrier_Method_flag == 1 % fll跟踪环路%鉴想器real_Q = IPSum_old*QPSum-QPSum_old*IPSum;real_I = IPSum_old*IPSum+QPSum_old*QPSum;a=real_Q/real_I;theta_fll = atan(real_Q/real_I);Bk_FLL = [Bk_FLL theta_fll];FLLinput = theta_fll/(2*pi*time_cyc);%环路滤波器FLLoutput = CarrierLoopFilter(carrierw,carrierfllb/2,FLLinput,FLLinput_old,FLLout put_old);%FLL环NCOSita_fll = Sita_fll+FLLoutput;track_freq_fll = -Sita_fll; %FLL环跟踪到的多普勒频率 (由于反正切主值区间造成的)FLLinput_old=FLLinput; %将当前结果保存,用于下一个循环的载波跟踪FLLoutput_old=FLLoutput; %将当前结果保存,用于下一个循环的载波跟踪IPSum_old = IPSum; %将当前结果保存,用于下一个循环的载波跟踪QPSum_old = QPSum; %将当前结果保存,用于下一个循环的载波跟踪elseif Carrier_Method_flag == 2 %costa跟踪环路theta_pll = atan(QPSum/IPSum);PLLinput = theta_pll/(2*pi*time_cyc);Bk_PLL = [Bk_PLL theta_pll];%LoopFilterPLLoutput=CarrierLoopFilter(carrierw,carrierpllb/2,PLLinput,PLLinput_old,PLLout put_old);track_freq_pll = -PLLoutput;PLLinput_old=PLLinput; %将当前结果保存,用于下一个循环的载波跟踪PLLoutput_old=PLLoutput; %将当前结果保存,用于下一个循环的载波跟踪elseif Carrier_Method_flag == 3 %fll跟踪环路->costa if dem_flag == 0real_Q = IPSum_old*QPSum-QPSum_old*IPSum;real_I = IPSum_old*IPSum+QPSum_old*QPSum;theta_fll = atan(real_Q/real_I);FLLinput = theta_fll/(2*pi*time_cyc);Bk_FLL = [Bk_FLL theta_fll];%LoopFilterFLLoutput = CarrierLoopFilter(carrierw,carrierfllb/2,FLLinput,FLLinput_old,FLLout put_old);;%NCOSita_fll = Sita_fll+FLLoutput;track_freq_fll = -Sita_fll;FLLinput_old=FLLinput; %将当前结果保存,用于下一个循环的载波跟踪FLLoutput_old=FLLoutput; %将当前结果保存,用于下一个循环的载波跟踪IPSum_old = IPSum; %将当前结果保存,用于下一个循环的载波跟踪QPSum_old = QPSum; %将当前结果保存,用于下一个循环的载波跟踪elseif dem_flag == 1theta_pll = atan(QPSum/IPSum);PLLinput = theta_pll/(2*pi*time_cyc);Bk_PLL = [Bk_PLL theta_pll];%LoopFilterPLLoutput = CarrierLoopFilter(carrierw,carrierpllb/2,PLLinput,PLLinput_old,PLLout put_old);track_freq_pll = -PLLoutput;PLLinput_old=PLLinput; %将当前结果保存,用于下一个循环的载波跟踪PLLoutput_old=PLLoutput; %将当前结果保存,用于下一个循环的载波跟踪endendadj_flag = track_dopplar - track_dopplar_old; %相邻两次跟踪到的多普勒频率值之差,用以判断是否FLL跟踪的频率已经足够精确,从而转入PLLtrack_dopplar_old = track_dopplar;adj_buffer = [adj_buffer adj_flag];outdata = sign(real(IPSum));ALL_Buffer_Data = [ALL_Buffer_Data outdata];if adj_flag < 1 %看相邻两次跟踪到的多普勒频率之差是否小于1Hz add = add+1;elseadd = 0;endif add >= 2 %看是否有连续两次跟踪到的多普勒频率之差小于1Hz,若有,则认为频率跟踪已很稳定而精确,可以转入PLLdem_flag = 1;endif dem_flag == 1count_time = i;count_buffer = [count_buffer count_time];Buffer_Data = [Buffer_Data outdata]endend%位同步与数据解调Buffer_Data_out = framecheck2(Buffer_Data,count_buffer); %位同步l_i_d = time/time_unit;l_o_d = length(Buffer_Data_out);l_zeros = l_i_d - l_o_d;Buffer_Data_out = [zeros(1,l_zeros) Buffer_Data_out];%计算跟踪精度Track_Code_Buffer;Track_Freq_Buffer;l_dll = length(Track_Code_Buffer);l_fll = length(Track_Freq_Buffer);diata_dll =sqrt(sum((Track_Code_Buffer(40:l_dll)-iniphcode).^2)/length(Track_Cod e_Buffer(40:l_dll))); %码跟踪环跟踪精度diata_fll = sqrt(sum((Track_Freq_Buffer(40:l_fll)-inifd).^2)/length(Track_Freq_Bu ffer(40:l_fll))); %载波跟踪环的跟踪精度%画图显示跟踪结果subplot(1,2,1);plot(Track_Code_Buffer);xlabel('时间(ms)');ylabel('码相位跟踪值');title('码跟踪结果');grid onsubplot(1,2,2);plot(Track_Freq_Buffer);xlabel('时间(ms)');ylabel('多普勒频率跟踪结果(Hz)')title('载波跟踪结果');grid onfigure;plot([1:length(buffer_bit_data)],buffer_bit_data,'b*',[1:length(B uffer_Data_out)],Buffer_Data_out,'ro');set(gca,'xtick',[1:1:5]);set(gca,'xticklabel',{'1','2','3','4','5'});set(gca,'ytick',[-1:1:1]);set(gca,'yticklabel',{'-1','0','1'});xlabel('数据位');ylabel('解调结果')title('数据解调输出结果');grid on5.2试验截图。

相关文档
最新文档