1. 经典脉冲法为什么能活到今天:先搞清楚它在测距技术里的位置
1.1 一束光打过去,再等它回来
脉冲激光测距的原理听起来简单到不像工程问题:向目标发射一个很窄的激光脉冲,光遇到目标表面后反射回来,探测器收到回波,记录下从发射到接收的时间差,乘上光速再除以 2,就是目标距离。这个逻辑就是时间飞行法,英文简称 TOF(Time of Flight),脉冲激光测距是 TOF 里最典型、也最“古老”的实现形式。
但“简单”只是原理层面的错觉。真正把脉冲激光测距做成一个可用的产品,要对付的是纳秒级计时、微弱回波信号、背景光噪声、大气衰减、目标反射特性差异等一系列问题。激光雷达方程要解决的核心问题,恰恰不是“怎么测距”,而是“在给定发射功率、光学口径和目标距离下,到底能不能收到足够的回波光”。没有雷达方程做链路预算,脉冲激光测距很多时候只是纸上谈兵。
这篇文章适合三类人:一是刚进入激光雷达、无人驾驶或测绘行业,想系统搞懂测距原理的工程师;二是做脉冲激光测距产品选型,需要理解指标背后含义的硬件产品经理;三是已经在搭测距系统,但被回波信号不稳定、远距离测不到、近距离盲区等问题折磨的调试人员。我会把脉冲激光测距的原理、激光雷达方程的分项计算,以及那些教材里很少写的工程坑放在一起讲透。
1.2 脉冲法、相位法、干涉法:三条路的取舍
在展开脉冲法之前,有必要先把它放进技术坐标系里。现在的激光测距大致有三条主流路线:
| 方法 | 核心原理 | 典型精度 | 特点 |
|---|---|---|---|
| 脉冲 TOF | 测量光脉冲飞行时间 | 毫米到厘米级(取决于计时与波形处理) | 测程远,适合中远距离,抗多径能力弱 |
| 相位法 | 测量连续波调制信号的相位延迟 | 毫米级 | 精度高,但存在 2π 模糊,测程受调制频率限制 |
| 干涉法 | 通过干涉条纹变化测量光程差 | 纳米到亚纳米级 | 精度极高,通常只能测相对位移,对环境震动敏感 |
相位法本质上也属于时间飞行测量,只是它把“时间的长度”转换成了“相位的变化”,因此对电子噪声和调制器线性度要求很高。干涉法就更极端,它不直接测光飞行的时间,而是测光波本身的相位差,所以精度能到波长量级,但一次只能测一个很小的动态范围。
脉冲法能在这些路线里长期存活,核心优势是“直接”和“远”。它不需要连续波调制解调,不需要高精度干涉参考臂,只需要一个足够快的计时电路和一个足够灵敏的探测器。正因如此,脉冲法特别适合激光雷达、地形测绘、工业测距传感器这类“先把距离测出来,再谈精度”的场景。理解了这一点,你就知道为什么“经典脉冲激光测距原理”直到今天仍然是很多激光雷达课程的第一课。
2. 脉冲激光测距的时间飞行链路:R = ct/2 背后的“2”到底难在哪
2.1 基本方程和量级直觉
脉冲激光测距的基本方程是:
R = c × t / 2
其中,R 是目标距离,c 是光速(299792458 m/s),t 是从激光发射到回波到达探测器的时间差。除以 2 是因为光走了“发射-目标-接收”的双程,而我们只需要单程距离。
这个方程会立刻给你一个量级直觉:光速太快了,所以时间测量的分辨率直接决定距离分辨率。1 纳秒的时间误差,对应约 15 厘米的距离误差;1 皮秒的时间误差,对应约 0.15 毫米。这就意味着,如果你的目标是厘米级测距,时间测量电路至少要有亚纳秒甚至几十皮秒的分辨能力。
这里给你一组常见距离对应的时间数据,方便建立直觉:
| 目标距离 | 双程飞行时间 |
|---|---|
| 1 m | 6.67 ns |
| 10 m | 66.7 ns |
| 100 m | 666.7 ns |
| 1 km | 6.67 μs |
看到这组数据你会明白,脉冲激光测距的“计时起点”如果偏差 1 纳秒,在近距离应用里就已经是 15 厘米的误差了。很多新手以为只要计时芯片分辨率高就行,实际工程里更大的误差往往来自信号触发的“抖动”和“时间游走”,而不是时钟晶振本身。
2.2 计时起点与回波停止点:三个实际工程做法
R = ct/2 里的 t 并不是一个抽象的时间差,它涉及两个具体的时间点:发射起点 t0 和回波到达点 t1。这两个点怎么定义,直接决定测距精度。
第一个做法是前沿触发。探测器收到回波后,信号幅度超过某个阈值,比较器翻转,记录时间戳。这个方法最简单,成本低,但有一个明显问题:回波信号的幅度会随目标距离、反射率变化。目标近、反射率高时,回波前沿很陡,过阈时间早;目标远、反射率低时,回波前沿变缓,过阈时间晚。结果就是同样几何距离,不同反射特性测出来的距离不一样,这就是所谓的“时间游走误差”。
第二个做法是恒比定时,简称 CFD。它不是固定阈值,而是把输入信号分成两路,一路做延迟,一路做衰减,再把两路信号相减,用零交叉点作为时间戳。这个方法的精妙之处在于,它能在一定程度上消除幅度变化带来的触发时间偏移,测距稳定性明显好于前沿触发。代价是模拟电路复杂,CFD 的带宽和延迟匹配都很考验设计功力。
第三个做法是波形采样。现在很多高速模数转换器和单光子雪崩二极管阵列已经能把整个回波波形数字化,然后用算法离线拟合脉冲峰值或质心位置。这个方法精度最高,还能同时处理多目标回波,但数据量和功耗也最大。我自己的经验是,如果产品对成本不敏感、又需要厘米级精度,直接上波形采样往往比在模拟前沿触发里抠精度更省心。
2.3 一个没有写在教材里的精度账
这里有个很容易被忽略的点:脉冲宽度和带宽的关系。一个 5 纳秒宽的激光脉冲,频谱大约需要 200 MHz 带宽才能不失真地接收。带宽越宽,系统噪声越大,所以短脉冲提升了距离分辨能力,却牺牲了探测灵敏度。这就是为什么远距离脉冲激光测距系统不会一味追求“更窄的脉冲”,而是要在脉冲宽度、峰值功率、接收带宽三者之间权衡。
我在调试一个工业测距模块时踩过这个坑:一开始为了追求 1 厘米的分辨率,把激光脉宽从 10 纳秒压到 3 纳秒,结果远处目标回波直接淹没在噪声里。后来把脉宽放宽回 8 纳秒,配合恒比定时电路,虽然单脉冲理论分辨率差了一点,但实际可测距离反而提升了近 40%。所以,看到脉冲激光测距指标上写“测量分辨率 1 cm”时,请一定问一句:这是单次测量还是多次统计的结果?脉宽是多少?接收带宽是多少?这些参数才是产品真实性能的底色。
3. 激光雷达方程的分项拆解:链路预算为什么是四次方关系
3.1 点目标形式的雷达方程
激光雷达方程是从普通雷达方程引申过来的,但它和微波雷达有个关键区别:激光波长短、波束窄、目标和光学口径的尺寸通常远大于波长,所以不能简单把目标当作各向同性散射体来处理。工程上最常用的点目标激光雷达方程是:
P_r = P_t × (G_t / (4πR²)) × (σ / (4πR²)) × A_r × T_atm² × η_sys
这个式子看起来长,其实每一项都能对应一个物理环节:
| 符号 | 含义 | 典型量级 |
|---|---|---|
| P_t | 激光发射脉冲的峰值功率 | 几 W 到几十 W |
| G_t | 发射天线增益,约等于 4π/Ω_t | 光束发散角 1 mrad 时约 10^7 |
| R | 目标距离 | 按应用场景 |
| σ | 目标等效雷达散射截面 | 漫反射目标从 0.01 到 1 m² 不等 |
| A_r | 接收光学系统有效面积 | 直径 25 mm 时约 4.9e-4 m² |
| T_atm | 大气单程透过率 | 晴天接近 0.9,恶劣天气很低 |
| η_sys | 光学和探测器系统效率 | 通常在 0.3 到 0.7 |
从方程里能看出两个重要的工程结论。
第一,回波功率和距离的 4 次方成反比。这意味着距离翻倍,回波功率变成原来的 1/16。从 100 米推到 1 公里,回波功率理论上下降 1 万倍,也就是 40 dB。这就是远距离激光测距难做的根源,不是光“射得远”就够,而是“回得来”才行。
第二,发射天线增益 G_t 和接收面积 A_r 是对称的。想要提高链路余量,可以压缩光束发散角,也可以增大接收口径。但压缩光束发散角会增加对准难度,增大会导致成本、体积大幅度上升,所以实际产品总是在这两个方向上找一个折中点。
3.2 漫反射面目标的另一种写法
当目标不是一个孤立点,而是一个被激光光斑完全覆盖的漫反射面时,继续用点目标的雷达会显得有些别扭,工程上通常使用另一种简化形式:
P_r = P_t × ρ × A_r / (π × R²) × T_atm² × η_sys
这里的 ρ 是目标表面的半球反射率。这个式子说明,面目标激光测距的回波功率只和距离的 2 次方成反比,不再有 4 次方衰减。原因是目标面积会随着距离增大而变大,刚好抵消了一部分光束扩散带来的功率密度下降。
这个公式还有个隐藏条件:接收视场必须和目标被照亮的区域匹配。如果接收视场太小,目标反射光只有一部分进入探测器;如果接收视场太大,又会引入大量背景光。后面我会专门讲这个匹配问题,这里先记住:面目标公式里面的 A_r 是有效接收面积,不是光学口径的简单总面积,还要考虑遮挡、镀膜透过率和探测器有效感光面积。
3.3 拿 905 nm 激光器做一版手工链路预算
理论说了半天,不如实际算一笔账。假设某脉冲激光测距模块的参数如下:
- 发射峰值功率 P_t = 10 W
- 波长 905 nm
- 光束发散角(全角)θ = 1 mrad
- 接收口径直径 25 mm,A_r = π × (0.0125)² ≈ 4.91e-4 m²
- 系统效率 η_sys = 0.5
- 大气单程透过率 T_atm = 0.9
- 目标等效雷达散射截面 σ = 0.1 m²
先算发射立体角:
Ω_t ≈ π × (θ/2)² = π × (0.0005)² = 7.85e-7 sr
发射天线增益:
G_t = 4π / Ω_t ≈ 1.6e7
在 100 米处,激光被目标截获处的功率密度为:
P_t × G_t / (4πR²) = 10 × 1.6e7 / (4π × 10000) ≈ 1273 W/m²
这个数值看起来很高,但注意它只是“照到目标区域单位面积上的功率”,真正反射回接收机的能量还要经过目标散射和双程衰减。
把后面的项全部算进去:
P_r = 1273 × (0.1 / (4π × 10000)) × 4.91e-4 × 0.9² × 0.5
先算括号里的散射项:
0.1 / 125664 ≈ 7.96e-8
继续代入:
P_r ≈ 1273 × 7.96e-8 × 4.91e-4 × 0.81 × 0.5
P_r ≈ 20 nW
也就是说,接收机面前大概有 20 纳瓦的回波光功率。如果这个目标拉到 1 公里,只按 R 的 4 次方衰减,回波功率会降到 2 皮瓦左右。你要知道,很多光电探测器的噪声等效功率(NEP)在 0.1 pW/√Hz 量级,接收带宽几十兆赫兹时,系统噪声本身就接近 1 皮瓦。所以 2 皮瓦的回波信号已经非常吃紧了。
这就是雷达方程的意义:它能把“我能不能测到 1 公里外的目标”这个问题,变成了“回波功率 2 pW,探测器等效噪声多少、信噪比要求多少”这样一条可以计算的链路。
4. 信噪比、探测概率和虚警率:把雷达方程变成“能不能测到”的判据
4.1 脉冲探测里的噪声到底从哪来
雷达方程算出的是“期望回波功率”,但探测器最终输出的是一堆包含噪声的电压。脉冲激光测距接收机里的噪声主要有几类:热噪声来自放大器和电阻的随机涨落;散粒噪声来自光生载流子的统计随机性;暗电流噪声来自探测器在无光情况下自身产生的电子;背景光噪声来自太阳、室内灯光等非目标光源。
工程上常用噪声等效功率 NEP 来综合评价这一切。NEP 的单位是 W/√Hz,意思是“在 1 Hz 带宽内的等效输入噪声功率”。带宽越宽,噪声越大。接收机前端噪声总功率可以用下面这个关系估算:
P_noise ≈ NEP × √B
其中 B 是接收带宽。如果你用 5 纳秒脉冲,接收带宽至少要 100 MHz 左右,否则脉冲会被“抹平”。但带宽 100 MHz 意味着噪声带得很宽,所以远距离测距时,前端带宽设计通常不是“越高越好”,而是刚好保住脉冲的主要频谱就够了。
一个低成本的雪崩光电二极管,NEP 可能在 0.1 pW/√Hz 量级。按带宽 50 MHz 算:
P_noise = 0.1 × √(50×10⁶) ≈ 0.707 pW
如果要求信噪比达到 8,那么最小可探测回波功率就是:
P_min ≈ 0.707 × 8 ≈ 5.7 pW
回到上一节的链路预算,1 公里外的 2 皮瓦回波显然低于这个门限。这就说明,单靠提高激光峰值功率来提升测程,效率其实很低,因为你动辄需要把功率提高好几倍才能多测几百米。
4.2 工程上常用的信噪比门限
为什么信噪比门限要选 8 而不是 2?因为探测问题不是一个“有信号/无信号”的二值问题,而是一个需要考虑统计概率的问题。噪声是随机起伏的,信号也可能因为目标姿态、大气湍流而起伏。如果信噪比太低,即使回波功率存在,单次探测也可能漏掉;如果阈值设得太低,虚警率又会上升,系统会经常报出“幽灵目标”。
在脉冲激光测距工程中,单次探测的目标信噪比通常做到 10 到 15 上下。对应噪声概率分布,这个区间能把单次探测概率做到 90% 以上,同时把虚警率压到可以接受的范围。如果只能做到 5 到 6,单次探测概率就会明显下降,这时候就要靠多次测量来补救。
4.3 多脉冲积累不是免费的午餐
很多人看到单次回波太弱,第一反应是“多打几次求平均”。这个思路是对的,但注意积累带来的增益不是没有成本的。M 次相同条件下的脉冲积累,理想情况下信噪比大约提高 √M 倍。测 100 次,信噪比最多提升 10 倍;测 10 次,只提升约 3.16 倍。
如果你把激光重复频率做到 20 kHz,测距一次积累 200 个脉冲,理论上可以换来约 14 dB 的信噪比提升,也就是让最小可探测功率下降约 5 倍。但代价是测量时间变成了 10 毫秒,对高速运动目标来说,目标很可能已经移动了一段距离,反而引起平均模糊。所以多脉冲积累在静态测绘场景里很好用,在车辆防撞这类高速动态场景里就必须谨慎设置积累窗口。
5. 大气衰减、背景辐射和视场匹配:室外测距最容易忽视的三个变量
5.1 大气透过率的 Beer-Lambert 估算
雷达方程里的大气透过率 T_atm 写得轻描淡写,实际却是室外测距最大的“隐形杀手”。大气的衰减包括吸收和散射两部分。吸收主要来自水汽、二氧化碳等分子,在 905 nm、1064 nm 和 1550 nm 这三个激光雷达常用波段表现不同;散射则主要来自大气分子和气溶胶,雾、霾、雨滴都会让激光束发生散射和衰减。
估算大气透过率最常用的方法是 Beer-Lambert 定律:
T_atm = exp(-α × R)
其中 α 是大气衰减系数,R 是单程距离。可见光气象能见度 V 和衰减系数之间有一个经验关系,工程上常在近红外波段做修正。我平时调试时会直接用以下经验量级来估算:
| 天气条件 | 近红外单程透过率(1 km 距离) |
|---|---|
| 晴朗干燥 | 0.8 到 0.9 |
| 轻霾 | 0.3 到 0.6 |
| 雾或重霾 | 0.05 到 0.2 |
| 暴雨 | 0.1 以下 |
注意,这个 T_atm 在雷达方程里是平方关系,因为激光要在大气中走一个来回。就算单程透过率是 0.7,双程也只有 0.49,链路预算直接少掉 3 dB;如果单程透过率是 0.1,双程就只有 0.01,也就是 20 dB 的损耗,再大的峰值功率也扛不住。所以很多激光雷达产品标称“晴天测程 200 米,雨天测程 50 米”,差距就是这么来的。
5.2 太阳光背景怎么压下去
白天户外测距时,太阳光经过目标漫反射后同样会进入接收机,而且它是连续光,会抬高探测器的工作点,增加散粒噪声。更麻烦的是,太阳光谱覆盖整个可见光和近红外波段,所以接收机前必须加窄带滤光片,让系统只对激光波长附近一小段光谱响应。
滤光片带宽是一个敏感的平衡点。带宽太窄,激光波长随温度漂移时可能漂出滤光片通带;带宽太宽,太阳背景光又压不住。常见的 905 nm 激光器滤光片带宽做到 10 到 30 nm,同时还要考虑入射角对中心波长的影响。
背景光功率和接收视场也是直接相关的。接收视场越大,看到的背景天空面积就越大,进入探测器的杂散光自然越多。很多人以为只要把窄带滤光片装上就万事大吉,实际上如果不限制接收视场,太阳背景光照样能把信噪比拖垮。正确的做法是:先通过光学设计把接收视场压到和激光光斑覆盖范围接近,再用窄带滤光片过滤光谱背景,两个维度一起约束。
5.3 光束发散角与接收视场的“配对”
当激光束发散角是 1 mrad,接收视场却设置成 10 mrad 时,接收机看到的范围远大于激光照亮的目标区域。这意味着探测器不仅接收目标回波,还把目标周围的岩石、树叶、地面等一切反射光都收进来了。这些“多余光”里有些是信号外背景,有些则是来自不同距离的干扰回波,会让测距结果出现随机跳动。
理想情况下,接收视场应该略微大于激光发散角,留一点装配和震动余量,但不要大太多。我建议做样机时把这个匹配误差控制在 1.2 倍以内。如果发散角本身非常大,比如 3 mrad,那你更要把接收视场严格设计成 3 到 4 mrad,否则系统白天性能衰减会非常明显。
6. 实测中的几个经典坑:理论方程不会告诉你的事
6.1 盲区比脉冲宽度还长
脉冲激光测距有一个天然缺陷:近距离盲区。激光发射脉冲并非瞬间结束,而是有一定的宽度,比如 10 纳秒。在这段时间里,发射脉冲的尾部和近距离目标的回波可能会在时间上重叠。接收机为了避免被强发射信号烧毁或者饱和,通常会在发射期间关闭或者屏蔽接收通道,这就导致目标太近时回波根本进不来。
盲区距离大致可以按 R_min = c × T_p / 2 估算。T_p 是脉冲宽度加上接收机恢复时间。一个 10 纳秒脉冲的盲区大约是 1.5 米;如果接收机需要 20 纳秒才能从饱和中恢复,盲区就会到 3 米左右。
我在做近距离工业传感器时,用户反馈“测 1 米内的物体时数值乱跳”,排查下来就是盲区问题。解决办法有几种:要么把脉冲宽度压缩,要么用单光子探测器配合极短死时间的读出电路,要么在系统架构上改用“发射完毕后快速开启接收”的时序控制,把恢复时间压到最小。盲区指标经常不在产品手册里突出写,但做近距离应用时它比测程还重要。
6.2 墙、棱镜和地角:多路径回波
雷达方程默认回波只来自目标一次反射,但实际上激光在复杂场景里可能经过玻璃、墙、金属边角多次反射后再回到探测器。比如你测一面墙后面的金属杆,激光先在墙上产生一个强反射,又有一部分透过窗户射到金属杆反射回来,最后两个回波在时间上错开,波形采样就能看到两个峰。
算法上遇到这种“多峰回波”,到底取哪个峰,取决于应用。无人驾驶激光雷达通常取“最后一个显著峰”,因为它更可能是真实路面或障碍物;工业测距有时需要取“第一个峰”,因为那是最近障碍物。做脉冲测距的人一定要意识到,雷达方程给出的是链路预算,而不是目标数量。多径场景只能靠波形分析和目标跟踪逻辑来解决,单靠提高发射功率没有意义。
6.3 激光安全等级和标定顺序
最后说一件容易被工程新人忽略的事:激光安全等级。脉冲激光测距的峰值功率动辄几十瓦,但平均功率可能只有毫瓦级,所以很多时候可以满足 Class 1 眼睛安全标准。问题在于,如果把光束发散角调得太小,单位面积上的能量密度会显著上升,安全等级可能直接跨档。905 nm 波长靠近红外,人眼看不见、瞳孔不会自然收缩,风险比可见光更高。
调试时我习惯的顺序是:先测发射光路发散角和光斑形状,再用功率计确认平均功率在安全范围内,最后才做户外目标测距实验。标定距离零点时,不要直接对着 10 米外的墙测一个值就写进固件,我建议用一段已知长度的光纤延迟线产生模拟回波,这样能排除大气和目标反射率带来的系统偏差。光纤延迟法也许不如实景测试直观,但它重复性好,能把电子学内部的固定延时单独标定出来,再回到真实场景里做二次修正。
我个人在实测中体会最深的一件事是:脉冲激光测距的精度瓶颈往往不在激光器,也不在探测器,而在“时间基准和触发逻辑”这条信号链上。雷达方程解决的是“回波够不够强”的问题,时间飞行链路解决的是“回波来了以后怎么卡住准确时刻”的问题。两个问题都要同时在线,系统才能既测得远,又测得准。