基于MATLAB的GPS信号的仿真

合集下载

基于某MATLAB地GPS信号仿真完整源代码123

基于某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的位置跟踪系统模糊控制仿真

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信号软件模拟器

基于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

GPS用户位置求解Matlab仿真121118
( x x ) 2 ( y y ) 2 ( z z ) 2 c u u u u 1 1 1 1 2 ( x2 xu ) 2 ( y2 yu ) 2 ( z2 zu ) 2 c u 2 2 2 N ( xN xu ) ( y N yu ) ( z N zu ) c u
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信号的仿真

毕业论文基于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仿真

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仿真

数字中频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系统仿真

基于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
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档