第3講 定點(diǎn)運(yùn)算及浮點(diǎn)運(yùn)算_第1頁
第3講 定點(diǎn)運(yùn)算及浮點(diǎn)運(yùn)算_第2頁
第3講 定點(diǎn)運(yùn)算及浮點(diǎn)運(yùn)算_第3頁
第3講 定點(diǎn)運(yùn)算及浮點(diǎn)運(yùn)算_第4頁
第3講 定點(diǎn)運(yùn)算及浮點(diǎn)運(yùn)算_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

三、DSP定點(diǎn)運(yùn)算與浮點(diǎn)運(yùn)算數(shù)的定標(biāo)DSP程序的定點(diǎn)模擬DSP芯片的定點(diǎn)運(yùn)算定點(diǎn)實(shí)現(xiàn)非線性函數(shù)的快速實(shí)現(xiàn)方法浮點(diǎn)芯片中的數(shù)值表示格式DSP浮點(diǎn)數(shù)的基本運(yùn)算方法一、定點(diǎn)運(yùn)算及定點(diǎn)DSP1、數(shù)據(jù)格式2、運(yùn)算方法3、定點(diǎn)DSP芯片1、數(shù)據(jù)格式

在定點(diǎn)DSP芯片中,采用定點(diǎn)數(shù)進(jìn)行數(shù)值運(yùn)算,其操作數(shù)一般采用整型數(shù)來表示DSP芯片的數(shù)以2的補(bǔ)碼形式表示

數(shù)的定標(biāo):“小數(shù)點(diǎn)”的位置

Q表示法和S表示法對定點(diǎn)數(shù)而言,數(shù)值范圍與精度是一對矛盾,一個(gè)變量要想能夠表示比較大的數(shù)值范圍,必須以犧牲精度為代價(jià)。0000000000000100Q0表示為8192Q15表示為0.25Q表示法16進(jìn)制數(shù)2000H小數(shù)點(diǎn)的位置0000000000000100小數(shù)點(diǎn)的位置符號位浮點(diǎn)數(shù)與定點(diǎn)數(shù)的轉(zhuǎn)換關(guān)系浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)定點(diǎn)數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)浮點(diǎn)數(shù)x=0.5,定標(biāo)Q=15,則定點(diǎn)數(shù)=0.5*32768=16384Q表示S表示十進(jìn)制數(shù)表示范圍Q15S0.15-1≤X≤0.9999695Q14S1.14-2≤X≤1.9999390..................Q1S14.1-16384≤X≤16383.5Q0S15.0-32768≤X≤32767加法/減法運(yùn)算的C語言定點(diǎn)模擬floatx,y,z;z=x+y;兩個(gè)操作數(shù)的定標(biāo)值一樣如果加法/減法的結(jié)果超出16位的表示范圍,則必須保留32位結(jié)果,以保證運(yùn)算的精度z=x+y==定點(diǎn)加法描述:intx,y,z;longtemp; /*臨時(shí)變量*/temp=y(tǒng)<<(Qx-Qy);temp=x+temp;z=(int)(temp>>(Qx-Qz)),若Qx≥Qzz=(int)(temp<<(Qz-Qx)),若Qx≤Qz例子:設(shè)x=0.5,y=3.1,則浮點(diǎn)運(yùn)算結(jié)果為z=x+y=0.5+3.1=3.6;Qx=15,Qy=13,Qz=13,則定點(diǎn)加法為:x=16384;y=25395;temp=25395<<2=101580;temp=x+temp=16384+101580=117964;z=(int)(117964L>>2)=29491;驗(yàn)算:z=29491/8192=3.6定點(diǎn)加法定點(diǎn)減法設(shè)x=3.0,y=3.1,則浮點(diǎn)運(yùn)算結(jié)果為z=x-y=3.0-3.1=-0.1;Qx=13,Qy=13,Qz=15,則定點(diǎn)減法為:x=24576;y=25395;temp=25395;temp=x-temp=24576-25395=-819;因?yàn)镼x<Qz,故z=(int)(-819<<2)=-3276。驗(yàn)算:由于z的Q值為15,所以定點(diǎn)值z=-3276即為浮點(diǎn)值z=-3276/32768-0.1結(jié)果超過16位表示范圍設(shè)x的Q值為Qx,y的Q值為Qy,且Qx>Qy,加法結(jié)果z的定標(biāo)值為Qz,則定點(diǎn)加法為:intx,y;longtemp,z;temp=y(tǒng)<<(Qx-Qy);temp=x+temp;z=temp>>(Qx-Qz),若Qx≥Qzz=temp<<(Qz-Qx),若Qx≤Qz例子:設(shè)x=15000,y=20000,則浮點(diǎn)運(yùn)算結(jié)果為z=x+y=15000+20000=35000,顯然z>32767;Qx=1,Qy=0,Qz=0,則定點(diǎn)加法為:x=30000;y=20000;temp=20000<<1=40000;temp=temp+x=40000+30000=70000;z=70000L>>1=35000;結(jié)果超過16位的定點(diǎn)加法乘法運(yùn)算的C語言定點(diǎn)模擬floatx,y,z;z=xy;intx,y,z;longtemp;temp=(long)x;z=(temp×y)>>(Qx+Qy-Qz);z=xy=

