張垠,涂銳,3,洪菊,李芳馨,侯福榮
( 1.中國科學院國家授時中心,西安 710600;2.中國科學院大學,北京 100049;3.中國科學院精密導航定位與定時技術重點實驗室,西安 710600 )
當今時代,手機等智能設備由于具有成本低、便攜性好的特點,該設備已經成為人類生活和工作中不可或缺的工具.目前,智能手機基本都搭載了全球衛星導航系統(GNSS)模塊,極大地方便了人們的日常生活.各大衛星導航系統逐步發展,可見衛星數進一步增加,也為基于移動位置服務(LBS)的快速發展提供了保證[1].未來公眾對LBS服務的需求將會越來越大,對定位精度、穩定性要求也會越來越高.因此,手機等智能設備的高精度定位受到學者的廣泛關注,成為當前導航定位領域的一個研究熱點.
在早期的Android 系統版本中,GNSS模塊只開放了獲取GNSS芯片輸出的位置、速度等信息的應用程序編程接口(API),開發者和用戶很難得到原始的GNSS觀測數據,因此難以開展進一步的研究.2016年5月谷歌公司宣布,從Android N 版本操作系統開始,開發者和用戶可以通過API 來得到GNSS的偽距、載波相位、多普勒等原始觀測數據,從而具備進行精確計算的條件,這對于研究智能設備的精確定位有著重要的意義.與測量型等專用GNSS接收機不同,手機、平板電腦等這些大眾智能設備,往往采用體積小、成本低的線性極化天線[2]和低成本、低功耗的導航芯片,這必將影響智能設備的GNSS原始觀測數據質量,而原始觀測數據質量好壞是影響定位精度的主要因素.
國內外許多學者對智能設備的GNSS數據質量和定位精度進行了研究和分析.早在谷歌還未開放獲取GNSS原始數據的API 時,就已經有學者對此產生了強烈的興趣.Kirkko-Jaakkola 等[3]和Humphreys T E等[4]使用定制的智能手機諾基亞Lumia 1520和三星Galaxy S5獲得了GNSS原始觀測數據,他們發現智能手機的GNSS數據噪聲和異常值均明顯高于低成本接收機.H?kansson M[5]通過Nexus 9平板電腦評估了多路徑效應對精確定位的影響.Paziewski J 等[6]使用華為P20和Javad Alpha+GrAnt_G3T 天線評估了智能手機的GNSS數據質量.Riley 等[7]指出手機由于電池容量限制存在占空比(duty cycle)機制,這種機制降低了功耗但會導致載波相位觀測數據不連續.LIU 等[8]、陳波等[9]指出手機GNSS數據存在載波相位與偽距不一致的問題,并且通過平滑偽距的方式進行了單點定位及差分定位的測試.薄亞東等[10]對華為Mate30和華為honor V20的GNSS原始觀測數據質量和定位結果進行分析,指出智能手機會發生頻繁的失鎖現象且多路徑誤差明顯,差分定位存在無法固定模糊度的問題.總體來說,目前針對智能手機GNSS定位的研究相對較少,且大部分并未將單雙頻手機進行對比分析.
本文同時使用單頻、雙頻智能手機采集GNSS原始觀測數據,并將其與北斗星通UR4B0-D高性能GNSS接收機的數據作對比,從衛星可見性、載噪比(CNR)、高度角、多路徑效應等方面進行分析,評估智能手機GNSS的原始觀測數據質量,為后續手機高精度定位應用提供參考.
自Android 7.0(即N 版本)開始,Android API等級升級至24,開發者可以通過GNSSClock 和GNSSMearement 兩類中的字段直接或者間接的獲取偽距觀測值、載波相位觀測值、多普勒觀測值和CNR 等.相關字段如表1所示[11].

表1 Android API 時鐘和測量類字段信息
GPS時間、偽距觀測值、多普勒觀測值并不能直接通過Android API獲取到,需要通過計算間接得到.其中GPS時(GPST)可由下式計算得到:

式中,c為光速.
其中TimeNanos和TimeOffsetNanos取當前歷元值,而FullBiasNanos和BiasNanos取第一個歷元從API 獲取到的值.這是因為由于手機鐘差不穩定,會導致接收機硬件時鐘與GPST的差值會隨時間變化,以第一個歷元的偏差值作為偏差估計值可以保證接收數據的時間間隔一致,避免給后續處理帶來麻煩.
多普勒的計算公式如下:

