简介:围绕雷达接收机噪声系数与灵敏度展开的这份PDF文档,面向雷达、射频前端与接收机设计的学习者和工程人员,帮助梳理从架构分类到指标计算的关键概念。内容从超外差、宽带中频、零中频、数字中频等接收机架构切入,说明射频前端滤波、放大、频率转换中的固有噪声如何影响信噪比,并给出噪声因子定义、级联噪声系数公式及“系统噪声主要取决于第一级”的工程结论。文中还讨论GaAs/GaN低噪声放大器、线性度与噪声系数的权衡,以及AESA雷达在每个T/R模块集成LNA的做法;灵敏度部分则结合Smin=kTBF·SNR,解释噪声系数、匹配带宽与所需信噪比之间的关系。资源包仅含1个PDF文件,约284KB,便于快速查阅;目前已有590人学习,适合作为雷达接收机指标入门与复习的轻量资料。
1. 雷达接收机噪声系数与灵敏度:一份 PDF 能省掉哪些重复推导
做雷达接收机前端链路预算时,噪声系数和灵敏度这两个词几乎每天都会被问到:LNA 增益加 3 dB,为什么灵敏度只改善不到 1 dB?把滤波器挪到 LNA 前面,噪声系数为什么突然恶化一大截?这类问题翻公式三分钟能吵半小时。这份 PDF 把接收机架构、噪声因子定义、Friis 级联公式、GaAs/GaN LNA 的取舍、AESA 分布式前端以及灵敏度 kTBF·SNR 公式串在一条线上,适合射频前端初学者做入门地图,也适合已经能算链路预算的人当速查表。它不教你调仿真软件,但能把“第一级主导”“增益与线性度折中”这些结论背后的算式讲清楚,省掉重复推导的时间。
2. 噪声因子与级联公式:把 Friis 公式从纸面搬到计算表
噪声系数不是“器件自己产生了多少噪声功率”这么简单,它描述的是信号经过器件后信噪比退化了多少。PDF 里给的定义很直接:噪声因子 F 是输入信噪比除以输出信噪比,噪声系数 NF 是 F 的 dB 表示。真到动手算链路时,最容易翻车的不是公式记不住,而是 dB 和线性值混着用:增益用 dB 乘,噪声因子用 dB 加,最后结果看起来像那么回事,实际偏差好几 dB。先把线性域统一,再把每一级的贡献拆开,级联公式才不会变成黑匣子。
2.1 噪声系数、噪声因子与 dB 换算的边界
F 是一个无量纲的线性比值,理想无噪声器件 F=1,实际器件 F 一定大于 1。NF 的定义是 10log10(F),所以 NF=0 dB 对应 F=1,NF=3 dB 对应 F≈1.995,NF=10 dB 对应 F=10。很多 datasheet 同时给 NF 和噪声温度 Te,两者关系是 Te=(F-1)T0,T0 通常取 290 K。这个 T0 不是随便定的,它来自标准噪声源参考温度;如果实际源阻抗的噪声温度不是 290 K,NF 这个定义就不完全适用,需要改用噪声温度或者有效输入噪声温度来描述。
| NF(dB) | F(线性) | Te(K,T0=290K) |
|---|---|---|
| 0.5 | 1.122 | 35.4 |
| 1.0 | 1.259 | 75.1 |
| 2.0 | 1.585 | 169.6 |
| 3.0 | 1.995 | 288.6 |
| 6.0 | 3.981 | 864.5 |
| 10.0 | 10.000 | 2610.0 |
这张表建议贴在链路预算表旁边。看到 1 dB 的 NF 改善,不要直接说“灵敏度提高 1 dB”就完了,先确认它对应的是第一级 LNA 还是整条链路;看到噪声温度 290 K,也不要以为器件温度真的是 290 K,它只是参考温度。另一个边界是无源器件:滤波器、限幅器、电缆的插入损耗 L(dB) 就是它的 NF,线性增益 G=1/L。把 2 dB 插损的滤波器填成 NF=0 dB、增益=-2 dB,是后面总 NF 算偏小的常见根源。
2.2 两级与多级级联:第一级 LNA 为什么主导
PDF 给的级联公式是 F_total = F1 + (F2-1)/G1 + (F3-1)/(G1G2) + …。这个式子看起来长,逻辑只有一句话:每一级自己的噪声贡献,都要除以前面所有级的线性增益。第一级没有前级,所以它的 F1 原封不动进来;第二级贡献被 G1 压一次;第三级贡献被 G1G2 压两次。只要第一级增益足够高,后面几项就会迅速变小,系统噪声系数基本由第一级决定。
拿一个三级链路手算:LNA NF1=1.2 dB、G1=20 dB;混频器 NF2=10 dB、G2=6 dB;中频放大器 NF3=6 dB、G3=20 dB。先把 dB 转线性:F1=1.318、G1=100;F2=10、G2=3.981;F3=3.981、G3=100。总 F=1.318+(10-1)/100+(3.981-1)/(100×3.981)=1.318+0.09+0.00749≈1.4155,对应 NF≈1.51 dB。第二级只贡献 0.09,第三级只贡献 0.0075,LNA 自己贡献了 1.318,这就是第一级主导的直观数字。
| 级 | 器件 | NF(dB) | G(dB) | F | G(线性) | 对 F_total 的贡献 |
|---|---|---|---|---|---|---|
| 1 | LNA | 1.2 | 20 | 1.318 | 100 | 1.318 |
| 2 | 混频器 | 10.0 | 6 | 10.000 | 3.981 | 0.090 |
| 3 | 中频放大器 | 6.0 | 20 | 3.981 | 100 | 0.0075 |
| 合计 | 1.4155(NF≈1.51 dB) |
把 LNA 增益从 20 dB 降到 10 dB,其他不变,总 F=1.318+9/10+(3.981-1)/(10×3.981)=1.318+0.9+0.0749≈2.293,NF≈3.60 dB。只降了 10 dB 增益,系统 NF 恶化了约 2.1 dB。反过来说,如果第一级是 2 dB 插损的滤波器,F1=1.585、G1=0.631,后面接 NF=1.2 dB、G=20 dB 的 LNA,总 F=1.585+(1.318-1)/0.631≈2.089,NF≈3.2 dB。滤波器放在 LNA 后面时,LNA 先贡献 1.318,滤波器贡献 (1.585-1)/100≈0.00585,总 NF≈1.22 dB。同一只滤波器,位置差一级,系统 NF 差出近 2 dB,这就是前端损耗的血泪经验。
2.3 用 Python 复算级联 NF:参数怎么填、结果怎么读
手算适合两三级,链路一长就需要脚本。下面这段代码把每一级的 NF、增益按 dB 输入,内部统一转线性,按 Friis 公式累加,并打印每一级的贡献。无源器件也按同一套接口填:NF 填插入损耗,增益填负的插入损耗。
import math def db_to_linear_power(db): """把功率 dB 值转成线性功率比""" return 10 ** (db / 10.0) def linear_to_db(value): return 10 * math.log10(value) def cascade_nf(stages): """ stages: [{'name': str, 'nf_db': float, 'gain_db': float}, ...] 返回总 F、总 NF(dB) 和逐级明细 """ f_total = 0.0 g_prev = 1.0 # 前面所有级的线性增益乘积 rows = [] for i, s in enumerate(stages): f = db_to_linear_power(s["nf_db"]) g = db_to_linear_power(s["gain_db"]) # 第一级贡献就是 F1;后续级贡献是 (Fi-1)/G_prev contrib = f if i == 0 else (f - 1) / g_prev f_total += contrib rows.append((s["name"], s["nf_db"], s["gain_db"], f, g, contrib)) g_prev *= g return f_total, linear_to_db(f_total), rows stages = [ {"name": "LNA", "nf_db": 1.2, "gain_db": 20.0}, {"name": "Mixer", "nf_db": 10.0, "gain_db": 6.0}, {"name": "IF Amp", "nf_db": 6.0, "gain_db": 20.0}, ] f_total, nf_total, rows = cascade_nf(stages) for r in rows: print(f"{r[0]:8s} NF={r[1]:5.1f} dB G={r[2]:5.1f} dB " f"F={r[3]:6.3f} G_lin={r[4]:8.3f} contrib={r[5]:7.4f}") print(f"Total NF = {nf_total:.2f} dB (F={f_total:.4f})")代码里的nf_db和gain_db都按 dB 填,函数内部用db_to_linear_power转线性,避免把 dB 值直接塞进除法。contrib在 i=0 时取 F1,之后取(Fi-1)/g_prev,g_prev只累乘前面级的线性增益,不包含当前级。运行结果应接近 Total NF=1.51 dB。如果把手算例子换成“滤波器在前、LNA 在后”,第一级填nf_db=2.0, gain_db=-2.0,第二级填nf_db=1.2, gain_db=20.0,脚本会给出约 3.2 dB,和手算对得上。参数说明只有一句:无源器件不要填nf_db=0,插损就是 NF,增益填负值。
3. 灵敏度链路预算:从 kTB 到最小可检测功率的落地算法
PDF 把灵敏度写成 S_min=kTBF·SNR,其中 k 是玻尔兹曼常数,T 取 290 K,B 是噪声通带,F 是线性噪声因子,SNR 是输出端要求的最小信噪比。这个式子的工程意义是:接收机灵敏度由热噪声底、带宽、噪声系数和检测所需 SNR 共同决定,不是单看 LNA 的 NF。很多链路预算做着做着就把带宽忘了,或者把 MHz 直接代进 Hz 的公式,结果差 60 dB,这种错在样机对不上时特别难查。
3.1 灵敏度公式里的四个参数:k、T、B、SNR
室温 290 K 下,kTB 在 1 Hz 带宽内是 4×10^-21 W,换算成 dBm 是 -174 dBm/Hz。于是灵敏度可以写成 dBm 形式:S_min(dBm) = -174 + 10log10(B) + NF + SNR_min。这里的 B 用 Hz,NF 用 dB,SNR_min 用 dB。第一项 -174 是 1 Hz 热噪声底,第二项是带宽扩展带来的噪声功率增加,第三项是接收机自己额外贡献的噪声,第四项是后端检测要求。四项都是 dB 域相加,但 NF 和 SNR 的线性关系要先确认清楚。
| 噪声带宽 B | 10log10(B) | NF=3 dB、SNR=10 dB 时的 S_min |
|---|---|---|
| 1 kHz | 30 dBHz | -131 dBm |
| 100 kHz | 50 dBHz | -111 dBm |
| 1 MHz | 60 dBHz | -101 dBm |
| 10 MHz | 70 dBHz | -91 dBm |
| 100 MHz | 80 dBHz | -81 dBm |
表里 -101 dBm 比 -91 dBm 更灵敏,因为负得更多代表可检测的输入功率更小。带宽每增加 10 倍,灵敏度恶化 10 dB;NF 每降低 1 dB,灵敏度改善 1 dB;所需 SNR 每降低 3 dB,灵敏度改善 3 dB。这三个旋钮不是独立的:带宽决定距离分辨率和信息量,NF 受 LNA 和成本限制,SNR_min 受检测算法、虚警概率和脉冲积累影响。雷达里常用脉冲压缩和相参积累改善有效 SNR,理想情况下 N 个脉冲相参积累带来 10log10(N) dB 的 SNR 改善,但这是信号处理增益,不要把它和接收机 NF 混成一笔账。
3.2 带宽、噪声系数与所需 SNR 的三方权衡
做接收机指标分配时,我一般先固定波形带宽和检测所需 SNR,再反推整条链路允许的 NF。比如某项目要求 1 MHz 噪声带宽、输出 SNR 不低于 10 dB、灵敏度做到 -100 dBm 左右,那么允许的 NF 约为:NF = S_min + 174 - 10log10(B) - SNR = -100 + 174 - 60 - 10 = 4 dB。整条链路 NF 必须控制在 4 dB 以内,才有余量给馈线、限幅器和滤波器插损。如果实测灵敏度比这个值差 3 dB,先别急着换 LNA,查前端插损和噪声带宽往往更快。
下面这张链路预算表把每一级的 NF、增益和贡献列出来。第一级限幅器 1 dB 插损,第二级 LNA NF=1.5 dB、G=18 dB,第三级镜像滤波 2 dB 插损,第四级混频器 NF=9 dB、G=6 dB,第五级中频滤波 3 dB 插损,第六级中频放大器 NF=5 dB、G=20 dB。按 Friis 公式累加后总 NF≈3.12 dB,对应 1 MHz、SNR=10 dB 时灵敏度约 -100.9 dBm。
| 级 | 器件 | NF(dB) | G(dB) | F | G(线性) | 累计 F |
|---|---|---|---|---|---|---|
| 1 | 限幅器 | 1.0 | -1.0 | 1.259 | 0.794 | 1.259 |
| 2 | LNA | 1.5 | 18.0 | 1.413 | 63.10 | 1.778 |
| 3 | 镜像滤波 | 2.0 | -2.0 | 1.585 | 0.631 | 1.790 |
| 4 | 混频器 | 9.0 | 6.0 | 7.943 | 3.981 | 2.010 |
| 5 | 中频滤波 | 3.0 | -3.0 | 1.995 | 0.501 | 2.017 |
| 6 | 中频放大 | 5.0 | 20.0 | 3.162 | 100.0 | 2.052 |
这张表最值得看的是第一级限幅器:它只插损 1 dB,但因为放在最前面,贡献了 1.259 的 F,比 LNA 自己的 1.413 小不了多少。如果把限幅器挪到 LNA 后面,总 NF 会明显下降,但 LNA 的输入保护又成问题。工程上常见的做法是加旁路开关或低损耗限幅器,把保护器件单独做预算,而不是默认它“只有 1 dB”。带宽这边也一样,1 MHz 听起来不宽,但 10log10(1e6)=60 dB,已经把 -174 dBm/Hz 抬到 -114 dBm,再叠加 NF 和 SNR,灵敏度很快落到 -100 dBm 附近。
3.3 用脚本把链路预算做成可改参数的表格
灵敏度计算适合做成小脚本,改带宽、改 NF、改 SNR 都能立刻看到结果。下面这段代码用标准库实现,不依赖第三方包,输出的单位是 dBm。thermal_noise_dbm_per_hz把 kT0 换算成 dBm/Hz,sensitivity_dbm按四项相加。扫描带宽和 NF 时,可以直接看出哪个参数对指标最敏感。
import math K_BOLTZMANN = 1.380649e-23 T0 = 290.0 def thermal_noise_dbm_per_hz(t0=T0): # kT0 单位是 W/Hz,乘 1000 转成 mW/Hz,再转 dBm return 10 * math.log10(K_BOLTZMANN * t0 * 1000.0) def sensitivity_dbm(nf_db, bandwidth_hz, snr_db, t0=T0): return (thermal_noise_dbm_per_hz(t0) + 10 * math.log10(bandwidth_hz) + nf_db + snr_db) print(f"kT0 = {thermal_noise_dbm_per_hz():.2f} dBm/Hz") for bw in [1e3, 1e5, 1e6, 1e7, 1e8]: row = [f"{bw/1e6:7.3f} MHz"] for nf in [1.5, 3.0, 6.0]: row.append(f"{sensitivity_dbm(nf, bw, 10):8.1f} dB <p> <a href="https://download.csdn.net/download/weixin_41157291/59617707" style="color:#ec7500;font-size:14px;"> 本文还有配套的精品资源,点击获取 </a> <img alt="menu-r.4af5f7ec.gif" src="https://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif" style="width:16px;margin-left:4px;vertical-align:text-bottom;cursor:text;"> </p>