Skip to main content

Command Palette

Search for a command to run...

Ads-b 接收站搭建与优化

Updated
Ads-b 接收站搭建与优化

ADS-B(Automatic Dependent Surveillance-Broadcast,自动相关监视广播)是一种广泛使用的飞行监视技术,通过飞机广播自身的位置、高度、速度等数据给地面站和其他飞机,其提供了相比传统雷达技术更加准确、实时的飞行数据,与此同时 ADS-B 也是广泛使用的航班追踪软件例如 Flightradar24 的运行原理,这一类追踪软件通过部署范围广阔的 ADS-B 地面站来实现实时追踪飞机位置。

按照当今设计系统的惯用思维,要实现飞机位置等信息的跟踪大概率会使用卫星甚至 LTE 等技术传输到统一的控制中心实现监控,然而航天发展历史悠久,ADS-B 作为早期针对这一问题的解决方案一直沿用至今(虽然飞机制造商例如 Boeing 和各大航司确实有类似的中心化控制中心,但是大多局限在该组织内部使用),更何况 B737 这样发布至今已有 60 余年的机型仍在蓝天翱翔,想要将飞行监视技术进行统一的更新换代并不容易。所以,目前的航班追踪平台靠着自行构建全球性的 ADS-B 接收网络这一实属不易的方式运作着,那么,有没有可能我们也能为构建接收网络出一份力呢?

实际上 Flightradar 和 FlightAware 这样的追踪平台很大成分上依赖着爱好者们为爱发电搭建的 ADS-B 接收站,并且如果你位于欠覆盖区域,他们会很乐意为你提供免费的接收设备。对于所有愿意提供 ADS-B 数据馈送的用户,许多平台会提供免费的企业订阅作为交换,以感谢你的付出,这也是我愿意搭建 ADS-B 接收设备的主要动力来源

购买接收器 (SDR Dongles)

接收 ADS-B 广播所使用的接收器其实也就是 SDR (Software-defined radio) 所使用的接收器,它不仅可以用于接收 ADS-B 广播,也可以拿来接收例如国际空间站下传的卫星图片,或者拿来当成老大爷同款收音机听听广播也是不错的,用途十分广泛。

目前主流的 Dongles 主要采用 Realtek 的 RTL2832U 芯片组,价位在 200 左右,不同厂家之间性能差异有限,同时选用更高端的 Dongles 在 ADS-B 接收场景意义不大,故这里简单推荐两款:

  • RTL-SDR Blog V3

    https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/

    广泛使用的接收设备,V3 似乎比 V4 更适合于 ADS-B 场景,淘宝存在许多翻版,翻版性能自行甄别

    相比下面这款它拥有铁壳所以散热应该更好,具有 Bias-T 供电能力故可使用依赖于此的 LNA

  • FlightAware Pro Stick Plus

    额外内置一个 1090Mhz 的带通滤波器省得额外买,当然也更不方便于接收 ADS-B 以外的信号

无线电玄学部分——天线、线材、滤波与LNA

偶极子天线 (Dipole Antenna)

我购买的 RTL-SDR 套装自带了一套偶极子天线,效果对于轻度要求尚尚尚可,在使用时需要注意:

长度

偶极子天线长度影响其谐振频率,你应该找到与期望频率(对于 ADS-B/Mode-S 而言是 1090Mhz,或是 978Mhz)相匹配的长度,这里推荐一个计算器: https://www.omnicalculator.com/physics/dipole

在 1090Mhz 频率下天线总长应该为 13.087cm

方向

对于ADSB接收,偶极子天线的最佳朝向通常是垂直放置

偶极子天线的辐射方向图呈环形(甜甜圈形状),信号强度在垂直于天线轴的方向上最强,由于大多数商用飞机的 ADS-B 发射天线为垂直极化,也应使用具有相同极化的天线以获得最佳性能

我是否需要升级天线

一般来说,除去天线位置的限制,如果接收范围总是小于 50nm,就可以考虑升级,同时你可以参考 adsb.im 控制面板的 Stats:

如图可见信号强度均值 -32dB,属于较弱,这个值越大越好;噪声 -42dB 也属于偏高,这个值越小越好

从增益上也能反映当前信号接收强度,当前增益 49.6 是非常高的设置,接近很多接收机的最大增益,高增益会同时放大信号和噪声,也可能导致接收机过载,故天线部分很有必要进行升级

玻璃钢天线

https://www.amazon.com/gp/product/B09P19H1Q8/?th=1

