CN112667959B - 混合基dft处理方法、装置、设备及存储介质 - Google Patents

混合基dft处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112667959B
CN112667959B CN202011615527.7A CN202011615527A CN112667959B CN 112667959 B CN112667959 B CN 112667959B CN 202011615527 A CN202011615527 A CN 202011615527A CN 112667959 B CN112667959 B CN 112667959B
Authority
CN
China
Prior art keywords
level
target
calculation
dft
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011615527.7A
Other languages
English (en)
Other versions
CN112667959A (zh
Inventor
张家辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jinzhuo Technology Co ltd
Original Assignee
Shanghai Jinzhuo Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jinzhuo Technology Co ltd filed Critical Shanghai Jinzhuo Technology Co ltd
Priority to CN202011615527.7A priority Critical patent/CN112667959B/zh
Publication of CN112667959A publication Critical patent/CN112667959A/zh
Application granted granted Critical
Publication of CN112667959B publication Critical patent/CN112667959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明实施例公开了一种混合基DFT处理方法、装置、设备及存储介质。该方法包括:将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;对所述目标序列进行与目标计算层级对应的DFT处理。本发明实施例的技术方案,通过充分利用矢量资源,提高DFT的计算速度,可以实现任意点数组合的混合基DFT。

Description

混合基DFT处理方法、装置、设备及存储介质
技术领域
本发明实施例涉及数字信号处理与通信技术领域,尤其涉及一种混合基DFT处理方法、装置、设备及存储介质。
背景技术
现有技术中,在实现混合基离散傅里叶变换(Discrete Fourier Transform,DFT)时,为了能使得DFT的计算速度达到最快,基本都是以专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)方式硬件实现。这种方式需要把所有设计的DFT点数都做入硬件中,使得ASIC芯片具有一定的通用性,但是这样导致成本较高。
另外,对于专有网络所需的特定DFT点数,如果使用ASIC方式硬件实现,需要重新设计并流片,不但增加成本而且耗时较长。而使用软件实现时,如果采用非矢量方式完成,则完成一次DFT计算需要花费的时间较长,即使采用软件矢量方式完成,如果不能充分利用矢量资源,仍然会耗费较多的时间。
发明内容
本发明提供一种混合基DFT处理方法、装置、设备及存储介质,以充分利用矢量资源,提高DFT的计算速度,可以实现任意点数组合的混合基DFT。
第一方面,本发明实施例提供了一种混合基离散傅里叶变换DFT处理方法,包括:
将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;
在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;
对目标序列进行与目标计算层级对应的DFT处理。
可选的,还包括:
在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至非目标计算层级,则根据非目标计算层级的基数,生成与输入至非目标计算层级的各层级输入序列分别对应的多个待计算序列;
采用单指令流多数据流(Single Instruction Multiple Data,SIMD)指令,对各待计算序列进行与非目标计算层级对应的DFT处理。
可选的,根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级,包括:
根据原始输入序列的DFT点数,确定与输入至各计算层级的各层级输入序列对应的待计算数据量;
将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级。
可选的,将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级,包括:
获取矢量运算单元的计算上限值,矢量运算单元用于计算离散傅里叶变换;
将小于计算上限值的待计算数据量作为目标数据量,将与各目标数据量对应的计算层级作为目标计算层级。
可选的,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,包括:
如果执行至目标计算层级,则将输入至目标计算层级的多个层级输入序列分别由列数据转换为行数据;
对各行数据进行重排序,并对已经排序的所有行数据按列进行读取,得到一个顺序的目标序列。
可选的,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,包括:
采用矢量指令,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,矢量指令包括数字信号处理器指令。
可选的,原始输入序列为接收机检测的接收信号;
在完整执行与混合基对应的多个计算层级的DFT处理操作之后,还包括:
根据末尾计算层级生成的DFT处理结果,对接收信号的传输信道进行信道估计。
第二方面,本发明实施例还提供了一种混合基DFT处理装置,包括:
预处理模块,用于将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;
重排序模块,用于在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;
DFT处理模块,用于对目标序列进行与目标计算层级对应的DFT处理。
第三方面,本发明实施例还提供了电子设备,电子设备包括:
一个或多个数字信号处理器,数字信号处理器支持矢量编程,数字信号处理器中包括矢量运算单元;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的混合基DFT处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的混合基DFT处理方法。
本发明实施例的技术方案,通过将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;对目标序列进行与目标计算层级对应的DFT处理,解决了现有技术中实现DFT处理的时间较长的问题,通过充分利用矢量资源,提高DFT的计算速度,并实现任意点数组合的混合基DFT。
附图说明
图1是本发明实施例一中的一种混合基DFT处理方法的流程图;
图2a是本发明实施例二中的一种混合基DFT处理方法的流程图;
图2b是本发明实施例二中的一种计算混合基DFT的流程图;
图2c是本发明实施例二中的一种基于矢量运算单元计算DFT的示意图;
图2d是本发明实施例二中的一种数据重排序的示意图;
图3是本发明实施例三中的一种混合基DFT处理装置的结构示意图;
图4是本发明实施例四中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的一种混合基DFT处理方法的流程图,本实施例可适用于通过软件实现对任意点数组合的混合基DFT的快速处理的情况,该方法可以由混合基DFT处理装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在提供DFT计算服务的电子设备中。如图1所示,该方法包括:
步骤110、将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级。
本实施例中,待计算的原始输入序列为顺序的DFT输入数据,即待进行DFT处理的数据,混合基可以是将原始输入序列的长度进行分解得到的乘数因子。示例性的,假设原始输入序列的长度为1408点,则与原始输入序列对应的混合基可以为4*4*8*11,此时,1408点的混合基DFT计算被划分为4个计算层级,每个计算层级对应一个基数。例如,第一计算层级对应基数4,即需要对输入至第一计算层级的数据进行基4计算,第三计算层级对应基数8,即需要对输入至第三计算层级的数据进行基8计算。
本实施例中,在根据混合基将DFT计算划分为多个计算层级之后,可以进一步根据原始输入序列的DFT点数,即原始输入序列包括的数据数量,确定输入至各个计算层级的层级输入序列,进而确定各计算层级对应的层级输入序列是否能完全利用矢量资源,并将不能完全利用矢量资源的计算层级作为需要进行序列重排的目标计算层级。
本实施例中,通过将对原始输入序列的完整DFT处理操作分为多个计算层级的DFT处理操作,使得每个计算层级只需要简单的加减操作或者少量乘法操作就可以完成当前计算层级的蝶形运算,从而大大减少整个混合基DFT计算中乘法操作的次数。
步骤120、在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列。
本实施例中,在对原始输入序列逐计算层级的执行DFT处理操作的过程中,每个计算层级进行DFT处理之后得到的数据,会作为下一计算层级的输入数据。因此,输入至目标计算层级的多个层级输入序列,可以是目标计算层级的上一计算层级对其各层级输入序列进行相应的DFT处理后得到的数据。
示例性的,对于长度为1408的原始输入序列,混合基为4*4*8*11,如果当前计算层级为与第一级基数4对应的第一计算层级,则与当前计算层级对应的层级输入序列为原始输入序列。并且,当前计算层级对原始输入序列进行基4计算后得到的4个输出序列可以作为与第二计算层级对应的层级输入序列。假设当前计算层级为与第二级基数4对应的第二计算层级,则对与当前计算层级对应的各个层级输入序列进行基4计算后得到的16个输出序列可以作为与第三计算层级对应的层级输入序列。
本实施例中,对于支持矢量计算的数字信号处理器(Digital Signal Processor,DSP),由于DFT计算满足矢量计算的结构时,可以大大提高DFT计算效率,因此,当执行至目标计算层级时,为了使得目标计算层级的DFT计算可以最大限度的使用矢量运算单元,需要按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,将目标序列作为目标计算层级对应的层级输入序列,以提高DFT计算的效率。
步骤130、对目标序列进行与目标计算层级对应的DFT处理。
本实施例中,可以采用单指令流多数据流指令,对目标序列进行与目标计算层级对应的DFT处理。其中,单指令流多数据流指令可用于实现数据并行处理,根据一条单独的单指令流多数据流指令,可以同时执行多个运算操作,能够大幅度地提高在多媒体和信号处理中大量使用的一些矢量操作的计算速度,例如坐标变换和旋转操作,增加处理器的吞吐量。
本实施例中,在将目标计算层级对应的多个层级输入序列重排序为目标序列之后,可以根据目标计算层级的基数对目标序列进行均分,得到多个待计算序列。示例性的,假设目标计算层级的基数为8,目标计算层级对应的层级输入序列为重排序后的目标序列,则可以将目标序列均分为8份,得到8个待计算序列,然后采用单指令流多数据流指令,对各待计算序列并行进行基8DFT计算。
可选的,原始输入序列为接收机检测的接收信号;在完整执行与混合基对应的多个计算层级的DFT处理操作之后,还可以包括:根据末尾计算层级生成的DFT处理结果,对接收信号的传输信道进行信道估计。
本实施例中,原始输入序列可以是接收机检测的接收信号,接收信号可以是接收机中的数字信号处理器可以处理的任意信号,例如,图像信号、语音信号或者视频信号等等。在完整的执行完与混合基对应的多个计算层级的DFT处理操作之后,可以根据最终得到的DFT处理结果,对接收信号的传输信道进行频域信道估计,以得到信道的冲激响应,从而为后续的信号相干解调提供所需的信道状态信息。
本发明实施例的技术方案,通过将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;对目标序列进行与目标计算层级对应的DFT处理,解决了现有技术中实现DFT处理的时间较长的问题,通过充分利用矢量资源,提高DFT的计算速度,并实现任意点数组合的混合基DFT。
实施例二
图2a是本发明实施例二中的一种混合基DFT处理方法的流程图,本实施例在上述实施例的基础上进一步细化,提供了根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级的具体实施方式,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列的具体实施方式等。下面结合图2a对本申请实施例二中提供的一种混合基DFT处理方法进行说明,包括以下步骤:
步骤210、获取原始输入序列以及混合基,并将混合基划分为多个计算层级。
本实施例中,原始输入序列为顺序的DFT输入数据,在对原始输入序列进行DFT处理之前,需要先确定与原始输入序列对应的混合基,混合基中包括的基数数量决定完整的DFT处理对应的计算层级的数量。示例性的,如图2b所示,假设与原始输入序列对应的混合基包括A-X共26级基数,则先后经过26个计算层级的DFT处理后,才能完成对原始输入序列input的完整的DFT处理。
步骤220、根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级。
本实施例中,由于各计算层级对应的DFT计算是否满足矢量计算结构,会影响该计算层级的DFT计算效率,因此,在根据混合基对原始输入序列进行DFT处理之前,需要预先根据原始输入序列的DFT点数,确定各计算层级的DFT计算是否能够充分利用矢量运算单元的计算能力,将不能充分利用矢量运算单元的计算能力的计算层级作为目标计算层级。
可选的,根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级,可以包括:根据原始输入序列的DFT点数,确定与输入至各计算层级的各层级输入序列对应的待计算数据量;将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级。
本实施例中,由于各计算层级进行DFT处理时,会先根据当前计算层级对应的基数对当前计算层级的各层级输入序列分别进行分解,得到多个待计算序列,进而对各待计算序列进行相应的DFT处理,因此,可以根据各待计算序列包括的待计算数据量是否满足完全矢量计算条件,来确定各计算层级的各层级输入序列是否能充分利用矢量资源。
其中,输入至各计算层级的各层级输入序列对应的待计算数据量,可以根据原始输入序列的DFT点数确定,例如,原始输入序列的DFT点数为1408,混合基为4*4*8*11,则第一计算层级对应的待计算数据量为352,第二计算层级对应的待计算数据量为88,第三计算层级对应的待计算数据量为11,第四计算层级对应的待计算数据量为1。
可选的,将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级,可以包括:获取矢量运算单元的计算上限值,矢量运算单元用于计算离散傅里叶变换;将小于计算上限值的待计算数据量作为目标数据量,将与各目标数据量对应的计算层级作为目标计算层级。
本实施例中,每个矢量运算单元都有自身的计算上限值,以DSP CEVA-XC4500为例,由于XC4500包含两个矢量计算单元(Vector Computation Unit,VCU),每个矢量计算单元支持16路计算,即一次可以计算16个双字节大小的数据,因此,为了充分利用矢量计算单元,提高混合基DFT的计算效率,可以将数据按照16个双字节大小进行排列,以便于使用SIMD指令同时执行多个运算操作。
示例性的,假设要进行1408点的DFT处理,混合基为4*4*8*11,即将1408点DFT分为4*4*8*11四个计算层级进行计算,则图2c可以表示为与第一级基数4对应的第一计算层级,从图2c中可以看出,当数据按照16个双字节大小进行排列时,使用SIMD指令可以完全利用矢量计算单元,每次可以计算16组数据,而使用非SIMD指令每次只能计算1组数据。
本实施例中,如果待计算序列所包含的待计算数据量小于计算上限值,则认为矢量计算单元即使同时对待计算序列中的所有数据进行计算也无法达到自身的计算上限值,此时,可以确定该待计算数据量不满足完全矢量计算条件,可以将该待计算数据量作为目标数据量,进而将目标数据量对应的计算层级作为目标计算层级;如果待计算序列所包含的数据量大于或等于计算上限值,则认为待计算序列中的数据可以满足矢量计算结构,即矢量计算单元可以达到自身的计算上限值,此时,可以确定该待计算数据量满足完全矢量计算条件,将该待计算数据量作为非目标数据量,进而将非目标数据量对应的计算层级作为非目标计算层级。
示例性的,如图2d所示,对于1408点的DFT计算,混合基为4*4*8*11,当处于第一计算层级时,通过计算得出1408点的原始输入序列可以分为4个长度为352点的待计算序列,而352大于矢量计算单元的计算上限值16,因此认为第一计算层级对应的层级输入序列满足完全矢量计算条件,每次都可以计算16组数据。当处于第二计算层级时,通过计算得出每个长度为352点的层级输入序列可以被分为4个长度为88点的待计算序列,由于88大于16,因此,可以认为第二计算层级对应的层级输入序列满足完全矢量计算条件。当处于第三计算层级时,通过计算得出每个长度为88点的层级输入序列可以被分为8个长度为11点的待计算序列,由于11小于16,因此,待计算序列无法满足矢量计算单元的计算上限,可以认为第三计算层级对应的层级输入序列不满足完全矢量计算条件。
步骤230、在对原始输入序列逐计算层级的执行DFT处理操作过程中,判断当前是否执行至目标计算层级,如果是,则执行步骤250,如果不是,则执行步骤240。
本实施例中,在对原始输入序列逐计算层级的执行DFT处理操作过程中,由于输入至目标计算层级的各层级输入序列不能充分利用矢量资源,需要对各层级输入序列进行重排序处理,以满足矢量计算结构,使得矢量计算单元可以达到自身的计算上限值,因此,针对当前执行的计算层级,需要先确定当前计算层级是否是目标计算层级,如果是目标计算层级,则执行步骤250对输入至目标计算层级的各层级输入序列进行重排序;如果是非目标计算层级,则执行步骤240,直接对输入至非目标计算层级的各层级输入序列进行DFT处理。
步骤240、如果执行至非目标计算层级,则根据非目标计算层级的基数,生成与输入至非目标计算层级的各层级输入序列分别对应的多个待计算序列。
本实施例中,当确定当前执行至非目标计算层级,即当前计算层级可以充分利用矢量计算单元时,可以根据当前计算层级的基数,将与输入至当前计算层级的多个层级输入序列分别划分为多个待计算序列,对各待计算序列进行与基数对应的DFT处理。其中,输入至第一计算层级的层级输入序列为原始输入序列。
示例性的,如图2d所示,对于1408点的原始输入序列,混合基为4*4*8*11,由于第一计算层级满足完全矢量计算条件,因此会将长度为1408的原始输入序列分为4个长度为352点的待计算序列,也就是将1408点DFT表示为352个的4点DFT的线性组合。由于第二计算层级也满足完全矢量计算条件,因此,会将经过第一计算层级的DFT处理得到的每个352点的层级输入序列,分别分为4个88点的待计算序列,也就是将352点的DFT表示为4个88点DFT的线性组合。
步骤250、如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,并根据目标计算层级对应的基数,生成与目标序列对应的多个待计算序列。
本实施例中,如果某个计算层级的DFT运算不能充分利用矢量运算单元的计算能力,则在对该计算层级对应的层级输入序列进行DFT处理之前,需要先对该计算层级对应的各层级输入序列进行重排序,以使得该计算层级的DFT计算可以最大限度的使用矢量运算单元,提高DFT计算的效率。如图2b所示,假设基数C对应的第三计算层级的层级输入序列无法充分利用矢量计算单元,则需要先按照设定标准,将输入至第三计算层级的多个层级输入序列重排序为一个顺序的目标序列,然后对目标序列进行相应的DFT处理。
可选的,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,可以包括:如果执行至目标计算层级,则将输入至目标计算层级的多个层级输入序列分别由列数据转换为行数据;对各行数据进行重排序,并对已经排序的所有行数据按列进行读取,得到一个顺序的目标序列。
本实施例中,每个计算层级进行DFT处理之后,输出的数据的顺序都会有相应的改变,根据混合基DFT的计算公式,数据的顺序改变是因为进行了行存储、列读取操作。而重排序的目的是,通过将已经改变顺序的输出数据再次进行按行存储和按列读取操作,最后输出顺序的数据,从而使后续的计算仍然能最大限度的使用矢量资源。
示例性的,如图2d所示,当需要对输入至第三计算层级的16个88点的层级输入序列进行重排序时,可以先分别对各层级输入序列进行行列变换,也就是将各层级输入序列依次由列数据转换为行数据,然后将各个行数据的首位数据按照序号由小到大的顺序进行排序,从而实现对所有的行数据进行排序,例如,将首位数据为x0的行数据排到第一行,将首位数据为x1的行数据排到第2行,依次类推,然后对排好序的行数据按列进行顺序读取,得到一个顺序的目标序列x0-x1407。
可选的,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,可以包括:采用矢量指令,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,矢量指令包括数字信号处理器指令。
本实施例中,重排序的操作可以利用数字信号处理器的矢量指令实现,使用矢量指令能够加快重排序的完成速度,从而提高实现混合基DFT的速度。
步骤260、采用单指令流多数据流指令,对各待计算序列进行对应的DFT处理。
本实施例中,单指令流多数据流指令可实现数据并行处理,使用一条单指令流多数据流指令可以同时执行多个运算操作,能够大幅度地提高对大量的矢量操作的计算速度。
本实施例中,如果当前执行至目标计算层级,则采用单指令流多数据流指令,对目标序列对应的多个待计算序列进行对应的DFT处理;如果当前执行至非目标计算层级,则采用单指令流多数据流指令,对与非目标计算层级的各层级输入序列分别对应的多个待计算序列进行对应的DFT处理。
步骤270、判断是否完成末尾计算层级的DFT处理,若是,则执行步骤280,否则,更新当前计算层级,并返回执行步骤230,判断当前计算层级是否是目标计算层级,直至完成末尾计算层级的DFT处理。
本实施例中,在完成当前计算层级的DFT处理之后,需要判断当前计算层级是否是末尾计算层级,即是否是与最后一级基数对应的计算层级,如果是,则已经完成了完整的DFT处理,当前计算层级得到的DFT处理结果即为最终的DFT处理结果,如果当前计算层级不是末尾计算层级,则表示尚未完成完整的DFT处理,此时,可以将当前计算层级的DFT处理结果作为下一计算层级的层级输入序列,并将下一计算层级更新为当前计算层级,返回执行步骤230,判断当前计算层级是否是目标计算层级,直至完成末尾计算层级的DFT处理。
本实施例中,通过在DFT计算过程中增加重排序操作,使得数字信号处理器中的矢量计算单元可以被充分利用,提高DFT处理速度。并且,由于软件实现不需要与硬件进行配置或者终端处理等交互行为,因此,可以达到比ASIC方式更快的DFT处理速度。同时,因为可以选择性地对与当前计算层级对应的各层级输入序列进行重排序,改变与当前计算层级对应的层级输入序列的大小,因此,可以实现任意点数组合的混合基DFT。
步骤280、结束。
本发明实施例的技术方案,通过将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;对目标序列进行与目标计算层级对应的DFT处理,解决了现有技术中实现DFT处理的时间较长的问题,通过充分利用矢量资源,提高DFT的计算速度,并实现任意点数组合的混合基DFT。
实施例三
图3是本发明实施例三中的一种混合基DFT处理装置的结构示意图,本实施例可适用于通过软件实现对任意点数组合的混合基DFT的快速处理的情况,该装置可以由硬件和/或软件来实现,并一般可以集成在提供DFT计算服务的电子设备中。如图3所示,该装置包括:
预处理模块310,用于将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;
重排序模块320,用于在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;
DFT处理模块330,用于对目标序列进行与目标计算层级对应的DFT处理。
本发明实施例的技术方案,通过将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;对目标序列进行与目标计算层级对应的DFT处理,解决了现有技术中实现DFT处理的时间较长的问题,通过充分利用矢量资源,提高DFT的计算速度,并实现任意点数组合的混合基DFT。
可选的,DFT处理模块330,还用于:
在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至非目标计算层级,则根据非目标计算层级的基数,生成与输入至非目标计算层级的各层级输入序列分别对应的多个待计算序列;
采用单指令流多数据流指令,对各待计算序列进行与非目标计算层级对应的DFT处理。
可选的,预处理模块310,用于:
根据原始输入序列的DFT点数,确定与输入至各计算层级的各层级输入序列对应的待计算数据量;
将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级。
可选的,预处理模块310,用于:
获取矢量运算单元的计算上限值,矢量运算单元用于计算离散傅里叶变换;
将小于计算上限值的待计算数据量作为目标数据量,将与各目标数据量对应的计算层级作为目标计算层级。
可选的,重排序模块320,用于:
如果执行至目标计算层级,则将输入至目标计算层级的多个层级输入序列分别由列数据转换为行数据;
对各行数据进行重排序,并对已经排序的所有行数据按列进行读取,得到一个顺序的目标序列。
可选的,重排序模块320,用于:
采用矢量指令,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,矢量指令包括数字信号处理器指令。
可选的,原始输入序列为接收机检测的接收信号;
DFT处理模块330,还用于:在完整执行与混合基对应的多个计算层级的DFT处理操作之后,根据末尾计算层级生成的DFT处理结果,对接收信号的传输信道进行信道估计。
本发明实施例所提供的混合基DFT处理装置可执行本发明任意实施例所提供的混合基DFT处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
参照图4,图4是本发明实施例四中的一种电子设备的结构示意图,如图4所示,该设备包括数字信号处理器410、存储器420、输入装置430和输出装置440;设备中数字信号处理器410支持矢量编程,数字信号处理器410中包括至少一个矢量运算单元;数字信号处理器410的数量可以是一个或多个,图4中以一个数字信号处理器410为例;设备中的数字信号处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的混合基DFT处理方法对应的程序指令/模块(例如,混合基DFT处理装置中的预处理模块310、重排序模块320和DFT处理模块330)。数字信号处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的混合基DFT处理方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种混合基DFT处理方法,包括:
将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;
在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;
对目标序列进行与目标计算层级对应的DFT处理。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机程序可执行不限于如上的方法操作,还可以执行本发明任意实施例所提供的混合基DFT处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述混合基DFT处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (7)

