第一范文网 - 专业文章范例文档资料分享平台

【最新版】MATLAB仿真GPS的毕业论文开题报告

来源:用户分享 时间:2025/11/4 16:27:36 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

if (x2(i)==x2(i-1)) y2(m)=x2(i); t2(m)=t(i); m=m+1; else

y2(m)=x2(i-1); y2(m+1)=x2(i); t2(m)=t(i);

t2(m+1)=t(i)+0.01; m=m+2; end

if (x3(i)==x3(i-1)) y3(n)=x3(i); t3(n)=t(i); n=n+1; else

y3(n)=x3(i-1); y3(n+1)=x3(i); t3(n)=t(i);

t3(n+1)=t(i)+0.01; n=n+2; end end

%%%%%%画图说明产生的三组伪随机码%%%%% subplot(3,1,1); plot(t1,y1,′y′); grid on; 

subplot(3,1,2); plot(t2,y2,′y′); grid on; 

subplot(3,1,3); plot(t3,y3,′y′); grid on;

whitebg(′black′); 

%将三组伪随机值存放到新矩阵并传送到Workspace中, 方便以后调用数据% simin1=[t1;y1]′; simin2=[t2;y2]′; simin3=[t3;y3]′;

输入上面的文本后,运行得到如图5-29所示的伪随机码。 其结果还可以通过Workspace查看,之所以要传送到Workspace中, 是因为我们在后面的仿真中还要用到这些伪随机码。

图 3.8 模拟三组伪随机码的仿真示意图

3.5.2 获取导航信息的仿真

在这个仿真中,我们要得到卫星的导航信息,其中忽略了频率偏移,且卫星信号的数据是基于前面章节中得到的卫星数据,存放在GPSsignal.mat文件中。在运行程序之前, 我们必须将GPSsignal.mat中的数据传送到Workspace中。

clear; %清除所有的变量 clc; %关闭所有指令窗

close all; %关闭所有未隐藏的窗口

load GPSsignal.mat %从GPSsignal.mat中获得所有变量到Workspace中 %n=length(GPSsignal); 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SvNum=12;

%调用fGenerateCAcode3.m文件, 获得卫星编号为12的CA码 Temp=fGenerateCAcode3(SvNum);

index1=find(Temp==0); %找出CA码中的低电平, 形成列向量存放在index1中 Temp(index1)=-ones(1,length(index1)); %返回一个与index1相同长 度的一维数组

SinWave=sin([0:2*pi8:2*pi*78]); %产生一个步进2*pi8的正弦波

SinWave=single(SinWave); %将SinWave矩阵转换成单精度矩阵 GpsMatch=zeros(1,1); %生成一个1*1的零矩阵 SinWave=[SinWave SinWave SinWave SinWave SinWave]; 

GPSsignal.mat %生成一个5 ms的连续信号 for i=1:length(Temp)

GpsMatch=[GpsMatch Temp(1,i)*SinWave]; end

GpsMatch=GpsMatch(2:length(GpsMatch)); %生成本地匹配信号并去掉第一个元素 n=length(GpsMatch); m=50000; for i=1:m

Res(i)=GpsMatch*GPSsignal(1,i:i+n-1)′; 

%将本地生成匹配信号GpsMatch与GPSsignal循环卷积 end

plot(1:m,Res); %图示卷积的幅值 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Res2=abs(Res);

for i=1:100 %该循环目的是找出Res中的最大值 [C I]=max(Res2); Res2(1,I)=0; Index(1,i)=I; end; 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %下面是要找到GPS signal中的导航电文%

%方法是检验GPS signal(已被CA code调制过)的每个最大值处是否具有相位偏移% w=length(GpsMatch); m=1;

for i=Index(1,1):w:(length(GPSsignal)-w+1)

NavigationBit(m)=(GPSsignal(i:i+w-1)*GpsMatch′)w; m=m+1; end

NavigationCode=zeros(1,1);

NavigationCode(1,1)=NavigationBit(1,1); m=2;Count=0;

for i=2:length(NavigationBit)

if(NavigationBit(1,i)~=NavigationBit(1,i-1)) NavigationCode(1,m)=NavigationBit(1,i); m=m+1;

Count=0; else

Count=Count+1; if(Count>=5)

NavigationCode(1,m)=NavigationBit(1,i); m=m+1; Count=0; end end end

%%%%%我们已得到导航码NavigationCode,下面将它转化成数字%%%% NavigationCode=NavigationCode.abs(NavigationCode); index1=find(NavigationCode<0);

NavigationCode(index1)=zeros(1,length(index1)); Table1=[0 0 0 0; 0 0 0 1; 0 0 1 0; 0 0 1 1; 0 1 0 0; 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;];  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′;

【最新版】MATLAB仿真GPS的毕业论文开题报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2nwzm0t46g6m3qp9xkwe9ersa9pruq00xaa_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top