數(shù)字信號處理器DSP補(bǔ)充講義_第1頁
數(shù)字信號處理器DSP補(bǔ)充講義_第2頁
數(shù)字信號處理器DSP補(bǔ)充講義_第3頁
數(shù)字信號處理器DSP補(bǔ)充講義_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

數(shù)字信號處理器DSP補(bǔ)充講義一、Q數(shù)的定義與四則運(yùn)算1.Q數(shù)的定義對于16位的DSP而言,Q數(shù)定義共有16種,其簡化寫法分別是Q15、Q14、Q13、Q12、Q11、Q10、Q9、Q8、Q7、Q6、Q5、Q4、Q3、Q2、Q1、Q0,其數(shù)學(xué)含義可以在其標(biāo)準(zhǔn)定義中更加明確,分別應(yīng)當(dāng)是:Q1.15、Q2.14、Q3.13、Q4.12、Q5.11、Q6.10、Q7.9、Q8.8、Q9.7、Q10.6、Q11.5、Q12.4、Q13.3、Q14.2、Q15.1、Q16.0,即標(biāo)準(zhǔn)形式為Qn:m其數(shù)學(xué)意義是Q數(shù)的最大整數(shù)的絕對值≤2n-1;例如Q15其整數(shù)位小于等于1;Q14的整數(shù)位小于等于2;Q13的整數(shù)位小于等于4;…Q1的整數(shù)位小于等于16384;Q0的整數(shù)位小于等于32768。其最大整數(shù)位數(shù)是n位。小數(shù)位的最小刻度為=2-m,由m位二進(jìn)制數(shù)表示。例如:Q15小數(shù)位的最小刻度為=2-m=2-15=3.0518×10-5,Q14小數(shù)位的最小刻度為=2-m=2-14=6.1035×10-5,…Q1小數(shù)位的最小刻度為=2-m=2-1=0.5。2.Q數(shù)圓對于16位的DSP,如果是有符號數(shù),則,可以表示為圖1所描繪的Q數(shù)圓,Q數(shù)圓在整個(gè)圓周上分布有216=65,536個(gè)數(shù)據(jù)點(diǎn),每一個(gè)數(shù)據(jù)點(diǎn),都具有唯一性。Q數(shù)圓的起始點(diǎn)為0000,其在該圓的垂直軸線的正上方;Q數(shù)圓的右半圓為正數(shù),其最大值順時(shí)針旋轉(zhuǎn),在該圓的垂直軸線的正下方右邊第一個(gè)點(diǎn),其16進(jìn)制的數(shù)值為7FFF,但是,其對于不同的Q數(shù),其真值是不同的,例如:7FFF對于Q15格式,其代表的數(shù)值是0.9999695,但是,其對于Q13格式,其代表的數(shù)值是3.9999。圖1Q數(shù)圓的定義與數(shù)據(jù)的分布Q數(shù)圓的左半圓為負(fù)數(shù),其起始點(diǎn)為FFFF為補(bǔ)碼格式,在該圓的垂直軸線的正上方左邊第一個(gè)點(diǎn),其真值在Q15格式時(shí)為-3.0518×10-5,其原碼是8001,與正數(shù)0001呈現(xiàn)垂直軸Y軸對稱。其最小值為逆時(shí)針旋轉(zhuǎn),在該圓的垂直軸線的正下方的點(diǎn),其16進(jìn)制的數(shù)值為8000為補(bǔ)碼格式,但是,其對于不同的Q數(shù),其真值是不同的,例如:8000對于Q15格式,其代表的數(shù)值是-1,但是,其對于Q13格式,其代表的數(shù)值是-4。3.實(shí)數(shù)的真值與Q數(shù)的轉(zhuǎn)換方法:在DSP的實(shí)際運(yùn)算中,實(shí)數(shù)需要根據(jù)其大小和位數(shù)轉(zhuǎn)化為相應(yīng)的Q數(shù),方可以作為常數(shù),寫入到程序中,其轉(zhuǎn)換的辦法需要遵循下列公式:假定實(shí)數(shù)的真值為R,其需要轉(zhuǎn)換的Q數(shù)值為Qm,m=0,1,2…15。Qm=R×2m(1)例1:R=0.5,需要轉(zhuǎn)換成為Q15格式,則,Q15=R×2m=0.5×215=16384=4000h例2:R=-0.5,需要轉(zhuǎn)換成為Q15格式,則,Q15=-R×2m=-0.5×215=-16384=-4000h(原碼)需要轉(zhuǎn)換為補(bǔ)碼(取反加1):-4000h=BFFF(反碼)=C000(補(bǔ)碼)在DSP的實(shí)際運(yùn)算中,Q數(shù)也需要根據(jù)其大小和位數(shù)轉(zhuǎn)化為相應(yīng)的實(shí)數(shù)真值,其轉(zhuǎn)換的辦法需要遵循下列公式:假定Q數(shù)值為Qm,m=0,1,2…15,其需要轉(zhuǎn)換的實(shí)數(shù)的真值為R。R=Qm×2-m(2)例3:Q15數(shù)的3FFF轉(zhuǎn)換為實(shí)數(shù)真值3FFFh=16383×2-15=0.499969例4:Q15數(shù)的C001轉(zhuǎn)換為實(shí)數(shù)真值C001補(bǔ)碼(取反加1)=3FFFhC001=-16383×2-15=-0.499969例5:R=1.999756,需要轉(zhuǎn)換成為Q13格式,則,Q15=R×2m=1.999756×213=16382=3FFEh例6:Q13格式的數(shù)C002,需要轉(zhuǎn)換成為實(shí)數(shù)真值,C002補(bǔ)碼(取反加1)=3FFEhC002=-16382×2-13=-1.999756R=-1.999756顯然,Q數(shù)圓的16位數(shù)在幾何空間上是確定和唯一的,但是,在16位數(shù)相同的情況下,Q數(shù)值不同,則實(shí)數(shù)的真值不同。4.Q數(shù)的加減法:Q數(shù)的加減法的規(guī)則必須遵循相同階數(shù)的Q數(shù)可以相加減的原則,不同階數(shù)的Q數(shù)相加減,必須轉(zhuǎn)換成為階數(shù)相同的Q數(shù),即必須遵循小數(shù)點(diǎn)對齊的原則。Q1m±Q2m=Qm(3)例7:假定有兩個(gè)正實(shí)數(shù),其值分別為:0.125,與0.375,其和為0.5,現(xiàn)在采用分別轉(zhuǎn)換為Q15格式,然后相加。0.125=0.125×215=1000h(Q15格式);0.375=0.375×215=3000h(Q15格式);1000h+3000h=4000h=16384×2-15=0.5例8:假定有兩個(gè)實(shí)數(shù),其值分別為:-0.125,與0.5,其和為0.375,現(xiàn)在采用分別轉(zhuǎn)換為Q15格式,然后相加。-0.125=-0.125×215=F000h(Q15格式);0.5=0.5×215=4000h(Q15格式);F000h+4000h=3000h=12288×2-15=0.375;例9:假定有兩個(gè)實(shí)數(shù),其值分別為:-0.125,與-0.5,其差為0.375,現(xiàn)在采用分別轉(zhuǎn)換為Q15格式,然后相加。-0.125=-0.125×215=F000h(Q15格式);-0.5=-0.5×215=C000h(Q15格式);F000h-C000h=3000h=12288×2-15=0.375;5.Q數(shù)的乘法:Q數(shù)的乘法允許不同階數(shù)的Q數(shù)相乘,但是,乘法運(yùn)算后,其階數(shù)發(fā)生變化,新階數(shù)為兩個(gè)Q數(shù)階數(shù)之和,為了得到原來格式的Q數(shù),一般需要右移合適的位。其公式如下:Qm1×Qm2=Qm1+m2(4)一般右移m1、m2或需要的數(shù)位Qm1+m2>>m1或m2(5)例10:假定有兩個(gè)實(shí)數(shù),其值分別為:0.5,與0.75,其乘積為0.375,現(xiàn)在采用分別轉(zhuǎn)換為Q15格式,然后相乘。0.75=0.75×215=6000h(Q15格式);0.5=0.5×215=4000h(Q15格式);6000h×4000h=18000000h(Q30格式)18000000h>>右移15位=3000h3000h=12288×2-15=0.375;例11:假定有兩個(gè)實(shí)數(shù),其值分別為:2.5,與0.2,其乘積為0.5,現(xiàn)在采用分別轉(zhuǎn)換為Q13與Q15格式,然后相乘,再移位成為Q15格式數(shù)。2.5=2.5×213=20480=5000h(Q13格式);0.2=0.2×215=199Ah(Q15格式);5000h(Q13格式)×199Ah(Q15格式)=8002000h(Q28格式)8002000h>>右移13位=4001h≈4000h4000h=16384×2-15=0.5;6.Q數(shù)的除法:DSP沒有專門的除法指令,Q數(shù)的除法由于本質(zhì)上,是采用減法運(yùn)算,因此必須采用相同的Q格式。減法一般采用下列算法實(shí)現(xiàn): lacc 被除數(shù),12 rpt #15(減法進(jìn)行15+1=16次) subc 除數(shù)采用正數(shù)相除,其具體過程如下:程序指針+1,然后執(zhí)行下列步驟;(ACC)–[(數(shù)據(jù)空間地址)215]→ALUoutput(算術(shù)邏輯)IfALUoutput≥0Then(ALUoutput)2+1→ACCElse(ACC)2→ACC共執(zhí)行條件減法指令16次,則累加器的低16位存儲的是除法的商,累加器的高16位存儲的是除法的余數(shù)假定兩個(gè)正的Q0數(shù),分別為41(被除數(shù)),7(除數(shù)),執(zhí)行除法后,其結(jié)果如下:商為9存放在累加器的低位,余數(shù)為2存放在累加器的高位。例12:假定有兩個(gè)正實(shí)數(shù),其值分別為:0.375,與0.125,除法后,其商為3,現(xiàn)在采用分別轉(zhuǎn)換為Q15格式,然后相加。0.375=0.375×215=3000h(Q15格式);0.125=0.125×215=1000h(Q15格式);3000h/1000h=0003h除數(shù)1000h左移15位后,為8000000h,3000h重復(fù)15次SUBC指令后,即左移E后,ACC值為C000000,與8000000h相減后大于零,則減法結(jié)果×2+1=新值8000001重新放入累加器ACC中,重復(fù)16次,ACC值與8000000h相減后大于零,則新的減法結(jié)果×2+1=新值0003重新放入累加器ACC中,則商為0003h。思考題:1)請將兩個(gè)實(shí)數(shù)±0.33333轉(zhuǎn)換成為Q15格式;2)請制作一個(gè)256點(diǎn)0-360度正弦表,數(shù)據(jù)格式為Q15,SIN數(shù)值范圍-1<N<+1。點(diǎn)的編號為:0,1,2…256,角度的數(shù)值為:0,1.41,2.81,4.22,…358.59,0步距為1.41度。注意SIN數(shù)值的負(fù)數(shù)表示方法。3)請制作一個(gè)90點(diǎn)90-180度余弦表,數(shù)據(jù)格式為Q15,COS數(shù)值范圍-1<N<0。點(diǎn)的編號為:0,1,2…90,角度的數(shù)值為:90,90+1.41,90+2.81,90+4.22,…180步距為1.41度。二、旋轉(zhuǎn)編碼器與捕獲單元1.旋轉(zhuǎn)編碼器的背景知識:旋轉(zhuǎn)編碼器是一種測量角度和速度的光柵和光電轉(zhuǎn)換傳感器。圖2是一種旋轉(zhuǎn)一圈發(fā)1000個(gè)脈沖圖21000線旋轉(zhuǎn)編碼器的旋轉(zhuǎn)編碼器,其具有三根輸出線QEP_A、QEP_B、Z(零位指示QEP_index),其輸出波形參見圖3,圖3旋轉(zhuǎn)編碼器波形輸出在該圖中,前半周中,QEP_A超前QEP_B90度,電機(jī)正轉(zhuǎn),在后半周中,QEP_A滯后QEP_B90度,電機(jī)反轉(zhuǎn)。文件名: qep_drv.asm;模塊名: QEP_THETA_DRV;初始化程序名:QEP_THETA_DRV_INIT;;同步程序:QEP_INDEX_ISR_DRV;功能: 通過編碼器脈沖信號測算轉(zhuǎn)子位置和旋轉(zhuǎn)向。;QEP_THETA_DRV:通過編碼器脈沖信號計(jì)算轉(zhuǎn)子位置;QEP_INDEX_ISR_DRV:利用編碼器零標(biāo)記信號同步T2計(jì)數(shù)器;------------------------------------------;全局變量聲明;------------------------------------------;(要調(diào)用模塊,就將下面聲明語句復(fù)制到主程序代碼中相應(yīng)位置);.ref QEP_THETA_DRV,QEP_THETA_DRV_INIT;子程序調(diào)用;.ref polepairs,cal_angle,mech_scale ;輸入值;.ref theta_elec,theta_mech,dir_QEP ;輸出值;;.ref QEP_INDEX_ISR_DRV ;子程序調(diào)用;.ref index_sync_flg,QEP_cnt_idx ;輸出值;---------------------------------------------------;標(biāo)號定義;---------------------------------------------------.def QEP_THETA_DRV,QEP_THETA_DRV_INIT;子程序調(diào)用.def polepairs,cal_angle,mech_scale ;輸入.deftheta_elec,theta_mech,dir_QEP ;輸出.def QEP_INDEX_ISR_DRV;子程序調(diào)用.def index_sync_flg,QEP_cnt_idx;輸出;-------------------------------------------;相關(guān)外圍變量定義;-------------------------------------------.include "x24x_app.h";---------------------------------------;變量定義;---------------------------------------theta_elec .usect"qep_drv",1給未初始化的變量開辟空間theta_mech .usect"qep_drv",1dir_QEP .usect"qep_drv",1polepairs .usect"qep_drv",1QEP_cnt_idx .usect"qep_drv",1cal_angle .usect"qep_drv",1index_sync_flg .usect"qep_drv",1mech_scale .usect"qep_drv",1theta_raw .usect"qep_drv",1;---------------------------------------------------;參數(shù)設(shè)置;---------------------------------------------------POLEPAIRS_ .set 2 ;極對數(shù)CAL_ANGLE_ .set 0 ;編碼器偏角MECH_SCALE_ .set 16776 ;轉(zhuǎn)換系數(shù)0.9999/Total_count(Q26)1/4000*226=16776;(total_count=4*編碼器線數(shù));---------------------------------------------;初始化程序(角度計(jì)算);---------------------------------------------------QEP_THETA_DRV_INIT:ldp #polepairsSPLK #POLEPAIRS_,polepairssplk #CAL_ANGLE_,cal_angleSPLK #MECH_SCALE_,mech_scaleldp #OCRA>>7加載頁面,右移7位去掉直接尋址的偏移量,僅保留9位數(shù)據(jù)頁指針lacl OCRA;OCRA=MCRAor #00111000bsacl OCRA;配置I/O口為QEP方式ldp #T2PER>>7;加載頁面,右移7位去掉直接尋址的偏移量,僅保留9位數(shù)據(jù)頁指針SPLK #0FFFFh,T2PER ;兼容'240/24x/240x'SPLK #1001100001110000b,T2CON ;定向增減計(jì)數(shù),不分頻,src=QEPSPLK #1111000000000100b,CAPCON ;Tmr2,CAP3使能計(jì)算0度起始位posedge,enbl ;|||||||||||||||| ;5432109876543210RET;--------------;角位置計(jì)算程序;----------------QEP_THETA_DRVldp #GPTCON>>7;加載頁面,右移7位去掉直接尋址的偏移量,僅保留9位數(shù)據(jù)頁指針lacc GPTCON,2第14位是編碼器計(jì)數(shù)方向,只讀信號,1為增加計(jì)數(shù),0為減計(jì)數(shù);and #1,16 ;獲取計(jì)數(shù)方向信號ldp #dir_QEP ;sach dir_QEP ;保存方向信號ldp #T2CNT>>7 ;讀取脈沖計(jì)數(shù)值lacc T2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論