王玉娥
(北京東方新星石化工程股份有限公司,北京100070)
全球定位系統(GPS)是一種廣泛應用于軍用和民用的衛星導航定位系統。在該系統中,最重要的部分是接收機,傳統的GPS接收機主要采用專用集成電路(ASIC)對信號進行處理和快速微處理器進行計算。但是不同于微處理器,ASIC的算法不易改變。當需要改變算法時,ASIC就必須由制造商重新設計,代價高昂。隨著GPS技術的發展,例如,當增添L5波段信號,或者對于能夠兼容多種衛星導航和定位系統的特殊用途的接收機,中頻數字信號處理算法往往需要改變。而硬件接收機的專用芯片是不能滿足這些要求的[1]。
軟件無線電由于其靈活性和多功能性被廣泛應用于GPS軟件接收機的設計[2]。按照應用軟件來說,接收機可以作為一個具有先進算法的單一系統接收機或者各種系統組合的接收機。應用算法可以增強接收機在信號處理和定位的能力[3]。
本文主要介紹了基于MAX2769射頻前端的GPS軟件接收機的硬件和軟件設計。射頻前端將接收到的衛星信號下變頻為中頻數字信號,然后通過數據采集板將中頻數據傳輸到PC端,最后在PC上通過軟件對基帶信號進行解碼。
由于接收信號的模擬特性,對于處理真實信號的軟件接收機通常包括一個處理模擬信號的部分,稱為射頻前端。射頻前端輸出的信號被轉換為數字形式,并能夠在可編程數字信號處理器中處理,例如DSP、FPGA和PC等。射頻前端的性能在很大程度上決定了軟件接收機的性能。
GPS軟件接收機的射頻前端首先用低噪聲放大器(LNA)將接收到的微弱信號進行放大,然后通過一或兩個混頻器將輸入信號與本地振蕩器信號進行混合,將信號下變頻到較低的中頻(IF)。最后通過模數轉換器(ADC)將模擬中頻信號轉換成數字中頻信號[4]。
MAX2769的直接下變頻結構具有內部濾波器,無需外部濾波元件。該芯片提供了兩個放大器:其中一個可配合無源天線使用;另一個可配合有源天線使用。無需外部放大器。在第一級放大器輸出與混頻器輸入之間通過耦合電容連接,并提供了RF信號引出端。集成參考時鐘振蕩器可以使用溫補晶振(TCXO),無需調節外部負載電容進行器件匹配。在晶體和晶體/參考輸入之間連接一個串聯電容,通過內部SPI接口可對頻率進行微調[5]。
MAX2769設置為從ADC輸出2位CMOS值,通過3線SPI接口,包括SDATA,SCLK和CS/對寄存器進行編程配置。
為了通過標準的USB2.0接口,將射頻前端輸出的數據傳輸到PC端,選擇一個中頻信號采集板。利用輸入的數據,基帶處理軟件程序計算出位置的初步信息,并隨后進行跟蹤。
捕獲的主要目的是確定可見衛星,獲得每顆衛星的載波頻率和碼相位的粗略值。通過32個不同的PRN序列來識別不同的衛星。碼相位是指當前數據塊中C/A碼的起始位置。當本地復制的C/A碼與輸入信號中的C/A碼序列完全對齊時,輸入信號中的C/A碼被移除。
在接收器端,GPS輸入信號與載波相乘后形成同向和正交(I和Q)兩路信號。再通過相關器將基帶信號與本地復制C/A碼進行相關運算[6]。經過一個比特周期的積分后,相關器的輸出被累加并獲取其最大值。當最大值超過某一門限時,則判斷捕獲成功,然后進入跟蹤模式。否則,重新調整本地產生的C/A碼和載波頻率,更新相關器輸出最大值,并重復上述過程[7]。
在GPS軟件接收機中,使用并行碼相位算法進行捕獲。這種方法同時搜索多普勒頻率和碼相位,采用傅里葉變換將時域的循環互相關運算變換為頻域的乘積運算。這樣只需要搜索多普勒頻移,簡化了運算過程,是一種快速高效的軟件搜索方法[8]。
圖1顯示了并行碼相位捕獲的過程。首先,將輸入信號與本地正弦和余弦載波分別相乘,產生同向I和正交Q信號分量。然后把I和Q分量合并成一個復合信號并進行FFT運算。FFT變換的結果再和本地復制C/A碼的FFT變換結果的復共軛相乘。將相乘后的結果再進行傅立葉逆變換,然后對傅里葉逆變換后的結果取模,即得到輸入信號與本地復制偽碼的相關結果。最后,比較相關結果的最大值與預先設定的門限。如果最大值大于預先設定的門限,則捕獲成功。否則,改變多普勒頻率并重復上述過程,直至捕獲成功[9]。

