|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教一個關于定點DSP進行浮點運算的問題 |
| 作者:yzb001 欄目:DSP技術 |
在用定點DSP進行浮點運算時采用Q值定標,而DSP如何實現(xiàn)Q值的?比如在下邊這個程序中 設x=3.0,y=3.1,則浮點運算結(jié)果為z=x-y=3.0-3.1=-0.1; Qx=13,Qy=13,Qz=15,則定點減法為: x=24576;y=25295; TEMP=25395; TEMP=x-TEMP=24576-25395=-819; 因為Qx<Qz,故 z=(int)(-819<<2)=-3276。由于z的Q值為15,所以定點值z=-3276即為浮點值z=-3276/32768=-0.1。 在得出運算結(jié)果z的時候,DSP如何知道z是Q15的?也就是說,DSP在硬件上如何將3276認為是0.1這個小數(shù)值? 我的理解是這樣的,是否z這個變量只是在整個運算過程中作一個中間變量的作用,在整個程序的計算的最后才將計算結(jié)果根據(jù)其定標的Q值轉(zhuǎn)換成小數(shù),以實現(xiàn)小的舍入誤差,就像上一個例子一樣,z的值-3267也只是一個中間變量,如果這個結(jié)果需要最終輸出,仍然需要把-3267/32768,計算得到-0.1這個實際的浮點小數(shù)。 這個理解是否正確?請各位前輩指教 |
| 2樓: | >>參與討論 |
| 作者: sourse 于 2006/1/17 16:03:00 發(fā)布:
re 需要輸出嗎?不需要。所以…… |
|
| 3樓: | >>參與討論 |
| 作者: yzb001 于 2006/1/18 15:06:00 發(fā)布:
re:sourse 呵呵,恍然大悟!多謝多謝! 另外有個問題想問問你,這樣由程序員進行定標寫的浮點運算程序 與用編譯器支持的浮點型的運算,在速度上相差多大? |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |