www.gusucode.com > GPS信号捕获程序,信号源为东方联星Newstar210M采集到的中频数字信号(含GUI界面)- > sourcode/sampleCAcode.m

    function SampSequence=sampleCAcode(svnum,sampleFrequence,sampleTime)

%sample a given C/A sequence with a high sample frequence

%svnum                      is the ID of SV's PRN
%sampleFrequence      is the sample frequence
%sampleTime             is the millisecond number

%Created 4/15/05, Hao Yu, sendtoyuhao@yahoo.com.cn 
%Copy right olinkstar corp. Bejing China

%*********C/A of sat # sampled at sampleFrequence for sampleTime ms

% %use for debug
% clear;clc;
% svnum=12;   sampleFrequence=16367667;   
% sampleTime=2;

UnitTime=1.0;                                                     % time's unit is 1 second;
CACyc=UnitTime/(1023*1000);                          %c/a code period
SampCyc=UnitTime/(sampleFrequence);          %sampled period
totalTime=sampleTime;                                  %total time 

n=totalTime;

catemp=generatecacode(svnum);
caseque=catemp;
for counter=2:n,
    caseque=[caseque catemp];
end

SampPoint=fix(sampleFrequence*n/1000);          %the sampled points'number in n ms
SampSequence=zeros(1,SampPoint);              %define the sample sequence

%sample the C/A sequence by a higher frequence
CASNo=1;
for SSNo=1:1:SampPoint,
    if SSNo*SampCyc>CASNo*CACyc,
        CASNo=CASNo+1;
    end    
    SampSequence(SSNo)=caseque(CASNo);
end