(南京航空航天大學電子信息工程學院 南京 211106)
隨著北斗系統的不斷發展,在民用領域,GPS系統和北斗系統的聯合定位將成為主流,因此設計一款基于GPS/BDS的雙模導航衛星信號模擬系統具有很高的使用價值。目前模擬源的實現多為硬件實現,例如文獻[1]基于“上層軟件+DSP+FPGA”的架構的GNSS模擬源的工程實現?;谟布崿F的模擬源優點是實時性好,性能穩定;缺點是電路設計難度高,修改與升級困難,開發成本高。文獻[2]提出了一種數字信號實現方案,基于ARM和FPGA模擬產生了中頻數字信號,但是沒有產生射頻信號。除了硬件實現以外,基于軟件實現的模擬源在市場上也占有一席之地?;谲浖崿F的模擬源具有開發成本低、設計實現簡單、易于修改升級等優點[3]。目前主流的軟件模擬源主要是通過Matlab、SystemView等大型計算機仿真軟件實現,且多用于研究階段,缺點是信號模擬時間長,實時性差,因此本文給出了一種GPU的GPS/BDS雙模衛星導航信號的單硬件通道復合模擬方法。該方法利用軟件模擬中頻信號,采用單硬件通道處理中頻信號,其明顯區別于多通道與傳統的單通道的處理方式。多通道方式大多基于硬件實現,具有消耗資源大,設計復雜,生產成本高等缺點;傳統單通道的帶寬很大,對采樣率要求很高,如果采用硬件實現會增加成本,如果基于軟件實現,那么信號模擬速度就會大大降低,在實時性上無法與硬件實現相媲美。本文給出的方法降低了對采樣率的要求,大大降低了時間成本。通過GPU的加速優化,提高了軟件模擬源的實時性,最終兼具硬件模擬源和傳統軟件模擬源的優勢。
以GPS L1信號為例,接收機接收到的中頻信號為[4]

式中:RIF(t)表示中頻信號,Rnoise表示噪聲,Rmp表示多徑信號,Pir表示接收信號中第i顆衛星的功率,Di表示導航電文,Ci表示測距碼,τicode表示偽碼時延,fid表示多普勒頻移。多普勒變化可以通過時間壓擴關系表示:

其中τicarrier表示載波時延,因此求解多普勒頻移轉換成了求解載波時延。
根據上面的推導,模擬GPS信號的重點是偽碼時延和載波時延的模擬,偽碼時延和載波時延的求解公式如下所示:

其中τ表示真實距離對應的時延,τtrop表示對流層誤差引起的時延,τiono表示電離層誤差引起的時延,τsat表示衛星鐘差[5]。因此需要重點求解τ。

在式(5)中用戶位置和接收時間屬于已知量,衛星的軌道可以由導航電文獲取,具體位置取決于信號發射時間,也就是取決于時延τ,本文通過迭代求解的方法求解上述方程,從而獲得每個采樣點的精確時延。
由于GPS系統L1信號的載波為1575.42MHz,帶寬約為2MHz[6],北斗 B1信號的載波為1561.098MHz,帶寬為約為 4MHz[7],二者不在同一頻段,因此一般需要兩個通道,分別播放GPS和BDS信號。本文提出一種單通道的系統設計方案。該方案基于單通道的方式播放射頻信號,由于只經過一次統一的上變頻,因此上變頻的頻率只有一個值,設為fo,在此條件下,可供選擇的系統方案有以下兩種。
方案一:GPS信號和BDS信號同時采用相同的單邊帶,可選擇上邊帶或者下邊帶。該方案優點是結構簡單,信號干擾小,缺點是GPS和BDS的中頻信號必須相差14.322MHz,對于本文利用軟件產生中頻信號而言,采樣率過高,時間成本巨大,故放棄此方案。

圖1 GPS信號和BDS信號同時采用上邊帶或者下邊帶
方案二:GPS信號和BDS信號采用不同的單邊帶。該方案缺點是結構復雜,容易產生信號干擾,fo可選范圍小;優點是由于fo在fL1與fB1之間,因此GPS和BDS的中頻信號十分接近,可以顯著降低數字信號的帶寬。對于軟件產生中頻信號而言,帶寬越低,采樣率越低,能節省信號模擬時間,這正是本方法的優勢所在。

圖2 GPS信號采用上邊帶,BDS信號采用下邊帶
由于GPS L1信號和北斗B1信號的載波與帶寬具有一定差異,設計者需要盡可能地縮小二者中頻信號的頻差,同時盡可能地減少二者之間的信號干擾,因此中頻信號載波與fo之間需要滿足以下關系。
GPS中頻信號載波fL1IF與fo需要滿足的約束關系為

BDS中頻信號載波fB1IF與fo需要滿足的約束關系為

為了盡可能地減小GPS和BDS中頻信號載波的差值,需要求滿足上述條件下的目標函數的最優解,目標函數如下所示:

能夠使目標函數的值最小的解,即為最優解。如果采用單邊帶調制,那么可以弱化上述條件,增加fo的可選范圍,對于單邊帶信號,約束條件可以弱化為下式:

此時的最優解為

