所有提交的电子邮件系统将被重定向到在线稿件提交系统。请作者将文章直接提交给在线稿件提交系统各自期刊的。

12点FFT和IFFT分割基数算法的实现

P.Malyadri1, D.Jayanayudu2, G.Mahendra3.
  1. 印度安得拉邦坎都库市普拉卡萨姆工程学院,欧洲经委会系副教授
  2. 教授,印度安得拉邦翁戈勒的Sri Sathya Narayana工程学院,欧洲经委会系
  3. PG Student [VLSI & ES],印度Prakasam工程学院,Kandukur, Andhra Pradesh,印度
相关文章Pubmed谷歌学者

浏览更多相关文章国际电气、电子与仪器工程高级研究杂志

摘要

离散傅里叶变换(DFT)广泛应用于科学和工程的许多领域。DFT是用快速傅立叶变换等高效算法实现的。提出了一种计算长度为n =6m DFT的快速算法。所提出的算法是基数3和基数6的FFT的混合。它是分裂基数的2rx3m变体,可以灵活地实现长度DFT。子离散傅立叶变换的新顺序排列和运算次数的减少增强了算法的实用性。它本质上提供了更广泛的可访问FFT长度选择。与已发表的算法相比,该算法的实现需要较少的实际操作。系统Verilog的待定更新包含几个新的包和功能。新包包括对定点和浮点二进制数学的支持。 These fully Non-synthesizable packages will raise the level of abstraction in System Verilog. DSP applications, which previously needed an independent processor core, or required very difficult manual translation, can now be performed within your system Verilog source code. In addition, Schematic-based DSP algorithms can now be translated directly to System Verilog.

关键字

离散傅立叶变换(DFT),快速傅立叶变换(FFT),反快速傅立叶变换(IFFT),一般分割基数,基数3/6,系统Verilog语言。

介绍

离散傅里叶变换(DFT)是几乎应用于所有科学和工程领域的最重要的工具之一。DFT可以用快速傅立叶变换(FFT)等高效算法来实现。最广泛使用的方法是所谓的2m算法,如基数2,基数4和分割基数FFT (SRFFT)。这类算法已经进行了大量的研究,并得到了迅速的发展。同时,对计算长度- n =km DFT的算法进行了研究,提出了和k=3和k=6的方法。
由于效率较差,当k≠2时,km的算法没有什么实际意义。然而,在许多应用中,序列长度为3m或6m。这封信的思想是开发一个有用的算法长度N=6m DFT。可用的已发表算法报告于;一般的分割基数算法似乎更适合于长度- DFT。在这封信中,我们提出了一种基于基数-6的算法。与已有的算法相比,该算法的实现效率更高。其计算复杂度约等于4.071给出的方程nloga¯害怕一个½¯害怕一个½n - 5.61 - 33.555 n + loga¯害怕一个½¯害怕½n - 130.992,接近标准SRFFT (SRFFT的复杂性是4 nloga¯害怕一个½¯害怕一个½N-6N + 8)。该算法采用基数3/6算法,使用基数(1,j)。该算法将大小为N=6m的DFT分解为一个长度为-N/ 3和四个长度为-N/6的子DFT。分解的灵活性使该算法能够胜任非6次幂DFT的实现,而其长度可以精确地除以6。 Appropriate permutations are used for sub DFTs input sequences to reduce the computational intension.

文献调查

a.长度qx2m的基数2/8 FFT算法

针对任意长度N= qx2^m (m为奇数)的离散傅里叶变换,提出了一种新的基数-2/8快速傅里叶变换(FFT)算法。它大大减少了诸如数据传输、地址生成、旋转因子求值或对查找表的访问等操作,这些操作对FFT算法的执行时间有很大影响。结果表明,在大多数情况下,该算法的算术复杂度(乘法、加法)与现有的分基FFT算法相同。提出的算法背后的基本思想是使用基数2和基数8的混合索引映射。该算法以简单的矩阵形式表示,从而方便了算法的轻松实现,并允许扩展到多维情况。对于结构复杂性,该算法保留了Cooley-Tukey方法的重要特性,如使用蝴蝶格式和就地计算。它只适用于序列长度N=qx2m的DFT

b.长度qx2m的基数2/16 FFT算法

通过适当混合基数-2、基数-4和基数-16索引映射,并结合一些中间因子[3],提出了基数-2/16频率抽取(DIF)快速傅里叶变换(FFT)算法及其更高的基数版本,即基数-4/16 DIF FFT算法。结果表明,本文提出的算法与现有的基数-2/4和基数-2/8 FFT算法需要完全相同的算术运算次数(乘法和加法)。通过使用这种技术,可以证明用于计算2m DFT的所有可能的基数- 2r/2rs类型的分基数FFT算法需要完全相同的算术运算次数。该算法只适用于长度为N=2m,且m为整数的序列。

提出基数3/6算法的实现

