- 相關(guān)推薦
基于DSP TMS320LF2407A的浮點(diǎn)數開(kāi)方算法研究探析
畢業(yè)論文
摘 要: 研究DSP TMS320LF2407A浮點(diǎn)數開(kāi)平方的理論方法,采用改進(jìn)Newton下山算法為Newton迭代法提供了更為精確的初值,從而使得收斂速度加快,精度更高。在DSP TMS320LF2407A上編寫(xiě)了1套算法,計算結果與理論分析基本吻合。該算法思路新穎,精度高,速度快,可移植到其它浮點(diǎn)數運算的單片機上。
關(guān)鍵詞: 浮點(diǎn)數開(kāi)平方;改進(jìn)Newton下山算法;TMS320LF2407A;
A Research of Float Square Root Algorithm Based on DSP TMS320LF2407A
WANG Zhen1, CHENG Wen-feng1, ZHOU Wen-hui2
(1。Electric Power College, South China University of Technology, Guangzhou, 510640,China;
2。 PLA 76321army, Guangzhou, 5110560,China)
Abstract: It presents a new theoretical method of float square root algorithm based on TMS320LF2407A。 Using the advanced Newton descent method, the more precise starting value is given to improve Newton iteration of extracting square root, which would be faster in convergent speed and more accurate。 The arithmetic on TMS320LF2407A was programmed and the result of experiment basically accords with the theory。 The conclusion shows its features of simplicity, high precision and rapid speed。 This method may be used in other float calculation of single chipped-microprocessor。
Keywords: float square root; advanced Newton descent method; TMS320LF2407A
0引言
在較為復雜的單片機、數字信號處理器(DSP)系統中,為擴大取值范圍,實(shí)現復雜的計算和控制,1般都要涉及浮點(diǎn)數的運算。而在1般單片機、部分定點(diǎn)數字信號處理器(DSP)中,沒(méi)有浮點(diǎn)數運算指令,只能利用多位定點(diǎn)2進(jìn)制數實(shí)現高精度浮點(diǎn)數運算。在單片機、DSP進(jìn)行開(kāi)方運算時(shí),實(shí)現方法有多種,如牛頓迭代法、查表法、直線(xiàn)逼近法(線(xiàn)性化方法)和減奇數法等。對于查表法,當被開(kāi)方數變化范圍較大時(shí),提高運算精度和減少內存占用量是相矛盾的。直線(xiàn)逼近法需要存貯各段線(xiàn)性逼近函數的斜率和截距值,當要求的運算精度增加時(shí),線(xiàn)性段的劃分越密,運算處理時(shí)間就越長(cháng)。減奇數法的缺點(diǎn)是運算時(shí)間與被開(kāi)方數的大小有關(guān),被開(kāi)方數很大時(shí),運算執行時(shí)間將很長(cháng)。牛頓迭代法是1種1致收斂的開(kāi)平方算法,若初始值選取得合適,則只需很少的次數甚至是1次迭代運算,即可得到滿(mǎn)足給定精度要求的運算結果,其唯1的缺點(diǎn)就是若初始值選取不合適的話(huà),會(huì )影響收斂速度,甚至會(huì )導致算法發(fā)散。針對牛頓迭代法的初始值選取問(wèn)題,本文用改進(jìn)Newton下山算法予以解決。該方法充分利用TI公司TMS320LF2407A的強大功能,可以很方便的實(shí)現浮點(diǎn)數的開(kāi)方。TMS320LF2407A具有較強的控制能力,但無(wú)浮點(diǎn)數邏輯結構,如果開(kāi)發(fā)出良好的浮點(diǎn)數算法程序,它將能實(shí)現更強大的功能。
1。 TMS320LF2407A基本特點(diǎn)概述[1]
TMS320LF2407A是TI公司推出的1款定點(diǎn)DSP控制器,它采用了高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3V,減小了控制器的功耗。其40MIPS的執行速度使得指令周期縮短到25ns(40MHz),從而提高了控制器的實(shí)時(shí)控制能力。它集成了32k字的閃存(可加密)、2.5k的RAM和500ns轉換時(shí)間的A/D轉換器,片上事件管理器提供了可以滿(mǎn)足各種電機的PWM接口和I/O功能。此外,它還提供了適用于工業(yè)控制領(lǐng)域的1些特殊功能,如看門(mén)狗電路、SPI、SCI和CAN控制器等,從而可被廣泛應用于工業(yè)控制領(lǐng)域。
2。 2進(jìn)制浮點(diǎn)數表示方法[2]
浮點(diǎn)數由階碼和尾數組成。IEEE的浮點(diǎn)數標準規定了單精度(4 b)、雙精度(8 b)和擴展精度(10 b)三種浮點(diǎn)數的格式。最常用的是單精度浮點(diǎn)數,如圖1所示。但這種格式的階碼不在同1個(gè)字節單元內,不易尋址,從而會(huì )影響運算速度。通常在DSP上采用的是1種變形格式的浮點(diǎn)數[3],前三個(gè)字節表示尾數,后1個(gè)字節表示階碼,尾數小數點(diǎn)在高字節左端,且最高位表示符號位,當尾數為正時(shí),最高位為“0”(對規格化數隱含了最高位的“1”),如圖2所示。
圖1 常用單精度浮點(diǎn)數
圖2 變形格式的浮點(diǎn)數
浮點(diǎn)數均按規格化方式存放,即尾數的最高位總是1,這樣,對于尾數為M的規格化浮點(diǎn)數有 。
3。 改進(jìn)Newton下山算法求解開(kāi)方問(wèn)題的算法原理
利用改進(jìn)Newton下山算法求解平方根問(wèn)題,如求 。令 ,則 ,得方程: 、
其正根 即 。按改進(jìn)Newton下山算法公式有:
、
其中 。
由 和⑴式代入⑵式中,得方程:
⑶
當 時(shí),就是1般情況的Newton迭代公式[4]。Newton迭代法已經(jīng)證明當初始值 時(shí),迭代法公式總能收斂到精確值 ,其證明如下:
由⑵式可得:
⑷
由⑷式配方得:
⑸
⑹
由⑸式得:
故對任意 ,均有 。而由⑷式又有:
所以迭代序列 是下有界的單調遞減序列,從而有極限 。這說(shuō)明只要 ,⑷式總能收斂于 。
另外,由⑸和⑹式可以確定相對誤差:
⑸和⑹式相比得:
遞推得:
令 ,則
相對誤差為:
因此,由 的取值就可以確定相對誤差的大小。類(lèi)似的,如果確定了具體的相對誤差精度,也就可以求得 的取值,而初值 的選擇決定了收斂速度的快慢。
正因為當初始值取為正數時(shí),Newton迭代法總是能收斂,所以在微機、單片機等構成的實(shí)時(shí)控制系統和測量?jì)x器中計算開(kāi)平方時(shí),1般都簡(jiǎn)單地取 。但是如果 很大,或很小時(shí),即 偏離1很遠時(shí),收斂的步數就會(huì )很多,收斂所需要的時(shí)間就相對比較長(cháng)。用改進(jìn)Newton下山算法的優(yōu)勢在于收斂速度快,雖然只有1階收斂(Newton迭代法有平方收斂),但可以用它來(lái)快速收斂到真實(shí)值的鄰域內,獲得初值,再用Newton迭代法得出精確解。
在這里由于函數的特殊性,從理論上確定 和c的關(guān)系,才是解決問(wèn)題的關(guān)鍵。為了求出這個(gè)關(guān)系,這里首先確定三個(gè)條件:
1) 改進(jìn)Newton下山算法的初值 ;
2) 約束條件 ,其中 為1個(gè)很小的正數;
3) 收斂結果 在 的鄰域內,即: 。
由這三個(gè)條件構造出1函數 : ,實(shí)驗檢驗,只需要1-2步就可以得到 。最后用Newton迭代法的初值 ,實(shí)驗檢驗,只需要2-3步就可以得到精確值。
4。 改進(jìn)Newton下山算法的軟件實(shí)現
本軟件編程是用C語(yǔ)言編寫(xiě),其算法流程如下:
1) 輸入初始條件 以及迭代公式;
2) 由構造函數 迭代1次,得到 ;
3) 將 代入約束條件 檢驗,如果符合條件則 ,相反則轉到2)再迭代1次;
4) 初始值 ,代入Newton迭代法公式進(jìn)行迭代;
5) 判斷約束條件 ,滿(mǎn)足則終止迭代, 即為所求的平方根值,否則轉到4)繼續迭代。
6) 輸出平方根值 。
在編程時(shí),在DSP TMS320LF2407A的RAM數據空間B1塊的1AH-2FH進(jìn)行,相鄰的兩個(gè)字表示1個(gè)2進(jìn)制浮點(diǎn)數,把這個(gè)16位數送到32 bit累加器時(shí),最低8位數屏蔽為0,另把階碼送到寄存器保存,不影響計算精度。整個(gè)算法每次循環(huán)需要進(jìn)行1次浮點(diǎn)數加法、減法和除法運算,迭代收斂速度越快,計算循環(huán)次數越少。從上述算法可以看出,本算法編程思路清晰、簡(jiǎn)單。Newton迭代法第1次x0取下山算法的終值,以后進(jìn)行迭代計算,直到最后兩次近似根的差小于控制精度。
5. 結論 畢業(yè)論文 論文網(wǎng)
用DSP TMS320LF2407A 的C語(yǔ)言編寫(xiě)了以改進(jìn)Newton下山算法求平方根的程序,并同標準值進(jìn)行了比較,發(fā)現下山算法只需要1-2步。因為有了比較好的初值,所以Newton迭代公式只需要迭代2-3步,收斂速度很快,而且其精度非常高,可達到10e-6以上。隨著(zhù)數據變大,收斂速度也變快。如果改變控制精度,其精度還可以提高,收斂速度也可隨之改變。
參考文獻
[1] 張芳蘭,TMS320C2xx用戶(hù)指南[M]。北京:電子工業(yè)出版社,1999,79-200
[2] TI。TMS320F/C24x DSP Controller Reference Guide。
[3] 曹海歐,微機保護開(kāi)平方計算中牛頓迭代的改進(jìn)[J]。江蘇電機工程,2006。9
[4] 鄭咸義,計算方法[M]。廣州:華南理工大學(xué)出版社,2002。9
【基于DSP TMS320LF2407A的浮點(diǎn)數開(kāi)方算法研究探析】相關(guān)文章:
基于DSP的信道譯碼算法優(yōu)化03-19
FFT算法的研究與DSP實(shí)現03-07
基于DSP的數控二維橢圓及圓插補算法簡(jiǎn)化編程研究11-22
基于DCT變換域自適應水印算法的研究03-07