发明内容
本发明设计了一种基于SPAD阵列发光特性对其光子计数进行校正的方法,根据该校正方法恢复出实际入射到SPAD阵列的光脉冲信号。去除了由于噪声和信号较强时造成波形严重形变,减小了距离和反射率的误差,同时提高了SPAD接收信号的饱和阈值。
本发明提供一种用于单光子雪崩二极管阵列的光子计数校正方法,包括:
a:通过所述单光子雪崩二极管阵列接收入射光脉冲;
b:根据所述单光子雪崩二极管阵列的输出,获得所述入射光脉冲的光子计数;和
c:根据预设条件,校正所述入射光脉冲的光子计数。
根据本发明的一个方面,所述步骤c包括:基于所述单光子雪崩二极管阵列输出获得的光子计数,获取所述校正后的入射光脉冲的光子计数。
根据本发明的一个方面,还包括查询表,基于所述从单光子雪崩二极管阵列获得的光子计数和所述查询表来获取校正后的入射光脉冲的光子计数。
根据本发明的一个方面,所述步骤c包括:
基于当前时间段对应的校正后的前k个时间段内光子计数总和Xi和前一时间段对应的校正后的前k个时间段内光子计数总和Xi-1,获取校正后的入射光脉冲的光子计数,从而校正入射光脉冲的光子数。
根据本发明的一个方面,所述k等于所述单光子雪崩二极管的恢复时间除以所述时间段长度后取整。
本发明还提供一种激光雷达,包括:
发射单元,所述发射单元包括激光器阵列,配置成可发射探测光束以检测目标物;
接收单元,所述接收单元包括单光子雪崩二极管阵列,配置成接收所述探测光束在目标物上反射后的回波,并转换为电信号;
处理单元,所述处理单元与所述发射单元和接收单元耦接,并配置成可执行如上所述的光子计数校正方法来校正入射到单光子雪崩二极管阵列光脉冲的光子计数,并根据校正后的入射光脉冲的光子计数,计算所述目标物的距离和/或所述目标物的反射率。
根据本发明的一个方面,所述处理单元包括统计模块和控制模块,其中所述统计模块统计当前时间段内新增被触发的单光子雪崩二极管数量Ai以及当前时间段的前k个时间段内新增被触发的单光子雪崩二极管数量的累加和Sumi,所述k等于所述单光子雪崩二极管的恢复时间除以所述时间段长度后取整,控制模块获取所述Ai和Sumi,并根据所述Ai和Sumi得到校正后的入射光脉冲的光子计数,其中所述统计模块包括检测模块与SUM模块,所述检测模块用于检测在当前时间段内新增被触发的单光子雪崩二极管数量Ai,所述SUM模块用于计算当前时间段的前k个时间段内新增被触发的单光子雪崩二极管数量的累加和Sumi。
根据本发明的一个方面,控制模块包括运算模块和查询模块,其中基于所述Ai和Sumi,所述运算模块用于计算从单光子雪崩二极管阵列输出获得的光子计数,所述查询模块基于所述从单光子雪崩二极管阵列输出获得的光子计数和查询表来获取校正后的入射光脉冲的光子计数,和/或所述运算模块基于所述光子计数来计算校正后的入射光脉冲的光子计数。
根据本发明的一个方面,所述处理单元配置成根据校正后的光子计数,通过前沿法、重心法或插值滤波法计算回波到达时间。
本发明还提供一种激光雷达的探测方法,其中所述探测方法通过如上所述的激光雷达实施。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序代码,当被处理器执行时,所述计算机程序代码可使得所述处理器执行如上所述的光子计数校正方法。
通过该光子计数校正方法,对于噪声较强和信号较强的情况,能够较好的还原信号的形状,使得后续的测距和反射率算法可以充分利用还原后的信息,得到更准确的距离和反射率结果,提高以此为基础的激光雷达的探测能力。该光子计数校正方法在硬件上实现简单,计算量小,开销小,对芯片的功耗与面积要求低。可以更准确的还原入射的光脉冲信号,从而可以得到更精确的测距信息。如果器件特性发生变换,比如SPAD上有单光子雪崩二极管损坏,或者一些特殊效应,通过实际测试可以修改查找表参数实现相应匹配调整;也可以通过找到光脉冲信号后再开启补偿,这样可以降低电路的功耗。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
在本发明的描述中,需要理解的是,术语"中心"、"纵向"、"横向"、"长度"、"宽度"、"厚度"、"上"、"下"、"前"、"后"、"左"、"右"、"竖直"、"水平"、"顶"、"底"、"内"、"外"、"顺时针"、"逆时针"等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,"多个"的含义是两个或两个以上,除非另有明确具体的限定。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语"安装"、"相连"、"连接"应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接:可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之"上"或之"下"可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征"之上"、"上方"和"上面"包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征"之下"、"下方"和"下面"包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第二特征。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1示出了根据本发明一个实施例的用于单光子雪崩二极管阵列的光子计数校正方法10,下面参考附图详细描述。
步骤S11:通过所述单光子雪崩二极管阵列接收入射光脉冲。所述单光子雪崩二极管阵列包括多个单光子雪崩二极管,每个单光子雪崩二极管通常与一淬灭电阻连接使用;单光子雪崩二极管阵列的形状可以为正方形,其中单光子雪崩二极管阵列可以由10个*10个单光子雪崩二极管均匀排布成正方形,也可以由20个*20个单光子雪崩二极管均匀排布成正方形。当单光子雪崩二极管接收到入射的光子时,该单光子雪崩二极管将被触发,产生电流,并且通过淬灭电阻可以转换为电压,单光子雪崩二极管阵列可以通过单一数据线耦接至控制器,控制器对单光子雪崩二极管阵列进行信号采集和测量,具体地,控制器通过接收SPAD阵列的每个SPAD的各个光子检测信号并由此统计入射光子触发SPAD的数量,其中控制器以预定时间间隔(通常为1ns)周期性地统计单光子雪崩二极管阵列上被触发的SPAD的数量,即在每个预定时间间隔内将SPAD阵列的电压水平转换为SPAD的数量。统计单光子雪崩二极管阵列上被触发的SPAD的数量时可以统计单光子雪崩二极管的所述阵列中在预定时间间隔内检测到光子的单光子雪崩二极管的数量。也可以统计单光子雪崩二极管的所述阵列中在预定时间间隔内没有检测到光子的单光子雪崩二极管的数量,并且从单光子雪崩二极管的所述阵列中包括的单光子雪崩二极管的总数中减去单光子雪崩二极管的所述阵列中在预定时间间隔内没有检测到光子的单光子雪崩二极管的数量,从而可以得出单光子雪崩二极管的所述阵列中在预定时间间隔内检测到光子的单光子雪崩二极管的数量。
步骤S12:根据所述单光子雪崩二极管阵列的输出,获得所述入射光脉冲的光子计数。根据本发明的一个实施例,单光子雪崩二极管阵列的每个单光子雪崩二极管可以单独寻址,从而根据单光子雪崩二极管阵列的输出进行计数,用来获得入射光脉冲的光子计数。
步骤S13:根据预设条件,校正所述入射光脉冲的光子计数。如上所述,当一个单光子雪崩二极管接收到光子被触发后,会存在一定的恢复时间,在该恢复时间内,该单光子雪崩二极管对于入射的光子无法产生响应。因此在步骤S12获得的入射光脉冲的光子计数会小于实际入射的光子数。尤其是在接收信号较强或者处于较强噪声环境时,单光子雪崩二极管阵列内大部分单光子雪崩二极管会处于恢复状态,导致得到脉冲信号的形变严重,影响激光雷达的正常使用。本发明中,通过一定的预设条件,可校正入射光脉冲的光子计数,以获得更准确的光子计数,从而更精确地进行激光雷达对目标物的距离和反射率的计算,其中根据回波信号形状在采样时间内的分布情况可以通过重心法和插值滤波法来计算得出飞行时间(TOF)信息,也可以通过积分量计算反射率,当回波信号形状出现一定程度的形变时,会导致如果使用信号的形状信息进行距离和反射率的测量出现误差。
下面描述根据本发明一个优选实施例的校正方法。
单光子雪崩二极管的物理特性决定其在被光子触发后需要经历一段恢复时间后才能恢复对光子的探测能力。这决定了当噪声信号和探测信号较强时,单光子雪崩二极管阵列上会有较多的单光子雪崩二极管被触发并随后处于恢复状态,这样新入射的光子无法触发单光子雪崩二极管阵列中的单光子雪崩二极管并产生电流。对于短时间内入射的光子来说,无法触发单光子雪崩二极管的概率与当前已经被触发的单光子雪崩二极管数成正比,由此可以基于所述单光子雪崩二极管阵列输出获得的光子计数,获取所述校正后的入射光脉冲的光子计数,即短时间内实际到达的光子数x与单光子雪崩二极管阵列上被触发的单光子雪崩二极管数y(短时间内可认为是前一时刻已经接收光子后处于恢复时间的单光子雪崩二极管数目)的关系例如为:所述从单光子雪崩二极管阵列输出获得的光子计数具有与校正后的入射光脉冲的光子计数的指数函数成反比的函数关系,具体例如为:
(这里N
total为单光子雪崩二极管阵列上的单光子雪崩二极管总数)。上述关系的曲线如图2所示,其中横坐标为实际到达的光子数x,纵坐标为单光子雪崩二极管阵列上被触发的单光子雪崩二极管数y。
利用图2中的曲线关系,可以根据当前已经被触发的单光子雪崩二极管数得到实际入射到单光子雪崩二极管阵列上的光子数。当应用于激光雷达时,激光雷达的信号处理装置内部可以存储有相应的查询表,从而根据被触发的单光子雪崩二极管数y来查询所对应的实际到达的光子数x,其中该查询表是器件实际测试并统计得出,并能通过实际测试实时修改查找表参数。或者可替换的,信号处理装置中可以内置计算程序或者相应的硬件电路,用于通过被触发的单光子雪崩二极管数y计算得到所对应的实际到达的光子数x。
图3A、3B和3C示出了根据上述实施例进行校正的过程,是将原始光脉冲输入到由1000个单光子雪崩二极管组成的单光子雪崩二极管阵列模型内得到的结果,其中横坐标为时间轴,纵坐标为光子计数。图3A是光源实际发射光子的示意图。图3B是未利用本发明进行校正的情况下、根据单光子雪崩二极管阵列的输出得到的入射光子计数,其中入射光子计数由控制器统计单光子雪崩二极管阵列被触发的SPAD数量确定。图3C是利用本发明进行校正之后得到的入射光子计数。如图3B所示,入射光子实际触发得到的信号的后端部分会出现严重抑制,因而图3B的图像相对于图3A出现了非常严重的变形。根据回波信号形状在采样时间内的分布情况可以通过重心法和插值滤波法来计算得出飞行时间(TOF)信息,也可以通过积分量计算反射率,当回波信号形状出现一定程度的形变时,会导致如果使用信号的形状信息进行距离和反射率的测量出现误差,而如图3C所示,根据本发明实施例进行光子计数校正方法后,可以根据图2的曲线关系恢复出实际入射的光子数,可以观察到,通过光子计数校正方法得到的结果与原始脉冲形状基本一致,由此根据校正后的回波信号形状能更准确地计算得出的飞行时间(TOF)信息和反射率信息。
根据上述实施例来进行光子计数校正方法,需要知道每个时间段结束时已经被光子触发并处在恢复状态的单光子雪崩二极管总数Si以及该时间段内新增被触发的单光子雪崩二极管数Ai。借助它们可以使用光子计数校正方法得到该时间段内到达单光子雪崩二极管阵列的光子计数,也就是上面公式提到的y的估计值F(Si,Ai)=Si+Ai。
但是通过单光子雪崩二极管阵列无法直接测量得到Si的数值,而可以通过控制器根据SPAD阵列输出的光子检测信号来统计得到每个时间段内新增被触发的单光子雪崩二极管数Ai。因此基于当前时间段对应的校正后的前k个时间段内光子计数总和Xi和前一时间段对应的校正后的前k个时间段内光子计数总和Xi-1,来获取校正后的入射光脉冲的光子计数,从而校正入射光脉冲的光子数,根据本发明的一个实施例,可以使用第i时间段之前的k个时间段内新增光子计数的累加和Sumi来替代Si。其中Ai和Ai-1的时间间隔为一个采样时间,例如1ns;整个区间Ai到Ai-k长度为单光子雪崩二极管的恢复时间。对于具体的单光子雪崩二极管,恢复时间可以提前设置,例如10ns。流程如图4所示。根据本发明的一个实施例,所述k等于所述单光子雪崩二极管的恢复时间除以所述采样时间长度后取整。
如图4所示,对于第i个时间段,获得在该时间段新增被触发的单光子雪崩二极管数Ai,同时计算在之前k个时间段内被触发的单光子雪崩二极管数Ai-1、Ai-2、…、Ai-k,将其进行累加得到Sumi,然后利用Ai与Sumi,通过上述光子计数校正方法的公式,来校正入射光脉冲的光子计数。下面给出一个具体的计算实例。
在第i-1个时间段结束时(第i时间段之前),已经被光子触发并处在恢复状态的单光子雪崩二极管总数S
i通过以下公式计算:
在第i个时间段结束时,已经被光子触发并处在恢复状态的单光子雪崩二极管总数为S
i+A
i,通过以下公式计算:
其中X
i-1+x=X
i。
根据所述Xi和Xi-1,校正入射光脉冲的光子数。
这里Ai表示当前时间段新增被触发的单光子雪崩二极管总数;Xi表示当前时间对应的校正后的前k个时间段内入射光子数总和,而Xi-1是前一时间对应的校正后的前k个时间段内入射光子数总和,由于信号强度比噪声大得多,且脉宽小于恢复时间,故而可以用Xi-Xi-1认为是当前时间段内入射的光子计数x。
可以利用上述公式的反函数来进行恢复,具体如下:
Xi-1=Ntotal*ln(Ntotal/(Ntotal-Si))
Xi=Ntotal*ln(Ntotal/(Ntotal-(Si+Ai)))
x=Xi-Xi-1=Ntotal*((Ntotal-Si)/(Ntotal-(Si+Ai)))
其中x就是校正后的当前时段内实际入射到单光子雪崩二极管阵列上光子计数。
图5示出了根据本发明一个实施例的激光雷达20。如图5所示,激光雷达20包括发射单元21、接收单元22以及处理单元23。其中发射单元21包括激光器阵列,激光器阵列配置成可发出探测激光束用以探测目标物OB。激光束遇到目标物OB后发生漫反射,部分反射回波返回到激光雷达并且被接收单元22接收。接收单元22如前文所示,包括单光子雪崩二极管SPAD的阵列,可接收激光束经探测目标物OB反射回来的回波并转换为数字信号输出。虽然未示出,但本领域技术人员容易理解,所述发射单元21还可包括发射透镜组,位于激光器阵列的光路下游,用于将激光器阵列出射的激光束准直成平行光并出射到激光雷达20周围的环境空间中。同样的,所述接收单元22也可包括接收透镜组,所述单光子雪崩二极管位于其焦平面上,用于将出射激光束经探测目标物OB反射的回波会聚到单光子雪崩二极管上。如图所示,发射单元21发射的激光束L1投射在目标物OB上,发生漫反射,一部分激光束则被反射回来形成回波L1′。所述接收单元22接收反射回来的回波L1′,并将其转换为电信号。处理单元23与所述发射单元21和接收单元22耦接,并配置成可执行如上所述的光子计数校正方法以计算所述单光子雪崩二极管阵列接收到的光子计数,并根据校正后的光子计数,计算所述目标物的距离和/或所述目标物的反射率。
根据本发明的一个实施例,所述处理单元配置成根据校正后的光子计数计算回波脉冲的到达时间。通过光子计数校正方法,恢复了波形形状后再借助前沿法,重心法,或者插值滤波法得到更精确的回波脉冲的到达时间,其中前沿法是利用脉冲波形的上升沿超过预设阈值的时间作为脉冲到达时间;重心法是利用离散信号中各信号的时间和幅度乘积之和与各信号的幅度之和的比值作为脉冲到达时间;插值滤波法是利用当前脉冲信号与预设的多种信号模型比较获取最匹配的信号模型来确定脉冲到达时间。
图6示出了根据本发明一个优选实施例的处理单元23的逻辑结构。如图6所示,处理单元23与接收单元22耦接,并从接收单元22接收各个单光子雪崩二极管SPAD输出的电信号。处理单元23可包括统计模块231和控制模块232,其中统计模块231可包括检测模块与SUM模块。检测模块用于检测在当前时间段内新增被触发的单光子雪崩二极管数Ai,SUM模块用于使用当前时间段之前的k个时间段内新增光子数的累加和得到Si。控制模块接收Ai和Si。控制模块232可包括运算模块和查询模块。其中运算模块可以基于Ai和Si计算单光子雪崩二极管阵列上被触发的单光子雪崩二极管数y,该单光子雪崩二极管数y可以用于查询模块通过查询表获取当前时段实际入射到单光子雪崩二极管阵列上光子计数x,该查询表是器件实测得到,也可以用于通过运算模块进一步计算光子计数x(计算公式是理想计算模型,例如上文所述的计算公式)。另外,运算模块还可以基于光子计数x来计算目标物的距离和反射率。
图7示出了根据本发明一个实施例激光雷达20的探测方法30。
其中步骤S31,发射一组探测光脉冲,单光子雪崩二极管阵列接收回波信号。
步骤S32,判断是否接收到对应的回波信号。如果接收到对应的回波信号,则进行到步骤S33,否则返回到步骤S31。根据本发明的一个实施例,探测光脉冲进行了时间编码和/或幅值编码。接收到回波信号以后,可以通过回波信号的时间和/或幅值,来判断回波信号是否对应于发射脉冲,从而减少激光雷达的串扰。
步骤S33,获得当前时间段被触发的单光子雪崩二极管数Ai,同时计算在之前k个时间段内被触发的单光子雪崩二极管数Ai-1、Ai-2、…、Ai-k,将其进行累加。
步骤S34,使用上述光子计数校正方法方法得到恢复信号,包括当前时间段内入射光脉冲的光子计数。
步骤S35,使用恢复信号进行距离计算,例如使用前沿法、重心法,插值滤波法等计算;其中前沿法是利用脉冲波形的上升沿超过预设阈值的时间作为脉冲到达时间;重心法是利用离散信号中各信号的时间和幅度乘积之和与各信号的幅度之和的比值作为脉冲到达时间;插值滤波法是利用当前脉冲信号与预设的多种信号模型比较获取最匹配的信号模型来确定脉冲到达时间。
步骤S36,使用恢复信号进行反射率计算,例如使用信号峰值或者积分量计算。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序代码,当被处理器执行时,所述计算机程序代码可使得所述处理器执行如上所述的光子计数校正方法。
通过光子计数校正方法,可以恢复出更加准确的回波信号形状信息,从而使用这些回波信号形状信息计算出更准确的距离信息。同样可以得到更精确的回波信号强度值,使用该回波信号强度值,可以计算出更准确的反射率信息。
现有的单光子雪崩二极管阵列中,当接收到光脉冲的时候,阵列中部分单光子雪崩二极管因为接收光子而被触发,但是因为可能信号过强,会有较多的单光子雪崩二极管被触发并随后处于恢复状态,这样新入射的光子有较大概率无法触发单光子雪崩二极管阵列上的单光子雪崩二极管发光。本发明通过以下方式解决了这个问题:无法触发单光子雪崩二极管发光的概率与当前已经被触发的单光子雪崩二极管数成正比,短时间内实际到达的光子数x与被触发的单光子雪崩二极管数y之间具有一定关系,通过预设的关系来进行校正。每次信号接收时,可以获得当次被触发的单光子雪崩二极管数y,则实际到达的光子数x可以通过预设关系得到。被触发的单光子雪崩二极管个数输出的波形图就是失真的,根据计算的实际到达的光子数进行校正,则可以对失真波形进行恢复。
通过该光子计数校正方法,对于噪声较强和信号较强的情况,能够较好的还原信号的形状,使得后续的测距和反射率算法可以充分利用还原后的信息,得到更准确的距离和反射率结果,提高以此为基础的激光雷达的探测能力。该光子计数校正方法在硬件上实现简单,计算量小,开销小,对芯片的功耗与面积要求低。可以更准确的还原入射的光脉冲信号,从而可以得到更精确的测距信息。如果器件特性发生变换,比如SPAD阵列上有单光子雪崩二极管损坏,或者一些特殊效应,通过实际测试可以修改查找表参数实现相应匹配调整;也可以通过找到光脉冲信号后再开启补偿,这样可以降低电路的功耗。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。