专利名称:一种峰值搜索方法及装置的利记博彩app
技术领域:
本发明涉及峰值搜索技术,尤其涉及一种峰值搜索方法及装置。
背景技术:
峰值搜索常用于小区搜索、多径搜索、时隙同步等应用场景,对于速度的要求比较高。例如,在长期演进(LTE, Long-Term Evolution)中,小区初搜时,每5ms进行15个4800序列的搜索,其它处理大概需要420k个时钟周期;邻区搜索启动时,每5ms进行3个4800序列的搜索,同时可能还会有下行接收、测量和邻区搜索等的其它任务。现有的峰值搜索电路,每次读入单个能量数据,并通过将读入的能量数据与之前得到的最大能量数据进行比较,直到各能量数据一一读取完毕时,才能得到能量数据的最大值,并需要反复进行正向、反向扫描,找到其他最大值,如申请号为200510098701.4的中国专利,就提出了一种WCDMA系统中峰值搜索的方法,现有的峰值搜索方法扫描效率低,功耗高,不能适应适量处理器高吞吐率的要求。
发明内容
有鉴于此,本发明的主要目的在于提供一种峰值搜索方法及装置,能够适应矢量处理器高吞吐率的要求。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种峰值搜索方法,所述方法包括获取多个能量数据,分别输入到第一比较电路的多个加法器中;所述第一比较电路的各加法器分别将输入自身的能量数据、与所述第一比较电路中连接自身的数据寄存器当前保存的能量数据进行比较,并更新所述第一比较电路中各数据寄存器保存的能量数据;在对所有需搜索的能量数据进行所述获取、以及比较之后,第二比较电路获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值。在上述方案中,在所述获取多个能量数据之前,所述方法还包括对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到存储器中。在上述方案中,所述存储器每行存储有多个能量数据;所述获取多个能量数据,为从所述存储器中读取一行能量数据。在上述方案中,所述更新所述第一比较电路中各数据寄存器保存的能量数据,包括在所述加法器比较得到所输入的能量数据大于自身所连接数据寄存器当前保存的能量数据时,所述加法器将所输入的能量数据替换掉自身连接数据寄存器中保存的能量数据。
在上述方案中,所述方法还包括在所述加法器比较得到所输入的能量数据大于自身所连接寄存器当前保存的能量数据时,所述加法器还将所输入能量数据的地址替换掉所述第一比较电路中连接自身的地址寄存器中当前保存的能量数据地址。在上述方案中,在所述获取多个能量数据之前,所述方法还包括将所述第一比较电路中各数据寄存器、和/或第一比较电路中各地址寄存器清零。在上述方案中,所述第二比较电路获取所述第ー比较电路中各数据寄存器保存的 能量数据,并将所获取的能量数据进行比较,得到峰值,包括所述第二比较电路中的加法器获取多个第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行相互比较,得到所获取能量数据中最大的能量数据,将所得到最大的能量数据作为所述峰值。在上述方案中,在得到峰值之后,所述方法还包括所述第二比较电路中的加法器将所得到的峰值保存到所述第二比较电路中的数据寄存器中,将所述峰值的地址保存到所述第二比较电路中的地址寄存器中。在上述方案中,在得到峰值之后,所述方法还包括验证所得到峰值的个数是否达到预设的峰值个数阈值,如果不是,则将所得到的峰值、以及所述峰值左右两边的一个或多个数据从所述所有需搜索的能量数据中清零后,重复进行峰值搜索;否则,结束当前峰值搜索。本发明还提供了一种峰值捜索装置,所述装置包括读数据控制电路、第一比较电路和第二比较电路;其中,第一比较电路包括多个加法器、多个数据寄存器,所述多个加法器与所述多个数据寄存器一一连接;数据寄存器,用于保存能量数据;加法器,用于将输入自身的能量数据、与自身所连接数据寄存器当前保存的能量数据进行比较,并更新所述各数据寄存器中保存的能量数据;读数据控制电路,用于获取多个能量数据,井分别输入到所述第一比较电路的多个加法器;第二比较电路,用于在对所有需搜索的能量数据进行所述获取、以及比较之后,获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值。在上述方案中,所述装置还包括存储器和矢量处理器,其中,存储器,用于保存所述所有需搜索的能量数据; 矢量处理器,用于对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到所述存储器中。在上述方案中,所述存储器,还用于每行存储多个能量数据;所述读数据控制电路,还用于从所述存储器中读取一行能量数据。在上述方案中,所述第一比较电路的各加法器,还用于在所输入的能量数据大于自身所连接数据寄存器当前保存的能量数据时,将所输入的能量数据替换掉自身所连接数据寄存器中保存的能量数据。在上述方案中,所述第一比较电路还包括多个地址寄存器,用于保存所述能量数据的地址,与所述加法器一一连接;所述加法器,还用于在所输入的能量数据大于所述寄存器当前保存的能量数据时,将所输入能量数据的地址替换掉自身所连接地址寄存器中保存的能量数据地址。在上述方案中,所述第二比较电路包括加法器和数据寄存 器,其中,所述第二比较电路的加法器,用于在对所有需搜索的能量数据进行所述获取、以及比较之后,获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值,并将所得到的峰值保存到所述第二比较电路的数据寄存器中;所述第二比较电路的数据寄存器,用于保存所述峰值。在上述方案中,所述第二比较电路还包括地址寄存器,用于保存所得到峰值的地址;所述第二比较电路的加法器,还用于将所得到峰值的地址保存到所述第二比较电路的地址寄存器中。在上述方案中,所述装置还包括循环控制电路和清零控制电路,其中,循环控制电路,用于验证所述第二比较电路所得到峰值的个数是否达到预设的峰值个数阈值,如果不是,则通知所述清零控制电路进行清零,并启动所述读数据控制电路、第一比较电路和第二比较电路,重复进行峰值搜索;否则,结束当前峰值搜索;清零控制电路,用于在接收到所述循环控制电路的通知时,将所述第二比较电路得到的峰值、以及所述峰值左右两边的一个或多个数据从所述存储器中清零。在上述方案中,所述清零控制电路,还用于将所述第一比较电路中各数据寄存器、和/或第一比较电路中各地址寄存器清零。本发明所提供的峰值搜索方法及装置,每个时钟周期读出多个能量数据,并将所读取的多个能量数据进行并行比较,在对所有能量数据进行并行比较之后,将并行比较得到的能量数据再进行比较,来得到峰值,只需正向搜索,不需要正向、反向交替进行,中间不需停顿,峰值搜索速度快,能够适用矢量处理器高吞吐率的要求,并且,本发明每轮扫描找到I个最大值,找n个最大值就循环n次,算法相对简单、有效,控制也很简单有效;此外,本发明的峰值搜索装置只需要加法器和寄存器即可实现,简单易实现,面积小,成本低。
图I为本发明峰值搜索方法的实现流程图;图2为本发明的峰值搜索系统的组成结构示意图;图3为本发明具体实施例峰值搜索装置中数据存储器的结构示意图;图4为本发明具体实施例峰值搜索装置中数据存储器每列的结构示意图;图5为本发明具体实施例峰值搜索装置中峰值搜索模块的组成结构示意图;图6为本发明具体实施例中峰值搜索模块的第一比较电路的组成结构示意图。
具体实施例方式本发明的基本思想是每次获取多个能量数据,并通过多个加法器进行比较,再根据比较结果更新所保存的能量数据;直到所有能量数据均获取并比较之后,将所保存的各能量数据再进行比较,得到峰值,如此,多个能量数据并行进行比较,速度快,峰值搜索效率高,能够适应矢量处理器高呑吐率的要求。本发明的峰值搜索方法,參照图I所示,主要可以包括以下步骤步骤101 :获取多个能量数据,分别输入到第一比较电路的多个加法器中;步骤102 :所述第一比较电路的各加法器分别将输入自身的能量数据、与所述第一比较电路中连接自身的数据寄存器当前保存的能量数据进行比较,并更新所述第一比较电路中各数据寄存器保存的能量数据;步骤103 :在对所有需搜索的能量数据进行所述获取、以及比较之后,第二比较电路获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值。
具体地,在步骤101中获取多个能量数据之前,所述方法还可以包括对已获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到存储器中。其中,所述存储器每行能够存储多个能量数据,步骤101中获取多个能量数据,具体为从所述存储器中读取一行能量数据。具体地,步骤102中,所述各加法器分别将输入自身的能量数据、与自身所连接数据寄存器当前保存的能量数据进行比较,在所述加法器比较得到所输入的能量数据大于自身所连接数据寄存器当前保存的能量数据时,所述加法器将所输入的能量数据替换掉自身连接数据寄存器中保存的能量数据;在所述加法器比较得到所输入的能量数据不大于自身所连接数据寄存器当前保存的能量数据时,保持所述数据寄存器中能量数据不变。这里,在所述加法器比较得到所输入的能量数据大于自身所连接寄存器当前保存的能量数据时,所述加法器还将所输入能量数据的地址替换掉所述第一比较电路中连接自身的地址寄存器中当前保存的能量数据地址。实际应用中,每个能量数据都有一个对应的地址。例如,能量数据存放在地址0 999,读取能量数据时,会产生读地址,如果一行存储8个能量数据,p = 8,则第一次从位于地址0处的能量数据开始读取,第二次从位于地址8处的能量数据开始读取,第三次从地址16处的能量数据开始读取,依此类推,因此,在读取能量数据时,就可以得到所读取能量数据的地址。这里,在获取能量数据之前,所述方法还可以包括将所述第一比较电路中各数据寄存器、和/或第一比较电路中各地址寄存器清零。具体地,在步骤103中,所述第二比较电路中的加法器获取多少第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行相互比较,得到所获取能量数据中最大的能量数据,将所得到最大的能量数据作为所述峰值。这里,步骤103之后,所述方法还可以包括所述第二比较电路中的加法器将所得到的峰值保存到所述第二比较电路中的数据寄存器中,将所述峰值的地址保存到所述第二比较电路中的地址寄存器中。在得到峰值之后,所述方法还可以包括验证所得到峰值的个数是否经达到预设的峰值个数阈值,如果不是,则将所得到的峰值、以及所述峰值左右两边的一个或多个数据从所有需搜索的能量数据中清零,即从需进行峰值搜索处理的所有能量数据的存储器中清零,之后,重复上述步骤101 103,直到所得到峰值的个数达到预设的峰值个数阈值;否贝U,结束当前峰值搜索。相应的,本发明还提供了一种峰值搜索装置,所述装置包括读数据控制电路、第一比较电路和第二比较电路;其中,第一比较电路包括多个加法器、多个数据寄存器,所述多个加法器与所述多个数据寄存器一一连接;数据寄存器,用于保存能量数据;加法器,用于将输入自身的能量数据、与自身所连接数据寄存器当前保存的能量数据进行比较,并更新所述各数据寄存器中保存的能量数据;读数据控制电路,用于获取多个能量数据,并分别输入到所述第一比较电路的多个加法器;第二比较电路,用于在对所有需搜索的能量数据进行所述获取、以及比较之后,获 取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值。其中,所述装置还可以包括存储器和矢量处理器,其中,存储器,用于保存所述所有需搜索的能量数据;矢量处理器,用于对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到所述存储器中;这里,所述存储器,还用于每行存储多个能量数据;所述读数据控制电路,还用于从所述存储器中读取一行能量数据。其中,所述第一比较电路的各加法器,还用于在所输入的能量数据大于自身所连接数据寄存器当前保存的能量数据时,将所输入的能量数据替换掉自身所连接数据寄存器中保存的能量数据。这里,所述第一比较电路还包括多个地址寄存器,用于保存所述能量数据的地址,与所述加法器一一连接;所述加法器,还用于在所输入的能量数据大于所述寄存器当前保存的能量数据时,将所输入能量数据的地址替换掉自身所连接地址寄存器中保存的能量数据地址。具体地,所述第二比较电路包括加法器和数据寄存器,其中,所述第二比较电路的加法器,用于在对所有需搜索的能量数据进行所述获取、以及比较之后,获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值,并将所得到的峰值保存到所述第二比较电路的数据寄存器中;所述第二比较电路的数据寄存器,用于保存所述峰值。这里,所述第二比较电路还可以包括地址寄存器,用于保存所得到峰值的地址;所述第二比较电路的加法器,还可以用于将所得到峰值的地址保存到所述第二比较电路的地址寄存器中。实际应用中,可以将第一比较电路分为多个比较单元,每个比较单元包括一个加法器、一个数据寄存器和一个地址寄存器,每个比较单元中加法器在判断所输入的能量数据大于该比较单元中数据寄存器中当前保存的能量数据时,将所述数据寄存器中当前保存的能量数据更新为所输入的能量数据,并将该比较单元中地址寄存器中当前保存的能量数据地址更新为所输入能量数据的地址。同理,第二比较电路可以包括一个比较单元,该比较単元包括ー个加法器、一个数据寄存器和ー个地址寄存器,加法器将所得到峰值的地址保存到该比较单元的地址寄存器,将所得到的峰值保存到该比较単元的数据寄存器中。其中,所述装置还可以包括循环控制电路和清零控制电路,其中,循环控制电路,用于验证所述第二比较电路所得到峰值的个数是否已达到预设的峰值个数阈值,如果不是,则通知所述清零控制电路进行清零,并启动所述读数据控制电路、加法器、寄存器和第ニ比较电路,重复进行峰值搜索;否则,结束当前峰值搜索;清零控制电路,用于在接收到所述循环控制电路的通知吋,将所述第二比较电路得到的峰值、以及所述峰值左右两边的一个或多个数据从所述存储器中清零。实际应用中,所述循环控制电路可以包括一个寄存器,用于记录当前已得到的峰值的个数。这里,所述清零控制电路,还可以用于将所述第一比较电路中各数据寄存器、和/或第一比较电路中各地址寄存器清零。
实施例一实际应用中,峰值搜索前的计算任务由矢量处理器来完成,峰值搜索的过程可以由硬件加速器来实现。如图2所示,峰值搜索装置可以包括射频接收模块、数据存储器、矢量处理器和峰值搜索模块,其中,射频接收模块,用于接收ADC采样的数据,并将所得到的采用数据存储到数据存储器;矢量处理器,用于从所述数据存储器读取采样数据,对所读取的采样数据进行处理后,得到能量数据,并将所得到的能量数据保存到数据存储器;峰值搜索模块,用于从数据存储器中读取能量数据,进行峰值搜索处理,找到需要的峰值,将所找到的峰值保存,并返回给所述矢量处理器。具体地,射频接收模块接收射频芯片中的ADC采样的数据,并将采样数据存储到数据存储器,矢量处理器从所述数据存储器中读取采样数据,并对采样数据进行相关运算、过滤运算、取模运算处理后,提取实部,得到能量数据,将所得到的能量数据再保存到所述数据存储器中;在矢量处理器对峰值捜索模块进行參数设置后,峰值搜索模块从数据存储器中读取能量数据,进行峰值搜索处理,找到峰值,并返回给矢量处理器。实际应用中,矢量处理器对采样数据进行处理的过程可以包括矢量处理器以流水线的方式从数据存储器中读取采样数据,再进行下行采样数据与主同步序列(PSS)相关和滤波等运算,将所得到的运算结果(包括I通道的相关、滤波后的结果和Q通道相关、滤波后的結果)存储到数据存储器中,进行取模运算处理时,再从数据存储器中读取上述相关和过滤后的结果进行取模运算处理,之后,从取模运算处理的结果中再提取实部,得到能量数据,再将所得到的能量数据写入到数据存储器中。其中,矢量处理器按照公式(I)进行取模运算处理后,所得到结果的实部为能量数据,保存于数据存储器的低16比特,所得到结果中的虚部为0,保存于数据存储器的高16比特。I r I= r r =Re2+Im2广丄)其中,F表示一个复数信号,Re为?的实部,Im为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比特的存储单元,矢量处理器能够一次读取存储器的一列数据,即P*2个能量数据。如果矢量处理器只进行相关运算、滤波运算等操作过后,不进行提取实部的操作,然后将结果写回存储器中,那么,其结果还是存储器的一列有P*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)。其中,矢量处理器还用于对所述峰值搜索模块进行参数设置。峰值搜索模块根据所述矢量处理器的参数设置,对读取到的能量数据进行峰值搜索处理。其中,峰值搜索模块可以由硬件加速器来实现,可以访问数据存储器,每次从数据存储器中读出16*p比特的能量数据,即读出P个能量数据,并以流水线的方式,对每次读取的能量数据进行峰值搜索,最后,将每次峰值搜索的结果进行比较找到峰值,如此循环,在所述能量数据中找到要搜索的n个最大值,其中,n为大于0的整数。具体地,如图5所示,峰值搜索模块主要可以包括软件接口、读数据控制电路、第一比较电路、第二比较电路、清零控制电路和循环控制电路。其中,矢量处理器将要配置的参数写到软件接口中,来向峰值搜索模块配置参数。该软件接口具体可以是一个或多个用于保存所配置参数的寄存器。读数据控制电路是按照数据存储器读写时序(协议)向数据存储器发出读请求和读地址信号,在接收到数据存储器返回的P个能量数据后,将所述P个能量数据分别输入到第一比较电路中的P个加法器中。如图6所示,第一比较电路可以包括p个加法器、P个数据寄存器、P个地址寄存器,其中,一个加法器分别连接一个数据寄存器、和一个地址寄存器,加法器与数据寄存器
对应,加法器和地址寄存器对应,数据寄存器和地址寄存器对应,各加法器将所述读数据控制电路发送的能量数据、与自身所连接数据寄存器中的能量数据进行比较,根据比较结果,决定是否更新数据寄存器中的能量数据、以及地址寄存器中的地址。实际应用中,如果数据存储器中一个bank存储了 p个能量数据,其中,p为大于0的整数,一次读入P个能量数据到第一比较电路,为实现并行比较,第一比较电路中需要包含P个加法器。也可以根据实际需要并行处理的能量数据的数量,调整第一比较电路中加法器的数量。
在第一比较电路对所有能量数据比较处理后,第二比较电路用于从第一比较电路中的P个数据寄存器中获取P个能量数据、并从P个地址寄存器中获取到所述P个能量数据的地址,将所获取到的P个能量数据再进行比较,找到峰值,再找到该峰值所对应的地址,并将所找到的峰值、以及该峰值的地址保存。其中,所述第二比较电路可以包括ー个加法器、一个数据寄存器和ー个地址寄存器,其中,加法器用于从第一比较电路中获取P个能量数据、以及所述P个能量数据的地址,并将所获取的P个能量数据进行比较,找到峰值;数据寄存器用于保存所述加法器找到的峰值,地址寄存器用于保存所找到峰值的地址。
清零控制电路,用于根据第二比较电路得到的結果,对所述数据存储器进行清零操作,具体地,将当前找到的峰值、以及该峰值左右两边的m个能量数据从所述数据存储器
中清零。循环控制电路,用于控制上述的读数据控制电路、第一比较电路、第二比较电路、清零控制电路循环工作,以找到多个峰值。峰值搜索模块进行峰值搜索的处理过程,具体流程如下步骤0 :矢量处理器在峰值搜索模块的软件接口中写入要配置的峰值搜索參数,为峰值捜索模块配置峰值搜索參数;具体地,矢量处理器所配置的峰值搜索參数可以包括表示要读取能量数据地址的源数据地址src_data_addr、要读取能量数据的数据长度data_len、峰值个数阈值n、峰值左右两边需清除/屏蔽的数据个数m、数据存储器中用于存放最大值的地址dest_data_addr、用于表示存储于寄存器还是数据存储器的參数dest_sel等。实际应用中,峰值左右两边需清除/屏蔽的数据个数m为经验參数,如果滤波效果好、或者射频信号的信噪比高,可以设置较小的数值。步骤I :启动之时,清零控制电路将第一比较电路中的p个数据寄存器、以及P个地址寄存器清零。步骤2 :读数据控制电路验证所述数据存储器中是否有还有未读取的能量数据,如果是,则每时钟周期从保存有能量数据的数据存储器中读取P个能量数据,分别输入到第一比较电路中的p个加法器中,否则,继续步骤4 ;具体地,读数据控制电路可以通过验证当前读取数据的周期是否已经达到data_len/p个周期,如果是,则数据存储器中所有的能量数据均已读取,否则,还有未读取的能量数据。步骤3 p个加法器,分别将自身所接收到的能量数据与自身所连接数据寄存器当前保存的能量数据进行比较,如果所接收到的能量数据大于所述数据寄存器中的能量数据,则将所接收到的能量数据替换掉所述数据寄存器中当前保存的能量数据,并将所接收到能量数据的地址存入自身所连接的地址寄存器中;如果所接收到的能量数据不大于所述数据寄存器当前保存的能量数据,则保持自身所连接数据寄存器当前保存的数据不变,并保持所述地址寄存器中当前保存的地址不变,返回步骤2 ;步骤4:第二比较电路从第一比较电路中的p个数据寄存器中读取能量数据,从第一比较电路中的P个地址寄存器中获取所读取各能量数据的地址;之后,第二比较电路将所读取到的P个能量数据进行比较,将所述P个能量数据中最大的能量数据确定为峰值,找到峰值,并找到所述峰值的地址,最后,将所找到的峰值、以及该峰值的地址保存到指定的位置,如将峰值保存到用于存储峰值的数据寄存器、将峰值的地址保存到用于存储峰值地址的地址寄存器,或者将所找到的峰值、以及该峰值的地址保存到数据存储器中用于保存峰值的结果区域中,如此,ー轮扫描结束,找到I个峰值;实际应用中,如果要搜索的峰值个数较多,可以将搜索到的峰值存储在数据存储器中,如果要搜索的峰值个数较少,可以将搜索到的峰值存放于便于访问的结果寄存器中。步骤5 :对所找到的峰值个数进行累加I并保存;这里,上述的峰值搜索模块还可以包括用于保存表示峰值搜索进程的状态參数的寄存器、和用于保存所找到峰值个数的寄存器。毎次第二比较电路找到ー个峰值后,所述保存表示峰值搜索进程的状态參数的寄存器会将自身所保存的峰值个数加I。实际应用中,所述用于保存所找到峰值个数的寄存器 会在每经过ー个周期之后,将所保存的峰值个数累加I。步骤6:循环控制电路判断所保存的峰值个数是否达到了预先配置的“峰值个数阈值n”,如果是,则结束当前流程,否则继续步骤7 ;具体地,循环控制电路从所述用于保存所找到峰值个数的寄存器中获取当前所找到峰值的个数,判断所找到峰值的个数是否达到预设的峰值个数阈值,如果是,则结束峰值捜索,否则,控制所述读数据控制电路、第一比较电路、第二比较电路、清零控制电路继续搜索峰值。步骤7 :清零控制电路将数据存储器中的峰值、以及峰值左右两边的m个能量数据清零,并返回步骤1,重复上述过程。在上述过程中,能量数据的读取和比较以流水线方式进行,且p个能量数据按列、并行地比较,中间不停顿,速度快;并且,峰值搜索模块主要部分是多个加法器、多个数据寄存器和多个地址寄存器,电路简单、易于实现,占用的面积小。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种峰值搜索方法,其特征在于,所述方法包括 获取多个能量数据,分别输入到第一比较电路的多个加法器中;所述第一比较电路的各加法器分别将输入自身的能量数据、与所述第一比较电路中连接自身的数据寄存器当前保存的能量数据进行比较,并更新所述第一比较电路中各数据寄存器保存的能量数据; 在对所有需搜索的能量数据进行所述获取、以及比较之后,第二比较电路获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值。
2.根据权利要求I所述峰值搜索方法,其特征在于,在所述获取多个能量数据之前,所述方法还包括 对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到存储器中。
3.根据权利要求2所述峰值搜索方法,其特征在于, 所述存储器每行存储有多个能量数据; 所述获取多个能量数据,为从所述存储器中读取一行能量数据。
4.根据权利要求I所述峰值搜索方法,其特征在于,所述更新所述第一比较电路中各数据寄存器保存的能量数据,包括 在所述加法器比较得到所输入的能量数据大于自身所连接数据寄存器当前保存的能量数据时,所述加法器将所输入的能量数据替换掉自身连接数据寄存器中保存的能量数据。
5.根据权利要求4所述峰值搜索方法,其特征在于,所述方法还包括 在所述加法器比较得到所输入的能量数据大于自身所连接寄存器当前保存的能量数据时,所述加法器还将所输入能量数据的地址替换掉所述第一比较电路中连接自身的地址寄存器中当前保存的能量数据地址。
6.根据权利要求5所述峰值搜索方法,其特征在于,在所述获取多个能量数据之前,所述方法还包括 将所述第一比较电路中各数据寄存器、和/或第一比较电路中各地址寄存器清零。
7.根据权利要求I所述峰值搜索方法,其特征在于,所述第二比较电路获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值,包括 所述第二比较电路中的加法器获取多个第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行相互比较,得到所获取能量数据中最大的能量数据,将所得到最大的能量数据作为所述峰值。
8.根据权利要求7所述峰值搜索方法,其特征在于,在得到峰值之后,所述方法还包括 所述第二比较电路中的加法器将所得到的峰值保存到所述第二比较电路中的数据寄存器中,将所述峰值的地址保存到所述第二比较电路中的地址寄存器中。
9.根据权利要求I至8任一项所述峰值搜索方法,其特征在于,在得到峰值之后,所述方法还包括 验证所得到峰值的个数是否达到预设的峰值个数阈值,如果不是,则将所得到的峰值、以及所述峰值左右两边的一个或多个数据从所述所有需搜索的能量数据中清零后,重复进行峰值搜索;否则,结束当前峰值搜索。
10.一种峰值搜索装置,其特征在于,所述装置包括读数据控制电路、第一比较电路和第二比较电路;其中, 第一比较电路包括多个加法器、多个数据寄存器,所述多个加法器与所述多个数据寄存器一一连接;数据寄存器,用于保存能量数据;加法器,用于将输入自身的能量数据、与自身所连接数据寄存器当前保存的能量数据进行比较,并更新所述各数据寄存器中保存的能量数据; 读数据控制电路,用于获取多个能量数据,并分别输入到所述第一比较电路的多个加法器; 第二比较电路,用于在对所有需搜索的能量数据进行所述获取、以及比较之后,获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值。
11.根据权利要求10所述峰值搜索装置,其特征在于,所述装置还包括存储器和矢量处理器,其中, 存储器,用于保存所述所有需搜索的能量数据; 矢量处理器,用于对获取的采样数据进行相关运算处理、过滤运算处理后,再进行取模运算处理,从取模运算处理的结果中提取实部,得到所述能量数据并保存到所述存储器中。
12.根据权利要求10所述峰值搜索装置,其特征在于, 所述存储器,还用于每行存储多个能量数据; 所述读数据控制电路,还用于从所述存储器中读取一行能量数据。
13.根据权利要求10所述峰值搜索装置,其特征在于,所述第一比较电路的各加法器,还用于在所输入的能量数据大于自身所连接数据寄存器当前保存的能量数据时,将所输入的能量数据替换掉自身所连接数据寄存器中保存的能量数据。
14.根据权利要求13所述峰值搜索装置,其特征在于,所述第一比较电路还包括多个地址寄存器,用于保存所述能量数据的地址,与所述加法器一一连接; 所述加法器,还用于在所输入的能量数据大于所述寄存器当前保存的能量数据时,将所输入能量数据的地址替换掉自身所连接地址寄存器中保存的能量数据地址。
15.根据权利要求10所述峰值搜索装置,其特征在于,所述第二比较电路包括加法器和数据寄存器,其中, 所述第二比较电路的加法器,用于在对所有需搜索的能量数据进行所述获取、以及比较之后,获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值,并将所得到的峰值保存到所述第二比较电路的数据寄存器中; 所述第二比较电路的数据寄存器,用于保存所述峰值。
16.根据权利要求10所述峰值搜索装置,其特征在于,所述第二比较电路还包括地址寄存器,用于保存所得到峰值的地址; 所述第二比较电路的加法器,还用于将所得到峰值的地址保存到所述第二比较电路的地址寄存器中。
17.根据权利要求10至16任一项所述峰值搜索装置,其特征在于,所述装置还包括循环控制电路和清零控制电路,其中,循环控制电路,用于验证所述第二比较电路所得到峰值的个数是否达到预设的峰值个数阈值,如果不是,则通知所述清零控制电路进行清零,并启动所述读数据控制电路、第一比较电路和第二比较电路,重复进行峰值搜索;否则,结束当前峰值搜索; 清零控制电路,用于在接收到所述循环控制电路的通知时,将所述第二比较电路得到的峰值、以及所述峰值左右两边的一个或多个数据从所述存储器中清零。
18.根据权利要求17所述峰值搜索装置,其特征在于,所述清零控制电路,还用于将所述第一比较电路中各数据寄存器、和/或第一比较电路中各地址寄存器清零。
全文摘要
本发明公开了一种峰值搜索方法,所述方法包括获取多个能量数据,分别输入到第一比较电路的多个加法器中;所述第一比较电路的各加法器分别将输入自身的能量数据、与所述第一比较电路中连接自身的数据寄存器当前保存的能量数据进行比较,并更新所述第一比较电路中各数据寄存器保存的能量数据;在对所有需搜索的能量数据进行所述获取、以及比较之后,第二比较电路获取所述第一比较电路中各数据寄存器保存的能量数据,并将所获取的能量数据进行比较,得到峰值。本发明还公开了一种峰值搜索装置,峰值搜索速度快,能够适用矢量处理器高吞吐率的要求,算法相对简单、有效,硬件简单易实现,面积小,成本低。
文档编号H04W48/16GK102769893SQ20111011668
公开日2012年11月7日 申请日期2011年5月6日 优先权日2011年5月6日
发明者戴冠新, 黎立煌 申请人:中兴通讯股份有限公司