当前位置: 首页 > 专利查询>东南大学专利>正文

一种数据分组快速查找定位法制造技术

技术编号:6538267 阅读:275 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据分组快速查找定位方法,首先判别用户设定的数据范围、分组组数和外部输入数据的情况并转换得到查找使用的数据范围、分组组数和查找使用的输入数据,计算、存储各分组边界值,再由状态机控制整个分组查找定位过程。分组查找定位过程中将查找使用的输入数据按特定方式与事先计算存储好的分组边界值进行比较。按照本发明专利技术提出的快速查找定位方法,可以用最少的比较次数快速确定外部输入数据在用户设定的数据范围内属于哪一个分组,并将其所在的分组编号输出。

【技术实现步骤摘要】

本专利技术涉及数据分组的快速查找定位方法,尤其涉及运用硬件电路实现的数据分组快速查找定位方法。
技术介绍
目前,随着高速信号处理技术应用的日益广泛,对于数据分组查找定位的速度要求日益提高;普通的逐次比较数据分组查找定位法比较次数多、查找速度慢,尤其当数据的分组组数很大时,普通的逐次比较数据分组查找定位法所耗费的时间将成为限制高速信号处理的主要因素,不利于高速信号处理、分析功能的实现。为解决上述问题,本专利技术提出一种基于硬件电路的数据分组快速查找定位方法, 可以用最少的比较次数快速确定外部输入数据在整个数据范围内属于哪一个分组,并将其所在的分组编号输出。与普通的逐次比较数据分组查找定位法相比,本专利技术可大大减少查找比较次数,提高数据分组查找定位的速度,有利于高速信号处理、分析功能的实现。
技术实现思路
技术问题本专利技术要解决的技术问题是提供一种基于硬件电路的数据分组快速查找定位方法,该方法可以根据用户设定的数据范围和分组组数,用最少的比较次数快速确定外部输入数据在整个数据范围内属于哪一个分组,并将其所在的分组编号输出,大大提高数据分组查找定位的速度。技术方案为解决上述技术问题,本专利技术采用的技术方案是—种数据分组快速查找定位方法,包括以下步骤a)根据外部输入数据是无符号数还是有符号数,转换得到查找使用的输入数据;b)判别用户设定的数据范围与数据分组的组数,并根据外部输入数据是无符号数还是有符号数,转换得到查找使用的数据范围与数据分组的组数;c)由转换得到的查找使用的数据范围与数据分组的组数,计算查找使用的各数据分组之间的分组边界值;d)分组边界值存储到存储器中;e)分组查找定位过程由状态机控制,将查找使用的输入数据与存储器中的分组边界值进行比较,并根据本次比较的结果选择下一次比较时所要使用的分组边界值;f)当完成了分组查找定位过程所需的比较次数后,分组查找定位过程结束,最终输出外部输入数据所属的分组编号;所述步骤a)中,外部输入数据的无符号数和有符号数分别为固定长度无符号二进制数,和固定长度有符号二进制数;它们的长度为L比特,L为任意自然数。所述步骤a)中,查找使用的输入数据转换的方法为如果外部输入数据是无符号数,则所述查找使用的输入数据等于外部输入数据;如果外部输入数据是有符号数,则所述查找使用的输入数据为将外部输入数据的最高位取反,其余位保持不变,并将其视为无符号数; 综上,查找使用的输入数据始终为无符号数。所述步骤b)中,用户设定的数据范围是指,进行数据分组查找时,由用户设定外部输入数据可能出现的最小值b至最大值a ;数据分组是指,用户根据需要,将由用户设定的数据范围均勻划分为K个分组,K 为任意自然数;用户设定的数据分组的组数即为K ;所述步骤b)中,查找使用的数据分组的组数的转换方法为如果用户设定的数据分组的组数K = 2N,则查找使用的数据分组的组数M = K ;如果用户设定的数据分组的组数K兴2n,且< K < 2N,则查找使用的数据分组的组数M = 2n;所述N为任意自然数。所述步骤b)中,查找使用的数据范围分为下列4种情况1)如果用户设定的数据分组的组数K = 2N,其中N为任意自然数,同时外部输入数据为无符号数,则查找使用的数据范围等于用户设定的数据范围,即查找使用的数据范围的最小值Min = b,最大值Max = a ;2)如果用户设定的数据分组的组数K兴2n,且< K < 2ν,同时外部输入数据为无符号数,则查找使用的数据范围的计算方法为数据范围的最小值Min = b,最大值Max =b+(a_b)*2N/K ;3)如果用户设定的数据分组的组数K = 2n,同时外部输入数据为有符号数,则查找使用的数据范围计算方法为数据范围的最小值Min = d,d为将b的最高位取反,其余位保持不变;数据范围的最大值Max = c, c为将a的最高位取反,其余位保持不变;4)如果用户设定的数据分组的组数K兴2N,且< K < 2n,同时外部输入数据为有符号数,则查找使用的数据范围的计算方法为数据范围的最小值Min = d,最大值Max =d+(c-d)*2N/K。所述步骤C)中,分组边界值的求解方法为按照查找使用的数据分组的组数,将查找使用的数据范围均勻划分,得到各个数据分组;各数据分组中最小数据的值就是该数据分组的分组边界值;分组边界值的计算方法为V(i) = Min+(Max-Min)*i/M ;其中V(i)为第i个数据分组的分组边界值,即第i个数据分组中最小数据的值,i为整数,0彡i ( M-I,M为查找使用的数据分组的组数。所述步骤d)中,使用存储器按照顺序存储计算好的分组边界值,存储顺序为第一个单元空闲;第二个单元存放第(M/2)组的分组边界值;第三个和第四个单元分别存放第(M/4)组和第(3M/4)组的分组边界值;第五个至第八个单元分别存放第(M/8)组、第 (3M/8)组、第(5M/8)组和第(7M/8)组的分组边界值;并以此类推;分组边界值的个数等于查找使用的数据分组的组数M减1,即2N_1,N为任意自然数,分组边界值需要的存储器的容量为单元,与查找使用的分组组数相等;所述单元是指存储单元。所述步骤e)中,状态机的控制步骤包括1)状态机首先初始化地址生成器的输出地址为1,即存储器的第二个单元;2)状态机按地址生成器的输出地址从分组边界值存储器中读取分组边界值,并将其与查找使用的输入数据进行比较,比较的结果为1比特,若查找使用的输入数据大于分组边界值,则比较结果为1 ;反之则比较结果为0 ;3)状态机根据本次读取分组边界值的存储单元地址和本次比较的结果,控制地址生成器生成下一次读取分组边界值的存储单元地址;将本次比较使用的分组边界值的存储单元地址左移1位,加上本次比较的结果,即可形成下一次比较使用的分组边界值的存储单元地址;4)判断比较次数是否达到查找定位过程所需的比较次数N,如果未达到,则跳转到步骤2),如果已达到,则分组查找定位过程结束,将最后一次读取分组边界值所使用的存储单元地址左移1位,加上最后一次比较的结果,就是查找使用的输入数据所属的分组编号,同时也是外部输入数据所属的分组编号,将此分组编号输出。所述步骤f)中,分组查找定位过程所需的比较次数N = t = Iog2 (M) = Iog2 (2n), 其中t为分组查找定位过程所需的比较次数,t与外部输入数据的大小无关,仅由查找使用的数据分组的组数M决定。存储器中的分组边界值在用户改变设定的数据范围时重新计算并更新。有益效果通过本专利技术提供的一种基于硬件电路的数据分组快速查找定位方法, 可以大大减少分组查找定位过程中的数据比较次数,提高数据分组查找定位的速度。普通的逐次比较数据分组查找定位法在分组组数为K的情况下,其中< K彡2N,平均需要进行K/2次比较才能确定外部输入数据的分组编号;利用本方法,可以将确定分组的比较次数减小到Iog2M次,其中M = 2n。本方法可以由现场可编程门阵列(FPGA)等电路形式实现, 为高速信号处理或分析算法提供数据分组快速查找定位功能。附图说明图1、本专利技术的模块框图,图2、控制状态机的状态转换图,图3、分组边界值存储器数据分布图。具体实施例方式下面结合本文档来自技高网...

