《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 不同運算機制下FFT計算精度分析
不同運算機制下FFT計算精度分析
2016年電子技術應用第12期
劉 鳳,龔曉峰,,張軍歌
四川大學 電氣信息學院,,四川 成都610065
摘要: 主要研究定點,、塊浮點和浮點運算機制下,頻域抽取基4算法的精度問題,。首先分析了定點,、塊浮點、浮點等運算機制下,,基4算法基本運算單元中數(shù)據(jù)不同表現(xiàn)形式及輸出截位規(guī)則,。然后利用MATLAB平臺建立了定點與塊浮點FFT仿真模型,以噪信比作為FFT輸出精度指標,,研究輸出精度與輸入信號范圍,、算法參數(shù)之間的關系。仿真表明,,輸入為隨機序列時,,定點與塊浮點FFT輸出噪信比與輸入信號幅值范圍、輸入序列長度及算法輸入位寬有關,。此結論可用以解決實際工程中小信號頻譜失真問題,,在工程分析與設計中具有重要參考價值,。
中圖分類號: TN402
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.12.005
中文引用格式: 劉鳳,龔曉峰,,張軍歌. 不同運算機制下FFT計算精度分析[J].電子技術應用,,2016,42(12):23-26.
英文引用格式: Liu Feng,,Gong Xiaofeng,,Zhang Junge. Accuracy analysis of FFT with different operation mechanism[J].Application of Electronic Technique,2016,,42(12):23-26.
Accuracy analysis of FFT with different operation mechanism
Liu Feng,,Gong Xiaofeng,Zhang Junge
School of Electrical Engineering and Information,,Sichuan University,,Chengdu 610065,China
Abstract: Accuracy in radix 4 decimation in frequency(DIF) algorithm is researched with different operation mechanisms. We analyze different data forms and roundoff rules of radix 4 operation unit with fixed-point, block floating point and floating point. A simulation model is established on MATLAB platform for operation mechanisms including fixed-point and block floating point. In this model, accuracy is measured by noise signal ratio. The result shows that, when the input is rand sequence , the noise signal ratio is effected by input length and scale and input width of algorithm. With the simulation result, we solved the spectral distortion with weak signal in practice. Consequently this scheme has better valve in practice.
Key words : operation mechanism,;radix 4 decimation in frequency algorithm,;operation unit;simulation model

0 引言

    FFT(Fast Fourier Transform)是有限長序列DFT(Discrete Fourier Transform)的一種快速算法,,是數(shù)字信號處理中的重要工具,。工程實踐中,根據(jù)數(shù)據(jù)表現(xiàn)形式及中間過程截位規(guī)則不同,,可將FFT處理器分為3種:定點FFT,、塊浮點FFT及浮點FFT。相同的FFT算法,,在3種運算機制下,,計算過程中引入舍入誤差不同,輸出精度存在明顯差異,。經(jīng)研究,,F(xiàn)FT算法舍入誤差與算法分解級數(shù)成正比關系[1-2]。但舍入誤差的引入與運算過程中的截位規(guī)則,、中間結果范圍緊密相連,,因此有必要探究不同范圍的輸入信號、算法相關參數(shù)與FFT輸出精度的關系,,這對實際工程應用改善輸出精度,、提高噪信比具有重要意義。

1 基4頻域抽取FFT算法

    FFT的核心是利用DFT中旋轉(zhuǎn)因子的周期性與對稱性,,將長序列DFT逐級分解為短序列的DFT,,從而減少運算量,提高運算速率[3-5]。常用FFT包括時域抽取FFT與頻域抽取FFT,,現(xiàn)介紹工程中廣泛應用的一種頻域抽取FFT算法,,基4頻域抽取算法

    長度為N的x(n)序列DFT變換為:

wdz3-gs1.gif

    x(n)按順序均勻分為4個序列:x(i),,x(i+N/4),,x(i+N/2),x(i+3N/4),。X(k)則按照除以4所得余數(shù)分為4組:X(4r),,X(4r+1),X(4r+2),,X(4r+3),,i,r=0,,1,…,,N/4,。則基4頻域抽取一次分解為:

wdz3-gs2.gif

    從式(1)與式(2)對比可以看出,長度為N的長序列進行一次基4 DIF分解,,N2次復數(shù)乘累加的運算量,,降低至N2/4+2N,且包含±j,,±1,,W0等因子的單元可進一步簡化運算。長度為N的序列,,可進行l(wèi)og4 N次分解,,因此FFT算法大大降低離散傅里葉變換運算量。

2 定點,、塊浮點,、浮點FFT運算過程

    影響FFT輸出精度的因素主要包含:系數(shù)量化誤差,運算過程中舍入誤差,。本文主要探究運算過程中舍入誤差對FFT輸出精度的影響,。不同運算機制,數(shù)據(jù)表現(xiàn)形式及輸出截位規(guī)則有較大差異,,引入舍入誤差不同,,導致最小精度不同。因此有必要對采用定點,、塊浮點,、浮點運算機制時,基4算法運算單元中數(shù)據(jù)表現(xiàn)形式、輸出截位規(guī)則,、輸出最小精度進行分析,。

