发明内容
有鉴于此,本发明要解决的技术问题是,提供一种混合基离散傅立叶变换的处理方法及装置,能够进行任意点数的混合基离散傅立叶变换的处理。
为此,本发明实施例采用如下技术方案:
本发明实施例提供一种混合基离散傅立叶变换的处理装置,包括:
地址确定单元,用于接收时域数据序列x(n),确定时域数据序列中每一时域数据的初始存储地址并相应存储所述时域数据;其中,0≤n≤N-1,n为整数;N=N
1′N
2′…N
m′,
A
1、A
2、…、A
m互质;m≥2,且m为整数;
第一处理单元,用于对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算,根据计算得到的第一中间数据确定第一中间数据序列;
m-1个处理单元,其中的每一处理单元,用于以其上一级处理单元得到的第I-1中间数据序列作为数据源,对所述第I-1中间数据序列进行N
1′N
2′…N
I-1′N
I+1′…N
m′次长度为N
I′的DFT计算,根据计算得到的第I中间数据确定第I中间数据序列;2≤I≤m,且I为整数;最终得到的第m中间数据序列即为所述时域数据序列x(n)对应的频域数据序列
其中,地址确定单元具体用于:
依次接收输入的时域数据序列x(n)中每一时域数据,分别确定每一时域数据的预设存储地址;对所述预设存储地址进行加扰处理,得到每一时域数据对应的初始存储地址,按照初始存储地址存储所述时域数据。
地址确定单元包括:
接收子单元,用于依次接收输入的时域数据序列x(n)中每一时域数据,分别确定每一时域数据的预设存储地址;
加扰子单元,用于根据公式A1=<A0+SCR>N计算每一预设存储地址对应的初始存储地址;其中,A1为初始存储地址;A0为预设存储地址;SCR为加扰值;
存储子单元,用于按照初始存储地址对应存储所述时域数据。
第一处理单元具体用于:根据所述时域数据的初始存储地址对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算,确定计算得到的每一第一中间数据的存储地址并相应存储所述第一中间数据,得到第一中间数据序列。
第一处理单元包括:
第一寻址子单元,用于根据地址确定公式n’=n1N2′N3′…Nm′+n2NN1′(0≤n1≤N1′-1,0≤n2≤N2′N2′…Nm′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值;
第一处理子单元,用于依次对每A1个所述n’值作为存储地址处的A1个时域数据进行A1点的DFT计算,得到每一时域数据对应的第一中间数据;
第一地址确定子单元,用于确定计算得到的每一第一中间数据的存储地址;
第一存储子单元,用于按照第一中间数据的存储地址相应存储计算得到的第一中间数据,得到第一中间数据序列。
第一地址确定子单元具体用于:根据第一中间数据与时域数据之间的对应关系,以及时域数据与存储地址之间的对应关系,确定第一中间数据对应的存储地址。
所述m-2个处理单元中的每一处理单元具体用于:以其上一级处理单元得到的第I-1中间数据序列作为数据源,根据每一第I-1中间数据的存储地址对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算,确定计算得到的每一第I中间数据的存储地址并相应存储所述第I中间数据,得到第I中间数据序列。
所述m-2个处理单元中的每一处理单元包括:
第I寻址子单元,用于根据地址确定公式n’=n1N1′N2′…NI-1′NI+1′…Nm′+n2NI′(0≤n1≤NI′-1,0≤n2≤N1′N2′…NI-1′NI+1′…Nm′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值;
第I处理子单元,用于以其上一级处理单元得到的第I-1中间数据序列作为数据源,依次对每AI个所述n’值作为存储地址处的AI个第I-1中间数据进行AI点的DFT计算,得到每一第I-1中间数据对应的第I中间数据;
第I地址确定子单元,用于确定计算得到的每一第I中间数据的存储地址;
第I存储子单元,用于按照第I中间数据的存储地址相应存储所述第I中间数据,得到第I中间数据序列。
第I地址确定子单元具体用于:根据第I中间数据与第I-1中间数据之间的对应关系,以及第I-1中间数据与存储地址之间的对应关系,确定第I中间数据对应的存储地址。
本发明实施例提供一种混合基离散傅立叶变换的处理方法,包括:
接收时域数据序列x(n),确定时域数据序列中每一时域数据的初始存储地址并相应存储所述时域数据;其中,0≤n≤N-1,n为整数;N=N
1′N
2′…N
m′,
A
1、A
2、…、A
m互质;m≥2,且m为整数;
第一级DFT处理步骤:对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算,根据计算得到的第一中间数据确定第一中间数据序列;
m-1级DFT处理步骤,其中的每一级DFT处理步骤为:以其上一级DFT处理步骤得到的第I-1中间数据序列作为数据源,对所述第I-1中间数据序列进行N
1′N
2′…N
I-1′N
I+1′…N
m′次长度为N
I′的DFT计算,根据计算得到的第I中间数据确定第I中间数据序列;2≤I≤m,且I为整数;最终得到的第m中间数据序列即为所述时域数据序列x(n)对应的频域数据序列
其中,所述接收时域数据序列x(n),确定时域数据序列中每一时域数据的初始存储地址并相应存储所述时域数据具体为:
依次接收输入的时域数据序列x(n)中每一时域数据,分别确定每一时域数据的预设存储地址;对所述预设存储地址进行加扰处理,得到每一时域数据对应的初始存储地址,按照初始存储地址存储所述时域数据。
所述对预设存储地址进行加扰处理具体为:
根据公式A1=<A0+SCR>N计算每一预设存储地址对应的初始存储地址;
其中,A1为初始存储地址;A0为预设存储地址;SCR为加扰值。
对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算,根据计算得到的第I中间数据确定第I中间数据序列具体为:
根据所述时域数据的初始存储地址对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算;确定计算得到的每一第一中间数据的存储地址并相应存储所述第一中间数据,得到第一中间数据序列。
所述根据所述时域数据的初始存储地址对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算具体为:
根据地址确定公式n’=n1N2′N3′…Nm′+n2N1′(0≤n1≤N1′-1,0≤n2≤N2′N3′…Nm′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值,依次对每A1个所述n’值作为存储地址处的A1个时域数据进行A1点的DFT计算,得到每一时域数据对应的第一中间数据。
所述确定计算得到的每一第一中间数据的存储地址具体为:根据第一中间数据与时域数据之间的对应关系,以及时域数据与存储地址之间的对应关系,确定第一中间数据对应的存储地址。
所述对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算,根据计算得到的第I中间数据确定第I中间数据序列具体为:
根据每一第I-1中间数据的存储地址对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算;确定计算得到的每一第I中间数据的存储地址并相应存储所述第I中间数据,得到第I中间数据序列。
所述根据每一第I-1中间数据的存储地址对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算具体为:
根据地址确定公式n’=n1N1′N2′…NI-1′NI+1…Nm′+n2NI′(0≤n1≤NI′-1,0≤n2≤N1′N2′…NI-1′NI+1′…Nm′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值,依次对每AI个所述n’值作为存储地址处的AI个第I-1中间数据进行AI点的DFT计算,得到每一第I-1中间数据对应的第I中间数据。
所述确定计算得到的每一第I中间数据的存储地址具体为:根据第I中间数据与第I-1中间数据之间的对应关系,以及第I-1中间数据与存储地址之间的对应关系,确定第I中间数据对应的存储地址。
对于上述技术方案的技术效果分析如下:
地址确定单元确定时域数据序列中各个时域数据的初始存储地址并对应存储时域数据;之后,依次由第一处理单元、m-1个处理单元对时域数据进行m级的DFT处理,从而得到时域数据序列x(n)对应的频域数据序列
实现了任意点数的混合基离散傅立叶变换的处理,从而节省了人力资源,降低了实现成本。
具体实施方式
下面首先阐述本发明所述混合基DFT的处理原理:
离散傅里叶变换的基本公式如下:
如果计算的点数N=N1N2且<N1,N2>≡1,由初等数论中的结论,公式1中的变量n,k可以做以下的二维映射:
n=<K1n1+K2n2>N
k=<K3k1+K4k2>N (2)
其中,K1,K2,K3,K4为常量,<a>N表示将a对N取模。
将公式2带入公式1可以得到以下的公式3:
将公式3展开,得到公式4:
由中国剩余定理,可以得到常数K1,K2,K3,K4满足公式5所示的条件:
<K1K3>N=N1
<K2K4>N=N2
<K1K4>N=<K2K3>N=0 (5)
根据公式5,可以很容易地获得K1,K2,K3,K4的一种取值情况,如公式6所示:
K1=N1,K4=N2,
其中<a>N -1表示a关于N的数论倒数。
将公式5带入公式4得到公式7:
其中,公式7中的两个累加符号是可以交换的。
由公式7可知:可以把一个点数为N的一维DFT处理拆分为两个二维的DFT运算,即:当计算的点数N=N1N2且<N1,N2>≡1时,首先进行N2个长度为N1的DFT处理,然后,进行N1个长度为N2的DFT处理,即可完成点数为N的一维DFT处理。
公式2中一维DFT处理拆分为二维DFT处理的二维映射关系,是后续本发明实施例中进行寻址计算的关键公式。图1中所示的地址计算模块就是通过计算二维变量的公式得到具体的寻址值的,从而使得所有的运算都采用统一的寻址结构。
关于同址计算,由公式2可以看出如果输入是按照n=<K1n1+K2n2>N给入,进行同址计算是不能得到频点由小到大排列的顺序输出的。如果希望输出
k=<K3k1+K4k2>N (1)
是频点由小到大排列的顺序输出,由于进行同址计算,由公式2可以得到数据存放的地址为
k=<K3n1+K4n2>N (2)
而其时域索引号由公式2中的第一个公式给出:
n=<K1n1+K2n2>N (3)
如果公式10为中国剩余定理的表达式,则其另外一种表示方法为:
将公式11带入公式9,并由中国剩余定理得:
公式12即为加扰处理的计算依据。
对于
点的DFT,可以把它分为N=N
1N
2N
3,其中
则N
1,N
2,N
3互质。我们把一维DFT映射为三维的DFT,可以采用PFA进行计算。然而在计算时,不要把这个三维的DFT认为是一个三维的问题,直接用二维DFT的思路来处理即可:首先做N
2N
3个长度为N
1的DFT,然后做N
1N
3个长度为N
2的DFT,最后做N
1N
2个长度为N
3的DFT。其中每一阶段的计算都需要一个两变量的映射公式,把N分解为N=N
2′n
1′+N
1′n
2′,所有的计算均为同址运算。进而,还可以把以上的
点的DFT处理推广到N=N
1′N
2′…N
m′(
m≥2,且m为整数)点的DFT处理,只要A
1、A
2、…、A
m互质即可。
基于以上的原理,如图1所示,本发明实施例提供一种混合基离散傅立叶变换的处理装置,如图1所示,该装置包括:
地址确定单元110,用于接收时域数据序列x(n),确定时域数据序列中每一时域数据的初始存储地址并相应存储所述时域数据;其中,0≤n≤N-1,n为整数;N=N
1′N
2′…N
m′,
A
1、A
2、…、A
m互质;m≥2,且m为整数。
具体的,地址确定单元110可以用于:依次接收输入的时域数据序列x(n)中每一时域数据,分别确定每一时域数据的预设存储地址;对所述预设存储地址进行加扰处理,得到每一时域数据对应的初始存储地址,按照初始存储地址存储所述时域数据。
第一处理单元120,用于对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算,根据计算得到的第一中间数据确定第一中间数据序列。
具体的,第一处理单元120可以用于:根据所述时域数据的初始存储地址对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算,确定计算得到的每一第一中间数据的存储地址并相应存储所述第一中间数据,得到第一中间数据序列;
其中,所述第一中间数据序列一般是指存储后按照存储地址的顺序排列的所有第一中间数据。
m-1个处理单元130,其中的每一处理单元,用于以其上一级处理单元得到的第I-1中间数据序列作为数据源,对所述第I-1中间数据序列进行N
1′N
2′…N
I-1′N
I+1′…N
m′次长度为N
I′的DFT计算,根据计算得到的第I中间数据确定第I中间数据序列;2≤I≤m,且I为整数;最终得到的第m中间数据序列即为所述时域数据序列x(n)对应的频域数据序列
具体的,m-1个处理单元130中的每一处理单元具体可以用于:以其上一级处理单元得到的第I-1中间数据序列作为数据源,根据每一第I-1中间数据的存储地址对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算,确定计算得到的每一第I中间数据的存储地址并相应存储所述第I中间数据,得到第I中间数据序列;2≤I≤m,且I为整数;最终得到的第m中间数据序列即为所述时域数据序列x(n)对应的频域数据序列
其中,第m中间数据序列是指:按照存储地址的顺序依次排列的所有第m中间数据。
其中,地址确定单元110可以包括:
接收子单元1101,用于依次接收输入的时域数据序列x(n)中每一时域数据,分别确定每一时域数据的预设存储地址;
加扰子单元1102,用于根据公式A1=<A0+SCR>
N计算每一预设存储地址对应的初始存储地址;其中,A1为初始存储地址;A0为预设存储地址;SCR为加扰值,SCR的计算公式为:
存储子单元1103,用于按照初始存储地址对应存储所述时域数据。
第一处理单元120可以包括:
第一寻址子单元1201,用于根据地址确定公式n’=n1N2′N3′…Nm′+n2N1′(0≤n1≤N1′-1,0≤n2≤N2′N3′…Nm′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值;
第一处理子单元1202,用于依次对每A1个所述n’值作为存储地址处的A1个时域数据进行A1点的DFT计算,得到每一时域数据对应的第一中间数据;
其中,每A1个所述n’值对应着A1个时域数据,即:每个n’值作为存储地址均对应着一个时域数据。
第一地址确定子单元1203,用于确定计算得到的每一第一中间数据的存储地址。具体的,第一地址确定子单元1203可以用于:根据第一中间数据与时域数据之间的对应关系,以及时域数据与存储地址之间的对应关系,确定第一中间数据对应的存储地址。其中,每一时域数据对应着一个存储地址,该时域数据进行DFT计算后得到一个对应的第一中间数据,根据以上两个对应关系,将时域数据对应的存储地址作为时域数据对应的第一中间数据的存储地址,从而由第一存储子单元1204进行第一中间数据的存储,从而实现了同址计算。
第一存储子单元1204,用于按照第一中间数据的存储地址相应存储计算得到的第一中间数据,得到第一中间数据序列。
所述m-1个处理单元中的每一处理单元可以包括:
第I寻址子单元1301,用于根据地址确定公式n’=n1N1′N2′…NI-1′NI+1′…Nm′+n2NI′(0≤n1≤NI′-1,0≤n2≤N1′N2′…NI-1′NI+1′…Nm′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值;
第I处理子单元1302,用于以其上一级处理单元得到的第I-1中间数据序列作为数据源,依次对每AI个所述n’值作为存储地址处的AI个第I-1中间数据进行AI点的DFT计算,得到每一第I-1中间数据对应的第I中间数据;
第I地址确定子单元1303,用于确定计算得到的每一第I中间数据的存储地址。具体的,第I地址确定子单元1303可以用于:根据第I中间数据与第I-1中间数据之间的对应关系,以及第I-1中间数据与存储地址之间的对应关系,确定第I中间数据对应的存储地址。
其中,第I处理子单元1302进行DFT计算时,每一第I-1中间数据经过DFT计算后得到一对应的第I中间数据,将该第I-1中间数据对应的存储地址作为该第I中间数据的存储地址,从而实现了同址计算。
第I存储子单元1304,用于按照第I中间数据的存储地址相应存储所述第I中间数据,得到第I中间数据序列。
其中,所述m-1个处理单元中每一处理单元均包括这四个单元,例如:第2处理单元中包括:第2寻址子单元、第2处理子单元、第2地址确定子单元以及第2存储子单元;第3处理单元中包括:第3寻址子单元、第3处理子单元、第3地址确定子单元以及第3存储子单元;以此类推直至第m处理单元。
其中,第m存储子单元存储DFT计算得到的所有第m中间数据后,按照存储地址的顺序排列的这些第m中间数据所形成的第m中间数据序列也即为所述时域数据序列x(n)对应的频域数据序列
图1所示的处理装置可以进行任意点数的混合基离散傅立叶变换的处理,在实现中只需要根据A1、A2、…、Am的取值更新对应的处理单元或处理子单元即可。
进而,在实际应用中,可以对以上的单元和实现进行任意的组合,如图2所示为本发明实施例所述处理装置的一种实现方式,所述第一、第二…第m-1存储子单元可以通过两个存储模块实现,多个寻址子单元的功能可以组合到一个寻址子单元实现;多个处理子单元的功能也组合到一个处理子单元中实现;多个地址确定子单元的功能也可以组合到一个地址确定子单元中实现。图2所示的处理装置的实现方式与每一种点数单独处理相比,结构紧凑,节省了系统面积,降低了功耗。
具体的,各个寻址子单元中n’值的计算可以通过如图3所示的结构实现,此时,n1由图3中的cnt_radix单元产生,其产生满足以下的规律:
以
为例:基2一共有n
1级,设L=n
1,当进行到第s级时:取数的地址n’可以由以下公式产生:addr=a
L-1a
L-2…a
sa
0a
s-1…a
1,所读取的旋转因子的地址是由a
s-1a
s-2…a
1左移L-S位得到。其中,a
L-1a
L-2…a
sa
s-1…a
1为当前级计算的蝶形单元的个数。计数器从0累加到L/2,共需要L/2个周期,每个周期进行一个蝶形运算,则进行L/2个运算,当前这一级下当前N
1点的DFT运算即完成。
注意:在进行每一种基的第一级运算前,输入数据需要进行倒序处理,即如果输入数据的序号是:n=aL-1aL-2…a2a1a0,其存入的地址是n=a0a1…aL-2aL-1。
另外,A1、A2、…、Am等的取值不同时,对应的DFT处理的计算公式不同,例如:
取值为2时,两点的DFT处理的计算公式为:
X[0]=x(0)+x(1)*tf;
X[1]=x(0)-x(1)*tf;
具体的,两点的DFT处理可以通过图4所示的蝶形单元实现。
3点的DFT处理的计算公式为:
t1=x(1)+x(2)
t2=x(2)-x(1)
m0=x(0)+t1
m1=t1(cosu-1)
m2=jt2sinu
s1=m0+m1
X[0]=m0
X[1]=s1+m2
X[2]=s1-m2
具体的,3点DFT处理可以通过图5所示的蝶形单元实现。
5点的DFT处理的计算公式可以为:
m0=t5+x(0)
C0=(cosu+cos2u)/2-1
m1=t5C0
C1=(cosu-cos2u)/2
m2=(t1-t2)C1
C2=sinu+sin2u
m3=-j(t3+t4)C3
C3=sinu
m4=-jt4C2
C4=sinu-sin2u
m5=jt3C4
t1=x(1)+x(4)
s1=m0-m1
t2=x(2)+x(3)
s2=s1+m2
t3=x(1)-x(4) s3=m3-m4
t4=x(3)-x(2) s4=s1-m2
t5=t1+t2 s5=m3+m5
X[0]=m0
X[1]=s2+s3
X[2]=s4+s5
X[3]=s4-s5
X[4]=s2-s3
具体的,5点DFT处理可以通过图6所示的蝶形单元实现。
其中,在图3~图5中,
表示进行补充位数处理;
表示截取处理;
表示四舍五入饱和处理;
表示移位(饱和处理)处理。如图7所示,本发明实施例还提供一种混合基DFT处理的方法,其中,0≤n≤N-1,n为整数;N=N
1′N
2′…N
m′,
A
1、A
2、…、A
m互质;m≥3,且m为整数;该处理方法包括:
步骤701:接收时域数据序列x(n),确定时域数据序列中每一时域数据的初始存储地址并相应存储所述时域数据。
本步骤的具体实现可以为:依次接收输入的时域数据序列x(n)中每一时域数据,分别确定每一时域数据的预设存储地址;对所述预设存储地址进行加扰处理,得到每一时域数据对应的初始存储地址,按照初始存储地址存储所述时域数据。
其中,可以按照接收到时域数据的顺序,依次确定每一时域数据的预设存储地址。另外,本步骤在具体实现时,不一定要接收到所有时域数据后才执行后续的预设存储地址的确定以及初始存储地址的确定步骤,而是可以每接收到一个时域数据便确定该时域数据的预设存储地址、进而进行预设存储地址的加扰处理得到该时域数据对应的初始存储地址,并按照初始存储地址存储该时域数据。
其中,对每一预设存储地址进行加扰处理得到对应的初始存储地址具体为:
A1n=<A0n+SCR>N;
其中,A1为初始存储地址;A0为预设存储地址;SCR为加扰值,SCR的计算公式为:
步骤702:对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算,根据计算得到的第一中间数据确定第一中间数据序列。
本步骤的实现可以为:根据所述时域数据的初始存储地址对所述时域数据序列进行N2′N3′…Nm′次长度为N1′的DFT计算;确定计算得到的每一第一中间数据的存储地址并相应存储所述第一中间数据,得到第一中间数据序列。
步骤703:m-1级DFT处理步骤,其中的每一级DFT处理步骤为:以其上一级DFT处理步骤得到的第I-1中间数据序列作为数据源,对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算,根据计算得到的第I中间数据确定第I中间数据序列;2≤I≤m,且I为整数;最终得到的第m中间数据序列即为所述时域数据序列x(n)对应的频域数据序列
具体的,本步骤中m-1级DFT处理步骤中的每一级DFT处理步骤的实现可以为:以其上一级DFT处理步骤得到的第I-1中间数据序列作为数据源,根据每一第I-1中间数据的存储地址对所述第I-1中间数据序列进行N
1′N
2′…N
I-1′N
I+1′…N
m′次长度为N
I′的DFT计算,确定计算得到的每一第I中间数据的存储地址并相应存储所述第I中间数据,得到第I中间数据序列;2≤I≤m,且I为整数;最终得到的第m中间数据序列即为所述时域数据序列x(n)对应的频域数据序列
其中,本步骤中包括从第2级DFT处理步骤到第m级DFT处理步骤共m-1级DFT处理步骤。
其中,步骤702中所述根据每一第I-1中间数据的存储地址对所述第I-1中间数据序列进行N1′N2′…NI-1′NI+1′…Nm′次长度为NI′的DFT计算的具体实现可以为:根据地址确定公式n’=n1N2′N3′…Nm′+n2N1′(0≤n1≤N1′-1,0≤n2≤N2′N3′…Nm′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值,依次对每A1个所述n’值作为存储地址处的A1个时域数据进行A1点的DFT计算,得到每一时域数据对应的第一中间数据。
例如,N=N
1′N
2′N
3′,
此时,步骤702中将根据地址确定公式n’=n1N
2′N
3′+n2N
1′(0≤n1≤N
1′-1,0≤n2≤N
2′N
3′-1),依次确定每个n2值依次与各个n1值构成的组合所对应的n’值,依次对每A个所述n’值对应的第一存储地址处的时域数据进行A点的DFT计算,将计算结果按照相对应的时域数据的存储地址进行存储。
举例来说:例如,n2取0时,n2依次与各个n1值构成的组合(n1,n2)为:(0,0),(1,0)…(N1′-1,0),相应的对应着N1′个n’值,之后,n2取1时,还将依次与各个n1构成N1′个(n1,1)的组合,以此类推,共得到N1′N2′N3′个n’值,将这些n’值作为第一存储地址时,恰好可以对应着所有的时域数据。依次对每A个n’值对应的时域数据进行A点的DFT处理,将处理结果按照相应的时域数据的存储地址进行存储,可以相应得到N1′N2′N3′个第一中间数据,步骤703中将继续对得到的第一中间数据序列进行DFT处理。假设A为3,第一次的(0,0)(1,0)(2,0)对应的3个n’值为1、3、6,1对应x(0),3对应x(1),6对应x(2),则DFT处理后相应得到X(0)、X(1)和X(2),那么X(0)对应的存储地址为1;X(1)对应的存储地址为3;X(2)对应的存储地址为6。
具体的,对于以上处理,可以每确定A个n’值即获取这A个n’值对应的时域数据,并对这A个时域数据进行A点的DFT处理;或者,也可以将所述n’值全部确定后,根据n’值形成的序列依次获取每A个n’值对应的时域数据进行所述A点的DFT处理;甚至,还可以将以上两种处理方法交叉进行,即:确定一部分n’值,获取对应的时域数据进行A点的DFT处理,之后,再确定一部分n’值,获取对应的时域数据进行A点的DFT处理,以此类推,直至获取到所有的时域数据并进行DFT处理完毕。
另外,步骤703的实现与步骤702类似,区别仅在于,步骤703中各级DFT处理步骤所依据的公式为:n’=n1N1′N2′…NI-1′NI+1′…Nm′+n2NI′(0≤n1≤NI′-1,0≤n2≤N1′N2′…NI-1′NI+1′…Nm′-1);而且,步骤703中所进行的是AI点的DFT处理。
依据以上方法,假设N=213151,则具体的处理中:
A、对输入的时域数据序列的存储地址进行加扰处理:
计算加扰值
由于加扰值为1,所以k=<1×n>
N=<n>
30=n。很凑巧恰好不需要倒序。
B、先对时域数据进行15个2点的DFT。其中,选址公式为n′=15n1+2n2。此时,得到表1所示的选址结果:
表1
C、之后对第一中间数据序列进行6个5点的DFT。选址公式为:n′=5n1+6n2。根据该选址公式得到选址结果如表2所示:
表2
D、之后对第二中间数据进行10个3点的DFT处理。选址公式为:n′=3n1+10n2。根据该选址公式得到的选址结果如表3所示:
表3
在步骤B~D的处理中,依据以上寻址地址将对应的数据读出然后分别推入基2或基3或基5的蝶形单元,进行同址计算,最后步骤D处理完成后,得到的处理结果即为时域数据序列x(n)所对应的频域数据序列X(k),且得到的频域数据是顺序排列的。
通过图7所示的处理方法,可以进行任意点数的混合基离散傅立叶变换的处理,在实现中只需要根据A1、A2、…、Am的取值更新对应的DFT处理单元即可。
本领域普通技术人员可以理解,实现上述实施例混合基离散傅立叶变换的处理方法及装置方法的过程可以通过程序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时执行上述方法中的对应步骤。所述的存储介质可以如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。