十年過去了,現在可以直接在電腦前,直接收集那些從萬米高空來的無線電訊號。這一次用的工具是 RTL-SDR v4-一根像USB隨身碟的小東西,是一個廣域的無線電接收器。
它內部是 RTL2832U 這顆由台灣瑞昱(Realtek)設計的晶片。最初它是為了讓電腦看 DVB-T 數位電視而生,但因為它能將類比訊號直接轉為數位數據(SDR,軟體定義無線電),且價格極其低廉,意外被開發者開啟了「上帝視角」。
我購買的這款 RTL-SDR Blog V4,比起一般的電視棒做了更多專業改進。它內建了 R828D 調諧器,並加上了三路濾波器,可以應對常見的 FM 電台、手機基地台或 Wi-Fi 干擾。價格也不貴,我在前幾周從官網以 $49.95 USD 的價格入手。
飛機在飛行時,會透過 ADS-B (Automatic Dependent Surveillance-Broadcast) 系統,不斷地向四周廣播自己的經緯度、高度、速度與編號。要收這個訊號,只要把偶極天線架起來,再安裝 readsb 和 tar1090 這些開源軟體( windows上也有軟體),就可以直接接收。
飛機廣播 ADS-B 訊號的頻率固定在 1090 MHz。在這個頻率下,訊號像光線一樣是「直視傳輸,只要中間有山頭或建築物擋住,你就收不到它。剛好我的窗戶面東北有廣闊的天空,所以當然可以收到不少訊號。
再來是天線,RTL-SDR Blog V4的套件有兩組偶極天線,有一組長一組短。要收1090MHz就用兩組短的,單根長度6.5cm左右,兩根擺成垂直地面,貼在窗戶上就可以了。
天線長度需從無線電波的波長來計算。偶極天線設計為「半波偶極天線」(Half-wave Dipole),也就是天線的總長度約為半個波長。
- 光速約 300,000,000 m/s,1090MHz的無線電波在空氣中的全波長是300 / 1090 = 0.275 m
- 半波長就是27.5 / 2 = 13.75 cm
- 考量無線電波在金屬導體中傳輸的速度比在真空慢,實際天線長度需要乘以一個修正係數(通常取 0.95):理論總長度:13.75 cm x 0.95 = 13.1 cm
- 偶極天線的兩臂長度偶極天線由兩根對稱的金屬棒組成,中央連接同軸電纜,因此單臂長度 13.1 cm/ 2 = 6.55 cm
我使用的軟體 readsb 負責在底層解碼這些 1090 MHz 的原始脈衝,而 tar1090 則提供了類似 FlightRadar24 的視覺介面,讓我能即時在地圖上看到飛機的動向。(其實就和flightradar24界面相似,但看到的就是自己收的飛機訊號)
為了讓數據更有趣,我寫了一段 Python 腳本,將接收到的 Hex 碼轉換為視覺化的地圖,就可以看看自己的「新竹收訊圖」。
透過熱點圖和航線圖就能看到一些有趣現象:
透過熱點圖和航線圖就能看到一些有趣現象:
這張圖定義了我的「數位視野」。因為我的窗戶面東北,加上東南方有山脈屏障,熱點圖展示的是地形對無線電的物理限制。紅色點代表是三萬英呎的飛機,過台灣不停的那種,而藍色點就是要進出桃園機場的飛機。