零基础入门导航系列一之书籍学习《A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach》书籍学习(2)

内容分享2天前发布
0 0 0

零基础入门导航系列一之书籍学习《A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach》书籍学习(2)

文章目录

零基础入门导航系列一之书籍学习《A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach》书籍学习(2)序言 (Preface)第一章 信号与系统 (Signals and Systems)第二章 GPS信号 (GPS Signals)码跟踪原理
MATLAB代码结构代码整体流程setting文件结构捕获函数跟踪函数`postNavigation`函数
GNSS信号仿真信号参数设置Simulink设置
**参考文献**

本博客仅摘编、翻译和学习部分重点内容,不是原文的1:1翻译
带括号的小号字体部分为作者的个人理解。
内容顺序不完全遵照原书,持续更新。


零基础入门导航系列一之书籍学习《A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach》书籍学习(2)

序言 (Preface)

软件定义接收机(SDR)技术已发展十余年。Dennis Akos(Stanford SCPNT)在1997年实现了第一个完整的GPS软件接收机。此后,众多研究团队持续贡献,SDR逐渐成为接收机行业的技术热点。
SDR的核心目标是构建灵活、开放式架构的接收机,使各模块参数可动态配置,便于算法开发和新技术集成。
SDR架构采用宽带A/D转换器,捕获所有信道信号,通过通用处理器上的软件完成下变频和解调。这样,信号采集点靠近天线,数据通过数字信号处理获得定位结果。
SDR是算法开发和设备集成的理想平台

本书选择MATLAB作为开发语言,因其在技术院校中广泛应用,易学且便于图形展示。
本书主要内容包括:

GNSS软件无线电总体架构介绍基于MATLAB和示例数据集的完整GPS软件接收机实现可动态调整参数并实时观察效果可选USB GNSS前端硬件,实现与MATLAB联动采集(具体订购和使用说明见配套DVD)

本书聚焦单频(L1)C/A码GPS接收机实现,原因包括:

架构简洁易懂通过轨道、时钟和电离层校正,以及SBAS(如EGNOS/WAAS),L1精度可媲美双频接收机未来宽带GNSS信号和欧盟Galileo系统将在L1波段提供更多性能提升Galileo采用BOC调制,读者可提前了解新信号类型
书中还讲解了前端模块设计,如何将天线信号分离成各个卫星信道进行独立跟踪。


第一章 信号与系统 (Signals and Systems)

本章介绍线性时不变系统等基础理论,为后续GNSS信号处理做支撑。内容基础,略去不赘述。


第二章 GPS信号 (GPS Signals)

GPS信号在UHF频段(500 MHz – 3 GHz)上的L1和L2频率发射,均由基准频率

f

0

=

10.23
  

MHz

f_0 = 10.23; ext{MHz}

f0​=10.23MHz 派生。

零基础入门导航系列一之书籍学习《A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach》书籍学习(2)
*用C/A码和导航数据对L1载波进行BPSK调制,图中为PRN 1的Gold码前25个码片。* *用C/A码和导航数据对L1载波进行BPSK调制,图中为PRN 1的Gold码前25个码片。*

码跟踪原理

GPS接收关键问题之一是码跟踪,常用**早-晚锁相环(DLL)**实现。相关器结构通过设置不同时间偏移,分别获取早信号和晚信号,组合误差信号驱动环路调整,消除跟踪误差。(详见第7章)


MATLAB代码结构

代码整体流程

数据读取与采集:首先读取数据文件的短段(数毫秒),传递给采集模块,检测GPS信号、估算频率及码相位,结果存储于
acqResults
结构。通道初始化
preRun
函数根据采集结果初始化信号通道,禁用未分配卫星的通道,清理历史数据,为新运行做准备。信号跟踪:按块读取信号样本,传递给跟踪模块,完成信号跟踪、位边界检测、导航数据解码,星历信息存于
eph
结构,跟踪结果存于
trackResults
结构,可指定跟踪时长。导航解算
postNavigation
函数处理跟踪结果,识别子帧、定位传输时间、估算伪距,并计算接收机的ECEF坐标(地心地固坐标系),最终可转换为UTM或WGS-84坐标,并绘制结果。

setting文件结构

所有模块参数统一存储在settings结构中,实现集中管理和灵活调用。例如:

GPS中频:
IFfrequency
采样频率:
samplingFrequency
处理时长:
msToProcess
(如设为37,000ms,覆盖所有6s子帧)跟踪块大小:
processBlockSize
通道数量:
numberOfChannels

通过
initSettings
函数初始化或更新设置参数,确保依赖关系正确。

捕获函数

采用并行码相位搜索捕获算法,快速检测所有可用卫星信号参数。采集函数以0.5kHz频率步进,在多普勒空间内依次搜索,每步执行并行码搜索,保存相关结果,再查找最大相关值和次高峰值,计算峰值比率作为信号检测依据。
若峰值比足够高,通过后相关FFT方法进一步精细估算载波频率,为PLL环路跟踪做准备。
可指定搜索卫星PRN范围,结果存于
acqResults
结构。

跟踪函数

跟踪函数对每个通道分配GPS信号,处理信号块,返回
trackResults
(跟踪结果)和更新的通道结构。包含当前载波频率、码相位、PRN号、环路滤波器状态等信息,实现信号块连续处理。

trackResults
包含每毫秒的信号属性和六个校正器、环路校正器输出,供后续导航解算及结果分析。可执行
plotTracking
命令绘制指定通道结果。


postNavigation
函数

该函数识别比特转换及起始位置,获取并解码星历信息(主用子帧1~3,可扩展至4、5),随后调用伪距测量和位置计算功能,输出伪距和接收机坐标。


GNSS信号仿真

信号参数设置

开发GPS接收机算法时,使用真实采样数据不便于特性控制,宜采用模拟信号数据
理想的L1 GPS信号模拟器需包含:

中频
Intermediate Frequency
采样率
Sampling Frequency
可为每颗卫星定义PRN、多普勒频移、码相位P(Y)码和导航数据可简化为-1/1数字信号,速率分别为10.23MHz和50Hz

若需真实导航数据序列,模拟器应支持自定义输入。

Simulink设置

采用MATLAB Simulink开发GPS信号模拟器,界面直观,功能丰富,并可与M文件无缝集成。
Simulink实现为两级设计

上层:初始化各卫星信号参数,配置保存数据文件下层:实现各卫星信号生成,包括C/A码、导航数据、P(Y)码、噪声等成分

仿真器可配置多个卫星(如图B.4),每颗卫星可设定不同PRN、码相位、多普勒频移等参数,便于算法测试与验证。

零基础入门导航系列一之书籍学习《A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach》书籍学习(2)


参考文献

[1] A Software-Defined GPS and Galileo Receiver[M]. Boston, MA:
Birkhäuser, 2007.

© 版权声明

相关文章

暂无评论

none
暂无评论...