GNSS接收机设计:(1)基本原理:捕获&跟踪

您所在的位置:网站首页 开茧机原理 GNSS接收机设计:(1)基本原理:捕获&跟踪

GNSS接收机设计:(1)基本原理:捕获&跟踪

2024-07-16 03:51| 来源: 网络整理| 查看: 265

本文转自我的公众号。仅用作个人学习过程的梳理,不保证文中内容具有100%的正确性!

对于GNSS接收机,主要是由射频前端、DSP模块和信息处理三大部分组成。

其中,射频前端的作用是:将接收到的射频信号(RF)下变频,变成中频信号(IF),再进行A/D转换,用于后续的信号处理。注意这里的IF已经是数字信号的形式了。【变不到基带信号是因为,虽然理论上卫星载波频率是已知的,但由于卫星和接受设备的相对运动产生多普勒频移,导致载波在传输过程中会发生频率的偏移,所以无法准确地复制本地载波进行解调】而信息处理模块则是在DSP提取出导航数据信息的基础上,对其进行应用层面的加工和处理。

本系列主要聚焦于第二部分,即接收机中DSP模块的原理和代码实现。

首先我们需要明确,接收机收到的信号包括载波、伪码(多为民用C/A码)和导航电文三大部分。载波的作用是BPSK调制,将频谱搬移到适合传输的频带;伪码的作用,一是通过CDMA(码分多址)实现信号扩频,二是用作不同卫星的“ID”,对它们进行区别。

其次,第二模块DSP的作用就在于:1.获取伪距(由码相位得到)、载波相位等测量值;2.将导航电文数据从接收信号中提取出来。因此在下面的所有操作中,我们的目的就是复制尽可能准确的载波和伪码信息——具体来说就是载波多普勒频移和码相位——通过混频剥离载波(包括多普勒频移在内)、通过相关剥离伪码,得到经由BPSK调制的数据码。

而因为每一颗可见卫星的参量都各不相同,所以接收机内部采用通道结构,在不同通道上分别处理不同的卫星信号。

处理过程包括捕获和跟踪两大操作,至于后面的位同步、帧同步,则不在本次的学习范围之中。下面我们聚焦于接收机的某一个具体通道,详细论述二者的操作原理。  

一、捕获

捕获其实就是一个粗略估计参量的操作,它可以理解成一个卫星-载波-伪码的三维搜索过程。大体上讲就是在本地复制一个信号,不断变化这个副本,并与接收到的信号作比较,直到满足相似度要求为止。而副本信号变化的依据是捕获算法,也就是它有自己的一套内在规律,譬如我们设定一个“+1律”,那么信号频率就会从0开始,每次增加1Hz,直至相关器的输出功率超过捕获门限,退出循环。

上图是三维搜索的示意图,首先找出所有可见的卫星,并将它们按照可见概率排列,然后再从频率和码相位两方面搜索,频率的搜索步长称为频带宽度,码相位的搜索步长称为码带宽度。

捕获的算法有很多,在这里我们主要采用并行码相位搜索算法。它的主要工具是傅里叶变换(FFT),由此可以对所有的伪码一次搜索完,只需要再依次搜索频带即可,也即是把频×码的二位搜索降维成频率的一维搜索,简化了捕获计算。

具体流程如上图。可以看出在此算法过程中没有了相关器,而是用FFT/IFFT替代。【FFT是离散的傅里叶变换!!】

NCO为数控振荡器,负责产生正余弦的载波信号。将数字中频信号IF分别与二者进行混频,实现载波频谱的搬移——这里未必可以成功剥离载波,因为本地发生器产生的信号和实际的卫星载波并不一定一致,这也是捕获过程所要解决的问题——然后对结果进行FFT操作。

由本地发生器产生C/A码,也进行FFT,并取共轭。

将两者相乘,再进行IFFT,得到的输出即是混频后结果与本地C/A码在各个码相位处的相关值。

记得吗,FFT家族是离散信号的傅里叶变换,所以这里反变换输出的也是一个离散的序列,也就是一个个数值,这些数值中有一个max,代表这个频率上相关值最大的码相位,将它与阈值作比较,若超过,则说明此频率也已经满足条件,这样就捕获到了这颗卫星的频率和码相位;若未超过,则说明频率不对,要再从头开始让NCO产生下一个频率的载波信号,重复上述操作。

来一个类比方便理解:开学典礼上各学院新生均坐成20×10方阵,现在要找出电子信息学院中个子最高的人(已知身高>190cm可以认为是最高),于是我们先让第一排全体起立,可以一眼发现这一排个子最高的是女生1,但她不到190,于是继续观察第二排……直到第十六排,个子最高的女生2>190,于是我们成功找到了她。

这个例子中,每一排代表一个固定频率,每一列代表一个固定码相位。如果我们让每一个人单独起立测身高,需要测200次,现在则只需要20次,大成功!

电子信息学院=一颗可见的卫星;

让第一排起立=计算频率1上各个码相位的相关值;

发现女生1=找出相关值中的max;

