林紹灝, 王守華, 紀元法, 劉 迎
(1.桂林電子科技大學信息與通信學院, 廣西桂林 541004; 2.桂林電子科技大學廣西精密導航技術與應用重點實驗室, 廣西桂林 541004)
電離層作為一種非均勻介質會造成信號的幅度、相位發生隨機的波動,這被稱之為電離層閃爍現象[1-2]。電離層閃爍會影響衛星信號質量,造成波形畸變并提高誤碼率,極大地影響衛星導航系統的定位、授時性能以及可靠性[3-4]。伴隨著以GPS、北斗為代表的衛星導航系統的廣泛應用,對電離層閃爍的有關研究是十分必要的。
當前,對電離層閃爍監測的研究主要集中在改裝現有的高精度GPS商業接收機板卡,并利用GPS衛星信號進行電離層閃爍監測,而伴隨著北斗衛星系統的發展和成熟,利用GPS和北斗衛星導航系統的多頻點信號進行電離層閃爍監測逐漸成為趨勢。
本文先簡略介紹了GPS/BD雙模電離層閃爍監測系統的基本結構組成,然后詳細闡述了系統硬件的設計、接收機嵌入式軟件及電離層閃爍監測上位機軟件的設計和閃爍監測算法的原理與實現,并在最后給出該系統的運行效果和實時測量結果,并進行討論和分析。
本文所闡述的GPS/BD雙模電離層閃爍監測系統支持GPS的L1/L2頻點和北斗的B1/B2頻點,整個系統由硬件及軟件兩大部分組成,結構如圖1所示。其中,硬件部分包括基于ARM+FPGA的GPS/BD雙模多頻電離層閃爍監測接收機、接收機天線、低相位噪聲的高精度時鐘源、系統電源和臺式計算機。軟件部分包括GPS/BD雙模多頻點電離層閃爍監測接收機的嵌入式軟件和安裝在臺式計算機上的電離層閃爍監測上位機軟件。

圖1 GPS/BD雙模多頻電離層閃爍監測系統結構框圖
圖1中,GPS/BD雙模多頻點電離層閃爍監測接收機接收GPS/BD衛星信號,經過下變頻和基帶信號處理,得到相應的原始觀測量,并通過RS232線纜與臺式計算機進行連接,將接收機原始觀測量回傳到臺式計算機中。在臺式計算機中運行的電離層閃爍監測上位機軟件從串口緩沖區讀取原始觀測量數據,進行實時的計算,得到相應的電離層閃爍觀測信息,并根據用戶的操作進行顯示、分析和存儲,從而構成功能全面的全自動無人值守GPS/BD雙模電離層閃爍監測系統。為了在弱閃爍發生時能有效地進行監測,圖1所示的高精度時鐘源采用的是恒溫晶振(Oven Controlled Crystal Oscillator, OCXO),這種晶振相對于衛星導航接收機常常采用的溫度補償晶振(Temperature Compensate Crystal Oscillator, TCXO),其具有較低的相位噪聲,可以避免在電離層閃爍較弱的情況下,相位的隨機波動被晶振本身的相位噪聲所淹沒[5]。
GPS/BD雙模電離層閃爍監測系統的核心硬件是基于ARM+FPGA的GPS/BD雙模多頻點電離層閃爍監測接收機,接收機的硬件部分包括電源模塊、射頻模塊和基帶信號處理模塊,其結構如圖2所示。

圖2 GPS/BD雙模多頻電離層閃爍監測接收機硬件結構
電源模塊主要由TI公司的電源管理芯片TPS650250、DCDC芯片TPS62085和安納森半導體公司的LDO穩壓器芯片VRD3030PTX組成,結構如圖3所示。其中電源管理芯片TPS650250的外部輸入電壓為3.3 V,經過內部電壓轉換,可得到1.1,1.5,3.0和2.5 V四種輸出電壓,供給DDR3、ARM芯片、FPGA芯片和NOR FLASH芯片使用;LDO穩壓器芯片VRD3030PTX將外部的3.3 V電壓經過穩壓整流后得到的3.0 V電壓作為射頻模塊的電源;DCDC芯片TPS62085將外部的3.3 V電壓經過升壓得到5.0 V電壓作為有源天線的供電電壓。

