資源簡介
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
- 上一篇:teechart 源代碼
- 下一篇:企業員工工資管理系統
評論
共有 條評論