最终找到女生2=获得了大于阈值的max值,对应的载波和码相位就是我们要找的目标。

二、跟踪

跟踪的逻辑与捕获类似,最大不同在于:跟踪相当于是一个反馈系统,此时信号的变化不再依据我们设定好的内在逻辑(也就是每次+1Hz的循环失效了),而是由反馈量——复制信号和真实信号的差异值所决定,多了就减一点,少了就加一点。至于前面捕获的结果,我想是作为一开始载波和码NCO产生的初始复制信号了吧。

跟踪也是从频率和码相位两部分出发,所以需要载波环和码环共同完成,其中载波环又可分为锁相环和锁频环两大类,二者选一即可。而在此系列文章中,我们选择的均是锁相环PLL.

1.载波环(PLL)

如上图所示,在原理部分我们以模拟锁相环为例进行说明。

鉴相器实际上就是一个乘法器,假设PLL工作在锁定状态,那么输入和输出的角频率近似相等,因此对于sin×cos,利用积化和差公式展开,就得到一个二倍的高频信号和一个直流信号。由于初相位差近似为零,再根据等价无穷小代换,则鉴相器输出ud的直流部分近似与相位差成正比。

环路滤波器一般是LPF,滤除了ud中的高频,只留下直流信号uf。

uf继续输入VCO,控制输出信号uo的频率,再反馈回输入端,完成一个完整的反馈回路。

从一篇CSDN文章中看到了很形象的锁相环原理解释,复述如下:

对于三角函数来说,它实际上是描述一个点在单位圆上的运动,其中,初相位对应的是点的起始位置,相位对应的是点的当前位置,而角频率则对应点的运动速度,那么锁相环的目标可以粗略理解为:有一个运动的参考点A,我们要想办法让本地点B和A同步运动,从而完成对A的跟踪。【锁定的是相位】为了达到这个目标,需要让B根据情况调整自己的运动速度(即角频率),太快就慢一点,太慢就快一点。

在这里我们只讨论原理,至于PLL具体的系统函数就不再给出。

由前置知识我们知道,双线性变换法是将模拟系统转化为数字系统的桥梁,而常用的PLL是二阶的,因此经过种种计算,可得到二阶数字锁相环的传递函数,这就为后面的MATLAB实现奠定了基础。

不过PLL还不是载波环的全部,实际上它的整体电路如下图:

其中VCO数字化成为NCO,而P支路复制的C/A码则是由下面要介绍的码环所提供。

2.码环(延迟锁定环路DLL)

复制的C/A信号有超前(E)、即时(P)、滞后(L)三种,码环一般只需要E、L即可,而载波环则必须要利用P路信号。具体实现原理放在下面的整体环路中描述

3.整体环路

将载波环和码环合并得到整体跟踪环路。流程论述如下:

载波NCO的输入=载波NCO偏移量+载波环电路的输出,它输出的阶梯信号通过函数表查询,得到数字载波信号,接着与中频IF进行混频,剥离载波。

码NCO的输入=码NCO偏移量+码环电路的输出,它的输出是时钟信号,直接控制CA码发生器产生超前码E,再经过移位寄存器得到P和L,将这三路信号与载波剥离后的信号输入相关器,得到i和q,经过积分-清除器(用途:低通滤波),生成相干积分结果I和Q,分别有3个支路。

将其中的E、L支路送入码环鉴别器,通过:计算自相关幅值-->积分-清除器(非相干积分求平均)-->前减后幅值法鉴相,得到鉴相器输出结果,再通过码环滤波器,成为最终的码环电路输出,和偏移量一起输入NCO,完成码的反馈回路。

将其中的P支路送入载波环鉴别器-->载波环滤波器,成为最终的载波环电路输出,和偏移量一起输入NCO,完成载波的反馈回路。

Tips.跟踪原理上的一些细节:

相关器后面的六个积分-清除器内部采用相干积分的方法,在作用上大致等同于一个低通滤波器。相干积分结果是序列,即I(n)、Q(n)【硬件实现】码环鉴别器中的两个积分-清除器则是非相干积分,1、2结合即:相干积分的结果计算出自相关幅值(\sqrt{I^2+Q^2}),再对N个自相关幅值做非相干积分(可以粗略理解为求平均值)【软件实现】,实现相加累积,得到的结果E、P、L,用于后面的码相位鉴别。载波NCO偏移量:可理解为一个预设值,当环路滤波器输出为0时,这个偏移量正好使得载波NCO输出信号落在中频;同理,码NCO偏移量正好使得码NCO输出频率=CA码的标称码率1.023MHz。CA码发生器复制出的是超前码,经过移位寄存器后得到即时、滞后码。根据自相关函数的对称性,若即时码和接收到的CA码相位一致,那么E、L码的自相关幅值也就相等,反之就可以利用E、L的幅值差异计算出此时即时码和接收码之间的相位差,由它作为输入量控制码NCO,完成反馈。

————————

参考文献

GPS原理与接收机设计.谢钢 著.

https://blog.csdn.net/DBLLLLLLLL/article/details/84395583?spm=1001.2014.3001.5502



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3