freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

dsp芯片的定點運算(編輯修改稿)

2025-07-23 17:33 本頁面
 

【文章內(nèi)容簡介】 %d\n,frame)。for(i=0。ilength。i++) indata[i]=getw(fp1)。 /*取一幀語音數(shù)據(jù)*/filter(indata,outdata,19,h)。 /*調(diào)用低通濾波子程序*/for(i=0。ilength。i++) putw(outdata[i],fp2)。 /*將濾波后的樣值寫入文件*/}fcloseall( )。 /*關閉文件*/return(0)。} 語音信號800Hz 19點FIR低通濾波C語言定點程序 include const int length=180。void filter(int xin[ ],int xout[ ],int n,int h[ ])。static int h[19]={399,296,945,1555,1503,285,2112,5061,7503,8450, 7503,5061,2112,285,1503,1555,945,296,399}。 /*Q15*/static int x1[length+20]。/*低通濾波定點子程序*/void filter(int xin[ ],int xout[ ],int n,int h[ ]){int i,j。long sum。for(i=0。ilength。i++) x1[n+i1]=xin[i]。for (i=0。ilength。i++){sum=0。for(j=0。jn。j++) sum+=(long)h[j]*x1[ij+n1]。xout[i]=sum15。}for(i=0。i(n1)。i++) x1[ni2]=xin[lengthi1]。}主程序與浮點的完全一樣。 DSP定點算術運算定點DSP芯片的數(shù)值表示是基于2的補碼表示形式。每個16位數(shù)用1個符號位、i個整數(shù)位和15i個小數(shù)位來表示。=,這個數(shù)可用Q8格式(8個小數(shù)位)來表示,它表示的數(shù)值范圍為128~+,一個Q8定點數(shù)的小數(shù)精度為1/256=。雖然特殊情況(如動態(tài)范圍和精度要求)必須使用混合表示法,但是,更通常的是全部以Q15格式表示的小數(shù)或以Q0格式表示的整數(shù)來工作。這一點對于主要是乘法和累加的信號處理算法特別現(xiàn)實,小數(shù)乘以小數(shù)得小數(shù),整數(shù)乘以整數(shù)得整數(shù)。當然,乘積累加時可能會出現(xiàn)溢出現(xiàn)象,在這種情況下,程序員應當了解數(shù)學里面的物理過程以注意可能的溢出情況。下面討論乘法、加法和除法的DSP定點運算,匯編程序以TMS320C25為例。 定點乘法2個定點數(shù)相乘時可以分為下列3種情況:1.小數(shù)乘小數(shù)Q15Q15=Q30 * = ;Q15 ;Q15 = ;Q302個Q15的小數(shù)相乘后得到1個Q30的小數(shù),即有2個符號位。一般情況下相乘后得到的滿精度數(shù)不必全部保留,而只需保留16位單精度數(shù)。由于相乘后得到的高16位不滿15位的小數(shù)精度,為了達到15位精度,可將乘積左移1位,下面是上述乘法的TMS320C25程序:LT OP1 ;OP1=4000H()MPY OP2 ;OP2=4000H()PACSACH ANS,1 ;ANS=2000H()2.整數(shù)乘整數(shù)Q0Q0 = Q0 17(5)=850000000000010001=17 1111111111111011=5 11111111111111111111111110101011=853.混合表示法許多情況下,運算過程中為了既滿足數(shù)值的動態(tài)范圍又保證一定的精度,就必須采用Q0與Q15之間的表示法。比如,顯然Q15無法表示,而若用Q0表示,則最接近的數(shù)是1,精度無法保證。因此。 = = ;Q14 = ;Q14 = 。Q28Q14的最大值不大于2,因此,2個Q14數(shù)相乘得到的乘積不大于4。一般的,若一個數(shù)的整數(shù)位為 i位,小數(shù)位為 j 位,另一個數(shù)的整數(shù)位為 m 位,小數(shù)位為 n 位,則這兩個數(shù)的乘積為 ( i + m )位整數(shù)位和(j + n)位小數(shù)位。這個乘積的最高16位可能的精度為( i + m )整數(shù)位和(15 i m)小數(shù)位。但是,若事先了解數(shù)的動態(tài)范圍,就可以增加數(shù)的精度。例如,就可以用Q14數(shù)表示乘積,而不是理論上的最佳情況Q13。:LT OP1 。OP1 = 6000H() MPY OP2 。OP2 = 3000H()PACSACH ANS,1 。ANS=2400H()上述方法為了保證精度均對乘的結果舍位,結果所產(chǎn)生的誤差相當于減去1個LSB(最低位)。采用下面簡單的舍入方法,可使誤差減少二分之一。LT OP1MPY OP2PACADD ONE,14 (上舍入)SACH ANS,1上述程序說明,不管ANS為正或負,所產(chǎn)生的誤差是1/2 LSB,其中存儲單元ONE的值為1。 定點加法乘的過程中,程序員可不考慮溢出而只需調(diào)整運算中的小數(shù)點。而加法則是一個更加復雜的過程。首先,加法運算必須用相同的Q點表示;其次,程序員或者允許其結果有足夠的高位以適應位的增長,或者必須準備解決溢出問題。如果操作數(shù)僅為16位長,其結果可用雙精度數(shù)表示。下面舉例說明16位數(shù)相加的兩種途徑。1.保留32位結果LAC OP1 。(Q15)ADD OP2 。(Q15)SACH ANSHI 。(高16位結果)SACL ANSLO 。(低16位結果)2.調(diào)整小數(shù)點保留16位結果LAC OP1,15 。(Q14數(shù)用ACCH表示)ADD OP2,15 。(Q14數(shù)用ACCH表示)SACH ANS 。(Q14)加法運算最可能出現(xiàn)的問題是運算結果溢出。TMS320提供了檢查溢出的專用指令BV,此外,使用溢出保護功能可使累加結果溢出時累加器飽和為最大的整數(shù)或負數(shù)。當然,即使如此,運算精度還是大大降低。因此,最好的方法是完全理解基本的物理過程并注意選擇數(shù)的表達方式。 定點除法在通用DSP芯片中,一般不提供單周期的除法指令,為此必須采用除法子程序來實現(xiàn)。二進制除法是乘法的逆運算。乘法包括一系列的移位和加法,而除法可分解為一系列的減法和移位。下面來說明除法的實現(xiàn)過程。設累加器為8位,且除法運算為10除以3。除的過程就是除數(shù)逐步移位并與被除數(shù)比較的過程,在每一步進行減法運算,如果能減則將位插入商中。(1) 除數(shù)的最低有效位對齊被除數(shù)的最高有效位。 00001010
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1