圖3 電源管理模塊結構
射頻模塊如圖4所示。其采用單天線輸入結構布局。天線輸入的射頻信號先經過低噪聲放大器后再通過一個二等分功分器,對于得到的兩路射頻信號的每一路信號再分別通過一個二等分功分器,總共得到四路射頻信號,并使用聲表濾波器對每一路信號進行濾波。MAX2769作為美信公司的一款GNSS接收器芯片,內部集成了完整的接收鏈路,由FPGA配置芯片內部的本振從而將輸入的射頻信號下變頻到特定頻率的中頻信號,并通過芯片內部的ADC進行模數變換,對于得到的中頻數字信號直接輸出給基帶信號處理模塊進行處理。由于MAX2769的輸入信號的頻率范圍為1 550~1 610 MHz,因此對于GPS L1頻點的信號和北斗B1頻點的信號均在此頻率范圍內,故可以直接通過MAX2769進行下變頻;而GPS L2頻點和北斗B2頻點信號的中心頻率分別為1 227.6 MHz和1 207.14 MHz,不在MAX2769輸入信號的頻率范圍內,因此,得先經過上變頻后再通過MAX2769下變頻得到中頻信號。本文采用ADI公司的ADF4360作為上變頻的本振信號發生器,通過FPGA配置ADF4360,使其產生的本振信號的頻率fLO1和fLO 2分別為332 MHz和380 MHz,因此,GPS L2頻點和北斗B2頻點的信號經過上變頻后的中心頻率分別為1 559.6 MHz和1 587.14 MHz。

圖4 射頻模塊結構圖
通過FPGA配置框圖中的四路信號的MAX2769芯片,其輸入信號的頻率、內部本振的頻率設置和下變頻后得到的中頻頻率如表1所示。

表1 MAX2769參數設置 MHz
基帶信號處理模塊以Altera公司的FPGA芯片5CEFA7U19和TI公司的ARM芯片AM3352為核心,并以DDR3作為外置內存,NOR FLASH作為存儲器。FPGA與射頻模塊使用同一個晶振作為時鐘源[6],晶振頻率為25 MHz。在FPGA內部對晶振的輸入時鐘進行倍頻,提高FPGA時鐘可以有效增強基帶信號處理能力,但同時也考慮到時序約束和該型號FPGA本身的性能,因此選擇倍頻得到100 MHz的時鐘,作為FPGA基帶信號處理的主時鐘頻率。FPGA內部實現了198個信號跟蹤通道,可同時實現對GPS的L1/L2頻點和北斗的B1/B2頻點信號的跟蹤,并將每1 ms的相關峰值輸出給ARM芯片。ARM芯片作為基帶信號處理模塊的主控芯片,采用24 MHz的外部晶振作為輸入時鐘,為了盡可能地提高處理性能并考慮到ARM的極限時鐘頻率,故將ARM芯片內部倍頻到504 MHz作為工作時鐘。ARM芯片通過通用存儲控制器(General Purpose Memory Controller, GPMC)模塊與FPGA進行交互,并負責信號捕獲控制、跟蹤環路控制和定位解算,同時通過串口將各通道的原始測量信息和解算得到的位置狀態等信息發送給電離層閃爍監測上位機軟件。
接收機嵌入式軟件是實現GPS/BD雙模多頻點電離層閃爍監測接收機功能的核心所在,其軟件涉及ARM和FPGA兩部分,軟件結構如圖5所示。ARM作為主控制端,負責基帶信號運算處理和控制,包括捕獲控制模塊、跟蹤控制模塊、同步解調電文模塊和定位解算模塊四大部分。FPGA作為協處理端,包括射頻配置模塊、信號捕獲模塊和信號跟蹤模塊三大部分。

圖5 接收機嵌入式軟件結構
在接收機啟動后,FPGA首先完成對MAX2769和ADF4360的配置,之后不斷讀取MAX2769輸出的數字中頻信號進行基帶信號處理。之后,ARM與FPGA配合共同完成衛星信號的捕獲和跟蹤。
對于衛星信號的捕獲,FPGA先從ARM獲取待捕獲的衛星的編號,然后在FPGA的捕獲模塊中對數字中頻信號進行處理,每個通道捕獲1顆衛星,當完成某顆衛星某個頻點的信號捕獲后,將該顆衛星相應頻點的捕獲峰值所對應的碼相位和多普勒頻移發送給ARM的捕獲控制模塊作相應的處理。對某顆衛星信號的捕獲本質上是在二維平面內不斷搜索其載波頻率和碼相位,傳統的捕獲過程是對載波頻率以頻帶寬度fbin為搜索步長進行搜索,對碼相位以tbin為步長進行搜索,耗時較長。本文利用并行碼相位搜索進行衛星信號捕獲,根據相關運算原理,經過載波剝離的衛星信號s(n)與本地C/A碼CA(n)進行長為N點的相關運算,如式(1)所示:
(1)
式中,r(n)的離散傅里葉變換如式(2)所示:

