GPS跟踪环路MATLAB之——数字锁相环

news2024/9/21 1:47:39

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

GPS跟踪环路MATLAB之——数字锁相环

  • 前言
  • 为什么要锁相环
  • 科斯塔斯环
  • 锁相环的一些基本概念
    • 1、捕获、锁定与跟踪的概念
    • 2、捕获时间和稳态相差
    • 3、相位捕获和频率捕获
    • 4、捕获带和同步带
    • 5、最大频率阶跃范围
  • 鉴相器
  • 环路滤波器
  • matlab程序
  • 获取完整程序

前言

从事卫星导航基带处理的童鞋都知道,跟踪环路属于整个卫星导航信号处理中的精华之中的精华。接收机通过跟踪环在本地能够准确的复现接收到的信号的载波和伪码,是后续能够正确定位解算的关键步骤。整个跟踪环路将分成三小节,数字锁频环、数字锁相环和码环。其中数字锁频环和锁相环属于载波跟踪环。笔者所做的《从零开始研发GPS接收机》的工作中所使用的跟踪环路也将会在这里提到
《从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。

为什么要锁相环

导航信号在捕获成功之后,得到了粗略的多普勒频率值,加上中频IF,即可得到一个粗略的载波频率值。这个频率误差与真正的载波频率最高可能有一两百Hz的误差。如果捕获后频偏不大可直接使用锁相环,那么捕获需要更多资源提高精细度。如果捕获频偏有一两百Hz,最好还是先用锁频环牵引。但锁频环只能是频率的跟踪,无法进行相位的跟踪,如果不对相位进行跟踪,则无法得到正确的数据bit,无法进行接下来的位同步、帧同步、电文解算等流程。因此跟踪环最终还是需要锁相环才能同时准确的跟踪频率和相位。

科斯塔斯环

这里首先要介绍一下一个新的概念,科斯塔斯环。

科斯塔斯环是一种基于锁相环 (PLL) 的电路,用于从抑制载波调制信号(例如双边带抑制载波信号)和相位调制信号(例如 BPSK、QPSK)中恢复载波频率。它是由通用电气公司的 John P. Costas 在 1950 年代发明的。它的发明对现代数字通信产生了深远的影响。Costas 环的主要应用是无线接收器。与其他基于 PLL 的检测器相比,优势在于,在小偏差下,Costas 环路误差电压为在这里插入图片描述,相比于其他PLL检测器的在这里插入图片描述
,灵敏度翻倍,也使科斯塔斯环路特别适合跟踪多普勒频移载波。
在这里插入图片描述
基于科斯塔斯环结构的锁频环和锁相环的实现也比较类似,都是分成这几个部分
1、 鉴频器/鉴相器

2、 环路滤波器

3、 频率可变振荡器

锁相环的一些基本概念

1、捕获、锁定与跟踪的概念

(注意:这里的捕获、跟踪是相对于锁相环的捕获、跟踪)
捕获,是指从输入信号加到锁相环输入端开始开始,一直到环路达到锁定的全过程。
锁相环的锁定是指锁相环的输出频率等于输入频率,而输出信号的相位跟随输入信号的变化而变化。
跟踪是指锁相环锁定后的状态,一旦锁相环进入锁定状态,若输入信号产生了相位的变化,环路就调整压控振荡器的控制电压使得其输出信号的相位跟随输入信号的相位变化,即保持恒定的稳态相位差。这种状态称为跟踪或同步状态。

2、捕获时间和稳态相差

捕获时间是指捕获过程所需的时间。捕获时间的大小不仅与环路参数有关,而且与起始状态有关。
当环路进入同步状态之后,环内被控振荡器的振荡器频率已经等于输入信号的频率,两者之间只差一个固定的相位。这个相位差称为稳态相差。反过来说,若稳态相差为一个常数或等于0,则说明环路处于锁定状态。

3、相位捕获和频率捕获

