当前位置:首页 > 代码 > 正文

gps数据解析matlab代码(GPS卫星坐标计算matlab)[20240427更新]

admin 发布:2024-04-27 15:13 175


本篇文章给大家谈谈gps数据解析matlab代码,以及GPS卫星坐标计算matlab对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

GPS伪距测量定位方程如何结算用户位置

如图所示,至少需要4颗卫星的数据,知道这4颗卫星离目标点的距离数值,然后receiver表示用户手持GPS的位置;可得方程组:

以下是matlab代码解上述方程组:

clear all;

clc;

load 'D:\Desktop\local_1\local_Mat\location.txt';

c = 3*10^8;

pointAt = [0;0;0;0];

for u=1:6

  lenAt = 1:8;

  for k = 1:8

      lenAt(k) = sqrt((location(k,2)-pointAt(1))^2 + (location(k,3)-pointAt(2))^2 + (location(k,4)-pointAt(3))^2 ) + c*pointAt(4);  

  end

  lenAt = lenAt';

  detlen = location(:,1) - lenAt;

  A = zeros(8,4);

  for k=1:8

      A(k,1) = -(location(k,2)-pointAt(1))/(location(k,1)-c*pointAt(4));

      A(k,2) = -(location(k,3)-pointAt(2))/(location(k,1)-c*pointAt(4));

      A(k,3) = -(location(k,4)-pointAt(3))/(location(k,1)-c*pointAt(4));

      A(k,4) = c;

  end

  detpoint = (A'*A)\A'*detlen;

  pointAt = detpoint + pointAt;

%     disp(pointAt);

end

disp('the ans is:');

disp(pointAt);

通过这个方法可以计算不止4颗卫星的数据的GPS位置,多余的几个数据可以减小GPS的测量误差。

怎么在matlab处理gps的数据

怎么在matlab处理gps的数据

你的问题可能是,已知x、y数值求y=f(x)的表达式。如是这样,可以Matlab的lsqcurvefit()函数或nlinfit()函数拟合y=f(x)函数的系数。

如何用matlab批量算gps地点间的距离 代码

如何用matlab批量算gps地点间的距离 代码

可以使用norm来做,比如:% By lyqmath

clc; clear all; close all;

p1 = [0 0];

p2 = [1 1];

norm(p1-p2)结果

ans = 1.4142 就是这两点的欧式距离,三维等情形类似处理。

用matlab对GPS扩频码作频谱分析的疑问

向下的气流沉默无阻

这种协调被称为手眼力,

因为手满足了

贪婪眼睛的任何欲

如果它想要某一点

在这儿,哈哈是微小的裂缝

只在圆木的一端可

gps信号和干扰的matlab仿真代码

x1=10.23;y1=6.24;z1=17.8; %假设的卫星位置参数

Code1=fGenerateNavigationData(x1,y1,z1);%产生导航电文,通过调用子函数fGenerateNavigationData实现

%将产生的Code1中的0找出转换为-1

index1=find(Code1==0);

Code1(index1)=-ones(1,length(index1));

SvNum=12; %设定卫星编号为12

Code2=zeros(1,1); %定义Code2的初值为0

Temp=fGenerateCAcode3(SvNum); %将编号为SvNum的卫星通过调用子函数fGenerateCAcode3生成C/A码

%将Temp中的0找出并转换为-1

index1=find(Temp==0);

Temp(index1)=-ones(1,length(index1));

Temp=[Temp Temp];

%生成Code2

for i=1:length(Code1)

Code2=[Code2 Code1(1,i)*Temp];

end

Code2=Code2(2:length(Code2));

%每位数据通过正弦波来调制

SinWave=sin([0:2*pi/8:2*pi*3/8]);

SinWave=single(SinWave);

GPSsignals=zeros(1,1);

SinWave=[SinWave SinWave];

for i=1:length(Code2)

GPSsignals=[GPSsignals Code2(1,i)*SinWave];

end

whos;

GPSsignals=GPSsignals(2:length(GPSsignals));

figure(2);

plot(GPSsignals);axis([100,4000,-1.5 1.5]);

figure(3);

plot(10*log10(abs(fft(GPSsignals))));

产生C/A码的方法

clc;

clear all;

%产生C/A码的方法一

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%

k1=2;k2=6;delay=5; %定义参数k1、k2以及延迟

Reg=-ones(1,10); %定义寄存器1~10的初始值都为-1

%通过循环产生长度为1024的MLS序列以及G2序列

for j=1:1023

MLS(j)=Reg(10); %将士0号寄存器的输出作为MLS输出

modulo=Reg(2)*Reg(3)*Reg(6)*Reg(8)*Reg(9)*Reg(10);

Reg(2:10)=Reg(1:9);

Reg(1)=modulo;

g2(j)=Reg(k1)*Reg(k2); %将参数k1和k2所代表的寄存器模2相加后作为G2输出

%g2即为输出

end

%将G2与MLS进行延迟检验

if MLS == g2([delay:1023 1:delay-1])

disp('OK') ;

else

disp('not match')

end

%在G2序列中找出-1并转换为0,找出1并转换为1

ind1=find(g2==1);

ind2=find(g2==1);

g2(ind1)=ones(1,length(ind1));

g2(ind2)=zeros(1,length(ind2));

temp=g2(1:120);

x(1)=0;

Show(1)=temp(1);

P=2;

%下面的循环是为了将结果显示成方波形式

for i=2:length(temp)

if temp(i)==temp(i-1)

x(P)=i-1;

Show(P)=temp(i-1);

x(P+1)=i-1+0.01;

Show(P+1)=temp(i);

P=P+2;

else

Show(P)=temp(i);

x(P)=i;

P=P+1;

end

end

%画出仿真结果图

plot(x,Show+1);

axis([0 length(x)-60 -0.1 1.1]);

grid on;

子程序:

%子函数fGenerateNavigationData

function y=fGenerateNavigationData(x1,y1,z1);

%将传进的参数转换为十六进制数

%x=x1;

%y=y1;

%z=z1;

x=10.23;

y=6.24;

z=17.8;

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;

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中的数转换为ASCⅡ码表中的数值

for i=1:l

temp=int8(TotalStr(i));

if (temp58)

temp=temp-96+10;

else

temp=temp-47;

end

DataCode=[DataCode Table1(temp,:)];

end

y=DataCode(2:length(DataCode));

figure(1);

subplot(2,1,1);

plot(y);axis([0 195 -0.5 1.5]);title('导航电文数据(0 1)');

%将产生的Code1中的0找出转换为-1

index1=find(y==0);

y(index1)=-ones(1,length(index1));

subplot(2,1,2);plot(y);axis([0 195 -1.5 1.5]);title('导航电文数据(-1 1)');

自己慢慢理解吧

pudn上面有相关资料可以下载,可以参考一下

gps数据解析matlab代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于GPS卫星坐标计算matlab、gps数据解析matlab代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/699.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载