捕獲完成后獲得載波頻率和碼相位的粗略值。因此,需要通過跟蹤進行細調,以便系統能用精確的碼相位和載波頻率解調出導航數據。跟蹤過程中,首先將載波從輸入信號中剔除,然后再與本地復制偽碼相乘,輸出即為導航數據。所以跟蹤過程需要產生兩種復制信號,一種為載波,一種為偽碼。相應的,跟蹤就分為載波跟蹤和碼跟蹤[10,13]。
碼跟蹤環路的主要目的是對信號中偽碼的相位保持跟蹤,使本地復制C/A碼的相位與輸入信號中的C/A碼相位保持一致。在GPS接收機中,碼跟蹤環一般采用稱為超前-滯后跟蹤環的延遲鎖定環(DLL)實現[11],如圖2 所示。

首先將輸入信號與本地復制載波相乘,用三個不同相位(間隔±0.5碼片)的本地復制C/A碼與輸入信號進行相關,這三個C/A碼分別稱為超前碼,即時碼和滯后碼。經過積分累加之后,比較得到的三個相關結果,具有最高相關值的信號被選中并保留,然后推算出C/A碼自相關峰值的位置,確定即時碼與接收信號中的C/A碼的相位差異,進而獲得接收信號中碼相位的測量值,并將碼相位差異反饋給C/A碼數控振蕩器,相應調整本地復制偽碼的相位。
為了成功的解調出導航數據,需要生成精確的本地復制載波。在載波跟蹤環中,一般使用鎖相環中的Costas環實現。

