目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

最早的GPS包含L1和L2两个频段,其中L1上调制CA码,P码以及导航电文,L2上调制P码和导航电文。在实际接收到的GPS信号中,我们除了能够接受到CA码和P码外,还能检测到L1和L2两种载波信号。GPS双频发送器的基本构架如下所示:

使用CA码和P码两种码来区分双频道中的两种不同的频道。但是P码周期非常长,美国用P码周期是140多天,而简化后的民用版本也要7天多,我们无法在仿真或者实际测试的时候花那么多时间去验证P码的捕获,所以这里,我们将P码部分做了下简化,使用伪随机序列周期为2048bit,来代替P码部分。

一般情况下,导航电文的频率为50hz,CA码的频率为1M,P码的频率为10M。这里,为了测试的需要,我们需要降低频率来进行测试。整个发送端,按如下的结构设计:

通过捕获模块获得初始的频偏值,然后进行载波同步。与此同时,通过码同步,完成相位的捕获。最后进入跟踪阶段。

先介绍一下捕获的基本原理:

本地码生成器以C/A码标称频率产生C/A码与接收到的采样信号相关累加,一个积分周期(通常1个码周期)后,相关峰与检测门限比较,如果相关峰大于门限,则认为捕获成功,得到对应的码相位估计;如果相关峰小于门限,码发生器自动将本地码码相位向前或向后跳动1/2或1/4个码片,然后继续相关累加检测,最多在 或 个伪码周期后找到与本地伪码同步的输入伪码的相位状态( 即为一个码周期内码片的数目),以实现伪码的捕获。下面对步进相关法进行简单介绍,其原理图见图1。

跟踪部分:

其内部详细结构如下所示:

2.仿真效果预览

算法仿真:MATLAB 2010b

FPGA设计:ISE12.2

FPGA仿真:Modelsim6.5SE

   

   

导航电文和CA码及P码异或之后的信号。

导航电文和CA码及P码异或之后的信号,通过成型滤波器之后的效果。

这个最后发送出去的QPSK,BPSK以及相加之后的射频信号。

最后捕获跟踪之后的信号,放大看如下所示:

一开始的逐渐变大的过程就是锁定过程

3.MATLAB核心程序