“相位捕获”指在捕获过程中,相位没有经过2π的周期跳跃就能进入的锁定状态,即捕获过程小于一个2π周期的捕获过程称为相位捕获,又称快捕获。“频率捕获”指捕获经历一个以上的频率周期的捕获过程。即意味着环路的输入信号频率与输出信号频率在开始捕获前相差至少一个周期。一般来说,一个锁相环从捕获到锁定都要经历从频率捕获到相位捕获两个过程。
如下图的快捕范围就是快捕带,只有相位捕获,因此收敛较快,而除快捕范围的捕获带则首先要进行频率捕获,然后才是相位捕获。频率捕获相对来说是一个慢的过程,因此收敛较慢。

4、捕获带和同步带

捕获带是指保证环路必然进入锁定的最大固有频差值。换句话说,就是在保证环路不出现稳定的差拍状态所允许的最大固有频差值。
一旦环路进入锁定状态,系统就处于跟踪状态。随着输入信号的频率和相位的变化,环路应该始终能跟踪其变化,但一旦输入信号的频率与被控压控振荡器的自由振荡器频率相差太多,环路就会失去跟踪能力,这种状态称为“失锁”。
同步带是指系统保持同步的最大固有频差值

5、最大频率阶跃范围

描述PLL对于稳定工作状态的动态限制。环路初始处于锁定状态,当输入信号的频率发生阶跃变化的幅度在失锁带的范围之内,环路能够保持锁定。然而,当输入信号的频率发生阶跃变化的幅度超出失锁带的范围,环路不能保持锁定,输出信号无法跟踪输入参考信号。当然,通过缓慢的捕获过程,环路可再次入锁。
在这里插入图片描述
在跟踪环路中,如果有锁频环牵引,则可以快速进入快捕范围,实现稳定跟踪。

在跟踪环路正常运行过程中,一直处于快捕范围,此时频率和相位稳步的跟踪。如果突然有了频率的突变,且突变范围处于最大频率阶跃范围内,频率和相位跟踪不会丢失,也就是载波观测值不会出现跳周的情况。但突变范围进入了捕获范围,那么需要重新进入频率的捕获阶段,此时载波观测值的周期和相位将不再连续。

鉴相器

关于鉴相器介绍一下2种鉴相器:

鉴相器1:二象限反正切函数,在这里插入图片描述
优点:最准确的鉴相方法,实际相位差异位于-90°至+90°的范围之内时,该鉴相器的工作保持线性,并且其输出的鉴相结果与信号幅值无关。
缺点:需要进行反正切求值,因而它也是计算量最大的一种。
鉴相器2:
在这里插入图片描述
优点:计算量小, 适合纯逻辑实现

缺点:鉴相近似准确,鉴相结果与在这里插入图片描述正比,并且与信号幅值有关
优点:计算量小, 适合纯逻辑实现

缺点:鉴相近似准确,鉴相结果与图片成正比,并且与信号幅值有关

环路滤波器

二阶环路滤波器的结构如下图:
在这里插入图片描述
在这里插入图片描述

matlab程序

假设捕获之后初始的频率相差30Hz,在1s的时候频率突变10Hz,在2s的时候突变30Hz,在3s的时候突变100Hz,来理解快捕范围,频率阶跃、捕获带等这些概念。为了显示更加清楚,这里就不加码元信息了。
从频率跟踪图可以明显的看出。在一开始的时候相差30Hz,是处于捕获带,逐步调整频率,进入快捕带后就收敛很快,锁定了信号。在1s的时候,频率突变10Hz,环路仍然保持锁定,很快便调整到了正确的频率,因此10Hz属于最大阶跃范围内,2s的时候,频率突变30Hz,很明显的频率出现了震荡,这就是失锁了,但仍处于捕获带内,因此花了一点时间又重新锁定到正确的频率上,最后,频率突变100Hz,则直接跳出了捕获带之外,无法重新锁定了。

format long g;

