CN102209962A - 计算离散傅里叶变换(dft)系数矩阵的方法和设备 - Google Patents
计算离散傅里叶变换(dft)系数矩阵的方法和设备 Download PDFInfo
- Publication number
- CN102209962A CN102209962A CN2009801443358A CN200980144335A CN102209962A CN 102209962 A CN102209962 A CN 102209962A CN 2009801443358 A CN2009801443358 A CN 2009801443358A CN 200980144335 A CN200980144335 A CN 200980144335A CN 102209962 A CN102209962 A CN 102209962A
- Authority
- CN
- China
- Prior art keywords
- frame
- matrix
- empty
- dft
- real
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 239000011159 matrix material Substances 0.000 claims abstract description 116
- 238000005070 sampling Methods 0.000 claims description 53
- 230000006870 function Effects 0.000 claims description 27
- 230000009466 transformation Effects 0.000 claims description 15
- 238000009825 accumulation Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
一种计算离散频率离散傅里叶变换(DFT)系数矩阵的方法,该方法包括以下步骤:(a)对于采样的第一帧(10),将离散时间信号的采样的帧乘以旋转因子矩阵(F1,F2),以计算该第一帧的DFT系数矩阵,并且存储所述采样的帧的后半部分(b)乘以所述旋转因子矩阵的右半部分(F2)所得的计算值;以及(b)对于采样的各个后续帧(12、14),其中每一后续帧都与前一帧重叠一半,(i)获取所存储的根据前一帧的计算值,每隔一帧反转所存储的计算值的符号;(ii)将采样的当前帧的后半部分乘以所述旋转因子矩阵的右半部分,并且存储得到的计算值;并且(iii)将步骤(i)和步骤(ii)的结果相加。
Description
技术领域
本发明总体上涉及利用离散傅里叶变换(DFT)来处理离散时间序列,更具体地涉及DFT系数的计算。
背景技术
傅里叶变换在信号处理中起着重要的作用。它使得能够根据原始时域信号产生频域表示。在数字信号处理(DSP)中,信号被表示为离散时间序列,因此使用傅里叶变换的特殊形式:离散傅里叶变换(DFT)。1965年,Cooley和Tukey首先提出了一种用于在软件中生成DFT的高效算法,称为快速傅里叶变换(FFT)。他们最初的工作已被广泛扩展,现在术语FFT覆盖了用于计算DFT的软件算法范围。
一般来讲,根据DSP算法的实现需要多少次乘法来测定DSP算法的复杂度。在本文中使用乘法计数,因为乘法计数是DSP函数中最常用的复数运算,因此通常提供了某个算法在单个处理器计算机上的运行时间的最优表示。当考虑硬件实现效率时,对于算法的评估更多地在于算术元素之间所需的通信复杂度,而非运算次数。FFT算法使用蝴蝶块(butterfly block)来减少选择的乘法次数,但是当考虑硬件实现时,实现的控制部分和互连很复杂,导致需要非常大的硬件资源来实现。因此,当前的FFT类算法并不特别适合于现场可编程门阵列(FPGA)实现。此外,当DFT在FPGA中的一些直接实现相当简单时,它们通常产生长的延迟(latency)。
相应地,可能想要提供一种用硬件实现(例如FPGA实现)时节省硬件资源和/或最小化延迟的计算DFT系数的方法。
发明内容
本发明的一个方面提供了一种计算离散频率离散傅里叶变换(DFT)系数矩阵的方法,该方法包括以下步骤:
(a)对于采样的第一帧,
将离散时间信号的采样帧乘以旋转因子矩阵(twiddle factor matrix),以计算该第一帧的DFT系数矩阵,并且
存储所述采样帧的后半部分(second half)乘以所述旋转因子矩阵的右半部分(right half)所得的计算值;以及
(b)对于采样的各个后续帧执行以下操作,其中,每个后续帧都与前一帧重叠一半,
(i)获取所存储的根据前一帧的计算值,每隔一帧反转所存储的计算值的符号;
(ii)将采样的当前帧的后半部分乘以所述旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(iii)将步骤(i)和步骤(ii)的结果相加。
上述方法利用了旋转因子矩阵的对称特性,以根据相对之前帧所作的计算推断对于任意帧计算DFT系数所需的计算量的一半,其中离散时间信号的连续采样帧重叠了一半。通过提供存储这些计算值的存储器设备,该方法能在FPGA实现中执行,从而使计算延迟减半。在通过该方法实现实DFT系数和虚DFT系数的硬件实现中,计算延迟能减少至1/4。
该方法还包括通过以下步骤使用卷积在频域中对DFT系数执行窗口函数(windowing function)的步骤:存储所述窗口函数的非零值;以及将所述非零值应用于所述DFT系数。窗口函数可以是汉明(Hamming)窗口。通过在频域中使用卷积,能省去存储窗口采样的存储器的需求。此外,保留了原始帧P,使得第一DFT系数展现出输入帧的真实能量值。在许多DSP算法中,这是一个需要的重要值,如果使用时域窗口方法则必须单独计算该值。
在本发明的一个或更多个实施方式中,可以第一次执行上述方法的步骤,以计算包括实旋转因子值的旋转因子矩阵的实DFT系数矩阵,并且可以第二次执行,以计算包括虚旋转因子值的旋转因子矩阵的虚DFT系数矩阵。
在这种实施方式中,将采样的当前帧的后半部分乘以旋转因子矩阵的右半部分的步骤可以通过下列步骤来执行:
执行涉及实旋转因子的乘法,该实旋转因子形成了实旋转因子矩阵的右半部分的上半部分或下半部分中的一个;
执行涉及虚旋转因子的乘法,该虚旋转因子形成了虚旋转因子矩阵的右半部分的上半部分或下半部分中的一个;
对于形成实旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的实旋转因子,根据实数或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法来推断乘法结果;以及
对于形成虚旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的虚旋转因子,根据实数或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法来推断乘法结果。
本发明的另一方面提供了一种计算离散傅里叶变换(DFT)系数矩阵的设备,该设备包括:
计算块,其被设置为,对于采样的第一帧,将离散时间信号的采样帧乘以旋转因子矩阵,以计算该第一帧的DFT系数矩阵;以及
存储器装置,其用于存储所述采样帧的后半部分乘以所述旋转因子矩阵的右半部分所得的计算值,
其中,所述计算块还被设置为,对于采样的各个后续帧执行以下操作,其中,各个后续帧都与前一帧重叠一半,
(i)获取所存储的根据前一帧的计算值,每隔一帧反转所存储的计算值的符号;
(ii)将采样的当前帧的后半部分乘以所述旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(iii)将步骤(i)和步骤(ii)的结果相加。
所述计算块可以包括用于执行矩阵乘法的乘法累积(MAC)块。
该设备还可以包括用于在频域中对DFT系数执行窗口函数的卷积块,所述卷积块包括:
存储器单元,其用于存储所述窗口函数的非零值;以及
乘法累积(MAC)块,其用于将所述非零值应用于所述DFT系数。
该设备还可以包括:
第一计算块,其被设置为,对于采样的第一帧,将离散时间信号的采样帧乘以包括实旋转因子值的第一旋转因子矩阵,以计算该第一帧的实DFT系数矩阵;
第一存储器装置,其用于存储所述采样帧的后半部分乘以所述包括实旋转因子值的第一旋转因子矩阵的右半部分所得的第一计算值,
其中,各个后续帧都与前一帧重叠一半,并且其中,第一计算块还被设置为,对于采样的各个后续帧,
(i)获取所存储的根据前一帧的第一计算值,每隔一帧反转所存储的第一计算值的符号;
(ii)将采样的当前帧的后半部分乘以第一旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(iii)将步骤(i)和步骤(ii)的结果相加;
第二计算块,其被设置为,对于采样的第一帧,将离散时间信号的采样帧乘以包括虚旋转因子值的第二旋转因子矩阵,以计算该第一帧的虚DFT系数矩阵;以及
第二存储器装置,其用于存储所述采样帧的后半部分乘以所述包括虚旋转因子值的第二旋转因子矩阵的右半部分所得的第二计算值,
其中,第二计算块还被设置为,对于采样的各个后续帧,
(iv)获取所存储的根据前一帧的第二计算值,每隔一帧反转所存储的第二计算值的符号;
(v)将采样的当前帧的后半部分乘以所述虚旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(vi)将步骤(iv)和步骤(v)的结果相加。
这种设备中的每个计算块都可以包括用于执行矩阵乘法的乘法累积(MAC)块。
该设备还可以包括:
第一卷积块,其用于在频域中对实DFT系数执行窗口函数,以及
第二卷积块,其用于在频域中对虚DFT系数执行窗口函数,
其中,每个卷积块都包括:
存储器单元,其用于存储所述窗口函数的非零值;以及
乘法累积(MAC)块,其用于将所述非零值应用于DFT系数。
在一个或更多个实施方式中,第一计算块可以被配置为执行涉及实旋转因子的乘法,该实旋转因子形成了实旋转因子矩阵的右半部分的上半部分或下半部分中的一个,并且第二计算块可以被配置为执行涉及虚旋转因子的乘法,该虚旋转因子形成了虚旋转因子矩阵的右半部分的上半部分或下半部分中的一个。在这种情况下,该设备还可以包括:
第一加法器,其被配置为,对于形成实旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的实旋转因子,将根据实数或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法的乘法结果添加到第一存储器装置中;以及
第二加法器,其被配置为,对于形成虚旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的虚旋转因子,将根据实数或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法的乘法结果添加到第二存储器装置中。
附图说明
参照附图以示例而非限制的方式来描述本发明的优选实施方式,其中:
图1是示出离散时间信号的连续采样帧以及这些连续采样帧的重叠性质的示意图;
图2是描绘离散傅里叶变换系数计算中使用的旋转因子矩阵的对称特性的图;
图3是计算离散傅里叶变换系数的设备的现场可编程门阵列实现的实施方式;
图4是形成图3所示的设备的部分的一部分卷积块的示意图;
图5是描绘离散傅里叶变换系数计算中使用的旋转因子矩阵的进一步对称特性的图;
图6是示出离散傅里叶变换系数计算中使用的旋转因子矩阵的附加对称特性的z-平面中四个对称点的图形表示;
图7是用于计算离散傅里叶变换系数矩阵的设备的现场可编程门阵列实现的另一实施方式。
具体实施方式
傅里叶变换是用于表示频域中的时变信号的主要工具。考虑离散时间信号的N个采样的集合{x(n),n=0,1,2,...,N-1}。x(n)的常规离散傅里叶变换(DFT)由以下表达式定义:
由于存在通项,所以一般通过引入以下符号来简化上述定义:
在这种情况下,w是实际上称作“旋转因子”的纯量值(scalar-valued)量。于是可以根据旋转因子将等式(1)写为
可以将等式(1)中定义的DFT系数表示为矩阵向量形式
或
f=Fx (5)
其中,x是N个输入采样的向量,f是DFT变换系数的向量,F是NxN傅里叶矩阵。DFT在数字信号处理算法的分析、合成和实现中所起的重要作用是本领域技术人员所公知的。
在处理长的非平稳信号时,需要将它们分为短的准平稳帧,以便应用傅里叶分析。为了避免可能在接近帧边界处出现的频谱泄漏和错过事件,将输入信号帧重叠,并且应用合适的窗口函数,以减少帧边界效应。图1示出了离散时间信号采样的三个连续帧10、12、14的示例。每一帧都有N个元素,记为x[n],其中n的范围从0到N-1。每一帧都与前一帧重叠一半或者说50%。
尽管等式(4)中的DFT变换系数是复数,但在DFT算法的硬件实现中,实际上计算实数和虚DFT系数。然后使用得到的实数和虚DFT系数来计算复DFT系数。计算实数和虚DFT系数的最简单的公式如下:
其中,XRe[k]和XIm[k]是盒索引(bin index)k处的实数和虚DFT系数,其中,N是DFT的大小。
由于输入信号通常是纯实数,所以DFT的复输出将是对称的,并且仅需要从k+0~N/2-1的值,而n使用从0到N-1的值。
可以使用两个乘法累积(MAC)块直接在FPGA硬件中实现两个等式(6)和(7)。这特别吸引人,因为现在MAC块一般被嵌入在低成本FPGA芯片中。例如,来自赛灵思(Xilinx)的低成本FPGA Spartan-3系列包括多于30个MAC块。
等式(6)和(7)都能描述为以下矩阵形式:
Xk=[F][xn] (8)
其中,F是余弦表或正弦表的矩阵形式(旋转因子矩阵),Xn是输入信号。基于等式(8),帧10的傅里叶变换如下:
X1k=[F][xn]=[F][ab] (9)
如果将矩阵F垂直划分为左半部分F1和右半部分F2,使得F=[F1F2],如图2所示,则等式(4)将变为
X1k=[F][xn]=[F][ab]=[F1][a]+[F2][b] (10)
类似地,分别用等式(11)和(12)来描述图1中的帧12和帧14的傅里叶变换。
X2k=[F1][b]+[F2][c] (11)
X3k=[F1][c]+[F2][d] (12)
同样根据等式(6)、(7)、(8)可以看出
其中,k=0:N/2-1,n=0:N-1
在的情况下,等式(10)、(11)、(12)中的F1和F2被表示为如下等式(12a)和(12b):
和
其中,k=0:N,n=N/2:N-1 (12b)
如果n从0变到N/2-1,则F2将变为
如等式(10)和(11)中描述的,帧10的DFT系数由[F1][a]和[F2][b]决定,帧12的DFT系数由[F1][b]和[F2][c]决定。然而,由于F2=±F1(如上所示),所以能从[F2][b]推断出[F1][b],而无需进一步的计算,并且[F2][b]中包含的值仅需被存储以用于下一轮计算。因此,帧12所需的计算量能减少1/2。类似地,在帧14的DFT计算中,仅有[F2][d]需要特定计算。因此,在第一帧之后,各个后续帧的计算需求都能减少50%。
上述技术可以实现在如图3所示的硬件中。该图描绘了用于计算DFT系数的设备30。设备30包括第一计算块,该第一计算块被设置为将离散时间信号的采样帧乘以旋转因子矩阵,以计算这些帧的DFT系数。为此,计算块32包括乘法累积(MAC)块,该MAC块包括乘法器34和加法器(ADD)36。计算块32还包括存储器装置(RAM)38和复用器(MUX)40。设备30还包括存储了计算块32执行等式(6)描述的计算所需的旋转因子的查找表(余弦LTU)42。
运算时,第一帧10的每个输入信号采样都被乘法器(MUL)34乘以查找表42中的实旋转因子,然后被加法器36累积,以计算该第一帧10的实DFT系数的矩阵。采样帧后半部分乘以旋转因子矩阵右半部分的乘法得到的计算值被存储在存储器装置38的地址k处,其中,k是实DFT盒索引。
对于该离散时间输入信号采样的第二帧12和后续帧,该第二帧12的实DFT系数计算的一半已经是可用的,其已预先存储在存储器装置38中。相应地,获取所存储的根据之前帧的计算值,每隔一帧反转所存储的计算值的符号。然后将采样的当前帧12的后半部分乘以保存在查找表42中的旋转因子矩阵的右半部分,然后通过加法器36将该乘法的结果与获取的计算值相加,以便产生该下一盒的DFT系数。
采样的当前帧的后半部分乘以旋转因子矩阵右半部分的乘法得到的计算值被存储在存储器装置38的地址k+1处。重复该过程,直到为所有盒计算了实DFT系数为止。
在此实施方式中,设备30还包括第二计算块44,第二计算块44包括乘法器46和加法器48形式的MAC块,以及第二存储器装置50和复用器52。尽管第一计算块32和第一存储器装置38使用离散时间输入信号的采样帧和保存在查找表42中的实旋转因子值来计算采样帧的实DFT系数,然而第二计算块44和第二存储器装置50使用输入信号的采样帧和保持在查找表42中的虚旋转因子值来计算各个采样帧的虚DFT系数。
为此,对于采样的第一帧10,第二计算块44将采样帧乘以保存在查找表42中的虚旋转因子值,来计算该第一帧的虚DFT系数。采样帧的后半部分乘以包括虚旋转因子值的旋转因子矩阵右半部分的乘法所得到的计算值被存储在第二存储器装置50中。
对于采样的第二帧12和后续帧,获取对于之前帧执行并且存储在存储器装置50中的计算值,并且每隔一帧反转所存储的计算值的符号。然后,对于每个当前帧,将采样的当前帧的后半部分乘以虚旋转因子矩阵的右半部分,然后将乘法结果与获取的计算值相加,生成对于特定DFT盒的虚DFT系数。再次重复该过程,直到为所有DFT盒计算了虚DFT系数为止。对于采样的每个第二帧和后续帧,将采样的当前帧的后半部分乘以虚旋转因子矩阵右半部分的乘法所得到的计算值存储在第二存储器装置50中,用于与后续帧相关的计算。
存储器装置38和50都可以包括双端口随机存取存储器(RAM),其具有两个独立端口,允许共享单个存储器空间。双端口RAM空间可分为两个等同部分,每部分的大小都为N/2(N是DFFT的大小)。在这种情况下,双端口RAM类似于循环缓冲器那样工作,使得一部分由DFT块占用,而另一部分由输入信号采样填充。
为了减少DFT系数计算中的频谱泄漏,通常对时域输入信号应用窗口函数。然而,在时域中应用窗口函数将危及图3所示的设备30中利用的不对称性,并且存储在存储器装置38和50中的根据之前帧的计算值将不再有效。相应地,设备30还包括卷积块(Conv)54,其对频域中的实数和虚DFT系数应用窗口函数。
尽管可以通过卷积块54实现多种窗口函数,但是具有易于产生的优点的两个示例是汉宁(Hann)和汉明(Hamming)窗口。汉明窗口可以被视为变型的汉宁窗口,其实现了更多的旁瓣对消。汉明窗口可以被描述为序列的和w(n):
其中,N是窗口大小(通常与DFT大小相同),a通常是整数,N是值为0到N-1的索引。
每个序列的DTFT(离散时间傅里叶变换)都可以被标识为:
其中
在DFT的情况下,以的倍数对窗口进行采样。因此,在采样过程中仅得到三个非零采样。这些采样的位置在0、处,获得的相应采样值是-(1-α)/2、α、-(1-α)/2。α的值是0.54,因此汉明窗口的DFT仅包括三个非零值:-0.23、0.54、-0.23。
通过在频域中使用卷积,能略去存储窗口函数的采样的存储器需求。此外,保留了原始帧,使得第一DFT系数展现出输入帧的真实能量值。由于在许多数字信号处理算法中,这是需要的重要值(如果使用时域窗口方法则必须单独计算该值),所以在频域中使用卷积进一步实现了图3所示的硬件实现中的资源节约。
图4示出了能提供由卷积块54提供的窗口函数的方便情况。该硬件实现60包括移位寄存器62,其包括用于存储汉明窗口的DFT的三个非零值中的每一个的三个存储器元件64、66、68。汉明窗口的DFT的三个非零值中的每一个通过乘法器(MUL)72和加法器(ADD)74形式的MAC块70应用到实数或虚DFT系数。应该理解,卷积块54包括图4中描绘的两组元件,即,用于将窗口函数应用到在加法器36输出处生成的实DFT系数的第一组元件,和用于将窗口函数应用到加法器48输出处的虚DFT系数的第二组元件。
图3和图4中描绘的本发明的实施方式利用了旋转因子矩阵对称性的优点,以节约计算复杂度。然而,可以通过使用优化技术基于仅具有微小硬件添加的这些同样的对称性来实现进一步的延迟节约。
加入F是旋转因子矩阵,它还具有复数表示:其中,k值从0到N/2-1,n为从0到N-1。如等式(10)、(11)、(12)中所表示的,F1是矩阵F的左半部分,其中,n从0到N/2-1,F2是右半部分,n从N/2到N-1。
相应地,其中,k和n从0到N/2-1。如果我们设L=N/2,则其中,k和n从0到L-1。如图5所示,如果F1被水平分为F1a和F1b,则其中,k从0到L/2-1,n从0到L-1,并且其中,k从L/2到L-1,n从0到L-1。
如果k从0到L/2-1,则F1b能由下式表示
其中
等式(18)展现了z平面中的四个对称点80-86,如图6所示。
根据上述内容,DFT基本等式(6)和(7)能如下重写为:
(20)
(22)
结果,在计算索引k处的DFT系数时,可以根据k用合适的符号位来交换(swap)两个乘法的乘积,以计算索引k+L/2处的DFT系数。因此,如图7所示,为了计算DFT系数的所有盒,循环仅需要N/4次,仅添加了两个加法器,而不需要N/2次循环。
换句话说,为了将采样帧的后半部分b乘以实数和虚旋转因子矩阵的右半部分F2,仅需计算涉及形成实数和虚旋转因子矩阵的右半部分F2的上半部分F2a或下半部分F2b中的一个的乘法。对于形成实旋转因子矩阵的右半部分F2的上半部分F2a或下半部分F2b中的另一个的实旋转因子,可以根据实数和虚旋转因子矩阵的右半部分F2的上半部分F2a或下半部分F2b中的所述一个的对应乘法来推断出乘法结果。
图7描绘了用于计算实数和虚DFT系数的设备100,其实现了结合图5和图6描述的优化技术。设备100包括第一计算块102,第一计算块102包括乘法器(MUL)104和加法器(ADD)106形式的MAC块。还包括第一存储器装置108和相关联的复用器(MUX)110。设备100还包括第二计算块112,第二计算块112包括乘法器(MUL)114和加法器(ADD)116形式的MAC块。还包括第二存储器装置118和相关联的复用器(MUX)120。此外,设备100包括查找表122和卷积块(Conv)124。第一计算块102和第二计算块112、第一存储器设备108和相关联的复用器(MUX)110以及第二存储器设备118和相关联的复用器(MUX)120、查找表130和卷积块(Conv)124以类似于结合第一计算块32和第二计算块44、第一存储器设备38和相关的复用器40以及第二存储器设备50和相关联的复用器52、查找表42和卷积块54(这些结合图3所示的设备30描述)描述的方式来发挥作用。
在设备100中,第一计算块102被配置为执行涉及形成实旋转因子矩阵的右半部分F2的上半部分F2a或下半部分F2b中的一个的实旋转因子的乘法。类似地,第二计算块112被配置为执行涉及形成虚旋转因子矩阵的右半部分F2的上半部分F2a或下半部分F2b中的一个的虚旋转因子的乘法。
然而,设备100还包括附加的加法器126和128,以及附加的复用器130和132。加法器126被配置为,对于形成实旋转因子矩阵的右半部分F2的上半部分F2a或下半部分F2b中的另一个的实旋转因子,向第一存储器设备108添加由复用器130提供的、根据实数或虚旋转因子矩阵的右半部分的上半部分或下半部分中的一个中的对应乘法的乘法结果。类似地,加法器128被配置为,对于形成虚旋转因子矩阵的右半部分F2的上半部分F2a或下半部分F2b中的另一个的虚旋转因子,向第二存储器设备118添加由复用器132提供的、根据实数或虚旋转因子矩阵的右半部分的上半部分或下半部分中的一个中的对应乘法的乘法结果。这样,通过添加加法器126和128以及相关联的多路复用器130和132,为了计算所有所需的DFT系数,在设备100中仅需要N/4次循环,而不需要N/2次循环,从而与图3所示的设备30相比,提供了进一步的延迟节约。
应该理解,上面描述的元件仅仅例示了这里公开的发明,在不脱离本发明的精神的情况下,可以由本领域技术人员修改和创建许多变型。
Claims (14)
1.一种计算离散频率离散傅里叶变换DFT系数矩阵的方法,该方法包括以下步骤:
(a)对于采样的第一帧,
将离散时间信号的采样的帧乘以旋转因子矩阵,以计算该第一帧的DFT系数矩阵,并且
存储所述采样的帧的后半部分乘以所述旋转因子矩阵的右半部分所得的计算值;以及
(b)对于采样的各个后续帧执行以下操作,其中,每个后续帧都与前一帧重叠一半,
(i)获取所存储的根据前一帧的计算值,每隔一帧反转所存储的计算值的符号;
(ii)将采样的当前帧的后半部分乘以所述旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(iii)将步骤(i)和步骤(ii)的结果相加。
2.根据权利要求1所述的方法,其中,所述DFT矩阵包括实DFT系数,并且每个旋转因子矩阵都包括实旋转因子值。
3.根据权利要求1所述的方法,其中,所述DFT矩阵包括虚DFT系数,并且每个旋转因子矩阵都包括虚旋转因子值。
4.根据前述权利要求中任一项所述的方法,该方法还包括通过以下步骤使用卷积在频域中对所述DFT系数执行窗口函数的步骤:
存储所述窗口函数的非零值;以及
将所述非零值应用于所述DFT系数。
5.根据权利要求4所述的方法,其中,所述窗口函数是汉明窗口。
6.一种计算离散频率离散傅里叶变换DFT系数矩阵的方法,该方法包括以下步骤:
执行权利要求1的步骤(a)和步骤(b),以计算包括实旋转因子值的旋转因子矩阵的实DFT系数矩阵;以及
执行权利要求1的步骤(a)和步骤(b),以计算包括虚旋转因子值的旋转因子矩阵的虚DFT系数矩阵。
7.根据权利要求6所述的方法,其中,步骤(b)(ii)包括:
执行涉及实旋转因子的乘法,这些实旋转因子形成了实旋转因子矩阵的右半部分的上半部分或下半部分中的一个;
执行涉及虚旋转因子的乘法,这些虚旋转因子形成了虚旋转因子矩阵的右半部分的上半部分或下半部分中的一个;
对于形成实旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的实旋转因子,根据实或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法来推断乘法结果;以及
对于形成虚旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的虚旋转因子,根据实或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法来推断乘法结果。
8.一种用于计算离散傅里叶变换DFT系数矩阵的设备,该设备包括:
计算块,其被设置为,对于采样的第一帧,将离散时间信号的采样的帧乘以旋转因子矩阵,以计算该第一帧的DFT系数矩阵;以及
存储器装置,其用于存储所述采样的帧的后半部分乘以所述旋转因子矩阵的右半部分所得的计算值,
其中,所述计算块还被设置为,对于采样的各个后续帧执行以下操作,其中,各个后续帧都与前一帧重叠一半,
(i)获取所存储的根据前一帧的计算值,每隔一帧反转所存储的计算值的符号;
(ii)将采样的当前帧的后半部分乘以所述旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(iii)将步骤(i)和步骤(ii)的结果相加。
9.根据权利要求8所述的设备,其中,所述计算块包括用于执行矩阵乘法的乘法累积MAC块。
10.根据权利要求8或9中任一项所述的设备,该设备还包括:
用于在频域中对DFT系数执行窗口函数的卷积块,该卷积块包括:
存储器单元,其用于存储所述窗口函数的非零值;以及
乘法累积MAC块,其用于将所述非零值应用于所述DFT系数。
11.一种用于计算离散傅里叶变换DFT系数矩阵的设备,该设备包括:
第一计算块,其被设置为,对于采样的第一帧,将离散时间信号的采样的帧乘以包括实旋转因子值的第一旋转因子矩阵,以计算该第一帧的实DFT系数矩阵;
第一存储器装置,其用于存储所述采样的帧的后半部分乘以所述包括实旋转因子值的第一旋转因子矩阵的右半部分所得的第一计算值,
其中,各个后续帧都与前一帧重叠一半,并且
其中,所述第一计算块还被设置为,对于采样的各个后续帧,
(i)获取所存储的根据前一帧的第一计算值,每隔一帧反转所存储的第一计算值的符号;
(ii)将采样的当前帧的后半部分乘以所述第一旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(iii)将步骤(i)和步骤(ii)的结果相加;
第二计算块,其被设置为,对于采样的第一帧,将离散时间信号的所述采样的帧乘以包括虚旋转因子值的第二旋转因子矩阵,以计算该第一帧的虚DFT系数矩阵;以及
第二存储器装置,其用于存储所述采样的帧的后半部分乘以所述包括虚旋转因子值的第二旋转因子矩阵的右半部分所得的第二计算值,
其中,第二计算块还被设置为,对于采样的各个后续帧,
(iv)获取所存储的根据前一帧的第二计算值,每隔一帧反转所存储的第二计算值的符号;
(v)将采样的当前帧的后半部分乘以所述虚旋转因子矩阵的右半部分,并且存储所得的计算值;并且
(vi)将步骤(iv)和步骤(v)的结果相加。
12.根据权利要求11所述的设备,其中,每个计算块都包括用于执行矩阵乘法的乘法累积MAC块。
13.根据权利要求11或12中任一项所述的设备,该设备还包括:
第一卷积块,其用于在频域中对实DFT系数执行窗口函数,以及
第二卷积块,其用于在频域中对虚DFT系数执行窗口函数,
其中,每个卷积块都包括:
存储器单元,其用于存储所述窗口函数的非零值;以及
乘法累积MAC块,其用于将所述非零值应用于DFT系数。
14.根据权利要求11至13中任一项所述的设备,其中,第一计算块被配置为执行涉及实旋转因子的乘法,这些实旋转因子形成了实旋转因子矩阵的右半部分的上半部分或下半部分中的一个,并且第二计算块被配置为执行涉及虚旋转因子的乘法,这些虚旋转因子形成了虚旋转因子矩阵的右半部分的上半部分或下半部分中的一个,该设备还包括:
第一加法器,其被配置为,对于形成实旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的实旋转因子,将根据实或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法的乘法结果添加到第一存储器装置中;以及
第二加法器,其被配置为,对于形成虚旋转因子矩阵的右半部分的上半部分或下半部分中的另一个的虚旋转因子,将根据实或虚旋转因子矩阵的右半部分的上半部分或下半部分中的所述一个的对应乘法的乘法结果添加到第二存储器装置中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2008904721A AU2008904721A0 (en) | 2008-09-10 | Method and device for computing matrices for discrete fourier transform (DFT) coefficients | |
AU2008904721 | 2008-09-10 | ||
PCT/AU2009/001190 WO2010028440A1 (en) | 2008-09-10 | 2009-09-10 | Method and device for computing matrices for discrete fourier transform (dft) coefficients |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102209962A true CN102209962A (zh) | 2011-10-05 |
Family
ID=42004720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801443358A Pending CN102209962A (zh) | 2008-09-10 | 2009-09-10 | 计算离散傅里叶变换(dft)系数矩阵的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20120131079A1 (zh) |
EP (1) | EP2332072A1 (zh) |
JP (1) | JP2012502379A (zh) |
KR (1) | KR20110081971A (zh) |
CN (1) | CN102209962A (zh) |
AU (1) | AU2009291506A1 (zh) |
WO (1) | WO2010028440A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113569190A (zh) * | 2021-07-02 | 2021-10-29 | 星思连接(上海)半导体有限公司 | 一种快速傅立叶变换旋转因子计算系统和方法 |
CN115168794A (zh) * | 2022-06-20 | 2022-10-11 | 深圳英智科技有限公司 | 一种基于改进dft的频谱分析方法、系统及电子设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102592601B (zh) | 2011-01-10 | 2014-09-17 | 华为技术有限公司 | 一种信号处理方法和装置 |
US9128885B2 (en) | 2012-10-17 | 2015-09-08 | The Mitre Corporation | Computationally efficient finite impulse response comb filtering |
US10515612B2 (en) * | 2018-03-26 | 2019-12-24 | Samsung Display Co., Ltd. | Transformation based stress profile compression |
US20200349217A1 (en) * | 2019-05-03 | 2020-11-05 | Micron Technology, Inc. | Methods and apparatus for performing matrix transformations within a memory array |
US11449577B2 (en) | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
CN113379046B (zh) * | 2020-03-09 | 2023-07-11 | 中国科学院深圳先进技术研究院 | 卷积神经网络的加速计算方法、存储介质和计算机设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3748451A (en) * | 1970-08-21 | 1973-07-24 | Control Data Corp | General purpose matrix processor with convolution capabilities |
US6839727B2 (en) * | 2001-05-01 | 2005-01-04 | Sun Microsystems, Inc. | System and method for computing a discrete transform |
US6704760B2 (en) * | 2002-04-11 | 2004-03-09 | Interdigital Technology Corporation | Optimized discrete fourier transform method and apparatus using prime factor algorithm |
US7236535B2 (en) * | 2002-11-19 | 2007-06-26 | Qualcomm Incorporated | Reduced complexity channel estimation for wireless communication systems |
US7702712B2 (en) * | 2003-12-05 | 2010-04-20 | Qualcomm Incorporated | FFT architecture and method |
US20050278404A1 (en) * | 2004-04-05 | 2005-12-15 | Jaber Associates, L.L.C. | Method and apparatus for single iteration fast Fourier transform |
US7296045B2 (en) * | 2004-06-10 | 2007-11-13 | Hasan Sehitoglu | Matrix-valued methods and apparatus for signal processing |
-
2009
- 2009-09-10 KR KR1020117008014A patent/KR20110081971A/ko not_active Application Discontinuation
- 2009-09-10 EP EP09812533A patent/EP2332072A1/en not_active Withdrawn
- 2009-09-10 US US13/063,166 patent/US20120131079A1/en not_active Abandoned
- 2009-09-10 JP JP2011526354A patent/JP2012502379A/ja not_active Withdrawn
- 2009-09-10 WO PCT/AU2009/001190 patent/WO2010028440A1/en active Application Filing
- 2009-09-10 AU AU2009291506A patent/AU2009291506A1/en not_active Abandoned
- 2009-09-10 CN CN2009801443358A patent/CN102209962A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113569190A (zh) * | 2021-07-02 | 2021-10-29 | 星思连接(上海)半导体有限公司 | 一种快速傅立叶变换旋转因子计算系统和方法 |
CN115168794A (zh) * | 2022-06-20 | 2022-10-11 | 深圳英智科技有限公司 | 一种基于改进dft的频谱分析方法、系统及电子设备 |
CN115168794B (zh) * | 2022-06-20 | 2023-04-21 | 深圳英智科技有限公司 | 一种基于改进dft的频谱分析方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2332072A1 (en) | 2011-06-15 |
KR20110081971A (ko) | 2011-07-15 |
JP2012502379A (ja) | 2012-01-26 |
US20120131079A1 (en) | 2012-05-24 |
WO2010028440A1 (en) | 2010-03-18 |
AU2009291506A1 (en) | 2010-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102209962A (zh) | 计算离散傅里叶变换(dft)系数矩阵的方法和设备 | |
CN101154215B (zh) | 基23频域取样快速傅立叶变换的硬件结构 | |
CN108021781A (zh) | 一种可参数化的fft ip核设计和优化方法 | |
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
Xiao et al. | Reduced memory architecture for CORDIC-based FFT | |
Wang et al. | Design of pipelined FFT processor based on FPGA | |
CN102129419B (zh) | 基于快速傅立叶变换的处理器 | |
Sona et al. | Vedic multiplier implementation in VLSI | |
CN102364456A (zh) | 64点fft计算器 | |
KR102376492B1 (ko) | 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법 | |
CN103176949A (zh) | 实现fft/ifft变换的电路及方法 | |
Ferizi et al. | Design and implementation of a fixed-point radix-4 FFT optimized for local positioning in wireless sensor networks | |
Mankar et al. | FPGA implementation of 16-point radix-4 complex FFT core using NEDA | |
Nagaraju et al. | High speed ASIC design of complex multiplier using Vedic mathematics | |
Qu et al. | High real-time design of digital pulse compression based on FPGA | |
Leclère et al. | Implementing super-efficient FFTs in Altera FPGAs | |
KUMAR et al. | VLSI Design of a CORDIC Algorithm Based FFT Processor | |
Kumar et al. | Computational Simulation of Square using Low Power Vedic Algorithm and its Implementation on FPGA | |
Chandrakanth et al. | Customized architecture for implementing configurable FFT on FPGA | |
Al Sallab et al. | Optimized hardware implementation of fft processor | |
Sharma et al. | Time Efficient Implementation of Matrix Multiplication for Signal Processing | |
Tathode et al. | Designing of FPGA based high performance 32 bit FFT processor with BIST | |
Wen et al. | FPGA Implementation of efficient FFT algorithm based on complex sequence | |
Ma et al. | Implementation of a pipeline large-FFT processor based on the FPGA | |
Zhou et al. | Fixed-point simulation technology for SAR real-time imaging system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111005 |