matlab版开源GNSS_SDR-masterGPS软件接收机代码解读

本文详细解读基于matlab的GNSS_SDR-master项目,涵盖GPS软件接收机的捕获、跟踪和定位三个关键步骤。通过并行码相位搜索捕获算法实现卫星信号捕获,二阶环路滤波进行载波和码跟踪,最后利用最小二乘法进行伪距定位解算。适合GPS接收机初学者和课程项目参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关代码解读好像并不多,这是另一个博主的,内容比较详细。https://blog.youkuaiyun.com/weixin_43179259/article/details/116794856

本文仅介绍依据谢钢《GPS原理与接收机设计》对代码进行理解的关键内容,其中涉及的基本原理还是建议阅读书籍原文。

整套代码为单频GPS伪距中频数据处理,由中频卫星数据得到定位结果,属于软件接收机入门的基础,适合初学者学习,或者是用于借鉴完成一些课堂作业。

中频数据处理的总体流程划分为捕获、跟踪和定位,下文将分三个小节进行讲解。

目录

1.捕获

2.跟踪

3.定位


1.捕获

        捕获对应代码中的acquisition.m函数;实现的功能是:粗略地估计可见卫星的载波频率和码相位,帮助接收机初始化跟踪环路;基本原理是:不同卫星信号基于码分多址设计,对应不同的伪随机序列/扩频码。将中频信号与本地生成的一定频率的载波和一定相位的C/A码(GPS系统的伪随机序列)的复制信号进行相关运算,遍历搜索可能的载波频率和C/A码相位,当本地生成的载波频率和C/A码相位与中频信号中的一致时,相关运算结果取到最大值,据此可以判断该卫星被捕获。

        程序中采用的捕获策略是:并行码相位搜索捕获算法,原理如图 1,对应谢钢书P373。捕获需要遍历所有卫星、所有载波频率、所有C/A码相位,需要三重循环,这里利用并行码相位捕获,可以减少码相位的这重循环。数字中频信号分别与同频率的正弦和余弦载波混频,混频结果组成一个复数进行傅里叶变换,同时与C/A码傅里叶变换后复数共轭的结果相乘,最后进行傅里叶逆变换和取模,输出的取模结果表示在当前卫星号的C/A码和当前频率下对所有码相位的捕获结果。

 图 1 并行码相位搜索捕获算法

 程序中具体的并行码相位搜索捕获算法的伪代码实现如下:

For循环遍历每一颗GPS卫星

       {

       对当前卫星生成C/A码、进行FFT、取复数共轭

       For循环遍历所有待捕获频率

              {

               对当前频率生成1ms时长的sin、cos序列与1ms时长的中频信号序列相乘

              组合成复数序列进行FFT

              两个FFT序列相乘

              IFFT

              存储当前频率遍历所有码相位的捕获结果

              &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值