m低信噪比下GPS信号的捕获算法研究,使用matlab算法进行仿真

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: m低信噪比下GPS信号的捕获算法研究,使用matlab算法进行仿真

1.算法概述

   GPS系统的星座部分是由21颗工作卫星和3颗在轨备用卫星组成,其高度为20183km,这24颗卫星均匀分布在6个等间隔的、相对轨道面倾角为55º的近圆轨道上。

1.png

   GPS卫星的轨道周期为半个恒星日,即11小时58分钟。从地球质心到卫星的额定距离为26600km,即轨道半径。每颗GPS工作卫星都发射用于导航定位的信号,然后GPS用户利用这些信号来进行工作的。这样的空间布局,可以保证在地球上的任意点、任意时刻均可同时观测到至少4颗卫星,最多时可以见到11颗,从而为全球用户提供24小时的导航定位功能。

  GPS卫星发送的信号一般由3个分量组成:载波信号、伪码和导航电文。其中伪码和导航电文采用BPSK技术去调制载波。每个卫星数据代码中使用模2加法叠加在C/A和P码上,再调制到L1、L2载波上。正如已经提到的,载波信号涵盖L1载波和L2载波,所以测距码信号包括叠加在L2载波上的P码和L1载波上的P码、C/A。所有信号都是通过同一个基本频率的控制下产生的,如图2所示。

2.png

   从图2可知,L1载波调制有P码、C/A码和数据码。而在L2载波上当前只有数据码和调制P码。拟议中的L5载波(第二民用频率)将会选择同时加载P码和C/A码,预计它的频率将会达到f5=115*f0=1175.45MHz,波长为=25.48cm。无论数据码还是测距码,是通过相位调制高频载波。也就是说,当代码值(调制信号)从1到0,或从0到1,会使载波相位变化180度。调制以后的卫星信号向用户播放是通过卫星发射天线。接收机的主要工作是重建载波来提取导航电文。信号解调中常用的2种方法:平方解调技术和复制代码相关技术。

   GPS卫星所发播的信号包括载波信号(L1和L2)、测距信号(包括C/A码和P码)和导航信号(或称D码元)。其中测距信号是一种伪随机噪声码(PRN) 。

   GPS使用的两个L波段两种载频:   

3.png

选择L波段的好处是:

(1)减少拥挤,防止“撞车“现象发生。目前L波段的频率占用率要低于其他波段,对全球性的导航定位测量非常有利。

(2)自适应扩频,传输宽带信号。卫星扩频传输卫星导航电文,高频率约为20兆赫兹,在占用率较低的带宽。

(3)大气衰减较小,对研制用户设备有利。GPS卫星采用的是L波段,避免了大气的谐振吸收,衰减较小,而且电离层延迟的影响小,有利于接收设备测量GPS信号。

  而在接收端,其结构如图1所示,它是利用前段射频硬件的采集模板将 GPS信号采集转化成中频数字信号再进行后续信号处理,从而得到信号定位等相关信息。软件接收机的实现由前段射频模块的质量和性能去决定。

4.png

    软件接收机主要是由两个模块组成:信号数据处理软件模块和前端信号采集硬件电路模块。软件模块细分为捕获与跟踪,星历解码与PVT估计。软件接收机系统的主线是GPS数据流的处理过程,前端以数据采集为主,在后端的设计集中于信号处理的软件编程与实现,因此,在可以采集准确的GPS数据的前提下,后端设计为软件接收机给予了很大的灵活性,为新算法的验证评估和测试提供一个有效的、便捷的服务平台。硬件模块细分则为天线,A/D转换模块,降频模块,数据采集存贮模块和串并行模块。

    通常情况下,由于输入信号的C/A码的起始位置是未知的,所以在进行捕获之前,波形实现产生一个伪随机码,这里假设将接收到的模拟信号数字化为5000个点,然后与输入的信号在数字域进行相乘,将相乘得到的结果进行快速傅里叶变换,从而得到其频率。通过上一节的讨论,FFT之后的频率分量为前半部分的2500个频率分量,将输出的频率分量的幅度与设置的门限值进行比较,如果幅度值大于门限值,那么该频率分量就是所需要的期望值。通过这种算法,就能够得到之前所说的起始点位置。

2.仿真效果预览
matlab2022a仿真

5.png
6.png
7.png
8.png

3.MATLAB部分代码预览

