• 【物理应用】GPS信号捕获跟踪附MATLAB代码


    1 内容介绍

    ​在过去的几年里,紧凑型无线电导航接收器在民用市场上激增,通常以 GPS 或全球定位系统的名义出现。这些商业应用以手持设备的形式出现或内置于汽车、手机和飞机中,起源于冷战时期的军事应用。 GPS 是一个全球无线电导航系统,由 24 颗卫星组成,每颗卫星在地球上空 11,000 海里的轨道上,以及确保卫星正常工作的五个地面站。 GPS 卫星每颗绕地球运行需要 12 个小时。每颗 GPS 卫星以 50 比特/秒的速度连续广播一条导航消息,给出时间、GPS 周数和卫星健康信息(均在消息的第一部分传输)、星历表(在消息的第二部分传输)信息)和年历(信息的后半部分)。 GPS接收器计算位置需要当前时间、卫星位置和接收信号的测量延迟,然后使用三角测量规则确定接收器的位置。 GPS 误差的主要来源是大气效应(电离层、对流层)、卫星时钟误差、多径效应、卫星轨道误差和计算舍入误差。 GPS系统的误差总结在下表中。各个值不是恒定值,而是会发生变化。所有数字均为近似值 [1]:

    Table 1. Errors of GPS

    Error Source

    Error

    Ionospheric effects

    ± 5 meter

    Shifts in the satellite orbits

    ± 2.5 meter

    Clock errors of the satellites' clocks 

    ± 2 meter

    Multipath effect

    ± 1 meter

    Tropospheric effects

    ± 0.5 meter

    Calculation- und rounding errors

    ± 1 meter

    2 部分代码

    %This Function use Ephemeris Data and Calculate satellite Position 

    %CopyRight By Moein Mehrtash

    %**************************************************************************                                 *

    %**************************************************************************

    %**************************************************************************

    % Satellite Position By Ephemeris Model 

    %Function's Inputs:

        %Pos_SV(m):Satellite Position Matrix

        %Pos_Rcv(m):GPS reciever Position

        %Rho(m):Pseudo Range

        

    %Function's Outputs:

        %G:

        %Delta_X:

        %Pos_RCV_N:

        %B:

        

    %**************************************************************************

    %**************************************************************************

    function [G,Delta_X,Pos_Rcv_n,B]=Gen_G_DX_XYZ_B(Pos_SV,Pos_Rcv,Rho);

    [m,n]=size(Pos_SV);

    d=Distance(Pos_SV,Pos_Rcv);

    for i=1:m

        dif=Pos_SV(i,:)-Pos_Rcv;

        unit=dif./d(i);

        for j=1:n

            Unit_Mtrix(i,j)=unit(j);

        end

    end

    G=[-Unit_Mtrix ones(m,1)];

    Delta_Rho=(Rho-d');    

    Delta_X=inv(G'*G)*G'*Delta_Rho;

    Pos_Rcv_n=(Pos_Rcv'+Delta_X(1:3))';

    B=Delta_X(4);

    3 运行结果

    4 参考文献

    [1]刘洋洋, Liu Yang-yang. 基于Matlab的GPS信号捕获与跟踪[C]// 第六届中国卫星导航学术年会. 中国卫星导航系统管理办公室学术交流中心, 2015.

    博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

    部分理论引用网络文献,若有侵权联系博主删除。

     

  • 相关阅读:
    Java——线程&进程
    建模杂谈系列155 从一段程序讨论通用的任务执行方法
    [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习)
    一切测试的基础——测试用例设计
    探索UI设计|栅格系统的深入分析和应用
    K8S面试总结
    NoSQL数据库之Redis
    Python学习常见问题及其解决方案(1)
    企业子网划分详解
    算法提升①
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126754166