載波相位觀測值及CNR 可以分別通過AccumulatedDelataRange和Cn0DbHz 字段得到.
由上可知,Andriod N 版本開始應用程序可以通過相關API獲取分析所需的GNSS原始數據.許多公司利用這些應用程序接口,開發了可以輸出GNSS原始觀測數據的應用程序(APP),如谷歌公司的發布的GNSSLogger,Geo++公司發布的Geo++RINEX Logger 等.但由于GNSSLogger 無法直接以RINEX格式輸出原始數據,不便于后續分析研究,而Geo++RINEX Logger 可以以RINEX 標準格式輸出原始數據,因此選擇使用Geo++RINEX Logger 采集原始數據.
在衛星信號傳輸過程中,信號會在接收機附近的地面、墻壁等物體表面發生反射現象,反射后的信號與衛星直接發射的信號同時被接收機接收,從而產生多路徑誤差.降低多路徑誤差主要通過使用較好的GNSS天線和選擇較為開闊的測量環境兩個方面進行.但Android 智能手機受到體積限制,只能使用體積很小的線性極化貼片天線,這使得Android 智能手機受到多路徑效應的影響較為嚴重.同時,Android智能手機的使用環境常常位于高樓林立的城市峽谷中,這使得多路徑誤差進一步增大,成為了手機定位的主要誤差項之一.
利用偽距和載波相位觀測值的線性組合,再消去雙頻信號計算得到的電離層延遲,可以得到L1和L5頻點的多路徑效應,計算公式如式(6)所示:

本文使用三星S9+(Exynos)(下文簡稱三星S9+)、華為Mate30、華為P40 Pro進行靜態觀測實驗,并且與測量型接收機北斗星通UR4B0-D的同步觀測數據做對比,3款智能手機的具體參數如表2所示.實驗地點為中國科學院國家授時中心臨潼園區的綜合樓樓頂,視野開闊無遮擋物,觀測條件良好,采樣率為1 s,采樣時長為3 h.實驗環境如圖1所示.

表2 三款智能手機具體參數

圖1 實驗環境
部分Android 智能手機為了減少電量消耗以達到更長的續航時間,往往采用占空比技術.在占空比技術下,一個脈沖循環內只有一部分時間可以通電,因此會導致載波相位觀測值不連續[7].而部分手機可以在開發者選項中手動選擇“強制進行全GNSS測量”以關閉占空比技術,如圖2所示.本文選用的三星S9+采用該方法關閉占空比技術,而華為P40 Pro和華為Mate30默認關閉占空比技術.

圖2 開發者選項開啟“強制進行全GNSS測量”
對手機原始觀測數據進行分析后發現,3臺Android 手機均可以接收北斗二號(BDS-2)和北斗三號(BDS-3)衛星數據,但2臺雙頻手機接收到的有雙頻數據的衛星數量都很有限.華為Mate30可以接收到7顆同時具有L1+L5信號的GPS衛星,3顆同時具有L1+L5的準天頂衛星系統(QZSS)衛星,在不同時段最多可以同時接收到7顆具有E1+E5a 信號的Galileo衛星;華為P40 Pro可以接收到4顆同時具有L1+L5信號的GPS衛星,3顆同時具有L1+L5的QZSS衛星,8顆同時具有E1+E5a 信號的Galileo衛星.但部分衛星的雙頻信號并不穩定,存在大量的數據缺口,導致實際可用的衛星數目遠遠小于觀測到的可見衛星數.
在3 h 的觀測時間內,剔除掉未接收到數據的衛星后,3臺智能手機和北斗星通UR4B0-D接收機各歷元觀測衛星數如圖3~6所示.可以非常明顯的發現,接收機的可見衛星數非常穩定且觀測到的衛星數目是最多的,約為45~50顆.3臺智能手機中,三星S9+的可見衛星數是3臺手機中最少的,約為25~34顆,但相較于另外2部手機衛星數的波動較小,穩定性更好.華為P40 Pro的可見衛星數約為32~38顆,但衛星數的波動是3臺手機中最大的.華為Mate30接收到的衛星數目約為35~44顆,可見衛星數的波動較大,但在第6 224歷元附近出現了數據采集中斷,導致圖形出現不正常的跳變.華為P40 Pro和華為Mate30的可見衛星數都有較大的波動,這種波動主要是由于GLONASS和北斗衛星導航系統(BDS)的可見衛星數波動較大導致的,而GPS和Galileo系統的可見衛星數波動較小.

圖3 接收機可見衛星數

圖4 三星S9+可見衛星數

圖5 華為P40 Pro可見衛星數

圖6 華為Mate30 可見衛星數
總體來說,相對于接收機而言手機觀測能力和穩定性均表現較差,且不同機型之間由于采用不同的GNSS芯片和天線,觀測能力也存在著較大的差異.即使是同品牌的手機,這種差異也比較明顯.
接收機輸出的CNR 反映了所跟蹤GNSS衛星的觀測值精度和接收機天線的噪聲密度,是反映測量噪聲水平的重要指標[11].CNR 大小和數據質量成正比.從每個衛星系統中選取3顆衛星,計算接收機和3臺手機所選衛星所有歷元的平均CNR.不同設備在L1頻點的CNR 對比如圖7所示.

圖7 L1頻點不同設備不同衛星CNR 對比
由于三星S9+無法接收雙頻信號,因此在L5頻點只進行華為Mate30和華為P40 Pro與接收機的對比.選取GPS的5顆衛星進行對比,如圖8所示.