`timescale 1ns / 1ps
module GPS_Rec(i_clk,i_rst,i_QPSK,i_BPSK,//Captureo_Ca_index,o_CA,o_abs_addCA,o_P_index,o_P,o_abs_addP,o_fre_est_Ca,o_fre_est_P,//Trackingo_I_L1,o_Q_L1,o_I_L2,o_Q_L2,  o_Dwen_rec_L1,o_Dwen_rec_L2);input              i_clk;
input              i_rst;
input signed[15:0] i_QPSK;
input signed[15:0] i_BPSK;
//Capture
output       [9:0] o_Ca_index;
output signed[1:0] o_CA;
output signed[21:0]o_abs_addCA;
output       [10:0]o_P_index;
output signed[1:0] o_P;
output signed[23:0]o_abs_addP;
output signed[23:0]o_fre_est_Ca;
output signed[23:0]o_fre_est_P;//Tracking
output signed[15:0]o_I_L1;
output signed[15:0]o_Q_L1;
output signed[15:0]o_I_L2;
output signed[15:0]o_Q_L2;
output signed[1:0] o_Dwen_rec_L1;
output signed[1:0] o_Dwen_rec_L2;wire clk_ca;
wire clk_ca_2code;
wire clk_p;
wire clk_p_2code; //2 time ca clock
CLOCK_DCM2 CLOCK_DCM2_u(.i_clk          (i_clk), .i_rst          (i_rst), .o_clk_dwen     (), .o_clk_ca       (clk_ca), .o_clk_ca_2code (clk_ca_2code), .o_clk_p        (clk_p),.o_clk_p_2code  (clk_p_2code));//CAPTURE
//CAPTURE
//frequency capture
wire signed[9:0] o_Ca_index;
wire signed[1:0] o_CA;
wire signed[21:0]o_abs_addCA;           frequency_capture_channel1 frequency_capture_channel1_u(.i_clk          (i_clk), .i_clk_ca       (clk_ca), .i_clk_ca2times (clk_ca_2code), .i_rst          (i_rst), .i_QPSK         (i_QPSK),.o_fre_est      (o_fre_est_Ca),.o_I_filter     (), .o_Q_filter     (), .o_Ca_index     (o_Ca_index), .o_CA           (o_CA), .o_abs_addIQ    (o_abs_addCA));wire signed[10:0] o_p_index;
wire signed[1:0]  o_p;
wire signed[23:0] o_abs_addP;
frequency_capture_channel2 frequency_capture_channel2_u (.i_clk          (i_clk), .i_clk_p        (clk_p), .i_clk_p2times  (clk_p_2code), .i_rst          (i_rst), .i_BPSK         (i_BPSK), .o_fre_est      (o_fre_est_P),.o_I_filter     (), .o_Q_filter     (), .o_p_index      (o_P_index), .o_p            (o_P), .o_abs_addIQ    (o_abs_addP));//TRACKING
//TRACKINGwire signed[15:0]o_I_filter1;
wire signed[15:0]o_Q_filter1;
wire signed[15:0]o_I_filter2;
wire signed[15:0]o_Q_filter2;Frequency_track_tops Frequency_track_tops_u(.i_clk       (i_clk), .i_rst       (i_rst), .i_QPSK      (i_QPSK), .i_BPSK      (i_BPSK), .i_FRE_index1(o_fre_est_Ca), .i_FRE_index2(o_fre_est_P), .o_I_filter1 (o_I_L1), .o_Q_filter1 (o_Q_L1), .o_I_filter2 (o_I_L2), .o_Q_filter2 (o_Q_L2));//CA capture
wire signed[1:0]Dwen_rec_L1;
CA_early_late_track_tops CA_early_late_track_tops_u(.i_clk      (clk_ca_2code), .i_clk_ca   (clk_ca), .i_rst      (i_rst), .i_CA_index (o_Ca_index+1), .i_Idin     (o_I_L1), .i_Qdin     (o_Q_L1), .o_dout     (o_Dwen_rec_L1));//P capture
wire signed[1:0]Dwen_rec_L2;
P_early_late_track_tops P_early_late_track_tops_u (.i_clk     (clk_p_2code), .i_clk_p   (clk_p), .i_rst     (i_rst), .i_P_index (o_P_index+1), .i_Idin    (o_I_L2), .i_Qdin    (o_Q_L2), .o_dout    (o_Dwen_rec_L2));
endmodule
01_118m

4.完整MATLAB

V

m基于FPGA的GPS收发系统开发,包括码同步,载波同步,早迟门跟踪环,其中L1采用QPSK,L2采用BPSK相关推荐

  1. 基于FPGA的火焰识别系统开发——简化版

    基于FPGA的火焰识别系统开发的详细版欢迎订阅本博: https://blog.csdn.net/ccsss22/article/details/115406504 1.问题描述:         传 ...

  2. 基于FPGA的LED点阵系统开发

    LED点阵显示屏被用到很多领域,随着电子技术的发展,LED点阵书写显示屏的广泛应用是一种趋势.传统的LED点阵显示是由微处理器实现的,但是以FPGA做控制器将成为发展趋势.FPGA的结构灵活,其逻辑单 ...

  3. 基于FPGA的火焰识别系统开发——详细版

    1.问题描述: 传统的森林火灾检测技术由于效率低.价格昂贵等缺点,并不适用于森林火灾探测.文中提出并设计与实现了一种基于小波变换的森林视频火灾烟雾检测方法,使用帧间差分法和质心算法提取疑似烟雾运动目标 ...

  4. 基于FPGA的交通灯系统

    基于FPGA的交通灯系统 一.实验目的 1.学习和掌握将实践中的要求抽象为逻辑需求关系的方法. 2.掌握将小型数字系统划分为控制器和处理器的方法. 3.掌握依据ASM图设计小型数字系统的方法 4.掌握 ...

  5. 基于fpga的测温系统,verilog实现 代码程序,quartus直接打开使用

    基于fpga的测温系统,代码程序,quartus直接打开使用,代码提供部分备注, verilog实现 1.硬件平台:altera芯片 2.软件平台:Quartusii 13.1 Verilog 3.实 ...

  6. 基于matlab的GPS单点定位程序开发(初学者)

    基于matlab的GPS单点定位程序开发 开发初衷 本人是测绘专业的学生,在初学GPS时遇到了很多代码问题,因此希望这篇文章能够帮助广大的测绘和导航专业的学子 代码开始 开发的第一部分是:文件读取,文 ...

  7. 基于J2EE的B2C电子商务系统开发- 新闻发布与系统管理子系统设计与实现

    设计(论文)题目: 基于J2EE的B2C电子商务系统开发 - 新闻发布与系统管理子系统设计与实现 学院.专业 学生姓名 指导教师姓名 下发日期 (任务起止日期: 20 年 月 日 至 20 年 月 日 ...

  8. 基于J2EE的B2C电子商务系统开发(论文+系统+开题报告+文献综述+任务书+答辩PPT+中期报表+外文文献+说明书)

    设计(论文)题目: 基于J2EE的B2C电子商务系统开发 - 新闻发布与系统管理子系统设计与实现 学院.专业 学生姓名 指导教师姓名 下发日期 (任务起止日期: 20 年 月 日 至 20 年 月 日 ...

  9. 计算机毕业设计Java宁夏中卫城市风采在线系统开发(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java宁夏中卫城市风采在线系统开发(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java宁夏中卫城市风采在线系统开发(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

最新文章

  1. vant组件实现上传图片裁剪_如何用 120 行代码,实现交互完整的拖拽上传组件?...
  2. 《基于压缩传感的匹配追踪重建算法研究》读书笔记
  3. 如何运行Perl和查看帮助
  4. Android C2DM学习 - 云端推送
  5. 容器List之ArrayList详解
  6. mysql 字段加减_MySQL数据库开发常见问题及优化(续)
  7. 爬虫调用百度翻译API
  8. 进化计算-进化策略(Evolutionary Strategies,ES)前世今生与代码共享
  9. cenOS 安装opencv(for matlab)
  10. 【LaTeX】下载及安装步骤
  11. 关于电感数字传感器的一些问题
  12. mysql openxml_OpenXML SDK2.0初窥
  13. android如何屏蔽掉home键
  14. Ryujinx - 基于 C# 开发的任天堂 Switch 模拟器
  15. Aggressive cows-疯牛POJ(2456)-详解
  16. 四川多多开店:拼多多商家绑定银行卡怎么绑定
  17. C# 六种方案打印PDF文档
  18. C语言学习笔记(0)
  19. 怎样生成唯一的ID?
  20. 东 北 大 学( 电机拖动X)离线作业

热门文章

  1. java计算机毕业设计基于安卓Android的禁毒宣传APP
  2. pandas——分组与聚合
  3. 爱奇艺自主研发的动态化框架!
  4. 计算机网络笔记(王道考研) 第三章:数据链路层
  5. 烽火2640路由器命令行手册-14-桥接配置命令
  6. 微信每天处理2.05亿通话 运营商只剩卖流量
  7. 华为梁华:鸿蒙系统不是谈判策略 是针对IoT的操作系统
  8. 6. 抹平差异,统一类型转换服务ConversionService
  9. 中兴换头;任正非表态中美差距还有 50 年;Google 回应隐私丑闻 | CSDN 极客头条...
  10. 【Mac环境】mac在线安装brew时返回443链接被拒绝或超时错误解决方案