<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 衛(wèi)星導(dǎo)航系統(tǒng)基帶偽碼完整系統(tǒng)解決方案

          衛(wèi)星導(dǎo)航系統(tǒng)基帶偽碼完整系統(tǒng)解決方案

          作者: 時間:2015-09-09 來源:網(wǎng)絡(luò) 收藏

            項目背景及可行性分析

          本文引用地址:http://www.ex-cimer.com/article/279903.htm

            1.項目名稱、項目的主要內(nèi)容及目前的進展情況

            項目名稱:衛(wèi)星導(dǎo)航系統(tǒng)偽碼的頻域快捕獲;

            項目的主要內(nèi)容:利用設(shè)計實現(xiàn)GNSS信號的頻域快速捕獲算法。

            目前的進展情況:擁有成熟的算法結(jié)構(gòu)和仿真測試結(jié)果,開始著手相關(guān)模塊的實現(xiàn)。

            2.項目關(guān)鍵技術(shù)及創(chuàng)新點的論述

            創(chuàng)新點(1):基于FFT,在頻域計算偽碼 序列的循環(huán)相關(guān)值。在每一個多普勒頻移,對所有碼延遲同時計算出相關(guān)結(jié)果。和傳統(tǒng)的直接計算本地與接收信號相關(guān)值的方法相比,運算時間短。對C/A碼來 說,只需接收到一個偽碼周期(1ms)的信號,就可估計出碼相位;傳統(tǒng)的串行相關(guān),每次最多移動半個碼片,完成一次相關(guān)運算,搜索整個碼周期需要最少移動 2046次。

            創(chuàng)新點(2):FFT運算要求滿足所用數(shù)據(jù)的個數(shù)為2的整數(shù)次冪,一般情況下A/D不能滿足在一個碼周期內(nèi)采樣點數(shù)符合2的整數(shù)次冪。本項目通過一種平均下采樣技術(shù),來完成數(shù)據(jù)的匹配。

            創(chuàng)新點(3):采樣數(shù)據(jù)為一個碼周期時,通過處理單邊帶數(shù)據(jù)的辦法可以減少一半的運算量。雖然通過IFFT后只能找到前一半的點,但這些點包含了幾乎全部信息。

            關(guān)鍵技術(shù)(1):FFT的實現(xiàn)

            關(guān)鍵技術(shù)(2):平均下采樣完成數(shù)據(jù)匹配

            3.技術(shù)成熟性和可靠性論述

            目前通過MATLAB在通用PC機上完成該算法,證明該算法不僅可以有效地捕獲到衛(wèi)星導(dǎo)航信號,而且速度較傳統(tǒng)的方法相比有很大提高,在一定程度上降低計算的工作量和復(fù)雜度。

            下圖為實際衛(wèi)星捕獲結(jié)果示意圖:

            

          衛(wèi)星導(dǎo)航系統(tǒng)基帶偽碼完整系統(tǒng)解決方案

           

            為了能夠?qū)崿F(xiàn)算法在平臺的順利移植,利用System Generator在Simulink下的進行了部分硬件協(xié)同仿真工作。開發(fā)板為合眾達公司的seed-fem025,芯片為Virtex-4 SX25。由于整套系統(tǒng)硬件協(xié)同仿真所需的硬件資源不足,所以硬件協(xié)同仿真分模塊進行。

            軟件仿真的結(jié)果如下圖:

            

          衛(wèi)星導(dǎo)航系統(tǒng)基帶偽碼完整系統(tǒng)解決方案

           

            團隊成員均有比較扎實的數(shù)字電路基礎(chǔ)知識和FPGA設(shè)計功底,以及信號處理方面的專業(yè)知識,完全有能力保證該項目的順利實施,最終完成項目。同時團隊成員 依托于哈爾濱工業(yè)大學(xué)通信技術(shù)研究所衛(wèi)星導(dǎo)航技實驗室,利用實驗室的各種硬件資源,作為項目的物質(zhì)保證;通信技術(shù)研究所早在10年以前就開始了對衛(wèi)星導(dǎo)航 技術(shù)的研究,積累了大量成熟的技術(shù)。

            另外Virtex5系列的FPGA具有豐富的硬件資源,便于實現(xiàn)數(shù)字信號處理功能,可以有效地實現(xiàn)大規(guī)模的FFT運算,能夠?qū)崿F(xiàn)實時的頻域捕獲。

            項目實施方案

            1.方案基本功能框圖及描述

            該方案利用FFT,在頻域完成接收信號與本地信號的循環(huán)相關(guān)運算,因此同時計算出所有碼相位的相關(guān)值,估計接收信號的碼相位延遲。

            具體過程如下:

            (1)中頻信號采樣后經(jīng)過數(shù)字下變頻,經(jīng)過平均下采樣,整合數(shù)據(jù),匹配運算點數(shù)的要求。將匹配的數(shù)據(jù)交給FFT模塊。其中I、Q兩支路分別作為FFT的實部和虛部進行復(fù)數(shù)FFT運算。

            (2)在FFT單元中,對進來的數(shù)據(jù)做分段處理,分段的長度L就決定一次并行運算的長度,與捕獲概率、捕獲時間有很大的關(guān)系。

            (3)對本地產(chǎn)生的擴頻碼,同樣進行平均下采樣數(shù)據(jù)匹配后進行FFT運算,并取其復(fù)共軛。

            (4)把數(shù)據(jù)段和地址段的FFT結(jié)果相乘,然后進行IFFT運算。

            (5)對IFFT的結(jié)果取模值,存儲結(jié)果。

            (6)對結(jié)果進行捕獲判決,找出累加后一幀中最大點與設(shè)定的門限比較,如果高于門限值,進行一次捕獲檢驗。

            (7)如果低于門限,調(diào)整NCO調(diào)整頻率,重復(fù)上面的步驟

            

          衛(wèi)星導(dǎo)航系統(tǒng)基帶偽碼完整系統(tǒng)解決方案

           

            2.需要的開發(fā)平臺

            所需開發(fā)平臺為XUPV5-LX110T,因為用頻域捕獲算法需要大點數(shù)的FFT變換支持。

            3.方案實施過程中需要開發(fā)的模塊

            本方案進行的頻域捕獲主要分為,頂層模塊,下采樣模塊、FFT模塊、PRN序列產(chǎn)生模塊、復(fù)數(shù)乘法器模塊、NCO模塊、峰值判決模塊、頻率搜索模塊。

            4.系統(tǒng)最終要達到的性能指標

            在SNR為-19dB的條件下,捕獲偽碼序列,碼相位的估計結(jié)果在0.5個碼片范圍內(nèi),以滿足后續(xù)跟蹤模塊的啟動條件。

            四、需要的其它資源

            1.測試設(shè)備

            在方案實施過程中,需要Xilinx內(nèi)嵌的邏輯分析儀;思博倫的導(dǎo)航衛(wèi)星信號源;Simulink以及System generator。

            2.仿真、開發(fā)工具

            ISE集成平臺,Matlab和simulink,System generator,Synplify Pro綜合工具,以及仿真工具Modelsim。



          關(guān)鍵詞: 基帶 FPGA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();