喻 娜, 廖 雄, 羅正華, 方安成
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106; 2.電信科學(xué)技術(shù)研究院 第五研究所, 四川 成都 610021)
基于FPGA的北斗衛(wèi)星導(dǎo)航信號發(fā)生器設(shè)計
喻 娜1, 廖 雄1, 羅正華1, 方安成2
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106; 2.電信科學(xué)技術(shù)研究院 第五研究所, 四川 成都 610021)
設(shè)計了一種基于FPGA的北斗B1頻點(diǎn)信號發(fā)生器,通過MATLAB對北斗B1頻點(diǎn)的C/A碼、D碼及其被擴(kuò)頻后經(jīng)過QPSK調(diào)制的衛(wèi)星模擬信號分別進(jìn)行了仿真,使用Verilog HDL描述了信號發(fā)生器,并使用ISE對設(shè)計進(jìn)行綜合實(shí)現(xiàn),使用Modelsim對信號發(fā)生器內(nèi)的模塊進(jìn)行仿真.實(shí)驗結(jié)果驗證了設(shè)計的正確性和可行性,為信號發(fā)生器的最終實(shí)現(xiàn)提供了強(qiáng)有力的支撐.
北斗衛(wèi)星導(dǎo)航;FPGA;信號發(fā)生器;MATLAB
北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDou Navigation Satellite System,BDS)在現(xiàn)代軍事和民用領(lǐng)域?qū)Ш较到y(tǒng)中起著極為重要的作用,也是我國導(dǎo)航系統(tǒng)未來發(fā)展的重要趨勢.為解決傳統(tǒng)北斗硬件信號模擬器的功能固定以及不便于擴(kuò)展且價格昂貴等缺陷,本研究利用MATLAB軟件實(shí)現(xiàn)北斗衛(wèi)星信號源的模擬仿真,采用FPGA[1]實(shí)現(xiàn)北斗衛(wèi)星信號源的硬件仿真,并與MATLAB的軟件仿真作對比,以此證明設(shè)計的正確性和可行性.同時,本研究討論了北斗衛(wèi)星數(shù)據(jù)碼(D碼)與擴(kuò)頻碼[2](C/A碼)的生成、直接序列擴(kuò)頻(DSSS)與QPSK調(diào)制的算法設(shè)計,并且用Verilog語言編寫相關(guān)應(yīng)用程序,配置相應(yīng)的參數(shù)及函數(shù),然后根據(jù)數(shù)據(jù)流的順序仿真出北斗衛(wèi)星B1頻點(diǎn)中頻信號,可通過改變算法產(chǎn)生不同的北斗衛(wèi)星信號,并分析在仿真環(huán)境下的北斗衛(wèi)星信號的特性,從而完成新型信號發(fā)生器的設(shè)計,彌補(bǔ)了現(xiàn)有信號發(fā)生器的缺陷,其性能更加穩(wěn)定,功能更加全面,有助于北斗衛(wèi)星導(dǎo)航系統(tǒng)在定位與導(dǎo)航上有更高的精度與可靠性.
北斗衛(wèi)星B1頻段數(shù)字信號生成首先按照固定的采樣時間間隔,即固定的采樣頻率,加入衛(wèi)星的初始相位和多普勒頻移,生成中頻載波信號,然后將經(jīng)過QPSK調(diào)制方式調(diào)制的測距碼和北斗衛(wèi)星導(dǎo)航電文調(diào)制到載波上疊加.如果是MEO/IGSO的衛(wèi)星,則需要在導(dǎo)航電文中調(diào)制20 bit NH碼.每顆衛(wèi)星的測距碼和導(dǎo)航電文都不同,因此需對每顆衛(wèi)星的信號進(jìn)行疊加,并且對多衛(wèi)星信號的每顆衛(wèi)星信號都應(yīng)添加預(yù)設(shè)的強(qiáng)度.信號發(fā)生器總體框架圖如圖1所示.
圖1 信號發(fā)生器總體框架圖
2.1 北斗衛(wèi)星數(shù)據(jù)碼的生成實(shí)現(xiàn)
數(shù)據(jù)碼是攜帶一組傳輸速率為50 bit/s的二進(jìn)制數(shù)碼序列的重要導(dǎo)航信息.在北斗衛(wèi)星信號仿真初始階段,不會涉及到定位解算操作,所以只需將數(shù)據(jù)碼看成50 Hz的二進(jìn)制隨機(jī)碼,可以不用考慮數(shù)據(jù)碼本身所攜帶的物理意義[3].
編寫數(shù)據(jù)碼(D碼)所生成的MATLAB函數(shù)為,function [SourceData]=Data-generator(T,fd)其中,T表示總的仿真時間,為0.2 s;fd表示D碼的碼率,為50 Hz;SourceData表示產(chǎn)生的隨機(jī)碼.
當(dāng)碼速率為50 bit/s,仿真時間為0.2 s,則產(chǎn)生10 bit隨機(jī)數(shù)據(jù)碼.本研究采用隨機(jī)函數(shù)生成的隨機(jī)碼代替數(shù)據(jù)碼,所以每次會產(chǎn)生不同的數(shù)據(jù)碼.
2.2 C/A碼發(fā)生器的實(shí)現(xiàn)
對北斗衛(wèi)星信號模擬的過程中,C/A碼的產(chǎn)生應(yīng)該滿足以下要求:根據(jù)所定的衛(wèi)星號生成相應(yīng)C/A碼序列,并且具有更換衛(wèi)星的功能;能夠?qū)/A碼的一個歷元周期內(nèi)的基碼序列號(1~1023)及C/A碼基碼碼片的相位進(jìn)行初始化控制與設(shè)置;換星和選星將產(chǎn)生不同的C/A碼,因為換星和選星是通過一個多路選擇器選擇出G2寄存器2個抽頭的位置來實(shí)現(xiàn)控制,所以選星和換星的不同將生成不同的北斗衛(wèi)星信號.
根據(jù)算法流程,編寫C/A碼發(fā)生器所生成的MATLAB函數(shù)為:
function CAcode=CAsequence(w,T,fca)
其中,w表示衛(wèi)星的PRN號;T表示總的仿真時間,為0.2 s;fca表示碼片速率,為1.023 MHz;CAcode表示輸出產(chǎn)生的C/A序列.
賦值w=1,則產(chǎn)生1號衛(wèi)星的C/A碼前10個碼片的仿真結(jié)果,前10個碼片為1100100000.
2.3 基于MATLAB的北斗衛(wèi)星中頻信號的實(shí)現(xiàn)
把經(jīng)過調(diào)制的信號采用QPSK方式以同樣的采樣頻率加載到數(shù)字化中頻載波上,即生成數(shù)字化的北斗衛(wèi)星中頻信號[4-5],如圖2所示.
圖2 北斗衛(wèi)星中頻信號頻譜圖
基于FPGA的北斗衛(wèi)星中頻信號的設(shè)計和基于MATLAB北斗衛(wèi)星中頻信號的設(shè)計原理是一樣的,因此本研究只列出相應(yīng)的仿真結(jié)果.其中,采用的芯片是Cyclone系列的FPGA(EP1C3T144C8)芯片,此芯片邏輯資源、速率等性能均能滿足本研究的要求.
3.1 北斗數(shù)據(jù)碼的設(shè)計與實(shí)現(xiàn)
基于FPGA北斗衛(wèi)星數(shù)據(jù)碼設(shè)計的RTL圖如圖3所示,modelsim仿真圖如圖4所示.
圖3 北斗衛(wèi)星數(shù)據(jù)碼的RTL圖
圖4 北斗衛(wèi)星數(shù)據(jù)碼的modelsim仿真圖
3.2 C/A碼發(fā)生器的設(shè)計與實(shí)現(xiàn)
基于FPGA北斗衛(wèi)星C/A設(shè)計的RTL圖如圖5所示,modelsim仿真圖如圖6所示.
圖5 北斗衛(wèi)星C/A碼的RTL圖
圖6 北斗衛(wèi)星C/A碼的modelsim仿真圖
3.3 北斗衛(wèi)星中頻信號的設(shè)計與實(shí)現(xiàn)
基于FPGA北斗衛(wèi)星中頻信號設(shè)計的RTL圖如圖7所示,modelsim仿真圖如圖8所示.
本研究討論了北斗衛(wèi)星導(dǎo)航信號發(fā)生器的設(shè)計,對采用載波調(diào)制及直接序列擴(kuò)頻調(diào)制技術(shù)形成的北斗衛(wèi)星信號進(jìn)行了深入的分析.同時,通過MATLAB/M編程和FPGA/modelsim仿真平臺,完成了對北斗衛(wèi)星導(dǎo)航信號發(fā)生器的仿真設(shè)計.綜合考慮設(shè)計過程中的仿真、FPGA內(nèi)的片級調(diào)試及模擬測試,本研究設(shè)計的信號發(fā)生器可以并行接收多顆衛(wèi)星的B1頻點(diǎn)信號.在設(shè)計最后的硬件模擬測試過程中,顯現(xiàn)出本研究設(shè)計的信號發(fā)生器有著比較優(yōu)越的性能.使用該信號發(fā)生器的北斗衛(wèi)星導(dǎo)航系統(tǒng)在高動態(tài)環(huán)境中,可以給出比較精確的定位測量結(jié)果.
圖7 北斗衛(wèi)星中頻信號的RTL圖
圖8 北斗衛(wèi)星中頻信號的modelsim仿真圖
另外,由于本研究所設(shè)計的信號發(fā)生器首次定位時間比較長,如果采用更先進(jìn)的快速捕獲算法,則北斗衛(wèi)星導(dǎo)航系統(tǒng)的首次定位時間會更短,性能將更加優(yōu)越.同時,本信號發(fā)生器也是比較靈活的,對相關(guān)信號處理通道內(nèi)的測距碼生成模塊稍作修改即可用于捕獲跟蹤GPS的信號,實(shí)現(xiàn)GPS與北斗衛(wèi)星導(dǎo)航系統(tǒng)雙模導(dǎo)航,進(jìn)一步提高衛(wèi)星導(dǎo)航系統(tǒng)的性能.
[1]高明華,王會芹,李林,等.北斗B1I信號碼模塊的FPGA設(shè)計與實(shí)現(xiàn)[J].河南師范大學(xué)學(xué)報,2013,41(5):42-47.
[2]張威,張克,徐熙宗.GPS信號C/A碼生成算法設(shè)計及仿真學(xué)習(xí)[J].通信技術(shù),2008,41(11):216-218.
[3]王彬.MATLAB數(shù)字信號處理[M].北京:機(jī)械工業(yè)出版社,2010.
[4]陳文江.基于FPGA的北斗衛(wèi)星導(dǎo)航系統(tǒng)接收機(jī)基帶信號處理器設(shè)計[D].南京:南京理工大學(xué),2015.
[5]葉誓.北斗導(dǎo)航衛(wèi)星系統(tǒng)接收機(jī)快速啟動技術(shù)研究[D].長沙:中南大學(xué),2013.
Design of Beidou Satellite Navigation Signal Generator Based on FPGA
YUNa1,LIAOXiong1,LUOZhenghua1,FANGAncheng2
(1.School of Information Science and Engineering, Chengdu University, Chengdu 610106, China; 2.Fifth Institute, Telecommunications Science and Technology Research Institute, Chengdu 610021, China)
The paper is about the design of a signal generator suitable for the signal emission of Beidou on FPGA.A signal generator at Beidou B1 frequency point based on FPGA is designed.The C/A code and D code of the Beidou B1 frequency point by MATLAB and the satellite simulation signals modulated by QPSK after their spreading spectrum are simulated respectively.Verilog HDL is used to describe signal generator and ISE is used to realize the implementation of the whole design.Modelsim is used for the simulation of the modules in the signal generator.The experimental results verify the correctness and feasibility of the design, providing a strong support for the ultimate realization of signal generator.
Beidou satellite navigation system;FPGA;signal generator;MATLAB
1004-5422(2017)01-0073-03
2016-11-28.
成都市科技局科技惠民計劃(2015-HM01-00399-SF)資助項目.
喻 娜(1982 — ), 女, 碩士, 高級工程師, 從事衛(wèi)星通信與信息系統(tǒng)研究.
TN967.1
A