李翔
DOI:10.16660/j.cnki.1674-098X.2017.14.034
摘 要:CORDIC算法廣泛用于三角、反三角函數(shù)計算。對該算法的研究主要集中于減少硬件資源消耗、提升處理效率,但對其計算誤差的深入分析較少。指出了CORDIC算法在矢量模式和旋轉(zhuǎn)模式下的誤差來源,并據(jù)此對CORDIC算法計算正弦、余弦和反正切函數(shù)的不確定度進行了定量分析。數(shù)值仿真表明理論推導(dǎo)與實際計算結(jié)果相吻合。
關(guān)鍵詞:CORDIC 誤差分析 不確定度
中圖分類號:TM38;TP301.6 文獻標(biāo)識碼:A 文章編號:1674-098X(2017)05(b)-0034-02
CORDIC算法全稱為“坐標(biāo)旋轉(zhuǎn)數(shù)字計算機(coordinates rotation digital computer)”,該算法最初旨在僅依靠移位和加減操作計算二維坐標(biāo)的旋轉(zhuǎn)變換,稍加改進后可用于實現(xiàn)多種超越函數(shù),尤其多用于計算三角與反三角函數(shù)[1-3]。
目前對CORDIC算法的研究集中在降低硬件消耗、提高計算速度上[4-5],而對該算法的計算誤差則關(guān)注甚少。早期文獻中關(guān)于CORDIC算法的誤差分析也往往限于討論誤差的上限[6-7],且對誤差來源的分析尚不夠深入。
該文對CORDIC算法的兩種常用模式——矢量模式和旋轉(zhuǎn)模式下的誤差來源進行了討論,采用不確定度評定的方法估計計算誤差,并通過數(shù)值仿真驗證了推導(dǎo)結(jié)果的正確性。
2 仿真驗證
假定角度分辨率弧度,迭代16次。對于矢量模式,隨機產(chǎn)生10 000個幅角在區(qū)間內(nèi)的矢量,并使矢量模長從逐步增大到224,用矢量模式計算反正切并統(tǒng)計其均方誤差(RMSE),并與式(8)給出的不確定度理論值進行對比,結(jié)果見圖1。
對于旋轉(zhuǎn)模式,隨機產(chǎn)生10000個區(qū)間內(nèi)的角度,用旋轉(zhuǎn)模式計算它們的正弦和余弦,且矢量模長亦從逐步增大到224,統(tǒng)計均方誤差并與不確定度理論值對比,結(jié)果見圖2。
由圖1與圖2可見,無論矢量模式或旋轉(zhuǎn)模式,按式(8)得到的不確定度理論值均與實際的均方誤差相吻合。
3 結(jié)語
該文對CORDIC算法計算反正切、正弦和余弦函數(shù)的誤差進行了分析并給出了不確定度表達(dá)式。數(shù)值仿真結(jié)果表明,該文給出的CORDIC算法不確定度表達(dá)式能準(zhǔn)確地估計實際計算誤差的大小,可為CORDIC算法在實際應(yīng)用中的精度評估提供參考。
參考文獻
[1] 馮英翹,萬秋華,宋超,等.基于坐標(biāo)旋轉(zhuǎn)數(shù)字計算算法的小型光電編碼器細(xì)分[J].光學(xué)學(xué)報,2014,34(2):34-39.
[2] 薛凌云,孫世榮.基于CORDIC算法的磁編碼器角度誤差修正仿真研究[J].杭州電子科技大學(xué)學(xué)報:自然科學(xué)版,2016,36(1):75-79.
[3] 葉樹亮,張潛,朱維斌.光柵莫爾信號正交誤差實時補償研究[J].儀器儀表學(xué)報,2017,38(1):57-64.
[4] 劉小寧,謝宜壯,陳禾,等.CORDIC算法的優(yōu)化及實現(xiàn)[J].北京理工大學(xué)學(xué)報,2015,35(11):1164-1170.
[5] 張朝柱,韓吉南,燕慧智.高速高精度固定角度旋轉(zhuǎn)CORDIC算法的設(shè)計與實現(xiàn)[J].電子學(xué)報,2016,44(2):485-490.
[6] Antelo E,Bruguera J D,Lang T,et al. Error analysis and reduction for angle calculation using the CORDIC algorithm[J].IEEE Transactions on Computers,1997,46(11):1264-1271.
[7] Sang Yoon Park, Nam Ik Cho.Fixed-point error analysis of CORDIC processor based on the variance propagation[J].IEEE Transactions on Circuits and Systems-I,2004,51(3):573-584.