一种提高时间采样精度的方法及装置
技术领域
本发明涉及医疗设备技术领域,尤其涉及一种提高时间采样精度的方法及装置。
背景技术
在正电子发射型计算机断层显像(PET,Positron Emission ComputedTomography)系统中,注入体内的放射性核素所发射出的正电子在人体内移动大约lmm后将会与人体内的负电子结合发生湮灭辐射,正负电子湮灭时产生两个能量相同(511keV)但方向相反的γ光子。如图1所示为正电子湮灭过程示意图。
现有探测γ光子对的技术利用了正电子湮灭事件产生的γ光子对的两个特征:一是这两个γ光子基本沿着方向相反互成180度的直线方向飞行;二是它们都以光速向前传播,原则上这条直线上任一点发生的湮灭事件产生的γ光子对到达探测装置的时间差都是已知的,但事实上,由于物理上的测不准原理和仪器本身的测量误差的存在,致使来自同一湮灭时间的两个γ光子很难严格准确地探测到达探测器的时间差,一般存在一个时间间隔范围,该时间间隔范围称之为符合时间窗,该符合时间窗一般为几纳秒到几十纳秒之间。
其中,探测器探测到γ光子到达的过程称为单事件,只有检测到γ光子在符合时间窗之内到达探测器的单事件被称作符合事件,也就是说,这样的γ光子来自于同一个正电子湮灭事件。
因此,检测单事件发生时间的精度至关重要,例如,可以精确到几百皮秒,单事件发生时间的精度将影响到符合事件判定结果的准确性,进而影响到图像的重建质量。检测单事件发生时间存在一定误差,如果该误差大于时间窗的长度,则可能丢失符合事件,影响真符合事件数量,进而影响重建图像的质量。
发明内容
为了解决现有技术中存在的以上技术问题,本发明提供一种提高时间采样精度的方法及装置,能够提高单事件发生时间的采样精度,使得符合事件判定结果的准确性更高,进而提高图像的重建质量。
为此,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供了一种提高时间采样精度的方法,应用于探测器对PET系统的光子到达时间进行检测,所述方法应用于采集所述光子到达时间的现场可编程门阵列FPGA,所述FPGA包括多个逻辑阵列单元LAB,每个LAB包括多个级联在一起的进位链;
所述方法包括:
在单事件对应的触发信号到达时,将所述触发信号同时进入搭建的进位链的不同位置,所述不同位置涵盖所述LAB的跨区位置以及搭建的进位链的起始位置;
将所述触发信号在所述LAB的跨区位置对应的标定时间减去所述跨区位置的前一级进位链的时间作为所述触发信号在该跨区位置的实际标定时间TA;
获得所述触发信号在所述起始位置对应的标定时间TB;
获得TA和TB的平均值作为校准后的标定时间。
可选的,在单事件对应的触发信号到达之前,还包括:
预先根据所述LAB的跨区位置、粗计数器的精度和细计数器的精度搭建进位链;所述细计数器的精度为每级进位链的平均时延。
可选的,当所述LAB的跨区位置包括单个LAB内部相邻两组进位链之间的跨区和两个相邻LAB之间的跨区时,将所述触发信号同时进入搭建的进位链的不同位置,具体包括:
将所述触发信号同时进入搭建的进位链的起始位置、所述单个LAB内部相邻两组进位链之间的跨区位置和两个相邻LAB之间的跨区位置。
可选的,所述单个LAB内部相邻两组进位链之间的跨区位置,具体为:
在第二个粗计数器对应的LAB内部相邻两组进位链之间的跨区位置,第一个粗计数器对应的是所述起始位置所位于的粗计数器;所述搭建的进位链包括m个粗计数器,所述m与所述触发信号同时进入搭建的进位链的不同位置的个数相关;
所述两个相邻LAB之间的跨区位置,具体为:
在第三个粗计数器对应的两个相邻LAB之间的跨区位置。
可选的,所述两个相邻LAB之间的跨区位置,具体为:
在第二个粗计数器对应的两个相邻LAB之间的跨区位置;第一个粗计数器对应的是所述起始位置所位于的粗计数器;所述搭建的进位链包括m个粗计数器,所述m与所述触发信号同时进入搭建的进位链的不同位置的个数相关;
所述单个LAB内部相邻两组进位链之间的跨区位置,具体为:
在第三个粗计数器对应的LAB内部相邻两组进位链之间的跨区位置。
可选的,当所述LAB的跨区位置包括两个相邻LAB之间的跨区时,将所述触发信号同时进入搭建的进位链的不同位置,具体包括:
将所述触发信号同时进入搭建的进位链的起始位置和两个相邻LAB之间的跨区位置。
第二方面,本发明实施例提供了一种提高时间采样精度的装置,应用于探测器对PET系统的光子到达时间进行检测,所述装置应用于采集所述光子到达时间的现场可编程门阵列FPGA,所述FPGA包括多个逻辑阵列单元LAB,每个LAB包括多个级联在一起的进位链;
所述装置包括:
触发单元,用于在单事件对应的触发信号到达时,将所述触发信号同时进入搭建的进位链的不同位置,所述不同位置涵盖所述LAB的跨区位置以及搭建的进位链的起始位置;
计算单元,用于将所述触发信号在所述LAB的跨区位置对应的标定时间减去所述跨区位置的前一级进位链的时间作为所述触发信号在该跨区位置的实际标定时间TA;
获取单元,用于获得所述触发信号在所述起始位置对应的标定时间TB;
标定单元,用于获得TA和TB的平均值作为所述触发信号校准后的标定时间。
可选的,在单事件对应的触发信号到达之前,还包括:
搭建单元,用于预先根据所述LAB的跨区位置、粗计数器的精度和细计数器的精度搭建进位链;所述细计数器的精度为每级进位链的平均时延。
可选的,当所述LAB的跨区位置包括单个LAB内部相邻两组进位链之间的跨区和两个相邻LAB之间的跨区时,将所述触发信号同时进入搭建的进位链的不同位置,具体包括:
将所述触发信号同时进入搭建的进位链的起始位置、所述单个LAB内部相邻两组进位链之间的跨区位置和两个相邻LAB之间的跨区位置。
可选的,所述单个LAB内部相邻两组进位链之间的跨区位置,具体为:
在第二个粗计数器对应的LAB内部相邻两组进位链之间的跨区位置,第一个粗计数器对应的是所述起始位置所位于的粗计数器;所述搭建的进位链包括m个粗计数器,所述m与所述触发信号同时进入搭建的进位链的不同位置的个数相关;
所述两个相邻LAB之间的跨区位置,具体为:
在第三个粗计数器对应的两个相邻LAB之间的跨区位置。
可选的,当所述LAB的跨区位置包括两个相邻LAB之间的跨区时,将所述触发信号同时进入搭建的进位链的不同位置,具体包括:
将所述触发信号同时进入搭建的进位链的起始位置和两个相邻LAB之间的跨区位置。
与现有技术相比,本发明至少具有以下优点:
在单事件对应的触发信号到达时,将所述触发信号同时进入搭建的进位链的不同位置,所述不同位置涵盖LAB的跨区位置以及搭建的进位链的起始位置;将触发信号在所述LAB的跨区位置对应的标定时间减去所述跨区位置的前一级进位链的时间作为触发信号在该跨区位置的实际标定时间TA;并获得触发信号在起始位置对应的标定时间TB,获得TA和TB的平均值作为触发信号校准后的标定时间。
可见,本发明将跨区位置的时延考虑在内,通过取多个位置的标定时间的平均值作为单事件发生时间,降低跨区时延对单事件发生时间标定的影响,提高单事件发生时间的采样精度,使得符合事件判定结果的准确性更高,进而提高图像的重建质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的正电子湮灭过程示意图;
图2A为FPGA内部进位链的结构示意图;
图2B为时序仿真的进位链延时示意图;
图3为本发明实施例提供的一种提高时间采样精度的方法流程图;
图4为本发明实施例提供的搭建的进位链跨区位置示意图;
图5A为本发明实施例提供的另一种提高时间采样精度的方法流程图;
图5B为本发明实施例提供的再一种提高时间采样精度的方法流程图;
图6为本发明实施例提供的一种搭建的进位链结构示意图;
图7为本发明实施例提供的另一种搭建的进位链结构示意图;
图8为本发明实施例提供的校准前后测试对比示意图;
图9为本发明实施例提供的一种提高时间采样精度装置示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本发明提供的技术方案,下面先对本发明技术方案的背景技术进行简单说明。
发明人在研究中发现,目前比较常用的单事件时间标定的方法有两种,第一种为利用锁相环分频的标定方法,该方法是利用锁相环资源,通过调整相位延迟的方式输出多路时间对同一时间触发信号进行标定来提高时间标定精度的方法。然而,利用锁相环分频进行时间标定的方法,需要利用大量的现场可编程门阵列(Field-Programmable GateArray,FPGA)内部的锁相环资源,例如,采样时间为200MHz,对应时间精度为5ns,如果对5ns进行5分频,那么时间精度对应为1ns,采样时钟对应为1000MHz,此时需要5个锁相环资源。如果对5ns进行10分频,那么时间精度对应500ps,采样时钟对应2000MHz,此时需要10个锁相环资源,以此类推。通过以上分析得知,时间标定精度越高,利用的锁相环资源就越多,对FPGA器件自身选型及费用来说,难度越大,费用更高。
第二种为利用进位链进行标定的方法,该方法是利用FPGA器件最小固有走线延时的特性对单事件触发信号进行标定,时间精度的大小与FPGA自身器件等级有关。以Cyclone-II器件为例,图2A所示为FPGA内部进位链的结构示意图,图2B为时序仿真的进位链走线延时示意图,与图2A对比分析,从进位链的结构上看,同一个逻辑阵列单元(LogicArray Block,LAB)内进位链时延是线性的,但是在跨区的位置,时间延迟非常大,对时间标定结果会产生很大影响。而且,仅利用一次标定的结果作为触发信号到达的时间,影响单事件的判断的准确性。
发明人研究发现如果不考虑跨区存在的较大时延,将使得时间标定结果呈非线性,这对单事件发生时间的标定会产生很大影响,容易造成真符合事件丢失,影响真符合事件数量,进而影响图像重建质量。因此,本发明实施例在第二种标定方法的基础上提出在利用进位链标定单事件发生时间时,将跨区时延考虑在内,消除跨区时延带来的影响。
基于此,本发明实施例提供一种提高时间采样精度的方法,当单事件对应的触发信号到达时,将该触发信号进入搭建的进位链的不同位置,该位置包括LAB的跨区位置以及搭建的进位链的起始位置;分别获取不同位置的时间,将触发信号在LAB的跨区位置对应的标定时间减去跨区位置的前一级进位链的时间作为触发信号在该跨区位置的实际标定时间TA;再将触发信号在起始位置对应的标定时间TB和TA取平均值,将平均值作为触发信号校准后的标定时间,即为单事件发生的时间,通过多次标定取平均值,降低跨区时延对单事件发生时间标定的影响,提高单事件发生时间的采样精度,使得符合事件判定结果的准确性更高,进而提高图像的重建质量。
实施例一
下面结合图3对本发明示例性实施例示出的提高时间采样精度方法进行详细介绍。
参见图3,该图为本发明实施例提供的一种提高时间采样精度方法流程图。
本实施例提供的提高时间采样精度的方法,应用于探测器对PET系统的光子到达时间进行检测,该方法应用于采集所述光子到达时间的FPGA,所述FPGA包括多个LAB,每个LAB包括多个级联在一起的进位链,该方法可以包括以下步骤:
S301:在单事件对应的触发信号到达时,将所述触发信号同时进入搭建的进位链的不同位置,所述不同位置涵盖所述LAB的跨区位置以及搭建的进位链的起始位置。本实施例中,探测器用于探测一次正电子湮灭产生的两个光子,其中,将探测器探测到一个光子的事件,称为“单事件”,单事件的发生时间,就是光子被探测到的时间。光子被探测器探测到后可以产生触发信号,通常测量触发信号的时间作为单事件的发生时间,而触发信号的时间采集可以由FPGA执行。
在探测单事件发生时间时,可能会使用多个FPGA,具体可以根据应用场合和FPGA的类型决定。
需要说明的是,FPGA本身具有多种类型,不同结构类型的FPGA其包含的LAB的数量也不同,同时每个LAB所包括的进位链的数量也不同,不同类型的FPGA对应的进位链的平均时延也不同,实际应用时,可以根据时间的采样精度来选择FPGA的具体类型。例如,有的FPGA中只有相邻的两个LAB之间存在跨区,而单个LAB内部不存在跨区。但是有的FPGA中两个相邻LAB之间存在跨区,而且单个LAB内部也存在跨区。通常,两个相邻LAB之间存在的跨区对应的时延比单个LAB内部存在的跨区对应的时延大。因此,可以称两个相邻LAB之间存在的跨区为大跨区,单个LAB内部存在的跨区为小跨区。
为提高单事件发生时间采样精度,本实施例可以根据实际需要搭建进位链,当单事件对应的触发信号到达时,使得触发信号可以同时进入搭建的进位链的不同位置,该位置包括LAB的跨区位置以及搭建的进位链的起始位置。其中,LAB的跨区位置可以根据FPGA的类型有所区别,当FPGA包括大跨区和小跨区时,LAB的跨区位置包括大跨区和小跨区。当FPGA包括大跨区不包括小跨区时,LAB跨区位置也仅包括大跨区。
下面结合图4介绍FPGA包括大跨区和小跨区的实例,如图4所示搭建的进位链跨区位置示意图,在图4中,显示了两个跨区位置,第一个跨区位置为单个LAB内两组进位链之间的跨区;第二个跨区位置为相邻两个LAB之间的跨区。图4所示进位链中大跨区的时延为0.281ps,小跨区的时延为0.268ps,可见大跨区时延大于小跨区时延。
LAB跨区前后各相邻一级进位链。LAB跨区之前相邻的进位链称为LAB跨区前一级进位链,LAB跨区之后相邻的进位链称为LAB跨区后一级进位链。
其中,将所述触发信号进入LAB的跨区位置是指进入LAB跨区前一级进位链的位置。
S302:将所述触发信号在所述LAB的跨区位置对应的标定时间减去所述跨区位置的前一级进位链的时间作为所述触发信号在该跨区位置的实际标定时间TA。
本实施例中,考虑到跨区时延对单事件发生时间的标定结果的影响,将触发信号进入LAB的跨区位置,并获取触发信号在该跨区位置对应的标定时间,为考虑跨区时延的影响,将触发信号在该跨区位置对应的标定时间减去跨区位置的前一级进位链的时间,将计算的差值作为触发信号在该跨区位置触发信号标定时间。
比如,搭建的进位链中仅包括大跨区时,例如,触发信号进入LAB跨区位置为第17级进位链(对应进位链的第16位),第16级进位链(对应进位链的第15位)为进入跨区位置的前一级进位链,获取触发信号进入第17级进位链位置对应的标定时间T17,第16级进位链对应的时间t16,则触发信号在该跨区位置的实际标定时间T17’=T17-t16。其中,T17为触发信号进入第17级进位链位置时,获取的单事件发生时间的标定结果,该时间涵盖触发信号在跨区的传输时间;t16为第16级进位链对应的时间,与进位链的平均时延有关,比如,每级进位链的平均时延为t0,则t16=16*t0。
S303:获得所述触发信号在所述起始位置对应的标定时间TB。
需要说明的是,也可以先执行步骤S303获得触发信号在起始位置对应的标定时间TB,再执行步骤S302获得触发信号在跨区位置的实际标定时间TA,本实施例对步骤S302和步骤S303的执行顺序不进行任何限定。
S304:获得TA和TB的平均值作为校准后的标定时间。
通过步骤S302获取触发信号在跨区位置的实际标定时间TA,以及步骤303获取触发信号在起始位置的对应的标定时间TB,对两个时间求平均值,将平均值作为触发信号校准后的标定时间,即触发信号到达时间,也就是单事件发生的时间。如果LAB的跨区位置包括两个跨区位置,则为触发信号在两个跨区位置的实际标定时间和在起始位置的对应的标定时间求平均值,也就是说,触发信号在跨区位置的实际标定时间TA包括触发信号在小跨区位置的实际标定时间TA1和触发信号在大跨区位置的实际标定时间TA2;如果跨区位置仅为一个大跨区位置,则为触发信号在大跨区位置的实际标定时间和在起始位置对应的标定时间求平均值。
比如,搭建的进位链仅包括大跨区,触发信号在搭建的进位链起始位置对应的标定时间为TB,触发信号在LAB的跨区位置对应的实际标定时间为T17’,则触发信号校准后的标定时间tb=(TB+T17’)/2。
通过本发明实施例提供的方法,当单事件对应的触发信号到达时,将该触发信号进入搭建的进位链的不同位置,该位置包括LAB的跨区位置以及搭建的进位链的起始位置;分别获取不同位置对应的标定时间,将触发信号在LAB的跨区位置对应的标定时间减去跨区位置的前一级进位链的时间作为触发信号在该跨区位置的实际标定时间TA;再将触发信号在起始位置对应的标定时间TB和TA取平均值,将平均值作为触发信号校准后的标定时间,即为单事件发生的时间,通过取多个位置的标定时间的平均值作为单事件的发生时间,降低跨区时延对单事件发生时间标定的影响,提高单事件发生时间的采样精度,使得符合事件判定结果的准确性更高,进而提高图像的重建质量。
在搭建进位链时,需要考虑所使用FPGA的类型,不同类型的FPGA对应的LAB的跨区不同,则对应搭建的进位链也不同。具体搭建进位链时,还需要根据粗计数器的精度以及细计数器的精度计算一个粗计数器包括的进位链级数,并根据LAB的跨区位置包括的跨区数确定粗计数器的数量。即,粗计数器的个数m与跨区的个数相关。
本发明实施实例中以不同类型的FPGA为例,详细介绍进位链的搭建,其中,一种是利用仅包括大跨区的FPGA搭建进位链,另一种是利用包括大跨区和小跨区的FPGA搭建进位链,下面结合实施例二解释说明利用仅包括大跨区的FPGA搭建的进位链。
实施例二
参见图5A,该图为本发明实施例提供的另一种提高时间采样精度方法流程图。
本实施例提供的方法可以包括以下步骤:
S501:预先根据所述LAB的跨区位置、粗计数器的精度和细计数器的精度搭建进位链;所述细计数器的精度为每级进位链的平均时延。
一般以整数个粗计数器来搭建进位链。
本实施例中,LAB的跨区仅包括大跨区,为了提高采样的准确性,可以将两个不同位置分散在不同的粗计数器中,则对应的粗计数器m至少为2(起始位置对应一个粗计数器,大跨区对应一个粗计数器)。
S502:将所述触发信号同时进入搭建的进位链的起始位置和两个相邻LAB之间的跨区位置。
其中,两个相邻LAB之间的跨区位置,具体为:在第二个粗计数器对应的两个相邻LAB之间的跨区位置,第一个粗计数器对应的是所述起始位置所位于的粗计数器。
为便于理解根据LAB的跨区位置、粗计算器的精度和细计数器的精度搭建进位链,下面将结合某类型FPGA为例进行介绍。
某类型FPGA:仅包括大跨区。
该类型FPGA中一个LAB包括20级进位链,该类型FPGA的LAB的跨区位置仅包括大跨区。比如,粗计数器的精度为5ns,进位链的平均时延为85ps,即细计数器的精度为85ps,则一个粗计数器对应59级(5ns/85ps约等于59)进位链,因此一个粗计数器对应三个LAB,由于该类型FPGA仅包括大跨区,因此一个粗计数器中仅包括大跨区。可见,利用该类型FPGA搭建的进位链标定触发信号到达时间时,可以将触发信号同时进入两个不同的位置,分别为:起始位置以及大跨区。
为了提高采样的准确性,可以将两个不同位置分散在不同的粗计数器中,即针对以上类型的FPGA搭建的进位链需要至少包括两个粗计数器,即至少118级进位链。
为了便于理解,参见图6所示搭建的进位链结构示意图,在图6中对应两个粗计数器,每个粗计数器对应三个LAB,触发信号进入的第一个位置为搭建的进位链的起始位置,即第一个粗计数器中第0位。第二个位置为两个相邻LAB之间的跨区位置,由于第二个粗计数器中对应三个LAB,存在两个大跨区,因此,第二个位置可以为第一个LAB与第二个LAB之间的大跨区位置,也可以为第二个LAB与第三个LAB之间的大跨区位置。为避免第一个位置与第二个位置较近时影响采样精度,优选地,将第二个位置设置为第二个粗计数器中第二个LAB与第三个LAB之间的大跨区位置,由于该大跨区位置位于搭建的进位链位于第99位与第100位之间,因此,第二个位置为搭建的进位链第99位。
本实施例中,触发信号同时进入两个不同位置,即搭建的进位链的起始位置以及大跨区位置,并采集两个不同位置的时间,执行步骤S503。
S503:将所述触发信号在两个相邻LAB之间跨区位置对应的标定时间减去该跨区位置的前一级进位链的时间作为触发信号在该跨区位置的实际标定时间TA。
采集进入大跨区位置对应的标定时间以及大跨区位置的前一级进位链的时间,将二者做差,以便消除大跨区时延对大跨区位置标定时间的影响。
以图6为例进行说明,两个相邻LAB之间的跨区位置为搭建的进位链第99位(对应进位链的第100级)的位置,第98位(对应进位链的第99级)为触发信号进入跨区位置的前一级进位链,获取触发信号进入第100级进位链位置对应的标定时间T100,由于第99级进位链对应的时间为t99,则触发信号在跨区位置的实际标定时间T100’=T100-t99。其中,T100为触发信号进入第100级进位链位置时,获取的单事件发生时间的标定结果,该时间涵盖触发信号在大跨区的传输时间;t99与每级进位链的平均时延有关,每级进位链的平均时延为t1,则t99=99*t1。
需要说明的是,由于不同类型的FPGA对应进位链的平均时延不同,如果实施例一和实施例二选用不同类型的FPGA,则t0和t1不相等;如果选用同类型的FPGA,则t0和t1相等。
S504:获得触发信号在起始位置对应的标定时间TB和在两个相邻LAB跨区位置的实际标定时间TA的平均值作为触发信号校准后的标定时间。
获得多个位置的标定时间,并将TA和TB的平均值作为触发信号校准后的标定时间,从而提高单事件发生时间标定的准确性。
将获得触发信号在两个位置的标定时间求平均值,比如,触发信号在起始位置对应的标定时间为TB,则触发信号校准后的标定时间tb=(TB+T100’)/2。
通过本实施例提供的时间采样精度的方法,可以根据LAB的跨区位置、粗计数器的精度以及细计数器的精度搭建进位链,并根据LAB的跨区位置的数量,确定粗计数器的数量,当LAB的跨区仅包括大跨区时,则搭建的进位链至少对应两个粗计数器,以便在不同的粗计数器设定跨区位置,即将跨区时延考虑在内,通过取触发信号在多个不同位置的标定时间的平均值作为校准后的标定时间,从而消除跨区时延对单事件发生时间标定的影响,从而提高单事件发生时间标定精度,有助于提高判断真符合事件的准确定,进而提高图像重建的质量。
上述实施例介绍了当LAB跨区仅包括大跨区时,进位链的搭建和利用搭建的进位链对单事件发生的时间进行标定,下面结合实施例三介绍当LAB跨区包括大跨区和小跨区时,进位链的搭建和利用搭建的进位链对单事件发生时间的标定。
实施例三
参见图5B,该图为本发明实施例提供的再一种提高时间采样精度的方法流程图。
本实施例提供的方法可以包括以下步骤:
本实施例中S601与实施例二中S501相同,在此不再赘述。
S602:将所述触发信号同时进入搭建的进位链的起始位置、所述单个LAB内部相邻两组进位链之间的跨区位置和两个相邻LAB之间的跨区位置。
其中,单个LAB内部相邻两组进位链之间的跨区位置,具体为:在第二个粗计数器对应的LAB内部相邻两组进位链之间的跨区位置,第一个粗计数器对应的是所述起始位置所位于的粗计数器;所述搭建的进位链包括m个粗计数器,所述m与所述触发信号同时进入搭建的进位链的不同位置的个数相关。
两个相邻LAB之间的跨区位置,具体为:在第三个粗计数器对应的两个相邻LAB之间的跨区位置。
本实施例中,LAB的跨区包括大跨区和小跨区,为了提高采样的准确性,可以将三个不同位置分散在不同的粗计数器中,对应的粗计数器m至少为3(起始位置对应一个粗计数器,小跨区对应一个粗计数器,大跨区对应一个粗计数器)
为便于理解根据LAB的跨区位置、粗计算器的精度和细计数器的精度搭建进位链,下面将结合某类型FPGA为例进行介绍。
某类型FPGA:既包括大跨区又包括小跨区。
该类型FPGA中一个LAB包括16级进位链,一个LAB中8级进位链为一组,每两组进位链之间存在一个小跨区,即一个LAB中存在一个小跨区。两个相邻LAB之间存在一个大跨区。
比如,粗计数器的精度为5ns,进位链的平均时延为170ps,即细计数器的精度为170ps,则一个粗计数器对应30级(5ns/170ps约等于30)进位链,因此,一个粗计数器需要对应两个LAB(2*16=32级)。由于该类型FPGA既包括大跨区又包括小跨区,因此利用该类型FPGA搭建的进位链标定触发信号到达时间时,可以将触发信号同时进入三个不同位置,分别为:起始位置、小跨区和大跨区。
为了避免三个不同位置较近时导致时间标定不准确的问题,提高采样的准确性,可以将三个不同位置分散在不同的粗计数器中,即针对以上类型的FPGA搭建的进位链需要至少对应三个粗计数器,即至少对应90级进位链。
为了便于理解,参见图7所示一种搭建的进位链结构示意图,图7中对应三个粗计数器,每个粗计数器对应两个LAB,触发信号进入的第一个位置为搭建的进位链的起始位置,即第一个粗计数器中第0位。第二个位置为单个LAB内部相邻两组进位链之间的小跨区位置,因为第二个粗计数器中,第一个LAB中存在小跨区,因此可以将第二个位置设置为第二个粗计数器的第一个LAB中小跨区所在的位置,由于该小跨区位于搭建的进位链的第39位与第40位之间,因此,第二个位置为搭建的进位链第39位。第三个位置为两个相邻LAB之间的大跨区位置,因为第三个粗计数器对应两个LAB,存在一个大跨区,因此可以将第三个位置设置为第三个粗计数器中大跨区所在的位置,由于该大跨区位于搭建的进位链的第79位与第80位之间,因此,第三个位置为搭建的进位链第79位。
为了使本领域技术人员能够充分理解本发明实施例,下面以Cyclone-II器件为例对本发明的技术方案进行介绍。
首先介绍Cyclone-II器件进位链的结构,在该器件中一个LAB单元对应了16级进位链,每连续8级进位链为一组,中间有一个小跨区,每两个LAB之间有一个大跨区,正是由于跨区的存在会对进位链的标定结果产生非线性的影响,下面对实现方案进行说明。
假设一个时间片的时间长度是200ns,粗计数器的采样时钟为200MHz,对应时间精度为5ns,细计数器的时间精度对应进位链的平均时延,假设每级进位链平均时延为170ps,那么一个粗计数器对应30级进位链。在30级进位链中存在着LAB内的小跨区以及连接两个LAB的大跨区两个跨区,为了弥补这两个跨区对时间标定的影响,本实施例采用针对一个时间触发三次标定的方法对时间标定的结果进行校准。
首先,搭建一条128级的进位链取代一个粗计数器对应的30级进位链,目的是保证三次标定结果都有足够的准确。因为针对一个粗计数器一次标定结果至少需要30级进位链长度,那么三次标定至少需要90级以上进位链长度,为保证搭建的进位链至少包括一个小跨区和一个大跨区,则在90级进位链的基础上增加一组进位链,即8级进位链;再增加一个LAB,即16级进位链,也就是说,至少需要114级进位链,由于一个LAB对应16级进位链,搭建进位链时需要整数个LAB,因此需要8个LAB进行进位链的搭建,8个LAB对应128级进位链。
其次,将单事件对应的触发信号分别放置在第0位(对应第1级进位链)、第39位(对应第40级进位链)和第79位(对应第80级进位链),而这3个位置所对应的正好是起始位置、进入小跨区的位置和进入大跨区的位置,并从上述不同的位置获取3个时间,分别为:TB、T40和T80。其中,TB为触发信号在起始位置对应的标定时间,T40为跨小跨区对应的标定时间,T80为跨大跨区对应的标定时间。
再次,由于小跨区和大跨区对应的起始位置已知,将触发信号在小跨区位置对应的标定时间T40减去第39级进位链对应的时间t39,得到触发信号在小跨区位置的实际标定时间T40’;将触发信号在大跨区位置对应的标定时间T80减去第79级进位链对应的时间t79,得到触发信号在大跨区位置的实际标定时间T80’。由于每级进位链的平均时延为170ps,则t39=39*170ps;t79=79*170ps。
最后,将触发信号在起始位置对应的标定时间TB、小跨区位置的实际标定时间T40’以及大跨区位置的实际标定时间T80’进行加和求平均,将平均值作为触发信号校准后的标定时间,即单事件发生时间。
本实施例中,触发信号同时进入三个不同位置,并采集触发信号所进入搭建的进位链的起始位置时间、单个LAB内部相邻两组进位链之间的跨区位置时间以及两个相邻LAB之间跨区位置时间,即采集三个不同位置的时间,再执行步骤S603。
S603:将触发信号在单个LAB内部相邻两组进位链之间跨区位置对应的标定时间减去跨区位置的前一级进位链的时间作为触发信号在该跨区位置的实际标定时间;触发信号在两个相邻LAB之间跨区位置对应的标定时间减去该跨区位置的前一级进位链的时间作为触发信号在该跨区位置的实际标定时间。
采集小跨区位置对应的标定时间以及小跨区位置的前一级进位链的时间,将二者做差,以便考虑小跨区时延对触发信号在小跨区位置实际标定时间的影响;采集大跨区位置对应的标定时间以及大跨区位置的前一级进位链的时间,二者做差计算,以便考虑大跨区时延对触发信号在大跨区位置实际标定时间的影响。
以图7为例进行说明,单个LAB内部相邻两组进位链之间跨区位置为搭建的进位链第39位(对应第40级进位链)的位置,第38位(对应第39级进位链)为小跨区位置的前一级进位链;两个相邻LAB之间的跨区位置为搭建的进位链第79位(对应第80级进位链)的位置,第78位(对应第79级进位链)为大跨区位置的前一级进位链。获取触发信号进入第40级进位链位置对应的标定时间T40,第39级进位链对应的时间为t39,则触发信号在小跨区位置的实际标定时间T40’=T40-t39;获取触发信号进入第80级进位链位置对应的标定时间T80,第79级进位链对应的时间为t79,则触发信号在大跨区位置的实际标定时间为T80’=T80-t79。其中,T40为触发信号进入第40级进位链位置时,获取的单事件发生时间的标定结果,该时间涵盖触发信号在小跨区的传输时间,T80为触发信号进入第80级进位链位置时,获取的单事件发生时间的标定结果,该时间涵盖触发信号在大跨区的传输时间,t39和t79均与每级进位链的平均时延有关,每级进位链的平均时延为t2,则t39=39*t2、t79=79*t2。
需要说明的是,不同类型的FPGA对应的进位链的平均时延也不同,因此,在具体计算进位链对应的时间时,需要考虑所选用FPGA的类型。如果实施例一、实施例二和本实施例所选用的FPGA类型相同,则t0、t1和t2相等;如果三个实施例选用的FPGA类型各不相同,则t0、t1和t2均不相等。
S604:获得触发信号在起始位置对应的标定时间、单个LAB跨区位置的实际标定时间以及两个相邻LAB跨区位置的实际标定时间的平均值作为触发信号校准后的标定时间。
将获得的触发信号在起始位置对应的标定时间、小跨区位置的实际标定时间以及大跨区位置的实际标定时间求平均,将得到的平均值作为触发信号校准后的标定时间,从而提高单事件发生时间标定的准确性。
将获得的三个位置的标定时间求平均值,比如,触发信号在起始位置对应的标定时间为TB,则触发信号校准后的标定时间tb=(TB+T80’+T40’)/3。
以上实施例介绍的是以起始位置、小跨区和大跨区的顺序为例进行介绍,当然也可以起始位置、大跨区和小跨区的顺序为例获得触发信号对应的三个位置。即
所述两个相邻LAB之间的跨区位置,具体为:
在第二个粗计数器对应的两个相邻LAB之间的跨区位置;第一个粗计数器对应的是所述起始位置所位于的粗计数器;所述搭建的进位链包括m个粗计数器,所述m与所述触发信号同时进入搭建的进位链的不同位置的个数相关;
所述单个LAB内部相邻两组进位链之间的跨区位置,具体为:
在第三个粗计数器对应的LAB内部相邻两组进位链之间的跨区位置。
获得三个位置的标定时间的方法与以上实施例类似,在此不再赘述。
为体现本实施例提供时间标定方法的线性效果,参见图8所示校准前后测试对比结果示意图,图8中,A表示未考虑跨区时延的标定结果曲线,B表示考虑跨区时延的标定结果曲线,从图中能够看出,曲线B较曲线A的线性度更好,也就是说,考虑跨区时延对标定结果的影响,经过校准后的单事件发生时间标定结果较校准前的时间标定结果线性度更好。
通过本实施例提供的时间采样精度的方法,可以根据LAB的跨区位置、粗计数器的精度以及细计数器的精度搭建进位链,并根据LAB的跨区位置的数量,确定粗计数器的数量,当LAB的跨区包括大跨区和小跨区时,则搭建的进位链至少包括三个粗计数器,以便在不同的粗计数器设定跨区位置,即将跨区时延考虑在内,通过取多个不同位置的标定时间的平均值作为校准后的标定时间,从而消除跨区时延对单事件发生时间标定的影响,从而提高单事件发生时间标定精度,有助于提高判断真符合事件的准确定,进而提高图像重建的质量。
基于上述方法实施例提供的提高时间采样精度的方法,本发明还提供一种提高时间采样精度的装置,下面结合附图进行详细的介绍。
实施例三
参见图9,该图为本发明实施例提供的一种提高时间采样精度装置示意图。
该装置应用于探测器对PET系统的光子到达时间进行检测,该装置应用于采集所述光子到达时间的现场可编程门阵列FPGA,所述FPGA包括多个逻辑阵列单元LAB,每个LAB包括多个级联在一起的进位链。
本实施例提供的提高时间采样精度装置包括:
触发单元901,用于在单事件对应的触发信号到达时,将所述触发信号同时进入搭建的进位链的不同位置,所述不同位置涵盖所述LAB的跨区位置以及搭建的进位链的起始位置;
计算单元902,用于将所述触发信号在所述LAB的跨区位置对应的标定时间减去所述跨区位置的前一级进位链的时间作为所述触发信号在该跨区位置的实际标定时间TA;
获取单元903,用于获得所述触发信号在所述起始位置对应的标定时间TB;
标定单元904,用于获得TA和TB的平均值作为校准后的标定时间。
在一些实施方式中,所述在单事件对应的触发信号到达之前,所述装置还包括:
搭建单元,用于预先根据所述LAB的跨区位置、粗计数器的精度和细计数器的精度搭建进位链;所述细计数器的精度为每级进位链的平均时延。
在一些实施方式中,当所述LAB的跨区位置包括单个LAB内部相邻两组进位链之间的跨区和两个相邻LAB之间的跨区时,将所述触发信号同时进入搭建的进位链的不同位置,具体包括:
将所述触发信号同时进入搭建的进位链的起始位置、所述单个LAB内部相邻两组进位链之间的跨区位置和两个相邻LAB之间的跨区位置。
在一些实施方式中,所述单个LAB内部相邻两组进位链之间的跨区位置,具体为:
在第二个粗计数器对应的LAB内部相邻两组进位链之间的跨区位置,第一个粗计数器对应的是所述起始位置所位于的粗计数器;所述搭建的进位链包括m个粗计数器,所述m与所述触发信号同时进入搭建的进位链的不同位置的个数相关;
所述两个相邻LAB之间的跨区位置,具体为:
在第三个粗计数器对应的两个相邻LAB之间的跨区位置。
在一些实施方式中,当所述LAB的跨区位置包括两个相邻LAB之间的跨区时,将所述触发信号同时进入搭建的进位链的不同位置,具体包括:
将所述触发信号同时进入搭建的进位链的起始位置和两个相邻LAB之间的跨区位置。
需要说明的是,本实施例各单元或模块的实现和配置可以参见图3或图5所示方法实施例,在此不再赘述。
通过本发明实施例提供的装置,当单事件对应的触发信号到达时,将该触发信号进入搭建的进位链的不同位置,该位置包括LAB的跨区位置以及搭建的进位链的起始位置;分别获取不同位置对应的标定时间,触发信号在LAB的跨区位置对应的标定时间减去跨区位置的前一级进位链的时间作为触发信号在该跨区位置的实际标定时间;再将触发信号在起始位置对应的标定时间和在跨区位置的实际标定时间取平均值,将平均值作为触发信号校准后的标定时间,即为单事件发生的时间,通过取多个位置的标定时间的平均值作为单事件的发生时间,降低跨区时延对单事件发生时间标定的影响,提高单事件发生时间的采样精度,使得符合事件判定结果的准确性更高,进而提高图像的重建质量。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。