1.3 从天线到比特:接收链路逐级拆解 本节摘要:本节把一路信号从天线感应到屏幕出图的完整旅程拆成七级:天线耦合、射频滤波、低噪声放大、变频、ADC 采样、数字下变频、软件解调。每一级给出频率与信号形态的变化,并标注 RTL-SDR 在每一级的真实实现。这张链路图是全书排错时"定位问题在哪一级"的底图。 先动手再讲理:先看一眼你将得到什么 在展开电路之前,先给一个结果作为锚点。当你插上 RTL-SDR 并运行采样命令后,得到的是一串复数样本:每对样本由 I(同相)与 Q(正交)两个 8bit 数值组成,取值从 -128 到 127。下面这段 Python 代码读出样本并画出最原始的波形——你现在不必看懂每一行,只需要确认:所谓"接收",最终就是得到这样一串数字。
本节摘要:本节把一路信号从天线感应到屏幕出图的完整旅程拆成七级:天线耦合、射频滤波、低噪声放大、变频、ADC 采样、数字下变频、软件解调。每一级给出频率与信号形态的变化,并标注 RTL-SDR 在每一级的真实实现。这张链路图是全书排错时"定位问题在哪一级"的底图。
在展开电路之前,先给一个结果作为锚点。当你插上 RTL-SDR 并运行采样命令后,得到的是一串复数样本:每对样本由 I(同相)与 Q(正交)两个 8bit 数值组成,取值从 -128 到 127。下面这段 Python 代码读出样本并画出最原始的波形——你现在不必看懂每一行,只需要确认:所谓"接收",最终就是得到这样一串数字。
import numpy as np import matplotlib.pyplot as plt # 从 rtl_sdr 采集的二进制文件中读取原始 I/Q 样本 # rtl_sdr 命令示例(命令行执行,不用改代码): # rtl_sdr -f 98000000 -s 2048000 -n 2048000 capture.iq # -f 指调谐中心频率 98 MHz,-s 指采样率 2.048 MSPS,-n 指采样个数 raw = np.fromfile("capture.iq", dtype=np.uint8).astype(np.float32) iq = (raw - 127.5) / 128.0 # 偏移归一到正负 1 附近 iq = iq[0::2] + 1j * iq[1::2] # 奇偶字节组合成复数 I Q print("样本数:", len(iq)) # 100 万个复数样本 print("幅度范围:", np.abs(iq).max()) # 大约 0.2 到 0.7,取决于信号强度 plt.plot(np.real(iq[:2000]), label="I") plt.plot(np.imag(iq[:2000]), label="Q", alpha=0.7) plt.xlabel("样本序号"); plt.ylabel("归一化幅度"); plt.legend() plt.title("98 MHz 附近的原始 I Q 波形") plt.show()
看到这两条互相缠绕的波形,你已经拿到了链路终点的产物。现在倒回去,看它是怎么一路变成这样的。

第 1 级,天线。电磁波在导体中感应出微伏到毫伏量级的电压。拉杆天线的长度接近半波长时谐振效果最好:100 MHz 对应波长约 3 米,半波长 1.5 米,所以 75 厘米的伸缩拉杆在 VHF 广播频段需要借助加感线圈才能有效工作——这就是为什么 433 MHz 的信号往往比 98 MHz 的更容易收到,波长短,天线短,效率反而高。
第 2 级,射频滤波。天线收下的是"所有频率的总和":广播、手机基站、寻呼残留、电火花噪声。预选滤波器把调谐频带之外的能量挡掉,防止后续放大器被强信号"顶饱和"。RTL-SDR 的 R820T2 芯片内建了可切换的滤波器组,这也是廉价电视棒能凑合用的原因之一。
第 3 级,低噪声放大。LNA 的使命是在引入尽量少自身噪声的前提下把信号放大,它决定了整机的灵敏度——链路理论告诉我们,第一级的噪声系数对总噪声贡献最大。R820T2 的噪声系数约 3.5 dB,配合增益可编程(0 到约 49.6 dB),能适应从弱信号卫星到强信号广播的各种场景。增益不是越大越好:增益过大,强信号会削顶失真;过小,弱信号会淹没在量化噪声里。第 2 章我们会用实验找到平衡点。
第 4 级,变频。R820T2 采用低中频架构,把调谐到的频率与本振混频,搬到约 3.57 MHz 的中频上。混频的本质是频谱平移,数学上就是信号与本振正弦相乘。这一级是"超外差思想"的当代延续——1918 年 Armstrong 的发明至今仍在每一台接收机里服役。
第 5 级,ADC 采样。RTL2832U 对中频信号采样,输出 8bit 的 I/Q 复数样本。量化位数是廉价与性能的分水岭:8bit 理论动态范围约 48 dB,意味着强台与弱台同时出现时,弱台可能被压进量化噪声。第 3 章会用频谱图直观展示这一限制。
第 6 级,数字下变频。RTL2832U 内部对样本做数字混频与降速,把感兴趣的部分搬回零频并降低数据速率,然后打包成 USB 批量传输块。默认每块 512 字节(256 个复数样本),丢块与否取决于 USB 带宽与主机负载——这是后面排错章节会反复遇到的"overflow"。
第 7 级,软件解调。样本进入你的程序或 GNU Radio 流图:数字滤波、抽取、解调、音频输出。到这里,"无线电"已经彻底变成"信号处理",第 4、5 章将亲手实现这一级。
链路图最实际的用途是定位问题。收不到信号时自上而下问:天线谐振吗(换长度试试)?增益是否被设成 0?频率有没有设错采样率导致偏到带外?USB 是否丢块?软件解调参数对不对?九成新手问题都能在五级以内定位。把它打印出来贴在桌上,不夸张。
2.048 MHz 等于 2 的 21 次方赫兹,2 的幂采样率让下游的抽取、滤波器设计都可以用 2 的幂完成,计算效率最高。类似地 44.1 kHz 音频是为了兼容视频扫描率的历史产物——采样率的选择从来不是纯技术问题,生态兼容占一半。
In-phase(同相)与 Quadrature(正交)。同相指与参考载波同相位的分量,正交指与之相差 90 度的分量。名字来自模拟时代的混频器术语,如今作为复数实部虚部的俗称沿用。
多数业余场景中,天线与馈线级的损耗与失配是最大短板——几米的同轴在 1 GHz 以上能吃掉好几分贝,接头氧化再吃几分贝,而这几分贝在链路预算里等价于天线尺寸翻倍。升级设备的钱,常常一半不如买根好线、把天线架高来得实在。
因为它把"参数"挂在了"位置"上:采样率挂在 ADC 级、增益挂在 LNA 级、抽取挂在数字下变频级。出问题时按图索骥,每个现象都能落到具体一级;学新概念时也能立刻知道它属于链路的哪一段、上下级是什么约束。这张图是全书唯一的"必背内容"。
下一章我们就把这支电视棒拆到芯片级,对照本节框图逐级验证,然后装驱动、收到第一段声音。