楊治國+付俊
摘要:在實(shí)際的工程應(yīng)用中,經(jīng)常需要計(jì)算角度的三角函數(shù)運(yùn)算,比如計(jì)算流水線型快速傅里葉變換處理器蝶形運(yùn)算中的旋轉(zhuǎn)因子,采用CORDIC迭代加法器,性能與直接采用乘法器相比性能損失很小,但可以大大節(jié)約數(shù)字面積。CORDIC的定點(diǎn)化運(yùn)算中,迭代次數(shù)是算法的重要指標(biāo)之一,其關(guān)系到算法的復(fù)雜度及計(jì)算誤差。算法迭代次數(shù)與要求的數(shù)據(jù)精度相關(guān),該文將實(shí)現(xiàn)CORDIC算法的旋轉(zhuǎn)模式,利用迭代不同次數(shù)得到的值與精確值的誤差進(jìn)行比較來確定CORDIC算法需要進(jìn)行的迭代次數(shù)。這樣在節(jié)約計(jì)算量的同時(shí),保證計(jì)算精度不受較大影響,從而在節(jié)約計(jì)算量的前提下保證CORDIC算法的性能。
關(guān)鍵詞:CORDIC;定點(diǎn)化算法;旋轉(zhuǎn)模式;向量模式
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)12-0090-02
1 CORDIC迭代算法簡介
CORDIC[1][2]主要應(yīng)用于直角坐標(biāo)與極坐標(biāo)的數(shù)值相互轉(zhuǎn)換,其在特征值,快速傅里葉運(yùn)算[3]的定點(diǎn)運(yùn)算[4,5]有重要意義。CORDIC迭代算法的基本原理如圖1所示:
4 結(jié)束語
從算法流程可知,快速傅里葉蝶形算法中旋轉(zhuǎn)因子計(jì)算中,ROM不直接存儲(chǔ)旋轉(zhuǎn)因子的值,而是存儲(chǔ)少量的單位旋轉(zhuǎn)角度值 ,再通過CORDIC流水線循環(huán)迭代,得到所需的旋轉(zhuǎn)角度值[θ];無需復(fù)數(shù)乘法器,每步運(yùn)算可分解為簡單的移位、相加來完成;為了保證CORDIC計(jì)算精度,需要考慮旋轉(zhuǎn)因子位寬與迭代次數(shù)關(guān)系,如果迭代次數(shù)多大,影響CORDIC運(yùn)算的復(fù)雜度,次數(shù)不足,則影響CORDIC運(yùn)算的精度。本文仿真驗(yàn)證了迭代次數(shù)與位寬的關(guān)系。當(dāng)然后續(xù)也可以利用門限閥值對(duì)迭代性能做進(jìn)一步研究。
參考文獻(xiàn):
[1] Andraka R.A Survey of Cordic Algorithms for FPGA Based Computers[C]. Proceedings of the ACM/SIGDA 6th International Symposium on Field Programmable Gate Arrays (FPGA '98) ,1998.
[2] 耿丹.CORDIC算法研究與實(shí)現(xiàn)[J].論文與技術(shù)報(bào)告:2007(S1):39-40.
[3] 彭清兵,李方軍.基于CORDIC算法的FFT處理器設(shè)計(jì)[J].工程應(yīng)用技術(shù)與實(shí)現(xiàn),2011(23):208-209.
[4] 孫明革,陳靖.CORDIC算法在定點(diǎn)DSP中的應(yīng)用[J].吉林化工學(xué)院學(xué)報(bào),2012(5):61-62.
[5] Martin Uhlmann, Keshab K P.A high-speed CORDIC algorithm and architecture for DSP application[J]. IEEE,2005,52:1-5.
[6] Granado J, Torralba A, Chavez J,et al. Optimization of CORDIC cells in the backward circular rotation mode[J].AEU-International Journal of Electronics and Communications, 2007,61:337-340
[7] 王建軍,徐力,安鵬.基于CORDIC的頻偏估計(jì)幅角計(jì)算算法[J].技術(shù)與方法,2014(7):77-78.
[8] 梁源,王興華.一種基于貪婪算法的CORDIC改進(jìn)算法[J].電訊技術(shù),2014(3):313-314.