(2)

因此,根據并行碼相位搜索法的原理,FPGA的捕獲模塊如圖6所示,在FPGA捕獲模塊中,當數字中頻信號分別與本地載波在I支路和Q支路上混頻后,對混頻結果i+jq進行FFT運算,同時對本地C/A碼進行FFT運算和共軛運算,并將兩者的值通過乘法器進行相乘,最后進行IFFT運算,從而得到時域內的相關結果,并由此來尋找相關峰,判斷對該信號的捕獲成功與否。無論是對于GPS還是北斗信號,可以先將經過FFT運算的C/A碼的共軛值保存到FPGA的ROM中,形成一個查找表,這樣就避免了每捕獲一次都進行重復的FFT運算和共軛運算,節省了運算量。由于對碼相位的搜索是一次完成,加快了捕獲的速度。

圖6 FPGA捕獲模塊結構
當衛星信號被捕獲成功后,就進入到了信號跟蹤流程。考慮到3階及以上階數的鎖相環可以準確無誤地跟蹤頻率斜升信號,但階數越高則越不穩定。同時由于鎖相環的噪聲帶寬較窄,一方面帶來了較高的跟蹤精度,另一方面也容易受噪聲的影響而造成鎖定困難。鎖頻環雖然跟蹤精度不如鎖相環,但其具有較寬的噪聲帶寬,可以在強電離層閃爍下仍能有效保持衛星信號跟蹤,故接收機采用2階鎖頻環輔助3階鎖相環作為載波跟蹤環路,碼跟蹤環路帶有載波輔助,環路階數為2階。圖7為跟蹤模塊的軟件結構,首先ARM向FPGA發送捕獲多普勒頻移和碼相位,并在同步模塊中分別設置載波剝離模塊中的載波數字控制振蕩器(Numerically Controlled Oscillator, NCO)初始值和碼剝離模塊中的碼NCO初始值,接著通過載波剝離模塊對數字中頻信號進行去載波,并將去載波后的數字基帶信號輸入到碼剝離模塊,在碼剝離模塊中與本地產生的超前碼、即時碼和滯后碼分別作相關運算,并將IE和QE,IP和QP,IL和QL這6路相干積分結果發送給ARM,其中IP和QP兩路的相干積分值進入ARM端的載波環鑒別器,在完成鑒頻鑒相濾波后,將得到載波頻率字再發送給FPGA的同步模塊;而IE,IL,QE和QL四路相干積分值被送入ARM端的碼環鑒別器,在完成鑒相濾波后,將碼環濾波結果與載波環濾波結果進行異或求和并發送給FPGA的同步模塊,構成閉合環路,最終達到實時調整載波環路和碼環路的目的,并穩健地跟蹤信號。對于電離層閃爍監測,其需要跟蹤環路能夠以較高采樣率輸出信號強度、載波相位和偽距等原始測量信息[8],因為采樣率越高,其能監測到空間尺度更為小的電離層不規則體所引起的閃爍現象。故提高采樣率是提高電離層閃爍監測精度的一種十分有效的方式。但由于導航電文中1 bit的寬度是20 ms,因此跟蹤環路的更新周期不大于20 ms,故本文設計的跟蹤環路的更新率為50 Hz,能夠以50 Hz的采樣率輸出信號強度和載波相位。

圖7 跟蹤模塊的軟件結構
GPS/BD雙模電離層閃爍監測系統在計算電離層幅度閃爍指數S4時,需要接收機能夠提取GPS/BD衛星信號的強度,傳統的做法是利用接收機輸出的載噪比C/N0來近似地代替信噪比SI/N0,并依據式(3)得到信號強度SI[3]:
SI=10CN0/10
(3)
但這種方式會引入額外的誤差,影響到計算出的S4的精確性。本文采用窄帶功率與寬帶功率相差法,利用跟蹤環路中每1 ms的即時I支路的相關值IP和即時Q支路的相關值QP來計算窄帶功率NBP和寬帶功率WBP,窄帶功率NBP的計算如式(4)所示:
(4)
式中,Ii與Qi為接收機跟蹤環路每1 ms輸出一次的I支路和Q支路的相關峰值,將相關峰值在20 ms內相干累加的值作為窄帶功率。而寬帶功率WBP為相關峰值在20 ms內的非相干累加值,其計算如式(5)所示。
(5)


