陳春花,陳沖,趙亞枝
(1. 湖南省測繪科技研究所,湖南 長沙 410007;2. 山東科技大學 測繪科學與工程學院,山東 青島 266590;3. 中國測繪科學研究院,北京 100830)
截至2018年底,我國智能手機用戶數量達到13億人次,位居全球第一.智能手機基本都嵌入全球衛星導航系統(GNSS)模塊,來自2018年6月的移動報告指出,全球現有48億部智能手機采用GNSS芯片組[1],其已成為大眾定位重要的應用終端.2016年5月谷歌在年度開發人員會議期間宣布,將在Android Nougat操作系統中提供GNSS原始數據觀測值的應用程序編程接口(API),2018年5月,小米公司也發布了世界上第一臺雙頻GNSS智能手機.這款智能手機代表了GNSS技術的突破,因為它首次商用部署了博通革命性的BCM47755芯片.按照歐洲全球導航衛星系統局(GSA)的說法,它可提供高達分米級的精度為本地和車載導航服務.但考慮美觀與功耗問題,智能手機上的GNSS模塊芯片與天線在設計上與傳統的GNSS芯片的思路與側重不同,導致手機GNSS觀測數據噪聲大、質量差.
在谷歌開放了Android系統GNSS原始數據的API之后.Banville和Van Diggelen[2]利用Android 7.0系統的接口獲取了三星Galaxy S7智能手機的GNSS數據,他們在對相位觀測值分析的過程中發現智能手機GNSS芯片組的工作循環(duty cycle)機制極大地影響了相位觀測值的連續性,這將嚴重影響利用相位觀測值進行高精度定位時的效果.惠孟堂等[3]對單頻安卓智能手機的原始數據進行差分改正,并取得了亞米級的定位效果.
為了分析安卓智能手機的GNSS原始觀測值的數據質量,本文利用小米8和華為P30智能手機采集了多星座,雙頻偽距和載波相位原始數據.對載噪比、多路徑效應進行分析,并與天寶R9 GNSS接收機采集的GNSS原始觀測值的數據質量進行比對.
在2016年或之后生產的并配備Android 7.0或更高版本的大多數安卓智能設備都可以提供GNSS原始觀測數據.其主要包含偽距和偽距率、廣播星歷、載波相位觀測值和硬件鐘延遲等.
開發者可以從GnssClock和GnssMeasurement兩個Android系統自帶的原生類的字段中獲取GNSS原始數據和用于計算原始數據的相關信息.GnssClock類提供了接收器時鐘的測量值、鐘差等.GnssMeasurement類主要包含原始測量值和計算信息、如星座類型、載波頻率、載波相位觀測值、衛星號、載噪比、接收衛星時間、偽距率.相關字段的具體信息如表1所示[4-5].

表1 Android API時鐘和測量類字段信息
Android 7不會直接提供GNSS時間,但如果接收器已估算GNSS參考時間,則會提供內部硬件時鐘和對真實GPS時間的偏差(以ns為單位).
接收器估算GPS時間后,可以將其計算為
GpsTime=TimeNanos-(FullBiasNanos+
BiasNanos)[ns],
(1)
式中:TimeNanos為GNSS接收機的內部硬件鐘;FullBiasNanos為接收機內部鐘與GPS時累計差異;BiasNanos為GNSS接收機鐘鐘偏.
Android系統不直接提供偽距.可以通過衛星信號接收時間(測量時間)與衛星信號發送時間之間的時間差獲得偽距觀測值:

(2)
式中:tTx為GNSS模塊測量的衛星信號接收時間,可根據式(3)從API中直接獲取;tRx為衛星信號發射時間,可由式(4)計算得到;c為光速;ρ為偽距測量值.
tTx=ReceivedSvTimeNanos[ns],
(3)
tRx=TimeNanos+TimeOffsetNanos
-(FullBiasNanos+BiasNanos)[ns].
(4)
衛星運動引起的多普勒頻移可以利用每秒的偽距變化率推導得出:
(5)
式中,f為載波頻率.
載波相位觀測值可以從API接口中直接獲取.
在進行GNSS測量時,由于觀測站周圍反射源所反射的衛星信號也能進入接收機天線,它與直接進入接收機天線的衛星信號產生干涉,從而使碼觀測值和載波相位觀測值產生誤差,即稱為多路徑誤差.
在GNSS測量時,多路徑效應對測量精度造成一定影響,嚴重時將會導致信號的失鎖.
多路徑效應的公式為:
(6)

