基于MATLAB的GPS信号的仿真
基于某MATLAB地GPS信号仿真完整源代码123
配套毕业设计论文见百度文库请搜索《基于MATLAB的GPS信号仿真123》附录C 仿真程序代码1、数据码的产生function datacode=data(x)y=rand(1,x);for i=1:xif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendy(1)=0;show2(1)=datacode(1);q=2;for i=1:length(datacode)for j=1:100y(q)=i-1+j*0.01;show2(q)=datacode(i);q=q+1;endendplot(y,show2);axis([0 length(datacode) -0.2 1.2]);1、C/A码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);number=input('请输入卫星PRN号码:number=');cacode=CAgenerate(number);temp=cacode(1:100)x(1)=0;show(1)=temp(1);p=2;%下面的循环是为了将结果显示成方波形式for i=1:length(temp)for j=1:100x(p)=i-1+j*0.01;show(p)=temp(i);p=p+1;endend%画出仿真结果图subplot(4,1,2);plot(x,show);title('C/A码');axis([0 100 -0.2 1.2]);%截取CA码的前十个数据进行扩频,每个数据插入5个CA序列 cacode1=cacode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),cacode1(addr));endend%下面的循环是为了将结果显示成方波形式x(1)=0;show(1)=kuopindata(1);p=2;for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave];for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);plot(GPSsignal(1:500));title('调制后数据');C/A码产生的子程序CAgenerate:function cacode=CAgenerate(number)if (number<1)|(number>37)disp('输入参数必须在1 ~ 37之间取值');returnendCACode=zeros(1,1023); %生成一个1*1023的零矩阵% 设置寄存器初相Reg1=[1,1,1,1,1,1,1,1,1,1];Reg2=[1,1,1,1,1,1,1,1,1,1];% 设置反馈点,1表示需要反馈gp1=[0,0,1,0,0,0,0,0,0,1];gp2=[0,1,1,0,0,1,0,1,1,1];% 抽头G2Table=[ 2,3,4,5,1,2,1,2,3,2,3,5,6,7,8,9,1,2,3,4,5,6,1,4,5,6,7,8,1,2,3 ,4,5,4,1,2,4;6,7,8,9,9,10,3,4,6,7,8,9,10,4,5,6,7,8,9,3,6,7,8,9,10,6,7,8,9,10,10,7,8,10;] % 生成一个周期的伪码序列for m=1:1023CACode(m)=mod(Reg1(10)+Reg2(G2Table(1,number))+Reg2(G2Table(2,number)),2);Reg1=[mod(Reg1*gp1',2),Reg1(1:9)];Reg2=[mod(Reg2*gp2',2),Reg2(1:9)];endcacode=CACode;2、C/A码的相关性分析clc;n=input('请输入卫星PRN号码:n=');cacode1=CAgenerate(n);%在G2序列中找出-1并转换为0,找出1并转换为1ind1=find(cacode1==1);ind2=find(cacode1==0);cacode1(ind1)=-ones(1,length(ind1)); cacode1(ind2)=ones(1,length(ind2)); N=1023;z=zeros(1,1023);for i=0:N-1for k=i+1:N-1z1(k)=cacode1(k)*cacode1(k-i); z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/N;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 1300 -0.5 1.2]);n=input('请输入卫星PRN号码:n='); cacode2=CAgenerate(n);ind1=find(cacode2==1);ind2=find(cacode2==0);cacode2(ind1)=-ones(1,length(ind1)); cacode2(ind2)=ones(1,length(ind2));N=1023;h=zeros(1,1023);for i=0:N-1for k=i+1:N-1h1(k)=cacode1(k)*cacode2(k-i); h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/N;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 1300 -0.5 1]);4、 P码的产生及扩频调制clc;c=input('请输入数据码的长度:c='); y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);NumberPCode=input('enter the NumberPcode='); NumberShift=input('enter the NumberShift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift);x(1)=0;show(1)=pcode(1);p=2;for i=1:length(pcode)for j=1:100x(p)=i-1+j*0.01;show(p)=pcode(i);p=p+1;endendsubplot(4,1,2);plot(x,show);title('P码');axis([0 length(pcode) -0.2 1.2]);pcode=pcode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50); elsedatacodek((i-1)*50+1:i*50)=zeros(1,50); endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),pcode(addr)); endendx(1)=0;show(1)=kuopindata(1);p=2;%下面的循环是为了将结果显示成方波形式for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave];for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);title('调制后数据');plot(GPSsignal(1:500));以下是P码产生的子程序Pcode:function pcode=Pcode(a,NumberPCode,NumberShift) % P码产生reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1a=0;rx1b=0;rx2a=0;rx2b=0;x1bWork=1;x2aWork=1;x2bWork=1;N=NumberShift;C1=4092*3750;C2=4093*3749;z1a=mod(N,4092);%取余数x1a=mod([(N-z1a)/4092],3750);y1a=(N-z1a-4092*x1a)/C1;if ((N-C1*y1a)>=C2)z1b=4092;x1bWork=0;x1b=3748;elsez1b=mod((N-C1*y1a),4093);x1bWork=1;x1b=(N-z1b-C1*y1a)/4093;endm=mod(N,(C1+37));y2a=(N-m)/(C1+37);if (m>=C1)dv=m-C1;elsedv=0;endz2a=mod((m-dv),4092);x2a=mod((((m-dv)-z2a)/4092),3750);z2b=mod((m-dv),4093);if (m>=C2)x2b=3748;elsex2b=(m-z2b)/4093;end%各移位寄存器的状态for i=1:z1aslave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)= reg1a(1:11);reg1a(1)=slave1a;endfor i=1:z1bslave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11 )+reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;endfor i=1:z2aslave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+ reg2a(10)+reg2a(11+reg2a(12)) ,2);reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;endfor i=1:z2bslave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2);reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;end%各控制变量的判断if z1a==4091rx1a=1;endif z1b==4092rx1b==1;endif z2a==4091rx2a=1;x2aWork=0;endif z2b==4092rx2b=1;x2bWork=0;end%开始产生P码p=zeros(NumberPCode,1);x1acou=0;x1bcou=0;x2acou=0;x2bcou=0;cou37=dv;x2(1:a)=1;for i=1:(NumberPCode+37)x1(i)=mod( reg1a(12)+reg1b(12),2);x2(i+a)=mod( reg2a(12)+reg2b(12),2);%寄存器x1b的移位函数if x1bWork==1if rx1b==0slave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;else if rx1b==1reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1b=0;endendelse if x1bWork==0endendif reg1b==[0 1 0 1 0 1 0 1 0 1 0 0 ]rx1b=1;x1bcou=x1bcou+1;if x1bcou==3749x1bwork=0;x1bcou=0;endend%寄存器x1a的移位函数if rx1a==0slave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)=reg1a(1:11);reg1a(1)=slave1a;else if rx1a==1reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];rx1a=0;endendif reg1a==[0 0 1 0 0 1 0 0 1 0 0 0]rx1a=1;x1acou=x1acou+1;if x1acou==3750x1bwork=1;x1acou=0;endend%寄存器x2b的移位函数if x2bWork==1if rx2b==0slave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;else if rx2b==1x2bout=reg2b(11);reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx2b=0;endendelse if x2bWork==0reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];x2bWork=1;rx2b=0;endendif reg2b==[0 1 0 1 0 1 0 1 0 1 0 0]rx2b=1;x2bcou=x2bcou+1;if x2bcou==3749x2bWork=0;x2bcou=0;endend%寄存器x2a的移位函数if x2aWork==1if rx2a==0slave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10)+reg2a(11)+reg2a(12) ,2); reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;else if rx2a==1reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];rx2a=0;endendelse if x2aWork==0if rx2a==1cou37=cou37+1;if cou37==37rx2a=0;x2awork=1;cou37=0;endendendendif reg2a==[0 1 0 0 1 0 0 1 0 0 1 1] rx2a=1;x2acou=x2acou+1;if x2acou==3750x2awork=0;x2acou=0;endendendfor i=1:NumberPCodep(i)= mod( x1(i)+x2(i),2);endp=p';pcode=p';5、 P码的相关性分析clc;NumberPCode=input('enter the number Pcode='); NumberShift=input('enter the numbershift='); a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift);ind1=find(pcode==1);ind2=find(pcode==0);pcode(ind1)=-ones(1,length(ind1));pcode(ind2)=ones(1,length(ind2));M=NumberPCode;z=zeros(1,M);for i=0:M-1for k=i+1:M-1z1(k)=pcode(k)*pcode(k-i);z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/M;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 M -0.5 1.2]);a=input('enter a=');NumberShift=input('enter the numbershift='); pcode2=Pcode(a,NumberPCode,NumberShift);h=zeros(1,M);for i=0:M-1for k=i+1:M-1h1(k)=pcode(k)*pcode2(k-i);h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/M; endsubplot(2,1,2);plot(h);title('互相关特性'); axis([-50 M -0.5 1]);。
2基于MATLAB的位置跟踪系统模糊控制仿真
实验二 基于MATLAB 的位置跟踪系统模糊控制仿真一、实验目的及要求1.能针对某系统(如二阶系统),设计出能够跟踪某一位置曲线的模糊控制器; 2.能够用MATLAB 软件中的M 文件实现模糊控制器;3.能够用MATLAB 软件的Simulink 工具实现位置跟踪系统,其中控制器由M 文件实现的模糊控制器提供。
二、仪器、设备微型计算机(安装有 MATLAB 软件) 1台 三、实验任务 针对一个二阶系统 s50s 400)(2+=s G试设计模糊控制器,实现其控制输出为正弦信号0.8sin(10t)。
四、利用MATLAB 的Simulink 模块实现位置跟踪系统的模糊控制五、利用MATLAB 的M 文件实现位置跟踪系统的模糊控制器仿真 1. 模糊控制器的设计步骤1) 模糊控制器的结构二输入、单输出的模糊控制器是最常见的结构形式。
System fuzzf: 2 inputs, 1 outputs, 49 rulesec (7)图2-1 模糊控制器的结构示意图2) 定义输入输出模糊集对误差E 、误差变化EC 及控制量u 的模糊集及其论域定义如下:E 、EC 和u 的模糊集均为: {}PB PM PS Z NS NM NB ,,,,,,E 、EC 的论域均为:{-3,-2,-1,0,1,2,3} u 的论域为:{-4.5,-3,-1.5,0,1,3,4.5}3) 定义输入输出隶属函数模糊变量误差E 、误差变化EC 及控制量u 的模糊集和论域确定后,需对模糊语言变量确定隶属函数,确定论域内元素对模糊语言变量的隶属度。
4) 建立模糊控制规则根据人的经验,根据系统输出的误差及误差的变化趋势来设计模糊控制规则。
模糊控制规则语句构成了描述众多被控过程的模糊模型。
5) 建立模糊控制表模糊控制规则可采用模糊规则表2-1来描述,共49条模糊规则,各个模糊语句之间是或的关系,由第一条语句所确定的控制规则可以计算出u1。
基于Matlab/Simulink的数字中频GPS信号软件模拟器
在 仿真 建模 中 , 只考虑对 接收机 信号跟 踪有 可
测影 响以及对 接 收机设计 差 异有严 重影 响的误 差 , 多数 GP S误差 源 ( 电离 层/ 流层 扰 动 、 星 钟 如 对 卫
设 计 重点 侧重 于基 带数字信 号处 理 , 为此本 文研究
基 于 软件 产生 的数字 中频 GP S信 号模 拟器 。
GP S信 号 模拟 ห้องสมุดไป่ตู้相 比 , 该软件 模 拟器 具备设 计 灵活 、 扩展 、 于使 用等 诸 多优 点 。 可 易
关键 词 : GPS ;软 件 模 拟 器 ;欠 采 样 ;ma lb 自动 增 益 控 制 ta ;
中图分 类号 : P 9 . T 319
文献 标识 码 : A
文章 编号 :0 89 6 (0 6 0 —0 00 1 0 —2 8 2 0 ) 40 1—4
下面 引入接 收机 的时钟 偏差 ( 接收机 时钟 相对
2 信 号 模 型
由于仿 真的重 点集 中在 L 载 波 C A 码上 , l / 故
信 号模型 推 导 中不 考虑 P码 的相关 量 。
2 1 G S发 送 信 号 . P
于 G S系 统时 T的提 前量 ) P 。规定 接 收 机 时钟 偏
1 引 言
GP S信 号模 拟器用 于 为处 于 设计 阶段 的 接 收 机 提供 仿 真环 境 , 确 的 GP 精 S信 号 模 拟 器 是 测试
与评 价 先 进 接 收 机 设 计 的 重 要 分 析 工 具 。射 频 G S模 拟 器产 生 的是 射 频信 号 , 目前 接 收机 的 P 且
C S L( O { l T— Td ) ) + ( T)
GPS用户位置求解Matlab仿真121118
2、伪距测量模拟函数 CalculatePseudoRange
function Prange=CalculatePseudoRange(SatellitePosition,UserPosition) 算机模拟伪距测量 %计
c=3e5; %光速,单位:km/s; DeltaT=1e-4; %钟差为 1e-4 数量级秒,假设卫星钟间时钟一致,DeltaT=Tu-Ts;钟差不 宜超过 3e-4,否则不收敛; VisSatNum=0; %首先找出可以观测到的卫星数量 SatellitePosNew=[]; for k=1:24 if SatellitePosition(k,4)==1 VisSatNum=VisSatNum+1; SatellitePosNew=[SatellitePosNew; SatellitePosition(k,1:3)];
end %if end %for Prange=ones(1,VisSatNum); %求解用户接收机收到的伪距信息 for n=1:VisSatNum Prange(1,n)=sqrt( (SatellitePosNew(n,:)-UserPosition) (SatellitePosNew(n,:)-UserPosition)' + c*DeltaT ); end
三、实验内容
1、熟悉 Matlab 编程的语法、环境。 2、定位程序是一个迭代运算程序,卫星坐标和用户坐标由上述语句给出,运行程序,
毕业论文基于matlab的gps信号的仿真
摘要扩频通信是近几年来迅速发展起来的一种通信技术。
在早期研究这种技术的主要目的是为提高军事通信的保密和抗干扰性能,因此这种技术的开发和应用一直是处于保密状态。
扩频技术在军事应用上的最成功范例可以以美国和俄国的全球定位系统(GPS和GLONASS)为代表;在民用上GPS和GLONASS也都得到了广泛的应用,这些系统的基础就是扩频技术。
全球定位系统(GPS)用于对全球的民用及军用飞机、舰船、人员、车辆等提供实时导航定位服务。
GPS系统采用典型的CDMA体制,这种扩频调制信号具有低截获概率特性。
该系统主要利用直接序列扩频调制技术,采用的伪码有C/A码和P(Y)码两种。
本文讲述的是直接序列扩频通信技术在全球定位系统(GPS)中的应用。
主要介绍扩频通信中的伪码仿真,简要论述M序列和伪随机噪声码(P码和C/A码)及其产生,并使用MATLAB7.0仿真M序列、P码和C/A码的编码过程和仿真结果,介绍直扩频技术伪码的相关知识,重点介绍P码。
关键字:全球定位系统;直接扩频通信;伪码仿真AbstractSpread spectrum communication is a communications technology developed rapidly in recent years. In early studies the main purpose of this technology is to improve the military communications confidential and anti-jamming performance, therefore the development and application of this technology is always in secret state. Spread spectrum technology in the most successful military application examples are the United States and Russia could the global positioning system (GPS and GLONASS) for representative; In civil GPS and GLONASS also have been widely used,which foundation of system is the spread spectrum technology.Global positioning system (GPS) is used to provide real-time navigation and positioning services for global civil and military aircraft, ships, personnel, vehicles and so on. GPS system adopts the typical CDMA system, which kind of spread spectrummodulation signals have low intercept probability characteristic. This system mainly used the direct sequence spread spectrum modulation technology, using the PRN code including C/A code, P codes and Y codes.This article tells the direct sequence spread spectrum communication technology applied in global positioning system (GPS) .The article mainly introduces the pn code spread spectrum communication simulation, briefly discussing M sequence and pseudo random noise code (P yards and C/A yards) and its produce and use MATLAB7.0 simulate M series, P yards and C/A yards of encoding process and the simulation results, introducing pn code straight spread-spectrum technology knowledge, especially P yards.Key: GPS; DS-SS;Pn code simulation目录引言 (4)1GPS理论及其特性 (5)1.1GPS系统概述 (5)1.2GPS信号构成 (7)M序列 (10)C/A码 (13)P码 (15)1.3小结 (20)2MATLAB软件 (21)2.1MATLAB软件简介 (21)2.2MATLAB应用概述 (22)功能介绍 (22)使用方法 (24)3 GPS卫星导航信号算法及其MATLAB仿真 (31)3.1 C/A码仿真代码及其仿真结果 (31)3.2 P码的仿真代码及其仿真结果 (34)3.3 结果分析及其相关性分析 (38)结论 (39)致谢 (40)参考文献 (41)附录A 英文原文 (42)附录B 中文翻译 (43)附录C C/A码源代码 (44)附录D P码源代码 (58)引言全球卫星定位系统,简称GPS系统,可在全球范围内,全天候为用户连续地提供高精度的位置、速度和时间信息。
GPS用户位置求解Matlab仿真
伪距观测方程变化为:
j axjx ayjy azjz cu
(7)
把方程组(2)中的每个方程线性化,得到下面的线性方程组:
1 ax1x ay1y az1z cu
2
ax 2 x
a y 2 y
az 2 z
c u
非常接近真实坐标(xu, yu, zu)时才有效。如果(x, y, z)太大,需要用本次计算得出的坐 标(xu, yu, zu)作为下一次计算的估计坐标(x0, y0, z0),重新迭代上述计算过程,直到计算得 到的(x, y, z)的值比较小为止。
二、Matlab 程序代码
下面 Matlab 程序完成利用伪距测量用户位置的 Matlab 仿真计算。 1、主程序
function Prange=CalculatePseudoRange(SatellitePosition,UserPosition) %计 算机模拟伪距测量
c=3e5;
%光速,单位:km/s;
DeltaT=1e-4; %钟差为 1e-4 数量级秒,假设卫星钟间时钟一致,DeltaT=Tu-Ts;钟差不
%时钟差初始值
Wxyz=SatellitePosNew; %卫星位置坐标
Error=1000;
ComputeTime=0;
while (Error>0.01) && (ComputeTime<1000) %开始迭代运算
ComputeTime=ComputeTime+1;
R=ones(1,VisSatNum);
f
(x0 , y0 , z0 )
f
(x0 , y0 , z0 ) x x0
数字中频GPS信号的MATLAB仿真
数字中频GPS信号的MATLAB仿真1杨勇,陈偲,王可东北京航空航天大学宇航学院,北京 (100083)E-mail:wangkd@摘要:文章以INS/GPS紧耦合为应用对象,在分析中频GPS信号结构的基础上,根据实际环境和载体运行状态,给出GPS信号延时、多普勒频移和钟差等参数,并应用中频信号解析表达式实现多颗卫星信号的合成。
最后,基于MATLAB语言进行了仿真计算,仿真结果表明信号符合实际情况,同时经过软件接收机的捕获、跟踪和解调计算,验证了信号的正确性。
关键词:GPS;高动态;紧耦合;中频;信号模拟器中图分类号:TP3911.引言随着固体弹道导弹射程的不断增加和打击精度的要求提高,纯惯性导航早已不能够满足要求。
全球定位系统(GPS)和惯性系统(INS)相结合是复合制导的重要发展方向之一,而对于GPS/INS组合导航来说,为了缩短研制周期,便于新信号开发及测试,软件信号模拟器和接收机的研究成为重要的研究方向之一。
GPS技术成长非常迅速,现在市场上的手持式GPS接收机已相当普遍,但是国内的自主知识产权的GPS技术产品的研发仍然比较薄弱,尤其是核心芯片的知识产权很少被国内所拥有。
国内的“北斗”、“GALILEO”导航定位都处在发展之中,信号模拟器的研究被越来越多的被重视。
信号模拟器具有成本低、可重复性好、数据完整等优点,不仅能用于组合导航技术研究,也能为新信号的验证研究提供支持,还可以为硬件接收机的接收性能测试提供有效的信号环境模拟。
GPS信号模拟器是软件无线电研究的一个方面,为处于设计阶段的GPS接收机提供仿真环境。
常见的GPS信号生成器产生的是射频信号,而目前接收机的设计重点侧重于基带信号处理,也就是本文中提到的数字中频GPS信号。
数字中频GPS信号模拟器目前主要是仿真载体运动、模拟时钟偏差、卫星星钟误差、电离层误差、对流层误差、多路经效应、天线的方向、弹体振动、以及云层、雷雨等实际环境对GPS信号的影响,并对接收机前端的下变频、滤波、采样和自动增益控制进行仿真,直到生成GPS接收机信号处理所需的数字信号。
基于MatLabSimulink的GPS系统仿真
(2) 我
δS = S − S 0 = δS d + δS w
引入的相位延迟为
δφ d =
(6)
们 在 仿 真 中 不 妨 采 用 一 9 位 LFSR
生成多项式为
其中 Tk 为绝对温度 P 为大气压(mbar) e0 为水汽风压(mbar) S 为实际传播路径 S0 为信号在真空中的传播路径 hs 为 90o 20o 15o 10o 5o 时 δS 的典型值分别为 2.51m 7.29 m 9.58 m 14.04 m 25.82 m 无线信道由于多径效应产生时延扩展 若收发信机处
k =1
N
ˆ(t) x
航电文经伪随机序列扩频并调制后的信号
则 L1 和 L2 载
N
波上的 GPS 信号可分别简单的建模为 S L1 (t ) = AP Pi (t )Wi (t )Di (t ) cos(w1t + ϕ1 ) + AC Ci (t )Di (t ) sin(w1t + ϕ1 )
S L 2 (t ) = B P Pi (t )W i (t ) D i (t ) cos( w 2 t + ϕ 2 )
• 1857 •
第 18 卷第 7 期 2006 年 7 月
系 统 仿 真 学 报 其中 hs 为 GPS 卫星相对观测站的高度角
11 12
Vol. 18 No. 7 July, 2006
组成 生成多项式分别为
X 1A ( x) = 1 + x + x + x + x
6 8
δS d = 1.552 × 10 − 5
[1]
ˆ (t ) − rq (t ) x ˆ (t ) 们采用 Jake 移动信道模型[7] y (t ) = ri (t ) x
GPS基本原理及其Matlab仿真第4章GPS卫星的导航定位信号
bit/s(简写为b/s)。码可以看做是以0和1为幅度的时间函数(如
图4-2所示),用u(t)表示。因此,一组码序列u(t) , 对于某个 时刻t而言,码元是0或1完全是随机的,但其出现的概率均为 1/2。这种码元幅值是完全无规律的码序列,称为随机噪声码 序列。它是一种非周期序列,无法复制。但是, 随机噪声序
(3 ) 大气衰减小,有利于研制用户设备。 GPS 卫星采用 L 波段,避开了大气的谐振吸收,衰减较小,且电离层延迟的影 响小,有利于用较经济的接收设备测量 GPS 信号。而采用两个 载频,目的在于测量出或消除掉由于电离层效应而引起的延迟 误差。 GPS信号是一种调制波,它不仅采用L波段的载波,而且采 用扩频技术传送卫星导航电文。所谓“扩频”,是将原来打算 发送的几十比特速率的电文变换成发送几兆甚至几十兆比特速
fg C / A 码 的 码 频 fp P 码 的 码 频
fL 1 5 4 0 1/
fL 2
/ 1 2 0 0 / 1 2 0 / 2 4 5 5 2 0 0 0
fL 1 5 4 1/ fL 3 1 5 0 8 4 0 0 1/
fL 2 fL 2
f D 码 的 码 频 d
4.2 GPS卫星的测距码信号
位,也是信息量的度量单位。如果将各种信息,例如声音、 图 像以及文字等,按某种预定的规则表示为二进制数的组合形式,
则这一过程就称为编码,也就是信息的数字化。
图4-2 码序列——以0和1为幅度的时间函数
在二进制的数字化信息传输中,每秒所传输的比特数称 为数码率,用以表示数字化信息的传输速度,其单位为
率的由电文和伪随机噪声码组成的组合码。采用扩频技术时,
若信号功率仅为噪声功率的1/10,那么信号将深深地淹没在噪 声之中而不易被他人捕获,从而使得信号具有极强的保密性。
基于MATLAB的GPS信号仿真完整源代码123.doc
配套毕业设计论文见百度文库请搜索《基于MATLAB的GPS信号仿真123》附录C 仿真程序代码1、数据码的产生function datacode=data(x)y=rand(1,x);for i=1:xif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendy(1)=0;show2(1)=datacode(1);q=2;for i=1:length(datacode)for j=1:100y(q)=i-1+j*0.01;show2(q)=datacode(i);q=q+1;endendplot(y,show2);axis([0 length(datacode) -0.2 1.2]);1、C/A码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);number=input('请输入卫星PRN号码:number=');cacode=CAgenerate(number);temp=cacode(1:100)x(1)=0;show(1)=temp(1);p=2;%下面的循环是为了将结果显示成方波形式 for i=1:length(temp)for j=1:100x(p)=i-1+j*0.01;show(p)=temp(i);p=p+1;endend%画出仿真结果图subplot(4,1,2);plot(x,show);title('C/A码');axis([0 100 -0.2 1.2]);%截取CA码的前十个数据进行扩频,每个数据插入5个CA序列cacode1=cacode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),cacode1(addr));endend%下面的循环是为了将结果显示成方波形式x(1)=0;show(1)=kuopindata(1);p=2;for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave];for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);plot(GPSsignal(1:500));title('调制后数据');C/A码产生的子程序CAgenerate:function cacode=CAgenerate(number)if (number<1)|(number>37)disp('输入参数必须在1 ~ 37之间取值');returnendCACode=zeros(1,1023); %生成一个1*1023的零矩阵% 设置寄存器初相Reg1=[1,1,1,1,1,1,1,1,1,1];Reg2=[1,1,1,1,1,1,1,1,1,1];% 设置反馈点,1表示需要反馈gp1=[0,0,1,0,0,0,0,0,0,1];gp2=[0,1,1,0,0,1,0,1,1,1];% 抽头G2Table=[ 2,3,4,5,1,2,1,2,3,2,3,5,6,7,8,9,1,2,3,4,5,6,1,4,5,6,7,8,1,2,3,4,5,4,1,2,4;6,7,8,9,9,10,3,4,6,7,8,9,10,4,5,6,7,8,9,3,6,7,8,9,10,6,7,8,9,10,10,7,8,10;]% 生成一个周期的伪码序列for m=1:1023CACode(m)=mod(Reg1(10)+Reg2(G2Table(1,number))+Reg2(G2Table(2,number)),2); Reg1=[mod(Reg1*gp1',2),Reg1(1:9)];Reg2=[mod(Reg2*gp2',2),Reg2(1:9)];endcacode=CACode;2、C/A码的相关性分析clc;n=input('请输入卫星PRN号码:n=');cacode1=CAgenerate(n);%在G2序列中找出-1并转换为0,找出1并转换为1ind1=find(cacode1==1);ind2=find(cacode1==0);cacode1(ind1)=-ones(1,length(ind1));cacode1(ind2)=ones(1,length(ind2));N=1023;z=zeros(1,1023);for i=0:N-1for k=i+1:N-1z1(k)=cacode1(k)*cacode1(k-i); z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/N;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 1300 -0.5 1.2]);n=input('请输入卫星PRN号码:n='); cacode2=CAgenerate(n);ind1=find(cacode2==1);ind2=find(cacode2==0);cacode2(ind1)=-ones(1,length(ind1)); cacode2(ind2)=ones(1,length(ind2)); N=1023;h=zeros(1,1023);for i=0:N-1for k=i+1:N-1h1(k)=cacode1(k)*cacode2(k-i); h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/N;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 1300 -0.5 1]);4、 P码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);NumberPCode=input('enter the NumberPcode='); NumberShift=input('enter the NumberShift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift);x(1)=0;show(1)=pcode(1);p=2;for i=1:length(pcode)for j=1:100x(p)=i-1+j*0.01;show(p)=pcode(i);p=p+1;endendsubplot(4,1,2);plot(x,show);title('P码');axis([0 length(pcode) -0.2 1.2]);pcode=pcode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),pcode(addr));endendx(1)=0;show(1)=kuopindata(1);p=2;%下面的循环是为了将结果显示成方波形式for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave]; for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);title('调制后数据');plot(GPSsignal(1:500));以下是P码产生的子程序Pcode:function pcode=Pcode(a,NumberPCode,NumberShift) % P码产生reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1a=0;rx1b=0;rx2a=0;rx2b=0;x1bWork=1;x2aWork=1;x2bWork=1;N=NumberShift;C1=4092*3750;C2=4093*3749;z1a=mod(N,4092);%取余数x1a=mod([(N-z1a)/4092],3750);y1a=(N-z1a-4092*x1a)/C1;if ((N-C1*y1a)>=C2)z1b=4092;x1bWork=0;x1b=3748;elsez1b=mod((N-C1*y1a),4093);x1bWork=1;x1b=(N-z1b-C1*y1a)/4093;endm=mod(N,(C1+37));y2a=(N-m)/(C1+37);if (m>=C1)dv=m-C1;elsedv=0;endz2a=mod((m-dv),4092);x2a=mod((((m-dv)-z2a)/4092),3750);z2b=mod((m-dv),4093);if (m>=C2)x2b=3748;elsex2b=(m-z2b)/4093;end%各移位寄存器的状态for i=1:z1aslave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)= reg1a(1:11);reg1a(1)=slave1a;endfor i=1:z1bslave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+ reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;endfor i=1:z2aslave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10) +reg2a(11+reg2a(12)) ,2);reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;endfor i=1:z2bslave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;end%各控制变量的判断if z1a==4091rx1a=1;endif z1b==4092rx1b==1;endif z2a==4091rx2a=1;x2aWork=0;endif z2b==4092rx2b=1;x2bWork=0;end%开始产生P码p=zeros(NumberPCode,1);x1acou=0;x1bcou=0;x2acou=0;x2bcou=0;cou37=dv;x2(1:a)=1;for i=1:(NumberPCode+37)x1(i)=mod( reg1a(12)+reg1b(12),2);x2(i+a)=mod( reg2a(12)+reg2b(12),2);%寄存器x1b的移位函数if x1bWork==1if rx1b==0slave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;else if rx1b==1reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1b=0;endendelse if x1bWork==0endendif reg1b==[0 1 0 1 0 1 0 1 0 1 0 0 ]rx1b=1;x1bcou=x1bcou+1;if x1bcou==3749x1bwork=0;x1bcou=0;endend%寄存器x1a的移位函数if rx1a==0slave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)=reg1a(1:11);reg1a(1)=slave1a;else if rx1a==1reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];rx1a=0;endendif reg1a==[0 0 1 0 0 1 0 0 1 0 0 0]rx1a=1;x1acou=x1acou+1;if x1acou==3750x1bwork=1;x1acou=0;endend%寄存器x2b的移位函数if x2bWork==1if rx2b==0slave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;else if rx2b==1x2bout=reg2b(11);reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx2b=0;endendelse if x2bWork==0reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];x2bWork=1;rx2b=0;endendif reg2b==[0 1 0 1 0 1 0 1 0 1 0 0]rx2b=1;x2bcou=x2bcou+1;if x2bcou==3749x2bWork=0;x2bcou=0;endend%寄存器x2a的移位函数if x2aWork==1if rx2a==0slave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10)+reg2a(11)+reg2a(12) ,2); reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;else if rx2a==1reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];rx2a=0;endendelse if x2aWork==0if rx2a==1cou37=cou37+1;if cou37==37rx2a=0;x2awork=1;cou37=0;endendendendif reg2a==[0 1 0 0 1 0 0 1 0 0 1 1]rx2a=1;x2acou=x2acou+1;if x2acou==3750x2awork=0;x2acou=0;endendendfor i=1:NumberPCodep(i)= mod( x1(i)+x2(i),2);endp=p';pcode=p';5、 P码的相关性分析clc;NumberPCode=input('enter the number Pcode='); NumberShift=input('enter the numbershift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift); ind1=find(pcode==1);ind2=find(pcode==0);pcode(ind1)=-ones(1,length(ind1));pcode(ind2)=ones(1,length(ind2));M=NumberPCode;z=zeros(1,M);for i=0:M-1for k=i+1:M-1z1(k)=pcode(k)*pcode(k-i);z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/M;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 M -0.5 1.2]);a=input('enter a=');NumberShift=input('enter the numbershift='); pcode2=Pcode(a,NumberPCode,NumberShift); h=zeros(1,M);for i=0:M-1for k=i+1:M-1h1(k)=pcode(k)*pcode2(k-i);h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/M;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 M -0.5 1]);。
GPS卫星运动及定位matlab仿真_毕业设计论文
毕业设计论文GPS卫星运动及定位matlab仿真摘要全球定位系统是具有全球性、全能性、全天候优势的导航定位、定时和测速系统,现在在全球很多领域获得了应用。
GPS卫星的定位是一个比较复杂的系统,其包含参数众多,如时间系统、空间坐标系统等。
此次设计是针对卫星运动定位的matlab仿真实现,因要求不高,所以对卫星运动做了理想化处理,摄动力对卫星的影响忽略不计(所以为无摄运动),采用开普勒定律及最小二乘法计算其轨道参数,对其运动规律进行简略分析,并使用matlab编程仿真实现了卫星的运功轨道平面、运动动态、可见卫星的分布及利用可见卫星计算出用户位置。
通过此次设计,对于GPS卫星有了初步的认识,对于静态单点定位、伪距等相关概念有一定了解。
关键字:GPS卫星无摄运动伪距matlab仿真The movement and location of GPS satellite onMA TLABAbstract:Global positioning system is a global, versatility, all-weather advantage of navigation and positioning, timing and speed system, now there has many application in many fields.GPS satellite positioning is a complex system, which includes many parameters, such as time and space coordinates system.This design is based on the matlab simulation of satellite motion and location, because demand is not high, so to do the idealized satellite movement, and ignore the disturbed motion ( so call it non-disturbed motion ).Using the Kepler and least-square method for calculating the parameters of orbital motion, for the characteristics of motion to make a simple analysis, and use the matlab simulation to program achieve the orbital plane of satellite, the dynamic motion, the distribution of visible satellites and using visible satellites to calculate the users‟ home.Through the design have primary understanding for the GPS satellite, and understanding the static single-point, pseudorange and so on.Key words:GPS satellite non-disturbed motion pseudorange matlab simulation目录第一章前言 (1)1.1课题背景 (1)1.2本课题研究的意义和方法 (2)1.3GPS前景 (2)第二章 GPS测量原理 (4)2.1伪距测量的原理 (4)2.1.1 计算卫星位置 (5)2.1.2 用户位置的计算 (5)2.1.3 最小二乘法介绍 (5)2.2载波相位测量原理 (6)第三章 GPS的坐标、时间系统 (10)3.1坐标系统 (10)3.1.1 天球坐标系 (10)3.1.2 地球坐标系 (12)3.2时间系统 (13)3.2.1 世界时系统 (14)3.2.2 原子时系统 (15)3.2.3动力学时系统 (16)3.2.4协调世界时 (16)3.2.5 GPS时间系统 (16)第四章卫星运动基本定律及其求解 (18)4.1开普勒第一定律 (18)4.2开普勒第二定律 (19)4.3开普勒第三定律 (20)4.4卫星的无摄运动参数 (20)4.5真近点角的概念及其求解 (21)4.6卫星瞬时位置的求解 (22)第五章 GPS的MATLAB仿真 (25)5.1卫星可见性的估算 (25)5.2GPS卫星运动的MATLAB仿真 (26)结论 (38)致谢 (40)参考文献 (1)附录 (2)第一章前言1.1 课题背景GPS系统的前身为美军研制的一种子午仪卫星定位系统(Transit),1958年研制,64年正式投入使用。
基于MATLAB平台的GPS仿真的开题报告
基于MATLAB平台的GPS仿真的开题报告一、研究背景和意义随着卫星导航系统技术和应用的不断发展,全球定位系统(GPS)已经成为了现代化社会中不可或缺的一部分。
GPS已广泛应用于空中、陆地、海洋等各个领域,成为了现代化社会中最为重要的技术之一。
因此,GPS仿真技术的研究具有重要的实际意义。
GPS仿真技术可以帮助人们更好地理解GPS系统的工作原理和实际应用中可能遇到的问题,并有助于提高GPS系统的性能和可靠性。
基于MATLAB平台的GPS仿真具有良好的可视化效果和高效的计算能力,在相关领域得到了广泛应用。
二、研究目的和内容本次研究旨在基于MATLAB平台开发一款GPS仿真软件,具体研究内容包括:1. GPS信号发射和接收原理的研究2. GPS信号的建模和仿真技术3. GPS信号接收机算法的研究4. GPS误差源模型的建立及相关校准算法的研究5. GPS仿真算法的优化和性能测试三、研究方法和技术路线本次研究将采用以下研究方法和技术:1. 文献研究法:对GPS信号发射和接收原理、信号建模和仿真技术、接收机算法、误差源模型和校准算法等相关文献进行综合研究和分析。
2. 算法设计法:设计基于MATLAB平台的GPS仿真算法,包括GPS 信号的建模和仿真技术、接收机算法和误差源模型及相关校准算法等。
3. 编程实现法:基于MATLAB平台开发GPS仿真软件,将算法实现为软件的各个功能模块,完成GPS信号发射、接收与处理,以及GPS误差源的建立和校准等功能。
4. 性能测试法:通过对GPS仿真软件的性能测试评估,评估软件的精度、效率、稳定性和可靠性等指标。
四、预期研究结果和意义预期本次研究将获得以下结果:1. 基于MATLAB平台的GPS仿真软件,实现了GPS信号发射和接收模拟、信号处理和误差源模型建立和校准等主要功能。
2. 对GPS系统的信号发射和接收原理、信号建模和仿真技术、接收机算法和误差源模型及相关校准算法等进行研究和分析,进一步提高了人们对GPS系统的认识和理解。
GPS卫星轨道计算及其MATLAB仿真
GPS卫星轨道计算及其MATLAB仿真黎奇,白征东,李帅,陈波波(清华大学地球空间信息研究所,北京 100084)一、程序设计思路1. 读取RINEX文件(注意:文件路径)2. 计算测量日周积秒(测量日的格里历→GPST)3. 按卫星轨道计算步骤计算WGS-84坐标系坐标(内插)4. 按需要将WGS-84坐标系下坐标转换为所需坐标系坐标5. 画图输出二、n 文件说明及读取程序参考时刻oe t 的RINEX 格式的 “”广播星历文件具体如下:(加粗部分为本次轨道化Ω,率i ,弧度/秒4-22)标svacc ,米)收到的卫星信号解,秒)文件名:RinexNreader.m 输 入:文件地址,卫星编号三、计算测量日的周积秒文件名:GCtoGPS.m (其中调用函数:GCtoJD.m)输入:指定公历的年、月、日、时、分、秒文件名:GCtoJD.m输 入:指定公历的 年、月、日四、GPS 卫星轨道计算步骤及计算程序1. 计算卫星运动的平均角速度n平均角速度()03n =经摄动参数n ∆改正后的平均角速度0n n n =+∆3#61-79),n ∆(2#42-60);14323.98600510/GM m s =⨯ 2. 计算归化时间k t说明:①广播星历是oe t 时刻的,对应的轨道参数也是oe t 时刻的,而观测时间在t 时刻,显然oe t t <。
所以,要想获得t 时刻的轨道参数,需要知道t 与oe t 之间的差值即k t 。
以此,按照oe t 时刻轨道参数,外推t 时刻轨道参数。
②k t 的起算时间是星期六/星期日子夜0点,当302400k t s >时,604800k t s -;当302400k t s <-时,+604800k t s 。
(604800s=1周) =k oe t t t -,且604800302400604800302400k k k k k k t t t t t t =-⎧⎨=+⎩> <-已知:oe t (1#4-21)3. 计算观测时刻的平近点角k M0k k M M nt =+已知:0M (2#61-79),n (见1),k t (见2) 4. 计算观测时刻的偏近点角k Esin k k k E M e E =+已知:k M (见3),e (3#23-41)方法:迭代解算,设初值0k k E M =,迭代2次基本收敛。
基于MATLABSimulink的GPS卫星导航仿真器设计
基于MATLABSimulink的GPS卫星导航仿真器设计摘要:本文首先介绍了GPS卫星定位的原理和算法,然后给出了GPS仿真器的Simulink建模实现方法,并对其定位精度进行了误差分析,仿真结果表明该仿真器定位精度与实际接收机相当,可以用来模拟真实的卫星定位,为综合导航系统的研制工作带来了便利。
关键词:GPS卫星导航Simulink建模动态仿真1 引言现代飞行器对导航系统有着越来越高的要求,尤其是长航时飞机对导航设备的精度、可靠性以及连续性都提出了全面的要求。
每种导航系统都有其固有的局限性,因此仅靠单一系统的导航设备独立使用难以完全满足这些要求。
于是,使用多种导航技术的综合导航系统逐渐进入人们的视线,并受到广泛关注。
由于飞行实验费用大,对于综合导航系统最初的算法验证和实验测试,往往无法进行飞行器搭载实验,因此国内外均采用实验室半物理仿真系统进行初期实验研究。
Simulink是一种针对动态系统进行建模、仿真和分析的工具,它被广泛应用于线性系统、非线性系统的建模和仿真,支持连续系统、离散系统或者两种混合的系统和多速率系统。
本文介绍了“大飞机”综合导航仿真系统中,基于MATLAB/Simulink开发的GPS仿真器的原理和设计过程。
2 仿真器的应用环境如图1所示,综合导航仿真系统由飞行、惯导、卫星导航、天文导航、大气数据仿真、无线电高度表、地形匹配导航等分系统仿真器加上显控系统构成。
本文述及的工作主要集中于综合导航仿真系统中卫星导航仿真器的设计及其Simulink建模实现。
飞行仿真器有手动操作和自动飞行两种控制模式,自动飞行模式下仿真器根据预设航线输出飞机实时位置、速度、加速度、姿态等参数;手动模式下通过外置手柄来模拟操作飞机完成起飞、爬升、平飞、姿态改变和降落等全过程,飞行仿真器根据手柄传感器的输出信息仿真计算输出飞机的飞行数据。
卫星导航仿真器接收来自飞行仿真器的输出作为飞机当前实际位置,进行定位解算。
基于MATLAB的GPS信号的仿真研究
基于MATLAB的GPS信号的仿真研究一、本文概述随着全球定位系统(GPS)技术的广泛应用,其在导航、定位、授时等领域的重要性日益凸显。
为了更好地理解GPS信号的特性,提高GPS接收机的设计水平和性能,对GPS信号进行仿真研究显得尤为重要。
本文旨在探讨基于MATLAB的GPS信号仿真方法,分析GPS信号的特点,以及如何利用MATLAB这一强大的数值计算环境和图形化编程工具,对GPS信号进行高效、精确的仿真。
文章首先介绍了GPS系统的发展历程、基本原理和信号特性,为后续的信号仿真提供了理论基础。
随后,详细阐述了GPS信号仿真的一般流程,包括信号生成、传播模型、噪声添加等关键环节。
在此基础上,重点介绍了如何利用MATLAB编写GPS信号仿真程序,包括信号生成、传播模型建立、噪声模拟等方面的具体实现方法。
文章还通过实际案例,展示了基于MATLAB的GPS信号仿真在接收机设计、性能评估等方面的应用。
通过仿真实验,可以深入了解GPS信号在不同环境下的传播特性,为接收机算法优化和性能提升提供有力支持。
本文的研究不仅有助于加深对GPS信号特性和仿真方法的理解,也为GPS接收机的研究和开发提供了一种有效的技术手段。
通过MATLAB的仿真研究,可以更加直观地揭示GPS信号的本质规律,为实际应用提供有力指导。
二、GPS信号原理及特性全球定位系统(GPS)是一种基于卫星的无线电导航系统,它利用一组在地球轨道上运行的卫星来提供全球范围内的定位和时间服务。
每个GPS卫星都不断地向地球表面发射射频信号,这些信号被地面上的接收器接收并处理,从而确定接收器的三维位置和速度,以及精确的时间信息。
GPS卫星发射的信号是L波段的射频信号,分为两个频段:L1(142 MHz)和L2(160 MHz)。
每个频段都包含两种类型的信号:C/A码(粗捕获码)和P码(精密码)。
C/A码是对公众开放的,用于民用和商业应用,而P码则用于军事和特定的高精度应用。
GPS信号捕获算法Matlab-Simulink仿真
GPS信号捕获算法Matlab-Simulink仿真电子设计工程ElectronicDesign Engineering第23卷Vol.23第3期No.32015年2月Feb.2015收稿日期:2014-05-13稿件编号:201405084基金项目:国家863计划(2011AA12A101)作者简介:夏运兵(1988—),男,四川内江人,硕士研究生。
研究方向:星载接收机。
GPS 卫星信号是采用数据码和伪随机码组合的码调制技术[1],将卫星所要传递的数据比特经伪随机码扩频为组合码,再对L 频段的载波进行相移键控调制。
采用这种调制模式[2]的信号不仅提高了系统导航定位的精度,并且可以让系统具有较强的抗干扰能力,而所用的关键技术是伪随机码的扩频技术[3]。
地面或天基等用户终端,实现对伪随机码的捕获至关重要,对其捕获算法的研究一直是GPS 接收机研究的一个热点。
本文通过Matlab/Simulink 对3种常用的捕获算法进行仿真,并给出捕获结果图和捕获时间,这对接收终端[4]的捕获模块研究具有一定的参考作用。
1捕获原理及性能分析1.1线性捕获算法线性捕获就是利用数字相关器在时域内对所指定的卫星信号的多普勒频移和码相位[5-7]进行扫描式搜索,是最基本的信号搜索捕获方法。
它通常从频率搜索范围中间值所对应的频点出发开始搜索,然后左右交替逐渐对其两边的频带进行搜索,直到最后检测出信号或者搜索完所有频带为止。
优点在于它所使用的数字相关器只需要几个,并且这些相关器还可以用于信号跟踪,从而降低了硬件设计的复杂程度。
缺点是捕获的时间较长,应用受到限制。
传统线性搜索算法在时域内对所有可能的频点和相位进行串行搜索,搜索的过程只需要加法和乘法运算,无论是在硬件还是软件中都容易实现,在GPS 接收机设计中得到大量应用。
但由于线性搜索算法在实际接收机中实现时,捕获过程需要大量的相乘、累加运算,需要较长的捕获时间。
文中仿真采用多普勒频移范围在0~±10kHz,以500Hz的步长进行遍历搜索,码相位以半个码片遍历搜索,则可得到线性捕获算法完成信号捕获的理论时间为:2046×1ms ×(2×10kHz+1)=83.886s 。
基于MATLAB的GPS信号仿真123
配套的完整源程序代码见百度文库请搜索《基于MATLAB的GPS信号仿真完整源代码123》摘要全球定位定位系统(GPS)是新一代的精密卫星导航定位系统,近年来在民用和军用领域发挥着精确制导的作用。
随着科学技术的发展,GPS导航和定位技术已向高精度、高动态的方向发展。
GPS系统的广泛应用,促使各国政府大力提高发展本国导航定位系统,这就要求我们全面透彻地研究GPS定位系统,为我国的定位导航应用作出贡献。
本文主要研究GPS信号的生成,而在GPS信号的生成过程中,伪码的算法很重要。
m序列是伪码生成的基础,本文首先详细阐述了m序列的生成原理,并进行了相应的自相关性和互相关性分析。
在m序列的基础上,再对C/A码的生成原理进行了详细的介绍。
P码的生成相对来说比较复杂,是伪码的一个重点,本文对其进行了详细的分析。
在MATLAB仿真软件的平台下,本文成功的完成了GPS信号的生成,并且形象的展示了伪码的相关特性,很好的对本文的相关内容进行了仿真。
关键词:全球定位系统;伪码;MATLAB仿真;相关性AbstractAs the new generation of the satellite navigation systems, Global Positioning System (GPS) is more and more important in military and civil fields in recent years. Though the development of science and technology, the technology of navigation and orientation has been progressed to the direction of great precision and dynamic.With the wide application of GPS locating, every country develop our best to make contribution to the positioning and navigation industry of our country.This paper mainly studies the generation of GPS signal, and the algorithm of PN code is very important in GPS signal generation. As m sequence is the basis of PN code generation, this paper firstly explains the m sequence’s generative principle in detail and the characteristics of autocorrelation and cross correlation. On the basis of m series, then this paper introduced C/A code generation principle in detail.As P code is one of the focuses of PN code, and the generation of P code is relatively complex, this paper makes detailed analysis about it.In the platform of MATLAB software simulation, this paper successfully completes the GPS signal generation, and demonstrates the correlation characteristics of PN code visually.It has done a good simulation of the content about this paper.Keywords:Global Positioning System; PN code; MATLAB simulation; correlation characte-ristics目录1 绪论 (1)1.1GPS的应用 (1)1.2本文研究的主要内容 (2)1.3本文研究的目的和意义 (3)2 GPS信号理论及MATLAB软件简介 (4)2.1GPS系统简介 (4)2.2GPS信号结构 (5)2.2.1 载波 (7)2.2.2 伪码 (9)2.2.3 导航电文 (10)2.3伪码 (12)2.3.1 m序列 (12)2.3.2 易捕码C/A码 (16)2.3.3 精码P码 (20)2.4扩频与调制 (24)2.4.1 扩频通信 (24)2.4.2 GPS信号的调制 (25)2.5MATLAB软件简介 (26)2.5.1 MATLAB简介 (26)2.5.2 M文件简介 (27)3 GPS信号仿真程序设计 (33)3.1数据码 (33)3.2C/A码 (34)3.2.1 C/A码的生成及扩频调制 (34)3.2.2 C/A码的相关性分析 (35)3.3P码 (36)3.3.1 P码产生及扩频调制 (36)3.3.2 P码的相关性分析 (39)4 结果分析 (40)4.1C/A码 (40)4.1.1 C/A码的产生及扩频调制 (40)4.1.2 C/A码的相关性分析 (40)4.2P码 (41)4.2.1 P码的产生及扩频调制 (41)4.2.2 P码相关性分析 (43)结论 (45)致谢 (46)参考文献 (47)附录A 英文原文 (48)附录B 汉语翻译 (57)附录C 部分仿真程序代码 (64)1 绪论1.1 GPS的应用全球定位系统(Global Positioning System -GPS)是美国从本世纪70年代开始研制,历时20年,耗资200亿美元,于1994年全面建成,具有在海、陆、空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统。
【matlab国外编程代写】GPS信号捕获matlab仿真
【matlab国外编程代写】GPS信号捕获matlab仿真clear;%指标是signalpower=-185dBW,此时可以进行室内定位;%指标是SNR=-52dB,此时noisepower=-133dBWDopler_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_fftCA_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) %输入量为高斯白噪声的方差。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要扩频通信是近几年来迅速发展起来的一种通信技术。
在早期研究这种技术的主要目的是为提高军事通信的保密和抗干扰性能,因此这种技术的开发和应用一直是处于保密状态。
扩频技术在军事应用上的最成功范例可以以美国和俄国的全球定位系统(GPS和GLONASS)为代表;在民用上GPS和GLONASS也都得到了广泛的应用,这些系统的基础就是扩频技术。
全球定位系统(GPS)用于对全球的民用及军用飞机、舰船、人员、车辆等提供实时导航定位服务。
GPS系统采用典型的CDMA体制,这种扩频调制信号具有低截获概率特性。
该系统主要利用直接序列扩频调制技术,采用的伪码有C/A码和P(Y)码两种。
本文讲述的是直接序列扩频通信技术在全球定位系统(GPS)中的应用。
主要介绍扩频通信中的伪码仿真,简要论述M序列和伪随机噪声码(P码和C/A码)及其产生,并使用MATLAB7.0仿真M序列、P码和C/A码的编码过程和仿真结果,介绍直扩频技术伪码的相关知识,重点介绍P码。
关键字:全球定位系统;直接扩频通信;伪码仿真AbstractSpread spectrum communication is a communications technology developed rapidly in recent years. In early studies the main purpose of this technology is to improve the military communications confidential and anti-jamming performance, therefore the development and application of this technology is always in secret state. Spread spectrum technology in the most successful military application examples are the United States and Russia could the global positioning system (GPS and GLONASS) for representative; In civil GPS and GLONASS also have been widely used,which foundation of system is the spread spectrum technology.Global positioning system (GPS) is used to provide real-time navigation and positioning services for global civil and military aircraft, ships, personnel, vehicles and so on. GPS system adopts the typical CDMA system, which kind of spread spectrummodulation signals have low intercept probability characteristic. This system mainly used the direct sequence spread spectrum modulation technology, using the PRN code including C/A code, P codes and Y codes.This article tells the direct sequence spread spectrum communication technology applied in global positioning system (GPS) .The article mainly introduces the pn code spread spectrum communication simulation, briefly discussing M sequence and pseudo random noise code (P yards and C/A yards) and its produce and use MATLAB7.0 simulate M series, P yards and C/A yards of encoding process and the simulation results, introducing pn code straight spread-spectrum technology knowledge, especially P yards.Key: GPS; DS-SS;Pn code simulation目录引言 (4)1GPS理论及其特性 (5)1.1GPS系统概述 (5)1.2GPS信号构成 (7)1.2.1M序列 (10)1.2.2C/A码 (13)1.2.3P码 (15)1.3小结 (20)2MATLAB软件 (21)2.1MATLAB软件简介 (21)2.2MATLAB应用概述 (22)2.2.1 MATLAB功能介绍 (22)2.2.2 MATLAB使用方法 (24)3 GPS卫星导航信号算法及其MATLAB仿真 (31)3.1 C/A码仿真代码及其仿真结果 (31)3.2 P码的仿真代码及其仿真结果 (34)3.3 结果分析及其相关性分析 (38)结论 (39)致谢 (40)参考文献 (41)附录A 英文原文 .................................................................................................. 错误!未定义书签。
附录B 中文翻译................................................................................................... 错误!未定义书签。
附录C C/A码源代码. (42)附录D P码源代码 (56)引言全球卫星定位系统,简称GPS系统,可在全球范围内,全天候为用户连续地提供高精度的位置、速度和时间信息。
文中目的就是搭建一个GPS仿真平台,使得各种信号生成的算法能在该仿真平台上得以仿真实现,以验证算法的性能,从而为信号模拟器的研制提供理论依据。
因此对GPS的卫星信号的仿真必将推动中国自主研制的卫星导航系统的发展。
目前,以GPS为代表的卫星导航应用产业已成为当今国际公认的八大无线产业之一。
随着技术的进步、应用需求的增加,GPS以全天候、高精度、自动化、高效率等显著特点及其所独具的定位导航、授时校频、精密测量等多方面的强大功能,已涉足众多的应用领域,使GPS成为继蜂窝移动通信和互联网之后的全球第三个IT经济新增长点。
GPS系统中P码的捕获通常是先捕获到C /A码,然后利用C /A 码调制的导航电文中的转接字(HOW )所提供的P码信息对P码进行捕获。
然而,C /A 码的码长短、码速率低,易受敌方干扰和欺骗, 在强干扰和欺骗的战争环境下,很难通过C /A 码来捕获到P码。
因此,直接捕获P码一直倍受美国军方的关注。
产生P码并对其特性进行分析对进一步研究直接P码的捕获有着重要的意义。
本设计所针对的是GPS卫星信号的伪码仿真,主要是M序列的生成方法和P码的编码原理及其仿真。
本课题研究思路是:⑴研究GPS信号的生成原理和直扩频通信技术基础,M序列和P码算法原理。
⑵在理论研究的基础上,实现MATLAB软件生成M序列和P码,并对其做简单的相关性分析。
文章最后对仿真过程中实现的功能及出现的为题做出总结,总结论文所做的工作和需要更仔细研究的方向。
1GPS理论及其特性1.1G PS系统概述全球定位系统(GPS)是美国政府于20世纪70年代开始研制,于1994年全面建成的高精度、高动态的星际导航定位系统,该系统全天候地向全球范围内具有GPS接收机用户提供精确、连续的三维位置、三维运动和时间需要。
GPS信号分为民用的标准定位服务(SPS,Standard Positioning Service)和军规的标准精确定位服务(PPS,Precise Positioning Service)。
GPS目前处于良好的运行状态,并满足20世纪60年代所提出的最佳定位系统标准。
这个系统向有适当接收设备的全球范围内的用户提供精确、连续的三维位置和速度信息。
GPS也向全球广播世界协调时(UTC)。
组成卫星星座的24颗卫星被安排在6个轨道平面上,即每个平面上4颗。
这样的卫星星座配置确定了卫星某一时刻在轨道中的位置,而为hi与地平线以上的卫星数会随着时间和地点的不同而不同,最少可见到颗,最多可见到11颗,因此保证了在开放的天空下,地球上和近地空间任一点在任何时刻均可以同时观测到至少4颗GPS卫星,为准确定位提供可能。
GPS系统采用CDMA (Code Division Multiple Access,码分多址)技术将在轨的24颗卫星分开,每颗卫星使用同样的调制方式在相同的载波频率上调制各自唯一的伪随机码和数据信息,然后使用星载卫星天线发射信号。
卫星轨道分布如图1.1所示:图1.1卫星轨道分布1.2G PS信号构成GPS卫星向广大用户发送的用于导航定位的信号,是一种调制波,但有别于常用的无线电广播电台发送的调频调幅信号,它是利用伪随机噪声码传送导航电文的调相信号。
GPS卫星信号是目前常用的两种违心导航定位信号之一,它包含有三种信号分量,即载波(L1和L2)、测距码(C/A码和P码)和数据码(D码,亦称基带信号或导航电文)。
而这所有这些信号分量都是在同一个基本频率f0=10.23MHz的控制下产生的。
GPS 卫星信号示意图如图1.2所示:图1.2GPS卫星信号频率构成GPS卫星发送的GPS卫星信号采用L波段的两种载频作载波,分别被称作L1的主频率和L2的次频率。
这些载波频率由扩频码(每一颗卫星均有专门的伪随机序列)和导航电文所调制。
所有卫星均在这两个相同的载波频率上发射,但由于伪随机码调制不同,因此无明显的相互干扰。
GPS使用L频段的两种载频为(其中f0是卫星信号发生器的基准频率):L1载波:f L1=154×f0=1575.42 MHz,波长λ1=19.032 cm;L2载波:f L2=120×f0 =1227.6MHz,波长λ2=24.42 cm。