GPS频域捕获实验报告_第1页
GPS频域捕获实验报告_第2页
GPS频域捕获实验报告_第3页
GPS频域捕获实验报告_第4页
GPS频域捕获实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 综合课程设计报告 第 16 页 共 16 页 南 京 理 工 大 学综合课程设计报告姓 名:刘南舢学 号:0810200227学院(系):自动化专 业:自动化朱建良指导教师: 2011 年 06 月目录1.设计要求32.GPS信号概要 2.1 GPS信号的构成32.2 相关性3 2.3 多普勒频移43. 捕获 3.1 捕获的目的4 3.2 串行搜索捕获5 3.2.1 伪码序列的产生6 3.2.2 载波的产生7 3.2.3 积分和平方7 3.2.4 图像的筛选74.总结135.附件146.参考文献16题目:GPS时域捕获算法仿真1 设计要求GPS卫星信号包括载波,导航电文,C/A码三部分,GP

2、S接收机的信号捕获过程就是去除载波,剥离C/A码的过程,并且载波频率和C/A码的估计值必须小于载波环和码环的迁入范围。我们主要研究的GPS捕获方法是串行时域捕获法。2 GPS信号概要21 GPS信号的构成GPS信号由以下三部分组成:(1)载波,(2)导航数据,(3)扩频序列。2.1.1 载波GPS信号是利用两个UHF频段的载波进行传输的,UHF的频率范围为500MHz-3GHz。两个载频L1和L2可以由相同的频率=10.23MHz产生,具体方法如下: =154f0=1575.42MHz =120f0=1227.60MHz以或为载波。2.1.2 导航数据导航数据包含卫星轨道的相关信息。GPS控制

3、段中的地面站负责把这些信息上传到所有的卫星。导航数据的比特率为50b/s。2.1.3 扩频序列每个卫星都有两个唯一的扩频序列或扩频码。第一个是粗捕获码(C/A),另外个是加密精确码(P(Y))。C/A码是一个1023码片的序列(一个码片对应1bit,称之为码片是强调它不包含任何信息),其周期为1ms,码速为1.023MHz。P码的长度更长,码速率为10.23MHz,且在每次GPS周开始时重复。C/A码只在L1载波上调制。22 相关特性C/A码的两个重要相关特性如下:2.2.1 几乎没有互相关性所有的C/A码互相之间几乎没有相关性。也就是说卫星i和卫星k的两个码Ci和Ck的互相关性如下: 2.2

4、.2 除了零延时外,几乎没有自相关性 所有的C/A码几乎和自己都没有相关性, 除了零延时。这一特性使我们很容易找出什么时候两个码是严格对齐的。卫星K的自相关性特性如下: 23 多普勒频移在GPS中,会遇到由发射机(卫星)相对接收机运动所产生的多普勒频移,多普勒频移会影响到GPS信号的捕获和跟踪。对静止的GPS接收机来说,在L1频率上最大的多普勒频移约为 5kHZ,对高速移动的GPS接收机,可以假定最大的多普勒频移为10KHz由于C/A码的码率低,其多普勒频移非常小。C/A码的码率为1.023MHz,是L1载波频率的1 /1054。因此,对静止接收机和高速接收机C/A码的多普勒频移分别为3.2M

5、Hz和6.4MHz。3 捕获捕获的目的是确定可见卫星及卫星信号的载波频率,码相位的粗略值。31 捕获的目的卫星由32个不同的PRN码进行区分。第二个参数是码相位,指的是伪随机码在当前数据块中的时间同步信息。为产生与接受信号伪码相位完全对齐的本地伪码,需要知道码相位,此时则可从信号中去除伪码。两个伪码只有在时延为零的时候才能得到最大相关值,也就是说,两个信号必须完全对齐才能去除接收信号中的伪码。第三个参数是载波频率,在下变频的情况下指的是中频。接收到的L1频点1575.42MHz射频信号,在下变频器中经过混频后可得到中频信号。但是,接受信号的频率可能偏离预期值。在视距范围内的卫星速度(相对于接收

6、机)引起的多普勒频移可导致接收信号频率的升高或降低。在最坏的情况下,频差有可能打到10kHz。产生本地载波信号的前提是必须知道接受信号的频率,其目的是用于去除接收信号载波。在通常情况下,搜索得到的最大频率误差为500Hz是可以接受的。32 串行搜索捕获串行搜索捕获方法是码分多址系统(CDMA)中经常采用的一种捕获方法。GPS就是一种CDMA系统。图3_1显示的是串行搜索算法的框图。 图3_1 串行搜索法框图从图3_1可以看出,该方法基于接受信号与本地产生伪码序列及本地载波的乘积。伪码发生器产生一个对应于某一特定卫星的卫星的伪码序列,该序列有一个特定的码相位,0到1022码片。接受信号首先与本地

