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

2014.07.07收到导师的邮件,通知由自己来做开源夏令营的《基于HackRF开发GPS信号仿真模拟器》项目,很开心能够得到这个机会,也很感谢导师的信任。在整理材料后,向导师汇报了自己的工作计划安排,之后便开展了有关项目的工作。
这周主要解决的问题:
  1. 项目框架的搭建:
    根据导师对项目的要求,第一阶段要在matlab下完成信号的仿真。因些学习了在matlab环境中进行编程的知识。经过一番探索之后,确定将项目的各项功能划分为小的功能子模块,通过主函数对各子模块的调用来实现功能。主函数与各个子模块之间的数据的交换通过全局变量来实现。在全局变量中,声明不同的结构体来存储数据,同时定义多个模块都会使用到的一些公共函数(如UTC2GPST函数等)。最后建立的项目目录结构如图1:
    开源夏令营《基于HackRF开发GPS信号仿真模拟器》工作总结(一)_第1张图片
    图1:项目目录结构
    其中gs_file用来保存项目需要用到的数据文件,如星历文件、精密星历文件等;gs_function用来保存公共函数;gs_struct用来保存程序中用到的结构体,所有的结构体均在此文件夹中定义;而gps-sim-hackrf则是我为项目定义的文件夹,除保存前述三个文件夹外,主函数以及子模块函数也都保存在此目录下。其中的README.md是在code.csdn.net中托管代码时自动生成的,保存了对于项目的一些说明。至此,整个项目的框架基本搭建完成。
  2. 项目程序的编写:
    项目在CSDN code上的地址为:https://code.csdn.net/sywcxx/gps-sim-hackrf。以下做简要总结——
    主目录下:
    main:主函数,程序的入口函数,控制整个程序的流程;
    init:初始化函数,初始化系统信息,包括常量定义、系统参数、仿真时间、用户状态设定;
    readrinex:读取星历数据函数,星历数据Rinex文件保存在gs_file目录下,记录了GPS系统某一天全部卫星的星历;函数的功能是从文件中将数据读取到星历数据结构体EphData中;
    selecteph:选择星历数据函数,对每颗卫星选取距离仿真时间最近的星历数据;
    gs_function目录下:
    UTC2GPST:UTC时向GPST转化的函数;
    GetSatState:由星历数据计算得到卫星状态(位置、速度、加速度)的函数;
    gs_struct目录下:
    定义了Coordinate、PVA、Time、EphData、Coordinate、PVA、Time、EphData结构体。在matlab中定义结构体可以用struct语句,但是在使用的时间要每次都定义。因此自己借用matlab的类的定义来间接实现结构体的定义(完成可以看到结构体,因为只定义了构造函数)。以下为Coordinate结构体的定义——
    classdef Coordinate
        properties
            first;
    		second;
    		third;   
        end
        
        methods
            function a = Coordinate(varargin)
                if(nargin==1)    
                    a.first=0;
                    a.second=0;
                    a.third=0;
                else
                    a.first=cell2mat(varargin(1));
                    a.second=cell2mat(varargin(2));
                    a.third=cell2mat(varargin(3));
                end
            end
         end
    end
    此结构体为坐标结构体,保存三个坐标分量。可以用a=Coordinate(0)或者a=Coordinate(1,2,3)来进行初始化。
总结:
这是项目开始的第一周,主要完成了项目框架的搭建,并在matlab环境下学习了编程技巧,为之后工作的顺利开展做了铺垫。
————————————————
以下是有关项目要求和工作进展的信息——
项目要求: 基于HackRF开发GPS信号仿真模拟器
项目在csdn code上的地址: https://code.csdn.net/sywcxx/gps-sim-hackrf

你可能感兴趣的:(开源夏令营,GPS信号模拟器,matlab结构体)