【技术保护点】
1.一种数据分组快速查找定位方法,其特征在于包括以下步骤:a)根据外部输入数据是无符号数还是有符号数,转换得到查找使用的输入数据;b)判别用户设定的数据范围与数据分组的组数,并根据外部输入数据是无符号数还是有符号数,转换得到查找使用的数据范围与数据分组的组数;c)由转换得到的查找使用的数据范围与数据分组的组数,计算查找使用的各数据分组之间的分组边界值;d)分组边界值存储到存储器中;e)分组查找定位过程由状态机控制,将查找使用的输入数据与存储器中的分组边界值进行比较,并根据本次比较的结果选择下一次比较时所要使用的分组边界值;f)当完成了分组查找定位过程所需的比较次数后,分组查找定位过程结束,最终输出外部输入数据所属的分组编号;所述步骤a)中,外部输入数据的无符号数和有符号数分别为固定长度无符号二进制数,和固定长度有符号二进制数;它们的长度为L比特,L为任意自然数。

【技术特征摘要】
1.一种数据分组快速查找定位方法,其特征在于包括以下步骤a)根据外部输入数据是无符号数还是有符号数,转换得到查找使用的输入数据;b)判别用户设定的数据范围与数据分组的组数,并根据外部输入数据是无符号数还是有符号数,转换得到查找使用的数据范围与数据分组的组数;c)由转换得到的查找使用的数据范围与数据分组的组数,计算查找使用的各数据分组之间的分组边界值;d)分组边界值存储到存储器中;e)分组查找定位过程由状态机控制,将查找使用的输入数据与存储器中的分组边界值进行比较,并根据本次比较的结果选择下一次比较时所要使用的分组边界值;f)当完成了分组查找定位过程所需的比较次数后,分组查找定位过程结束,最终输出外部输入数据所属的分组编号;所述步骤a)中,外部输入数据的无符号数和有符号数分别为固定长度无符号二进制数,和固定长度有符号二进制数;它们的长度为L比特,L为任意自然数。2.如权利要求1所述的数据分组快速查找定位方法,其特征在于所述步骤a)中,查找使用的输入数据转换的方法为如果外部输入数据是无符号数,则所述查找使用的输入数据等于外部输入数据;如果外部输入数据是有符号数,则所述查找使用的输入数据为将外部输入数据的最高位取反,其余位保持不变,并将其视为无符号数;综上,查找使用的输入数据始终为无符号数。3.如权利要求1所述的数据分组快速查找定位方法,其特征在于所述步骤b)中,用户设定的数据范围是指,进行数据分组查找时,由用户设定外部输入数据可能出现的最小值b 至最大值a ;数据分组是指,用户根据需要,将由用户设定的数据范围均勻划分为K个分组,K为任意自然数;用户设定的数据分组的组数即为K。4.如权利要求3所述的数据分组快速查找定位方法,其特征在于所述步骤b)中,查找使用的数据分组的组数的转换方法为如果用户设定的数据分组的组数K = 2N,则查找使用的数据分组的组数M = K ;如果用户设定的数据分组的组数K兴2n,且< K < 2N,则查找使用的数据分组的组数 M = 2N ;所述N为任意自然数。5.如权利要求3所述的数据分组快速查找定位方法,其特征在于所述步骤b)中,查找使用的数据范围分为下列4种情况1)如果用户设定的数据分组的组数K= 2N,其中N为任意自然数,同时外部输入数据为无符号数,则查找使用的数据范围等于用户设定的数据范围,即查找使用的数据范围的最小值Min = b,最大值Max = a ;2)如果用户设定的数据分组的组数K兴2N,且2H< K < 2n,同时外部输入数据为无符号数,则查找使用的数据范围的计算方法为数据范围的最小值Min = b,最大值Max = b+(a_b)*2N/K ;3)如果用户设定的数据分组的组数K= 2n,同时外部输入数据为有符号数,则查找使用的数据范围计算方法为数据范围的最小值Min = d,d为将b的最高位取反,其余位保持不变;数据范围的最大值Max = c, c为将a的最高位取反...

【专利技术属性】
技术研发人员:高礼忠崔城张岩
申请(专利权)人:东南大学
类型:发明
国别省市:84

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1