FlightAware 这款天线应该是使用最为广泛的,0.6m 长度,5.5dBi 增益,其他具有类似参数的天线(例如 ADSBexchange)的天线理论上具有相似的性能(甚至可能来自同一家厂商)

同一个 Amazon 链接下还有 12dBi 增益的一款更长的天线值得尝试,不过需要注意的是,增益并不是越高越好,增益越高波束宽度变窄,覆盖角度减小,有 Reddit 用户测试发现 5.5dBi 的天线甚至好于更高增益的天线也说明了这一问题

线材

在天线接收了信号之后线材的质量决定了传输中信号损失,一些常用的线材规格为 RG-58, LMR-240, LMR-400,其中还有 LMR-240 的变种 KMR-240,理论具有相似的性能但执行标准不如 LMR 严格

RG-58 的损耗值为 23 dB/100 ft,在 30ft 的长度下,加上连接器的损耗等,实际值更接近于 8-10 dB,即便与上述增益更高的 12dBi 天线搭配使用,这意味着将损失 90% 的信号,故在可能的情况下应该尽量避免采用

LMR-240 损耗值为 8Db/100ft,LMR-400 为 4 db/100ft,可以结合线材长度计算或在这里: https://www.w4rp.com/ref/coax.html 直观感受不同线材带来的损耗

在购买线材和转接头时应该注意类型,N公/母头,SMA公/母头

带通滤波器

带通滤波器能够滤除不需要的频率信号(噪声)而保留目标频率,其根据原理不同性能有所差异,常见的是LC(电感L和电容C)滤波和SAW滤波(利用压电材料表面的声表面波 Surface Acoustic Wave 传播特性,将电信号转换为声波,再转回电信号),两者各有千秋,可以按需看谁便宜购买

如果追求极致的过滤效果,也可以尝试这一款 1090 MHz cavity filter https://shop.sysmocom.de/1090-MHz-cavity-filter-for-Mode-S-ADS-B/cf1090-kt3

其拥有非常干净的频率响应,适合有更高需求的用户

LNA

LNA(低噪声放大器 Low Noise Amplifier)是一种专门设计用来放大微弱射频信号的电子设备,其是一个有源组件故需要通过支持的 SDR 依赖 Bias-T 供电或者外接电源

该设备通常是宽频,能够对所有信号进行放大,故应该在滤波之后以免放大噪声,同时也有结合了滤波的版本例如上图

完整连接顺序

连接以上所有器件的顺序应该为:Antenna - Filter - LNA - [Cable] - SDR Dongle

带通滤波器和 LNA 应该尽可能靠近天线,如果LNA有很低的噪声系数,可以放在滤波器前面,但仍不建议,确保 LNA 只对需要的信号进行放大更为合适,这里有关于连接顺序更细致的讨论

注意在更新天线与射频前端后,你应该重新设置增益或者进行 autogain

升级前后比较

前面提到,起初我使用的是偶极子天线和随附的馈线,发现效果不佳后购买了 LNA、SAW 滤波、LMR240 标准的馈线,搭配 0.6m 5.5dBi 的玻璃钢天线进行升级,升级前后对比:

  • Tracks Seen/Hour: 200 → 1200

  • Peak Signal Level: -20dB → -6dB

  • Max Range: 40nm → 120nm

  • Noise: -42dB → -36dB ⬇️

  • Auto Gain: 49.6 → 37.3

可以发现消息频率、观测范围、观测数量等参数都有非常明显的提升,不过噪声底也提升了,猜测是滤波滤除不够干净以及经过 LNA 放大导致信号与噪声一起放大导致的

看到噪声提升之后,我暂时移除了 SAW 滤波想进行对比测试以了解滤波是否有作用:移除滤波之后噪声底来到 -30dB (再次提升),证明滤波确实是有作用的,同时还观察到了个有趣的现象:移除滤波后自动计算的增益下降到 -30dB,一直以来我认为增益越小说明信号质量越好,但为什么噪声增加后增益反降呢,搜索后发现自动增益控制算法以总 RF 功率作为输入,维持信号在合适的范围以避免弱信号丢失以及接收机过载,也就是说该算法无法区分目标信号和干扰信号,这也解释了当噪声增加后总 RF 功率提高,虽然信噪比下降,但由于 AGC 的工作原理其仍然需要降低增益以保护接收机避免过载

运行 Feeder 的设备

这里指的是与 Dongles 连接的类似树莓派的设备,运行 Feeder 软件将接收到的 ADS-B 报文转发给各大平台