%% step2:CA码的产生
load gold1.mat;
code=double(code(1,:));
figure;
plot(code,'r-*');
axis([0,length(code),-1.2*max(code),1.2*max(code)]);
title('采样化后的 CA 码');
%相关性
Xcor_code = xcorr(code,code);
figure
plot(Xcor_code,'b-o');
axis([0,length(Xcor_code),0,1.2*max(Xcor_code)]);
 
 
%% step3:GPS中频信号
load data.mat
x=double(data');
figure;
plot(x,'r-*');
axis([0,length(x),-1.2*max(x),1.2*max(x)]);
x2 = [x x x x x x x x x x];
%发送四段连续的信号;
LENS = length(x2);
s=0:LENS-1;
y=x2.*exp(j*2*pi*(fc+fdelta)/fs*s);
y=awgn(y,snr);
%% step4:GPS信号的捕获 分成4段捕获
CA_fre = conj(fft(code));
L2     = length(y)/N;
y1 = y(1:11999);
y2 = y(12000:23998);
y3 = y(23999:35997);
y4 = y(35998:47996);
y5 = y(47997:59995);
y6 = y(59996:71994);
y7 = y(71995:83993);
y8 = y(83994:95992);
y9 = y(95993:107991);
y10= y(107992:119990);
 
  ys1 = y1+y2+y3+y4;       
% ys2 = y1+y2+y3+y4+y5+y6+y7+y8+y9-y10; 
% ys3 = y1+y2+y3+y4+y5+y6+y7+y8-y9-y10;       
% ys4 = y1+y2+y3+y4+y5+y6+y7-y8-y9-y10; 
% ys5 = y1+y2+y3+y4+y5+y6-y7-y8-y9-y10;       
% ys6 = y1+y2+y3+y4+y5-y6-y7-y8-y9-y10; 
% ys7 = y1+y2+y3+y4-y5-y6-y7-y8-y9-y10;       
% ys8 = y1+y2+y3-y4-y5-y6-y7-y8-y9-y10; 
% ys9 = y1+y2-y3-y4-y5-y6-y7-y8-y9-y10;       
% ys10= y1-y2-y3-y4-y5-y6-y7-y8-y9-y10; 
for i=1:2*Nstep+1
      fc(i)       = 0.0005e6*(i-Nstep-1); %搜索频率    
      expfreq     = exp(j*2*pi*fc(i)*ts*nn);
      Data_sin    = imag(expfreq);        
      Data_cos    = real(expfreq);
      I           = Data_sin.*ys1;
      Q           = Data_cos.*ys1;
 
      IQfreq      = fft(I+j*Q);  
 
      convIQ      = IQfreq .* CA_fre;
      peaks(i,:)  = abs(ifft(convIQ)).^2;
end
[value_peak codephases]=max(max(peaks));
[value_peak frequencys]=max(max(peaks'));
frequency = fc(frequencys);%中心频率;
codephaseChips = round(1023 - (codephases/11999)*1023);%CA码相位
frequency
codephaseChips
 
 
close all;
figure
plot(peaks(frequencys,:),'r-*');
grid on
xlabel('频率');
ylabel('幅度');
%% step5:三围搜索结构
gold_rate = 1.023e6;            
ts=1/fs;
tc=1/gold_rate;
b=[1:n];
c=ceil((ts*b)/tc);
01_036_m
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1天前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种结合粒子群优化(PSO)与分组卷积神经网络(GroupCNN)的时间序列预测算法。该算法通过PSO寻找最优网络结构和超参数,提高预测准确性与效率。软件基于MATLAB 2022a,提供完整代码及详细中文注释,并附带操作步骤视频。分组卷积有效降低了计算成本,而PSO则智能调整网络参数。此方法特别适用于金融市场预测和天气预报等场景。
|
5天前
|
算法
基于极大似然算法的系统参数辨识matlab仿真
本程序基于极大似然算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计,并计算估计误差及收敛曲线,对比不同信噪比下的误差表现。在MATLAB2022a版本中运行,展示了参数估计值及其误差曲线。极大似然估计方法通过最大化观测数据的似然函数来估计未知参数,适用于多种系统模型。
|
7天前
|
机器学习/深度学习 算法
基于小波神经网络的数据分类算法matlab仿真
该程序基于小波神经网络实现数据分类,输入为5个特征值,输出为“是”或“否”。使用MATLAB 2022a版本,50组数据训练,30组数据验证。通过小波函数捕捉数据局部特征,提高分类性能。训练误差和识别结果通过图表展示。
|
1月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
106 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
1月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
79 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
1月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
62 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
4月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
4月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章