您好,欢迎访问三七文档
GPS课程设计实验报告(1)学院姓名LSC班级学号指导教员一、试验名称:GPS信号调制二、试验目的:1.熟悉传统GPS信号调制的基本流程;2.掌握PRN序列的产生方法及其基本特性;3.掌握DSSS调制和BPSK调制的基本原理和实现方法;4.训练由MATLAB编程进行仿真的能力。三、试验内容1.用MATLAB编程产生一段随机的二进制比特流,作为原始的导航电文数据。2.对以上导航电文数据进行DSSS调制,所用PRN序列自选(需编写PRN序列产生子程序,并画出该PRN序列的自相关函数和互相关函数。编写出GPSC/A码产生子程序)。3.对DSSS调制后的序列进行BPSK调制,频率自定。画出调制后信号的波形。四、试验原理:4.1C/A码C/A码(CoarseAcquisitionCode)是Gold码,用于粗测距和捕获GPS卫星信号。它是由两个10级反馈移位寄存器组合产生的,其序列长度为1023(基数码)。因为C/A码的基码速率是1.023MHz,因此伪随机序列的重复周期是1023/1.023*106或1ms。图1描述了GPSC/A码发生器的结构方案。图1C/A码发生器两个移位寄存器于每星期日子夜零时,在置“1”脉冲作用下处于全“1”状态,同时在频率为f1=f0/10=1.023MHz时钟脉冲驱动下,两个移位寄存器分别产生码长为N=210-1=1023、周期为1ms的两个m序列G1(t)和G2(t)。这时G2(t)序列的输出不是在该移位寄存器的最后一个存储单元,而是选择其中两个存储单元进行二进制相加后输出,由此得到一个与G2(t)平移等价的m序列G21(即与延时等价)。再将其与G1(t)进行模二相加,将可能产生1023种不同结构的C/A码。C/A码不是简单的m序列,而是由两个具有相同码长及数码率,但结构不同的m序列相乘所得到的组合码,称为戈尔德(Gold)序列。采用不同的it0值,可能产生1023个G2(t),再加上G1(t)和G2(t)本身,共可能产生1025种结构不同的C/A码供选用。这些C/A码具有相同的码长N=210-1=1023bit,相同的码元宽tu=1/f1=0.98μs(相当于293.1m)和相同的周期Tu=Ntu=1ms。从这些G(t)码中选择32个码以PRN1,PRN2,…,PRN32命名各种GPS卫星。由于C/A码长很短,只有1023比特,易于捕获。在GPS定位中,为了捕获C/AC/A码逐个进行搜索。若以50个码元每秒的速度搜索,对于只有1023个码元的C/A码,搜索时间只要20.5s。通过C/A码捕获卫星后,即可获得导航电文,通过导航电文提供的信息,便可以很容易地捕获GPS的P码。所以,C/A码除了作为粗测码外,还可作为GPS卫星信号P码的捕获码。4.2M序列M序列是线行反馈移位寄存器产生的周期最长的序列,是多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列。下面以一个四级反馈移位寄存器组成的m序列为例来说明,如图2所示。在时钟脉冲的驱动下,每个存储单元的内容,都按次序由上一级单元转移到下一单元,而最后一个存储单元的内容便为输出。同时,其中某两个存储单元,例如单元3和单元4的内容进行模二相加后,再反馈输入给第一个存储单元。图2四级反馈移位寄存器示意图当移位寄存器开始工作时,置“1”脉冲使各级存储单元处于全“1”状态,此后在时钟脉冲的驱动下,移位寄存器经历15种不同的状态,然后再返回到“1”状态,从而完成一个周期(见表1)。在四级反馈移位寄存器经历了上述15种状态的同时,其最末级存储单元输出了一个具有15个码元,且周期为15tu的二进制数码序列,称为m序列。tu表示时钟脉冲的时间间隔,即码元的宽度。表1四级反馈移位寄存器状态序列状态编号各级状态模二加反馈末级输出的二进制数④③②①③④111110121110013110001410001150001006001000701001081001119001100100110101111010112101011130101101410111115011110由此可见,四级反馈移位寄存器所产生的m序列,其一个周期可能包含的最大码元个数恰好等于24-1个。因此,一般来说,一个r级移位寄存器所产生的m序列,在一个周期内其码元的最大个数(1.2)与此相对应,这时m序列的最大周期为:(1.3)式中,Nu也称为码长。由于移位寄存器不容许出现全“0”状态,因此2r-1码元中,“1”的个数总比“0”的个数多一个。这样,当两个周期相同的m序列其对应码元完全对齐时,自相关系数R(t)=1,而在其他情况则有(1.4)当r足够大时,就有R(t)≈0。所以,伪随机噪声码与随机噪声码一样,具有良好的自相关性,而且是一种结构确定、可以复制的周期性序列。GPS信号接收机就是利用这一特征使所接收的伪随机噪声码和机内产生的伪随机噪声码达到对齐同步,进而捕获和识别来自不同GPS卫星的伪随机噪声序列。由于受GPS卫星至用户GPS接收机的路径信号传播延迟的影响,被接收的伪随机码和复制的伪随机码之间产生了平移;如果通过一个时间延迟器来对复制的伪随机码进行移动,使两者的相关函数值为1,则可以从时间延迟器中测出对齐码元12ruN(21)ruuuuTtNt1211)(ruNtR所用的时间,从而可以较准确地确定由卫星到接收机的距离。由此可知,伪随机序列的良好的自相关特性,对于利用GPS卫星的测距码进行精密测距是非常重要的。五、试验流程及运行结果5.1Matlab设计流程:实验产生7位m序列,频率100Hz,模拟线性反馈移位寄存器序列,原理图如下:5.2试验截图100Hz扩频序列100/7Hz二进制比特信息100Hz7位双极性m序列2000Hz载波cos4000πtBPSK调制信号5.3C/A码截图六、Matlab程序代码6.1BPSK调制及M码自相关互相关程序clearall;clc;X1=0;X2=0;X3=1;m=350;%重复50遍的7位单极性m序列fori=1:mY3=X3;Y2=X2;Y1=X1;X3=Y2;X2=Y1;X1=xor(Y3,Y1);L(i)=Y1;endfori=1:mM1(i)=1-2*L(i);%将单极性m序列变为双极性m序列endk=1:1:m;figure(1)subplot(2,1,1)%做m序列图stem(k-1,M1);axis([0,7,-1,1]);xlabel('k');ylabel('M1序列');title('移位寄存器产生的双极性7位M1序列');%%%%%%%%%%%%%%%%%%%%%%%%%fori=1:mY3=X3;Y2=X2;Y1=X1;X3=Y2;X2=Y1;X1=xor(Y3,Y2);L(i)=Y2;endfori=1:mM2(i)=1-2*L(i);%将单极性m序列变为双极性m序列endk=1:1:m;subplot(2,1,2)%做m序列图stem(k-1,M2);axis([0,7,-1,1]);xlabel('k');ylabel('M2序列');title('移位寄存器产生的双极性7位M2序列');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[a,b]=xcorr(M1,'unbiased');figure(2)subplot(2,1,1)%求双极性M1序列自相关函数plot(b,a);axis([-20,20,-0.5,1.2]);title('双极性7位M1序列的自相关函数');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[a,b]=xcorr(M1,M2,'biased');subplot(2,1,2)%求双极性M序列互相关函数plot(b,a);axis([-20,20,-0.5,1.2]);title('双极性7位M序列的互相关函数');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成的信息码频率为100/7Hz,利用m序列编码后,频率变为100Hz。N=50;a=0;x_rand=rand(1,N);%产生50个0与1之间随机数fori=1:Nifx_rand(i)=0.5%大于等于0.5的取1,小于0.5的取0x(i)=1;a=a+1;elsex(i)=0;endendt=0:N-1;figure(3)%做信息码图subplot(2,1,1)stem(t,x);title('扩频前待发送二进制信息序列');tt=0:349;subplot(2,1,2)l=1:7*N;y(l)=0;fori=1:Nk=7*i-6;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);k=k+1;y(k)=x(i);ends(l)=0;fori=1:350%扩频后,码率变为100/7*7=100Hzs(i)=xor(L(i),y(i));endtt=0:7*N-1;stem(tt,s);axis([0,350,0,1]);title('扩频后的待发送序列码');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%BPSK调制采用2kHz信号cos(2*2000*t)作为载波figure(4)subplot(2,1,2)fs=2000;ts=0:0.00001:3.5-0.00001;%为了使信号看起来更光滑,作图时采样频率为100kHzs_b=rectpulse(s,1000);%将冲激信号补成矩形信号s_bpsk=(1-2.*s_b).*cos(2*pi*fs*ts);%扩频后信号BPSK调制时域波形plot(ts,s_bpsk);xlabel('s');axis([0.055,0.085,-1.2,1.2])title('扩频后bpsk信号时域波形');subplot(2,1,1)s_bb=rectpulse(x,7000);s_bpskb=(1-2.*s_bb).*cos(2*pi*fs*ts);%无扩频信号BPSK调制时域波形plot(ts,s_bpskb);xlabel('s');axis([0.055,0.085,-1.2,1.2]);title('扩频前bpsk信号时域波形')6.2C/A码产生的程序以下为子程序,具体程序见试验2functionCACode=Create_CA_Code(G1,G2,TapArray)%参数说明:%G1代表当前移位寄存器的状态%G2代表当前移位寄存器的状态%TapArray代表G2的抽头数G1=cast(G1,'logical');G2=cast(G2,'logical');tap1=TapArray(1);tap2=TapArray(2);%code=zeros(1,1023);fori=1:1023temp=xor(G2(tap1),G2(tap1));%5号卫星,抽头1和9code(i)=xor(G1(10),temp);temp=xor(G1(3),G1(10));G1=[temp,G1(1:9)];temp=xor(G2(2),G2(3));temp=xor(temp,G2(6));temp=xor(temp,G2(8));temp=xor(temp,G2(9));temp=xor(temp,G2(10));G2=[temp,G2(1:9)];endcode=cast(code,'double');CACode=code;七、实验心得体会本次实验我进行了直接序列扩频系统的仿真工作,完成了基本的DSSS仿真,通过实验,我更详细地了解了直接序列扩频系统的工作原理。熟悉传统GPS信号调制的基本流程,掌握了PRN序列的产生方法及其基本特性,掌握了DSSS调制和BPSK调制的基本原理和实现方法由于我对于直扩系统讲得也不是很详细,很多地方我只好自己探索,自己查资料,慢慢编程。尤其是在后来的C/A码方面,书上几乎一带而过,我只好查阅了许多文献来确定优选对
本文标题:GPS信号调制
链接地址:https://www.777doc.com/doc-5337880 .html