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

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

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742426642811/59b45760-7eab-440e-9fce-9b9a1f9ffda7.png align="center")

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

# 购买接收器 (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/](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 的带通滤波器<s>省得额外买</s>，当然也更不方便于接收 ADS-B 以外的信号
    

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

## 偶极子天线 (Dipole Antenna)

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

### 长度

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

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

### 方向

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455415530/f843945a-92af-4eb5-8c0d-26d9fc102e4e.jpeg align="center")

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

## 我是否需要升级天线

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455343990/aca5c2f1-4f09-4a6f-97da-fe4e2a4d39a1.jpeg align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455351813/a45d096b-170d-4d38-96e0-a87fea1c69ef.jpeg align="center")

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

## 玻璃钢天线

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455371620/6605fefd-8a05-4460-84e1-2c347ff35a06.jpeg align="center")

[https://www.amazon.com/gp/product/B09P19H1Q8/?th=1](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 严格

![](https://ae01.alicdn.com/kf/S796b0a171d4e4888a6862748526cf98dL.jpg_640x640q90.jpg align="center")

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](https://www.w4rp.com/ref/coax.html) 直观感受不同线材带来的损耗

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

## 带通滤波器

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455446227/ec0f3264-1573-482c-9499-00bf00922eb5.jpeg align="center")

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

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742433970464/b02f933c-05fd-4af4-87c1-c4562775312f.png align="center")

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

## LNA

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455468721/9668811c-7afb-4279-ba33-65a55a65d9bd.jpeg align="center")

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

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

## 完整连接顺序

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

带通滤波器和 LNA 应该尽可能靠近天线，如果LNA有很低的噪声系数，可以放在滤波器前面，但仍不建议，确保 LNA 只对需要的信号进行放大更为合适，[这里](https://www.reddit.com/r/RTLSDR/comments/xizisc/lna_ahead_of_saw_filter/)有关于连接顺序更细致的讨论

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

## 升级前后比较

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742600766757/ff0bdf07-a1f4-4467-afcb-d714a8940242.png align="center")

* 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 报文转发给各大平台

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455488157/e077bd0b-36b3-4103-bdf4-b7a6a6d0c59f.jpeg align="center")

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

这里使用一个极其方便的系统镜像： [adsb.im](https://adsb.im/home) 同时适用于树莓派和虚拟机的安装，以下为 Proxmox VE 的安装步骤：

在 Proxmox VE **宿主机**上运行：

```bash
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 后点击启动即可

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742428697155/123e42bc-af74-49d9-91da-4d92c3496b71.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742428544050/5c41369f-d3ab-43bb-adac-e832d27dbc9c.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742455292289/20422fcf-7983-460c-b9d5-25ff4b131d6f.jpeg align="center")

这里推荐几个值得 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/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/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/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://www.reddit.com/r/ADSB/comments/1imqjs3/for_those_whove_upgraded_from_default_rubber/)

[https://inplanesight.org/adsb.html](https://inplanesight.org/adsb.html)