7、产生的伪码序列相乘,然后与本地产生的载波相乘。与本地产生载波相乘之后,产生同相I之路信号,与本地产生载波的90度相移信号相移信号相乘之后产生正交Q之路信号。I,Q支路信号分别经过1ms,即C/A码周期的时间积分后,平方相加,理想情况下,由于C/A码仅调制于I支路信号,所以信号功率应集中在I支路,但是,在这种情况下,卫星产生的I支路信号与解调后的I支路信号并不需要一一对应,这是因为接受信号的相位是未知的。因此,为了确定是否检测到接受信号,需要同时对I支路和Q支路信号进行研究。输出为接受信号与本地产生信号的相关值。如果得到的相关值超过了预先设定的门限,即可确定本地产生信号的载波和码相位参数是正确的

8、,转入跟踪过程。3.2.1 伪码序列的产生图3_1显示,串行搜索捕获方法的首要任务是接受信号与本地产生伪码序列相乘,因此需要产生本地伪码,所有可能的伪码序列均离线产生,而不是在信号捕获过程中产生。在本次的课程设计中,本地的伪码序列由GetCACode.m产生的,本来伪码发生器是利用二进制数据0,1实现的,但是在实际处理中用的是-1和1。每个卫星产生4096个数,部分截图如下: 图3_2 部分本地伪码序列3.2.2 载波的产生捕获的第二步是与本地载波相乘。载波发生器需要产生相位差为90度的两路载波信号,即余弦波和正弦波信号。在本次课程设计中,我们是通过 carrier = exp(1i*2*pi

9、*(0:Len-1)*(fc+dopplor)/fs)产生的,其中Len为gpsdata的长度,fc为0.42MHz,fc为信号中心频率,dopplor为多普勒频移,刚开始设置为-4000,增量为200。fs为8.184MHz,fs为信号采样频率。然后在加一部信号的强化: for k=1:floor(length(gpsdata_ddc)/Q) gpsdata_ddc_CIC(k) = sum(gpsdata_ddc(k-1)*Q+1:k*Q); end接着利用如下程序分出正弦和余弦波: sine=real(gpsdata_ddc_CIC); %虚部 cosine=imag(gpsdata_d

10、dc_CIC); %实部3.2.3 积分和平方串行搜索捕获方法的最后一部分是与正弦和余弦信号分别相乘后进行积分和平方。平方主要是为了获得信号功率。积分则是将对应于处理数据长度的所有38192个点的值相加。平方在积分过程之后进行。最后一步是将I支路和Q支路的两个平方值相加,然后在开方。如果本地伪码与接受信号伪码完全对齐,同时本地产生载波频率与接收信号频率相匹配,则得到的输出值比不满足这些条件的结果要大得多。 for q=1:1023 for k=1:1023 %积分 Comp1(q)=Comp1(q)+LoCAcode(q-1+k)*sine(k); Comp2(q)=Comp2(q)+LoCA

