DSP 浮點與定點

2021-08-15 11:13:04 字數 982 閱讀 1095

浮點與定點也是經常是初學者困惑的問題,在選擇dsp器件的時候,是採用浮點還是採用定點,如果用定點是16位還是32位?其實這個問題和你的演算法所要求的訊號的動態範圍有關。

定點的計算不過是把乙個資料當作整數來處理,通常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。另外就是浮點的dsp更易於程式設計,定點dsp程式設計中程式設計師要不斷調整中間結果的p,q值,實際就是不斷對中間結果進行移位調整和捨入。

原文:

定點dsp與浮點dsp的比較

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

DSP 定點與浮點的區別

可能對於入門級的dsp開發者有所幫助。本文關注定點dsp與浮點dsp的對比,主要從三個方面來分析。感謝我所引用的資料的作者。一般來說,定點dsp處理器具有速度快,功耗低,便宜的特點 而浮點dsp處理器則計算精確,動態範圍大,速度快,易於程式設計,功耗大,高。1 巨集觀上的區別 從巨集觀上講,浮點ds...

DSP中浮點轉定點運算

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