1 1 1 0;?
1 1 1 1;]; ? Result=″; ?
for i=1:4:length(NavigationCode) ? TT=NavigationCode(i:i+3);?
MatchTable=Table1(:,1:4)-[TT; TT; TT; TT; TT; TT;TT; TT; TT;TT; TT; TT;TT; TT; TT;TT]; MatchTable=sum(abs(MatchTable)′);? TempChar=′0′;
BestMatch=find(MatchTable==min(MatchTable)); %用查表的方式将导航码NavigationCode转换成十六进制数? switch (BestMatch)? case 1 ?
TempChar=′0′; ? case 2 ?
TempChar=′1′;? case 3 ?
TempChar=′2′;? case 4 ?
TempChar=′3′;? case 5 ?
TempChar=′4′;? case 6?
TempChar=′5′; case 7 ?
TempChar=′6′;? case 8?
TempChar=′7′;? case 9?
TempChar=′8′;? case 10?
TempChar=′9′;? case 11?
TempChar=′a′;? case 12?
TempChar=′b′;? case 13?
TempChar=′c′; case 14?
TempChar=′d′;? case 15?
TempChar=′e′;? case 16?
TempChar=′f′;?
16 otherwise? end ?
Result=strcat(Result, TempChar); %将Result与TempChar两行的字符连接到一起
end?
Num1=([0:2*pi8:2*pi*78]);? SinWave=single(SinWave);? GPSsignal=zeros(1,1);?
SinWave=[SinWave SinWave SinWave SinWave SinWave];? for i=1:length(Code2)?
GPSsignal=[GPSsignal Code2(1,i)*SinWave];? end?
GPSsignal=GPSsignal(2:length(GPSsignal));? %将卫星数据GPSsignal存入GPSsignal.mat文件中? save GPSsignal.mat GPSsignal
下面介绍两个调用的子函数fGenerateCAcode3和fGenerateNavigationData。 ?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%? %子函数fGenerateCAcode3?
function y=fGenerateCAcode3(svnum)?
%将程序2改为子函数的形式, 输入为卫星编号, 输出为相应的CA码? g2s = [5;6;7;8;17;18;139;140;141;251;252;254;255;256;257;258;? 469;470;471; ...?
472;473;474;509;512;513;514;515;516;859;860;861;862];? g2shift=g2s(svnum,1);? reg =-1*ones(1,10);? for i = 1:100? g1(i) = reg(10);
slave1 = reg(3)*reg(10);? reg(1,2:10) = reg(1:1:9);? reg(1) = slave1;? end?
reg = -1*ones(1,10);? ?
Table1=[ 2 6;?
3 7;? 4 8;? 5 9;? 1 9;? 2 10;? 1 8;? 2 9;? 3 10; 2 3;?
17 3 4;? 5 6;? 6 7;? 7 8;? 8 9;? 9 10;? 1 4;? 2 5;? 3 6;? 4 7;? 5 8;? 6 9;? 1 3;? 4 6;];? for i = 1:100
save2 = reg(2)*reg(3)*reg(6)*reg(8)*reg(9)*reg(10);? g2(i) = reg(Table1(svnum,1))*reg(Table1(svnum,2));? reg(1,2:10) = reg(1:1:9);? reg(1) = save2;? end?
%将G1和G2卷积后得到CA码? ss??-ca = g1.*g2;? ca = ss??-ca;? ind1=find(ca==-1);? ind2=find(ca==1);?
ca(ind1)=ones(1,length(ind1));? ca(ind2)=zeros(1,length(ind2));? y=ca;?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %子函数fGenerateNavigationData?
function y=fGenerateNavigationData(x1,y1,z1);? %将传进的参数转换为十六进制数? x=x1; ? y=y1;? z=z1;?
str1 = num2hex(x); ? str2 = num2hex(y);? str3 = num2hex(z);? ?
Table1=[0 0 0 0; ?
0 0 0 1;? 0 0 1 0; 0 0 1 1;? 0 1 0 0;?
18 0 1 0 1;? 0 1 1 0;? 0 1 1 1;? 1 0 0 0;? 1 0 0 1;? 1 0 1 0;? 1 0 1 1;? 1 1 0 0;? 1 1 0 1;? 1 1 1 0;? 1 1 1 1;];? TotalStr=[str1 str2 str3];? DataCode=zeros(1,1); l=length(TotalStr);?
%将TotalStr中的数转换为ASCII码表中的数值? for i=1:l?
temp=int8(TotalStr(i)); ? if(temp>58)?
temp=temp-96+10;? else?
temp=temp-47;? end? ?
DataCode=[DataCode Table1(temp,:)];? end?
y=DataCode(2:length(DataCode)); 第七章 总结和展望
本文课题是“基于METLAB的GPS全球定位系统关键技术方针”,通过一些参考书了解GPS的基本原理,系统以及对计算机语言MATLAB的初步掌握。在论文中对GPS的一些关键技术也有所掌握,如GPS测量的一些基本知识时间测量值测距,利用参考坐标系和伪随机噪声确定位置,GPS载波相位的测定。天体坐标系和地球坐标系,世界时系统,GPS卫星运动以及GPS卫星运动和开普勒定律的关系,CA码的产生以及相关知识,CA码起始点的精确性。GPS卫星信号的捕获,卫星捕获方法,GPS卫星信号捕获的一些例子,GPS信号接收机电路,基本构成和一些基本知识,,GPS信号接收机仿真系统,GPS信号的跟踪 跟踪过程的高测试精度。
19