【Maker 電子學】GPS 接收器的原理與應用—PART2

作者:Bird

上一回【Maker 電子學】GPS 接收器的原理與應用—PART 1,我們簡單介紹了 GPS 的衛星系統組成、它的軌道分佈,以及 GPS 所使用的無線電系統。這一回,我們要解釋一下 GPS 用的通訊技術核心:展頻技術,來說明爲什麼 GPS 可以將微弱的訊號傳送到兩萬公里之外的地表。

展頻通訊

我們上次有提過,最常用的 L1 波段民用 GPS 訊號,在衛星上的 RF 發射功率是 25.6 W,加上天線的增益、傳輸的衰減的因素,綜合起來加加減減,在地表上收到的訊號強度大約是 -125 dBm。

這是一個非常非常非常弱的訊號。我們要如何在接收到這麼弱的訊號時,又要能從它其中取出有用的資訊呢?

GPS 使用了一種曾經只有在軍事用途上使用,但現今已非常普及的通訊技術來克服這個困難:展頻(spread spectrum)。

最早的展頻通訊技術,目的是用來隱匿(stealth)戰場上的通訊。假設我們今天要傳送一個序列是「1、0、1」的訊號,如果用最簡單振幅調變,高電壓代表 1、低電壓代表 0,那麼傳送出去的訊號就會是這個樣子:

(圖片來源:Bird 提供)

好,現在我們另外弄一個訊號 P ,它的長度跟原來我們要傳送的一個 bit 長度一樣,但是中間多了一點變化:長這樣:

(圖片來源:Bird 提供)

當我們要傳送 1 的時候,就傳送 P 這個訊號;當我們要傳送 0 的時候,就傳送上下顛倒的 P 訊號。

於是當我們要傳送 1、0、1 時,就變成這樣:

(圖片來源:Bird 提供)

經過處理的訊號跟原來要傳送的訊號看起來就長得完全不一樣了。如果接收方不知道我們用 P 代表 1、用倒過來的 P 代表 0,它光收到這個處理過的訊號,是沒辦法知道我們在傳送什麼的。

在我們舉的這個例子中,用來代表原始訊號的這個 P 訊號,它變化的倍率是原來訊號的 4 倍。你可以把它想像成我們用速度快四倍的 1011 來代表 1、0100 來代表 0。實務上展頻通訊用的 P 訊號遠比這個倍率要長得多,從數十倍到上千倍都有。當 P 訊號很長時,如果我們不知道發射方用的 P 訊號長什麼樣子,那麼接收方看到的訊號就會很像隨機、沒有意義的雜訊。

因此這個 P 訊號在展頻通訊技術中有一個專門的名字,叫做虛擬隨機碼(Pseudo Randon Number,PRN)。之所以叫「虛擬」是因爲它只是對第三方來說看起來像隨機的,但事實上對發射方和接收方來說,都是可以掌握的。

還原訊號

在解碼時,我們將 PRN 轉換回原始訊號的方法,是將接收到的訊號與已知的 PRN 逐一相乘再相加。

(圖片來源:Bird 提供)

如果我們慎選這個 PRN,使用一些有特別性質的 PRN,還可以達成更多強大的功能。比方說,我們可以找到一組 10 個長度爲 20 的 PRN,這 10 個 PRN 在解碼時,都只有跟自己對應的 PRN 逐一相乘才會的到非 0 的值,如果跟別的 PRN 逐一相乘,就會全部得到 0。如果要用個看起來很恐怖的數學式寫起來,就會是這樣:

(圖片來源:Bird 提供)

Ci 代表編號 i 的 PRN,Cj 代表編號 j 的 PRN,由於這組 PRN 的長度是 20,因此在逐一相乘累加時,m 要從 0 算到 19。

這個「只有自己跟自己逐一相乘才不會得到 0」 的 PRN 在 GPS 和其它的展頻通訊系統上非常有用。

GPS 的展頻通訊系統

好,讓我們回到 GPS。GPS 用的 PRN 長度非常長,有 1023 個 bit,因此所有可用的 PRN 組合有 2 的 1023 次方這麼多種,這是一個幾乎沒辦法表達的天文數字。在這麼多的組合中,GPS 的設計者精挑細選了其中一些 PRN 出來給 GPS 用。

每一顆 GPS 衛星都有屬於自己獨一無二的 PRN,以現在天上有 30 顆衛星在工作來說,就有 30 組不同的 PRN,而這 30 組 PRN 都符合剛剛說的那個特性:只有自己跟自己逐一相乘,才會得到有效的結果,自己跟別的 PRN 相乘就會得到 0。一號衛星的 PRN 跟二號衛星的 PRN 逐一相乘,會得到 0;一號衛星的 PRN 跟 二十八號衛星的 PRN 逐一相乘,也一樣得到 0;只有一號衛星的 PRN 跟一號衛星的 PRN 相乘,才會得到非 0 的結果。

