专利名称:一种峰值搜索方法及装置的制作方法
技术领域:
本发明涉及峰值搜索技术,尤其涉及一种峰值搜索方法及装置。
背景技术:
峰值搜索常用于小区搜索、多径搜索、时隙同步等应用场景,对于速度的要求比较高。例如,在长期演进(LTE,Long-Term Evolution)中,小区初搜时,每5ms进行15个4800 序列的搜索,其它处理大概需要420k时钟周期(clock cycle);邻区搜索启动时,每5ms进行3个4800序列的搜索,同时可能还会有下行接收、测量和邻区搜索等的其它任务。现有的峰值搜索电路,每次读入单个能量数据,并通过将读入的能量数据与之前得到的最大能量数据进行比较,直到各能量数据一一读取完毕时,才能得到能量数据的最大值,并需要反复进行正向、反向扫描,找到其他最大值,如申请号为200510098701.4的中国专利,就提出了一种WCDMA系统中峰值搜索的方法,现有的峰值搜索方法扫描效率低,功耗高,不能适应适量处理器高吞吐率的要求。
发明内容
有鉴于此,本发明的主要目的在于提供一种峰值搜索方法及装置,能够适应矢量处理器高吞吐率的要求。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种峰值搜索方法,所述方法包括第一级峰值筛选电路获取多个能量数据,并对所获取的多个能量数据进行筛选, 得到一级峰值候选人;第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人;峰值排序电路对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值。在上述方案中,所述第一级峰值筛选电路对所获取的多个能量数据进行筛选,得到一级峰值候选人,为所述第一级峰值筛选电路采用相邻点比较的方法,对所获取的多个能量数据进行筛选,得到一级峰值候选人。在上述方案中,所述第一级峰值筛选电路采用相邻点比较的方法,对所获取的多个能量数据进行筛选,得到一级峰值候选人,包括所述第一级峰值筛选电路对所获取到的多个能量数据进行相邻数据间比较,提取位于大小关系切换位置的能量数据,得到一级峰值候选人。在上述方案中,所述第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人,为所述第二级峰值筛选电路从所述第一级峰值筛选电路获取一级峰值候选人,采用相邻点比较的方法对所获取的一级峰值候选人进行筛选后,再将筛选后得到的结果分别与所述预先设置的峰值门限进行比较,得到二级峰值候选人。在上述方案中,所述第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人,包括所述第二级峰值筛选电路从所述第一级峰值筛选电路读取一级峰值候选人,将所读取的一级峰值候选人进行相邻数据间比较,提取位于大小关系切换位置的一级峰值候选人,再从所提取的一级峰值候选人中提取不小于所述峰值门限的一级峰值候选人,得到二级峰值候选人。在上述方案中,所述峰值排序电路对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值,包括峰值排序电路对所述各二级峰值候选人进行以下处理峰值排序电路读取一个所述二级峰值候选人,并将所读取的二级峰值候选人与已得到的各峰值进行比较,同时,将所读取二级峰值候选人的地址与已得到各峰值的地址之间的差值和预先配置的清零阈值进行比较;根据所述比较的结果,将所读取的二级峰值候选人剔除,或将所读取的二级峰值候选人存为峰值并对所得到的各峰值进行排序。在上述方案中,在第二级峰值筛选电路得到二级峰值候选人后,所述方法还包括第二级峰值筛选电路将所得到的二级峰值候选人保存到峰值缓存器;所述峰值排序电路读取一个二级峰值候选人,为所述峰值排序电路从所述峰值缓存器中读取一个二级峰值候选人。在上述方案中,在所述第一级峰值筛选电路获取多个能量数据之前,所述方法还包括矢量处理器对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到数据存储器中, 使得所述第一级峰值筛选电路能够从所述数据存储器中获取多个能量数据。在上述方案中,所述数据存储器每行存储有多个能量数据;所述第一级峰值筛选电路获取多个能量数据,为所述第一级峰值筛选电路每次从所述数据存储器中读取一行能量数据。本发明还提供了一种峰值搜索装置,所述装置包括第一级峰值筛选电路、第二级峰值筛选电路、和峰值排序电路,其中,第一级峰值筛选电路,用于获取多个能量数据,并对所获取的多个能量数据进行筛选,得到一级峰值候选人;第二级峰值筛选电路,用于对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人;峰值排序电路,用于对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值。在上述方案中,所述第一级峰值筛选电路包括P个加法器、Q个一级峰值候选人寄存器、Q个地址寄存器,P为大于1的整数,Q为不小于P/2的最小整数;其中,
P个加法器,用于对当前读入的P个能量数据、以及上次所读入能量数据的最后一个进行相邻数据间比较,得到一级峰值候选人;Q个一级峰值候选人寄存器,用于存放所述P个加法器得到的一级峰值候选人;Q个地址寄存器,用于存放所述P个加法器所得到各一级峰值候选人的地址。在上述方案中,所述第二级峰值筛选电路包括Q个加法器、R个二级峰值候选人寄存器和R个地址寄存器,R为不小于Q/2的最小整数;其中,Q个加法器,用于读取所述第一级峰值筛选电路得到的一级峰值候选人,并对所读入一级峰值候选人、以及上次读入一级峰值候选人的最后一个进行相邻数据间比较、以及与预先设置的峰值门限比较,得到二级峰值候选人;R个二级峰值候选人寄存器,用于存放所述Q个加法器得到的二级峰值候选人;R个地址寄存器,用于存放所述Q个加法器所得到二级峰值候选人的地址。在上述方案中,所述峰值排序电路,用于读取二级峰值候选人,并将所读取的二级峰值候选人与已得到的各峰值进行比较,同时,将所读取二级峰值候选人的地址与已得到各峰值的地址之间的差值和预先配置的清零阈值进行比较;根据所述比较的结果,将所读取的二级峰值候选人剔除,或将所读取的二级峰值候选人存为峰值并对所得到的各峰值进行排序。在上述方案中,所述装置还包括峰值缓存器,用于保存所述第二级峰值筛选电路得到的二级峰值候选人、以及二级峰值候选人的地址;所述第二级峰值筛选电路,还用于将得到的各二级峰值候选人及二级峰值候选人的地址保存到所述峰值缓存器;所述峰值排序电路,还用于从所述峰值缓存器读取二级峰值候选人。在上述方案中,所述装置还包括数据存储器和矢量处理器,其中,数据存储器,用于保存所有需搜索的能量数据;矢量处理器,用于对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到数据存储器中;所述第一级峰值筛选电路,还用于每次从所述数据存储器读取多个能量数据。本发明所提供的峰值搜索方法及装置,先由第一级峰值筛选电路同时对多个能量数据进行筛选,再由第二级峰值筛选电路对第一级峰值筛选电路的筛选结果进一步进行筛选,最后由峰值排序电路对第二级峰值筛选电路得到的结果进行排序和剔除假峰值,得到峰值,并行处理多个能量数据,并且只需要对所有能量数据扫描一遍,即可找到所有峰值, 峰值搜索效率高、速度快,能够适用矢量处理器高吞吐率的要求;此外,本发明在保存能量数据时,执行了提取实部操作,节省了数据存储器空间, 也使得读取能量数据的效率提高一倍,相应的,也提高了峰值搜索的效率和速度。
图1为本发明峰值搜索方法的实现流程图;图2为本发明的峰值搜索装置的组成结构示意图;图3为本发明具体实施例峰值搜索装置中数据存储器的结构示意图4为本发明具体实施例峰值搜索装置中数据存储器每个仓库(bank)的结构示意图;图5为本发明具体实施例峰值搜索装置中峰值搜索模块的组成结构示意图;图6为本发明具体实施例峰值搜索装置中第一级峰值筛选电路的组成结构示意图;图7为本发明具体实施例峰值搜索装置中峰值排序电路的组成结构示意图。
具体实施例方式本发明的基本思想是获取多个能量数据,由第一级峰值筛选电路对多个能量数据进行筛选,得到一级峰值候选人,再由第二级峰值筛选电路对所述一级峰值候选人进行筛选,得到二级峰值候选人,最后,由峰值排序电路对所得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值,这样,只需要对能量数据扫描一遍,就能够得到要搜索的多个峰值,效率高,能够适应矢量处理器高吞吐率的要求。本发明的峰值搜索方法,参照图1所示,主要可以包括以下步骤步骤101 第一级峰值筛选电路获取多个能量数据,并对所获取的多个能量数据进行筛选,得到一级峰值候选人;步骤102 第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人;步骤103 峰值排序电路对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值。其中,所述第一级峰值筛选电路采用相邻点比较的方法,对所获取的多个能量数据进行筛选,得到一级峰值候选人。具体地,所述第一级峰值筛选电路对所获取到的多个能量数据进行相邻数据间比较,提取位于大小关系切换位置的能量数据,即位于“大于”和“小于”切换位置的能量数据, 得到一级峰值候选人。其中,所述第二级峰值筛选电路从所述第一级峰值筛选电路获取各一级峰值候选人,采用相邻点比较的方法对所获取的一级峰值候选人进行筛选后,再将筛选后得到的结果分别与所述预先设置的峰值门限进行比较,得到二级峰值候选人。具体地,所述第二级峰值筛选电路从所述第一级峰值筛选电路读取各一级峰值候选人,将所读取的各一级峰值候选人进行相邻数据间比较,提取位于大小关系切换位置的一级峰值候选人,再从所提取的一级峰值候选人中提取不小于所述峰值门限的一级峰值候选人,得到二级峰值候选人。其中,峰值排序电路对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值的过程,可以包括峰值排序电路对所述各二级峰值候选人进行以下处理峰值排序电路读取一个所述二级峰值候选人,并将所读取的二级峰值候选人与已得到的各峰值进行比较,同时,将所读取二级峰值候选人的地址与已得到各峰值的地址之间的差值和预先配置的清零阈值进行比较;根据所述比较的结果,将所读取的二级峰值候选人剔除,或将所读取的二级峰值候选人存为峰值并对所得到的各峰值进行排序。如此,在所有能量数据均已处理完成后,峰值排序电路也就会完成对所有二级峰值候选人的排序和剔除假峰处理,之后,便得到包含有要搜索的所有峰值的峰值序列以及相对应的峰值地址序列。其中,在第二级峰值筛选电路得到二级峰值候选人后,所述方法还包括第二级峰值筛选电路将所得到的二级峰值候选人保存到峰值缓存器。所述峰值排序电路每一个时钟周期可以从所述峰值缓存器中读取一个二级峰值候选人。这里,在得到一级峰值候选人时,还将所述一级峰值候选人、以及其地址保存;第二级峰值筛选电路从第一级峰值筛选电路读取所述一级峰值候选人及其地址,对一级峰值候选人进行筛选后,得到二级峰值候选人时,还将所得到二级峰值候选人及其地址保存到峰值缓存器。这里,所述一级峰值候选人的地址可以通过如下方式得到第一级峰值筛选电路内部包含有临时寄存器,该临时寄存器记录一个基地址,该基地址为所获取的第一个能量数据的地址,第一级峰值筛选电路在获取能量数据时,可以根据所获取能量数据的地址与所获取第一个能量数据的地址之间的移位,得到所获取能量数据的地址,从而在获取能量数据时,就能得到能量数据的地址,如此,在得到一级峰值候选人时就能得到一级峰值候选人的地址。第二级峰值筛选电路也按照上述方式,可以在得到二级峰值候选人时同时得到二级峰值候选人的地址。例如,第一次读入的一个能量数据的地址是128,那么第二次读入的与所述能量数据对应的能量数据的地址可以是U8+P。这里,峰值排序电路还可以从第二级峰值筛选电路读取各二级峰值候选人的地址,在将所读取的二级峰值候选人存为峰值时,还将所读取二级峰值候选人的地址存为对应的峰值地址。实际应用中,在第一级峰值筛选电路获取多个能量数据之前,所述方法还可以包括矢量处理器对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到数据存储器中,使得第一级峰值筛选电路能够从所述数据存储器中获取多个能量数据。这里,所述数据存储器每行存储有多个能量数据;所述第一级峰值筛选电路获取多个能量数据,为所述第一级峰值筛选电路从所述数据存储器中读取一行能量数据。相应的,本发明还提供了一种峰值搜索装置,所述装置包括第一级峰值筛选电路、第二级峰值筛选电路、和峰值排序电路,其中,第一级峰值筛选电路,用于获取多个能量数据,并对所获取的多个能量数据进行筛选,得到一级峰值候选人;第二级峰值筛选电路, 用于对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人; 峰值排序电路,用于对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值。具体地,所述第一级峰值筛选电路包括P个加法器、Q个一级峰值候选人寄存器、 Q个地址寄存器,P为大于1的整数,Q为不小于P/2的最小整数;其中,P个加法器,用于对当前读入的P个能量数据、以及上次所读入能量数据的最后一个进行相邻数据间比较,得到一级峰值候选人;Q个一级峰值候选人寄存器,用于存放所述P个加法器得到的一级峰值候选人;Q个地址寄存器,用于存放所述P个加法器所得到各一级峰值候选人的地址。实际应用中,所述第一级峰值筛选电路的输入是P+1个能量数据,其组成部分包括,P个加法器,Q个一级峰值候选人的数据寄存器,Q个对应的地址寄存器,其输出为X (X <=Q)个一级峰值候选人,存储与峰值候选人的数据寄存器中。具体地,所述第二级峰值筛选电路包括Q个加法器、R个二级峰值候选人寄存器和R个地址寄存器,R为不小于Q/2的最小整数;其中,Q个加法器,用于读取所述第一级峰值筛选电路得到的一级峰值候选人,并对所读入一级峰值候选人、以及上次读入一级峰值候选人的最后一个进行相邻数据间比较、以及与预先设置的峰值门限比较,得到二级峰值候选人;R个二级峰值候选人寄存器,用于存放所述Q个加法器得到的二级峰值候选人;R 个地址寄存器,用于存放所述Q个加法器所得到二级峰值候选人的地址。其中,所述峰值排序电路,用于读取二级峰值候选人,并将所读取的二级峰值候选人与已得到的各峰值进行比较,同时,将所读取二级峰值候选人的地址与已得到各峰值的地址之间的差值和预先配置的清零阈值进行比较;根据所述比较的结果,将所读取的二级峰值候选人剔除,或将所读取的二级峰值候选人存为峰值并对所得到的各峰值进行排序。这里,所述装置还包括峰值缓存器,用于保存所述第二级峰值筛选电路得到的二级峰值候选人、以及二级峰值候选人的地址;所述第二级峰值筛选电路,还用于将得到的各二级峰值候选人及二级峰值候选人的地址保存到所述峰值缓存器;所述峰值排序电路,还用于从所述峰值缓存器读取二级峰值候选人。其中,所述装置还包括数据存储器和矢量处理器,其中,数据存储器,用于保存所有需搜索的能量数据;矢量处理器,用于对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到数据存储器中。这里,所述第一级峰值筛选电路,还用于每次从所述数据存储器读取多个能量数据。实施例一实际应用中,峰值搜索前的计算任务由矢量处理器来完成,峰值搜索的过程可以由硬件加速器来实现。如图2所示,峰值搜索装置可以包括射频接收模块、数据存储器、矢量处理器和峰值搜索模块,其中,射频接收模块,用于接收ADC采样的数据,并将所得到的采用数据存储到数据存储器;矢量处理器,用于从所述数据存储器读取采样数据,对所读取的采样数据进行处理后,得到能量数据,并将所得到的能量数据保存到数据存储器;峰值搜索模块,用于从数据存储器中读取能量数据,进行峰值搜索处理,找到需要的峰值,将所找到的峰值保存,并返回给所述矢量处理器。具体地,射频接收模块接收ADC采样的数据,并将采样数据存储到数据存储器,矢量处理器从所述数据存储器中读取采样数据,并对采样数据进行相关运算、过滤运算、取模运算处理后,并提取实部,得到能量数据,将所得到的能量数据再保存到所述数据存储器中;在矢量处理器对峰值搜索模块进行参数设置后,峰值搜索模块从数据存储器中读取能量数据,进行峰值搜索处理,找到峰值,并返回给矢量处理器。实际应用中,矢量处理器对采样数据进行处理的过程可以包括矢量处理器以流水线的方式从数据存储器中读取采样数据,再进行下行采样数据与主同步序列(PSQ相关和滤波等运算,将所得到的运算结果(包括I通道的相关、滤波后的结果和Q通道相关、滤波后的结果)存储到数据存储器中,进行取模运算处理时,再从数据存储器中读取上述相关和过滤后的结果进行取模运算处理,之后,从取模运算处理的结果中再提取实部,得到能量数据,再将所得到的能量数据写入到数据存储器中。其中,矢量处理器按照公式(1)进行取模运算处理后,所得到结果的实部为能量数据,保存于数据存储器的低16比特,所得到结果中的虚部为0,保存于数据存储器的高16 比特。丨r I= F 參 F* = He2 +Im2(D其中,F表示一个复数信号,Re为?的实部,Irn为F的虚部。原先每个bank存储P/2 个数据,执行提取实部的压缩处理后,将数据虚部的空位去掉,则数据存储器的一个bank 就存储了 P个能量数据,如此,不仅压缩/节省了数据存储器的存储空间,并且,在后续进行峰值搜索时,读取能量数据的效率会相应提高一倍,并行搜索的吞吐率也可以提高一倍。实际应用中,矢量处理器可以通过一个提取实部的指令来进行上述的提取实部的处理。具体地,为了适应矢量处理器的吞吐率,所述数据存储器具有以下结构特征数据存储格式为复数能量F = Re+^lm ,用32比特的单元来存储一个复数能量数据,其中低16比特为实部,高16比特为虚部;如图3所示,存储器宽度(width)为16*P*4比特(P为大于0 的偶数),分为4个bank,每个bank有P/2个32比特的存储单元,矢量处理器能够一次读取存储器的一列数据,即PM个能量数据。如果矢量处理器只进行相关运算、滤波运算等操作过后,不进行提取实部的操作,然后将结果写回存储器中,那么,其结果还是存储器的一列有网2个能量数据,但是每个32比特的存储单元将存放着复数能量的模值,其高16比特为 0,低16比特为实部(不为0),而实际上,峰值搜索中包含提取实部的操作,即在相关运算、 滤波运算后,紧接着用提取实部的指令进行提取实部的操作,然后将结果写回存储器中,那么存储器的一列存放(16*P*4)/16 = P*4个能量数据,即一个32比特的单元存放着两个能量数据,一个bank能存放P个能量数据,如图4所示。前面描述了矢量处理器能一次访问存储器的4个bank的同一列数据,而峰值搜索模块则每次可以访问存储器的某一个bank的一行,即16*P比特的数据,也即P个能量数据 (如果矢量处理器没有进行过提取实部的操作,那么每次读写的是P/2个数据)。实际应用中,所述数据存储器可以是同步静态存储器(ssram)。其中,矢量处理器还用于对所述峰值搜索模块进行参数设置。峰值搜索模块根据所述矢量处理器的参数设置,对读取到的能量数据进行峰值搜索处理。其中,峰值搜索模块可以由硬件加速器来实现,可以访问数据存储器,并以流水线的方式,对每次读取的能量数据进行峰值搜索,最后,将每次峰值搜索的结果进行比较找到峰值,如此循环,在所述能量数据中找到要搜索的η个最大值,其中,η为大于0的整数。本发明中,峰值搜寻模块进行峰值搜索时,采用三级电路以流水线方式实现峰值的搜索功能。如图5所述,所述峰值搜索模块可以包括第一级峰值筛选电路、第二级峰值筛选电路、峰值排序电路和峰值缓存器(buffer),其中,第一级峰值筛选电路从数据存储器中读取能量数据并采用相邻点比较的方法对读入的能量数据进行筛选,得到一级峰值候选人,输入到第二级峰值筛选电路;第二级峰值筛选电路采用相邻点比较、以及门限值判断相结合的方法,对输入的所述一级峰值候选人进行筛选,得到二级峰值候选人,输入到峰值缓存器中保存,如此,经过两次筛选,进入峰值buffer的峰值候选人数量被精减,可以降低峰值buffer对容量的需求;峰值排序电路从所述峰值缓存器中读取二级峰值候选人,进行排序和剔除假峰处理后,得到峰值,并将所得到的峰值重新保存到所述峰值buffer中。实际应用中,如果数据存储器中一个bank存储了 P个能量数据,其中,P为大于0 的整数,第一级峰值筛选电路一次读入P个能量数据,为实现并行比较,第一级峰值筛选电路中需要包含P个加法器,第二级峰值筛选电路也需要包含Q个加法器,Q为不小于ρ/2的最小整数。也可以根据实际需要并行处理的能量数据的数量,调整第一级峰值筛选电路、及第二级峰值筛选电路中加法器的数量。具体地,如图6所示,第一级峰值筛选电路包含有Q个一级峰值候选人寄存器、P个加法器、Q个地址寄存器,Q为不小于P/2的最小整数,其中,P个加法器用于对当前所读入的能量数据、以及上次所读取能量数据中的最后一个进行相邻数据间比较,得到一级峰值候选人,Q个一级峰值候选人寄存器用于存放所得到的一级峰值候选人,Q个地址寄存器用于记录各一级峰值候选人的地址。第二级峰值筛选电路包括、Q个加法器、R个二级峰值候选人寄存器和R个地址寄存器,R为不小于Q/2的最小整数,其中,Q个加法器用于对当前从第一级峰值筛选电路中获取的一级峰值候选人、以及上次所获取各一级峰值候选人的最后一个进行相邻数据间比较、以及与预先设置的峰值门限比较,得到二级峰值候选人;Q个二级峰值候选人寄存器用于存放所得到的二级峰值候选人,Q个地址寄存器用于记录各二级峰值候选人的地址。实际应用中,也可以由第一级峰值筛选电路进行峰值门限的比较,本发明中,由第二级峰值筛选电路进行峰值门限的比较,能够节约加法器的数量,有利于减低成本,提高筛选效率。如图7所示,峰值排序电路包括一个或多个比较单元,每个比较单元包括一个加法器、一个数据寄存器和一个地址寄存器,其中,加法器用于对二级峰值候选人进行排序、 剔除假峰值等处理,得到峰值,数据寄存器用于保存排序后得到的峰值,地址寄存器用于保存各峰值的地址。实际应用中,峰值排序电路中比较单元的个数,可以根据实际峰值搜索的需要来设置。峰值搜索模块进行峰值搜索的过程,具体流程如下步骤1 用于从能量数据存储器读取能量数据的读数据控制电路验证所述数据存储器中是否有还有未读取的能量数据,如果是,则继续步骤2,否则,继续步骤8 ;具体地,读数据控制电路可以通过验证当前读取数据的周期是否已经达到data_ len/P个周期,如果是,则数据存储器中所有的能量数据均已读取,否则,还有未读取的能量数据。步骤2,读数据控制电路从数据存储器中未读取的能量数据中读入P个数据,其中,P为大于0的整数。步骤3,读数据控制电路将所读取的P个数据,分别输入到第1个到第P-I个临时数据寄存器中,如此,如图6所示,使得第0个临时数据寄存器存放上次所输入P个能量数据中的最后一个能量数据,即上次所输入P个能量数据中的第P-I个能量数据,第1个临时数据寄存器存放当前所输入数据的第0个能量数据,第2个临时数据寄存器存储当前所输入数据的第1个能量数据,依次类推,第P个临时数据寄存器存放当前所输入数据的第P-I 个能量数据。
这里,在第一次向第一级峰值筛选电路输入能量数据时,第0个数据寄存器需设置为0。步骤4,第一级峰值筛选电路中的P个加法器从所述第1个到第P-I个临时数据寄存器中读取能量数据,对分别存放于P+1个临时数据寄存器中的P+1个能量数据进行相邻数据间比较,并将位于大小关系切换位置的能量数据,即位于“大于”和“小于”切换位置的能量数据,作为一级峰值候选人写到一级峰值候选人寄存器中,并将所得到一级峰值候选人的地址写入到对应的地址寄存器中,如此,第一级筛选电路最多筛选出M个一级峰值候选人;这里,M为不大于Q的整数。具体地,如果各加法器对各能量数据进行相邻数据间比较后,得到分别存放于P+1 个临时数据寄存器中的P+1个能量数据的相邻数据间大小关系如下P P-I P-2 P-3 P—4...... 4 3 2 1 0< > < > < > > <位于“大于”和“小于”的切换位置的能量数据可能为峰值,则第P-1、P_3、3、0个能量数据可能是峰值,将第P-l、P-3、3、0个能量数据作为一级峰值候选人分别写入到四个一级峰值候选人寄存器中,并将第P-1、P_3、3、0个能量数据的地址分别写入到对应的四个地址寄存器中,例如,如果将第P-l、P_3、3、0个能量数据写入到第0个、第1个、第2个、第 3个一级峰值候选人寄存器,则将第P-l、P_3、3、0个能量数据的地址分别写入到第一级峰值筛选电路的第0个、第1个、第2个、第3个地址寄存器中。步骤5,第二级峰值筛选电路从所述第一级峰值筛选电路中一级峰值候选人寄存器中读取到所述M个一级峰值候选人;步骤6,第二级峰值筛选电路的加法器将自身读取的M个一级峰值候选人进行相邻数据间比较,将位于大小关系切换位置的一级峰值候选人再与预先设置的峰值门限比较,最后,将位于大小关系切换位置的、且不小于所述峰值门限的一级峰值候选人作为二级峰值候选人,分别写入到各二级峰值候选人寄存器中,并将各二级峰值候选人的地址写入到第二级筛选电路中对应的地址寄存器中;实际应用中,第一级峰值筛选电路的一级候选人数据寄存器和地址寄存器分别连接到第二级峰值筛选电路上。这里,第二级峰值筛选电路中的加法器进行相邻数据间比较的实现过程,与第一级峰值筛选电路中加法器的实现过程相似,在此不再赘述。步骤7,第二级峰值筛选电路中的加法器将得到的二级峰值候选人、及二级峰值候选人的地址输出到峰值缓存器中保存,返回步骤2、以及继续步骤8 ;步骤8,峰值排序电路从峰值缓存器中逐个读取二级峰值候选人,并将对所读取的二级峰值候选人逐个进行排序处理、以及剔除假峰值处理;步骤9,峰值排序电路得到峰值序列和对应的峰值地址序列。具体地,峰值排序电路进行排序以及剔除假峰值的过程可以是步骤a,峰值排序电路从峰值缓存器首次读入二级峰值候选人,同时,从读取该二级峰值候选人的地址,并将该二级峰值候选人存为峰值maxO、将预设的峰值max_l, max_2, . . .,maX_n-l,假设峰值排序电路有η个比较单元,清零,将该峰值候选人的地址存为地址 addr_0,将地址 addr_l,. . .,addr_n_l 清零;步骤b,峰值排序电路验证峰值缓存器是否已读空,如果是,则暂停,直到所述峰值缓存器中不为空,即直到有新的二级峰值候选人存入所述峰值缓存器中;否则,继续步骤 c ;步骤C,峰值排序电路继续从峰值缓存器读入二级峰值候选人,同时,从读取该二级峰值候选人的地址;步骤d,从第二次读取二级峰值候选人开始,峰值排序电路将所读入的二级峰值候
选人与峰值max_0、max_l.....max_P-l进行比较,同时,将所读入二级峰值候选人的地址
与地址addr_0、addr_l.....addr_P-l之间的差值和预先配置的清零阈值m进行比较;这里,清零阈值m可以由矢量处理器预先配置在峰值排序电路,表示需要将峰值左右两边的m个清零/屏蔽。步骤e,根据步骤d的比较结果,maX_SOrt电路将该读入的二级峰值候选人存为峰值maX_k(k为0、1、2,... , _n_l),并将该二级峰值候选人的地址存为对应的地址addr_k ;本步骤中的操作牵涉到峰值max_0,max_l,. . .,max_n-l之间的拷贝和移位操作。例如,如果所读入的二级峰值候选人datajn小于峰值max_l但大于峰值max_2, 且二级峰值候选人的地址addr_in与地址addr_l的差值大于预先配置的清零阈值m、二级峰值候选人的地址addr_in与地址addr_2的差值大于预先配置的清零阈值m,则将峰值 max_2 max_n-2分别往max_3 max_n_l移动,原先的max_n_l扔掉,将所读入的二级峰值候选人datajn存为峰值max_2 ;如果所读入的二级峰值候选人小于峰值max_l且大于峰值max_2,且二级峰值候选人的地址addr_in与地址addr_l的差值大于预先配置的清零阈值m、二级峰值候选人的地址addr_in与地址addr_2的差值不大于预先配置的清零阈值m, 则原先的峰值max_2为假峰值,是无效的,此时,只须将datajn存为峰值max_2,max_3 max_n-l不需要往后移动,保持不变。实际应用中,在所有能量数据均已处理完成后,峰值排序电路也就会完成对所有二级峰值候选人的排序和剔除假峰处理,之后,便得到峰值序列(maX_0,max_l, ... , max_ n-1)以及相对应的峰值地址序列(addr_0,addr_l,... , addr_n-l),至此,完成对η个峰值的搜索处理。需要说明的是,本实施例中,在峰值搜索模块开始进行峰值搜索之前,需要由矢量处理器对峰值搜索模块进行参数配置,所配置的参数可以包括表示要读取能量数据地址的源数据地址deSt_addr、要读取能量数据的数据长度data_len、峰值个数阈值η、峰值左右两边需清除/屏蔽的数据个数即清零阈值m、数据存储器中用于存放峰值的地址dest_ data_addr、用于表示存储于寄存器还是数据存储器的参数dest_sel等。其中,峰值个数阈值η表示需要搜索到的峰值个数。另外,在上述峰值搜索过程中,两级筛选后,第二级峰值筛选电路将得到的二级峰值候选人存入峰值缓存器中,每次最多存入Ρ/4个二级峰值候选人,如果没有得到二级峰值候选人,则没有二级峰值候选人存入峰值缓存器。如果在存入二级峰值候选人时,峰值缓存器已满,则读数据控制电路停止从能量存储器中读入能量数据,峰值搜索的流程需要暂停,在峰值搜索模块对一些二级峰值候选人进行处理后峰值缓存器清除这些数据,即峰值排序电路从峰值缓存器中读走一部分峰值候选人后,峰值缓存器处于未满状态时,再继续上述的峰值搜索流程。另外,峰值排序电路每次从峰值缓存器读入二级峰值候选人,进行排序和剔除假峰值处理,如果峰值缓存器为空,则峰值排序电路需要暂停工作,直到峰值缓存器有新的二级峰值候选人存入之后,峰值排序电路再继续工作。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种峰值搜索方法,其特征在于,所述方法包括第一级峰值筛选电路获取多个能量数据,并对所获取的多个能量数据进行筛选,得到一级峰值候选人;第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人;峰值排序电路对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值。
2.根据权利要求1所述峰值搜索方法,其特征在于,所述第一级峰值筛选电路对所获取的多个能量数据进行筛选,得到一级峰值候选人,为所述第一级峰值筛选电路采用相邻点比较的方法,对所获取的多个能量数据进行筛选,得到一级峰值候选人。
3.根据权利要2所述峰值搜索方法,其特征在于,所述第一级峰值筛选电路采用相邻点比较的方法,对所获取的多个能量数据进行筛选,得到一级峰值候选人,包括 所述第一级峰值筛选电路对所获取到的多个能量数据进行相邻数据间比较,提取位于大小关系切换位置的能量数据,得到一级峰值候选人。
4.根据权利要求1所述峰值搜索方法,其特征在于,所述第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人,为所述第二级峰值筛选电路从所述第一级峰值筛选电路获取一级峰值候选人,采用相邻点比较的方法对所获取的一级峰值候选人进行筛选后,再将筛选后得到的结果分别与所述预先设置的峰值门限进行比较,得到二级峰值候选人。
5.根据权利要求4所述峰值搜索方法,其特征在于,所述第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人,包括所述第二级峰值筛选电路从所述第一级峰值筛选电路读取一级峰值候选人,将所读取的一级峰值候选人进行相邻数据间比较,提取位于大小关系切换位置的一级峰值候选人, 再从所提取的一级峰值候选人中提取不小于所述峰值门限的一级峰值候选人,得到二级峰值候选人。
6.根据权利要求1所述峰值搜索方法,其特征在于,所述峰值排序电路对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值,包括峰值排序电路对所述各二级峰值候选人进行以下处理峰值排序电路读取一个所述二级峰值候选人,并将所读取的二级峰值候选人与已得到的各峰值进行比较,同时,将所读取二级峰值候选人的地址与已得到各峰值的地址之间的差值和预先配置的清零阈值进行比较;根据所述比较的结果,将所读取的二级峰值候选人剔除,或将所读取的二级峰值候选人存为峰值并对所得到的各峰值进行排序。
7.根据权利要求6所述峰值搜索方法,其特征在于,在第二级峰值筛选电路得到二级峰值候选人后,所述方法还包括第二级峰值筛选电路将所得到的二级峰值候选人保存到峰值缓存器;所述峰值排序电路读取一个二级峰值候选人,为所述峰值排序电路从所述峰值缓存器中读取一个二级峰值候选人。
8.根据权利要求1至7任一项所述峰值搜索方法,其特征在于,在所述第一级峰值筛选电路获取多个能量数据之前,所述方法还包括矢量处理器对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到数据存储器中,使得所述第一级峰值筛选电路能够从所述数据存储器中获取多个能量数据。
9.根据权利要求8所述峰值搜索方法,其特征在于, 所述数据存储器每行存储有多个能量数据;所述第一级峰值筛选电路获取多个能量数据,为所述第一级峰值筛选电路每次从所述数据存储器中读取一行能量数据。
10.一种峰值搜索装置,其特征在于,所述装置包括第一级峰值筛选电路、第二级峰值筛选电路、和峰值排序电路,其中,第一级峰值筛选电路,用于获取多个能量数据,并对所获取的多个能量数据进行筛选, 得到一级峰值候选人;第二级峰值筛选电路,用于对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人;峰值排序电路,用于对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值。
11.根据权利要求10所述峰值搜索装置,其特征在于,所述第一级峰值筛选电路包括 P个加法器、Q个一级峰值候选人寄存器、Q个地址寄存器,P为大于1的整数,Q为不小于 P/2的最小整数;其中,P个加法器,用于对当前读入的P个能量数据、以及上次所读入能量数据的最后一个进行相邻数据间比较,得到一级峰值候选人;Q个一级峰值候选人寄存器,用于存放所述P个加法器得到的一级峰值候选人; Q个地址寄存器,用于存放所述P个加法器所得到各一级峰值候选人的地址。
12.根据权利要求11所述峰值搜索装置,其特征在于,所述第二级峰值筛选电路包括 Q个加法器、R个二级峰值候选人寄存器和R个地址寄存器,R为不小于Q/2的最小整数;其中,Q个加法器,用于读取所述第一级峰值筛选电路得到的一级峰值候选人,并对所读入一级峰值候选人、以及上次读入一级峰值候选人的最后一个进行相邻数据间比较、以及与预先设置的峰值门限比较,得到二级峰值候选人;R个二级峰值候选人寄存器,用于存放所述Q个加法器得到的二级峰值候选人; R个地址寄存器,用于存放所述Q个加法器所得到二级峰值候选人的地址。
13.根据权利要求10所述峰值搜索装置,其特征在于,所述峰值排序电路,用于读取二级峰值候选人,并将所读取的二级峰值候选人与已得到的各峰值进行比较,同时,将所读取二级峰值候选人的地址与已得到各峰值的地址之间的差值和预先配置的清零阈值进行比较;根据所述比较的结果,将所读取的二级峰值候选人剔除,或将所读取的二级峰值候选人存为峰值并对所得到的各峰值进行排序。
14.根据权利要求13所述峰值搜索装置,其特征在于,所述装置还包括峰值缓存器, 用于保存所述第二级峰值筛选电路得到的二级峰值候选人、以及二级峰值候选人的地址;所述第二级峰值筛选电路,还用于将得到的各二级峰值候选人及二级峰值候选人的地址保存到所述峰值缓存器;所述峰值排序电路,还用于从所述峰值缓存器读取二级峰值候选人。
15.根据权利要求10至14任一项所述峰值搜索装置,其特征在于,所述装置还包括 数据存储器和矢量处理器,其中,数据存储器,用于保存所有需搜索的能量数据;矢量处理器,用于对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到数据存储器中;所述第一级峰值筛选电路,还用于每次从所述数据存储器读取多个能量数据。
全文摘要
本发明公开了一种峰值搜索方法,所述方法包括第一级峰值筛选电路获取多个能量数据,并对所获取的多个能量数据进行筛选,得到一级峰值候选人;第二级峰值筛选电路对所述第一级峰值筛选电路得到的一级峰值候选人进行筛选,得到二级峰值候选人;峰值排序电路对所述第二级峰值筛选电路得到的二级峰值候选人进行排序和剔除假峰值处理,得到峰值。本发明还公开了一种峰值搜索装置,峰值搜索效率高,速度快,能够适用矢量处理器高吞吐率的要求,此外,本发明的峰值搜索装置只需要加法器和寄存器即可实现,简单易实现,面积小,成本低。
文档编号H04B1/7083GK102170678SQ20111012005
公开日2011年8月31日 申请日期2011年5月10日 优先权日2011年5月10日
发明者戴冠新, 黎立煌 申请人:中兴通讯股份有限公司