1.一种混合基离散傅里叶变换DFT处理方法,其特征在于,包括:
将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;
在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;
对所述目标序列进行与目标计算层级对应的DFT处理;
所述根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级,包括:
根据原始输入序列的DFT点数,确定与输入至各计算层级的各层级输入序列对应的待计算数据量;
将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级;
所述将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级,包括:
获取矢量运算单元的计算上限值,所述矢量运算单元用于计算离散傅里叶变换;
将小于所述计算上限值的待计算数据量作为目标数据量,将与各所述目标数据量对应的计算层级作为目标计算层级;
所述如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,包括:
如果执行至目标计算层级,则将输入至目标计算层级的多个层级输入序列分别由列数据转换为行数据;
对各行数据进行重排序,并对已经排序的所有行数据按列进行读取,得到一个顺序的目标序列。
2.根据权利要求1所述的方法,其特征在于,还包括:
在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至非目标计算层级,则根据非目标计算层级的基数,生成与输入至非目标计算层级的各层级输入序列分别对应的多个待计算序列;
采用单指令流多数据流指令,对各待计算序列进行与非目标计算层级对应的DFT处理。
3.根据权利要求1所述的方法,其特征在于,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,包括:
采用矢量指令,按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列,所述矢量指令包括数字信号处理器指令。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述原始输入序列为接收机检测的接收信号;
在完整执行与混合基对应的多个计算层级的DFT处理操作之后,还包括:
根据末尾计算层级生成的DFT处理结果,对所述接收信号的传输信道进行信道估计。
5.一种混合基离散傅里叶变换DFT处理装置,其特征在于,包括:
预处理模块,用于将与待计算的原始输入序列对应的混合基,划分为多个计算层级,并根据原始输入序列的DFT点数,确定需要进行序列重排的目标计算层级;
重排序模块,用于在对原始输入序列逐计算层级的执行DFT处理操作过程中,如果执行至目标计算层级,则按照设定标准将输入至目标计算层级的多个层级输入序列重排序为一个目标序列;
DFT处理模块,用于对所述目标序列进行与目标计算层级对应的DFT处理;
所述预处理模块,具体用于:
根据原始输入序列的DFT点数,确定与输入至各计算层级的各层级输入序列对应的待计算数据量;
将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级;
所述将不满足完全矢量计算条件的待计算数据量所对应的计算层级作为目标计算层级,包括:
获取矢量运算单元的计算上限值,所述矢量运算单元用于计算离散傅里叶变换;
将小于计算上限值的待计算数据量作为目标数据量,将与各所述目标数据量对应的计算层级作为目标计算层级;
所述重排序模块,具体用于:
如果执行至目标计算层级,则将输入至目标计算层级的多个层级输入序列分别由列数据转换为行数据;
对各行数据进行重排序,并对已经排序的所有行数据按列进行读取,得到一个顺序的目标序列。
6.一种电子设备,其特征在于,所述电子设备包括:
一个或多个数字信号处理器,所述数字信号处理器支持矢量编程,所述数字信号处理器中包括矢量运算单元;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的混合基离散傅里叶变换DFT处理方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的混合基离散傅里叶变换DFT处理方法。
CN202011615527.7A 2020-12-30 2020-12-30 混合基dft处理方法、装置、设备及存储介质 Active CN112667959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011615527.7A CN112667959B (zh) 2020-12-30 2020-12-30 混合基dft处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011615527.7A CN112667959B (zh) 2020-12-30 2020-12-30 混合基dft处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112667959A CN112667959A (zh) 2021-04-16
CN112667959B true CN112667959B (zh) 2024-02-23

Family

ID=75411426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011615527.7A Active CN112667959B (zh) 2020-12-30 2020-12-30 混合基dft处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112667959B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102652315A (zh) * 2009-12-16 2012-08-29 瑞典爱立信有限公司 信息处理设备、其控制方法、程序及计算机可读存储媒体
CN103186503A (zh) * 2011-12-27 2013-07-03 中兴通讯股份有限公司 一种fft/dft的倒序排列系统与方法及其运算系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342486B2 (en) * 2008-10-03 2016-05-17 Microsoft Technology Licensing, Llc Fast computation of general fourier transforms on graphics processing units
US8990281B2 (en) * 2012-09-21 2015-03-24 International Business Machines Corporation Techniques for improving the efficiency of mixed radix fast fourier transform
US10339200B2 (en) * 2015-10-09 2019-07-02 Signalchip Innovations Private Limited System and method for optimizing mixed radix fast fourier transform and inverse fast fourier transform
EP3370161B1 (en) * 2017-03-03 2020-06-24 Nxp B.V. Adapting the processing of decomposed ffts to match the number of data points processed in parallel

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102652315A (zh) * 2009-12-16 2012-08-29 瑞典爱立信有限公司 信息处理设备、其控制方法、程序及计算机可读存储媒体
CN103186503A (zh) * 2011-12-27 2013-07-03 中兴通讯股份有限公司 一种fft/dft的倒序排列系统与方法及其运算系统

