GPS信号的捕获(PMF+FFT方法)

目标

  • 获取GPS信号的频率偏移和码相位

程序流程

  1. 读取/生成GPS信号

    GPS的导航信号模型为 x(nTs)=A∗D(nTs)C(nTs)cos(2π(fIF+fd)nTs+θ)x(nT_s) = A*D(nT_s)C(nT_s)cos(2\pi(f_{IF} + f_d)nT_s+\theta) x(nTs​)=A∗D(nTs​)C(nTs​)cos(2π(fIF​+fd​)nTs​+θ)

    其中,D(nTs)D(nT_s)D(nTs​) 为导航电文,此程序中只读取了导航电文中的一个bit(1ms);C(nTs)C(nT_s)C(nTs​)为C/A码;fIFf_{IF}fIF​为中频;fdf_dfd​为多普勒频移;TsT_sTs​为抽样间隔,Fs=1/TsF_s=1/T_sFs​=1/Ts​为抽样频率

  2. 混频,得到I路信号和Q路信号

    • 基础知识,三角函数和差化积、积化和差

      sin(α)∗cos(β)=1/2∗(sin(α+β)+sin(α−β))sin(\alpha)*cos(\beta) = 1/2 * (sin(\alpha + \beta) + sin(\alpha - \beta)) sin(α)∗cos(β)=1/2∗(sin(α+β)+sin(α−β))

      cos(α)∗cos(β)=1/2∗(cos(α+β)+cos(α−β))cos(\alpha)*cos(\beta) = 1/2 * (cos(\alpha + \beta) + cos(\alpha - \beta)) cos(α)∗cos(β)=1/2∗(cos(α+β)+cos(α−β))

      sin(α)∗sin(β)=1/2∗(cos(α+β)−cos(α−β))sin(\alpha)*sin(\beta) = 1/2 * (cos(\alpha + \beta) - cos(\alpha - \beta)) sin(α)∗sin(β)=1/2∗(cos(α+β)−cos(α−β))

    设本地载波信号为 sin(2πfIF∗nTs)sin(2 \pi f_{IF} * nT_s)sin(2πfIF​∗nTs​) 和 cos(2πfIF∗nTs)cos(2 \pi f_{IF} * nT_s)cos(2πfIF​∗nTs​) ,导航信号与本地载波混频得到I路和Q路混频信号

    I路
    SI=x(nTs)∗cos(2πfIF∗nTs)=A∗D(nTs)C(nTs)cos(2π(fIF+fd)nTs+θ)∗cos(2πfIF∗nTs)=A∗D(nTs)C(nTs)∗1/2∗(cos(2π(2fIF+fd)nTs+θ)+cos(2πfd+θ))\begin{align} S_I & = x(nT_s)*cos(2 \pi f_{IF} * nT_s) \\ & = A*D(nT_s)C(nT_s)cos(2\pi(f_{IF} + f_d)nT_s+\theta) * cos(2 \pi f_{IF} * nT_s) \\ & = A*D(nT_s)C(nT_s) * 1/2 * (cos(2\pi(2f_{IF} + f_d)nT_s+\theta) + cos(2\pi f_d + \theta)) \\ \end{align} SI​​=x(nTs​)∗cos(2πfIF​∗nTs​)=A∗D(nTs​)C(nTs​)cos(2π(fIF​+fd​)nTs​+θ)∗cos(2πfIF​∗nTs​)=A∗D(nTs​)C(nTs​)∗1/2∗(cos(2π(2fIF​+fd​)nTs​+θ)+cos(2πfd​+θ))​​

    Q路
    SQ=x(nTs)∗sin(2πfIF∗nTs)=A∗D(nTs)C(nTs)cos(2π(fIF+fd)nTs+θ)∗sin(2πfIF∗nTs)=A∗D(nTs)C(nTs)∗1/2∗(sin(2π(2fIF+fd)nTs+θ)−sin(2πfdnTs+θ))\begin{align} S_Q & = x(nT_s)*sin(2 \pi f_{IF} * nT_s) \\ & = A*D(nT_s)C(nT_s)cos(2\pi(f_{IF} + f_d)nT_s+\theta) * sin(2 \pi f_{IF} * nT_s) \\ & = A*D(nT_s)C(nT_s) * 1/2 * (sin(2\pi(2f_{IF} + f_d)nT_s + \theta) - sin(2\pi f_dnT_s + \theta)) \\ \end{align} SQ​​=x(nTs​)∗sin(2πfIF​∗nTs​)=A∗D(nTs​)C(nTs​)cos(2π(fIF​+fd​)nTs​+θ)∗sin(2πfIF​∗nTs​)=A∗D(nTs​)C(nTs​)∗1/2∗(sin(2π(2fIF​+fd​)nTs​+θ)−sin(2πfd​nTs​+θ))​​

  3. 低通滤波

    设 K=A∗D(nTs)C(nTs)∗1/2K = A*D(nT_s)C(nT_s) * 1/2 K=A∗D(nTs​)C(nTs​)∗1/2

    则I信号 SI=K∗(cos(2π(2fIF+fd)nTs+θ)+cos(2πfd+θ))S_I = K * (cos(2\pi(2f_{IF} + f_d)nT_s+\theta) + cos(2\pi f_d + \theta)) SI​=K∗(cos(2π(2fIF​+fd​)nTs​+θ)+cos(2πfd​+θ))

    Q路信号 SQ=K∗(sin(2π(2fIF+fd)nTs+θ)−sin(2πfdnTs+θ))S_Q = K*(sin(2\pi(2f_{IF} + f_d)nT_s + \theta) - sin(2\pi f_dnT_s + \theta)) SQ​=K∗(sin(2π(2fIF​+fd​)nTs​+θ)−sin(2πfd​nTs​+θ))

    可以看出I/Q两路信号都有两个主要的频率分量, 2π(2fIF+fd)2\pi(2f_{IF} + f_d)2π(2fIF​+fd​) 和 2πfd2\pi f_d2πfd​ ,分别对应GPS导航信号与本地载波的和频与差频。如果这时滤掉和频保留差频,然后找到差频的频率,就是多普勒频移。

  4. 降采样,减少不必要的计算

    在经过低通滤波之后,信号中保留着多普勒频移伪码数据,其中速率最高的伪码的码率为1023kbps,根据奈奎斯特采样定理,此时数据的采样率只要高于1023*2就可以保证数据的有效性。为了尽可能的降低运算量,可以进行降采样,把采样率从原来的26MSPS降低到2046SPS。

    伪代码如下:

    /** fs      -- 原始采样率*  fs_re   -- 降采样后的采样率*  N       -- 原始数据的采样点数*  cnt     -- 重采样后数据的下标
    **/
    temp = -1;for(int i = 0; i < N; i++)
    {cnt = 向下取整(i * fs_re / fs);if(temp == cnt - 1){data_re(cnt) = data(i);temp = cnt;}
    }
    
  5. 相干积分

    经过低通滤波和降采样后的数据里面主要有两种成分,伪码和多普勒频移。因为伪码的频率再在频谱上均匀分布,只有去掉伪码才能将多普勒频移找出来。伪码调制再载波信号中,是一种双极性不归零的信号(GPS导航电文也是一种双极性不归零的信号)。要去掉伪码,就需要利用双极性不归零信号的性质。

    在BPSK调制中,数字信号是双极性不归零的信号。比如

    1 0 1 0 1 1 0 0

    需要转化为

    1 -1 1 -1 1 1 -1 -1

    再进行调制。

    在捕获GPS信号时,需要本地生成一个标准的伪码信号,也需要是双极性不归零的信号。假设伪码就是上文中的10101100,在伪码对齐的情况下,两个相同的伪码相乘,$ 1*1=1 $ 、 $ -1 * -1 = 1 $。那么

    1 -1 1 -1 1 1 -1 -1

    1 -1 1 -1 1 1 -1 -1

    对应位相乘的结果就是

    1 1 1 1 1 1 1 1

    伪码全部变成1就代表全部变成了直流分量,然后在做FFT或者分组求和后再做FFT就可以得到多普勒频移。再实际的操作中,需要将本伪码不断的循环右移,再相乘后做FFT,然后记录FFT的结果。将记录的结果绘制为立体图如线图所示

    其中尖峰所在的x坐标和y坐标对应的坐标就是码相位和多普勒频移,图中使用256点FFT。

  6. 找到最高点,计算频率偏移和相位偏移

    遍历记录的FFT结果,找到最高点,计算对应的频率和码相位,就是多普勒频移和码相位。

