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

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,

//Capture

o_Ca_index,

o_CA,

o_abs_addCA,

o_P_index,

o_P,

o_abs_addP,

o_fre_est_Ca,

o_fre_est_P,

//Tracking

o_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

//TRACKING



wire 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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容