聊聊激光雷达原理之dTOF —— SPAD/SiPM篇

聊聊激光雷达原理之dTOF —— SPAD/SiPM篇

前言

对于dTOF来说,其实应该先从APD讲起(因为现在大多数dTOF激光雷达都是APD的),但因为笔者是SPAD的从业者,所以出于私心和方便来说就从SPAD讲起吧(SiPM相当于SPAD的阵列,就放在这里一起说了)。

什么是dTOF

dTOF(Direct Time of Flight),直译即是直接飞行时间,通过光束发射和接收的时间差来计算光的飞行时间,从而计算距离。
( t 回 波 时 间 − t 发 射 时 间 ) × c / 2 (t_{回波时间}-t_{发射时间})\times c/2 (tt)×c/2
原理是不是比起iTOF来简单很多,dTOF的激光雷达随sensor的不同大体分两类,APD和SPAD,二者自身的原理有所不同,本文就主要讲讲SPAD的。

SPAD

工作原理

SPAD(Single photon avalanche diodes)单光子雪崩二极管,当工作电压高于VBD(雪崩击穿电压)的时候,工作在盖革模式下,具体器件原理就不展开讲了, 可以简单的理解为当光子来临的时候,触发了SPAD的雪崩效应(avalanche):由于SPAD内部高反偏电场,光子转换产生的少量电子使SPAD产生雪崩状态,此时光电转换增益理论为无穷大,产生一个可以被TDC捕捉的数字信号,此时就被记为一个光子到来了,雪崩后spad无法自己快速回到初始状态,需要淬灭(quench)电路的帮助:由雪崩后产生大量电流流过淬灭电路,SPAD两端的偏压低于击穿电压,抑制了雪崩电流,使得SPAD电流关闭,随后通过对SPAD通电,回到初始状态。从雪崩到回到初始状态所需的时间,被称为死区时间(dead time),死区时间通常可以通过淬灭电流来调整。

这里补充一点:虽然名为单光子计数,实际上单个光子不一定能触发雪崩,这取决于SPAD的PDE(Photon detection efficiencies)光子探测效率,但即便如此,SPAD对于光子的灵敏度也是很高的,远高于APD,所以SPAD的激光雷达的优势之一就是所需光源的功率会很小(这对人眼安全要求class one的应用来说往往是比较重要的)

TCSPC(Time-Correlated Single Photon Counting)

从SPAD的器件原理可以看出,单个SPAD 单元在同一时刻只能触发一次,所以激光雷达应用中的SPAD往往是阵列形式的,所以同一时刻或者说一个TDC的采样时间里可以有多个光子计数(当然这也和SPAD的死区时间和TDC的采样时间大小有关)。
有了这个前提,TCSPC(时间相关单光子计数技术) 就好理解了,听起来似乎很复杂,但其实和APD类似,只是把时间和强度的关系改为了时间和光子数的关系,下面找了张图来看看这个关系:
在这里插入图片描述
其实就是在一个大的采样周期内,将每个小的采样时间内SPAD触发的光子计数都叠加起来,就得到该采样时间的光子计数,于是就有了上述的图。
这个图可以拿来做什么呢?

  1. 寻峰:利用各种寻峰方式吧,获得超采样的波形峰值点对应的时间,可以获得飞行时间
  2. 获取相对回波光能量强度:更强的光能量能够触发更多的光子计数,在阈值范围内,可以通过峰值的高度来表征回波能量强度,当然这个强度是相对的,不与实际光能量一一对应。
  3. 获得相对环境光强度:可以从峰以外的光子计数均值来得到环境光的强度,当然,这个强度也是相对的。

细心的小伙伴们可以看到,这个波形是一个非对称的高斯波形,这种非对称的现象称为Pile-up:当回波能量越强时,这个波形就越向前(即时间短的方向)移。Pile-up现象会在一定程度下影响SPAD的测距精度,所以在不解决Pile-up问题的情况下,SPAD的测距的误差会与目标的远近/材质相关。

CD (Coincidence detection)

因为SPAD的灵敏度很高,当环境光/噪声很强的情况下,很容易会造成SPAD都被噪声占用使得信号来临时没有足够的未被占用的SPAD被触发,使得信号被噪声淹没。
所以就引入了CD,CD和dead time是SPAD抑制环境光噪声的两个手段(当然最有效的还是加IR Filter),CD的原理也很简单,SPAD阵列,如10*10,被分为了若干个组,如25个,那么,每4个spad分为了一个组,在规定的时间(coincidence time)内有这个组里有规定个数(coincidence depth)个脉冲被触发,那么才会认定这个脉冲是有效的,反之则会被忽略, 这里放个paper里的图:
在这里插入图片描述
所以可以看出,少量非均匀的环境噪声会被CD排除使得其信号不能被记录。

暂时能想到的就这些,之后再补充吧,有疑问也欢迎在评论区提。

激光雷达SPAD(单光子 avalanche探测器)是一种用于测量光子计数的传感器,其工作原理基于光电效应。电荷脉冲模型通常是模拟这种器件如何接收并处理单个光子事件的简化模型。这类代码通常涉及以下几个步骤: 1. **量子检测过程**:首先,模拟光子到达SPAD并被吸收,形成一个电子空穴对。 2. **雪崩倍增**:模型会描述这个初始电荷如何引发一个内部的电场,导致更多的电子-空穴对产生,形成脉冲信号。 3. **噪声处理**:包括随机噪声模型,如热噪声、暗电流等。 4. **时间响应**:记录每个事件的时间戳,并考虑到SPAD的动态响应时间。 5. **数据采集和积分**:模拟整个曝光期间的多次脉冲,计算累计的电荷信号。 由于这是物理模型的具体实现,代码可能会使用编程语言如Python(NumPy和SimPy),C++(OpenCV库),或是Matlab,它们都有相应的库支持信号处理和概率统计。 以下是简化的伪代码示例: ```python import numpy as np from scipy import stats class SPADModel: def __init__(self, gain, dark_rate, dead_time): self.gain = gain self.dark_rate = dark_rate self.dead_time = dead_time self.pulse_shape = ... # 形成脉冲的函数 def detect_photon(self): if np.random.rand() > self.dark_rate * self.dead_time: detected_pulse = self.pulse_shape() # 模拟雪崩倍增和时间处理 self.integrate_pulse(detected_pulse) def integrate_pulse(self, pulse): for t in pulse: # 累加到总信号 total_signal += pulse[t] * self.gain # 考虑死区时间 if t + self.dead_time < pulse.size: break # 使用实例 spad_model = SPADModel(...) for _ in range(exposure_duration): spad_model.detect_photon() signal integrates = spad_model.total_signal ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值