=定點(diǎn)乘法設(shè)x=18.4,y=36.8,則浮點(diǎn)運(yùn)算值為z=18.4×36.8=677.12;Qx=10,Qy=9,Qz=5,所以x=18841;y=18841;temp=18841L;z=(18841L*18841)>>(10+9-5)=354983281L>>14=21666;因?yàn)閦的定標(biāo)值為5,故定點(diǎn)z=21666即為浮點(diǎn)的z=21666/32=677.08除法運(yùn)算的C語言定點(diǎn)模擬floatx,y,z;z=x/y;intx,y,z;longtemp;temp=(long)x;z=(temp<<(Qz-Qx+Qy))/y;z=x/y=

定點(diǎn)除法設(shè)x=18.4,y=36.8,浮點(diǎn)運(yùn)算值為z=x/y=18.4/36.8=0.5;Qx=10,Qy=9,Qz=15;所以有x=18841,y=18841;temp=(long)18841;z=(18841L<<(15-10+9))/18841=308690944L/18841=16384;因?yàn)樯蘻的定標(biāo)值為15,所以定點(diǎn)z=16384即為浮點(diǎn)z=16384/32768=0.5程序變量的Q值確定確定變量的Q值實(shí)際上就是確定變量的動(dòng)態(tài)范圍。設(shè)變量的絕對值的最大值為|max|,取整數(shù)n,使其滿足如果某變量的值在-1至+1之間,即<1,因此n=0,Q=15-n=15

確定變量的絕對值的最大值理論分析法(三角函數(shù)、漢明窗、FIR卷積、自相關(guān)線性預(yù)測編碼等)統(tǒng)計(jì)分析法(依據(jù)足夠多的采樣值)2、運(yùn)算方法通常的是全部以Q15格式表示的小數(shù)或以Q0格式表示的整數(shù)來工作定點(diǎn)乘法定點(diǎn)加法定點(diǎn)除法定點(diǎn)乘法小數(shù)乘小數(shù)Q15×Q15=Q300.5*0.5=0.250.100000000000000 ;Q15×0.100000000000000 ;Q15 00.010000000000000000000000000000=0.25;Q30LT OP1 ;OP1=4000H(0.5/Q15)MPY OP2 ;OP2=4000H(0.5/Q15)PACSACH ANS,1 ;(ANS)=2000H(0.25/Q15)