一种常见的搭配自然是树莓派+Dongles,但如果你碰巧有一台运行着 Proxmox VE 的 Home Lab,在上面新建一个虚拟机也可以达成同样的效果

这里使用一个极其方便的系统镜像: adsb.im 同时适用于树莓派和虚拟机的安装,以下为 Proxmox VE 的安装步骤:

在 Proxmox VE 宿主机上运行:

mkdir -p ~/adsbim; cd ~/adsbim
wget -O adsb-im-vm.tar.xz https://github.com/dirkhh/adsb-feeder-image/releases/download/v2.3.2/adsb-im-x86-64-vm-v2.3.2-proxmox.tar.xz
tar xJf adsb-im-vm.tar.xz && bash ./pve-vmcreate.sh -s 16G
cd && rm -rf ~/adsbim

运行完成后应该能看到名为 adsb-feeder 的 VM,选择 Hardware - Add: USB Device - Use USB Port 将 Dongle 直通给 VM 后点击启动即可

打开 Console 观察输出,可能需要手动重启一次直到给出连接信息方为初始化完成,打开 VM IP 即可见 adsb.im 的控制台

MLAT (Multilateration) 是一种为缺少 GPS 信息的 Mode-S 报文计算出位置信息的技术,其通过 3 个或更多地面接收器的接收时间差来计算位置,MLAT 的运作依赖高精度的时钟(通常是 SDR Dongle 内置时钟),通过虚拟机运行的实例由于 USB 延迟的问题,许多平台会由于数据不可靠拒绝采用作为 MLAT 源,将 Feeder 直接安装在物理机上或者树莓派上可以解决此问题

这里推荐几个值得 Feeding 的平台:

  • Flightradar24 不用说,最大的航班追踪平台,送 Enterprise 订阅

  • FlightAware 大概是第二大?送 Enterprise 订阅,送 $10 AeroAPI Credit 可用于构建自己的航班追踪 App

  • PlaneFinder 大概是这里面 UI/UX 做的最漂亮的平台,送 Premium 订阅

题外话:在追踪覆盖范围上,Flightradar24 几乎是最强的,在刁钻的航线上拥有远超 FlightAware 的覆盖,同时对于太平洋等不可能有接收站的地区有效果不错的卫星覆盖(不懂为什么 FlightAware 声称自己有 Aireon 天基 ADS-B ,但覆盖和 FR24 却完全没法比)。FlightAware 覆盖其次,但是对于中国大陆区域覆盖欠佳,这点上 FR24 不成问题

题外话2:如果希望在中国大陆建设接收站补足覆盖,请确保 Feeder 不要直连到任何平台例如 Flighradar24

以上,Happy Feeding !


Reference:

https://www.reddit.com/r/RTLSDR/comments/pyh34g/effect_of_rtlsdr_blog_adsb_triple_filtered_lna/

https://www.reddit.com/r/RTLSDR/comments/xizisc/lna_ahead_of_saw_filter/

https://www.reddit.com/r/RTLSDR/comments/15mxix9/trying_to_organize_thoughts_lna_for_adsb/

https://www.reddit.com/r/ADSB/comments/1imqjs3/for_those_whove_upgraded_from_default_rubber/

https://inplanesight.org/adsb.html

More from this blog

UBNT Wireguard IPv6 VPN 踩坑

Unifi 自带 Wireguard 服务器和客户端功能,当我搭建好 Wireguard 服务端准备从 Unifi 连接时发现,2025 年了,竟然还有不支持 IPv6 的设备… 众所周知,新版 Unifi OS 是通过 Debian 魔改得来的,倘若 UBNT 没有无聊到自己实现了一个用户态且不支持 IPv6 的客户端的话,Debian 所支持的内核态 Wireguard 是肯定支持 IPv6 的,上图可见这里还支持填入域名,那么填入一个只有 IPv6 地址的域名能否绕过限制呢? 通过测试...

Sep 18, 2025

抓取并解析福建电信 Iptv 源

最近时(网)间(课)充(摸)裕(鱼),打算试试给 IPTV 抓包提取直播源,解决下网上公开直播源稳定性差的问题 提示 1. 抓包 上手前还是得先查查现有教程,自己抓由于包数量多,很慢还容易找不准 直到看到这个教程: https://www.right.com.cn/forum/thread-7799967-1-1.html 相见恨晚,而且十分可靠,所以本部分略过直接看上面链接就行 2. 处理节目列表 如图定位节目列表位置,从 ChannelCount 的下一行开始复制直到最后一个 jsSe...

Mar 18, 2022

JHT

8 posts