3、ToF深度测量原理:相位法测距、脉冲法测距、多径干扰与抑制、深度精度与分辨率

各位同学,今天我们聊点硬核的——ToF到底是怎么测出距离的?

很多人觉得ToF就是「发个光,等它回来,算个时间差」这么简单。嗯,原理上确实是这样。但实际工程里,光速是3×10⁸ m/s,你要测几米的距离,时间差只有纳秒级。怎么测?用什么方法测?测出来准不准?这才是我们要啃的硬骨头。

我个人习惯把ToF测距方法分成两大类:相位法脉冲法。这两种方法各有各的脾气,也各有各的坑。今天我们就一个一个掰开揉碎了讲。

3.1 相位法测距(间接ToF)

相位法,说白了就是「我不直接测时间,我测相位差」。你想想看,光速太快了,直接测时间需要皮秒级的计时器,成本高得吓人。那怎么办?我们换个思路:发射一束连续调制的光,比如正弦波。光打到物体上反射回来,波形会产生一个相位偏移。这个偏移量,就对应着距离。

公式很简单:

距离 d = (c × Δφ) / (4π × f_mod)

其中c是光速,Δφ是相位差,f_mod是调制频率。

这里有个关键点:相位差是周期性的,2π一个周期。所以相位法天然存在一个最大不模糊距离

d_max = c / (2 × f_mod)

举个例子,调制频率20MHz,最大不模糊距离就是7.5米。超过这个距离,相位就「绕圈」了,测出来的距离会出错。

重点记忆:相位法精度高,但测距范围受调制频率限制。频率越高,精度越高,但最大距离越短。这是一个典型的「鱼和熊掌」问题。

我在项目中遇到过一件事:有个客户说他们的ToF模组在10米外测距总是跳变。我一看配置,调制频率设成了30MHz。最大不模糊距离才5米,10米当然会出问题。后来把频率降到10MHz,问题就解决了。嗯,有时候问题不在硬件,在参数配置上。

3.2 脉冲法测距(直接ToF)

脉冲法就直白多了——我发一个短脉冲,等它回来,直接计时。这就像你对着山谷喊一声,听回声的时间。

但问题来了:光脉冲太快了。1纳秒光跑30厘米。要测厘米级精度,你需要皮秒级的时间分辨率。这可不是普通单片机能干的事。

所以脉冲法通常需要单光子雪崩二极管(SPAD)配合时间数字转换器(TDC)来实现。SPAD能检测到单个光子,TDC则负责精确计时。

// 伪代码示意:脉冲法测距流程
发射激光脉冲
启动TDC计时
等待SPAD检测到回波光子
停止TDC计时
距离 = (TDC计数值 × 时间分辨率 × 光速) / 2

脉冲法的优势:没有最大不模糊距离的限制,理论上可以测很远。苹果的LiDAR用的就是脉冲法,测距范围能到5米甚至更远。

脉冲法的劣势:容易受环境光干扰。大太阳底下,环境光光子可能比信号光还多,SPAD很容易被「淹没」。

我的经验:做脉冲法ToF,一定要加时间门控。只在预期的时间窗口内开启SPAD,其他时间关掉。这样能大幅抑制环境光干扰。我曾经在一个户外项目中,靠时间门控把信噪比提升了10倍以上。

3.3 多径干扰与抑制

这是ToF工程里最让人头疼的问题之一,没有「之一」。

什么叫多径干扰?简单说,就是光不只走一条路。比如你对着墙角测距,光可能直接打到墙上反射回来,也可能先打到地板再弹到墙上再回来。多条路径的光混在一起,传感器就「懵」了——到底该信哪条路?

结果就是:测出来的距离既不是近的那条路,也不是远的那条路,而是一个加权平均值。这在手势识别里是致命的——你的手明明在30cm处,系统可能报成35cm,因为桌面反射的光也进来了。

多径干扰的典型场景

  • 玻璃、镜子等强反射表面
  • 墙角、凹面等几何结构
  • 透明物体(光穿透后又在内部反射)

怎么抑制?我总结了几种方法:

  1. 多频率调制:用多个频率同时测量,不同频率对多径的敏感度不同,通过算法解算可以分离出主路径。
  2. 时间门控:只接收第一个到达的光脉冲,后面的统统丢掉。这能有效抑制远距离的多径。
  3. 机器学习:训练一个模型,输入原始相位数据,输出校正后的距离。我在一个项目中用过这个方法,效果出奇的好,但需要大量标定数据。

避坑指南:我曾经在一个智能家居项目中,把ToF传感器装在电视旁边。结果每次电视屏幕亮起,测距数据就乱跳。后来发现是屏幕的反射光造成了严重的多径干扰。解决方案是调整传感器的安装角度,让反射光尽量偏离接收视场角。

3.4 深度精度与分辨率

这两个概念经常被混淆,我简单区分一下:

  • 深度精度:测出来的距离和真实距离之间的误差。单位是毫米或厘米。
  • 深度分辨率:能区分的最小距离变化。比如你能测出1mm的变化,分辨率就是1mm。

精度和分辨率受哪些因素影响?我列个表:

因素 对精度的影响 对分辨率的影响
调制频率 频率越高,精度越高 频率越高,分辨率越高
积分时间 积分时间越长,精度越高(信噪比提升) 无直接影响
环境光 环境光越强,精度越差 环境光越强,分辨率越差
温度 温度漂移会导致精度下降 无直接影响
目标反射率 反射率越低,精度越差 反射率越低,分辨率越差

这里我想强调一点:精度和分辨率不是一回事。你可能有一个分辨率很高的传感器,能看出1mm的变化,但精度可能只有5mm。反过来也一样。做手势识别时,我更关心分辨率——因为我们需要的是「相对变化」,而不是「绝对距离」。

我的建议:选型时先看应用场景。如果是做手势识别,分辨率比精度重要。如果是做避障或测距,精度更重要。另外,别忘了温度补偿——很多ToF传感器在温度变化时会有明显的漂移。我习惯在量产前做全温标定,-20°C到60°C,每个温度点都记录偏移量,然后做查表补偿。

3.5 知识体系总览

为了让大家更直观地理解本章的知识结构,我画了一张图:

ToF深度测量原理知识体系 ToF深度测量 相位法测距 连续波调制 相位差解算 脉冲法测距 SPAD + TDC 时间门控 多径干扰与抑制 多频率调制 机器学习校正 深度精度与分辨率 精度:绝对误差 分辨率:最小变化 相位法精度高但范围受限 | 脉冲法范围大但易受干扰 | 多径抑制是工程难点

这张图把本章的核心内容串起来了。你可以看到,相位法和脉冲法是两种不同的测距思路,各有优劣。多径干扰是实际工程中绕不开的坎,而精度和分辨率则是我们评价系统性能的两个关键指标。

好了,这一章的内容就到这里。记住,理论是基础,但真正的功夫在工程实践中。下次你调试ToF数据的时候,不妨想想今天讲的这些原理——也许能帮你少走不少弯路。


专注资料整理