clc;clear all;close all
SampleClk = 4.1e6;  
PointNum = SampleClk*5;
IF      = 1e6- 30 ;
Carr_cos(1:SampleClk) = cos(2*pi*(IF/SampleClk).*[1:SampleClk] + 0);
Carr_sin(1:SampleClk) = sin(2*pi*(IF/SampleClk).*[1:SampleClk] + 0); 
IF = IF + 10;
Carr_cos(1+SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[SampleClk+1:PointNum] + 0);
Carr_sin(1+SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[SampleClk+1:PointNum] + 0); 
IF = IF + 30;
Carr_cos(1+2*SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[2*SampleClk+1:PointNum] + 0);
Carr_sin(1+2*SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[2*SampleClk+1:PointNum] + 0); 
IF = IF + 100;
Carr_cos(1+3*SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[3*SampleClk+1:PointNum] + 0);
Carr_sin(1+3*SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[3*SampleClk+1:PointNum] + 0); 

%以下为付费程序

在这里插入图片描述
这是对应的IQ幅度图,可见在没有锁定的时候,I/Q不停的翻转,只有处于锁定状态,IQ幅值则稳定,有频率跳跃但处于最大跃阶范围时,IQ幅值很快就能恢复,当锁相环无法锁定时,IQ将永远翻转下去。
在这里插入图片描述
这是鉴相值图,但锁相环锁定时,鉴相值趋近于0。
在这里插入图片描述

获取完整程序

见公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《计算机组成原理》(第3版)第5章 输入输出系统 复习笔记

第5章 输入输出系统 一、概述 (一)输入输出系统的发展概况 1.早期阶段 早期的I/O设备种类较少,I/O设备与主存交换信息都必须通过CPU,如图5-1所示。 图5-1 I/O设备通过CPU与主存交换信息 2.接口模块和DMA…

JavaScript模拟空调效果

JavaScript模拟空调效果https://www.bootstrapmb.com/item/15074 在JavaScript中模拟空调效果主要依赖于前端界面的交互和状态变化,因为实际的温度调节、风扇速度调整等硬件操作无法直接通过JavaScript在浏览器中实现。不过,我们可以通过JavaScript来模…

yaml详解实战,读取实战,以及运行结果解析,以及单引号和双引号对转义符读取的影响

一、 YAML:数据格式 文章:《yaml基本语法,数据类型,对象,数组,复合结构,纯量,引用;文件后缀为.yml或.yaml》 里有一些介绍,以及我自己的理解。 这篇文章偏实战…

nvm介绍、下载、安装、配置及使用

一、背景 在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就…

Linux C 程序 【04】线程分离

