李飛翔 趙樂文 唐歌實(shí)
1 南京信息工程大學(xué)遙感與測(cè)繪工程學(xué)院,南京市寧六路219號(hào),210044
全球?qū)Ш叫l(wèi)星系統(tǒng)GNSS廣泛應(yīng)用于智慧城市和物聯(lián)網(wǎng)建設(shè)中。但在城市環(huán)境中,GNSS信號(hào)易受建筑物、樹木等影響,發(fā)生折射、衍射、遮擋等現(xiàn)象,產(chǎn)生嚴(yán)重的多路徑效應(yīng)和非視線信號(hào)(non-line-of-sight,NLOS),導(dǎo)致數(shù)十米的偽距和載波誤差,嚴(yán)重影響復(fù)雜城市環(huán)境下的GNSS定位精度[1]。一般可通過接收機(jī)和天線的設(shè)計(jì)、數(shù)據(jù)處理和建模等方式削弱不同誤差對(duì)定位精度的影響。其中,對(duì)接收機(jī)的硬件進(jìn)行改良雖然可以在一定程度上抑制多路徑效應(yīng)、提高定位精度,但受限于接收機(jī)的成本和體積等因素,無(wú)法大面積推廣[2],因此需要利用衛(wèi)星和信號(hào)的相關(guān)信息進(jìn)一步削弱多路徑效應(yīng)和NLOS信號(hào)對(duì)定位精度的影響。
目前,衛(wèi)星高度角、信噪比模型是應(yīng)用最廣的數(shù)據(jù)處理模型,可有效提高復(fù)雜環(huán)境下的基線解算精度,但無(wú)法有效檢測(cè)和分離多路徑效應(yīng)與NLOS信號(hào)[3]。相關(guān)學(xué)者將機(jī)器學(xué)習(xí)算法應(yīng)用于GNSS信號(hào)的處理與建模中,采用支持向量機(jī)(SVM)分類器和神經(jīng)網(wǎng)絡(luò)模型將GNSS觀測(cè)數(shù)據(jù)分為直射、多路徑和NLOS三類,準(zhǔn)確率可達(dá)85%以上,能有效提高定位精度[4]。此外,有學(xué)者將決策樹算法與GNSS信號(hào)分類相結(jié)合,通過梯度下降樹(GBDT)算法實(shí)現(xiàn)GNSS信號(hào)的修復(fù)和分類[5],并通過裝袋(bagging)算法校正受樹葉遮擋的GNSS信號(hào),提升接收機(jī)在重葉區(qū)和輕葉區(qū)的定位精度[6]。雖然上述機(jī)器學(xué)習(xí)算法有效提高了接收機(jī)的定位精度,但需要提前對(duì)數(shù)據(jù)進(jìn)行標(biāo)記,無(wú)法兼顧成本和實(shí)時(shí)性的需求。
本文針對(duì)上述算法在成本、實(shí)時(shí)性上存在的問題,采用非監(jiān)督分類算法對(duì)GNSS數(shù)據(jù)進(jìn)行處理。非監(jiān)督分類算法無(wú)需提前對(duì)數(shù)據(jù)進(jìn)行標(biāo)注、無(wú)需額外的硬件和人力成本,具有良好的適應(yīng)性。但不同的非監(jiān)督分類算法在分類效果上存在差異,需對(duì)其進(jìn)行比較分析以確定最適合GNSS數(shù)據(jù)分類的算法。首先,在先驗(yàn)定權(quán)模型的基礎(chǔ)上采用3種算法對(duì)數(shù)據(jù)進(jìn)行分類,并比較3種算法分類后的定位精度;然后對(duì)分類效果最好的算法進(jìn)行精度分析,并與傳統(tǒng)的高度角、信噪比閾值法進(jìn)行比較,以驗(yàn)證算法的有效性。
本文采用偽距單點(diǎn)定位(SPP)模型評(píng)估復(fù)雜觀測(cè)環(huán)境下的GNSS定位精度,并在此基礎(chǔ)上采用非監(jiān)督分類(unsupervised)算法提高定位性能。
本文采用的偽距單點(diǎn)定位觀測(cè)方程為[7]:
(1)
GNSS定位中采用的先驗(yàn)定權(quán)模型主要包括高度角定權(quán)模型和信噪比定權(quán)模型。其中高度角定權(quán)模型[8]根據(jù)衛(wèi)星觀測(cè)值噪聲與高度角的相關(guān)性確定,通常高度角越高信號(hào)質(zhì)量越好:
(2)
式中,f是與觀測(cè)值類型相關(guān)的常系數(shù),在偽距定位中取100,當(dāng)采用無(wú)電離層組合時(shí)進(jìn)一步放大3倍;E為衛(wèi)星高度角;a、b根據(jù)經(jīng)驗(yàn)均取為1 cm。
信噪比(signal-to-noise ratio,SNR)是指信號(hào)強(qiáng)度與噪聲強(qiáng)度的比值,一般與觀測(cè)值質(zhì)量呈正相關(guān)。常用的信噪比定權(quán)模型為:
(3)
式中,C/N0為觀測(cè)值的信噪比,可根據(jù)觀測(cè)文件獲??;Cn是與接收機(jī)性能和采用的定位系統(tǒng)相關(guān)的常系數(shù),取值通常為1.61×104mm2[9]。
非監(jiān)督分類算法無(wú)需提前對(duì)模型進(jìn)行訓(xùn)練,可直接通過某種判別準(zhǔn)則在源數(shù)據(jù)中進(jìn)行搜尋和分類。本文采用的非監(jiān)督分類算法為Kmeans++、ISODATA和DBSCAN三種[10]。Kmeans++算法與ISODATA算法都是從數(shù)據(jù)集中隨機(jī)選擇分類中心,通過判別樣本到分類中心的距離進(jìn)行樣本的劃分。2種算法的區(qū)別主要為:Kmeans++算法的分類中心數(shù)不變,而ISODATA算法在分類過程中會(huì)根據(jù)提前設(shè)置的閾值進(jìn)行分類中心的分裂和合并。DBCAN算法的原理則較為簡(jiǎn)單:在數(shù)據(jù)樣本中選擇一個(gè)中心點(diǎn)不斷向密度邊界出發(fā),直到樣本點(diǎn)的數(shù)量低于預(yù)先指定的值,分類結(jié)束后得到一個(gè)包含核心點(diǎn)和邊界點(diǎn)的最大區(qū)域[11]。相較于其他2種算法,DBSCAN算法不需要指定類別數(shù)即可完成數(shù)據(jù)集的分類,且對(duì)于異常點(diǎn)更不敏感。但當(dāng)不同類別的數(shù)據(jù)間距很大且密度分布不均勻時(shí),DBSCAN算法分類精度會(huì)受到影響,且耗時(shí)更長(zhǎng)。
實(shí)驗(yàn)采用司南接收機(jī)進(jìn)行數(shù)據(jù)采集,采樣率為1 Hz,采樣時(shí)間為2021-04-15 04:30~07:00,4個(gè)系統(tǒng)(GPS、BDS、Galileo、GLONASS)均采用雙頻定位,測(cè)站坐標(biāo)均通過相對(duì)定位求平均獲得。各系統(tǒng)衛(wèi)星失鎖較為嚴(yán)重,4個(gè)導(dǎo)航系統(tǒng)中BDS的觀測(cè)數(shù)據(jù)質(zhì)量最好,且在采集時(shí)段內(nèi)始終存在4顆以上的可見衛(wèi)星。接收機(jī)設(shè)置在南京信息工程大學(xué)藕舫樓邊,其中E方向干擾源為種植在道路旁的樹木,N方向干擾源為藕舫樓,是一種較為典型的多路徑環(huán)境。
GNSS數(shù)據(jù)的特征值是否合適決定了算法分類精度的好壞。SNR是衡量信號(hào)質(zhì)量最直接的指標(biāo),在單一環(huán)境下能達(dá)到很好的分類效果。但在復(fù)雜環(huán)境下單個(gè)變量往往無(wú)法有效分離多路徑效應(yīng)和NLOS信號(hào)[12],尤其在信噪比較低時(shí),若僅依靠SNR進(jìn)行分類很容易造成信號(hào)誤分,因此需要與其他特征值(偽距殘差、高度角等)進(jìn)行組合分類。偽距殘差作為衡量衛(wèi)星可視性的關(guān)鍵指標(biāo),可以用來(lái)剔除多路徑效應(yīng)和NLOS信號(hào)[4]。但由于復(fù)雜環(huán)境下的定位結(jié)果較差,偽距殘差并不能清楚地體現(xiàn)出直射信號(hào)與NLOS的差異。由于在高仰角下信號(hào)不易被周圍的建筑物遮擋,因此高度角也常用于剔除多路徑效應(yīng)和NLOS信號(hào)[12],但NLOS信號(hào)在高仰角和低仰角的情況下都有可能出現(xiàn)。由此可見,上述每一個(gè)分量都無(wú)法單獨(dú)有效地檢測(cè)多路徑效應(yīng)和NLOS信號(hào),因此本文將高度角、信噪比、偽距殘差3個(gè)指標(biāo)進(jìn)行組合,以提高分類精度。
確定特征向量后還需對(duì)數(shù)據(jù)進(jìn)行歸一化處理,以消除不同量綱對(duì)分類精度的影響。本文選用的歸一化方法是z-score標(biāo)準(zhǔn)化,即利用原始數(shù)據(jù)的均值μ和標(biāo)準(zhǔn)差σ進(jìn)行數(shù)據(jù)x的標(biāo)準(zhǔn)化,使經(jīng)過處理的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布,即轉(zhuǎn)化為均值為0、標(biāo)準(zhǔn)差為1的數(shù)據(jù)。具體的轉(zhuǎn)化函數(shù)為:
Z=(x-μ)/σ
(4)
本文將高度角閾值設(shè)為10°,在此基礎(chǔ)上比較高度角定權(quán)法、信噪比定權(quán)法在E、N、U三個(gè)方向上的精度(表1)。
表1 先驗(yàn)定權(quán)模型精度比較
由表1可知,E、N、U三個(gè)方向上高度角定權(quán)法的精度均優(yōu)于信噪比定權(quán)法,但兩者精度相差不大。由此可見,在復(fù)雜觀測(cè)環(huán)境下,無(wú)論是高度角定權(quán)法還是信噪比定權(quán)法都無(wú)法有效提高接收機(jī)的定位精度。因此本文將在高度角定權(quán)法的基礎(chǔ)上使用非監(jiān)督分類算法剔除多路徑效應(yīng)和NLOS信號(hào),進(jìn)一步提升接收機(jī)的定位精度。
本文使用Kmeans++、ISODATA、DBSCAN算法對(duì)數(shù)據(jù)進(jìn)行分類。其中,Kmeans++的信號(hào)類別為3、迭代次數(shù)為8 000;ISODATA的期望信號(hào)類別為3、迭代次數(shù)為14 000、最小樣本數(shù)為120、樣本間最大方差為0.5、不同類別間最小距離為0.3;DBSCAN的對(duì)象數(shù)為10、相鄰樣本距離閾值為0.119。Kmeans++和ISODATA算法將GNSS數(shù)據(jù)劃分為3類,由于DBSCAN算法對(duì)離散點(diǎn)有較高的敏感度,因此將GNSS數(shù)據(jù)劃分為25類。通過分類結(jié)果剔除多路徑效應(yīng)和NLOS信號(hào)后,各算法在E、N、U三個(gè)方向上的SPP定位精度如圖1所示,可以看出,相較于其他2種算法,Kmeans++算法的分類效果更好。
圖1 不同分類算法精度比較
在算法適宜性方面,由于接收機(jī)信號(hào)受時(shí)間、環(huán)境等多種因素影響,數(shù)據(jù)先驗(yàn)信息較難獲取,因此數(shù)據(jù)先驗(yàn)信息的需求數(shù)量成為制約算法適宜性的關(guān)鍵因素。由表2可見,相較于ISODATA、DBSCAN算法,Kmeans++算法對(duì)數(shù)據(jù)先驗(yàn)信息的需求更少,具有較好的算法適宜性,只需在分類前確定GNSS信號(hào)可能出現(xiàn)的類型,即可在不同的環(huán)境下快速得到最佳的分類精度。
表2 不同分類算法比較
由于Kmeans++算法在定位精度和算法適宜性方面有較大優(yōu)勢(shì),因此本文將比較采用Kmeans++算法和未采用Kmeans++算法的定位精度,以驗(yàn)證該算法的有效性。
由圖2可見,采用Kmeans++算法剔除多路徑效應(yīng)和NLOS信號(hào)后有效衛(wèi)星數(shù)量出現(xiàn)一定程度的下降,從而導(dǎo)致位置精度衰減因子PDOP增大,但PDOP的增大并沒有過多地影響到定位精度。剔除多路徑效應(yīng)和NLOS信號(hào)后在E、N、U三個(gè)方向上的定位精度相較于剔除前分別提升57.86%、47.64%、60.98%。
圖2 3個(gè)方向上的定位精度和可用衛(wèi)星數(shù)比較
由表3可見,Kmeans++算法剔除多路徑效應(yīng)和NLOS信號(hào)后定位精度得到較大提升,其中E方向的提升效果強(qiáng)于N方向。接收機(jī)N方向主要的干擾源是因樓房遮擋而產(chǎn)生的NLOS信號(hào),E方向的主要干擾源則是因樹木遮擋而產(chǎn)生的多路徑干涉信號(hào),可見Kmeans++算法在該組特征向量下對(duì)多路徑干涉信號(hào)具有更高的敏感性,由圖3也可以得到相同結(jié)論。并且除個(gè)別歷元由于衛(wèi)星剔除過多導(dǎo)致定位精度下降外,其他歷元的定位精度都得到有效提升。
表3 采用Kmeans++剔除多路徑效應(yīng)和NLOS信號(hào)前后定位誤差比較
圖3 Kmeans++算法分類前后定位精度比較
圖4 不同處理方法精度比較
為進(jìn)一步驗(yàn)證算法的有效性,將Kmeans++算法與傳統(tǒng)閾值法進(jìn)行比較。信噪比是衡量GNSS信號(hào)質(zhì)量的關(guān)鍵指標(biāo),主要受天線的增益參數(shù)、接收機(jī)相關(guān)器狀態(tài)及多路徑誤差的影響[13]。信噪比可以從觀測(cè)文件中獲得,數(shù)值越大代表信號(hào)質(zhì)量越好。衛(wèi)星高度角也能在一定程度上反映GNSS信號(hào)的質(zhì)量,且高度角與多路徑效應(yīng)負(fù)相關(guān),即高度角越高多路徑效應(yīng)越小。因此,本文采取高度角、信噪比閾值法與Kmeans++算法進(jìn)行比較(圖4)。由圖可見,GNSS數(shù)據(jù)經(jīng)Kmeans++算法處理后,3個(gè)方向上的定位精度均優(yōu)于傳統(tǒng)方法,其中E方向的改善最為明顯。說(shuō)明僅通過信噪比、高度角閾值法無(wú)法有效剔除多路徑效應(yīng)和NLOS信號(hào),且隨著閾值的增大會(huì)出現(xiàn)衛(wèi)星誤剔現(xiàn)象。當(dāng)信噪比閾值提升到46 dB時(shí),E、N、U三個(gè)方向上的定位精度都出現(xiàn)明顯下降。由于大多數(shù)情況下不可能對(duì)同一區(qū)間進(jìn)行反復(fù)實(shí)驗(yàn)以獲得高度角和信噪比的最佳閾值,因此閾值不適宜的情況難以避免。而Kmeans++算法不存在此類問題,具有較好的適應(yīng)性。表4比較了Kmeans++算法與高度角、信噪比閾值法在定位精度上的差異。
表4 不同處理方法的誤差比較
1)3種非監(jiān)督分類算法中Kmeans++算法分類精度最高,適應(yīng)性最好,在E、N、U三個(gè)方向上的RMSE分別為2.56 m、3.25 m和9.73 m。
2)采用Kmeans++分類算法剔除多路徑效應(yīng)和NLOS信號(hào)數(shù)據(jù)后,在E、N、U三個(gè)方向上的接收機(jī)定位精度相較于剔除前分別提升了57.86%、47.64%和60.98%,三維精度提升了59.96%。
3)相比于信噪比閾值法,Kmeans++算法的平面和三維定位精度分別提升24.87%、39.07%;相比于高度角閾值法,Kmeans++算法的平面和三維定位精度分別提升41.36%、59.91%。