當前位置:首頁產(chǎn)品問答 │ DFT算法與FFT算法的優(yōu)劣分析

DFT算法與FFT算法的優(yōu)劣分析

  • 瀏覽次數(shù):38774次
  • 發(fā)布時間:2013/12/12 8:52:46
  • 作者:量值溯源

概述

  在諧波分析儀中,我們常常提到的兩個詞語,就是DFT算法與FFT算法,那么一款功率分析儀/諧波分析儀采用DFT算法或者FFT算法,用戶往往關(guān)注的是能否達到所要分析諧波次數(shù)的目的,而并未考慮兩種算法之間有什么不同,采用相關(guān)算法的依據(jù)。下面就來介紹一下兩種算法的不同以及適用的一些場合。

  DFT算法,是連續(xù)傅里葉變換在時域和頻域上都離散的形式,將時域信號的采樣變換為在離散時間傅里葉變換頻域的采樣。

  FFT算法,是離散傅里葉變換的快速算法,它是根據(jù)離散傅里葉變換的奇、偶、虛、實等特性,對離散傅里葉變換的算法進行改進獲得的。它對傅氏變換的理論沒有新的算法發(fā)現(xiàn),但是對于在計算機系統(tǒng)或者說數(shù)字系統(tǒng)中應(yīng)用離散傅里葉變換,可以說進了一大步。

DFT與FFT的比較

01運算量

  一般來說,FFT比DFT運算量小得多,N點的FFT需要做(N/2)log2N次乘法運算,而N點DFT需要做N2次乘法運算,由此看來N點 DFT運算量大約是FFT的2N/log2N倍,例如對1 024點的變換,DFT大約是FFT的200倍。然而實際應(yīng)用時存在下列情況:

 ?、?實際應(yīng)用時DFT中的乘法可以是實數(shù)和復(fù)數(shù)相乘,原因是輸入信號可以是實數(shù),而FFT只能是復(fù)數(shù)和復(fù)數(shù)的乘法,原因是FFT是分級運算的,中間運算過程都是復(fù)數(shù)運算,由此來看DFT的運算量大約是FFT的Nlog2N倍,而不是2N/log2N倍;

 ?、?實際應(yīng)用時往往只關(guān)心整個頻譜中的某一部分,甚至是只關(guān)心某些個別頻點的譜線。DFT的特點是可按式(1)單獨計算某一部分的譜線,而直接進行 FFT的算法必須計算整個頻譜后才能得到需要的那一部分頻譜,實際上已造成了浪費。如果N點的變換中只關(guān)心其中的M個頻點或稱M條譜線,那么實際DFT的運算量大約是FFT的M/N?N/log2N倍,即Mlog2N倍.例如對1 024點的變換,只需關(guān)心10條譜線,那么直接用DFT和用FFT的運算量是相同的。因此,實際應(yīng)用時DFT與FFT相比可能并沒有那么慢,甚至有可能比FFT快。

02點數(shù)或采樣率的可選性

  對DFT來講,其變換點數(shù)可任意選定,如實際應(yīng)用時采樣率已確定為1 000 Hz,如選變換點數(shù)為1 000點,那么每條譜線正好可落在整數(shù)頻點上。FFT的變換點數(shù)必須是有規(guī)律的,如基數(shù)為2算法的FFT其點數(shù)必須是2M,如1 024點、4 096點等。在實際應(yīng)用時為分析方便,采樣率往往要定為變換點數(shù)的倍數(shù),如2 048 Hz、8 192 Hz,以避免變換后的頻譜落在復(fù)雜的帶小數(shù)點的頻點上。因此實際應(yīng)用時FFT在變換點數(shù)選擇或采樣率選擇上可能會帶來局限性。

03實時性

  DFT運算可以用采一點后立即進行相乘、累加運算的方法,即可以采一點算一點,從采樣結(jié)束到DFT變換結(jié)束只需要一個點的運算時間。而FFT運算必須在全部點采集結(jié)束后才能開始進行計算,因此從某種角度講DFT的實時性優(yōu)于FFT。

04數(shù)據(jù)內(nèi)存開銷

  對N點DFT來講,如只需其中的M個頻點,那么在計算時至少需2M個單元的數(shù)據(jù)內(nèi)存,對N點FFT來講則至少需2N個單元的數(shù)據(jù)內(nèi)存,另外現(xiàn)有的FFT程序一般需要將系數(shù)放在數(shù)據(jù)內(nèi)存區(qū),因此需另選N個單元的數(shù)據(jù)內(nèi)存,故DFT有可能比FFT更節(jié)省數(shù)據(jù)內(nèi)存。

05程序的復(fù)雜性

  DFT計算程序非常簡單而且可以非常方便地在非DFT專用芯片上實現(xiàn),而FFT程序較為復(fù)雜。

06動態(tài)范圍或抗溢出性

  在定點運算的場合,DFT較FFT更容易實現(xiàn)多精度的運算, 例如在TI公司的16位定點DSP處理器中,采用的數(shù)據(jù)和系數(shù)為16位,而相乘并累加的結(jié)果可設(shè)為雙字節(jié)即32位,一般來講設(shè)計合理的話不會產(chǎn)生計算溢出的現(xiàn)象,免去了復(fù)雜的溢出控制,同時輸入輸出信號可保持較好的動態(tài)范圍,F(xiàn)FT在程序中有防溢出的措施,然而在定點運算的場合點數(shù)越多輸入信號的動態(tài)范圍越小。

結(jié)論

  在某些具體的應(yīng)用場合,DFT與它的快速算法FFT相比可能更有優(yōu)勢,而FFT卻存在某些局限性。在只需要求出部分頻點的頻率譜線時DFT的運算時間大為減少,所需的數(shù)據(jù)內(nèi)存量也大為減小。DFT與FFT相比還具有變換點數(shù)或采樣率選擇更靈活、實時性更好、更容易控制溢出和動態(tài)范圍、運算編程簡單、可方便地在非DSP芯片中編程實現(xiàn)等優(yōu)點。因此在實際應(yīng)用中可以從具體條件出發(fā)來比較、選擇DFT或FFT,而不應(yīng)片面地由于FFT是所謂的DFT的快速算法而只選用FFT。

  另外FFT運算速度快,但是,對樣本序列的長度做出了要求,即要求樣本序列的數(shù)量必須是2的N次冪,正確的傅里葉變換,樣本序列應(yīng)該是代表一個或整數(shù)個信號周期。對于固定頻率的交流電測量,可以使采樣頻率為信號頻率的M倍,且M=2^N。

  但是,對于變頻器輸出測量,如果測量前基波未知,那么,就無法同時滿足樣本數(shù)為2^N和整周期的要求。DFT運算速度遠遠低于FFT,但是,對樣本數(shù)沒有要求?;谧冾l電量測量特殊性以及兩種算法的特點,湖南銀河電氣有限公司的WP4000變頻功率分析儀采用高性能的嵌入式微處理器,采用DFT算法進行諧波分析儀,由于強大的硬件支撐,在保證DFT算法運算量的同時,也兼顧了運算速度。這樣,對于被測對象的樣本序列長度要求低,處理起來更加靈活方便。

 


Copyright 2010-2017 myyfit.com, All Rights Reserved 湖南銀河電氣有限公司 版權(quán)所有 湘ICP備09002592號-5