400I2+400Q2+NoiseNBP
(6)

20I2+20Q2+NoiseWBP
(7)
通過將窄帶功率NBP與寬帶功率WBP作差,可近似得到20 ms內的信號功率SI,如式(8)所示:
SI=NBP-WBP=
380·(I2+Q2)+NoiseNBP-NoiseWBP≈
380·(I2+Q2)
(8)
由于依據上式計算得到的信號強度的波動與天線的方向圖、衛星的運動和多徑效應有關,因此,對計算出的瞬時信號強度SI進行消趨勢低通濾波是必須的。本文采用巴特沃斯低通濾波器作為消趨勢濾波器。以某一時刻采集到的GPS的7號衛星的L1頻點信號為例,未經濾波的瞬時信號強度如圖8所示。

圖8 未經消趨勢濾波的原始信號強度
為了比較不同階數的消趨勢濾波的效果,分別設計了3階、4階、5階、6階和7階巴特沃斯低通濾波器,3 dB截止頻率均為0.1 Hz,然后以原始信號強度作為濾波器的輸入,則經過不同階數的巴特沃斯低通濾波器濾波后的信號強度如圖9所示。

圖9 不同階數的濾波器濾波后的信號強度
由圖9可知,6階消趨勢濾波的效果與7階消趨勢濾波的效果相當,均要明顯優于3階、4階及5階消趨勢低通濾波的效果,同時考慮到濾波器的穩定性和運算量,本文選取的巴特沃斯低通濾波器的階數為6階,為了保證濾波器的穩定性,濾波器由3個級聯的2階濾波器組成。
對于每一個2階濾波器,可以由常系數微分方程來表示[9]:

a1y(n-1)+a2y(n-2)+
b0x(n)+b1x(n-1)+b2x(n-2)
(9)
式中,ak和bk均表示濾波器的系數,x(n)表示輸入濾波器的數字序列,y(n)表示濾波器的輸出,濾波器的系數a1,a2,b0,b1,b2分別為
a1=-1.647 459 981 077
(10)
a2=0.700 896 781 188 4
(11)
b0=0.013 359 200 027 9
(12)
b1=0.026 718 400 055 7
(13)
b2=0.013 359 200 027 9
(14)
電離層閃爍監測上位機軟件讀取GPS/BD雙模多頻點電離層閃爍監測接收機發送過來各通道信號強度、載波相位測量值、偽距測量值、可見衛星仰角及方位角、參與解算的衛星數、用戶位置、精度因子等數據,并完成數據預處理,進行信號強度和載波相位的消趨勢濾波,然后計算電離層幅度閃爍指數和相位閃爍指數,并可根據用戶的操作,在軟件中實時的繪制各通道載噪比、星空圖、用戶位置變化曲線、用戶位置偏差變化曲線、偽距曲線、載波相位曲線、電離層幅度閃爍曲線和相位閃爍曲線等,以可視化的方式顯示各項數據信息,并可根據設置存儲各項信息,當閃爍發生時自動記錄各種觀測數據,實現電離層閃爍監測的無人值守。
電離層閃爍監測上位機軟件采用C#語言基于WinForm框架進行開發,軟件的結構如圖10所示。
軟件采用分層結構設計,分為數據訪問層、邏輯層和用戶層,層與層之間實現松耦合,層內各功能模塊實現高內聚。
在數據訪問層中,分別實現對文件、串口和數據庫的讀寫,然后通過統一的數據訪問接口向上層提供對底層數據的讀寫功能。
邏輯層包括控制邏輯、電離層閃爍監測邏輯、數據處理邏輯和數據存儲邏輯四大模塊,其中,控制邏輯模塊負責接收用戶層發送過來的控制命令,并對其他3個模塊進行控制和數據交互,并返回相應的數據給用戶層;數據處理邏輯模塊主要包括對GPS/BD衛星的各頻點信號的信號強度和載波相位進行消趨勢濾波處理;電離層閃爍監測邏輯模塊獲取經過處理后的數據進行GPS/BD衛星各頻點信號的電離層幅度閃爍和相位閃爍指數的計算,并得到當前時刻的最大幅度閃爍指數和最大相位閃爍指數,同時對電離層閃爍事件的發生進行判斷以及記錄統計;數據存儲邏輯模塊根據控制邏輯模塊的指令對指定的數據實現按小時、天、月進行存儲,并生成相應的存儲日志,以便事后分析。
用戶層包括軟件主界面和各個功能視圖界面,對上接受用戶的操作,并將數據進行可視化顯示,對下與邏輯層進行交互,向邏輯層發送控制命令并得到各類數據。
為了提高軟件的性能和保證用戶界面的流暢,軟件以多線程的方式運行,包括主線程、串口監聽線程和任務處理線程這3個線程,主線程負責軟件各功能模塊的控制和用戶界面的交互;串口監聽線程負責監聽串口接收事件并讀取串口數據;任務處理線程負責進行數據處理,并完成電離層閃爍監測相關的運算。
電離層幅度閃爍指數S4的定義如式(15)所示,其定義為信號強度的標準差與平均值的比值[10],它與接收機接收到的衛星信號強度的變化大小有關。
(15)
式中,〈〉表示60個點的算術平均運算。對于經過了消趨勢低通濾波的信號強度SIlpf,利用式(16)可得到信號強度的消趨勢值SI′,其在1左右波動,圖11為前面提到的某一時刻采集到的GPS的7號衛星的L1頻點信號的消趨勢值。
(16)