说明

  1. 此文描述都是我个人理解,如有错误请大佬指正
  2. Matlab源码和使用的数据将会上传到Gitee和Github。
    Gitee: https://gitee.com/chentianya000/gps_-pmf-fft.git

GPS信号的捕获(PMF+FFT方法)相关推荐

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

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

  2. 【GPS信号跟踪捕获】基于FPGA的GPS系统跟踪捕获算法的Verilog实现

    1.软件版本 2.本算法理论知识 本课题的主要使用verilog实现GPS信号的捕获和跟踪过程.GPS的捕获和跟踪的现有资料非常多,总结来讲,其基本结构为下图所示: 捕获模块如下图所示: 跟踪环路如下 ...

  3. m低信噪比下GPS信号的捕获算法研究,分别使用matlab和FPGA对算法进行仿真和硬件实现

    目录 1.算法概述 2.仿真效果预览 3.MATLAB/FPGA部分代码预览 4.完整MATLAB/FPGA程序 1.算法概述 GPS卫星发送的信号一般由3个分量组成:载波.伪码和导航电文,其中伪码和 ...

  4. GPS信号捕获的MATLAB_FPGA仿真

    由于C/A码长lms,所以至少要用lms的电文来捕获,但在实际中,1ms的电文仍有可能发生导航点相位偏移.因此,使用两组连续的10ms电文来捕获,就保证了在某一组电文中未含有相位偏移. 我们将一个信号 ...

  5. 基于matlab的GPS信号相关检测算法仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 全球定位系统(Global Positioning System,GPS),是一种以人造地球卫星为基 ...

  6. GPS系统跟踪捕获算法的Verilog实现

    使用verilog实现GPS信号的捕获和跟踪过程.GPS的捕获和跟踪的现有资料非常多,总结来讲,其基本结构为下图所示: 捕获模块如下图所示: 跟踪环路如下图所示: 具体的一些论文的实现方法和上面的结构 ...

  7. 【GPS识别】低信噪比环境下GPS信号识别的MATLAB仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 如图GPS系统的星座部分是由21颗工作卫星和3颗在轨备用卫星组成,其高度为20183km,这24颗卫星均匀分布在6个等间隔的.相对轨道面倾角为 ...

  8. GPS信号捕获基本原理

    GPS卫星发送的信号一般由3个分量组成:载波.伪码和导航电文,其中伪码和导航电文采用BPSK技术去调制载波. GPS使用的两个L波段两种载频: 1 GPS搜索捕获原理 为了跟踪和解码GPS信号,首先要 ...

  9. 【GPS仿真】基于matlab GPS信号捕获跟踪【含Matlab源码 2126期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GPS仿真]基于matlab GPS信号捕获跟踪[含Matlab源码 2126期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  10. 基于matlab的GPS信号捕获仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 全球定位系统gps是一种可以在全球范围内为用户全天候提供实时.连续.高精度的位置.速度和时间信息的卫星导航系统,其主要终端设备 ...

最新文章

  1. 媲美光纤!WiFi传输速度已可达100Gbps
  2. 【微信小程序企业级开发教程】快递查询实例
  3. Selenium常用API的使用java语言之7-控制浏览器操作
  4. html编译软件推荐,3款容易上手的HTML5编辑工具推荐~
  5. Module not found: Error: Can‘t resolve ‘sass-loader‘ in E:\IdeaProject\xinguan\xinguan
  6. c语言编译无错误但不能输入输出,第2章-C语言版输入输出.ppt
  7. 小谈Online-game服务器端设计(3)
  8. 戴着口罩也要开心过年吖!
  9. java 十进制 左移,java移位运算符之十进制转二进制
  10. linux应用程序启动时加载库错误问题
  11. 使用Flash air操作本地文件
  12. WebStorm快捷键
  13. C语言求三角形斜边长
  14. 带上问题来看:主流技术Java、Python怎么?基本功又该怎么学?(什么是MySQL、Linux、算法?又该怎么用?)
  15. flex 移动开发 html5,[ html5 ] 移动端适配方案 flex布局+rem布局
  16. 老熊一亩三分地里的Oracle工具
  17. node-sass安装失败 error D:\xxx\xxx\node_modules\node-sass: Command failed.(window + mac M1 pro)
  18. 搜狗大数据总监、Polarr 联合创始人关于深度学习的分享交流
  19. 重庆新地标佛罗伦萨小镇将开业;雅高宣布2021年开业新酒店计划;阅文集团出售懒人听书股权​ | 美通企业周刊...
  20. [设计模式]单例模式的几种不同写法比较

热门文章

  1. TaxoNN: ensemble of neural networks on stratified microbiome data for disease prediction阅读报告
  2. echarts-wordcloud 热词云使用
  3. Real-Time Rendering——Chapter 10Local Illumination局部照明
  4. 九位SEO专家分享他们对Google核心更新的看法
  5. LSTM调参经验(细读)
  6. 1 人抵 1 万名黑客的阿里女守护神,私底下竟然是这个样子!
  7. W3Cschool从零开始学C语言笔记(1-2)位、字节及排列组合
  8. Android平台下JNI调用第三方so库
  9. QQ会员注册完整代码
  10. 【CSDN|每日一练】Longest Continuous Increasing Subsequence