定點(diǎn)乘法(續(xù))整數(shù)乘整數(shù)Q0×Q0=Q017×(-5)=-850000000000010001=17×1111111111111011=-5 11111111111111111111111110101011=-85定點(diǎn)乘法(續(xù))混合表示法1.5×0.75=1.12501.10000000000000=1.5;Q14×00.11000000000000=0.75;Q14 0001.0010000000000000000000000000=1.125;Q28定點(diǎn)加法保留32位結(jié)果——雙字調(diào)整小數(shù)點(diǎn)保留16位結(jié)果加法運(yùn)算必須用相同的Q點(diǎn)表示通過移位操作解決溢出問題溢出檢測溢出保護(hù)完全避免XXXXXXXXXXXXXX00XXXXXXXXXXXXXX00XXXXXXXXXXXXXX10XXXXXXXXXXXXXX10定點(diǎn)加法無溢出有溢出被加數(shù)加數(shù)被加數(shù)加數(shù)定點(diǎn)加法XXXXXXXXXXXXXX10XXXXXXXXXXXXXX00XXXXXXXXXXXXXX00XXXXXXXXXXXXXX10可能溢出可能溢出被加數(shù)加數(shù)被加數(shù)加數(shù)定點(diǎn)除法在通用DSP芯片中,一般不提供單周期的除法指令,為此必須采用除法子程序來實(shí)現(xiàn)二進(jìn)制除法是乘法的逆運(yùn)算。乘法包括一系列的移位和加法,而除法可分解為一系列的減法和移位。定點(diǎn)除法00001010-00011000

11110010例如:10÷3=3余1000010100000001100001010+11101000

11110010得數(shù)為負(fù),舍去第一次運(yùn)算除數(shù)的最低有效位對齊被除數(shù)的最高有效位定點(diǎn)除法00010100-00011000

1111110000010100+11101000

11111100被除數(shù)左移一次得數(shù)為負(fù),舍去第二次運(yùn)算定點(diǎn)除法00101000+11101000

00010000被除數(shù)左移一次得數(shù)為正,左移加一00101000-00011000

0001000000100001第三次運(yùn)算定點(diǎn)除法00100001-00011000

00001001余數(shù)商00100001+11101000

00001001

00010011得數(shù)為正左移加一第四次運(yùn)算定點(diǎn)除法00001010-00011000

1111001000010100-00011000

1111110000101000-00011000

0001000000100001-00011000

00001001舍去舍去左移加一左移加一00010011余數(shù)商非線性運(yùn)算的定點(diǎn)快速實(shí)現(xiàn)調(diào)用DSP編譯系統(tǒng)的庫函數(shù)查表法

在實(shí)時(shí)DSP應(yīng)用中實(shí)現(xiàn)非線性運(yùn)算,一般都采取適當(dāng)降低運(yùn)算精度來提高程序的運(yùn)算速度。查表法是快速實(shí)現(xiàn)非線性運(yùn)算最常用的方法。混合法提高查表法的精度擴(kuò)大自變量范圍

提高查表法的精度擴(kuò)大查表法的范圍3、定點(diǎn)DSP芯片TMS320C54x為實(shí)現(xiàn)低功耗、高性能而專門設(shè)計(jì)的定點(diǎn)DSP芯片為無線通訊用的高性能價(jià)格比的芯片。運(yùn)算速度快,指令周期為10ns優(yōu)化的CPU結(jié)構(gòu)。1個(gè)40位的算術(shù)邏輯單元、2個(gè)40位的累加器、2個(gè)40位的加法器、1個(gè)17×17乘法器和40位的桶型移位器,有4條內(nèi)部總線和2個(gè)地址產(chǎn)生器低功耗,可在3.3V或2.7V電壓下工作,三個(gè)低功耗方式智能外設(shè),除標(biāo)準(zhǔn)的串行口和時(shí)分復(fù)用串行口外,還含有自動(dòng)緩存串行口(2kbuffer)和外部處理器并行口HPI從TMS32010、經(jīng)歷了TMS320C1X、C2X、C5X、C54X、C62X等幾代產(chǎn)品定點(diǎn)DSP芯片TMS320C62xTI公司1997年開發(fā)的新型定點(diǎn)DSP芯片,用于無線基站,無線PDA,Modem,GPS等。速度快,指令周期為3.3ns,運(yùn)算能力為2400MIPS內(nèi)部結(jié)構(gòu)不同,同時(shí)集成有2個(gè)16bit乘法器和6個(gè)算術(shù)運(yùn)算單元,一個(gè)周期內(nèi)可執(zhí)行8條32bit指令使用超長指令集,在一個(gè)周期內(nèi)可并行執(zhí)行幾個(gè)指令大容量片內(nèi)存儲(chǔ)器(片內(nèi)有96K程序和512K數(shù)據(jù)存儲(chǔ)器)和52MB尋址空間多種外設(shè),4個(gè)DMA,3個(gè)多通道緩存串口,2個(gè)計(jì)時(shí)器

