0×00 前言
GNSS是Global Navigation Satellite System的縮寫。中文稱作:全球衛星導航系統、全球導航衛星系統。

GNSS泛指所有的衛星導航系統,包括全球的、區域的和增強的,如美國的GPS、俄羅斯的Glonass、歐洲的Galileo、中國的北鬥衛星導航系統,以及相關的增強系統,如美國的WAAS(廣域增強系統)、歐洲的EGNOS(歐洲靜地導航重疊系統)和日本的MSAS(多功能運輸衛星增強系統)等,還涵蓋在建和以後要建設的其他衛星導航系統。
0×01 摘要
全球衛星導航系統(GNSS)Galileo-E1和GPS-L1鍊路的中心頻率是 1575.42MHz,而E400調諧器晶片可以覆寫這個頻段。我們可以配置GNSS-SDR,把RTL2832U作為實時信号源,進而為搭建GPS-L1信号接收器提供一種低成本的選擇(數十塊)。關于GNSS-SDR這個新功能,本文将介紹操作細節以及一些性能測試。
0×02 OsmoSDR驅動
為支援realtek瑞昱RTL2832U晶片的電視棒,GNSS-SDR需要使用OsmoSDR GNU Radio資料源子產品(source block)及其驅動。研究人員實作新的 GNSS-SDR資料源擴充卡,即實際上是OsmoSDR上gr_hier_block2的類執行個體,而關聯的GNSS-SDR 資料源名稱為Osmosdr_Signal_Source。擴充卡的源碼位于:
通過包含以下頭部檔案,調用libgnuradio-osmosdr 函數庫:
編譯時增加GNSS-SDR對RTL2832U的支援是可選的,需要安裝 OsmoSDR庫。關于一步步建構的操作方法,請查閱位于trunk/README的GNSS-SDR 說明文檔。
0×03 設定GNSS-SDR 開啟GPS-L1實時模式
為了相容 USB DVB-T裝置,我們必須在 GNSS-SDR配置檔案(gnss-sdr.conf) 中選擇 Osmosdr_Signal_Source作為信号源子產品(SignalSource block)。此外,我們也需要配置如下參數:
可正常接收 GPS-L1 C/A信号的有效配置如下:
安全研究員建議把采樣頻率設為2 MSPS。在酷睿2四核Q9000處理器@2.66GHz主頻和4G記憶體的硬體情況下,這一配置可以實作8個衛星信道的實時接收操作。此外,啟用E4000的自動控制增益(AGC)可以獲得最好效果。
0×04 RTL2832U振蕩器精度和穩定性的問題
本地晶體振蕩器的的誤差會給GNSS接收器造成兩種影響:
多虧了GNSS-SDR的靈活性,安全研究員可以通過修改軟體接收器配置來消除這兩種負面影響。一方面,可以通過啟用如下的頻率轉換FIR過濾器來使用信号調節子產品(Signal Conditioner block )抵消中頻(IF):
另一方面,通過設定GNSS-SDR内部采樣頻率參數預計的采樣時鐘頻率,可以測量和斟酌采樣頻率錯誤。
0×05 GPS有源天線
安全研究員使用帶有陶瓷貼片天的低噪聲放大器(Low Noise Amplifier LNA)天線作為有源GPS天線,進而降低整體的噪聲。下圖展示Garmin GA27C GPS天線,我們可以看到在它的PCB闆子上有塊陶瓷貼片:
除去塑膠殼的Garmin GA-27有源天線
為把天線連接配接到DVT-T電視棒上,安全研究員需要做一些硬體的修改:
0×06 性能測量及結論
為實時接收和處理GPS信号,安全研究員評估了兩種不同的配置。
下圖為DVB電視棒(generic P160)、低噪聲放大器(LNA)和有源天線的組合:
使用外部LNA電路把通用P160 DVB-T電視棒連接配接到的GA-27天線
另一種方法:安全研究員使用bias-T網絡(standard bias-T network)把有源GPS天線與DVB電視棒的直接連接配接起來。此設定如下圖所示:
使用bias-T網絡把通用P160 DVB-T電視棒連接配接到GA-27天線
在這些實驗中,安全研究員使用Dell XPS M1530筆記本,配置為:
本文撰寫之時(SVN rev. 227),在把RtlsdrSignalSource 的采樣頻率從2MSPS降低1MSPS情況下,上述裝置可以支援4個衛星信道的實時操作。雖然支援的帶寬有限,但是GNSS-SDR均可以通過上述兩種配置擷取、追蹤、确定位置。天線放置在CTTC(建築群熱時間常數簡寫)建築的屋頂,并在實驗過程一直保持固定。
在後續的分析進行中,研究人員使用Matlab腳本進行完整性檢查(sanity check),腳本位置如下:
圖檔清楚地顯示了GPS C/A導航信号。PLL和DLL鑒相器的輸出非常雜亂。
追蹤資料分析
最後,直接通過Google地圖來描繪擷取到的KMV位置檔案,如下圖所示。黃線代碼表示10秒間隔内位置的變化,而紅箭頭表示天線實際所在的位置。此外,我們也繪制了高度的變化情況。使用4顆衛星和非常低的采樣頻率-1.2MSPS,研究人員便可以估計位置的時間和速度時間曲線(Position Velocity and Time PVT),這裡估計的定位誤差在200米範圍内。
使用Google地圖分析GNSS-SDR估算的位置
0×07 總結
總結這個初步的實驗,研究人員得出結論,使用低成本的Realtek DVB-T電視棒實作GNSS定位是可行的。據稱,這是GNSS軟體接收器首次使用RTLSDR裝置進行實時定位操作。這個裡程碑可以讓我們使用筆記本和極低成本的硬體擷取GNSS服務的潛能。研究人員正在計劃進一步測試和提升對RTLSDR裝置的支援。