当前位置: 首页 > news >正文

GPS L1信号捕获跟踪MATLAB仿真(终极版)

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

GPS L1信号捕获跟踪MATLAB仿真(终极版)

  • 前言
  • 内容
  • matlab程序
  • 获取完整程序


前言

本节将介绍捕获跟踪MATLAB仿真完整版。
里面用到的捕获方法为短时相关+FFT捕获;
跟踪环路为锁频+锁相+码环;
该实现直接采用笔者《从零开始研发GPS接收机》系列中近期FPGA实现的参数,保持与FPGA设计的一致性。
例如中频:3.992e6,采样率:16.369MHz
MATLAB仿真中的的跟踪环中环路参数和环路结果、相关时间均与硬件实现保持一致。
《从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。。

内容

除了捕获算法 和跟踪算法外,该MATLAB还包含一些其他内容。
例如捕获门限的计算以及判定捕获成功
在这里插入图片描述
捕获结果如何设置跟踪的初始参数
等一些控制内容。该MATLB还可以用于验证一些跟踪环的理论知识。
接下来我们验证一下跟踪环对于频率阶跃激励(匀速运动)、频率斜升激励(加速度运动)、以及频率有加速度的频率斜变(加加速度)下的跟踪状态
1、信源包含20ms电文,初始多普勒频率为1000Hz,后续保持不变。这是一个频率阶跃激励。
相关值比较正常:
在这里插入图片描述
频率多普勒处于跟踪状态,如下图:
在这里插入图片描述
相对于载波多普勒的码多普勒为1000/1540,不到1Hz。
在这里插入图片描述
鉴相值位于0处,且比较稳定:
在这里插入图片描述
这个现象与谢钢的《GPS原理与接收机设计》书中P276中描述的 ”在频率阶跃激励下,二阶环路可以准确无误的跟踪频率阶跃信号“相吻合。

2、信源包含20ms电文,初始多普勒频率为1000Hz,包含一个斜升信号,该斜升信号1秒钟增加50Hz的多普勒。仿真8秒钟
相关值似乎没有受到斜升信号的影响:
在这里插入图片描述
频率多普勒处于跟踪状态,如下图。
在这里插入图片描述
码多普勒随着频率多普勒变化而变化。
在这里插入图片描述
但是载波鉴相值出现了偏差,位于0.5处,但并没有失锁,仍然稳定跟踪。
在这里插入图片描述
二阶环路虽然仍能跟踪信号,但它会产生一个恒定的相位跟踪误差“相吻合。想准确无误的跟踪需要三阶环,使用三阶环跟踪没有固定的相位误差。
在这里插入图片描述
3、信源包含20ms电文,初始多普勒频率为1000Hz,包含一个斜升信号以及频率存在加速度变化的信号
相关值随着锁相环失锁而恶化,最后相关值逐渐归为0
在这里插入图片描述
载波多普勒在跟踪了一段时间开始体力不支,跟不上频率变化的脚步。
在这里插入图片描述
码多普勒随着载波环失锁,也唇亡齿寒。
在这里插入图片描述
鉴相值随着误差的累积最后开始彻底摆烂。
在这里插入图片描述
二阶环已经完全不能适用于这类高动态的信号,只能使用三阶环了。使用三阶载波环后:
在这里插入图片描述
有这种运动姿态的东西,估计可能是马斯克的星舰了吧。希望马斯克下次发射星舰的时候告诉我一声能把我这个接收机带上测试一把。

matlab程序

程序中不包含三阶环路,二阶环绝大部分场景足矣。


% 作者:FPGA十年老鸟
% 不包含三阶环路
close all;clear all;clc;%% 信号源生成部分
SampleClk = 16.369e6;  
SimTime   = 8;                 %仿真时长8s
PointNum = SampleClk*SimTime;  %仿真点数
PRNNUM = 1;                    %卫星PRN号IF = 3.996e6;                  %中频
Doppler(1:PointNum) = 1000;   %频率阶跃%以下为付费程序

获取完整程序

见公众号

至此,整个捕获跟踪的仿真大部分内容基本阐述完毕。相信购买了笔者仿真程序的读者,对于整个捕获跟踪的如何具体运作的理解以坐缆车的速度至少跨越了N个山峰,特别是对于初学者节省时间可以以年来计算,毕竟自己折腾总是一个耗时耗力而且不一定能出结果的。但即便只是浏览仿真文章的读者,也能从文章信息中得到很多信息量和感悟,从原来比较枯燥的理论书籍到现在能看到实际仿真的图片,相信应该也能受益良多


http://www.mrgr.cn/news/72327.html

相关文章:

  • 软件测试必学的16个高频数据库操作及命令
  • CSS3 用户界面
  • 【Git】Git Clone 指定自定义文件夹名称:详尽指南
  • LeetCode100之相交链表(160)--Java
  • 【NLP优化】Ubuntu 20.04 下 源码安装 CasADi + Ipopt / acados
  • arcgis做buffer
  • ubuntu20.04_从零LOD-3DGS的复现
  • 服务器数据恢复——Ext4文件系统使用fsck后mount不上的数据恢复案例
  • netmap.js:基于浏览器的网络发现工具
  • PET-文件包含-FINISHED
  • ManageOne_SC里业务员账号user01发布ECS
  • LeetCode【0024】两两交换链表中的节点
  • (11)(2.1.7) FETtec OneWire ESCs(二)
  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行串扰分析操作指导-trace耦合
  • 遗传算法与深度学习实战(23)——利用遗传算法优化深度学习模型
  • Mysql详细知识点(建议收藏)
  • JUC-locks锁
  • Java基础-组件及事件处理(上)
  • AIDL HAL简介
  • Ajax 与 Vue 框架应用点——随笔谈
  • UI自动化测试|XPath元素定位实践
  • 开闭原则(OCP)在SpringBoot系统中的应用
  • 【求阶乘——二分+阶乘的质因数分解】
  • 大数据分析案例-基于XGBoost算法构建电子商务交易欺诈预测模型
  • Servlet的使用
  • 创建逻辑卷报错:Device /dev/sdb excluded by a filter