專利名稱:一種快速高精度對(duì)數(shù)轉(zhuǎn)換裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種高速數(shù)字信號(hào)處理器中對(duì)數(shù)轉(zhuǎn)化表格制作及其轉(zhuǎn)換方法 和裝置。
背景技術(shù):
許多高速數(shù)字信號(hào)處理器使用定點(diǎn)格式,對(duì)數(shù)轉(zhuǎn)換時(shí)使用查表法。查表 法是先建立一對(duì)數(shù)表,然后按一定規(guī)則在所對(duì)應(yīng)表格查找對(duì)應(yīng)的對(duì)數(shù)值。目 前已有的查表方法中主要有精度可控和精度固定兩種。精度可控型查表方法 計(jì)算步驟麻煩,而且需要進(jìn)行多次除法運(yùn)算速度較慢,雖然占用內(nèi)存較小但
不適合高速數(shù)字系統(tǒng);精度固定的型的查表方法是按目標(biāo)精度設(shè)計(jì)對(duì)數(shù)表, 對(duì)于高精度系統(tǒng)需龐大表格而耗用巨大內(nèi)存空間。因此一直高精度速度快, 而占用內(nèi)存又小的對(duì)數(shù)轉(zhuǎn)換裝置成為必要。
發(fā)明內(nèi)容
本發(fā)明提出了一種快速高精度對(duì)數(shù)轉(zhuǎn)換方法和裝置,它主要包括粗精度 查詢和細(xì)精度查詢,粗精度查詢用來直接查詢二進(jìn)制中高位對(duì)數(shù)轉(zhuǎn)化值;細(xì) 精度表用來查詢二進(jìn)制中低位的一歸一化對(duì)數(shù)轉(zhuǎn)化值,然后兩種查詢結(jié)果通 過一定運(yùn)算就可得出最后結(jié)果,其基本原理和游標(biāo)卡尺相似。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種快速高精度對(duì)數(shù)轉(zhuǎn)換方法,是把一
待轉(zhuǎn)換數(shù)Tn轉(zhuǎn)換為一以B為底的對(duì)數(shù)Ru ,該轉(zhuǎn)換方法主要包括如下步
驟步驟一,根據(jù)指定的轉(zhuǎn)換精度位數(shù)建立粗細(xì)精度查詢表;步驟二,輸入
以定點(diǎn)數(shù)格式表示的待轉(zhuǎn)換數(shù),進(jìn)行粗細(xì)精度查詢表查詢;步驟三,根據(jù)查 詢結(jié)果計(jì)算出轉(zhuǎn)換結(jié)果。
其中,優(yōu)選方案,上述步驟一主要包括根據(jù)高位位數(shù)建立以B為底的 粗精度表Tablel,根據(jù)低位位數(shù)建立以B為底的細(xì)精度查詢表Table2 。其中,優(yōu)選方案,所述細(xì)精度表為一歸一化的對(duì)數(shù)表。
其中,優(yōu)選方案,步驟二中待處理數(shù)Tn需進(jìn)行分段查詢,高位進(jìn)行粗精 度查詢,低位進(jìn)行細(xì)精度查詢。
其中,優(yōu)選方案,步驟三中相對(duì)結(jié)果計(jì)算Ra=Numl+R*ANuml , Numl為粗 精度表查詢結(jié)果,R為細(xì)精度表查詢結(jié)果,ANuml為對(duì)數(shù)表中對(duì)數(shù)值之差。
本發(fā)明還包括一種快速高精度對(duì)數(shù)轉(zhuǎn)換的裝置,該裝置能把待轉(zhuǎn)換數(shù)轉(zhuǎn) 換成要求精度的對(duì)數(shù),它主要包括建立裝置、提取裝置、查詢裝置、計(jì)算和 結(jié)果輸出裝置,其特征在于所述建立裝置包括一決策單元,根據(jù)對(duì)數(shù)轉(zhuǎn)化 精度分配高和低位數(shù); 一粗精度表建立單元,根據(jù)高位位數(shù)建立以B為底的 粗精度表;和一細(xì)精度表建立單元,根據(jù)低位位數(shù)建立以B為底一歸一化的 細(xì)精度查詢表。
其中,優(yōu)選方案,所述提取裝置包括一最高位位數(shù)記錄單元,記錄最高 位位數(shù); 一高位提取單元,提取待轉(zhuǎn)換二進(jìn)制的高位到粗精度查詢單元;和 一低位提取單元,提取低位到細(xì)精度查詢單元。
其中,優(yōu)選方案,所述查詢裝置包括一粗精度表,根據(jù)高位提取的數(shù)在 粗精度表中查詢相應(yīng)的對(duì)數(shù)值;以及一細(xì)精度表,根據(jù)從低位提取的數(shù)在西 精度表中查詢相應(yīng)的值。
本發(fā)明的對(duì)數(shù)轉(zhuǎn)換方法和裝置的優(yōu)點(diǎn)在于
首先,它查詢速度快,待查詢數(shù)使用定點(diǎn)二進(jìn)制數(shù),它與高速數(shù)字處理 中數(shù)的格式相同,無需轉(zhuǎn)化為浮點(diǎn)數(shù)進(jìn)行復(fù)雜計(jì)算和轉(zhuǎn)化;并且轉(zhuǎn)換時(shí)只需 要進(jìn)行4次加減法和2次乘法,沒有任何除法運(yùn)算,運(yùn)算量少,因此速度 快。
其次,它查詢表所占內(nèi)存少,對(duì)于一個(gè)I位精度的轉(zhuǎn)換,它的表格需 3*21/2個(gè)內(nèi)存單元,而普通查表方法需2'個(gè)內(nèi)存單元,因此大大節(jié)約了內(nèi)存 空間,而且對(duì)于精度越高的轉(zhuǎn)換,此方法節(jié)省空間優(yōu)勢(shì)越強(qiáng)。
下面接合附圖對(duì)本發(fā)明的實(shí)施方法進(jìn)一步說明
圖1表示本發(fā)明實(shí)施例快速高精度對(duì)數(shù)轉(zhuǎn)換方法流程圖。
圖2表示本發(fā)明實(shí)施例快速高精度對(duì)數(shù)轉(zhuǎn)換裝置框圖。
圖3表示本發(fā)明實(shí)施例待轉(zhuǎn)換32位二進(jìn)制數(shù)。
圖4表示本發(fā)明實(shí)施例被提取的高5位和低5位。
圖5表示本發(fā)明實(shí)施例粗精度轉(zhuǎn)換表。
圖6表示本發(fā)明實(shí)施例細(xì)精度轉(zhuǎn)換表。
附圖符號(hào)說明
其中,對(duì)數(shù)轉(zhuǎn)換裝置204 ,提取裝置206 ,建立裝置212 ,查詢裝置 220 ,結(jié)果輸出裝置230
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明快速高精度對(duì)數(shù)轉(zhuǎn)換作進(jìn)一步說明。 圖1為本發(fā)明快速高精度對(duì)數(shù)轉(zhuǎn)換方法流程圖。
如圖所示。本發(fā)明提供了一種快速高精度對(duì)數(shù)轉(zhuǎn)換方法。此方法把一二 進(jìn)制數(shù)Tn轉(zhuǎn)化為以B為底的對(duì)數(shù)Ru,其中,待轉(zhuǎn)化數(shù)Tn為定點(diǎn)二進(jìn)制,結(jié)果 Ru可為二進(jìn)制數(shù),也可為十進(jìn)制數(shù)。
本發(fā)明快速高精度對(duì)數(shù)轉(zhuǎn)化方法主要包括以下過程首先是設(shè)置,它主 要包括設(shè)置輸入?yún)?shù)和建立粗細(xì)精度查詢表;其次是查詢計(jì)算,它主要包括 粗細(xì)表格查詢和輸出查詢結(jié)果;最后是計(jì)算和轉(zhuǎn)換結(jié)果輸出。
前述設(shè)置步驟,確定轉(zhuǎn)換精度位數(shù)I,確定定點(diǎn)數(shù)位數(shù)J,分配高位和 低位位數(shù)I-m+n ,建立以B為底的n位高位粗精度查詢表,建立以B為底的 m位低精度查詢表。在分配高位和低位位數(shù)時(shí)需注意它們的精度控制和所占 用的內(nèi)存空間,n位高位所占內(nèi)存為2(n—"位,m位低位所占內(nèi)存為2M立,因 此要使內(nèi)存占用最小那么高位和地位相差應(yīng)不大于3位,否則會(huì)造成內(nèi)存成 倍的浪費(fèi)。在建立粗精度表時(shí)最高位應(yīng)為1 ,它對(duì)應(yīng)的對(duì)數(shù)值為相應(yīng)的高位 對(duì)數(shù)值。細(xì)精度表為一歸一化表,細(xì)精度值應(yīng)為歸一化值和相鄰高位間距的 乘積。前述查詢計(jì)算過程可包括,輸入待查詢二進(jìn)制數(shù)Tn,記錄最高非零位位 數(shù)K,從最高位開始向下提取n位進(jìn)行粗精度查詢得Numl,從最高位開始提 取n至n+m位進(jìn)行細(xì)精度查詢得R, R為一歸一化值,細(xì)精度值實(shí)際大小應(yīng) 為歸一化值和相鄰高位間距乘積,因此相對(duì)結(jié)果應(yīng)為
Ra=Numl+R*ANuml=Numl+Num2 (1) 前述結(jié)果為一相對(duì)值,它是一個(gè)I位二進(jìn)制整數(shù)對(duì)數(shù)轉(zhuǎn)換值,沒有考慮 其小數(shù)點(diǎn)位數(shù),其對(duì)數(shù)轉(zhuǎn)換實(shí)際大小應(yīng)為
Ru=Ra-(K-J-I)*F (2) 其中K為轉(zhuǎn)換數(shù)最高位位數(shù),J為定點(diǎn)數(shù)位數(shù),I為轉(zhuǎn)換精度位數(shù), (K-J-1)的物理意義是把待轉(zhuǎn)換數(shù)Tn的需要保持的精度的最低位,即第I位 移至定點(diǎn)數(shù)小數(shù)點(diǎn)位所需移動(dòng)的位數(shù),每移動(dòng)一位,數(shù)值變化為接近F, F=10*logB(2)dB,在底數(shù)B確定后它為一常數(shù),在粗精度和細(xì)精度查表過程
中,忽略了小數(shù)點(diǎn)位數(shù),因此最后輸出結(jié)果需要把它考慮進(jìn)去。
圖2為本發(fā)明的快速高精度對(duì)數(shù)轉(zhuǎn)換裝置204的結(jié)構(gòu)示意圖。該裝置能 把待轉(zhuǎn)換數(shù)轉(zhuǎn)換成要求精度的對(duì)數(shù),它主要包括建立裝置212 、提取裝置 206 、查詢裝置220 、結(jié)果輸出裝置230 ,其中,建立裝置212包括一決策 單元214,根據(jù)對(duì)數(shù)轉(zhuǎn)化精度分配高和低位數(shù); 一粗精度表建立單元216 , 根據(jù)高位位數(shù)建立以B為底的粗精度表;和一細(xì)精度表建立單元218 ,根據(jù) 低位位數(shù)建立以B為底一歸一化的細(xì)精度查詢表。
其中,所述提取裝置包括一最高位位數(shù)記錄單元209 ,記錄最高位位 數(shù); 一高位提取單元208,負(fù)責(zé)提取待轉(zhuǎn)換二進(jìn)制的高位到粗精度查詢單 元;和一低位提取單元210 ,負(fù)責(zé)提取低位到細(xì)精度查詢單元。
其中,所述查詢裝置220包括一粗精度表224 ,根據(jù)高位提取的數(shù)在粗 精度表中查詢相應(yīng)的對(duì)數(shù)值;和一細(xì)精度表228,根據(jù)從低位提取的數(shù)在西 精度表中查詢相應(yīng)的值。
該裝置的工作原理為對(duì)數(shù)轉(zhuǎn)換裝置204在對(duì)數(shù)轉(zhuǎn)換精度輸入后,建立 裝置中的決策單元214根據(jù)需要的精度按優(yōu)分配高位和低位數(shù),同時(shí)建立裝 置212的粗精度表建立單元216和細(xì)精度表建立單元218根據(jù)高位數(shù)和低位 數(shù)分別建立自己的粗精度查詢表224 、細(xì)精度查詢表228 ,這一個(gè)過程為查 詢表建立過程。當(dāng)查詢表建立好以后,如果有待轉(zhuǎn)換數(shù)需輸入從待轉(zhuǎn)換數(shù)輸端口 200輸入,提取裝置206的最高位記錄單元209立即記錄待轉(zhuǎn)換二進(jìn)制 定點(diǎn)數(shù)的最高非零位位數(shù),同時(shí)高位和低位被高位提取單元208和低位提取 單元210提取并分別傳送到查詢裝置的粗精度查詢表224和細(xì)精度查詢表 "8 ,經(jīng)查詢后,結(jié)果被送往計(jì)算和結(jié)果輸出裝置230 ,此裝置首先計(jì)算綜 合粗精度表224和細(xì)精度表228查詢結(jié)果得出待轉(zhuǎn)換數(shù)相對(duì)轉(zhuǎn)換結(jié)果,最后 裝置根據(jù)提出單元傳送過來的最高非零位位數(shù)計(jì)算出最終絕對(duì)大小。
本發(fā)明主要利用了泰勒公式和導(dǎo)數(shù)原理。當(dāng)x—x0時(shí)依泰勒公式有 f (x) =f (x0) +f' (x0) (x-xO) +o (x-xO) (3) 式中x為待轉(zhuǎn)換數(shù),xO為高位粗精度對(duì)應(yīng)的數(shù),f (x0)對(duì)應(yīng)為粗精度轉(zhuǎn)換 表,f'(x。) (x-x。)對(duì)應(yīng)于細(xì)精度轉(zhuǎn)換表,(x-x。)相對(duì)于x很小,為l/2",因此 誤差項(xiàng)o(x-x。)非常小,經(jīng)驗(yàn)證對(duì)于10位精度對(duì)數(shù)轉(zhuǎn)換,結(jié)果精度在一個(gè)數(shù) 字量以內(nèi)。
下面舉例說明本發(fā)明的快速高精度對(duì)數(shù)轉(zhuǎn)換方法及裝置的運(yùn)作。假設(shè)一 待轉(zhuǎn)換32位定點(diǎn)二進(jìn)制數(shù)如圖3所示,小數(shù)位在第15位,轉(zhuǎn)化成十進(jìn)制后為 5.23016,要求轉(zhuǎn)換精度為10位,基底為IO。為了直觀,本例查詢表對(duì)數(shù)部分 都用十進(jìn)制表示。
首先,建立查詢表格,決策單元214按要求把10位精度分為高5位和低 5位,然后,粗表、細(xì)表建立粗表單元216、細(xì)表單元218建立以10為底的 粗精度表224和細(xì)精度表228 ,粗精度表如圖5所示,它由16組數(shù)組成,細(xì) 精度表如圖6所示,它是一歸一化的32組數(shù)組成。
然后,待轉(zhuǎn)換數(shù)5. 23016輸入至提取裝置206 ,高位記錄單元209記錄 最高位為18,高位提取單元208從最高位向下提取5位,即得10100,同 時(shí),低位提取單元210從最高位向下提取第5至第10位,即得11101,如圖 4所示。
然后,查詢裝置220根據(jù)高位和低位提取單元送來的二進(jìn)制數(shù)查詢所對(duì) 應(yīng)的結(jié)果,從粗精度表可知10100對(duì)應(yīng)的對(duì)數(shù)為28. 0618 ,而11101相對(duì)應(yīng) 的細(xì)精度表的歸一化數(shù)為0.908185 。
最后,結(jié)果輸出裝置230根據(jù)送來的數(shù)據(jù)計(jì)算最終結(jié)果,其計(jì)算過程如下首先是根據(jù)粗細(xì)查詢結(jié)果,利用公式(1)計(jì)算相對(duì)結(jié)果
Ra=28. 0618+0. 908185* (28. 27369-28. 0618)=28. 25424
然后結(jié)合相對(duì)結(jié)果和高位提取單元208傳送過來的最高位位數(shù),利用公式
(2)可得出絕對(duì)結(jié)果(其中F為3, 0103):
Ru=28. 25424-3. 0103* (18-15-10) =7. 182138 5. 230163的實(shí)際對(duì)數(shù)應(yīng)為7. 176705 ,查表結(jié)果誤差為0.0757%。
本發(fā)明是一種快速高精度對(duì)數(shù)轉(zhuǎn)換方法和裝置,它的優(yōu)點(diǎn)在于 首先,它查詢速度快,待查詢數(shù)使用定點(diǎn)二進(jìn)制數(shù),它與高速數(shù)字處理 中數(shù)的格式相同,無需轉(zhuǎn)化為浮點(diǎn)數(shù)進(jìn)行復(fù)雜計(jì)算和轉(zhuǎn)化;并且轉(zhuǎn)換時(shí)只需 要進(jìn)行4次加減法和2次乘法,沒有任何除法運(yùn)算,運(yùn)算量少,因此速度 快。
其次,它查詢表所占內(nèi)存少,對(duì)于一個(gè)I位精度的轉(zhuǎn)換,它的表格需 3*21/2個(gè)內(nèi)存單元,而普通查表方法需2'個(gè)內(nèi)存單元,因此大大節(jié)約了內(nèi)存
空間,而且對(duì)于精度越高的轉(zhuǎn)換,此方法節(jié)省空間優(yōu)勢(shì)越強(qiáng)。
以上所述者,僅為本發(fā)明最佳實(shí)施例而已,并非用于限制本發(fā)明的范 圍,凡依本發(fā)明申請(qǐng)專利范圍所作的等效變化或修飾,皆為本發(fā)明所涵蓋。
權(quán)利要求
1、一種快速高精度對(duì)數(shù)轉(zhuǎn)換方法,是把一待轉(zhuǎn)換數(shù)Tn轉(zhuǎn)換為一以B為底的對(duì)數(shù)Ru,該轉(zhuǎn)換方法主要包括如下步驟步驟一,根據(jù)指定的轉(zhuǎn)換精度位數(shù)建立粗細(xì)精度查詢表;步驟二,輸入以定點(diǎn)數(shù)格式表示的待轉(zhuǎn)換數(shù),進(jìn)行粗細(xì)精度查詢表查詢;步驟三,根據(jù)查詢結(jié)果計(jì)算出轉(zhuǎn)換結(jié)果。
2、 根據(jù)權(quán)利要求1所述的快速高精度對(duì)數(shù)轉(zhuǎn)換方法,其特征在于上述 步驟一主要包括根據(jù)高位位數(shù)建立以B為底的粗精度表Tablel;根 據(jù)低位位數(shù)建立以B為底的細(xì)精度查詢表Table2。
3、 根據(jù)權(quán)利要求2所述的快速高精度對(duì)數(shù)轉(zhuǎn)換方法,其特征在于所述 細(xì)精度表為 一 歸 一化的對(duì)數(shù)表。
4、 根據(jù)權(quán)利要求1所述的快速高精度對(duì)數(shù)轉(zhuǎn)換方法,其特征在于步驟 二中待處理數(shù)Tn需進(jìn)行分段查詢,高位進(jìn)行粗精度查詢,低位進(jìn)行細(xì) 精度查詢。
5、 根據(jù)權(quán)利要求1所述的快速高精度對(duì)數(shù)轉(zhuǎn)換方法,其特征在于步驟 三中相對(duì)結(jié)果計(jì)算Ra=Numl+R*ANuml , Numl為粗精度表查詢結(jié)果,R 為細(xì)精度表查詢結(jié)果,ANuml為對(duì)數(shù)表中對(duì)數(shù)值之差。
6、 一種快速高精度對(duì)數(shù)轉(zhuǎn)換的裝置,該裝置能把待轉(zhuǎn)換數(shù)轉(zhuǎn)換成要求精 度的對(duì)數(shù),它主要包括建立裝置、提取裝置、查詢裝置、計(jì)算和結(jié)果 輸出裝置,其特征在于所述建立裝置包括一決策單元,根據(jù)對(duì)數(shù)轉(zhuǎn) 化精度分配高和低位數(shù); 一粗精度表建立單元,根據(jù)高位位數(shù)建立以B為底的粗精度表;和一細(xì)精度表建立單元,根據(jù)低位位數(shù)建立以B 為底一 歸 一化的細(xì)精度查詢表。
7、 根據(jù)權(quán)利要求6所述的快速高精度對(duì)數(shù)轉(zhuǎn)換的裝置,其特征在于所 述提取裝置包括一最高位位數(shù)記錄單元,記錄最高位位數(shù); 一高位提 取單元,提取待轉(zhuǎn)換二進(jìn)制的高位到粗精度查詢單元;和一低位提取 單元,提取低位到細(xì)精度查詢單元。
8、 根據(jù)權(quán)利要求6所述的快速高精度對(duì)數(shù)轉(zhuǎn)換的裝置,其特征在于所 述查詢裝置包括一粗精度表,根據(jù)高位提取的數(shù)在粗精度表中查詢相 應(yīng)的對(duì)數(shù)值;以及一細(xì)精度表,根據(jù)從低位提取的數(shù)在西精度表中查 詢相應(yīng)的值。
全文摘要
本發(fā)明提供一種快速高精度對(duì)數(shù)轉(zhuǎn)換方法,是把一待轉(zhuǎn)換數(shù)Tn轉(zhuǎn)換為一以B為底的對(duì)數(shù)Ru,該轉(zhuǎn)換方法主要包括如下步驟步驟一,根據(jù)指定的轉(zhuǎn)換精度位數(shù)建立粗細(xì)精度查詢表;步驟二,輸入以定點(diǎn)數(shù)格式表示的待轉(zhuǎn)換數(shù),進(jìn)行粗細(xì)精度查詢表查詢;步驟三,根據(jù)查詢結(jié)果計(jì)算出轉(zhuǎn)換結(jié)果。該方法根據(jù)指定的轉(zhuǎn)換精度位數(shù)建立以B為底粗精度表Table 1、細(xì)精度表Table2和它們對(duì)應(yīng)的高位和低位二進(jìn)制位數(shù)(n,m),當(dāng)以定點(diǎn)數(shù)格式表示的待轉(zhuǎn)換數(shù)Tn輸入后,方法自動(dòng)提取的高位和低位進(jìn)行對(duì)應(yīng)的粗精度表和細(xì)精度查詢,查詢結(jié)果通過最高位位數(shù)計(jì)算出轉(zhuǎn)換的最終結(jié)果Ru。該方法的查詢速度快,且節(jié)省空間優(yōu)勢(shì)較強(qiáng)。
文檔編號(hào)G06F1/02GK101620453SQ20081006817
公開日2010年1月6日 申請(qǐng)日期2008年7月2日 優(yōu)先權(quán)日2008年7月2日
發(fā)明者虞愛華, 黃必昌 申請(qǐng)人:昂納信息技術(shù)(深圳)有限公司