• 大小: 5.35 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-08-30
  • 语言: 其他
  • 标签: GPS  

资源简介

GPS捕获与跟踪程序,采用相干与非相干方法实现捕获与跟踪,MATLAB程序。

资源截图

代码片段和文件信息

clear;
%指标是signalpower=-185dBW,此时可以进行室内定位;
%指标是SNR=-52dB,此时noisepower=-133dBW
Dopler_bound = 10; %原来是20,为加快运行速度,减少频率槽数
Freq_bin = 500;
Fc = 1250000;
Length_of_data = 5000;
Length_of_fft = 4096;
NUM = 5;%50010;
Signalpower = -177 %I路信号的功率(dBW)
Noisepower = -143 %噪声的复功率(dBW)
Threshold = 1e5;
Times_of_ncoh = 40;

%变量初始化
successcount=0;
%在卫星从地平线升起或降落时,用户速度900m/s时径向速度差不多(+ -)10K,

fid_ca=fopen(‘CA_5000.txt‘‘r‘);
CA_samp=fscanf(fid_ca‘%d‘);%5000点
fclose(fid_ca);
CA_samp=CA_samp‘;

%本地伪码FFT:CA_fft
CA_local=Average(Length_of_data Length_of_fft CA_samp);
%plot(CA_local)
CA_fft=fft(CA_local);
%plot(imag(CA_fft))

Idata=ReadIn( ); %把文本Idata全部读到Idata数组中
Qdata=ReadIn( ); %  
Idata=Idata‘;
Qdata=Qdata‘;
Idata(1:NUM)=[]; %删去前NUM个元素
Qdata(1:NUM)=[];

AMP=sqrt(2*10^(Signalpower/10))   %输入量为幅度系数,单位相当于(V),%AMP=1e-9,此时signal power=-183dBW
DIV_AWGN= 10^(Noisepower/10) %输入量为高斯白噪声的方差。DIV_AWGN:在均值means为0时,高斯白噪声的方差即噪声的功率单位为(W)

for k=1:200 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %变量初始化
    acq_tag = 0;
    coh_count = 1;
    ncoh_count = 1;
    highdop_index = 1;%初始值
    lowdop_index = 0;
    %初始化矩阵并清零
    R = zeros(20(2*Dopler_bound+1)*Length_of_fft);
    sum_cohe_accum = zeros(Times_of_ncoh(2*Dopler_bound+1)*Length_of_fft);%相干累积和清零
    sum_ncohe_accum = zeros(1(2*Dopler_bound+1)*Length_of_fft);%非相干累积和清零
    ncohe_accum = zeros(1(2*Dopler_bound+1)*Length_of_fft);
   
    [grgi]=MyAwgn(62*5000*20-NUMDIV_AWGN);%产生随机高斯白噪声:
    Ich = Idata*AMP+gr;
    Qch = Qdata*AMP+gi;
        
    for n=1:Times_of_ncoh %把I和Q转变成二维数组Isn和Qsn
        Isn(n1:1e5) = Ich(1+(n-1)*1e5 : n*1e5);
        Qsn(n1:1e5) = Qch(1+(n-1)*1e5 : n*1e5);
    end;
    for ncoh_count=1:Times_of_ncoh%%%进行非相干累积
        while coh_count<=20 %%进行相干累积
            while (highdop_index <= Dopler_bound) | (lowdop_index>=(-1)*Dopler_bound) %一次5000点搜索
                if  lowdop_index >= Dopler_bound*(-1)
                    cos_localcarr = LocalCarrier(lowdop_index Freq_bin Fc);
                    sin_localcarr = LocalCarrier(lowdop_index Freq_bin Fc);
                    I=Isn(ncoh_count1+(coh_count-1)*Length_of_data : coh_count*Length_of_data ).*cos_localcarr-Qsn(ncoh_count1+(coh_count-1)*Length_of_data : coh_count*Length_of_data ).*sin_localcarr;
                    Q=Isn(ncoh_count1+(coh_count-1)*Length_of_data : coh_count*Length_of_data ).*sin_localcarr+Qsn(ncoh_count1+(coh_count-1)*Length_of_data : coh_count*Length_of_data ).*cos_localcarr;
                    I_short = Average( Length_of_data Length_of_fft I);
                    Q_short = Average( Length_of_data Length_of_fft Q);
                    Rev_fft = fft(I_short+i*Q_short); %接收来的信号做fft
                    R(coh_count1+(lowdop_index+Dopler_bound)*Length_of_fft : (lowdop_index+Dopler_bound+1)*Length_of_fft) = ifft(Rev_fft.*conj(CA_fft)); %相关值R,R其实是一个矩阵
%                    R_mod(coh_count1+(lowdop_index+Dopler_bound)*Length_of_fft : (lowdop_index+Dopler_bound+1)*Length_of_fft) = abs(R(coh_count1+(lowdop_index+Dop

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7543  2008-03-03 17:39  复件 matlab_floatsouce1.10\Aquisition.m

     文件        316  2007-12-26 18:12  复件 matlab_floatsouce1.10\Average.m

     文件      12494  2007-06-16 20:37  复件 matlab_floatsouce1.10\CA_5000.txt

     文件        279  2007-12-26 16:46  复件 matlab_floatsouce1.10\LocalCarrier.m

     文件        402  2007-12-30 16:30  复件 matlab_floatsouce1.10\MyAwgn.m

     文件        128  2007-12-30 16:19  复件 matlab_floatsouce1.10\noise.m

     文件        260  2008-01-10 10:54  复件 matlab_floatsouce1.10\ReadIn.m

     文件        198  2007-12-29 18:38  复件 matlab_floatsouce1.10\Unaverage.m

     文件        132  2008-03-05 15:53  复件 matlab_floatsouce1.10\track.m

     目录          0  2008-03-18 09:46  复件 matlab_floatsouce1.10

----------- ---------  ---------- -----  ----

                21970                    11


评论

共有 条评论