1.开发背景 Linux 线程区分于FreeRTOS,线程的属性形态有2中,在 pthread.h 中有注解,如下。 /* Detach state. */ enum {PTHREAD_CREATE_JOINABLE, #define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLEPTHREAD_CREATE_DETACHED #defin…

72v-85v输出12v/13.5v电流6A用在电自上AH1009

135-3806-7573.在探讨“72V-85V输出12V/13.5V电流6A用在电动自行车(电自上)AH1009”这一主题时,我们深入到一个结合了电力电子技术、电池管理系统以及电动自行车性能优化的专业领域。。 *****芯片概述: AH1009是一款宽电压范围、…

数据中心服务器监控系统搭建方案

数据中心监控系统搭建方案 1、背景2、环境3、部署3.1、终端部署3.1.1、服务器配置3.1.1.1、浪潮服务器3.1.1.2、曙光服务器 3.2、服务端部署3.2.1、在线环境下载3.2.2、离线环境安装3.2.3、系统配置 1、背景 服务部署与三个网络环境中,其中某个网位于线下机房&…

Leetcode面试经典150题-2.两数相加

2. 两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不…

重塑视觉界限:探索InstantID,超越ReActor的下一代换脸技术!

马斯克与郭德纲,一位是相声界的顶流,一位是科技界的大咖。 想象一下,他们的形象融合,会是什么样? 最新推出的开源项目 —— InstantID 让这种“跨界融合”成为可能。 来瞧瞧,“马德纲”有惊艳到你吗&…

回归预测|基于麻雀优化深度神经网络的数据回归预测Matlab程序SSA-DNN 多特征输入单输出 含基础深度神经网络DNN

回归预测|基于麻雀优化深度神经网络的数据回归预测Matlab程序SSA-DNN 多特征输入单输出 含基础深度神经网络DNN 文章目录 前言回归预测|基于麻雀优化深度神经网络的数据回归预测Matlab程序SSA-DNN 多特征输入单输出 含基础深度神经网络DNN 一、SSA-DNN模型1. 麻雀优化算法&…

想发SCI,先写论文还是先选刊?手把手带你分析如何提高发表成功率!

点击关注:关注GZH【欧亚科睿学术】,GET完整版2023JCR分区列表! 发SCI是先写论文还是先选刊 发SCI论文时,通常建议先选择合适的期刊再开始写论文。 先选刊的策略意味着你在撰写论文之前,先确定一个或多个可能投稿的期…

2021-11-08 51单片机2位秒表启动清零

缘由c51单片机,程序,仿真图,求帮助-编程语言-CSDN问答 #include "REG52.h"sbit K1 P1^0; sbit K2 P1^1; sbit K3 P1^2; sbit K4 P1^3; sbit P1_0P2^0; sbit P1_1P2^1; sbit P1_2P2^2; sbit P1_3P2^3; sbit P1_4P2^4; sbit P1_…

C++八股文(一)

🏳‍🌈C基础 🌱1.C特点 1. C 在 C 语言基础上引入了 面对对象 的机制,同时也 兼容 C 语言 。 2. C 有三大特性 ( 1 )封装。( 2 )继承。( 3 )多态&#xff…

网站模板建站和定制网站哪个更适合中小企业?

通俗来说,网站建设有模板建设、定制建站两个门类。在聊聊网站建设多少钱之前,我们可以先来简单分析一下模板建站和定制建站的优缺点在哪。 一、模板建站 优势:1.极大看重性价比,价格优势会较高。 劣势:1.因是在已有的模…

Datawhale AI夏令营--从零入门多模态大模型数据合成Task1

从零入门多模态大模型数据合成 报名赛事注意事项 创建实例跑baseline(预计时间300分钟)改用无卡模式开机创建非指定镜像 下载赛事所需文件包下载模型,数据集以及依赖软件下载模型和相关数据集下载BLIP图片描述模型 数据处理与合成推理和评测打包输出运行结果提交结果 报名赛事 …

Open3D 计算点云的协方差矩阵(原理详细版)

目录 一、概述 1.1协方差矩阵的定义 1.2实现步骤 1.3应用 二、代码实现 1.1实现代码 2.2协方差应用案例 2.2.1主成分分析法的应用 2.2.2平面拟合 三、疑问解答 3.1为什么计算协方差矩阵要去质心? 3.1.1原因 3.1.2区别 Open3D点云算法汇总及实战案例汇总…

WordPress建站之头像及字体错误修正

目录 一、谷歌字体 二、头像网址 三、后续使用中的“坑” 网站建设好以后,会发现有些卡顿,网速好的环境感觉不明写,但是差的环境就难以忍受了。这是打开网页的控制台(Console)会发现有报错信息: 这些报错…

数组---怎么样定义和引用数组

一怎么定义数组 例 int a[10]; //定义了一个一维数组,数组名为a,此数组包含10个整型元素 所以我们了解到数组的基本定义为 类型符 数组名 [常量表达式] 定义数组可以包括常量和符号常量如 int [ 35 ];但是不能利用变量定义如 int n; …

数据结构(6_1_1)——图的基本概念

图的定义 图G由顶点集V和边集E组成,记为G(V,E),其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。若V{v1,v2,.....,vn},则用|V|表示图G中顶点的个数,也称图G的阶, ,用|E|表示图G中的边的条数 注意&…

【产品那些事】The OX Active ASPM Platform

文章目录 前言关于OX Security产品理念 流程体验Complete Visibility:将安全无缝嵌入到SDLC中PBOMOSC&R coverageContextualized Prioritization:快速解决最关键的风险Accelerated Response:简化安全流程See Beyond the Code:…