為了提高信號的質量同時又能減少時間成本,本文最終選擇以下參數:將GPS中頻信號載波頻率設置為6.42MHz,經過濾波器只保留其上邊帶,將BDS中頻信號載波頻率設置為7.902MHz,經過濾波器只保留其下邊帶,將二者合成的中頻信號經過1569MHz上變頻,此時GPS信號載波變為1575.42MHz,BDS信號的載波變為1561.098MHz。
多普勒頻率偏移是由于衛星與接收機間的相對運動而產生的。在信號模擬的過程中,上下邊帶經過了相同的調制,只有一個邊帶與多普勒頻移的變化規律相一致,另一個邊帶的變化規律與多普勒頻移相反。為了保證信號模擬的多普勒變化規律相一致,在中頻信號的模擬的過程中,需要根據不同的邊帶,設置相應的多普勒頻移變化方向。在本方案中,GPS信號保留其上邊帶,多普勒變化取正向;BDS信號保留其下邊帶,多普勒變化取反向,二者的多普勒頻移變化方向相反,在最終合成的射頻信號中,二者均符合真實的變化規律。
1465L-V是一款微波矢量信號發生器。利用該信號發生器可以播放本方法產生的雙模信號。用戶通過上位機的人機交互界面設置仿真場景,CPU與GPU聯合產生數字中頻信號,
經PCIe傳輸至1465L-V的DDR中,FPGA根據數字信號的編碼規則從DDR中讀取數據并進行處理,最終通過天線播放射頻信號。

圖3 1465L-V信號模擬過程
由于在信號模擬的過程中,時間模型的計算會產生大量的并行計算,在一個CPU上編程實現的時間開銷是非常巨大的,因此選擇CPU+GPU的架構進一步減少計算時間。
GPU最初是為圖像處理任務而設計的,但是近年來,考慮到其驚人的計算能力,越來越多的領域使用GPU加速[8]。GPU可看作是一種協處理器或者加速卡,其內部分為若干線程格(Grid),線程格被分為許多線程塊(Block),每個線程塊被分為若干個線程(Tread),線程是程序執行的基本單元[9~11]。在CUDA平臺下,可分為設備與主機,分別指代的是GPU和CPU。設備通過內核函數創建大量的線程,并將內存映射到線程[12],多線程同步工作完成并行運算并將結果傳送給主機,二者通過PCIe實現通信。為了提高GPU上的信號生成的效率需要最小化地傳輸數據和最大化地利用多處理器[13]。
在軟件架構設計上,由CPU執行控制流程的工作,將采樣點的信號時延的求解以及信號調制過程交由GPU端執行。本方法將采樣點以時間為單位分段,在每個時間段內均勻選取四個采樣點,根據信號時間模型求解每一點的精確時延,然后利用曲線擬合的方法,在該段通過一個三階曲線進行擬合,該段內每一個采樣點可以通過三階多項式進行求解,經過上述步驟,可將邏輯復雜的時延求解過程轉換成每個采樣點的簡單運算,之后將參數傳入設備端,調用核函數完成并行計算,最終實現降低軟件模擬時間的需求。
產生好的數字中頻信號需要經過FPGA的一系列處理,變成可供矢量信號發生器播放的信號。該過程包括數據讀取、采樣率變換、基帶信號處理和數模轉換四個過程。由于FPGA與DAC模塊的系統時鐘均為200MHz,無法保證采樣率被200MHz整除,因此選用Farrow重采樣濾波器實現信號采樣率的動態變換。基帶信號處理包括了混頻和帶通濾波:為了盡可能地降低軟件模擬時的數字中頻信號的采樣率,在軟件端將GPS和BDS信號的中頻載波統一降低了5MHz,因此需要通過FPGA對基帶信號進行混頻還原;為了減少對調制后射頻頻段其他信號的影響,在數字中頻信號被送入DAC之前還需進行帶通濾波處理。經過基帶信號處理之后的數字信號被送入DAC,經射頻模塊調制到射頻,最終通過天線發射。
射頻信號可以利用接收機進行接收驗證。本文使用的接收機是UTREK210,這是一款可以同時接收GPS和BDS信號的雙模接收機,可以同時觀測到這兩種信號的捕獲與定位情況:圖4顯示了接收機對雙模信號的捕獲情況,從圖中可以看到該接收機捕獲了6顆GPS衛星,8顆BDS衛星,這表明播放的雙模信號沒有產生明顯的干擾,有效地模擬了衛星導航信號的擴頻碼與動態多普勒信息;圖5顯示了接收機從導航信號中所提取的仰角和星座圖,從圖中可知接收機通過對導航信號的捕獲跟蹤后,成功地提取出了導航電文;圖6顯示了接收機最終的定位結果,定位結果與預設的位置坐標一致,定位時間也與仿真時間相同。由此結果可知,本文所給出的單硬件通道的GPS/BDS雙模導航信號模擬方法能夠有效地模擬真實導航衛星信號,具有很好的實用性。

圖4 接收機衛星通道

圖5 接收機衛星星座圖

圖6 接收機定位結果
本文旨在給出一種基于軟件的GPS/BDS雙模信號模擬方法。對于兩種信號頻段的差異,提出了一種新型的單硬件通道解決方案,將GPS與BDS的中頻信號利用CPU+GPU架構聯合產生,之后對其進行統一地信號處理。該方案大大減少了軟件模擬時的中頻信號帶寬,克服了多通道資源消耗大,設計復雜和傳統單通道帶寬大,采樣率高的缺點,大大提高了軟件模擬信號的速度,經過信號發生器的播放,驗證了該方案的可行性。通過分析單硬件通道處理雙模導航信號的優勢,可以發現該方法具有很好的應用前景。隨著軟件端信號模擬速度的提高,有望利用軟件實現衛星導航信號的實時模擬:在軟件端和硬件端的之間設置一個緩沖區,將一段生成好的信號導入緩沖區,通過乒乓操作安全無縫地接收數據流供硬件端播放。理論上只要中頻信號的生成速度不小于信號的實際播放速度即可實現,該功能的實現取決于GPU的加速性能和采樣率的大小。除了在雙模系統中使用本方法,也可以在多模衛星導航信號模擬系統中使用。這對于軟件實現信號模擬的實時播放有著非比尋常的意義,有望實現軟件模擬源完全替代硬件模擬源的可能。