圖11 信號強度的消趨勢值
因此,在得到信號強度的消趨勢值SI′之后,式(15)修改為
(17)
相位閃爍指數是用載波相位測量值φ的標準差σφ來表示的[10],它表征了在電離層相位閃爍影響下衛星信號的相位隨機波動的情況,直接反映了相位閃爍的強弱。它的定義式為
(18)
式中,〈〉表示60個點的算術平均運算,每分鐘計算得到一個σφ。由于載波相位的測量值受到對流層、本地接收機鐘差、衛星鐘差等多方面因素的影響,具有較強的趨勢變化,同時由于這些影響因素都具有緩變特征,所以需要采用高通濾波器來進行消趨勢濾波,得到消趨勢后的載波相位測量值φ′。對于消趨勢高通濾波器的分析與前面對消趨勢低通濾波器的分析類似,在此不再贅述。本文選取的是6階巴特沃斯高通濾波器作為消趨勢高通濾波器,3 dB截止頻率為0.1 Hz,以GPS的3號衛星L2頻點信號為例,圖12為某時刻采集到的其原始的載波相位測量值與經過消趨勢濾波后的載波相位測量值對比圖。

圖12 GPS的Prn3號星L2頻點的消趨勢濾波前后載波相位測量值
從圖中可看出,由于衛星與接收機存在相對運動,故原始的載波相位測量值是逐漸增大或減小的,直接由此無法解析出由相位閃爍引起的相位隨機波動情況;但通過消趨勢高通濾波器對原始的載波相位測量值進行處理后,得到的消趨勢后的載波相位測量值φ′是0左右波動的,其波動情況與相位閃爍的強弱相關。
因此,利用消趨勢后的載波相位測量值φ′,式(18)修改為
(19)
為了驗證所設計的GPS/BD雙模電離層閃爍監測系統的可用性,于2018年2月5日21時至2月6日13時接收天上的GPS/BD衛星信號進行連續運行測試,電離層閃爍監測上位機軟件運行主界面如圖13所示。

圖13 電離層閃爍監測軟件實時運行圖
與同一時間同一地點運行的武漢大學的電離層閃爍監測儀的觀測結果作對比,圖14為電離層幅度閃爍指數S4對比圖,圖15為電離層相位閃爍指數σφ對比圖。

圖14 電離層幅度閃爍指數對比圖

圖15 電離層相位閃爍指數對比圖
從兩者的對比圖可知,本文所設計的電離層閃爍監測系統與武漢大學的電離層閃爍監測儀在幅度閃爍指數S4和相位閃爍指數σφ上的變化基本一致,表明本文所設計的GPS/BD雙模多頻電離層閃爍監測系統是可行的。
本文先簡要地介紹了所設計的GPS/BD雙模電離層閃爍監測系統的總體框架,給出了GPS/BD雙模多頻點電離層閃爍監測接收機的硬件和嵌入式軟件設計結構,對捕獲模塊和跟蹤模塊進行了詳細的說明,并對跟蹤環中信號強度的計算進行了詳細的闡述和分析。同時介紹了消趨勢濾波器的設計并給出了相應的參數,然后介紹了電離層閃爍監測上位機軟件的結構及設計,具體說明了電離層幅度閃爍指數S4和相位閃爍指數的計算流程和方法。在文章的最后,給出了系統運行效果及運行測試結果。