专利名称:基于单fpga的波束形成器输出数据带宽控制方法及装置的制作方法
技术领域:
本发明涉及FPGA技术及数字波束形成计算领域,具体来说是一种基于单FPGA的波束形成器输出数据带宽控制方法及装置。
背景技术:
波束形成计算是信号处理领域的一种常用的信号处理方式,在声纳信号处理、雷达信号处理、超声波探测等领域具有很广泛的应用。在这些应用中,如果探测或者扫描的范围很大、实时性要求很高,经过波束形成计算后,得到的与每个空间位置对应的波束形成结果总数据量将达到极其庞大的规模,远远超过系统后续的数据传输和分析能力。因此,实际应用中往往需要通过选用合适的阈值,对波束形成器输出的结果进行筛选,仅保留强度超过阈值的一部分波束形成结果,从而将后续待处理的数据总量控制在一定范围。阈值的选取应该兼顾系统处理带宽和目标波束的实际强度,使得在满足系统处理带宽的前提下,保留足够的有效波束结果用于后续的分析和处理。近些年,现场可编程门阵列(FieldProgrammable Gate Array, FPGA)技术得到了快速的发展,FPGA开始应用于声纳、雷达等系统的数字波束形成算法(Digital beamforming),出现了一种新的数字波束形成器的解决方案。基于FPGA的数字波束形成器的实现方案同时利用了传统软件和硬件实现方案的优点,不但保证了系统的高性能,而且增加了系统的通用性、灵活性,因此正得到越来越广泛的应用。同样的,基于FPGA的数字波束形成器也面临着上述提到的带宽控制问题。
发明内容
本发明提供了一种基于单FPGA的数字波束形成器输出数据带宽控制方法,具备优良的实时性能。一种基于单FPGA的波束形成器输出数据带宽控制方法,包括阈值比较步骤,用于将波束形成器输出的当前波束形成结果数据中的波束强度值与阈值进行比较,得到比较差值;和判断该波束强度值是否超过预设的波束形成强度最小值,得到判断结果;存储器写入控制步骤,用于根据所述的阈值比较步骤给出的比较差值,将波束强度值大于阈值的波束形成结果数据写入到波束形成结果存储器;所述的波束形成结果数据包括波束强度值与波束坐标信息;其中,还包括允许存储总量计算步骤,用于根据波束形成器输出的当前波束形成结果数据中的波束坐标信息,计算本帧波束形成结果中,在当前坐标位置及该坐标位置以前的空间内,允许被存储的波束形成结果数据总量;实际已存储总量统计步骤,用于统计在本帧波束形成结果中在当前坐标位置已经被存储的波束形成结果数据总量;
存储总量比较步骤,用于实时地比较在当前坐标位置允许被存储的波束形成结果数据总量和已经被存储的波束形成结果数据总量,得到比较结果;阈值调整步骤,用于根据所述的存储总量比较步骤得到的比较结果和所述的阈值比较步骤给出的比较差值和判断结果,动态调整所述的阈值比较步骤所使用的阈值,包括将超过预设的波束形成强度最小值的波束强度值与阈值的比较差值计入到差值累加器进行差值累加,并将累加次数计数器加1,同时判断累加次数计数器中记录的当前差值累加器已完成的累加次数 是否超过设定值,若是,结合所述的存储总量比较步骤给出的比较结果和差值累加的结果,估计需要调整的步长,计算并更新阈值,同时将差值累加器和累加次数计数器归零;若否,则不调整阈值,阈值调整步骤本次操作结束。其中,所述的实际已存储总量统计步骤包括用于根据阈值比较步骤得到的比较差值来统计实际已存储总量,若比较差值为正,则波束形成器输出的当前波束形成结果数据中的波束强度值大于阈值,该波束形成结果数据被计入实际已存储总量,统计值加1 ;反之,则统计值保持不变。其中,所述的实际已存储总量统计步骤、存储总量比较步骤直接由FPGA内部的 DSP(数字信号处理)单元实现;允许存储总量计算步骤、阈值比较步骤和阈值调整步骤内部的高速实时乘/加计算也采用FPGA内部DSP单元实现。上述步骤以流水线方式循环进行,连续处理来自波束形成器的每一个波束形成结果数据。本发明还提供了一种基于单FPGA的数字波束形成器输出数据带宽控制装置,具备优良的实时性能。一种基于单FPGA的数字波束形成器输出数据带宽控制装置,包括阈值比较单元,用于将波束形成器输出的当前波束形成结果数据中的波束强度值与阈值进行比较,得到比较差值;和判断该波束强度值是否超过预设的波束形成强度最小值,得到判断结果;存储器写入控制单元,用于根据所述的阈值比较单元给出的比较差值,将波束强度值大于阈值的波束形成结果数据写入到波束形成结果存储器;其中,还包括允许存储总量计算单元,用于根据波束形成器输出的当前波束形成结果数据中的波束坐标信息,计算本帧波束形成结果中,在当前坐标位置及该坐标位置以前的空间内,允许被存储的波束形成结果数据总量;实际已存储总量统计单元,用于统计在本帧波束形成结果中在当前坐标位置已经被存储的波束形成结果数据总量;存储总量比较单元,用于实时地比较在当前坐标位置允许被存储的波束形成结果数据总量和已经被存储的波束形成结果数据总量,得到比较结果;阈值调整单元,用于根据所述的存储总量比较单元给出的比较结果和所述的阈值比较单元给出的比较差值和判断结果,动态调整所述的阈值比较单元所使用的阈值;其包括差值累加器,用于对超过预设的波束形成强度最小值的波束强度值与阈值的比较差值进行差值累加;累加次数计数器,用于统计当前差值累加器完成的累加次数,并判断该累加次数是否超过设定值;阈值调整模块,用于在累加次数超过设定值时,根据所述的存储总量比较单元给出的比较结果和差值累加的结果,估计需要调整的步长,计算并更新阈值,并使得差值累加器和累加次数计数器复位归零;在累加次数未超过设定值时,不进行操作。其中,所述的实际已存储总量统计单元,用于根据阈值比较单元得到的比较差值来统计实际已存储总量,若比较差值为正,则波束形成器输出的当前波束形成结果数据中的波束强度值大于阈值,该波束形成结果数据被计入实际已存储总量,统计值加1 ;反之, 则统计值保持不变。其中,所述的实际已存储总量统计单元、存储总量比较单元直接由FPGA内部DSP 单元实现;所述的允许存储总量计算单元、阈值比较单元、阈值调整单元内部的高速实时乘 /加计算也采用FPGA内部DSP单元实现。所述的波束形成器输出数据带宽控制装置采用各单元并行、流水线操作,与波束形成器同步工作,避免了对大容量高速缓存的要求。本发明中,所述的预设的波束形成强度最小值略大于环境噪声的强度值,一般为环境噪声的强度值的2 4倍,该值远小于初始阈值或调整步骤中的阈值。本发明中,所述的当前坐标位置及该坐标位置以前的空间是指与探测器之间的物理距离不超过该坐标位置的探测空间。本发明中,所述的波束形成器输出数据带宽控制方法的带宽控制功能通过动态调整阈值的方式实现,可以在一帧波束形成结果的存储过程中,根据当前系统存储带宽和波束形成结果对应的空间坐标,动态分配当前允许存储的波束形成结果数据总量。本发明中,数字波束形成器在完成一个波束形成计算过程后,输出该波束形成结果对应的坐标和强度,进行以上步骤的数据带宽控制,并以流水线方式循环进行,连续处理来自波束形成器的每一个波束形成结果。与现有技术相比,本发明具有以下有益的技术效果能够根据探测场景的变化,动态的调整当前使用的阈值,实现对存储资源在整个探测范围内的有效分配,将波束形成器输出数据的带宽控制在系统处理带宽内。此外,由于采用多单元块并行设计方法和流水线设计方法,能与前端的数字波束形成器同步工作,在提高阈值调整的实时性的同时也避免了对大容量高速缓存的需求。
图1为本发明数字波束形成器输出数据带宽控制装置的结构示意框图;图2为本发明中允许存储总量计算单元的有限状态机示意框图;图3为本发明的波束形成器输出数据带宽控制方法的流 程图,以一帧波束形成结果计算和存储过程为例。
具体实施例方式下面结合实施例和附图来详细说明本发明,但本发明并不仅限于此。
如图1所示,一种基于单FPGA的数字波束形成器输出数据带宽控制装置,包括允许存储总量计算单元110,接收波束形成器当前输出的波束坐标数据,根据该坐标信息,计算本帧波束形成结果中,在当前坐标位置及该坐标位置以前的空间内,允许被存储的波束形成结果数据总量;本实施例中,所述的当前坐标位置及该坐标位置以前的空间是指与探测器之间的物理距离不超过该坐标位置的探测空间;阈值比较单元120,接收波束形成器当前输出的波束强度值数据,并比较该强度值和阈值,得到比较差值;同时,判断该波束强度值是否超过预设的波束形成强度最小值,得到判断结果; 实际已存储总量统计单元130,用于根据阈值比较单元120得到的比较差值来统计在本帧波束形成结果中在当前坐标位置已经被存储的波束形成结果数据总量,若比较差值为正,则波束形成器当前输出的波束强度值大于阈值,该波束形成结果被计入实际已存储总量,统计值加1 ;反之,则统计值保持不变;存储总量比较单元140,用于实时地比较允许存储总量计算单元110给出的当前坐标处允许被存储的波束形成结果数据总量和实际已存储总量统计单元130给出的当前坐标处已经被存储的波束形成结果数据总量,得到比较结果;阈值调整单元150,用于动态调整阈值比较单元120所使用的阈值。根据存储总量比较单元140给出的比较结果,以及阈值比较单元120给出的比较差值和判断结果,动态调整并更新当前阈值比较单元120正在使用的阈值;包括差值累加器,用于对超过预设的波束形成强度最小值的波束强度值与阈值的比较差值进行差值累加;累加次数计数器,用于统计当前差值累加器完成的累加次数,并判断该累加次数是否超过设定值;阈值调整模块,用于在累加次数超过设定值时,根据所述的存储总量比较单元140 给出的比较结果和差值累加的结果,估计需要调整的步长,计算并更新阈值,并使得差值累加器和累加次数计数器复位归零;在累加次数未超过设定值时,不进行操作。存储器写入控制单元160,用于根据阈值比较单元120给出的比较差值,将波束强度值大于阈值的波束形成结果数据(包括波束坐标数据和强度值数据)写入到波束形成结果存储器,反之,则将该波束形成结果丢弃。为了进一步提高系统可靠性,可同时将实际已存储总量统计单元130给出已经被存储的波束形成结果数据总量反馈到存储器写入控制单元160。如果当前坐标处已经被存储的波束形成结果数据总量超过一帧内整个探测范围内允许存储总量,则表明此时可能出现了大面积遮挡、系统参数选择不合适等异常情况而导致的具备较大强度的波束形成结果数量激增。为了保证此时系统仍能正常运行、便于异常现象的分析或解决,此时强制禁止存储器写入控制单元160写入新的数据到波束形成结果存储器。允许存储总量计算单元110有限状态机示意框图如图2所示。一帧波束形成计算开始后,首先根据接收到的当前探测距离参数和系统处理带宽,确定单位距离存储带宽分配量。依照探测距离的远近,允许存储带宽在探测距离内被均勻划分。当波束形成结果坐标数据输入时,从数据中提取出对应的探测距离。这样,利用当前探测距离与单位距离存储带宽分配量的乘积,可以估算出在当前坐标位置及该坐标位置以前的空间内允许被存储的波束形成结果数据总量。当一帧计算结束后,参数被清空,同时用于乘法运算的DSP单元被复位,整个允许存储总量计算单元110处于空闲状态,等待新的一帧计算结果输入。允许存储总量计算单元110内部的高速实时乘/加计算采用FPGA内部DSP单元实现。阈值 比较单元120内,由FPGA内部DSP单元直接实现对波束形成器当前输出的波束强度值和阈值调整单元150给出的阈值之间的差值计算;同时,在阈值比较单元120内, 还利用FPGA内部DSP单元作为比较器,比较该波束强度值和预设的波束形成强度最小值之间的大小,判断该波束强度值是否超过预设的波束形成强度最小值,其判断结果作为阈值调整单元150是否进行调整操作的依据。实际已存储总量统计单元130对本帧内强度值超过阈值的数据总量进行计数。计数用的加1累加器由FPGA内部DSP单元直接实现。存储总量比较单元140比较允许存储总量计算单元110给出的当前坐标处允许存储波束形成结果数据总量和实际已存储总量统计单元130给出的当前坐标处已经被存储的波束形成结果数据总量。差值计算由FPGA内部DSP单元直接实现。阈值调整单元150内部的乘/加计算由FPGA内部DSP单元实现。下面将以一帧波束形成结果计算和存储过程为例,来说明上述的波束形成器输出数据带宽控制方法的流程,其流程图如图3所示。一帧波束形成计算开始后,阈值调整单元150首先载入预先设定的最大阈值作为初始值;当波束形成结果数据输入时,其过程如下波束形成结果数据输入,同时包括波束强度值数据输入和波束坐标数据输入。波束强度值数据输入到阈值比较单元120,阈值比较单元120将该波束强度值与预设的波束形成强度最小值进行比较,判断该波束强度值是否超过预设的波束形成强度最小值,给出判断结果。由于预设的波束形成强度最小值略大于环境噪声的强度值,一般为环境噪声的强度值的2 4倍,该预设的波束形成强度最小值远小于初始阈值或调整步骤中的阈值,因此,当判断结果为否时,波束强度值不超过预设的波束形成强度最小值,表明该波束强度太低、来自于环境噪声或者旁瓣干扰,将被丢弃,不对其进行其后的所有操作。同时,波束强度值数据输入到阈值比较单元120,阈值比较单元120将该波束强度值和阈值进行比较,给出比较差值。该比较差值将输入到阈值调整单元150作为阈值调整依据,并根据比较差值结果,进行后续操作若比较差值为正,说明该波束强度值大于阈值, 该波束形成结果数据进入存储器写入控制单元160,并写入到波束形成结果存储器;同时, 该波束形成结果数据被计入实际已存储波束形成结果数据总量,该信息反馈至实际已存储总量统计单元130,实际已存储总量统计单元130中统计值加1 ;反之,则统计值保持不变; 为了使系统运行更加可靠,可同时将实际已存储总量统计单元130给出已经被存储的波束形成结果数据总量反馈到存储器写入控制单元160。如果当前坐标处已经被存储的波束形成结果数据总量超过一帧内整个探测范围内允许存储总量,则表明此时可能出现了大面积遮挡、系统参数选择不合适等异常情况而导致的具备较大强度的波束形成结果数量激增。 为了保证此时系统仍能正常运行、便于异常现象的分析或解决,此时强制禁止存储器写入控制单元160写入新的数据到波束形成结果存储器。波束坐标数据输入到允许存储总量计算单元110,允许存储总量计算单元110据此计算本帧波束形成结果中,在当前坐标位置及该坐标位置以前的空间内,允许被存储的波束形成结果数据总量。上述的由实际已存储总量统计单元130给出的统计值和由允许存储总量计算单元Iio给出的允许被存储的波束形成结果数据总量,在存储总量比较单元140进行差值比较,给出比较结果。阈值调整单元150接收由存储总量比较单元140给出的比较结果和由阈值比较单元120给出的比较差值和判断结果,动态调整阈值
当波束强度值超过预设的波束形成强度最小值,将阈值比较单元120给出的比较差值计入差值累加器进行差值累加,并将累加次数计数器加1,同时判断累加次数计数器中记录的当前差值累加器已完成的累加次数是否超过设定值,若否,本次差值累加次数未达到设定值,则不调整阈值,本次阈值调整操作结束;若是,表明本次累加完成,阈值调整单元 150将结合存储总量比较单元140给出的比较结果和差值累加器给出的差值累加结果,估计需要调整的步长,计算出新的比较阈值用于阈值比较单元120后续比较操作并给出阈值更新请求,同时清空差值累加器和累加次数计数器。其中,调整步长的估计方法为判断当前坐标位置及该坐标位置以前的空间内已经被存储的波束形成结果数据总量是否已经超过允许被存储的波束形成结果数据总量。若超过允许被存储的波束形成结果数据总量,则应该调整阈值以尽快降低已经被存储的波束形成结果数据总量到允许被存储的波束形成结果数据总量以内,为此,如果差值累加结果为正,表明累加过程包括的各波束强度均值较上一阈值大,新阈值应该使用绝对值较大的正的步进调整得到,否则如果差值累加结果为负,表明累加过程包括的各波束强度均值较上一阈值小,新阈值应该使用绝对值较小的负的步进调整得到;若未超过允许被存储的波束形成结果数据总量,则只需要适当调整阈值,实时的保持阈值与当前有效的波束强度值接近,为此,如果差值累加结果为正,表明累加过程包括的各波束强度均值较上一阈值大,新阈值只需要使用绝对值较小的正的步进调整得到,否则如果差值累加结果为负,表明累加过程包括的各波束强度均值较上一阈值小,新阈值应该使用绝对值较大的负的步进调整得到。阈值的大小选择通过将差值累加器除以不同的加权系数来得到。
权利要求
1.一种基于单FPGA的波束形成器输出数据带宽控制方法,包括阈值比较步骤,用于将波束形成器输出的当前波束形成结果数据中的波束强度值与阈值进行比较,得到比较差值;和判断该波束强度值是否超过预设的波束形成强度最小值,得到判断结果;存储器写入控制步骤,用于根据所述的阈值比较步骤给出的比较差值,将波束强度值大于阈值的波束形成结果数据写入到波束形成结果存储器;其特征在于,还包括允许存储总量计算步骤,用于根据波束形成器输出的当前波束形成结果数据中的波束坐标信息,计算本帧波束形成结果中,在当前坐标位置及该坐标位置以前的空间内,允许被存储的波束形成结果数据总量;实际已存储总量统计步骤,用于统计在本帧波束形成结果中在当前坐标位置已经被存储的波束形成结果数据总量;存储总量比较步骤,用于实时地比较在当前坐标位置允许被存储的波束形成结果数据总量和已经被存储的波束形成结果数据总量,得到比较结果;阈值调整步骤,用于根据所述的存储总量比较步骤得到的比较结果和所述的阈值比较步骤给出的比较差值和判断结果,动态调整所述的阈值比较步骤所使用的阈值,包括将超过预设的波束形成强度最小值的波束强度值与阈值的比较差值计入到差值累加器进行差值累加,并将累加次数计数器加1,同时判断累加次数计数器中记录的当前差值累加器已完成的累加次数是否超过设定值,若是,结合所述的存储总量比较步骤给出的比较结果和差值累加的结果,估计需要调整的步长,计算并更新阈值,同时将差值累加器和累加次数计数器归零;若否,则不调整阈值,阈值调整步骤本次操作结束。
2.如权利要求1所述的基于单FPGA的数字波束形成器输出数据带宽控制方法,其特征在于,所述的实际已存储总量统计步骤包括用于根据阈值比较步骤得到的比较差值来统计实际已存储总量,若比较差值为正,则波束形成器输出的当前波束形成结果数据中的波束强度值大于阈值,该波束形成结果数据被计入实际已存储总量,统计值加1 ;反之,则统计值保持不变。
3.如权利要求1所述的基于单FPGA的数字波束形成器输出数据带宽控制方法,其特征在于,所述的实际已存储总量统计步骤、存储总量比较步骤直接由FPGA内部的DSP单元实现;允许存储总量计算步骤、阈值比较步骤和阈值调整步骤内部的高速实时乘/加计算也采用FPGA内部DSP单元实现。
4.一种基于单FPGA的数字波束形成器输出数据带宽控制装置,包括阈值比较单元,用于将波束形成器输出的当前波束形成结果数据中的波束强度值与阈值进行比较,得到比较差值;和判断该波束强度值是否超过预设的波束形成强度最小值,得到判断结果;存储器写入控制单元,用于根据所述的阈值比较单元给出的比较差值,将波束强度值大于阈值的波束形成结果数据写入到波束形成结果存储器;其特征在于,还包括允许存储总量计算单元,用于根据波束形成器输出的当前波束形成结果数据中的波束坐标信息,计算本帧波束形成结果中,在当前坐标位置及该坐标位置以前的空间内,允许被存储的波束形成结果数据总量;实际已存储总量统计单元,用于统计在本帧波束形成结果中在当前坐标位置已经被存储的波束形成结果数据总量;存储总量比较单元,用于实时地比较在当前坐标位置允许被存储的波束形成结果数据总量和已经被存储的波束形成结果数据总量,得到比较结果;阈值调整单元,用于根据所述的存储总量比较单元给出的比较结果和所述的阈值比较单元给出的比较差值和判断结果,动态调整所述的阈值比较单元所使用的阈值;其包括差值累加器,用于对超过预设的波束形成强度最小值的波束强度值与阈值的比较差值进行差值累加;累加次数计数器,用于统计当前差值累加器完成的累加次数,并判断该累加次数是否超过设定值;阈值调整模块,用于在累加次数超过设定值时,根据所述的存储总量比较单元给出的比较结果和差值累加的结果,估计需要调整的步长,计算并更新阈值,并使得差值累加器和累加次数计数器复位归零;在累加次数未超过设定值时,不进行操作。
5.如权利要求4所述的基于单FPGA的数字波束形成器输出数据带宽控制装置,其特征在于,所述的实际已存储总量统计单元,用于根据阈值比较单元得到的比较差值来统计实际已存储总量,若比较差值为正,则波束形成器输出的当前波束形成结果数据中的波束强度值大于阈值,该波束形成结果数据被计入实际已存储总量,统计值加1 ;反之,则统计值保持不变。
6.如权利要求4所述的基于单FPGA的数字波束形成器输出数据带宽控制装置,其特征在于,所述的实际已存储总量统计单元、存储总量比较单元直接由FPGA内部DSP单元实现;所述的允许存储总量计算单元、阈值比较单元、阈值调整单元内部的高速实时乘/加计算也采用FPGA内部DSP单元实现。
全文摘要
本发明公开了一种基于单FPGA的波束形成器输出数据带宽控制方法及装置。该装置包括允许存储总量计算单元、阈值比较单元、实际已存储总量统计单元、存储总量比较单元、阈值调整单元、存储器写入控制单元。该方法包括允许存储总量计算步骤、阈值比较步骤、实际已存储总量统计步骤、存储总量比较步骤、阈值调整步骤、存储器写入控制步骤。本发明能够根据探测场景的变化,动态的调整当前使用的阈值,实现对存储资源在整个探测范围内的有效分配,将波束形成器输出数据的带宽控制在系统处理带宽内;同时,能与前端的数字波束形成器同步工作,在提高阈值调整的实时性的同时也避免了对大容量高速缓存的需求。
文档编号G01S7/52GK102156281SQ20101059483
公开日2011年8月17日 申请日期2010年12月17日 优先权日2010年12月17日
发明者袁龙涛, 陈耀武, 韩业强 申请人:浙江大学