GPS定位,實(shí)際上就是通過四顆已知位置的衛(wèi)星來確定GPS接收器的位置。
GPS接收器為當(dāng)前要確定位置的設(shè)備,衛(wèi)星1、2、3、4為本次定位要用到的四顆衛(wèi)星:
Position1、Position2、Position3、Position4分別為四顆衛(wèi)星的當(dāng)前位置(空間坐標(biāo)),已知
d1、d2、d3、d4分別為四顆衛(wèi)星到要定位的GPS接收器的距離,已知
Location 為要定位的衛(wèi)星接收器的位置,待求
那么定位的過程,簡單來講就是通過一個(gè)函數(shù)GetLocation(),從已知的[Position1,d1]、[Position2,d2]、[Position3,d3]、[Position4,d4]四對(duì)數(shù)據(jù)中求出Location的值。用程序員熟悉的函數(shù)調(diào)用來表示就是:
Location=GetLocation([Position1,d1],[Position2,d2],[Position3,d3],[Position4,d4]);
一看到這個(gè)函數(shù)調(diào)用,程序員們就該來勁了:這些參數(shù)從哪里來?這個(gè)函數(shù)又是如何執(zhí)行?由誰來執(zhí)行的呢?立體幾何還沒有忘干凈的可能還要問:為什么必須要4對(duì)參數(shù)呢?那下面我們就來一起探究一下。
1.Position1、Position2、Position3、Position4這些位置信息從哪里來?
實(shí)際上,運(yùn)行于宇宙空間的GPS衛(wèi)星,每一個(gè)都在時(shí)刻不停地通過衛(wèi)星信號(hào)向全世界廣播自己的當(dāng)前位置坐標(biāo)信息。任何一個(gè)GPS接收器都可以通過天線很輕松地接收到這些信息,并且能夠讀懂這些信息(這其實(shí)也是每一個(gè)GPS芯片的核心功能之一)。這就是這些位置信息的來源。
2.d1、d2、d3、d4這些距離信息從哪里來?
我們已經(jīng)知道每一個(gè)GPS衛(wèi)星都在不辭辛勞地廣播自己的位置,那么在發(fā)送位置信息的同時(shí),也會(huì)附加上該數(shù)據(jù)包發(fā)出時(shí)的時(shí)間戳。GPS接收器收到數(shù)據(jù)包后,用當(dāng)前時(shí)間(當(dāng)前時(shí)間當(dāng)然只能由GPS接收器自己來確定了)減去時(shí)間戳上的時(shí)間,就是數(shù)據(jù)包在空中傳輸所用的時(shí)間了。
知道了數(shù)據(jù)包在空中的傳輸時(shí)間,那么乘上他的傳輸速度,就是數(shù)據(jù)包在空中傳輸?shù)木嚯x,也就是該衛(wèi)星到GPS接收器的距離了。數(shù)據(jù)包是通過無線電波傳送的,那么理想速度就是光速c,把傳播時(shí)間記為Ti的話,用公式表示就是:
di=c*Ti(i=1,2,3,4);
這就是di(i=1,2,3,4)的來源了。
3.GetLocation()函數(shù)是如何執(zhí)行的?
這個(gè)函數(shù)是我為了說明問題而虛構(gòu)的,事實(shí)上未必存在,但是一定存在這樣類似的運(yùn)算邏輯。這些運(yùn)算邏輯可以由軟件來實(shí)現(xiàn),但是事實(shí)上可能大都是由硬件芯片來完成的(這可能也是每一個(gè)GPS芯片的核心功能之一)。
4.為什么要必須要四對(duì)參數(shù)?
根據(jù)立體幾何知識(shí),三維空間中,三對(duì)[Positioni,di]這樣的數(shù)據(jù)就可以確定一個(gè)點(diǎn)了(實(shí)際上可能是兩個(gè),但我們可以通過邏輯判斷舍去一個(gè)),為什么這里需要四對(duì)呢?理想情況下,的確三對(duì)就夠了,也就是說理想情況下只需要三顆衛(wèi)星就可以實(shí)現(xiàn)GPS定位。但是事實(shí)上,必須要四顆。
因?yàn)楦鶕?jù)上面的公式,di是通過c*Ti計(jì)算出來的,而我們知道c值是很大的(理想速度即光速),那么對(duì)于時(shí)間Ti而言,一個(gè)極小的誤差都會(huì)被放大很多倍從而導(dǎo)致整個(gè)結(jié)果無效。也就是說,在GPS定位中,對(duì)時(shí)間的精度要求是極高的。GPS衛(wèi)星上是用銫原子鐘來計(jì)時(shí)的,但是我們不可能為每一個(gè)GPS接收器也配一個(gè)銫原子鐘,因?yàn)橐粋€(gè)銫原子鐘的價(jià)格可能已經(jīng)超過了這個(gè)GPS設(shè)備再加上使用GPS的這輛名貴汽車的價(jià)格。
同時(shí),由于速度c也會(huì)受到空中電離層的影響,因此也會(huì)有誤差;再者,GPS衛(wèi)星廣播的自己的位置也可能會(huì)有誤差。其他等等一些因素也會(huì)影響數(shù)據(jù)的精確度。
總之,數(shù)據(jù)是存在誤差的。這些誤差可能導(dǎo)致定位精確度降低,也可能直接導(dǎo)致定位無效。GetLocation(函數(shù))中多用了一組數(shù)據(jù),正是為了來校正誤差。至于具體的細(xì)節(jié),我們就不用關(guān)心了,我們只要知道,多用一組數(shù)據(jù),就可以通過一些巧妙的算法,消除或減小誤差,保證定位有效。這就是GetLocation()函數(shù)必須用四組數(shù)據(jù)的原因,也就是為什么必須有四顆衛(wèi)星才能定位的原因。
5.GetLocation()函數(shù)返回的位置信息怎樣被GPS設(shè)備識(shí)別呢?
前面說在進(jìn)行位置計(jì)算時(shí)都是用的空間坐標(biāo)形式表示,但是對(duì)GPS設(shè)備及應(yīng)用程序而言,通常需要用的是一個(gè)[經(jīng)度,緯度,高度]這樣的位置信息。那么我們可以想象,在GetLocation()函數(shù)返回位置結(jié)果前,可能會(huì)進(jìn)行一個(gè)從空間坐標(biāo)形式到經(jīng)緯度形式的轉(zhuǎn)換,我們不妨假設(shè)存在一個(gè)Convert(經(jīng)緯度,空間坐標(biāo))這樣的函數(shù)來進(jìn)行這個(gè)轉(zhuǎn)換。
6.單點(diǎn)定位與差分定位
實(shí)際上上面所說的只是定位原理中的其中一種,稱為單點(diǎn)定位,或絕對(duì)定位。就是通過唯一的一個(gè)GPS接收器來確定位置。
目前定位精度最高的是差分定位,或稱相對(duì)定位。就是通過增加一個(gè)參考GPS接收器來提高定位精度。
轉(zhuǎn)自:互聯(lián)網(wǎng)