基于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时钟修正参数等,这些参数决定了能否进行准确成功。 
数据生成部分的流程图如下: 

2.3信号产生部分

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

3. 实施方案


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

4. 研究难点


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

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

  1. 开源夏令营《基于HackRF开发GPS信号仿真模拟器》工作总结(一)

    2014.07.07收到导师的邮件,通知由自己来做开源夏令营的<基于HackRF开发GPS信号仿真模拟器>项目,很开心能够得到这个机会,也很感谢导师的信任.在整理材料后,向导师汇报了自己的 ...

  2. 开源夏令营《基于HackRF开发GPS信号仿真模拟器》工作总结(二)

    2014.07.14--2014.07.20,开源夏令营的第二周. 这周主要解决的问题: 坐标系转换: WGS-84是地心地固坐标系的一种(地心直角坐标系),也是GPS系统定位结果输出中所采用的坐标系 ...

  3. 开源夏令营《基于HackRF开发GPS信号仿真模拟器》工作总结(三)

    2014.07.21-2014.07.27,项目已经开展三周了,接下来就要面对中期检查了.实验室已经放假了,现在只剩下为数不多的几个人了,其中包括我. 这周主要解决的问题 这周主要解决的问题分为三个方 ...

  4. 开源夏令营《基于HackRF开发GPS信号仿真模拟器》终期汇报

    目前的项目进展能够实现的功能有: 1.在Matlab中完整运行数据生成部分功能,产生中频数据 在Matlab中,依次读取某天的全部卫星星历.确定用户的状态(位置.速度和加速度).依据时间计算卫星的状态 ...

  5. 开源夏令营《基于HackRF开发GPS信号仿真模拟器》工作总结(五)

    这周(08.04-08.10)主要是在学习GNURadio的使用,在GRC中试验了几个例子,用HackRF接收了WBFM信号,并利用octave来分析从GNURadio中获得的数据. 这周主要解决的问 ...

  6. 基于matlab的gps信号仿真123,MATLABGPS信号仿真完整源代码.doc

    配套毕业设计论文见百度文库 请搜索 <基于MATLAB的GPS信号仿真123> 附录 仿真程序代码 数据码的产生 function datacode=data(x) y=rand(1,x) ...

  7. matlab gps 卫星导航信号,基于MATLAB的GPS信号仿真123.doc

    <基于MATLAB的GPS信号仿真完整源代码123> 摘 要 . 关键词::MATLAB: Abstract As the new generation of the satellite ...

  8. gps 捕获 matlab,基于FFT的GPS信号快速捕获方法

    基于FFT的GPS信号快速捕获方法 李继忠 李巍 (北京遥感设备研究所,北京100039) 摘要:设计在高动态环境下工作的GPS接收机,其难点之一便在于对卫星伪码的快速捕获. 针对缩短GPS接收机捕获 ...

  9. 基于osgearth开发的三维仿真与态势软件系统源代码

    基于osgearth开发的三维仿真与态势软件系统源代码. 功能如下: 1.新建方案.打开方案.保存方案: 2.导入影像.高程.矢量.模型数据: 3.灯光控制.雨.雪.雾特效: 4.通视分析.距离测量. ...

最新文章

  1. NoDrives-显示与隐藏驱动器【盘符的显示与隐藏】
  2. 在MAC下安装Exuberant ctags
  3. UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划
  4. java中子类与父类中隐含的this引用的分析
  5. 一窥 ARM 的 AI 处理器
  6. 端到端测试哪家强?不容错过的Cypress
  7. 最小生成树之普里姆算法
  8. apache-xmlrpc-3.1.3-bin.tar.bz2
  9. kickstart无人值守安装Ubuntu1804系统
  10. 小谈 Ubuntu 联网
  11. input反应慢 vue_vue 输入框速度慢的问题
  12. JAVA 实现《JAVA打砖块》游戏
  13. Android 腾讯Bugly的应用升级热更新
  14. 访问Windows 11恢复环境的5种简单方法
  15. 讲明白——K8S各核心架构组件
  16. 原西北大学校长郝克刚教授在中服PaaS云平台技术研讨会上的讲话
  17. 【网络安全】知名网络安全企业有哪些?
  18. python中readlines是什么意思_python中read、readline、readlines之间的区别
  19. java并发原理实战(8)-- lock接口使用和认识
  20. win8找到程序员计算器

热门文章

  1. Android实现计时与倒计时(限时抢购)
  2. Django自定义FilterSet
  3. 色值的计算、转换、获取
  4. 机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八)
  5. 算法:最长回文子串(js)
  6. 【PaperReading】MAGNN: Metapath Aggregated Graph Neural Network for Heterogeneous Graph Embedding
  7. 钉钉企业微信集成免登录
  8. 对计算机系学生的七个建议
  9. 数据挖掘流程总结及挖掘算法比较
  10. 系统学习Python——字符串(str):字符串格式化表达-[基础知识]