资源简介
《gps基本原理及其matlab仿真》(西安电子科技大学)里面的程序源代码,都是自己亲自敲上的。对入门很有用的。这是获取导航信息的。
代码片段和文件信息
clear; %清除所有的变量
clc; %关闭所有指令窗
close all; %关闭所有未隐藏的窗口
load GPSsignal.mat %从GPSsignal.mat中获得所有变量到Workspace中
%n=length(GPSsignal);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SvNum=12;
%调用fGenerateCAcode3.m文件, 获得卫星编号为12的C/A码
Temp=fGenerateCAcode3(SvNum);
index1=find(Temp==0); %找出C/A码中的低电平, 形成列向量存放在index1中
Temp(index1)=-ones(1length(index1)); %返回一个与index1相同长度的一维数组
SinWave=sin([0:2*pi/8:2*pi*7/8]); %产生一个步进2*pi/8的正弦波
SinWave=single(SinWave); %将SinWave矩阵转换成单精度矩阵
GpsMatch=zeros(11); %生成一个1*1的零矩阵
SinWave=[SinWave SinWave SinWave SinWave SinWave];
GPSsignal.mat %生成一个5 ms的连续信号
for i=1:length(Temp)
GpsMatch=[GpsMatch Temp(1i)*SinWave];
end
GpsMatch=GpsMatch(2:length(GpsMatch)); %生成本地匹配信号并去掉第一个元素
n=length(GpsMatch);
m=50000;
for i=1:m
Res(i)=GpsMatch*GPSsignal(1i:i+n-1)‘;
%将本地生成匹配信号GpsMatch与GPSsignal循环卷积
end
plot(1:mRes); %图示卷积的幅值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Res2=abs(Res);
for i=1:100 %该循环目的是找出Res中的最大值
[C I]=max(Res2);
Res2(1I)=0;
Index(1i)=I;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%下面是要找到GPS signal中的导航电文%
%方法是检验GPS signal(已被C/A code调制过)的每个最大值处是否具有相位偏移%
w=length(GpsMatch);
m=1;
for i=Index(11):w:(length(GPSsignal)-w+1)
NavigationBit(m)=(GPSsignal(i:i+w-1)*GpsMatch′)/w;
m=m+1;
end
NavigationCode=zeros(11);
NavigationCode(11)=NavigationBit(11);
m=2;Count=0;
for i=2:length(NavigationBit)
if(NavigationBit(1i)~=NavigationBit(1i-1))
NavigationCode(1m)=NavigationBit(1i);
m=m+1;
Count=0;
else
Count=Count+1;
if(Count>=5)
NavigationCode(1m)=NavigationBit(1i);
m=m+1;
Count=0;
end
end
end
%%%%%我们已得到导航码NavigationCode下面将它转化成数字%%%%
NavigationCode=NavigationCode./abs(NavigationCode);
index1=find(NavigationCode<0);
NavigationCode(index1)=zeros(1length(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‘;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4316 2013-07-30 15:38 huodaohangxinxi.m
- 上一篇:k-shell 根据k-shell算法
- 下一篇:Cat猫群算法
相关资源
- k-shell 根据k-shell算法
-
Matlab ba
sed DIC code Version 1 130814 - tofloat函数M文件
- local Maximum matlab函数
- matlab填充图像边界内部
- 小波变换的水下图像目标检测
- matlab 深度学习toolbox(Deep Learn Toolbo
- 边界的声波逆时偏移
- SPIN_Matlab
- 石墨烯结构编程图
- 计算聚类算法评价指标之一
- Color transfer between images 非常经典的彩
- 受限玻尔兹曼机matlab源代码
- matlab植物叶片分类
- OCR MATLAB OCR中英文段落的提取、分割
- ssim衡量两幅图像相似度的指标
- matlab的流体计算和传热
- Fuzzy Neural Network by matlab 四个不同的
- 手机拍摄图像的二维码的提取
- 利用四元数对彩色图像作图像处理
- LBP方法
- 织物疵点检测和识别系统
- SAO星表数据
- 粒子群算法路径规划动画演示
- 新型的配电网潮流计算的matlab源码
- 雷达交叉定位精度分析
- 磁流变减震器模型
- D2D的自适应链路仿真
- matlab实现的读取视频和音频
- matlab平台DCT算法压缩视频
评论
共有 条评论