DFT算法与FFT算法的优劣有哪些 点击:3283 | 回复:2



vfecc

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 4回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2013年8月15日
发表于:2013-12-23 15:12:20
楼主

一、概述  

在谐波分析仪中,我们常常提到的两个词语,就是DFT算法与FFT算法,那么一款功率分析仪/谐波分析仪采用DFT算法或者FFT算法,用户往往关注的是能否达到所要分析谐波次数的目的,而并未考虑两种算法之间有什么不同,采用相关算法的依据。下面就来介绍一下两种算法的不同以及适用的一些场合。
  DFT算法,是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。
  FFT算法,是离散傅里叶变换的快速算法,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。它对傅氏变换的理论没有新的算法发现,但是对于在计算机系统或者说数字系统中应用离散傅里叶变换,可以说进了一大步。http://www.vfe.cc




vfecc

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 4回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2013年8月15日
发表于:2013-12-23 15:12:51
1楼

二、 DFT与FFT的比较  

  (1) 运算量。

  一般来说,FFT比DFT运算量小得多,N点的FFT需要做(N/2)log2N次乘法运算,而N点DFT需要做N2次乘法运算,由此看来N点DFT运算量大约是FFT的2N/log2N倍,例如对1 024点的变换,DFT大约是FFT的200倍.然而实际应用时存在下列情况:  

  ① 实际应用时DFT中的乘法可以是实数和复数相乘,原因是输入信号可以是实数,而FFT只能是复数和复数的乘法,原因是FFT是分级运算的,中间运算过程都是复数运算,由此来看DFT的运算量大约是FFT的Nlog2N倍,而不是2N/log2N倍.  
  ② 实际应用时往往只关心整个频谱中的某一部分,甚至是只关心某些个别频点的谱线.DFT的特点是可按式(1)单独计算某一部分的谱线,而直接进行FFT的算法必须计算整个频谱后才能得到需要的那一部分频谱,实际上已造成了浪费.如果N点的变换中只关心其中的M个频点或称M条谱线,那么实际DFT的运算量大约是FFT的M/N•N/log2N倍,即Mlog2N倍.例如对1 024点的变换,只需关心10条谱线,那么直接用DFT和用FFT的运算量是相同的.因此,实际应用时DFT与FFT相比可能并没有那么慢,甚至有可能比FFT快.  

  (2) 点数或采样率的可选性。

  对DFT来讲,其变换点数可任意选定,如实际应用时采样率已确定为1 000 Hz,如选变换点数为1 000点,那么每条谱线正好可落在整数频点上.FFT的变换点数必须是有规律的,如基数为2算法的FFT其点数必须是2M,如1 024点、4 096点等.在实际应用时为分析方便,采样率往往要定为变换点数的倍数,如2 048 Hz、8 192 Hz,以避免变换后的频谱落在复杂的带小数点的频点上.因此实际应用时FFT在变换点数选择或采样率选择上可能会带来局限性.  

  (3) 实时性。

  DFT运算可以用采一点后立即进行相乘、累加运算的方法,即可以采一点算一点,从采样结束到DFT变换结束只需要一个点的运算时间.而FFT运算必须在全部点采集结束后才能开始进行计算,因此从某种角度讲DFT的实时性优于FFT.  

  (4) 数据内存开销。

  对N点DFT来讲,如只需其中的M个频点,那么在计算时至少需2M个单元的数据内存,对N点FFT来讲则至少需2N个单元的数据内存,另外现有的FFT程序一般需要将系数放在数据内存区,因此需另选N个单元的数据内存,故DFT有可能比FFT更节省数据内存.  

  (5) 程序的复杂性 。

  DFT计算程序非常简单而且可以非常方便地在非DFT专用芯片上实现,而FFT程序较为复杂.  

  (6) 动态范围或抗溢出性。

  在定点运算的场合,DFT较FFT更容易实现多精度的运算, 例如在TI公司的16位定点DSP处理器中,采用的数据和系数为16位,而相乘并累加的结果可设为双字节即32位,一般来讲设计合理的话不会产生计算溢出的现象,免去了复杂的溢出控制,同时输入输出信号可保持较好的动态范围.FFT在程序中有防溢出的措施,然而在定点运算的场合点数越多输入信号的动态范围越小.  


hb_yinhe

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 21回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2013年9月25日
发表于:2014-02-22 22:11:20
2楼

你可以详细看这篇文章:DFT算法与FFT算法的优劣有哪些


热门招聘
相关主题

官方公众号

智造工程师