這個性質有什麼用呢?太有用了!

我們可以讓所有的衛星在同一個頻道上發射訊號,這些訊號全部疊在一起、混在一起,就像個大染缸一樣,但是在解碼時,只要用對應的 PRN,就能解出用那個 PRN 編碼的訊號,而不會被混在一起、用其他的 PRN 編碼的訊號影響。

比方說,現在我在的地方,天空中看得到一二三四五六七八號總共八顆衛星,每顆衛星都用自己的 PRN 將訊號編碼後,對地面廣播,於是我收到的訊號,就是這一二三四五六七八總共八顆衛星的訊號,全部混在一起。

這時,如果我要解出來自一號衛星的訊號,我就用一號衛星的 PRN 去跟收到的訊號逐一相乘再相加;如果我要解出來自四號衛星的訊號,我就用四號衛星的 PRN 去跟收到的訊號逐一相乘再相加,於是同一段訊號,只要用不同的方法解碼,就可以得到來自不同衛星的訊號。

這也是爲什麼 GPS 衛星的 L1 訊號只有一個頻率 1575.42 MHz 的原因,因爲所有的衛星,不管是幾號衛星,都用同一個頻率在發射訊號,它們並沒有在稍微不同的頻率或頻道發射訊號,而是貨真價實的全部用同一個頻率在發射,讓訊號疊在一起。

這樣做的好處是,接收機只需要設計一組接收電路,接收一個頻率的訊號,不管現在天上是哪些衛星或是我們想要接收哪一號衛星的訊號,通通收得到,只要收下來再解碼就好了。因爲需要一組接收電路,我們可以盡可能的把這組電路做好、做精,讓它好好地接收來自兩萬公里之外的訊號,而不用煩惱切換頻道啦、調整頻率的問題。

對抗延遲也有用

除了剛剛說明的那個「都只有跟自己對應的 PRN 逐一相乘才會的到非 0 的值」的特性之外,GPS 設計者精挑細選的 PRN 還有另外一個優異的特性。如果用看起來很恐怖的數學式子寫起來,就是這樣:

(圖片來源:Bird 提供)

這個數學式子的意思是這樣。我把來自衛星編號 i 的 PRN Ci 自己跟自己逐一相乘,如果收到的訊號跟用來解碼用的 PRN 相差了一點點時間,比方說相差了 m 個 bit,這時乘起來、加出來的結果就會是 0。

看出來了嗎?這組 PRN 好嚴格,除了比需要自己跟自己相乘相加才有結果外,如果收到的訊號提早或延後了也不行,一定要剛剛好跟自己的 PRN 對上,才能產生有效的輸出。

這個特性在設計接收機的同步系統時非長有用,因爲當我們收下一長串訊號時,通常沒有額外的線索知道 PRN 是從哪裡開始的。

利用這個特性,我們可以「猜」出正確的 PRN 起始位置。以 GPS 的 PRN 長度 1023 來說,我們總共需要嘗試 1023 個不同的位置,其中一定有一個位置會對上,讓上面那個式子的產出不等於 0,這時候我們就找到 PRN 的頭了,當然前提是我們收到的訊號裡,必須要包含用來嘗試的 PRN 對應的衛星訊號,如果第八號衛星並不在你頭上,但是你拼了命用八號衛星的 PRN 然後調整 n 從 0 到 1022 去尋找 PRN 的同步點,怎麼樣也找不到的。

小結

這一回,我們解釋了 GPS 用的「展頻通訊」技術是怎麼一回事,並說明了爲什麼所有的 GPS 衛星都可以用同一個頻率、同一個頻道傳送訊號,而地面的接收機又是怎麼把訊號解出來的。下一回,我們會繼續說明獲取 GPS 訊號和解碼的細節以及定位系統的運作原理。

(責任編輯:賴佩萱)

Liang Bird
Liang Bird

Author: Liang Bird

在外商圈電子業中闖蕩多年,經歷過 NXP、Sony、Crossmatch 等企業,從事無線通訊、影像系統、手機、液晶面板、半導體、生物辨識等不同領域產品開發。熱愛學習新事物,協助新創團隊解決技術問題。台大農機系、台科大電子所畢業,熱愛賞鳥、演奏管風琴、大提琴、法國號,亦是不折不扣的熱血 maker。

Share This Post On

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。