使用RTL-SDR V4收飛機的 ADS-B畫出畫出航跡地圖

10 年前寫過一篇文章《從飛機雲估測我和誰看同一片天空》,那時我的興趣全在天邊那些稍縱即逝的飛機雲。當時得拿著望遠鏡對照 FlightRadar24 App,手動確認自己的視覺極限,原來在新竹窗前,大約能觸及 80 公里外的北海岸上空。

十年過去了,科技的演進讓我不必再肉眼捕捉飛機。現在,我可以直接在電腦前收集那些從萬米高空落下的無線電訊號。這一次使用的工具是 RTL-SDR v4,這根看起來像 USB 隨身碟的小東西,其實是一個強大的廣域無線電接收器。

上帝視角:RTL-SDR 的神奇魅力

這款裝置的核心是 RTL2832U,這顆原本由台灣瑞昱(Realtek)設計作為電腦觀看 DVB-T 數位電視的晶片。然而,因為它能將類比訊號直接轉為數位數據(Software Defined Radio, SDR),且價格極其低廉,意外被開發者社群開啟了「上帝視角」。軟體定義無線電 (SDR) 讓原本只能收看電視的硬體,搖身一變成為能監聽從衛星、飛機、氣象氣球甚至太空站發出的無線電波的萬用工具。

我購入的是 RTL-SDR Blog V4 專業版本,它內建了 R828D 調諧器並加上三路濾波器性能更穩定,能有效過濾 FM 電台、手機基地台或 Wi-Fi 的干擾。在官網以約 $49.95 USD 的價格即可入手,是進入無線電世界的最佳入門磚。

接收飛機訊號:ADS-B 系統

飛機在飛行時,會透過 ADS-B (Automatic Dependent Surveillance-Broadcast) 系統,不斷向四周廣播自己的經緯度、高度、速度與編號。要接收這些訊號,硬體上只需要架起天線,軟體則搭配開源的 readsbtar1090 即可實現。

ADS-B 訊號就像光線一樣是「直視傳輸」的,頻率固定在 1090 MHz。這意味著只要中間沒有山頭或大樓遮擋,你就能接收到。剛好我的窗戶面東北,擁有廣闊的天空視野,收訊條件相當理想。

天線長度與半波偶極計算

為了精準接收 1090 MHz 的訊號,天線的長度必須經過計算。我們通常使用「半波偶極天線」(Half-wave Dipole),其總長度約為無線電波長的一半。

  1. 全波長計算:光速約為 $3 \times 10^8 \text{ m/s}$,頻率為 $1090 \text{ MHz}$。
    $$ \lambda = \frac{300}{1090} \approx 0.275 \text{ m} (27.5 \text{ cm}) $$
  2. 半波長計算
    $$ \frac{\lambda}{2} = \frac{27.5}{2} = 13.75 \text{ cm} $$
  3. 修正係數:考量無線電波在金屬導體中傳輸較慢,需乘上係數 $0.95$。
    理論總長:$13.75 \text{ cm} \times 0.95 = 13.1 \text{ cm}$
  4. 單臂長度:偶極天線由兩臂組成,故單側長度約為:
    $$ 13.1 / 2 = 6.55 \text{ cm} $$

實際操作上,只要將兩根拉伸至約 6.5 cm 的短天線垂直地面排列,貼在窗戶上即可開始接收。

數據視覺化:定義我的「數位視野」

底層解碼交給 readsb,介面則使用 tar1090。當我看到地圖上密密麻麻的飛機動態時,那種感覺就像是在家裡架設了一座小型雷達站。

tar1090 接收界面範例

為了進一步分析收訊範圍,我寫了一段 Python 腳本將接收到的數據繪製成熱點圖與航線圖。這張圖定義了我的「數位視野」:

新竹收訊熱點圖

從圖中可以觀察到有趣的現象:紅色點代表巡航高度三萬英呎左右、過境台灣不停靠的飛機;而藍色點則是準備進出桃園機場的班機。受限於地形,東南方有山脈屏障,因此我的收訊範圍集中在北方到東北方,半徑約 80 公里,這與十年前我用望遠鏡觀測的結果驚人地一致。

與 10 年前手動比對的浪漫不同,現在透過 SDR 與自動化腳本,我可以更精準地掌握天空的動態。最令我著迷的不再只是「看飛機在哪裡」,而是接收到的進階數據(EHS),裡面隱藏了更多有趣的物理資訊,值得後續進一步分析與探討。

« 上一篇 Previous 較舊的文章 下一篇 Next » 較新的文章