DSP 定點與浮點的區別

2021-06-14 09:27:36 字數 2335 閱讀 1698

可能對於入門級的dsp開發者有所幫助。本文關注定點dsp與浮點dsp的對比,主要從三個方面來分析。感謝我所引用的資料的作者。

一般來說,定點dsp處理器具有速度快,功耗低,**便宜的特點;而浮點dsp處理器則計算精確,動態範圍大,速度快,易於程式設計,功耗大,**高。

1、巨集觀上的區別

從巨集觀上講,浮點dsp比定點dsp的動態範圍大得多。定點運算中,程式設計師必須時刻關注溢位的發生,為了防止溢位,要麼不斷進行移位定標,要麼做截尾。前者耗費大量時間和空間,後者則帶來精度的損失。相反,浮點運算dsp擴大了動態範圍,提高了精度,節省了運算時間和儲存空間,因為大大減少了定標,移位和溢位檢查。

舉個例子(來自

定點的計算不過是把乙個資料當作整數來處理,通常ad取樣來的都是整數,這個數相對於真實的模擬訊號有乙個刻度因子,大家都知道用乙個16位的ad去取樣乙個0到5v的訊號,那麼ad輸出的整數除以2^16再乘以5v就是對應的電壓。在定點dsp中是直接對這個16位的取樣進行處理,並不將它轉換成以小數表示的電壓,因為定點dsp無法以足夠的精度表示乙個小數,它只能對整數進行計算。

而浮點dsp的優勢在於它可以把這個取樣得到的整數轉換成小數表示的電壓,並不損失精度(這個小數用科學記數法來表示),原因在於科學記數法可以表示很大的動態範圍的乙個訊號,以ieee754浮點數為例,

單精度浮點格式: [31] 1位符號 [30-23]8位指數 [22-00]23位小數

這樣的能表示的最小的數是+-2^-149,最大的數是+-(2-2^23)*2^127.(這裡不去研究這個最小最大範圍是如何計算出來的)動態範圍為20*log(最大的數/最小的數)=1667.6db 這樣大的動態範圍使得我們在程式設計的時候幾乎不必考慮乘法和累加的溢位,而如果使用定點處理器程式設計,對計算結果進行捨入和移位則是家常便飯,這在一定程度上會損失是精度。原因在於定點處理處理的訊號的動態範圍有限,比如16位定點dsp,可以表示整數範圍為1-65536,其動態範圍為20*log(65536/1)=96db.對於32定點dsp,動態範圍為20*log(2^32/1)=192db,遠小於32位ieee浮點數的1667.6db,但是,實際上192db對絕大多數應用所處理的訊號已經足夠了。

由於ad轉換器的位數限制,一般輸入訊號的動態範圍都比較小,但在dsp的訊號處理中,由於點積運算會使中間節點訊號的動態範圍增加,所以主要考慮訊號處理流程中中間結果的動態範圍,以及演算法對中間結果的精度要求,來選擇相應的dsp。

2、硬體上

暫時拋開這些巨集觀的特點對比,單純從技術的角度來看,定點與浮點的區別主要在兩個方面,即硬體和軟體。硬體上的區別來自於:浮點dsp處理器具有浮點/整數乘法器,整數/浮點算術邏輯運算單元alu,適合存放擴充套件精度的浮點結果的暫存器等。

3、軟體上

再看看在軟體開發上的不同之處,主要有浮點dsp程式設計的特點以及注意事項;定點dsp進行浮點運算時的定標,移位,檢測溢位操作。比較兩個浮點數時,永遠不要使用操作符==來判斷是否相等。即使比較兩個相同的數,還是可能有微小的捨入差別。甚至定義精確的0,也不是很安全,儘管c語言中有0的表示,永遠不要寫這樣的**(x==0),而應該寫成(fabs(x)

4、應用例子(來自

另外乙個比較重要區別涉及應用場合對定點與浮點dsp處理器的選擇。設計師關心的是最後的系統效能、成本以及上市時間。

(1)移動電視

這是另乙個易於決定的選擇。在移動電視中完全沒有必要進行浮點處理。大部分的訊號鏈處理是在標準解碼器中進行的,如mpeg-2, mpeg-4, jpeg-2000和h.264。這些演算法被設計由定點運算來執行。更高精度和更大動態範圍的浮點運算不僅毫無幫助,而且根本無法使用,因為這些演算法通常都只精確到位元。

而其餘的應用例項將需要我們進行更加深入的分析,才能做出正確的處理器選擇。

(2)軍用雷達

我們最好從容易的選擇開始。在軍用雷達中你會經常用到浮點處理器。為什麼?因為在這種應用中浮點效能是不可缺少的。雷達依靠的就是測定自模糊函式的最大絕對值。該函式表達的是發出的測試訊號和接收的回波之間的互相關性。

這是乙個指數函式的積分。這種積分能用fft技術計算。在計算大型fft時,浮點運算十分有用,而且在這裡採用浮點處理器沒有任何障礙。只要熱量能排出(即處理器不發燙),功率不是大問題。該裝置的成本也不是主要問題,因為這些處理器成本僅佔整個系統成本的很小部分。事實上,一般不大會選擇adsp-21367 sharc來完成這樣的任務,因為該應用的乙個目標是在每平方公釐中盡可能提供更多的處理能力。因此,adi公司的tigersharc系列產品中的高效能adsp-ts201會更適合這個應用。   

希望以上對於定點dsp和浮點dsp的對比能使初學者建立起乙個全域性的感性認識。

DSP 浮點與定點

浮點與定點也是經常是初學者困惑的問題,在選擇dsp器件的時候,是採用浮點還是採用定點,如果用定點是16位還是32位?其實這個問題和你的演算法所要求的訊號的動態範圍有關。定點的計算不過是把乙個資料當作整數來處理,通常ad取樣來的都是整數,這個數相對於真實的模擬訊號有乙個刻度因子,大家都知道用乙個16位...

定點dsp與浮點dsp的比較

定點運算dsp在應用中已取得了極大的成功,而且仍然是dsp應用的主體。然而,隨著對dsp處理速度與精度 儲存器容量 程式設計的靈活性和方便性要求的不斷提高 自80年代中後期以來,各dsp生產廠家陸續推出了各自的32bit浮點運算dsp。和定點運算dsp相比,浮點運算dsp具有許多優越性 浮點運算ds...

DSP中浮點轉定點運算

5 舉例及程式設計中的心得 5 1舉例 第3章 dsp晶元的定點運算.doc 這篇文章中給了乙個很簡單有能說明問題的例子,不想動大腦了,直接引用過來如下。這是乙個對語音頻號 0.3khz 3.4khz 進行低通濾波的c語言程式,低通濾波的截止頻率為800hz,濾波器採用19點的有限衝擊響應fir濾波...