在同一衛星系統下,i和j間距越大越好.
小米 8的內置芯片為Broadcom BCM47755,可以提供GPS、BDS、GLONASS和Galileo四個系統的觀測值數據并支持GPS和Galileo系統在L5和E5a頻率上輸出原始數據.華為P30的內置芯片為Hisilicon-Hi1103[6]支持 GPS(L1+L5雙頻)、AGPS、GLONASS、BDS、Galileo(E1+E5a雙頻)以及QZSS(L1+L5雙頻).
Geo++RINEX Logger[7]應用程序于2017年由Geo++公司發布.它以RINEX格式直接提供GNSS觀測量.本文使用的原始數據利用Geo++RINEX Logger采集獲得.
為了系統研究不同安卓智能手機的數據質量,本文采用小米8、華為P30和天寶 R9接收機,在相同環境下同步觀測數小時,以天寶 R9接收機觀測的數據為參考,主要對多路徑效應、數據載噪比進行分析.
在測量作業時,對多路徑誤差的抵制一般從改善接收機天線構造和選擇較好的測量環境兩個方面進行.出于對智能手機美觀與功耗問題的考慮,智能手機的GNSS天線在設計上與傳統的GNSS芯片的思路與側重不同,其使用非常小的線性極化貼片天線,同時智能手機的日常使用環境也包含大量的多路徑誤差.因此,多路徑誤差是影響手機數據質量的主要因素.
使用華為P30、小米8和天寶R9接收機在相同環境下同步觀測,分別對單顆衛星和GPS系統的綜合多路徑誤差進行分析.由于華為P30和小米8均支持在L1和L5頻段上輸出原始數據,分別分析其在L1和L5頻段上的多路徑誤差.
首先,為具體分析某一顆衛星的多路徑效應,選取G03號GPS衛星,分析其在L1和L5頻段上的多路徑誤差.
首先看其在L1頻段的多路徑誤差,與天寶R9接收機進行比較,誤差散點圖如圖1所示.由圖1和表2可知,在L1頻段上,華為P30的多路徑誤差相對于小米8較小,且均明顯高于測量型接收機.圖2所示為G03號衛星在L1和L5頻段上的多路徑誤差比較.可以看出,L5頻段上的多路徑誤差普遍小于L1頻段;結合表2所示,小米8在L5頻段上的多路徑誤差較華為P30更小,其主要原因是其數據更加穩定,華為P30出現了較大的粗差.由表2所示,小米8在L5頻段上的多路徑誤差的std已經較為接近天寶R9接收機在L1頻段上的多路徑誤差.

圖1 G03衛星L1頻段多路徑誤差散點圖

圖2 G03衛星L1和L5頻段多路徑誤差對比

表2 G03衛星不同終端多路徑誤差
分析GPS系統的綜合多路徑誤差時,對GPS系統的每個歷元的每顆衛星的多路徑誤差取算術平均值作為GPS系統綜合多路徑誤差.首先分析L1頻段的綜合多路徑誤差,與天寶R9在L1頻段上的綜合多路徑誤差相比較,綜合多路徑誤差散點圖如圖3所示.由于華為P30和小米8均支持在L1和L5頻段上輸出原始數據,對其兩個不同頻段上的綜合多路徑誤差進行分析,其L1和L5頻段上的綜合多路徑誤差對比如圖4所示.

圖3 L1頻段綜合多路徑誤差散點圖

圖4 L1和L5頻段綜合多路徑誤差對比

表3 不同終端綜合多路徑誤差
從圖3、4和表3可以看出,安卓智能手機的GPS綜合多路徑效應誤差明顯高于測量型接收機;華為P30和小米8的綜合多路徑效應誤差相當,華為P30略高于小米8.并且相對于小米8,華為P30存在較多的粗差,因此,小米8的數據質量更加穩定.且L5頻段的綜合多路徑誤差遠遠小于L1.
接收機輸出的信號噪聲比C/N0反映了所跟蹤GNSS衛星觀測值精度和接收機天線的噪聲密度,是反映測量中存在的噪聲水平的重要指標[8-10].載噪比與數據質量成正比.安卓智能手機的載噪比可以從API中直接獲取.對華為P30、小米8和天寶R9接收機各自選取四顆不同衛星系統的衛星對測量得到的載噪比進行比較.
由圖5對比可知,四個衛星系統的載噪比大致相當,安卓智能手機的載噪比明顯低于測量型接收機,小米8和華為P30載噪比相當.因此證明安卓智能手機觀測的GNSS觀測數據含有大量噪聲.

圖5 不同終端各系統衛星載噪比
為了具體分析安卓智能手機的載噪比,采用華為P30的觀測數據,對觀測時段內GPS衛星系統的衛星,繪制星空圖.如圖6所示,在高度角低于10°時,衛星載噪比低于30;高度角高于40°時,衛星載噪比也增長到了40以上,即:衛星高度角越高,衛星載噪比越大,且手機的載噪比小于50.

圖6 GPS衛星載噪比
由于Android系統開放了GNSS原始數據觀測值,本文介紹了Android系統獲取GNSS原始觀測值的方法.并使用小米8和華為P30手機獲取GNSS原始觀測數據,與天寶R9接收機比對,在多路徑效應、數據載噪比方面分析了數據質量.結果表明:相對于測量型接收機,安卓智能手機的原始觀測值載噪比較低且多路徑效應嚴重.因此,在使用安卓智能手機進行高精度定位時,必須對GNSS觀測數據進行優化.