GPS软件接收机(1)——GPS信号捕获

解读Darius Plausinaitis, Dennis M. Akos所著的关于GPS信号捕获的代码

最新上传所有源码

链接:https://pan.baidu.com/s/1M2oiCWcm9e4DTbsn8g1Fuw 
提取码:ewxv

  1. 参数初始化设置
samplesPerCode = round(settings.samplingFreq / ...
                      (settings.codeFreqBasis / settings.codeLength));
% 计算每个C/A码包含多少采样点,“...”表示续行

signal1 = longSignal(1 : samplesPerCode);
signal2 = longSignal(samplesPerCode+1 : 2*samplesPerCode);
%取相邻的两个信号,信号长度为1ms,采样点数为samplesPerCode

signal0DC = longSignal - mean(longSignal); 
%去直流

ts = 1 / settings.samplingFreq;
%计算采样时间间隔

phasePoints = (0 : (samplesPerCode-1)) * 2 * pi * ts;
%计算1ms信号内的载波相位点

numberOfFrqBins = round(settings.acqSearchBand * 2) + 1;
%计算频率捕获的个数,500Hz步进 总共2kHz,共41个

caCodesTable = makeCaTable(settings);
% makeCaTable函数根据采样频率产生32颗指定卫星的CA码 ,此时为32*samplesPerCode矩阵


%--- 初始化捕获结果矩阵 -------------------------------

results     = zeros(numberOfFrqBins, samplesPerCode);
%一颗卫星的包含搜索频率个数与一个C/A码采样个数的零向量

% Carrier frequencies of the frequency bins
% 
frqBins     = zeros(1, numberOfFrqBins);
%产生一颗卫星的载波偏移初始向量

%--- Initialize acqResults ------------------------------------------------
acqResults.carrFreq     = zeros(1, 32);
%初始化32颗卫星的载波频率

acqResults.codePhase    = zeros(1, 32);
% C/A code phases of detected signals

acqResults.peakMetric   = zeros(1, 32);
% Correlation peak ratios of the detected signals

fprintf('(');

2. 并行码搜索的方式捕获码相位和载波频率

2.1.求信号与本地c/a码的相关值

for PRN = settings.acqSatelliteList
%settings.acqSatelliteList=1:32

    caCodeFreqDom = conj(fft(caCodesTable(PRN, :)));%某颗PRN卫星的CA码采样值的FFT区共轭 

    for frqBinIndex = 1:numberOfFrqBins
        %带宽为500Hz的频率遍历
       
        frqBins(frqBinIndex) = settings.IF - ...
                               (settings.acqSearchBand/2) * 1000 + ...
                               0.5e3 * (frqBinIndex - 1);
       
  • 19
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值