- 相關(guān)推薦
基于DSP TMS320LF2407A的浮點數(shù)開方算法研究探析
畢業(yè)論文
摘 要: 研究DSP TMS320LF2407A浮點數(shù)開平方的理論方法,采用改進(jìn)Newton下山算法為Newton迭代法提供了更為精確的初值,從而使得收斂速度加快,精度更高。在DSP TMS320LF2407A上編寫了1套算法,計算結(jié)果與理論分析基本吻合。該算法思路新穎,精度高,速度快,可移植到其它浮點數(shù)運算的單片機上。
關(guān)鍵詞: 浮點數(shù)開平方;改進(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引言
在較為復(fù)雜的單片機、數(shù)字信號處理器(DSP)系統(tǒng)中,為擴大取值范圍,實現(xiàn)復(fù)雜的計算和控制,1般都要涉及浮點數(shù)的運算。而在1般單片機、部分定點數(shù)字信號處理器(DSP)中,沒有浮點數(shù)運算指令,只能利用多位定點2進(jìn)制數(shù)實現(xiàn)高精度浮點數(shù)運算。在單片機、DSP進(jìn)行開方運算時,實現(xiàn)方法有多種,如牛頓迭代法、查表法、直線逼近法(線性化方法)和減奇數(shù)法等。對于查表法,當(dāng)被開方數(shù)變化范圍較大時,提高運算精度和減少內(nèi)存占用量是相矛盾的。直線逼近法需要存貯各段線性逼近函數(shù)的斜率和截距值,當(dāng)要求的運算精度增加時,線性段的劃分越密,運算處理時間就越長。減奇數(shù)法的缺點是運算時間與被開方數(shù)的大小有關(guān),被開方數(shù)很大時,運算執(zhí)行時間將很長。牛頓迭代法是1種1致收斂的開平方算法,若初始值選取得合適,則只需很少的次數(shù)甚至是1次迭代運算,即可得到滿足給定精度要求的運算結(jié)果,其唯1的缺點就是若初始值選取不合適的話,會影響收斂速度,甚至?xí)䦟?dǎo)致算法發(fā)散。針對牛頓迭代法的初始值選取問題,本文用改進(jìn)Newton下山算法予以解決。該方法充分利用TI公司TMS320LF2407A的強大功能,可以很方便的實現(xiàn)浮點數(shù)的開方。TMS320LF2407A具有較強的控制能力,但無浮點數(shù)邏輯結(jié)構(gòu),如果開發(fā)出良好的浮點數(shù)算法程序,它將能實現(xiàn)更強大的功能。
1。 TMS320LF2407A基本特點概述[1]
TMS320LF2407A是TI公司推出的1款定點DSP控制器,它采用了高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3V,減小了控制器的功耗。其40MIPS的執(zhí)行速度使得指令周期縮短到25ns(40MHz),從而提高了控制器的實時控制能力。它集成了32k字的閃存(可加密)、2.5k的RAM和500ns轉(zhuǎn)換時間的A/D轉(zhuǎn)換器,片上事件管理器提供了可以滿足各種電機的PWM接口和I/O功能。此外,它還提供了適用于工業(yè)控制領(lǐng)域的1些特殊功能,如看門狗電路、SPI、SCI和CAN控制器等,從而可被廣泛應(yīng)用于工業(yè)控制領(lǐng)域。
2。 2進(jìn)制浮點數(shù)表示方法[2]
浮點數(shù)由階碼和尾數(shù)組成。IEEE的浮點數(shù)標(biāo)準(zhǔn)規(guī)定了單精度(4 b)、雙精度(8 b)和擴展精度(10 b)三種浮點數(shù)的格式。最常用的是單精度浮點數(shù),如圖1所示。但這種格式的階碼不在同1個字節(jié)單元內(nèi),不易尋址,從而會影響運算速度。通常在DSP上采用的是1種變形格式的浮點數(shù)[3],前三個字節(jié)表示尾數(shù),后1個字節(jié)表示階碼,尾數(shù)小數(shù)點在高字節(jié)左端,且最高位表示符號位,當(dāng)尾數(shù)為正時,最高位為“0”(對規(guī)格化數(shù)隱含了最高位的“1”),如圖2所示。
圖1 常用單精度浮點數(shù)
圖2 變形格式的浮點數(shù)
浮點數(shù)均按規(guī)格化方式存放,即尾數(shù)的最高位總是1,這樣,對于尾數(shù)為M的規(guī)格化浮點數(shù)有 。
3。 改進(jìn)Newton下山算法求解開方問題的算法原理
利用改進(jìn)Newton下山算法求解平方根問題,如求 。令 ,則 ,得方程: 、
其正根 即 。按改進(jìn)Newton下山算法公式有:
⑵
其中 。
由 和⑴式代入⑵式中,得方程:
⑶
當(dāng) 時,就是1般情況的Newton迭代公式[4]。Newton迭代法已經(jīng)證明當(dāng)初始值 時,迭代法公式總能收斂到精確值 ,其證明如下:
由⑵式可得:
⑷
由⑷式配方得:
⑸
⑹
由⑸式得:
故對任意 ,均有 。而由⑷式又有:
所以迭代序列 是下有界的單調(diào)遞減序列,從而有極限 。這說明只要 ,⑷式總能收斂于 。
另外,由⑸和⑹式可以確定相對誤差:
⑸和⑹式相比得:
遞推得:
令 ,則
相對誤差為:
因此,由 的取值就可以確定相對誤差的大小。類似的,如果確定了具體的相對誤差精度,也就可以求得 的取值,而初值 的選擇決定了收斂速度的快慢。
正因為當(dāng)初始值取為正數(shù)時,Newton迭代法總是能收斂,所以在微機、單片機等構(gòu)成的實時控制系統(tǒng)和測量儀器中計算開平方時,1般都簡單地取 。但是如果 很大,或很小時,即 偏離1很遠(yuǎn)時,收斂的步數(shù)就會很多,收斂所需要的時間就相對比較長。用改進(jìn)Newton下山算法的優(yōu)勢在于收斂速度快,雖然只有1階收斂(Newton迭代法有平方收斂),但可以用它來快速收斂到真實值的鄰域內(nèi),獲得初值,再用Newton迭代法得出精確解。
在這里由于函數(shù)的特殊性,從理論上確定 和c的關(guān)系,才是解決問題的關(guān)鍵。為了求出這個關(guān)系,這里首先確定三個條件:
1) 改進(jìn)Newton下山算法的初值 ;
2) 約束條件 ,其中 為1個很小的正數(shù);
3) 收斂結(jié)果 在 的鄰域內(nèi),即: 。
由這三個條件構(gòu)造出1函數(shù) : ,實驗檢驗,只需要1-2步就可以得到 。最后用Newton迭代法的初值 ,實驗檢驗,只需要2-3步就可以得到精確值。
4。 改進(jìn)Newton下山算法的軟件實現(xiàn)
本軟件編程是用C語言編寫,其算法流程如下:
1) 輸入初始條件 以及迭代公式;
2) 由構(gòu)造函數(shù) 迭代1次,得到 ;
3) 將 代入約束條件 檢驗,如果符合條件則 ,相反則轉(zhuǎn)到2)再迭代1次;
4) 初始值 ,代入Newton迭代法公式進(jìn)行迭代;
5) 判斷約束條件 ,滿足則終止迭代, 即為所求的平方根值,否則轉(zhuǎn)到4)繼續(xù)迭代。
6) 輸出平方根值 。
在編程時,在DSP TMS320LF2407A的RAM數(shù)據(jù)空間B1塊的1AH-2FH進(jìn)行,相鄰的兩個字表示1個2進(jìn)制浮點數(shù),把這個16位數(shù)送到32 bit累加器時,最低8位數(shù)屏蔽為0,另把階碼送到寄存器保存,不影響計算精度。整個算法每次循環(huán)需要進(jìn)行1次浮點數(shù)加法、減法和除法運算,迭代收斂速度越快,計算循環(huán)次數(shù)越少。從上述算法可以看出,本算法編程思路清晰、簡單。Newton迭代法第1次x0取下山算法的終值,以后進(jìn)行迭代計算,直到最后兩次近似根的差小于控制精度。
5. 結(jié)論 畢業(yè)論文 論文網(wǎng)
用DSP TMS320LF2407A 的C語言編寫了以改進(jìn)Newton下山算法求平方根的程序,并同標(biāo)準(zhǔn)值進(jìn)行了比較,發(fā)現(xiàn)下山算法只需要1-2步。因為有了比較好的初值,所以Newton迭代公式只需要迭代2-3步,收斂速度很快,而且其精度非常高,可達(dá)到10e-6以上。隨著數(shù)據(jù)變大,收斂速度也變快。如果改變控制精度,其精度還可以提高,收斂速度也可隨之改變。
參考文獻(xiàn)
[1] 張芳蘭,TMS320C2xx用戶指南[M]。北京:電子工業(yè)出版社,1999,79-200
[2] TI。TMS320F/C24x DSP Controller Reference Guide。
[3] 曹海歐,微機保護(hù)開平方計算中牛頓迭代的改進(jìn)[J]。江蘇電機工程,2006。9
[4] 鄭咸義,計算方法[M]。廣州:華南理工大學(xué)出版社,2002。9
【基于DSP TMS320LF2407A的浮點數(shù)開方算法研究探析】相關(guān)文章:
基于SWOT的我國社;疬\行現(xiàn)狀探析論文04-17
基于dsp三相變流器滑模變結(jié)構(gòu)控制(c)06-03
基于戰(zhàn)略治理的企業(yè)環(huán)境風(fēng)險研究08-28
基于BP網(wǎng)遙感影像分類研究與應(yīng)用08-10
基于軍網(wǎng)的雷達(dá)遠(yuǎn)程診斷技術(shù)研究08-10
基于web的異地并行設(shè)計與制造系統(tǒng)研究06-02
基于知網(wǎng)的翻譯研究方向碩士畢業(yè)論文寫作06-25
《基于繪本的小學(xué)低段激趣作文的研究》開題報告08-10