GPS信号捕获
更新时间:2024-01-17 17:22:01 阅读量: 教育文库 文档下载
GPS课程设计 实验报告(2)
学院 姓名LSC 班级 学号 指导教员
一、试验名称:GPS信号捕获 二、试验目的:
1. 熟悉GPS信号捕获基本概念;
2. 掌握串行搜索算法、并行频率搜索算法和并行码相位搜索捕获算法的基本思想、特点及算法流程;
3. 训练在实际当中分析问题、解决问题的能力。
三、试验内容
1. 编写GPS信号捕获子程序,算法自选。
2. 将实验一最终生成的信号延迟?时间,并加上大小为fD的多普勒频移,使用以上编写的信号捕获子程序对该信号进行捕获。
3. 画出三维捕获结果图(要求至少画出两幅,一幅对应信号成功捕获,一幅对应未捕获到信号)。
四、试验原理
4.1 概述
为了跟踪和解码GPS信号, 首先要捕获到GPS信号。将捕获到的GPS信号的必要参数立刻传递给跟踪过程,再通过跟踪过程便可得到卫星的导航电文。GPS
卫星处于高速运动中,因此,其频率会产生多普勒频移。为覆盖高速卫星预期中的所有多普勒频率范围,捕获方法覆盖的频率范围必须在±10 kHz之内。针对某个特定的卫星信号,捕获过程就是要找到C/A码的起始点,并利用找到的起始点展开C/A码频谱,一旦复现了C/A码的频谱,输出信号将变成连续波(Continuous Wave,CW),于是便得到其载波频率。也就是说,捕获过程就是要获得输入信号的C/A码的起始点和载波频率,然后传递给跟踪过程。
4.2 卫星信号捕获的考虑 4.2.1 捕获时的最大电文长度
C/A码长1 ms,那么至少要用1ms的电文来捕获,甚至只用1 ms的电文来捕获时,都可能发生导航电文相位偏移。因此,为了保证捕获电文中不含有数据偏移,需要用两组连续的电文来捕获,这个电文最大长度是10ms。如果使用两组连续的10 ms电文来捕获,就保证了在某一组电文中不含相位偏移。
限制电文长度的第二个因素是C/A码的多普勒效应。 4.2.2 捕获中的频率步长
捕获时的另一个考虑因素是捕获中剥离载波所需的频率。步进频率的大小与捕获中的电文长度紧密相关。如果输入信号与本地混频信号相距1个周期,它们两者没有相关性;如果两者小于1个周期,则它们有部分相关性。解决信号周期和步进频率问题的一个简单方法是频率相离与电文长度成反向关系。
可得出如下结论:捕获中的操作执行次数与总的数据点并不是成线性比例关系,当电文长度从1 ms上升到10 ms时,电文长度上升10倍,频率点数目也上升了10倍,捕获所需的操作次数上升了不止10倍。因此,实际捕获时,如果强调捕获的速度的话,电文长度需保持在最小值。执行次数的增加,取决于实际捕获所用的方法,下面将讨论具体的捕获方法。
4.3 GPS卫星信号的捕获方法 4.3.1 传统捕获方法
捕获的基本思想就是展开输入信号,找到载波频率。如果相位正确的C/A码与输入信号相乘,输入信号将如图4-1中所示变成一个连续信号。图3-1中最上端是输入信号,这个信号是C/A码编码的射频信号相位。中间的图表示C/A码,其值在±1之间。最下端的图是连续信号,代表输入信号与C/A码的乘积,是一
个连续信号,这个过程有时称做输入信号的C/A码剥离。
图4-1C/A编码的输入信号与本地C/A码相乘
3.3.2 C/A码数值分析
一旦输入变成连续信号,通过傅立叶变换可以知晓其频率。可以设置一个阈值,即一个门限来判断一个频率分量是否足够大。高于这个门限的最高频率分量就是我们要找的频率。
由于输入信号中C/A码的起始点还未知,因此,必须先找到这个点。为了找到这个点,我们产生本地的一个C/A码,将其数字化为5000个点,且与输入信号点对点相乘,对此乘积的结果进行FFT或DFT,可以找到其频率。通过这种方法,可以用时间分辨率为200 ns(1/5 MHz)和1 kHz的频率分辨率找出C/A码的起始点。如果使用10 ms的电文,因为信号只需要卷积1 ms,因此需要5000次操作。每次操作包含50 000个点对点乘积和50 000次FFT,总共有1.25×108(5000×25 000)个输出结果。
五、Matlab代码及实现
5.1 主程序代码:
clc,clear all; % 产生C/A码
G1 = [1,1,1,1,1,1,1,1,1,1]; G2 = [1,1,1,1,1,1,1,1,1,1]; TapArray = [3,7];
CACode = Create_CA_Code(G1,G2,TapArray); % save CA码.matCACode
% figure(1) , plot(1:1023,CACode); % axis([1 1023 0 1]); % title('C/A码');
% step2:产生导航电文
NavigationData = Create_NavigationData(); % save 导航电文.matNavigationData
FirstFrameNavigationData = NavigationData(1:300); % figure(2),plot(1:300,FirstFrameNavigationData); % axis([1 300 0 1]);
% title('导航电文第一子帧的数据'); % 用C/A码来调制导航电文的第一帧
Baseband_Signal = SpreadSpectrum(FirstFrameNavigationData,CACode); % save CA码基带信号.matBaseband_Signal; % figure(3) ,plot(Baseband_Signal); % title('CA码基带信号');
% 调制发射传输CA码基带信号 SNR=-20; %信噪比
IFSignal = IF_BasebandSignal(Baseband_Signal,SNR); save 收到的射频信号.matIFSignal % 捕获C/A码信号 freq_doppler=5e3;
Capture_CACode(IFSignal,CACode,freq_doppler);
5.2子程序代码
5.2.1 C/A码产生(与实验一相同):
function CACode = Create_CA_Code(G1,G2,TapArray) % G1代表当前移位寄存器的状态 % G2代表当前移位寄存器的状态 % TapArray代表G2的抽头数 G1=cast(G1, 'logical'); G2=cast(G2, 'logical'); tap1 = TapArray(1); tap2 = TapArray(2); code=zeros(1,1023); fori=1:1023
temp = xor(G2(tap1), G2(tap1)); %5号卫星,抽头1和9 code(i)=xor(G1(10),temp); temp = xor(G1(3), G1(10)); G1=[temp, G1(1:9)]; temp = xor(G2(2), G2(3)); temp = xor(temp, G2(6)); temp = xor(temp, G2(8)); temp = xor(temp, G2(9)); temp = xor(temp, G2(10)); G2=[temp, G2(1:9)]; end
code=cast(code,'double');
CACode=code;
5.2.2多普勒频移
function IFSignal = IF_BasebandSignal(Baseband_Signal,SNR) F0=2e6; %中频频率为2MHz Fs=5e6; %采样率为5MHz freq_doppler=9e3; %多普勒频偏
code_doppler=freq_doppler*1.023/1575.42; %相应的码偏 Fc = 1.023e6 + code_doppler; %码率
code_phase=1500; %初始码相位 T=5;
N = (Fs / 1e3) * T; %数据长度 code_data=Baseband_Signal(1:1023); code_data=2*code_data-1; index=(code_phase+(1: N))/Fs;
index_code=floor(mod(index*Fc,1023))+1; sample_code=code_data(index_code);
carrier_cos = cos(2*pi*(F0+freq_doppler)*index);
signal_I = (carrier_cos .* sample_code)*sqrt(2*10^(0.1*SNR))+randn(1,N); IFSignal=signal_I; 5.2.3产生导航电文
functionNavigationData = Create_NavigationData()
% 功能:产生一个周期的导航电文数据,长度为1500*25 = 37500bit % 一个周期包含25帧 % 一帧数据长度为1500bit
% 一帧包含5个子帧,每个子帧长度为300bit one_page=randn(1,1500); %一页 one_page(find(one_page>0))=1; one_page(find(one_page<0))=0;
week_number=[1 0 1 0 1 0 1 0 1 0]; %星期数,每页更新一次 one_page(61:70)=week_number; tlm=ones(1,30);
tow=ones(1,17); %TOW,每帧更新一次 how=[tow,zeros(1,13)];
for i=0:4 %一页 one_page(i*300+1:i*300+60)=[tlm,how]; end
for j=0:24 %一个周期 one_period(j*1500+1:j*1500+1500)=one_page; end
NavigationData=one_period; 5.2.4 C/A码捕获:
function CACode = Capture_CACode(IFSignal,CACode,freq_doppler)
N = length(IFSignal);
F0=2e6; %中频频率为2MHz Fs = 5e6; %采样率 FSN = Fs/1e3;
NA = 5; %累积次数 % 生成本地C码
phase_shift=0; %本地码码偏 index=(1: FSN*NA)/Fs;
index_code=floor(mod(index*1.023e6+phase_shift,1023))+1; index_code(find(index_code == 0)) = 1023; local_code = CACode;
local_code=2*local_code-1;
local_code=local_code(index_code); % 捕获
forfindex=1:40
f = (findex - 20)*500;
signal_f = IFSignal(1:FSN*NA) .* exp(j*2*pi*(F0-f)*(1:FSN*NA)/5e6); sat_mat = reshape(signal_f(1:FSN*NA), FSN, NA);
lcode_mat = reshape(local_code(1:FSN*NA), FSN, NA); fs = fft(sat_mat); fl = fft(lcode_mat); mu = conj(fs) .* fl; cr = (ifft(mu))'; i = 1:NA;
accu(findex, :) = sum(abs(cr(i, :))); end
%捕获结果
[aa,bb]=max(accu); [cc,dd]=max(aa); a=cc; b=bb(dd); c=dd;
phase_shift = c - 1 %码相位 freq = -1 * (b - 20) *500 %频偏 CACode = accu; %figure(1)
subplot(211);mesh(CACode);
subplot(212);plot(CACode(b-1,:));
5.3试验截图
正在阅读:
GPS信号捕获01-17
河北省玉田县林南仓中学2012-2013学年高一6月月考试题1709-30
餐饮企业(饭店),疫情防控应急措施预案餐厅应急预案范本04-03
小学五年级奥数教程07-06
Skopos Theory 目的论06-22
07河南公务员考试公共基础知识模拟试卷09-29
美国海关出入境登记表02-27
医院感染管理工作职责、制度、流程04-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 捕获
- 信号
- GPS
- 六一节目主持词
- 论中国国际收支双顺差的代价和风险分析毕业论文
- 冲击电流计测量高阻
- 工程测量学资料整理(含部分答案) - 图文
- 实习生笔试题
- 民生银行关于小微企业互助担保贷款业务的介绍
- 中考记叙文阅读教案(3000字)
- 探讨建筑装饰装修工程施工质量及安全控制
- 图形的相似全章导学案
- 《消费者权益保护法》知识竞赛试题及答案
- 行政单位国有资产管理暂行办法一
- 某某物业公司 辩论赛方案
- 2012年高考日语试题
- 中南财经政法大学法理学
- 猛禽是鸟类六大生态类群之一
- 齐治堡垒机简易使用手册V1.0
- 古代诗歌鉴赏人物形象教师版
- 财务管理学,第三版,张功富,教材配套练习题(附答案)!
- 语文课程与教学论试卷及答案 8页
- 2017年咨询工程师继续教育-旅游项目管理试卷