如圖3所示,Costas環是一種相位鎖定環,其對相位翻轉不敏感,可以對信號保持精確的跟蹤。當從輸入信號中剔除C/A碼后,輸出為一個被導航數據調制的連續波信號。壓控振蕩器根據捕獲輸出產生載波頻率并生成兩路載波信號,一路為直接信號,一路經過90度相位翻轉。這兩路信號分別與輸入信號相關。相關結果經過濾波后,再經過反正切鑒相器比較其相位。然后將鑒相結果經過濾波后產生一個控制信號,用來調節振蕩器,使其產生的載波頻率接近輸入的連續波信號。這個載波頻率也被用來剔除輸入信號中的載波[8]。
當捕獲和跟蹤完成之后,就可以從跟蹤模塊的同相支路的輸出中得到導航數據信息,然后將輸出數據標準化為包含1和-1的序列。由于跟蹤環輸出的是速率為1000bps的導航數據信息,而導航數據的比特率為50b/s,所以在對導航數據解碼前,要將1000bps的導航數據信息轉化為50b/s的導航數據,也就是要將20個連續的值用1個值來代替,這個轉換過程即稱為位同步。位同步過程中的首要任務是要找到位翻轉點,即輸出序列中的數據從1變為-1或從-1變為1的位跳變位置。當數據翻轉點確定之后,可以用20ms的間隔分割1000bps輸入數據,然后再對20ms間隔排列的比特取樣累加起來取平均值,從而解碼出導航數據[6]。
一旦實現跟蹤,通過子幀匹配和奇偶校驗就可以將輸出的結果轉換成導航數據。從子幀中獲得星歷數據。根據這些星歷數據可以確定衛星的位置,還可以獲得接收機和衛星之間的偽距,一旦獲得所以必要的信息,就可以計算出用戶的位置。最后,將用戶的位置轉換到需要的坐標系下。
在上述過程中,最關鍵的步驟是計算偽距。因為GPS接收機不能獲得本地接收機的時間,也就無法計算出接收機和衛星之間的信號傳輸時間,只能通過相對測量來獲得偽距。不考慮每顆衛星的時鐘校正,所有不同衛星的子幀1的起始點都是相同的。因此,可以認為不同衛星的子幀都是在同一時刻發射的。由于在不同時刻收到不同衛星的子幀l,這個時間差就代表了不同衛星到接收機的距離差,所以它就代表相對偽距。相對偽距可作為觀測數據用于定位解碼[1]。
通過對信號的捕獲,獲得視距內可見的衛星信號,并得到載波頻率和碼相位的粗略估計值。經過載波和偽碼跟蹤,不斷調整載波頻率和碼相位,最終獲得精確值。對得到的數據進行位同步、子幀匹配和奇偶校驗提取出導航電文,并得到衛星與接收機之間的相對偽距,用于接收機位置的解算。其軟件和算法已經得到實際驗證[12],滿足低精度測量和導航的要求。
[1]JAMES BAO,YEN TSUI.Fundamentals of global positioning system receivers:A software approach[M],New York:John Wiley & Sons,Inc,2004.
[2]GOUGAN G M,NORRMARK P L,STALBERG C.Satellite navigation evolution:the software GNSS receiver[J].GPS World,2005(1):48 -56.
[3]ALISON BROWN.Benefits of software GPS receiver for enhanced signal processing[J].GPS Solutions,2000(1):56-66.
[4]DAVID WEBER,ROGER BREMER.Universal GPS receiver lets you use a laptop PC for Soft baseband processing[J].Maxim's Engineering Journal,2008,63:1 - 8.
[5]MAX2769 DATASHEET[P/OL].2003 -3 -04.http://datasheets.maximintegrated.com/en/ds/MAX2769.pdf
[6]JIN TIAN,QIN HONG LEI,ZHU JUNJIE.Real- time GPS software receiver correlator design[C].Proceedings of the second international conference on communications and networking in china,2007.
[7]ANDREA MOLINO,MARIO NICOLA,MARCO PINI,MAURIZIO FANTINO.N-Gene GNSS software receiver for acquisition and tracking algorithms validation[C].Proceedings of the 17th European Signal Processing Conference,2009.
[8] ZUOHU LI, JINMING HAO, JIANWEN LI,,CHENGJUN ZHANG.IF signal processing algorithm for GPS software receiver[C].Proceedings of the Congress on Image and Signal Processing,2008(1).
[9]BOROI D,DRISCOLL O,LACHAPELLE C.Composite GNSS signal acquisition over multiple code periods[J].Aerospace and Electronic Systems,2010,46(1):193-206.
[10]HUANG YANGBO,TANG XIAOMEI.Differential correlator for tracking GPS Signalssignals[C].Proceedings of the Information Engineering and Computer Science in China,2009.
[11] NOMI SONOWAL,RAJEEV YADAV,KANNAN S.Real Time time GPS Software receiver receiver with new fast signal tracking method[C].Proceedings of 2008 IEEE Radio and Wireless Symposium,Orlando,FL,USA,2008
[12]崔鑫拓,夏亮亮,徐博會.利用SSL VPN實現卡車調度系統中的遠程設備管理[J].河北工程大學:自然科學版,2012,29(1):100 -102.
[13]王小勝,王保國.研究不精確現象的新數學工具-不確定理論[J].河北工程大學:自然科學版,2010,27(4):101-105.