11、code(q-1+k)*cosine(k); end Comp(q)=sqrt(Comp1(q)*Comp1(q)+Comp2(q)* Comp2(q); %平方和,开方 end首先程序将本地伪码序列与载波信号逐位进行相乘并相加,即卷积。然后本地的伪码序列从第2位开始与载波的第一位相乘,以此类推,这就相当于本地伪码序列循环左移了一位。循环卷积1023次后就可算出1023个相关值。然后令多普勒频移加200,再进行循环卷积,直到多普勒频移从-4000到3800为止。这样就可以算出40*1023的相关性矩阵。利用mesh函数画出图像即可获得图像,见图3_3和图3_4。 图3_3 1号卫星的图像 图3

12、_4 9号卫星的图像从上面两张图可以看出,有些卫星可以捕获的信号,有些卫星不能捕获到信号。因此,我们还要设定一些条件来判断是否捕获到了卫星信号。3.2.4 图像的删选由已给程序知,当峰值为平均值的4倍的时候,我们认为GPS捕捉到了卫星,那么由图像知,并不是所有卫星都被捕捉到了,那么首先我们要算出最大值和平均值。我们用了如下语句来计算最大值和平均值:avg= sum(yy(:)/numel(yy); a,l=max(yy(:);p,q=ind2sub(size(yy),l) 其中yy是相关性的矩阵。yy(:)是把一个矩阵转换成一个向量形式。sum(yy(:)是计算矩阵所有元素的和,numel(y

13、y)是矩阵中所有的元素个数。因此平均值avg=sum(yy(:)/numel(yy)。而a,l=max(yy(:)是把矩阵中最大的数赋给M,并且把这个数所在的位置赋给了,因为此时yy(:)是一个向量形式,所以必须加一句p,q=ind2sub(size(yy),l),把最大值所在位置的索引值转换成矩阵的横坐标和纵坐标。之后再判断最大值a与平均值avg的关系即可。 if a/avg>THR figure(m); mesh(yy); end 但是这样我们发现,依然输出的是32张图片,原因是Comp(q)=Comp1(q)*Comp1(q)+Comp2(q)* Comp2(q);平方和之后,使得

14、a非常大,很容易大于avg4倍,于是我改变了THR,把4改为16,输出如下6张图。这样输出一下6张图: 图3_5 第9号卫星的图像 图3_6 第15号卫星的图像 图3_7 第18号卫星的图像 图3_8 第21号卫星的图像 图3_9 第26号卫星的图像 图3_10 第27号卫星的图像4 总结一开始,完全不知道这个课题是在说什么。还好后来朱老师讲了一下,让我知道了基本的原理,有了大致的思路。但是,由于之前没有接触过MATLAB的编程,有了思路也无法编程,在这里要感谢老大姚怡超的悉心教导和帮助。也让我领略了MATLAB的仿真的强大,与语言封装的集成性。之前一开始,由于程序设计的问题,长时间的不出图像

15、,后来改进了程序,出图的速度虽然有所加快,但是仍然远远低于频域捕获算法。通过这次课程设计,让我了解了MATLAB软件,也知道了GPS的工作原理,了解了时域和频域捕获算法的优点和缺点。增强了应用和实践的能力,为以后的学习工作打下了基础。附件 (程序代码)GPSInf_Acq = zeros(32,3);yy = zeros(40,1023);zz = zeros(40,1023);dopplorrange = 4000;gpsdata_ddc_CIC=zeros(4096);sine=zeros(4096);cosine=zeros(4096);for m = 1:32 LoCAcode = G

16、etCACode(m,N); % GetCACode(PRN,LEN) dopplor = -dopplorrange; while(dopplor<dopplorrange) Comp1=zeros(1023); Comp2=zeros(1023); Comp=zeros(1023); %载波偏移 carrier = exp(1i*2*pi*(0:Len-1)*(fc+dopplor)/fs); gpsdata_ddc = gpsdata.*carrier; for k=1:floor(length(gpsdata_ddc)/Q) % CIC Q倍抽取滤波器 gpsdata_ddc_C

17、IC(k) = sum(gpsdata_ddc(k-1)*Q+1:k*Q); end sine=real(gpsdata_ddc_CIC); %虚部 cosine=imag(gpsdata_ddc_CIC); %实部 for q=1:1023 for k=1:1023 %积分 Comp1(q)=Comp1(q)+LoCAcode(q-1+k)*sine(k); Comp2(q)=Comp2(q)+LoCAcode(q-1+k)*cosine(k); end Comp(q)=sqrt(Comp1(q)*Comp1(q)+Comp2(q)* Comp2(q); %平方和,开方 end yy(dopplor+4000)/200+1,:)=Comp(1:1023); dopplor = dopplor + 200; GPSInf_Acq(m,1)=1; GPSInf_Acq(m,2)=1; GPSInf_Acq(m,3)=dopplor; end yy(dopplor+40

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论