开源夏令营《基于HackRF开发GPS信号仿真模拟器》开题报告

基于HackRF开发GPS信号仿真模拟器

1. 研究意义

随着GPS卫星导航定位系统在现在社会得到越来越广泛的应用,一个能够定量评估、可以模拟不同环境、并具有足够精度的卫星信号仿真模拟器为GPS终端设备提供仿真测试环境具有了十分重大的意义。一台性能良好的GPS信号仿真模拟器可以充分模拟载体运动过程中接收机遇到的各种复杂场景——可以模拟载体的位置、速度、加速度以及姿态等信息,可以模拟多颗卫星的真实运行情况,可以根据接收机与卫星之间距离的远近、相对速度的大小以及空间电离层、对流层的状态,来模拟多颗卫星信号到达接收机时强度、相位等信息,可以模拟卫星信号到达接收机前所经历的多径现象。GPS信号仿真模拟器因其具有的可控性、可重复性以及灵活性等特点,为GPS系统级仿真实验提供尽量接近于真实的仿真测试环境,从而为接收机的性能测试、研制开发带来了极大的便利。 
GPS信号模拟器的开发涉及数据层面和信号层面。其中数据层面负责计算GPS系统运行过程中的扩频码相位、载波相位、电文数据以及电离层延迟、对流层延迟、多普勒效应等数据,信号层面则依据数据产生扩频码序列、生成特定频率的载波、控制各信号产生的时序等。只有软硬件相互协作,才能很好的完成全部功能。 
HackRF是一款SDR平台设备,能够覆盖30MHz-6GHz频段的信号,带宽为20MHz。采用8位 ADC/DAC,采样率为20MHz,与主机通信采用USB 2.0,最高数据传输速度不超过35MHz。相比起比较成熟的USRP,HackRF虽然起步比较晚,但同样支持GNURadio,拥有良好的社区文化和越来越多的无线电爱好者。更为重要的是HackRF是全部开源的,包括源代码和原理图,这比起其他SDR平台设备来讲,是极吸引人的。 
HackRF硬件与GPS信号仿真模拟器的结合,是一个有意义的研究项目。首先,HackRF硬件设备所支持的频段和带宽都能满足GPS信号仿真模拟器的要求,这是最大的前提;其次,开源的世界里有很多GPS软件接收机的项目,但涉及模拟器的相比之下就略少一些,能够在新诞生的HackRF平台上,进行GPS信号仿真模拟器的开发,本身就是对HackRF应用领域的扩展,是一件很有意义的事情,而且最重要的是这在理论上来讲完成可行。

2. 研究内容

2.1. 系统结构分析

模拟器的设计过程中涉及数据和信号两个部分,大致有两类结构: 
1.数据和信号都由软件产生 
这种结构下,各种模型数据和信号都是在计算机软件中完成,然后存储到硬件设备中,再由硬件中的DAC将数据转换为中频或者射频信号。 
2.数据由软件产生,信号由硬件产生 
这种结构下,计算机软件对仿真过程中的卫星轨道、卫星和用户的相对速度、电离层、对流层等进行建模,然后产生相应的控制参数传入硬件设备,硬件根据配置参数模拟出各种体制的信号。 
第一种结构下,软硬件相互独立,任务分工明确。但是由于所有的数据均是在计算机中完成,因此对计算速度、软硬件接口传输速度和存储空间都提出了比较高的要求,这些都需要专用计算机来完成;第二种结构下,软件产生各种数据以及配置参数,硬件则根据这些参数配置自己的生成系统,软硬件相互交叉配合,信号的时序对齐比较难,整体比较复杂。但是这种结构有突出的优点,即一次配置,便可完成长时间的测试,且能够实时的产生信号。 
在本文中拟采用第二种结构以实现在HackRF平台中实现GPS信号仿真模拟器。

2.2. 数据生成部分

数据生成部分主要依据系统仿真设定的时间、用户状态(位置、速度、加速度)、卫星星历等初始化设定,完成一系列的计算,最终向硬件部分传递参数,这些参数主要包含三类: 
1.系统状态参数 
包括所要模拟的GPS系统的频点(中频)、伪码(长度、序列值、速率)、电文的类型等参数。这些系统状态参数在程序运行时进行初始化,在仿真运行过程中都是固定的。 
2.系统实时参数 
主要包括载波相位、扩频码相位、载波多普勒、码多普勒等信息。这些参数都要模拟接收机得到的伪距、伪距率、载波多普勒、载波相位等观测量。模拟器通过星历轨道参数和当前的用户运动状态,选择可见星,再根据卫星和用户的运动状态(位置,速度,加速度),综合考虑电离层、对流层等因素后,计算信号在空间的传输时延,然后计算载波相位、码相位、载波多普勒、码多普勒等参数。不同于初始化参数,这些参数是实时在变的,因此需要每隔一定的时间更新一次,它们也是整个数据产生部分的核心。 
3.定位参数 
主要是指实时电文的产生。导航电文包括了卫星轨道参数、星钟修正参数、电离层参数、UTC时钟修正参数等,这些参数决定了能否进行准确成功。 
数据生成部分的流程图如下: 
开源夏令营《基于HackRF开发GPS信号仿真模拟器》开题报告_第1张图片

2.3信号产生部分

信号产生部分在HackRF平台上完成,主要对可见星的扩频码、电文、载波进行时序对齐、调制,产生数字中频信号,经上变频后发出射频信号。其信号产生过程中,以通道为基本单位,每一个通道包含一路可见卫星信号以及相关的所有数据参数。然后将可见星的扩频码、电文、载波的产生、调制过程都在通道内完成,与数据生成部分的交互也同样以通道为单位实现,即二者通过通道数据这一结构完成信息的传递。 
信号产生部分流程图如下: 
开源夏令营《基于HackRF开发GPS信号仿真模拟器》开题报告_第2张图片

3. 实施方案

数据生成部分先在Matlab中产生,采用模块化编程,将初始化卫星状态、读取卫星星历、计算卫星位置、判断可见星、计算传输时间、计算电离层延迟、计算对流层延迟、生成电文等功能封装成子模块。主程序则控制整个数据生成的流程,调用各个模块,完成相应的计算。 
信号产生部分则分层处理,电文、扩频码、载波一层层的产生并调制,以通道为单位,对应于每一颗可见星,生成对应时刻特定码相位、载波相位的中频信号,并最终通过HackRF上变频发射出去。

4. 研究难点

因为由模拟器产生的信号是直接进入接收机的,所以卫星信号仿真模拟器模拟的不仅仅是卫星上发射的信号,还需要将信号传输过程中所经历的过程都要进行相应的建模处理。因此数据生成部分中传输时间的计算,综合考虑卫星的运动和接收机在地球上随着地球自转带来的影响 、坐标系的扭转变换、电离层和对流层对信号传播的不同影响、相对论效应的影响等因素。同时传输时间又直接影响着载波相位、码相位、多普勒等测量值,因此想要获得比较理想的模拟效果,传输时间的计算是关键,也是整个数据生成部分中的难点。 
同样,在硬件上,如何将每颗卫星的信号发射时间(由接收时间和传输时间反推得到的发射时间)所发射的信号(扩频码、电文、载波)在时间上进行对齐,是另一个难点。模拟器在仿真过程中,会设定全局时间,所有的卫星依据此时间来计算自己所对应发射时间的信号,以及对应于全局时刻的码相位、载波相位等。只有在时序上严格对齐,才能保证最后信号的准确性。

你可能感兴趣的:(GPS信号模拟器,HackRF)