圖8 L5頻點不同設備不同衛星CNR 對比
由圖7、圖8可知,Andriod 智能手機的CNR 明顯低于測量型接收機,L1頻點3臺手機的CNR 比測量型接收機低約10~15 dB·Hz.3臺手機中只能接受單頻數據的三星S9+CNR 最大,大部分衛星平均CNR 達到了35~40 dB·Hz.而華為P40 Pro的CNR最小,平均CNR 約在30 dB·Hz.在L5頻點上,接收機的CNR 均在40 dB·Hz 以上,而兩臺雙頻手機的CNR 均較低,華為Mate30 CNR 約為29~34 dB·Hz,而華為P40 Pro CNR 僅有22~27 dB·Hz.較低的CNR 說明手機接收的數據中存在著大量的噪聲.
選取G31、G27兩顆衛星分析其L1頻點CNR和高度角的關系,圖9~11分別為接收機、華為Mate30和華為P40 Pro對G31衛星CNR 和高度角分析的結果,圖12~14是三者對G27衛星CNR 和高度角分析的結果.華為P40 Pro僅在6 064歷元中接收到G31衛星的數據.紅色線為高度角,可見對于G31衛星,在所有歷元中高度角由大到小變化,接收機的CNR 也隨之減小約15 dB·Hz,但兩部手機的CNR 沒有表現出逐漸減小的趨勢,甚至高度角降低時反而有CNR 增大的現象.對G27衛星,高度角由小到大變化.在高度角較小時,并未出現CNR 隨高度角減小而一直減小的現象.可見手機的CNR 與衛星高度角的相關性較小.推測是因為手機接收到的數據中已經包含有大量噪聲和多路徑誤差,高度角減小時噪聲和多路徑誤差存在波動的情況,但并不會增大太多.

圖9 接收機G31衛星CNR 與高度角

圖10 華為Mate30 G31衛星CNR 與高度角

圖12 接收機G27 衛星CNR 與高度角

圖11 華為P40 Pro G31衛星CNR 與高度角

圖13 華為Mate30 G27 衛星CNR 與高度角

圖14 華為P40 Pro G27衛星CNR 與高度角
本文分別使用華為Mate30和華為P40 Pro雙頻GPS信號計算多路徑誤差,選取G04衛星數據分別對L1和L5頻點進行計算.將兩臺智能手機多路徑誤差與接收機UR4B0-D進行比較,計算得到G04衛星L1、L5頻點的偽距多路徑結果如圖15~18所示.

圖15 華為Mate30和接收機G04衛星L1頻段多路徑誤差

圖16 華為Mate30和接收機G04衛星L5頻段多路徑誤差

圖17 華為P40 Pro和接收機G04衛星L1頻段多路徑誤差

圖18 華為P40 Pro和接收機G04衛星L5頻段多路徑誤差
計算各終端G04衛星多路徑誤差均方根(RMS),結果如表3所示.華為Mate30 從5 000歷元開始數據噪聲突然增大,導致多路徑誤差計算值增大,因此只分析前5 000歷元的多路徑誤差.由圖15~18以及表3可知,智能手機的多路徑誤差遠遠大于接收機的多路徑誤差,而華為Mate30的多路徑誤差無論是L1頻點還是L5頻點均小于華為P40 Pro.對比點L1和L5頻點的多路徑誤差發現,接收機和華為Mate30在L5頻點的多路徑誤差明顯小于L1頻點的多路徑誤差,華為P40 Pro在L5頻點的多路徑誤差比L1頻點的稍大.可見L5頻點一定程度上可以起到抑制多路徑誤差的作用.總體來說,智能手機由于天線特點導致多路徑誤差很大,是影響智能手機高精度定位的主要誤差.

表3 不同終端G04衛星多路徑誤差m
本文使用三星S9+、華為Mate30和華為P40 Pro進行GNSS原始數據采集,并與北斗星通UR4B0-D接收機同步采集的數據進行對比,從可見衛星數、CNR、高度角、多路徑誤差等方面分析了智能手機的GNSS數據質量.結果表明:與接收機相比,Andriod智能手機GNSS原始觀測數據質量較差,且不同機型之間存在較大差異.Andriod 智能手機的GNSS數據存在著數據缺失現象,導致可進行數據處理的衛星數目小于可見衛星數目.對CNR 和高度角進行分析后發現,智能手機的CNR 較小,且沒有表現出隨高度角降低而減小的趨勢.對多路徑誤差進行分析,在L1頻點上接收機的多路徑誤差RMS為0.014 4 m,華為Mate30為2.124 1 m,華為P40 Pro為3.227 9 m;而在L5頻點上接收機的多路徑誤差RMS為0.010 8 m,華為Mate30為1.816 7 m,華為P40 Pro為3.424 2 m,可見多路徑誤差是影響智能手機高精度定位的主要誤差,在將來的定位應用研究中應著重進行處理.
致謝:本文的研究得到了國家自然科學基金項目(41674034,41974032)和中組部、中科院高層次青年人才項目以及王寬誠教育基金會的支持.