BlockfloatingFFT

基本介紹

  • 中文名:BlockfloatingFFT
  • 別稱:塊浮點FFT運算
BlockfloatingFFT又稱為塊浮點FFT運算。
在FFT的硬體實現中,必須解決數據的動態範圍問題.可以採用以下不同的數據格式來解決這一問題:
1)採用定點運算方案;
2)採用浮點運算方案;
3)採用塊浮點運算方案.
定點運算,實現結構簡單,存儲空間少,運算速度快,但因受到字長的限制,數據動態範圍小,捨入誤差會降低最終處理結果的精度.
浮點運算,可以消除動態範圍局限的問題,輸出信號平均信噪比較高,但運算電路複雜,存儲空間大,運算速度慢,系統造價較高,而且在加法和乘法中都會產生捨入誤差.
塊浮點介於浮點和定點之間,是2種表示法的結合.在這種表示法中,一組數據具有一個----共同的指數,這個指數是這組數中絕對值最大的那個數的指數.這樣,在對數據塊執行加法和乘法運算時,無需進行額外的指數操作,僅對尾數進行加法和乘法運算即可,與定點運算一樣方便.在運算過程中,逐級進行溢出判斷和移位選擇,實現動態範圍擴展E引。
把一個數表示為尾數部分和指數部分,則稱該數為浮點數(floating point number)。例如十進制數為+63.8寫成浮點數則為0.638×102,其中+0.638是尾數部分,102是指數部分。對浮點數進行的算術運算稱為浮點運算。
下面介紹一下在Altera公司提供的FFT IPCORE中與此概念相關的內容:
Altera 提供的FFT Megacore 提供三個有關信號的輸出,也就是實部幅值,虛部幅值和指數
值(exp)。FFT 採用 Block Floating Point (bfp)的數字表達方式。所謂的BFP 是介於定點數和浮點數之間的一種數字表示方法。眾所周知,每個浮點數由尾數(mantissa)和指數(Exponent) 共同
組成。如果要計算的數多了,額外的指數暫存器就會讓一些系統吃不消了。一個解決辦法就
是,一批要被同樣的算法處理的數,假設把 n 個這樣的數叫做一個 block,讓他們共享一個
指數暫存器,數與數的區別僅在其尾數項。在運算的時候幅值最大的那個數的最高位成為敏
感位,如果它要溢出,那么指數暫存器記錄一次(如果用符號表示溢出一次,原來指數暫存
器的值為-1,則新值應該為-2),同時尾數向右移一位(LSB 被丟棄,MSB前面補符號位),
這樣尾數就不會溢出。到最后綜合計算結果的時候,尾數的值向左移n位(如果指數(exp)最後值
為-n的話),或者說尾數乘上2的n次方才對應真正的輸出。

相關詞條

熱門詞條

聯絡我們