(南京航空航天大學(xué)電子信息工程學(xué)院 南京 211106)
隨著北斗系統(tǒng)的不斷發(fā)展,在民用領(lǐng)域,GPS系統(tǒng)和北斗系統(tǒng)的聯(lián)合定位將成為主流,因此設(shè)計(jì)一款基于GPS/BDS的雙模導(dǎo)航衛(wèi)星信號(hào)模擬系統(tǒng)具有很高的使用價(jià)值。目前模擬源的實(shí)現(xiàn)多為硬件實(shí)現(xiàn),例如文獻(xiàn)[1]基于“上層軟件+DSP+FPGA”的架構(gòu)的GNSS模擬源的工程實(shí)現(xiàn)?;谟布?shí)現(xiàn)的模擬源優(yōu)點(diǎn)是實(shí)時(shí)性好,性能穩(wěn)定;缺點(diǎn)是電路設(shè)計(jì)難度高,修改與升級(jí)困難,開(kāi)發(fā)成本高。文獻(xiàn)[2]提出了一種數(shù)字信號(hào)實(shí)現(xiàn)方案,基于ARM和FPGA模擬產(chǎn)生了中頻數(shù)字信號(hào),但是沒(méi)有產(chǎn)生射頻信號(hào)。除了硬件實(shí)現(xiàn)以外,基于軟件實(shí)現(xiàn)的模擬源在市場(chǎng)上也占有一席之地?;谲浖?shí)現(xiàn)的模擬源具有開(kāi)發(fā)成本低、設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單、易于修改升級(jí)等優(yōu)點(diǎn)[3]。目前主流的軟件模擬源主要是通過(guò)Matlab、SystemView等大型計(jì)算機(jī)仿真軟件實(shí)現(xiàn),且多用于研究階段,缺點(diǎn)是信號(hào)模擬時(shí)間長(zhǎng),實(shí)時(shí)性差,因此本文給出了一種GPU的GPS/BDS雙模衛(wèi)星導(dǎo)航信號(hào)的單硬件通道復(fù)合模擬方法。該方法利用軟件模擬中頻信號(hào),采用單硬件通道處理中頻信號(hào),其明顯區(qū)別于多通道與傳統(tǒng)的單通道的處理方式。多通道方式大多基于硬件實(shí)現(xiàn),具有消耗資源大,設(shè)計(jì)復(fù)雜,生產(chǎn)成本高等缺點(diǎn);傳統(tǒng)單通道的帶寬很大,對(duì)采樣率要求很高,如果采用硬件實(shí)現(xiàn)會(huì)增加成本,如果基于軟件實(shí)現(xiàn),那么信號(hào)模擬速度就會(huì)大大降低,在實(shí)時(shí)性上無(wú)法與硬件實(shí)現(xiàn)相媲美。本文給出的方法降低了對(duì)采樣率的要求,大大降低了時(shí)間成本。通過(guò)GPU的加速優(yōu)化,提高了軟件模擬源的實(shí)時(shí)性,最終兼具硬件模擬源和傳統(tǒng)軟件模擬源的優(yōu)勢(shì)。
以GPS L1信號(hào)為例,接收機(jī)接收到的中頻信號(hào)為[4]
式中:RIF(t)表示中頻信號(hào),Rnoise表示噪聲,Rmp表示多徑信號(hào),Pir表示接收信號(hào)中第i顆衛(wèi)星的功率,Di表示導(dǎo)航電文,Ci表示測(cè)距碼,τicode表示偽碼時(shí)延,fid表示多普勒頻移。多普勒變化可以通過(guò)時(shí)間壓擴(kuò)關(guān)系表示:
其中τicarrier表示載波時(shí)延,因此求解多普勒頻移轉(zhuǎn)換成了求解載波時(shí)延。
根據(jù)上面的推導(dǎo),模擬GPS信號(hào)的重點(diǎn)是偽碼時(shí)延和載波時(shí)延的模擬,偽碼時(shí)延和載波時(shí)延的求解公式如下所示:
其中τ表示真實(shí)距離對(duì)應(yīng)的時(shí)延,τtrop表示對(duì)流層誤差引起的時(shí)延,τiono表示電離層誤差引起的時(shí)延,τsat表示衛(wèi)星鐘差[5]。因此需要重點(diǎn)求解τ。
在式(5)中用戶位置和接收時(shí)間屬于已知量,衛(wèi)星的軌道可以由導(dǎo)航電文獲取,具體位置取決于信號(hào)發(fā)射時(shí)間,也就是取決于時(shí)延τ,本文通過(guò)迭代求解的方法求解上述方程,從而獲得每個(gè)采樣點(diǎn)的精確時(shí)延。
由于GPS系統(tǒng)L1信號(hào)的載波為1575.42MHz,帶寬約為2MHz[6],北斗 B1信號(hào)的載波為1561.098MHz,帶寬為約為 4MHz[7],二者不在同一頻段,因此一般需要兩個(gè)通道,分別播放GPS和BDS信號(hào)。本文提出一種單通道的系統(tǒng)設(shè)計(jì)方案。該方案基于單通道的方式播放射頻信號(hào),由于只經(jīng)過(guò)一次統(tǒng)一的上變頻,因此上變頻的頻率只有一個(gè)值,設(shè)為fo,在此條件下,可供選擇的系統(tǒng)方案有以下兩種。
方案一:GPS信號(hào)和BDS信號(hào)同時(shí)采用相同的單邊帶,可選擇上邊帶或者下邊帶。該方案優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,信號(hào)干擾小,缺點(diǎn)是GPS和BDS的中頻信號(hào)必須相差14.322MHz,對(duì)于本文利用軟件產(chǎn)生中頻信號(hào)而言,采樣率過(guò)高,時(shí)間成本巨大,故放棄此方案。
圖1 GPS信號(hào)和BDS信號(hào)同時(shí)采用上邊帶或者下邊帶
方案二:GPS信號(hào)和BDS信號(hào)采用不同的單邊帶。該方案缺點(diǎn)是結(jié)構(gòu)復(fù)雜,容易產(chǎn)生信號(hào)干擾,fo可選范圍小;優(yōu)點(diǎn)是由于fo在fL1與fB1之間,因此GPS和BDS的中頻信號(hào)十分接近,可以顯著降低數(shù)字信號(hào)的帶寬。對(duì)于軟件產(chǎn)生中頻信號(hào)而言,帶寬越低,采樣率越低,能節(jié)省信號(hào)模擬時(shí)間,這正是本方法的優(yōu)勢(shì)所在。
圖2 GPS信號(hào)采用上邊帶,BDS信號(hào)采用下邊帶
由于GPS L1信號(hào)和北斗B1信號(hào)的載波與帶寬具有一定差異,設(shè)計(jì)者需要盡可能地縮小二者中頻信號(hào)的頻差,同時(shí)盡可能地減少二者之間的信號(hào)干擾,因此中頻信號(hào)載波與fo之間需要滿足以下關(guān)系。
GPS中頻信號(hào)載波fL1IF與fo需要滿足的約束關(guān)系為
BDS中頻信號(hào)載波fB1IF與fo需要滿足的約束關(guān)系為
為了盡可能地減小GPS和BDS中頻信號(hào)載波的差值,需要求滿足上述條件下的目標(biāo)函數(shù)的最優(yōu)解,目標(biāo)函數(shù)如下所示:
能夠使目標(biāo)函數(shù)的值最小的解,即為最優(yōu)解。如果采用單邊帶調(diào)制,那么可以弱化上述條件,增加fo的可選范圍,對(duì)于單邊帶信號(hào),約束條件可以弱化為下式:
此時(shí)的最優(yōu)解為
為了提高信號(hào)的質(zhì)量同時(shí)又能減少時(shí)間成本,本文最終選擇以下參數(shù):將GPS中頻信號(hào)載波頻率設(shè)置為6.42MHz,經(jīng)過(guò)濾波器只保留其上邊帶,將BDS中頻信號(hào)載波頻率設(shè)置為7.902MHz,經(jīng)過(guò)濾波器只保留其下邊帶,將二者合成的中頻信號(hào)經(jīng)過(guò)1569MHz上變頻,此時(shí)GPS信號(hào)載波變?yōu)?575.42MHz,BDS信號(hào)的載波變?yōu)?561.098MHz。
多普勒頻率偏移是由于衛(wèi)星與接收機(jī)間的相對(duì)運(yùn)動(dòng)而產(chǎn)生的。在信號(hào)模擬的過(guò)程中,上下邊帶經(jīng)過(guò)了相同的調(diào)制,只有一個(gè)邊帶與多普勒頻移的變化規(guī)律相一致,另一個(gè)邊帶的變化規(guī)律與多普勒頻移相反。為了保證信號(hào)模擬的多普勒變化規(guī)律相一致,在中頻信號(hào)的模擬的過(guò)程中,需要根據(jù)不同的邊帶,設(shè)置相應(yīng)的多普勒頻移變化方向。在本方案中,GPS信號(hào)保留其上邊帶,多普勒變化取正向;BDS信號(hào)保留其下邊帶,多普勒變化取反向,二者的多普勒頻移變化方向相反,在最終合成的射頻信號(hào)中,二者均符合真實(shí)的變化規(guī)律。
1465L-V是一款微波矢量信號(hào)發(fā)生器。利用該信號(hào)發(fā)生器可以播放本方法產(chǎn)生的雙模信號(hào)。用戶通過(guò)上位機(jī)的人機(jī)交互界面設(shè)置仿真場(chǎng)景,CPU與GPU聯(lián)合產(chǎn)生數(shù)字中頻信號(hào),
經(jīng)PCIe傳輸至1465L-V的DDR中,F(xiàn)PGA根據(jù)數(shù)字信號(hào)的編碼規(guī)則從DDR中讀取數(shù)據(jù)并進(jìn)行處理,最終通過(guò)天線播放射頻信號(hào)。
圖3 1465L-V信號(hào)模擬過(guò)程
由于在信號(hào)模擬的過(guò)程中,時(shí)間模型的計(jì)算會(huì)產(chǎn)生大量的并行計(jì)算,在一個(gè)CPU上編程實(shí)現(xiàn)的時(shí)間開(kāi)銷是非常巨大的,因此選擇CPU+GPU的架構(gòu)進(jìn)一步減少計(jì)算時(shí)間。
GPU最初是為圖像處理任務(wù)而設(shè)計(jì)的,但是近年來(lái),考慮到其驚人的計(jì)算能力,越來(lái)越多的領(lǐng)域使用GPU加速[8]。GPU可看作是一種協(xié)處理器或者加速卡,其內(nèi)部分為若干線程格(Grid),線程格被分為許多線程塊(Block),每個(gè)線程塊被分為若干個(gè)線程(Tread),線程是程序執(zhí)行的基本單元[9~11]。在CUDA平臺(tái)下,可分為設(shè)備與主機(jī),分別指代的是GPU和CPU。設(shè)備通過(guò)內(nèi)核函數(shù)創(chuàng)建大量的線程,并將內(nèi)存映射到線程[12],多線程同步工作完成并行運(yùn)算并將結(jié)果傳送給主機(jī),二者通過(guò)PCIe實(shí)現(xiàn)通信。為了提高GPU上的信號(hào)生成的效率需要最小化地傳輸數(shù)據(jù)和最大化地利用多處理器[13]。
在軟件架構(gòu)設(shè)計(jì)上,由CPU執(zhí)行控制流程的工作,將采樣點(diǎn)的信號(hào)時(shí)延的求解以及信號(hào)調(diào)制過(guò)程交由GPU端執(zhí)行。本方法將采樣點(diǎn)以時(shí)間為單位分段,在每個(gè)時(shí)間段內(nèi)均勻選取四個(gè)采樣點(diǎn),根據(jù)信號(hào)時(shí)間模型求解每一點(diǎn)的精確時(shí)延,然后利用曲線擬合的方法,在該段通過(guò)一個(gè)三階曲線進(jìn)行擬合,該段內(nèi)每一個(gè)采樣點(diǎn)可以通過(guò)三階多項(xiàng)式進(jìn)行求解,經(jīng)過(guò)上述步驟,可將邏輯復(fù)雜的時(shí)延求解過(guò)程轉(zhuǎn)換成每個(gè)采樣點(diǎn)的簡(jiǎn)單運(yùn)算,之后將參數(shù)傳入設(shè)備端,調(diào)用核函數(shù)完成并行計(jì)算,最終實(shí)現(xiàn)降低軟件模擬時(shí)間的需求。
產(chǎn)生好的數(shù)字中頻信號(hào)需要經(jīng)過(guò)FPGA的一系列處理,變成可供矢量信號(hào)發(fā)生器播放的信號(hào)。該過(guò)程包括數(shù)據(jù)讀取、采樣率變換、基帶信號(hào)處理和數(shù)模轉(zhuǎn)換四個(gè)過(guò)程。由于FPGA與DAC模塊的系統(tǒng)時(shí)鐘均為200MHz,無(wú)法保證采樣率被200MHz整除,因此選用Farrow重采樣濾波器實(shí)現(xiàn)信號(hào)采樣率的動(dòng)態(tài)變換?;鶐盘?hào)處理包括了混頻和帶通濾波:為了盡可能地降低軟件模擬時(shí)的數(shù)字中頻信號(hào)的采樣率,在軟件端將GPS和BDS信號(hào)的中頻載波統(tǒng)一降低了5MHz,因此需要通過(guò)FPGA對(duì)基帶信號(hào)進(jìn)行混頻還原;為了減少對(duì)調(diào)制后射頻頻段其他信號(hào)的影響,在數(shù)字中頻信號(hào)被送入DAC之前還需進(jìn)行帶通濾波處理。經(jīng)過(guò)基帶信號(hào)處理之后的數(shù)字信號(hào)被送入DAC,經(jīng)射頻模塊調(diào)制到射頻,最終通過(guò)天線發(fā)射。
射頻信號(hào)可以利用接收機(jī)進(jìn)行接收驗(yàn)證。本文使用的接收機(jī)是UTREK210,這是一款可以同時(shí)接收GPS和BDS信號(hào)的雙模接收機(jī),可以同時(shí)觀測(cè)到這兩種信號(hào)的捕獲與定位情況:圖4顯示了接收機(jī)對(duì)雙模信號(hào)的捕獲情況,從圖中可以看到該接收機(jī)捕獲了6顆GPS衛(wèi)星,8顆BDS衛(wèi)星,這表明播放的雙模信號(hào)沒(méi)有產(chǎn)生明顯的干擾,有效地模擬了衛(wèi)星導(dǎo)航信號(hào)的擴(kuò)頻碼與動(dòng)態(tài)多普勒信息;圖5顯示了接收機(jī)從導(dǎo)航信號(hào)中所提取的仰角和星座圖,從圖中可知接收機(jī)通過(guò)對(duì)導(dǎo)航信號(hào)的捕獲跟蹤后,成功地提取出了導(dǎo)航電文;圖6顯示了接收機(jī)最終的定位結(jié)果,定位結(jié)果與預(yù)設(shè)的位置坐標(biāo)一致,定位時(shí)間也與仿真時(shí)間相同。由此結(jié)果可知,本文所給出的單硬件通道的GPS/BDS雙模導(dǎo)航信號(hào)模擬方法能夠有效地模擬真實(shí)導(dǎo)航衛(wèi)星信號(hào),具有很好的實(shí)用性。
圖4 接收機(jī)衛(wèi)星通道
圖5 接收機(jī)衛(wèi)星星座圖
圖6 接收機(jī)定位結(jié)果
本文旨在給出一種基于軟件的GPS/BDS雙模信號(hào)模擬方法。對(duì)于兩種信號(hào)頻段的差異,提出了一種新型的單硬件通道解決方案,將GPS與BDS的中頻信號(hào)利用CPU+GPU架構(gòu)聯(lián)合產(chǎn)生,之后對(duì)其進(jìn)行統(tǒng)一地信號(hào)處理。該方案大大減少了軟件模擬時(shí)的中頻信號(hào)帶寬,克服了多通道資源消耗大,設(shè)計(jì)復(fù)雜和傳統(tǒng)單通道帶寬大,采樣率高的缺點(diǎn),大大提高了軟件模擬信號(hào)的速度,經(jīng)過(guò)信號(hào)發(fā)生器的播放,驗(yàn)證了該方案的可行性。通過(guò)分析單硬件通道處理雙模導(dǎo)航信號(hào)的優(yōu)勢(shì),可以發(fā)現(xiàn)該方法具有很好的應(yīng)用前景。隨著軟件端信號(hào)模擬速度的提高,有望利用軟件實(shí)現(xiàn)衛(wèi)星導(dǎo)航信號(hào)的實(shí)時(shí)模擬:在軟件端和硬件端的之間設(shè)置一個(gè)緩沖區(qū),將一段生成好的信號(hào)導(dǎo)入緩沖區(qū),通過(guò)乒乓操作安全無(wú)縫地接收數(shù)據(jù)流供硬件端播放。理論上只要中頻信號(hào)的生成速度不小于信號(hào)的實(shí)際播放速度即可實(shí)現(xiàn),該功能的實(shí)現(xiàn)取決于GPU的加速性能和采樣率的大小。除了在雙模系統(tǒng)中使用本方法,也可以在多模衛(wèi)星導(dǎo)航信號(hào)模擬系統(tǒng)中使用。這對(duì)于軟件實(shí)現(xiàn)信號(hào)模擬的實(shí)時(shí)播放有著非比尋常的意義,有望實(shí)現(xiàn)軟件模擬源完全替代硬件模擬源的可能。