专利名称:一种基于fpga的gps信号捕获装置的制作方法
技术领域:
本发明属于GPS卫星定位接收技术领域,尤其是利用FPGA硬件平台来实现的一种基于FPGA的GPS信号捕获装置
背景技术:
GPS软件接收机通过软件进行基带信号处理,与传统的ASIC (专用硬件芯片)硬件接收机相比,软件接收机具有开放性、灵活性和扩展性等特点,在不需要更改硬件的前提下,通过对软件参数的调整和升级就可以满足不同用户的需要,极大地减少了系统升级所需成本。现场可编程门阵列(FPGA)兼具灵活性和快速处理等优点,其内部是由规则的逻辑阵列组成,可以开发出专用芯片,使产品体积非常小,便于携带。FPGA内部拥有丰富的逻辑资源,其配置灵活,可对多通道数据进行并行处理,效率极高。由于PC平台的不便携带,DSP平台的资源有限等原因,使得基于FPGA平台的软件接收机与PC、DSP平台相比有着明显优势。GPS基带信号处理主要包括捕获和跟踪两方面,捕获是跟踪的前提。目前,GPS信号捕获方法主要有两大主流,一种是时域相关算法,另一种是频域并行码相位捕获算法,前一种方法实现比较简单,但是比较耗时,后一种方法是利用FFT来实现捕获中的相关运算,虽然比较节省时间,但是用软件实现FFT,需要处理大的数据量,由于平台的限制,不适合处理大数据量FFT。为了实现FFT,将大数据量处理为小数据量,这样又会造成捕获伪码初始相位有很大的误差。
发明内容本实用新型提出了一种基于FPGA的GPS信号捕获装置,采用平均采样技术对频域并行码相位捕获算法进行改进,完成对GPS信号的初捕获,得到伪码初始相位范围和初始载波频率,根据伪码的初始相位范围和初始载波频率再利用时域相关算法做进一步的精捕获,这样就得到了精确的初始相位和载波频率,实现对GPS信号的快速,准确的捕获,为后面的基带处理包括跟踪、定位解算等处理提供快速、准确的伪码相位和载波频率信息。解决了现有捕获方法和系统电路复杂、捕获时间长、且不利于FPGA平台实现、捕获相位有误差等技术问题。本实用新型的目的用以下技术方案实现一种基于FPGA的GPS信号捕获装置,其特征在于搭建FPGA硬件平台与GPS接收机射频前端芯片结合,包括时钟产生模块、由状态机实现的总控制模块、GPS信号存储模块、载波振荡器模块、载波剥离模块、伪码读取模块、平均采样模块、FFT/IFFT模块、门限判决与初始相位计算模块以及相关器实现的精捕获模块;系统时钟分别连接时钟产生模块、两个FFT模块、伪码读取模块、IFFT模块、门限判决与初始相位计算模块及相关器实现的精捕获模块,时钟产生模块输出连接载波振荡器模块,载波振荡器模块输出连接载波剥离模块,GPS信号存储模块输入连接射频前端来的GPS中频信号并与相关器实现的精捕获模块双向连接,GPS信号存储模块输出连接载波剥离模块,载波剥离模块输出连接平均采样模块,平均采样模块输出连接ー个FFT模块,伪码读取模块输出连接另ー个FFT模块,两个FFT模块的输出连接IFFT模块,IFFT模块输出连接门限判决与初始相位计算模块,门限判决与初始相位计算模块输出连接相关器实现的精捕获模块。本实用新型的优点及显着效果I)初捕获过程減少了运算量,也相当于节省了资源。若以IKHZ为步进,根据多普勒频移对ー个卫星的捕获要进行21个步进的频率搜索,每一次捜索的运算量有ニ个FFT运算,ー个IFFT运算,两次复数相乘运算。平均采样后处理的数据点数減少,这样就大大減少了运算量。2)只用初捕获模块也可以得到满足跟踪要求的不是很精确的伪码初始相位和载波频率。根据等比关系由初始相位计算模块可以得到伪码初始相位范围,取中间的点也满足跟踪对相位的要求。3)精摘获I旲块可以根据伪码初始相位范围和初摘获确定的载波频率,通过缩短频率步进,进行精捕获得到精确的伪码初始相位和载波频率。4)初捕获之后的精捕获模块是可以根据跟踪的要求来选择的。如果跟踪模块速度比较快,在跟踪时间上要求不是很严格时就可以只选择初捕获过程,这样捕获的时间非常的快。5)初捕获的速度有了很大的提高,捕获时间缩短了很多。若以频率并行搜索,捕获一颗星的时间为I. 14ms,若以频率串行搜索,捕获ー颗星的时间为25ms。
图I是本实用新型各个模块的逻辑关系示意图;图2是总控制模块的状态转移图;图3是初捕获过程的原理框架图;图4是精捕获过程的原理框架图;图5是平均采样过程示意图。
具体实施方式
以下结合附图对本实用新型的技术方案做进ー步说明。如图I所示,系统时钟分别连接时钟产生模块、两个FFT模块、伪码读取模块、IFFT模块、门限判决与初始相位计算模块及相关器实现的精捕获模块,时钟产生模块输出连接载波振荡器模块,载波振荡器模块输出连接载波剥离模块,GPS信号存储模块输入连接射频前端来的GPS中频信号并与相关器实现的精捕获模块双向连接,GPS信号存储模块输出连接载波剥离模块,载波剥离模块输出连接平均采样模块,平均采样模块输出连接ー个FFT模块,伪码读取模块输出连接另ー个FFT模块,两个FFT模块的输出连接IFFT模块,IFFT模块输出连接门限判决与初始相位计算模块,门限判决与初始相位计算模块输出连接相关器实现的精捕获模块。时钟产生模块根据系统时钟产生采样率时钟,GPS信号存储模块根据采样率时钟、对射频前端来的GPS中频信号进行存储,载波振荡器模块根据采样率时钟产生载波,载波剥离模块连接载波振荡器模块和GPS信号存储模块,将载波SIN值和COS值与GPS中频信号进行相乘对GPS中频信号剥离载波,平均采样模块连接载波剥离模块,对载波剥离之后的数据进行平均采样,平均采样之后的数据送入FFT模块进行FFT运算,伪码读取模块根据系统时钟对预存的伪码进行读取,并将读取的伪码送入FFT模块进行FFT运算,两个FFT模块根据系统时钟分别对平均采样后数据和伪码同时进行FFT运算;两个FFT运算之后的数据进行相乘然后送入IFFT模块进行IFFT运算,门限判决与初始相位计算模块连接IFFT模块,根据IFFT运算之后的数据进行门限判决,得到初始相位范围和初始载波频率;相关器实现的精捕获模块连接门限判决与初始相位计算模块,根据初始相位范围和初始载波频率得到精确的伪码初始相位和载波频率,由状态机实现的总控制模块控制整个流程。由于捕获装置处理的是从射频前端系统采集来的GPS中频数据,伪码的码元速率为I. 023MHZ,整个码周期包括1023个码元,一个伪码周期为1ms,由于伪码码长是1ms,所以至少需要Ims的数据才能完成捕获操作,采用Ims的数据来完成捕获。采样时钟为5. 714MHZ。一个伪码 周期1ms,就有5714个离散的采样数据。平均采样率是I. 024MHZ的采样率,相当于把5714点数据采样为1024份,然后将每ー份中的数据做平均,采样后为1024个点。每个周期的点数是由5. 714MHZ和I. 024MHZ两个时钟来決定的。如图5所示。 本实用新型对来自GPS接收机射频前端的中频采集信号,首先采用平均采样方法对中频采集信号进行下采样,将每个采样周期中的点的能量进行平均,平均后得到的数据作为下采样后的ー个样本数据,平均采样后的点数满足基2FFT运算,采样率由此来決定,完成对GPS信号的初捕获,得到伪码初始相位范围和初始载波频率;然后,根据伪码的初始相位范围和初始载波频率,再利用时域相关算法做进ー步的精捕获,得到精确的伪码初始相位和载波频率,实现对GPS信号的快速,准确的捕获。而且精捕获是可以根据跟踪的要求可选的。这个可以通过修改控制模块来进行选择。总控制模块是由Mealy型的状态机来实现的,控制整个系统,一共有8个状态,分别是复位,等待开始写中频信号,等待写中频信号RAM满,产生开始初捕获信号,等待一次初捕获结束,等待精捕获结束,载波步进加一,卫星号加一。总控制模块的状态转移图如图2所示。图3给出初捕获的过程首先将接收到的GPS中频信号与本地载波相乘,得到I和Q分量,然后进行平均采样,对处理后的数据做FFT处理,对本地伪码进行FFT处理并共轭,将上述两个FFT所得到的结果进行复数相乗,并对得到的同相和正交两路信号进行IFFT,对IFFT的结果求摸,模是输入的中频信号和本地产生信号的相关值,找出相关值中的最高峰和次高峰,并与预先设定的门限值比较,若大于门限,则表明信号已经被捕获到,得到初步的伪码初始相位和载波频率,否则,表明没有捕获到信号,调整本地载波频率,重复上述过程,若捜索完设定的多普勒频移范围后仍未捕获到卫星,则调整卫星号,继续搜索。初捕获过程的详细步骤为①对Ims的输入数据X(η),先与载波的SIN()和C0S()分量进行相乘,得到I和Q分量,剥离载波,然后用I. 024MHZ的采样频率平均采样到1024点,计算其FFT,将输入数据变换到频域X (k);②对于1023个码元的伪码,先用5. 714MHZ的采样频率采样为5714点,然后再平均采样到1024点,计算其FFT,变换到频域Y (k);[0026]③取Y (k)的复共轭,输出变为Y* (k);④X (k)与Y* (k)进行逐点相乘,结果为Z (k);⑤对Z (k)取FFT逆变换,变换到时域z (η),求绝对值| ζ (η) |。绝对值| ζ (η) |就是输入信号和本地产生信号的相关值,共有1024个;⑥求|ζ(η) I中的最大值和第二最大值,分别为相关值的最高峰和次高峰,门限为最高峰和次高峰的比值,设置为2. 5。判别是否达到门限值,若没有达到调整载波频率,回到第一步,一直到能够捕获到信号为止,若一个周期后仍然未捕获到卫星,则调整卫星号,继续搜索。若达到了门限值,找出最大值的位置,计算出其在5714点数据中的对应范围,它就是伪码的初始范围,如果最大峰值由频率分量fi产生,它就是输入信号的初始载波频率。⑦当捕获到一颗星时,根据控制模块的要求,可以将伪码的初始范围和初始载波 频率传给精捕获模块做进一步的捕获,确定精确的值。也可以直接将伪码的初始范围的中间值和初始载波频率传给跟踪,进行GPS信号的跟踪。图4给出精捕获过程将接收到的GPS中频信号首先和本地伪码进行相乘,然后和本地的载波进行相乘,得到I和Q分量,然后积分求平方和,得到输入的中频信号和本地产生信号的相关值,该过程的伪码相位是由初捕获得到的伪码初始相位范围来确定的,本地载波是由初捕获得到的载波频率和该过程的频率步进来确定的。精捕获过程的详细步骤为①对Ims的输入数据x(n),先和本地伪码进行相乘,伪码的相位由初捕获得到的初始范围决定;②相乘之后的结果与载波SINO和COSO分量进行相乘,得到I和Q分量;③对I和Q分量分别做积分求平方和;④将I和Q路得到的平方和相加得到相关值;⑤将相关值与预定的门限进行比较,门限值设置为2. 5,若超过了门限值,代表着已经确定了精确的码相位和载波参数,将参数传给跟踪,进入跟踪过程;若没有超过门限值,则根据伪码的初始范围滑动码相位,调整载波,重复上述操作,继续进行捕获。实施例I)平台FPGA核心芯片采用的是cyclone III系列的EP3C40Q240C8。2)开发环境ModelSim和Quartus,采用的软件语言是Verilog,开发流程是用ModelSim工具实现GPS信号快速精捕获系统功能仿真,用Quartus对实现的软件进行综合,然后再用ModelSim工具进行时序仿真,仿真全部完成之后将软件下载到FPGA硬件平台上,这样就完成了 GPS信号快速精捕获系统。3)5. 714MHZ的时钟产生模块硬件平台上的时钟是40MHZ的,采用7分频来产生5. 714MHZ的时钟。4)GPS信号存储模块GPS信号已经被量化为2位,量化值为±1和±3,采用5714*2的双端口 RAM来存储,用一个Mealy型的状态机来实现对RAM的读写控制。5)数控振荡器模块采用DDS算法,由5. 714MHZ时钟产生载波,将载波量化为2位,量化值为±1和±2。6)载波剥离模块进行GPS信号与载波相乘,结果为±1、±2、±3和±6。7)伪码读取模块将32颗卫星的伪码用Matlab工具产生,预存储到一个32*1024*2的ROM里,产生的流程是将1023点的伪码先用5. 714MHZ采样率采样到5714点,再用I. 024MHZ采样率平均采样为1024点。用的时候直接在ROM里读出伪码。8)平均采样模块用I. 024MHZ采样率对剥离载波后5714点的数据进行下采样,相当于把5714点数据采样为1024份,将每个采样周期中的点的能量进行平均。平均后得 到的数据作为一个样本数据。9) FFT/IFFT模块用Quartus产生FFT IP核来计算FFT/IFFT,采用的是1024点的 FFT/IFFT。10)门限判决与初始相位计算模块由/IFFT得出的结果求出相关值,计算相关值中的最高峰与次高峰,然后将最高峰与次高峰的比值与门限进行判决,超过门限值说明该卫星已经捕获到,最高峰所在的位置就是初始相位,根据比例关系求出初始相位范围。同时告诉总控制模块该卫星已经捕获到。11)相关器实现的精捕获模块先将GPS信号与载波相乘,再与伪码相乘,此时的伪码是由伪码发生器产生的,然后进行积分,就得到了相关值,完成相关器功能,然后进行判决门限,得到精确的伪码初始相位和载波频率。12)总控制模块是由Mealy型的状态机来实现的,一共有8个状态,分别是复位,等待开始写中频信号,等待写中频信号RAM满,产生开始初捕获信号,等待一次初捕获结束,等待精捕获结束,载波步进加一,卫星号加一。
权利要求1.一种基于FPGA的GPS信号捕获装置,其特征在于搭建FPGA硬件平台与GPS接收机射频前端芯片结合,包括时钟产生模块、由状态机实现的总控制模块、GPS信号存储模块、载波振荡器模块、载波剥离模块、伪码读取模块、平均采样模块、FFT/IFFT模块、门限判决与初始相位计算模块以及相关器实现的精捕获模块;系统时钟分别连接时钟产生模块、两个FFT模块、伪码读取模块、IFFT模块、门限判决与初始相位计算模块及相关器实现的精捕获模块,时钟产生模块输出连接载波振荡器模块,载波振荡器模块输出连接载波剥离模块,GPS信号存储模块输入连接射频前端来的GPS中频信号并与相关器实现的精捕获模块双向连接,GPS信号存储模块输出连接载波剥离模块,载波剥离模块输出连接平均采样模块,平均采样模块输出连接一个FFT模块,伪码读取模块输出连接另一个FFT模块,两个FFT模块的输出连接IFFT模块,IFFT模块输出连接门限判决与初始相位计算模块,门限判决与初始相位计算模块输出连接相关器实现的精捕获模块,其中 .1)平台=FPGA核心芯片采用的是cycloneIII系列的EP3C40Q240C8 ; .2)开发环境ModelSim和Quartus,采用的软件语言是Verilog,开发流程是用ModelSim工具实现GPS信号快速精捕获系统功能仿真,用Quartus对实现的软件进行综合,然后再用ModelSim工具进行时序仿真,仿真全部完成之后将软件下载到FPGA硬件平台上; .3)5.714MHZ的时钟产生模块硬件平台上的时钟是40MHZ的,采用7分频来产生.5.714MHZ的时钟; .4)GPS信号存储模块GPS信号已经被量化为2位,量化值为±1和±3,采用5714*2的双端口 RAM来存储,用一个Mealy型的状态机来实现对RAM的读写控制; .5)数控振荡器模块采用DDS算法,由5.714MHZ时钟产生载波,将载波量化为2位,量化值为± I和±2 ; 载波剥离模块进行GPS信号与载波相乘,结果为±1、±2、±3和±6 ; .7)伪码读取模块将32颗卫星的伪码用Matlab工具产生,预存储到一个32*1024*2的ROM里,产生的流程是将1023点的伪码先用5. 714MHZ采样率采样到5714点,再用I. 024MHZ采样率平均采样为1024点, 用的时候直接在ROM里读出伪码; .8)平均采样模块用I.024MHZ采样率对剥离载波后5714点的数据进行下采样,相当于把5714点数据采样为1024份,将每个采样周期中的点的能量进行平均, 平均后得到的数据作为一个样本数据; .9)FFT/IFFT模块用Quartus产生FFT IP核来计算FFT/IFFT,采用的是1024点的FFT/IFFT ; .10)门限判决与初始相位计算模块由/IFFT得出的结果求出相关值,计算相关值中的最高峰与次高峰,然后将最高峰与次高峰的比值与门限进行判决,超过门限值说明该卫星已经捕获到,最高峰所在的位置就是初始相位,根据比例关系求出初始相位范围; 同时告诉总控制模块该卫星已经捕获到; .11)相关器实现的精捕获模块先将GPS信号与载波相乘,再与伪码相乘,此时的伪码是由伪码发生器产生的,然后进行积分,就得到了相关值,然后进行判决门限,得到精确的伪码初始相位和载波频率;12)总控制模块由Mealy型的状态机来实现的,一共有8个状态,分别是复位,等待开始写中频信号,等待写中频信号RAM满,产生开始初捕获信号,等待一次初捕获结束,等待精捕获结束,载波步进加一,卫星号加一
专利摘要一种基于FPGA的GPS信号捕获装置,包括时钟产生模块、总控制模块、GPS信号存储模块、载波振荡器模块、载波剥离模块、伪码读取模块、平均采样模块、FFT/IFFT模块、门限判决与初始相位计算模块以及精捕获模块;时钟产生模块输出连接载波振荡器模块,载波振荡器模块输出连接载波剥离模块,GPS信号存储模块输入连接中频信号并与精捕获模块双向连接,GPS信号存储模块输出连接载波剥离模块,载波剥离模块输出连接平均采样模块,平均采样模块输出连接一个FFT模块,伪码读取模块输出连接另一个FFT模块,两个FFT模块的输出连接IFFT模块,IFFT模块输出连接门限判决与初始相位计算模块,门限判决与初始相位计算模块输出连接精捕获模块。
文档编号G01S19/29GK202362461SQ20112037895
公开日2012年8月1日 申请日期2011年10月9日 优先权日2011年10月9日
发明者潘树国, 王庆, 赵丽 申请人:东南大学