高級語言:從浮點(diǎn)到定點(diǎn)為了DSP程序調(diào)試的方便及模擬定點(diǎn)DSP實(shí)現(xiàn)時(shí)的算法性能,在編寫DSP匯編程序之前一般需將高級語言浮點(diǎn)算法改寫為高級語言定點(diǎn)算法取整操作:i=int(f1);i=int(f1+0.5);先放后縮:f1=(y1+y2)*x;f1=f1/x;二、浮點(diǎn)運(yùn)算及浮點(diǎn)DSP芯片1、數(shù)據(jù)格式2、運(yùn)算方法3、浮點(diǎn)DSP芯片1、數(shù)據(jù)格式指數(shù)和尾數(shù)的形式x=m×2eIEEE單精度浮點(diǎn)數(shù)格式fes30-2322-031符號位階碼尾數(shù)IEEE單精度浮點(diǎn)數(shù)格式TMS320浮點(diǎn)數(shù)格式fse符號位階碼尾數(shù)或:TMS320浮點(diǎn)數(shù)格式短浮點(diǎn)格式:4位指數(shù),1位符號,11位分?jǐn)?shù)(16位)單精度浮點(diǎn)格式:8位指數(shù),1位符號,23位分?jǐn)?shù)(32位)擴(kuò)展精度格式:8位指數(shù),1位符號,31位分?jǐn)?shù)(40位)TMS320浮點(diǎn)數(shù)格式短浮點(diǎn)格式:4位指數(shù),1位符號,11位分?jǐn)?shù)(16位)fse0101112150111011111111111TMS320浮點(diǎn)數(shù)格式短浮點(diǎn)格式:4位指數(shù),1位符號,11位分?jǐn)?shù)(16位)fse0101112151001000000000000TMS320浮點(diǎn)數(shù)格式短浮點(diǎn)格式:4位指數(shù),1位符號,11位分?jǐn)?shù)(16位)fse0101112151001111111111111TMS320浮點(diǎn)數(shù)格式短浮點(diǎn)格式:4位指數(shù),1位符號,11位分?jǐn)?shù)(16位)fse0101112150111100000000000TMS320浮點(diǎn)數(shù)格式短浮點(diǎn)格式:4位指數(shù),1位符號,11位分?jǐn)?shù)(16位)fse0101112151000000000000000TMS320浮點(diǎn)數(shù)格式單精度浮點(diǎn)格式:8位指數(shù),1位符號,23位分?jǐn)?shù)(32位)fse02223243101111111011111111111111111111111TMS320浮點(diǎn)數(shù)格式單精度浮點(diǎn)格式:8位指數(shù),1位符號,23位分?jǐn)?shù)(32位)fse02223243110000001000000000000000000000000TMS320浮點(diǎn)數(shù)格式單精度浮點(diǎn)格式:8位指數(shù),1位符號,23位分?jǐn)?shù)(32位)fse02223243110000001111111111111111111111111TMS320浮點(diǎn)數(shù)格式單精度浮點(diǎn)格式:8位指數(shù),1位符號,23位分?jǐn)?shù)(32位)fse022232431011111111000000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論