Also Published As

Publication number Publication date
CN112667959A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
US20210182721A1 (en) Method and apparatus for constructing quantum machine learning framework, quantum computer and computer storage medium
CN112199707B (zh) 一种同态加密中的数据处理方法、装置以及设备
Kaltofen Fifteen years after DSC and WLSS2 what parallel computations I do today: invited lecture at PASCO 2010.
CN109359267A (zh) 一种基于动态截位的低复杂度无乘法器定点fft优化方法
CN112929300B (zh) 一种数据处理装置、方法、基站和存储介质
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN109697083B (zh) 数据的定点化加速方法、装置、电子设备及存储介质
CN112667959B (zh) 混合基dft处理方法、装置、设备及存储介质
CN110704099B (zh) 联盟链的构建方法、装置和电子设备
CN115408061B (zh) 复数矩阵运算的硬件加速方法、装置、芯片及存储介质
US8010588B2 (en) Optimized multi-mode DFT implementation
CN115795097A (zh) 基于xml逻辑规则的数据处理方法及装置
WO2013159361A1 (zh) 数据处理方法和相关装置
CN113901389A (zh) 一种信号处理方法、装置、电子设备及可读存储介质
CN112860221A (zh) 一种随机序列生成方法、装置、设备及存储介质
US7047271B2 (en) DSP execution unit for efficient alternate modes for processing multiple data sizes
CN105608054A (zh) 基于lte系统的fft/ifft变换装置及方法
CN111404858A (zh) 应用于宽带卫星通信系统的高效的fft处理方法和装置
JP2737933B2 (ja) 除算装置
CN116805155B (zh) 一种lstm网络处理方法、装置、设备及可读存储介质
CN116225366A (zh) 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置
Chen et al. H-RIS: Hybrid computing-in-memory architecture exploring repetitive input sharing
CN111400377B (zh) 一种目标数据集的确定方法及装置
CN115328438B (zh) 一种数据处理方法、装置及电子设备
CN116974752A (zh) 硬件资源的分配方法、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant