本发明涉及数据处理,特别涉及一种数据处理方法、电子设备及存储介质。
背景技术:
1、fft(fast fourier transform,快速傅里叶变换)是一种dft(discrete fouriertransform,离散傅里叶变换)的高效算法,用于信号在时域和频域上进行转换,被广泛用于各种信号处理的场景中,而ifft(inverse fast fourier transform)则是快速傅里叶逆变换。
2、目前,采用传统的流水线方式进行大点数fft以及ifft运算存在运算时间长的问题,而采用多路并行的方法进行运算虽然可以解决运算时间长的问题,但该方法存在占用资源数较大的问题。
技术实现思路
1、本发明提供一种数据处理方法、电子设备及存储介质,用于处理大点数的fft及ifft运算时,在不影响运算时长的前提下尽可能降低运算资源的占用量,使得运算时长和资源占用量达到最优。
2、第一方面,本发明实施例提供的一种数据处理方法,该方法包括:
3、获取源数据,其中所述源数据包括2m个定点数,m为大于零的整数;
4、利用蝶形运算组对源数据进行m级蝶形运算,在进行不同级的蝶形运算的过程中,利用存储组中的两个存储单元交替进行数据的存储和读取;其中,所述数据包括源数据、对源数据进行蝶形运算得到的临时数据以及运算结果中的至少一项;
5、输出第m级蝶形运算的结果。
6、作为一种可选的实施方式,该方法还包括:
7、两个存储单元并行进行数据的存储和读取,其中,所述存储单元用于存储2m个定点数。
8、作为一种可选的实施方式,所述蝶形运算组包括两个运算子组,该方法还包括:
9、在进行每一级的蝶形运算的过程中,两个运算子组交替进行蝶形运算和数据存取;其中,数据存取包括数据的存储和读取。
10、作为一种可选的实施方式,该方法还包括:
11、两个运算子组并行进行蝶形运算和数据存取。
12、作为一种可选的实施方式,所述运算子组包括k/2个蝶形运算单元,该方法还包括:
13、所述k/2个蝶形运算单元并行进行蝶形运算或数据存取,其中,k大于或等于单个蝶形运算单元完成蝶形运算所需时钟周期数的最小偶数。
14、作为一种可选的实施方式,所述运算子组包括蝶形运算单元,该方法还包括:
15、所述蝶形运算单元采用基2频域抽取算法对源数据进行快速傅里叶变换或快速傅里叶逆变换。
16、作为一种可选的实施方式,该方法还包括:
17、生成源数据在存储单元中的存储地址;
18、根据源数据的存储地址,蝶形运算组从对应的存储单元读取源数据,对源数据进行m级蝶形运算。
19、作为一种可选的实施方式,所述生成源数据在存储单元中的存储地址,包括:
20、生成除第高i位地址的其他m-1位存储地址后,在第高i位插入0和1,得到第高i级蝶形运算读取的源数据的存储地址,其中,i为整数,且0<i≤m。
21、作为一种可选的实施方式,该方法还包括:
22、获取参数,利用第一存储单元存储参数,生成参数在第一存储单元中的存储地址;
23、根据参数的存储地址,蝶形运算组从对应的第一存储单元中读取参数,在进行每一级的蝶形运算时,结合获取的参数对源数据进行蝶形运算。
24、作为一种可选的实施方式,所述生成参数在第一存储单元中的存储地址,包括:
25、生成m-i位存储地址作为高m-i位,用0补齐低i-1位,得到第i级蝶形运算读取的参数的存储地址,其中,i为整数,且0<i≤m。
26、第二方面,本发明实施例提供的一种电子设备,包括fpga,所述fpga用于执行如下步骤:
27、获取源数据,其中所述源数据包括2m个定点数,m为大于零的整数;
28、利用蝶形运算组对源数据进行m级蝶形运算,在进行不同级的蝶形运算的过程中,利用存储组中的两个存储单元交替进行数据的存储和读取;其中,所述数据包括源数据、对源数据进行蝶形运算得到的临时数据以及运算结果中的至少一项;
29、输出第m级蝶形运算的结果。
30、作为一种可选的实施方式,所述fpga具体被配置为执行:
31、两个存储单元并行进行数据的存储和读取,其中,所述存储单元用于存储2m个定点数。
32、作为一种可选的实施方式,所述蝶形运算组包括两个运算子组,所述fpga具体还被配置为执行:
33、在进行每一级的蝶形运算的过程中,两个运算子组交替进行蝶形运算和数据存取;其中,数据存取包括数据的存储和读取。
34、作为一种可选的实施方式,所述fpga具体还被配置为执行:
35、两个运算子组并行进行蝶形运算和数据存取。
36、作为一种可选的实施方式,所述运算子组包括k/2个蝶形运算单元,所述fpga具体还被配置为执行:
37、所述k/2个蝶形运算单元并行进行蝶形运算或数据存取,其中,k大于或等于单个蝶形运算单元完成蝶形运算所需时钟周期数的最小偶数。
38、作为一种可选的实施方式,所述运算子组包括蝶形运算单元,所述fpga具体还被配置为执行:
39、所述蝶形运算单元采用基2频域抽取算法对源数据进行快速傅里叶变换或快速傅里叶逆变换。
40、作为一种可选的实施方式,所述fpga具体还被配置为执行:
41、生成源数据在存储单元中的存储地址;
42、根据源数据的存储地址,蝶形运算组从对应的存储单元读取源数据,对源数据进行m级蝶形运算。
43、作为一种可选的实施方式,所述fpga具体被配置为执行:
44、生成除第高i位地址的其他m-1位存储地址后,在第高i位插入0和1,得到第i级蝶形运算读取的源数据的存储地址,其中,i为整数,且0<i≤m。
45、作为一种可选的实施方式,所述fpga具体还被配置为执行:
46、获取参数,利用第一存储单元存储参数,生成参数在第一存储单元中的存储地址;
47、根据参数的存储地址,蝶形运算组从对应的第一存储单元中读取参数,在进行每一级的蝶形运算时,结合获取的参数对源数据进行蝶形运算。
48、作为一种可选的实施方式,所述fpga具体被配置为执行:
49、生成m-i位存储地址作为高m-i位,用0补齐低i-1位,得到第i级蝶形运算读取的参数的存储地址,其中,i为整数,且0<i≤m。
50、第三方面,本发明实施例提供的一种电子设备,包括处理器和存储器,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行如下步骤:
51、获取源数据,其中所述源数据包括2m个定点数,m为大于零的整数;
52、利用蝶形运算组对源数据进行m级蝶形运算,在进行不同级的蝶形运算的过程中,利用存储组中的两个存储单元交替进行数据的存储和读取;其中,所述数据包括源数据、对源数据进行蝶形运算得到的临时数据以及运算结果中的至少一项;
53、输出第m级蝶形运算的结果。
54、作为一种可选的实施方式,所述处理器具体还被配置为执行:
55、两个存储单元并行进行数据的存储和读取,其中,所述存储单元用于存储2m个定点数。
56、作为一种可选的实施方式,所述蝶形运算组包括两个运算子组,所述处理器具体还被配置为执行:
57、在进行每一级的蝶形运算的过程中,两个运算子组交替进行蝶形运算和数据存取;其中,数据存取包括数据的存储和读取。
58、作为一种可选的实施方式,所述处理器具体还被配置为执行:
59、两个运算子组并行进行蝶形运算和数据存取。
60、作为一种可选的实施方式,所述运算子组包括k/2个蝶形运算单元,所述处理器具体还被配置为执行:
61、所述k/2个蝶形运算单元并行进行蝶形运算或数据存取,其中,k大于或等于单个蝶形运算单元完成蝶形运算所需时钟周期数的最小偶数。
62、作为一种可选的实施方式,所述运算子组包括蝶形运算单元,所述处理器具体还被配置为执行:
63、所述蝶形运算单元采用基2频域抽取算法对源数据进行快速傅里叶变换或快速傅里叶逆变换。
64、作为一种可选的实施方式,所述处理器具体还被配置为执行:
65、生成源数据在存储单元中的存储地址;
66、根据源数据的存储地址,蝶形运算组从对应的存储单元读取源数据,对源数据进行m级蝶形运算。
67、作为一种可选的实施方式,所述处理器具体被配置为执行:
68、生成除第高i位地址的其他m-1位存储地址后,在第高i位插入0和1,得到第i级蝶形运算读取的源数据的存储地址,其中,i为整数,且0<i≤m。
69、作为一种可选的实施方式,所述处理器具体还被配置为执行:
70、获取参数,利用第一存储单元存储参数,生成参数在第一存储单元中的存储地址;
71、根据参数的存储地址,蝶形运算组从对应的第一存储单元中读取参数,在进行每一级的蝶形运算时,结合获取的参数对源数据进行蝶形运算。
72、作为一种可选的实施方式,所述处理器具体被配置为执行:
73、生成m-i位存储地址作为高m-i位,用0补齐低i-1位,得到第i级蝶形运算读取的参数的存储地址,其中,i为整数,且0<i≤m。
74、第四方面,本发明实施例还提供一种数据处理装置,该装置包括:
75、获取数据模块,用于获取源数据,其中所述源数据包括2m个定点数,m为大于零的整数;
76、蝶形运算模块,用于利用蝶形运算组对源数据进行m级蝶形运算,在进行不同级的蝶形运算的过程中,利用存储组中的两个存储单元交替进行数据的存储和读取;其中,所述数据包括源数据、对源数据进行蝶形运算得到的临时数据以及运算结果中的至少一项;
77、输出结果模块,用于输出第m级蝶形运算的结果。
78、作为一种可选的实施方式,所述蝶形运算模块具体还用于:
79、两个存储单元并行进行数据的存储和读取,其中,所述存储单元用于存储2m个定点数。
80、作为一种可选的实施方式,所述蝶形运算组包括两个运算子组,所述蝶形运算模块具体还用于:
81、在进行每一级的蝶形运算的过程中,两个运算子组交替进行蝶形运算和数据存取;其中,数据存取包括数据的存储和读取。
82、作为一种可选的实施方式,所述蝶形运算模块具体还用于:
83、两个运算子组并行进行蝶形运算和数据存取。
84、作为一种可选的实施方式,所述运算子组包括k/2个蝶形运算单元,所述蝶形运算模块具体还用于:
85、所述k/2个蝶形运算单元并行进行蝶形运算或数据存取,其中,k大于或等于单个蝶形运算单元完成蝶形运算所需时钟周期数的最小偶数。
86、作为一种可选的实施方式,所述运算子组包括蝶形运算单元,所述蝶形运算模块具体还用于:
87、所述蝶形运算单元采用基2频域抽取算法对源数据进行快速傅里叶变换或快速傅里叶逆变换。
88、作为一种可选的实施方式,还包括数据地址生成模块,具体用于:
89、生成源数据在存储单元中的存储地址;
90、根据源数据的存储地址,蝶形运算组从对应的存储单元读取源数据,对源数据进行m级蝶形运算。
91、作为一种可选的实施方式,所述数据地址生成模块具体用于:
92、生成除第高i位地址的其他m-1位存储地址后,在第高i位插入0和1,得到第i级蝶形运算读取的源数据的存储地址,其中,i为整数,且0<i≤m。
93、作为一种可选的实施方式,还包括参数地址生成模块,具体用于:
94、获取参数,利用第一存储单元存储参数,生成参数在第一存储单元中的存储地址;
95、根据参数的存储地址,蝶形运算组从对应的第一存储单元中读取参数,在进行每一级的蝶形运算时,结合获取的参数对源数据进行蝶形运算。
96、作为一种可选的实施方式,所述参数地址生成模块具体用于:
97、生成m-i位存储地址作为高m-i位,用0补齐低i-1位,得到第i级蝶形运算读取的参数的存储地址,其中,i为整数,且0<i≤m。
98、第五方面,本发明实施例还提供计算机存储介质,其上存储有计算机程序,该程序被处理器执行时用于实现上述第一方面中任一项所述方法的步骤。
99、第六方面,本技术提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
100、本技术的这些方面或其他方面在以下的实施例的描述中会更加简明易懂。
1.一种数据处理方法,其特征在于,该方法包括:
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述蝶形运算组包括两个运算子组,该方法还包括:
4.根据权利要求3所述的方法,其特征在于,该方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述运算子组包括k/2个蝶形运算单元,该方法还包括:
6.根据权利要求3所述的方法,其特征在于,所述运算子组包括蝶形运算单元,该方法还包括:
7.根据权利要求1所述的方法,其特征在于,该方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述生成源数据在存储单元中的存储地址,包括:
9.根据权利要求1所述的方法,其特征在于,该方法还包括:
10.根据权利要求9所述的方法,其特征在于,所述生成参数在第一存储单元中的存储地址,包括:
11.一种电子设备,其特征在于,包括fpga,所述fpga用于执行如权利要求1~10任一所述方法的步骤。
12.一种电子设备,其特征在于,该电子设备包括处理器和存储器,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行如权利要求1~10任一所述方法的步骤。
13.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~10任一所述方法的步骤。
