一种不确定数目大数量数据的高速实时排序方法,包括,S1,设置由FPGA组成的流水线,流水线包括N级节点;S2、第一个节点每次接收一个未排序数据;S3、每一个节点每次接收一个从上一级节点输出的数据;S4、每一个节点进行输入数据与寄存数据的比较,如果输入数据比寄存数据重要,则保存输入数据至存储器,并将原寄存数据发送给下一级节点,否则将输入数据发送给下一级节点;S5、运行N个时钟周期后完成所有数据的排序;此时,每级节点的存储器中存储的即是完成排序的N个最大的数据。本发明专利技术用FPGA实现的不确定数目大数量数据的实时排序技术,结合了流水线和并行方式的特点,满足不确定数目大数量数据高速实时性数据排序要求。
【技术实现步骤摘要】
本专利技术属于航天遥感器
,特别是适用于航天遥感器进行数据传输时的。
技术介绍
航天遥感器在进行高速(彡500fps)宽覆盖大视场点源目标监测与探测时,由于点源目标数据的数量随机和位置随机等不确定因素影响,监测与探测到的点源目标数据的数量和位置最大化的情况是整个探测区域内大部分成像像元上都存在点源目标数据。由于卫星数传速率的限制,只能传输部分重要点源目标数据(假定传输点源目标的数量为N个)。在此约束下,需要将不确定数目的大数量点源目标数据(假定数目为m个,m通常为随机数,最大为整个像面的像元数(几十万至上亿),m?N)进行排序,输出其中最大的N个点源目标数据。由于每帧探测出的实际的点源目标数据数目是不确定的,因此要保留最大的N个点源目标数据时需要对每次输入的点源目标数据按照约定的排序条件进行判断和排序,选取最重要的N个点源目标数据输出。同时,由于点源目标产生的间隔具有不确定性,有可能相邻输出的多个像元都是点源目标,因此必须在一个成像帧周期内完成所有点源目标数据的排序与存储。如果采用常规的存储与排序方法,则需要多个存储数量和成像像元数目相等的存储空间,将像元信息全部储存后再进行排序。但由于当前帧最后一个数据输入和下一帧第一个数据输入之间时间间隔非常短暂(通常为ys级),采用传统方法耗时较多,无法同时在同一成像帧周期内(2ms甚至更短的时间内)完成所有点源目标数据的排序。因此,需要设计一种全新的不基于数据总数量m的高速数据实时排序方法,解决现有排序方法无法实现的不确定数目大数量数据的高速实时排序问题。
技术实现思路
本专利技术要解决的技术问题为:提供一种,克服现有技术的存储与排序方法需要多个存储数量和成像像元数目相等的存储空间,无法同时在同一成像帧周期内完成所有点源目标数据的排序的问题。本专利技术的技术方案为:—种,包括,SI,设置由FPGA实现的流水线,流水线包括N级节点,每级节点包括比较器、存储器和寄存器,N为需输出的最重要数据的数量;S2、流水线上的第一个节点在时钟的作用下每次接收一个从点源目标探测功能模块输出的未排序数据;S3、流水线上的第一个节点之后的每一个节点在时钟的作用下每次接收一个从上一级节点输出的数据;S4、流水线上的每一个节点按照预设的排序规则进行输入数据与由存储器读取的寄存数据的比较,如果新接收到的输入数据比寄存数据重要,则保存输入数据至存储器,并将原寄存数据发送给下一级节点,否则将新接收的输入数据发送给下一级节点;S5、在每帧成像像元全部输出或点源目标数据检测功能模块检测完成后,再运行N个时钟周期完成所有数据的排序;此时,每级节点的存储器中存储的即是完成排序的N个最大的数据。进一步地,还包括,S6、在后续数传模块将完成排序的N个数据取走后,复位所有节点的寄存器和比较器。进一步地,还包括,在新一帧成像开始或点源目标数据检测功能模块工作时开始新一帧的数据排序工作,排序步骤重复SI至S5。进一步地,流水线每级节点包括I个比较器、3个寄存器、I个存储器。进一步地,在时钟的作用下每级节点同步进行数据的比较与数据发送。本专利技术与现有技术相比的优点在于:本专利技术提供一种用FPGA实现的不确定数目大数量数据的实时排序技术,结合了流水线和并行方式的特点,满足不确定数目大数量数据高速实时性数据排序要求。此技术可应用于点源目标探测类目标排序与分类、成像数据重要性分类与排序等遥感类相机的星上数据处理,具有广泛的应用价值。【附图说明】图1a示出了本专利技术的以并行流水线方式实现的排序与数据存储电路框图的前半部分;图1b示出了本专利技术的以并行流水线方式实现的排序与数据存储电路框图的后半部分;图2a示出了本专利技术的以并行流水线方式实现的排序方法的流程的前三个时钟周期的示意图;图2b示出了本专利技术的以并行流水线方式实现的排序方法的流程的中间时钟周期的不意图;图2c示出了本专利技术的以并行流水线方式实现的排序方法的流程的中间时钟周期的不意图;图2d示出了本专利技术的以并行流水线方式实现的排序方法的流程的最后两个时钟周期的示意图。【具体实施方式】本产品采用并行流水线排序,用FPGA实现星上不确定数目大数量数据高速实时排序技术。该方法存储器数量最少为需输出的最重要数据的数量N个。采用并行流水线方式实现不确定数目大数量数据高速实时排序与数据存储电路框图如图la、图1b所示。流水线上的每个节点具有寄存器和比较器,N个比较器在同一个时钟CLK的控制下同时运行,与成像像元输出和点源目标数据检测时钟同步工作,在每帧成像像元输出和点源目标数据检测功能模块完成的同时实现所有像元数据排序,保留最重要的N个点源目标数据。参见图2a至图2d所示,将m个数据按照重要程度从大到小排列方法的实现过程如下:A、流水线上的第一个节点在时钟的作用下每次接收一个从点源目标探测功能模块输出的未排序数据;B、流水线上的第一个节点之后的N-1个节点在时钟的作用下每次接收一个从上一个节点输出的数据;C、每一个节点按照预设的排序规则(例如,按重要性从大到小排序、重要性相同的先到在前)进行输入数据与寄存数据进行比较,如果新接收到的数据比寄存数据重要,则保存寄存新的数据至存储器,并将原寄存数据发送给下一级;否则将新接收的数据发送给下一级;D、在每帧成像像元全部输出或点源目标数据检测功能模块检测完成后,再运行N个时钟周期完成所有数据的排序;E、在后续数传模块将完成排序的N个数据取走后,复位所有排序节点的寄存器和比较器;F、在新一帧成像开始或点源目标数据检测功能模块工作时开始新一帧的数据排序工作,排序步骤重复步骤A-F。假设要排列的数据数量为m个,对应像元输出或点源目标数据检测功能模块数据输出时钟数量为m个,需输出的数据数量为N个(m?N),对应并行数据排序节点数量为N个,在时钟CLK的作用下各节点同步进行比较与数据。假定选取输出的点源目标数据为DO、……、D7、……、DN-1、……、Dm-1,重要程度排序为Dm-1>D0>D7>D2>D1>D3>D4......>DN_1......>Dm_2,实现流程如图2。经过m+N个时钟周期,存储器I?存储器N存储最大的N个数据:Dm-l、D0、D7、D2、Dl、D3、D4……DN-2。星上信号处理用FPGA实现,每帧输入m个信号,要从m个信号中按重要程度选取最重要的N个(m?N)信号进行输出,需要对该m个信号进行排序。设计N级流水线,每级流水线需要I个比较器、3个寄存器、I个存储器。其中,寄存器I用于寄存要输入比较器的数据,寄存器2用于寄存从存储器读取的数据,比较器用于比较寄存器I和寄存器2中的数据,寄存器3用于寄存比较器比较后输出的较不重要的数据,并之后将该数据输出至下一级流水线的寄存器1、存储器则存储比较器比较后输出的较重要的数据。依据数据数量的重要程度,完成数据排序,并将寄存的N个最重要数据输出。【主权项】1.一种,其特征在于,包括, SI,设置由FPGA组成的流水线,流水线包括N级节点,每级节点包括比较器、存储器和寄存器,N为需输出的最重要数据的数量; 52、流水线上的第一个节点在时钟的作用下每次接收一个从点源目标探测功能模块输出的未排序数据; 53、流水线上的第一个节本文档来自技高网...
【技术保护点】
一种不确定数目大数量数据的高速实时排序方法,其特征在于,包括,S1,设置由FPGA组成的流水线,流水线包括N级节点,每级节点包括比较器、存储器和寄存器,N为需输出的最重要数据的数量;S2、流水线上的第一个节点在时钟的作用下每次接收一个从点源目标探测功能模块输出的未排序数据;S3、流水线上的第一个节点之后的每一个节点在时钟的作用下每次接收一个从上一级节点输出的数据;S4、流水线上的每一个节点按照预设的排序规则进行输入数据与由存储器读取的寄存数据的比较,如果新接收到的输入数据比寄存数据重要,则保存输入数据至存储器,并将原寄存数据发送给下一级节点,否则将新接收的输入数据发送给下一级节点;S5、在每帧成像像元全部输出或点源目标数据检测功能模块检测完成后,再运行N个时钟周期完成所有数据的排序;此时,每级节点的存储器中存储的即是完成排序后的N个最大的数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:梁华,鲍书龙,张守才,秦子栋,唐绍凡,
申请(专利权)人:北京空间机电研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。