提出了一种适用于乘加运算指令的新的基数-6 FFT算法。在具有乘加指令的处理器上,新的基数-6 FFT算法比传统的基数-6 FFT算法需要更少的浮点指令。提出了一种计算基数-6 FFT的算法,该算法比传统的基数-6 FFT算法具有更少的浮点指令。在带有乘加指令的处理器上,比较了新基数-6 FFT算法与传统基数-6 FFT算法的浮点指令数。
离散傅里叶变换的定义是
图像
在哪里
WN =e π, j=√−1,序列长度
假设{xn}是一个能被6整除的整数。对于长度为N的DFT,所提出的算法最适合6的幂次。显然,DFT可以分为三个长度为n /3的子DFT。为了推导出可能的最佳算法,我们继续分解三个子dft。由于前面没有比例因子;第一个子DFT应保持原样,并直接进入下一阶段的递归分解。另外两个子dft分为四个长度为n /6的子dft。实际上,如果一个DFT的长度可以除以6,那么该DFT就可以被该算法明确地分解。广义长度N可设为N= 2rx3m,其中r≥m-1。分解大小为N= 2rx3m的DFT,表示为
图像
其中四个长度为n /6的子dft被重新排序。为简化描述,可表示为(2)
图像
在哪里
图像(4)
在(3)中,Bk和Fk可以成对处理,因为和是共轭对。同样,Ck和Ek也可以成对处理。(3)的直接实现执行了许多不必要的操作,因为Xk、X2N/6+k、X4N/6+k、XN/6+k、X3N/6+k和XNN/6+k的计算结果是相互共享许多计算。特别是,如果我们把N/6加到K上,大小- DFT不会改变(因为它们是周期性的),而如果我们把2N/6加到K上,大小-N/3的DFT是不变的,所以,唯一改变的是,和项。为了减少操作的次数,以下六个身份是必要的:
图像(5)
图像(6)
图像(7)
图像(8)
图像(9)
图像(10)
在上述6个方程中取0到N/6 -1的范围,可以得到一个完整的输出X {k}集。
我们现在总结了所提出的基数3/6 FFT算法的方案。将长度为n的初始输入序列{xn}分解为5个子序列。对每一个新的子序列依次重复这个过程,直到所有子dft的大小都不能被6整除。图1-3给出了3点、6点和12点基数3/6算法的流程图(2点和4点FFT可以用SRFFT进行)。
3点DFT需要4次实乘法和12次实加法(一些算法假设3点DFT是用2次实乘法和12次实加法计算的,因为不需要乘以1/2,乘以1/2可以用位移位来计算)。
初始输入序列{¯害怕一个½¯害怕一个½¯害怕一个½¯害怕一个½}长度- N是分解成5子。对每一个新的子序列依次重复这个过程,直到所有子dft的大小都不能被6整除。
Radix-3/6 DIF FFT可以推导如下
图像
每个和,P (k), Q (k), R (k),被认为是一个N/3点DFT。变换X (k)可以分为三部分,如式(11)所示。
图像
图像
该算法递归地进行分解,直到所有子dft的长度不能被6整除。一般情况下,第一种特殊蝴蝶(r≥1,m≥1)只有1只,第二种特殊蝴蝶(r≥2,m≥1)只有1只,第三种特殊蝴蝶1只,第四种特殊蝴蝶(r≥3,m≥1)只有1只。总数的第五和第六类型的蝴蝶是2¯害怕一个½¯害怕一个½¯害怕一个½¯害怕一个½¯害怕害怕一个½¯½4。因此,本文算法的算术复杂度如式(14)所示。
图像

结果与讨论

12点DFT序列已经在System Verilog中实现,并使用Modelsim Version 6.4进行了模拟。
,图4显示了12号radix-3/6算法的输入序列FFT即{¯害怕一个½¯害怕一个½¯害怕一个½¯害怕一个½}={1,2,3,4,5,6,7,8,9,10,11}的Modelsim仿真应用。
图5显示了给定输入序列的输出序列Xk={78,-6+22.3923i,-6+10.39i,-6+6i,-6+3.464i,-6+1.6i,-6,-6-1.6i,-6-3.4i, -6-6i,- 6-10.39i,-6-22.3923i}。
上图。6is the RTL (Register Transfer Level) Schematic for 12 point input sequence using radix 3/6 algorithm generated in Xilinx 9.1i. The schematic contains one 4-point SRFFT, four 2-point FFT and three 3-point FFTs butterfly blocks.
图7为12点分割基数3/6 IFFT输入序列{Xk}={12,0,0,0,0,0,0,0,0,0,0}应用于Modelsim进行仿真的仿真结果。
仿真结果显示Fig.8 12点分裂基数3/6传输线的输出序列{¯害怕一个½¯害怕一个½¯害怕一个½¯害怕一个½}={0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999}。

未来的范围

使用Verilog实现16点RADIX 3/6 FFT设计,并使用Verilog系统进行验证。这些实现通常采用高效的快速傅立叶变换(FFT)算法,以至于术语“FFT”和“DFT”经常互换使用。DFT的同义词有限傅里叶变换(现在很少见)进一步模糊了这个术语,它显然早于术语“快速傅里叶变换”,但具有相同的初始化。

结论

针对长度为6m的DFT,提出了一种基数3/6的FFT算法。该算法是基数3和基数6的混合算法。它可以求非6次幂DFT,只要它的长度-6m能被6整除。为了减少操作次数,所有子dft都被有利地重新排序。与已发表的算法相比,该算法的实现需要较少的实际操作。其算法复杂度约为,接近标准的SRFFT算法。由于序列长度是不规则整数,很难得到一个完全准确的计算复杂度公式。

数字一览

数字 数字 数字 数字
图1 图2 图3 图4
数字 数字 数字 数字
图5 图6 图7 图8

参考文献











全球科技峰会