2.1 定點FFT

    定點FFT是輸入、旋轉(zhuǎn)因子,、輸出均為定點形式的一種FFT運算機制,。每級蝶形運算,根據(jù)輸入位寬對運算結果采取高位截取,。如圖1所示,,輸入數(shù)據(jù)位寬為a,旋轉(zhuǎn)因子位寬為b,。蝶形輸入與因子±j,,±1進行乘加運算,幅值全范圍位寬擴展至a+2位,,與b位有符號旋轉(zhuǎn)因子相乘位寬擴展至a+b+1位,,每級蝶形輸入位寬要求相同,因此以四舍五入法截取高a位蝶形運算結果進行下級蝶形運算,。

wdz3-t1.gif

    除去與旋轉(zhuǎn)因子相乘造成的位擴寬,,基4定點FFT每級蝶形運算以全范圍位寬溢出2位為前提進行舍入。每進行一級蝶形運算,,中間結果最小精度擴大4倍,。因此,輸入序列長度為N時,,輸出FFT最小精度為wdz3-t1-x1.gif定點FFT輸出最小精度只與分解級數(shù)有關,。

2.2 塊浮點FFT

    塊浮點FFT與定點FFT區(qū)別在于對中間截位過程的優(yōu)化,其結果包含頻譜數(shù)據(jù)及指數(shù),。定點FFT默認每級蝶形輸出結果均出現(xiàn)符號位溢出,,事實上不同量級的輸入,中間結果符號位溢出情況是不同的,,塊浮點FFT通過監(jiān)測每級蝶形運算輸出范圍決定截位,,從而減少被截取位寬,降低了舍入誤差,。如圖2所示,,以正負最大的數(shù)值為標準,對每級蝶形輸出結果進行截位處理,。

wdz3-t2.gif

    塊浮點FFT通過指數(shù)表征總體移位結果,,輸出指數(shù)為exp,則最小精度為2exp,,指數(shù)由算法輸入位寬,、輸入信號,、運算級數(shù)共同決定。因此塊浮點最小精度與算法輸入位寬,、信號幅值范圍,、運算級數(shù)相關。

2.3 浮點FFT

    IEEE754標準是1985年IEEE(Institute of Electrical and electronics Engineers,,電子電氣工程師協(xié)會)提出的浮點運算規(guī)范,,為浮點運算部件工業(yè)標準[6]。IEEE754浮點格式如下:

    wdz3-gs3.gif

    如式(3)所示,,IEEE754浮點格式包含一位符號位,,h位無符號偏置指數(shù),k位尾數(shù),。數(shù)據(jù)進行二進制科學計數(shù)法表示后,,指數(shù)部分加上偏置值作為偏置指數(shù),小數(shù)部分依次截取k位有效數(shù)字作為尾數(shù),。如表1所示,,IEEE754共提供3種位寬的基礎二進制浮點格式。

wdz3-b1.gif

    相同位寬下,,浮點格式所表示的數(shù)據(jù)范圍比定點格式大得多,。尾數(shù)最低位權值為所能表示的最小精度,因此數(shù)據(jù)越大,,浮點表示精度越低。

    浮點FFT輸入,、輸出,、旋轉(zhuǎn)因子均為浮點表示形式,涉及的運算均遵循浮點運算準則,。計算結果有效位寬溢出導致的舍入誤差是浮點FFT主要誤差來源,。

3 噪信比分析

    為進一步對不同運算機制下FFT計算精度問題進行探索,我們使用輸出噪信比表征FFT算法相對誤差,,研究運算級數(shù),、算法輸入位寬與輸入信號范圍與FFT精度的關系。

3.1 浮點FFT噪信比

    浮點FFT誤差分析相對困難,,文獻[1]中提出了基2浮點FFT靜態(tài)模型,,輸入為白噪聲時,結果如公式(4)所示,,噪聲與信號均方差比值正比于FFT運算級數(shù)v,。文獻[2]則分析了DIF與DIT以及不同基數(shù)下FFT運算下的舍入誤差。結果表明,,浮點FFT輸出噪信比正比于運算級數(shù),。

    wdz3-gs4.gif

3.2 定點FFT與塊浮點FFT仿真模型

    現(xiàn)于MATLAB平臺建立定點與塊浮點FFT模型。該模型采用基4頻譜抽取算法,輸入信號范圍,、輸入位寬與旋轉(zhuǎn)因子位寬可調(diào),。計算噪信比N/S=|xm-xmat|/|xmat|,xm為模型輸出,,xmat為MATLAB平臺64位浮點計算值,。通過仿真,得出輸入為隨機序列時,,輸出噪信比與信號全范圍位寬Ls,、FFT輸入位寬Li、運算級數(shù)v的關系,。

3.2.1 噪信比與輸入信號幅值范圍關系

    從圖3與圖4可以看出,,定點FFT噪信比隨輸入信號范圍增大而下降。但對于塊浮點FFT,,輸入信號范圍接近輸入位寬時,,噪信比停止下降,甚至會略有上升,。運算級數(shù)固定,,定點FFT輸出最小精度不變。頻譜分量大于最小精度時,,增大信號輸入范圍,,能夠增大頻譜分量,有效減小頻譜失真率,,降低輸出噪信比,。而塊浮點FFT最小精度是隨信號頻譜分量范圍變化的,信號輸入范圍較小時,,塊浮點FFT最小精度不變,,呈現(xiàn)與定點FFT相同的規(guī)律,但隨著信號范圍增大,,最小精度也隨著變化,,因此噪信比不呈現(xiàn)下降的趨勢。

wdz3-t3.gif

wdz3-t4.gif

3.2.2 噪信比與輸入序列長度關系

    從圖5與圖6可以看出,,無論是定點FFT與塊浮點FFT,,噪信比都與運算級數(shù)近似正比。這是隨著運算級數(shù)增加,,舍入誤差線性累積的結果,。

wdz3-t5.gif

wdz3-t6.gif

3.2.3 噪信比與FFT輸入位寬關系

    從圖7與圖8可以看出,定點FFT輸出噪信比與定點FFT輸入位寬無關,,而塊浮點FFT噪信比隨著輸入位寬增大而減小,。這是因為定點FFT,,輸入位寬并不影響最小精度。而對于塊浮點運算機制,,F(xiàn)FT輸入位寬的增加,,降低輸出最小精度,輸出噪信比降低,。

wdz3-t7.gif

wdz3-t8.gif

4 小信號FFT精度問題

    實際工程中,,使用FPGA進行頻譜計算,當輸入為白噪聲信號時,,出現(xiàn)頻譜失真的情況,,經(jīng)分析頻譜失真與塊浮點FFT計算精度有關。

    工程中,,對射頻接收機輸出信號進行采樣,,經(jīng)過DDC,不同濾波帶寬濾波抽取后,,使用塊浮點FFT ip核進行FFT計算,,F(xiàn)FT輸出結果進行位擴展后,依照式(5)進行幅值計算,。

     wdz3-gs5.gif

    幅值計算包含對數(shù)運算,,因此在位擴展之后,將FFT ip核輸出實部虛部分量都為0的點幅值固定為常值1,,是幅值計算過程基于最小值的數(shù)值優(yōu)化,。

    當輸入為白噪聲情況下,降低信號帶寬,,出現(xiàn)了圖9所示的信號頻譜失真,。

wdz3-t9.gif

    當濾波帶寬較小時,頻譜能量小,,輸出頻譜分量小于FFT ip核輸出最小精度,因此出現(xiàn)較多零點,。

    根據(jù)圖4所示規(guī)律,,塊浮點FFT運算,當信號范圍較小時,,噪信比隨著輸入范圍增大而減小,。因此可通過擴大輸入信號范圍來減小噪信比,統(tǒng)一將信號時域分量擴大一定比例值,,以使頻譜分量大于ip核輸出最小精度,,減小頻譜失真,后續(xù)計算環(huán)節(jié)將比例值抵消后得到新的頻譜如圖10所示,,頻譜失真現(xiàn)象得到改善,,驗證了仿真結論的正確性,。

wdz3-t10.gif

5 結論

    本文通過分析定點、塊浮點,、浮點機制下,,基4算法基本單元運算數(shù)據(jù)表現(xiàn)形式及截位規(guī)則,得出不同運算機制下,,F(xiàn)FT舍入誤差及輸出最小精度,。利用仿真模型,得出定點,、塊浮點FFT噪信比隨輸入信號范圍,、FFT輸入位寬、序列長度的變化趨勢,,并基于仿真結論,,解決了實際工程中會遇到的小信號頻譜失真問題,驗證了仿真結果的正確性,,對工程師在實際工作中有很強的借鑒性和參考價值,。

參考文獻

[1] WEINSTEIN C.Roundoff noise in floating point fast Fourier transform computation[J].IEEE Transactions on Audio and Electroacoustics,1969,,17(3):209-215.

[2] THONG T,,LIU B.Accumulation of roundoff errors in floating point FFT[J].IEEE Transactions on Circuits and Systems,1977,,24(3):132-143.

[3] COOLEY J W,,TUKEY J W.An algorithm for the machine calculation of complex Fourier series[J].Mathematics of computation,1965,,19(90):297-301.

[4] COCHRAN W T,,COOLEY J W,F(xiàn)AVIN D L,,et al.What is the fast Fourier transform?[J].Proceedings of the IEEE,,1967,55(10):1664-1674.

[5] BRIGHAM E O,,BRIGHAM E O.The fast Fourier transform[M].Englewood Cliffs,,NJ:Prentice-Hall,1974.

[6] Floating-Point Working Group.IEEE standard for binary floating-point arithmetic[C].SIGPLAN.1987,,22:9-25.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉(zhuǎn)載。