1. 程式人生 > >CORDIC算法向量模式,求幅角和幅值

CORDIC算法向量模式,求幅角和幅值

 主要參考本部落格轉載的關於cordic演算法的部落格,實現程式碼後FPGA模擬發現輸入資料的位寬決定著計算的精度,還與輸入的資料求平方根值的大小有關,值越大要求的位寬越高,輸入的X Y值越小求出的精度越差,越不對。例如輸入x=1,y=2;模擬結果幅值為8,偏差很大,而角度數為25570/256=99.88°;輸入x=10,y=20;模擬結果幅值為21,偏差還行,而角度數為11072/256=43.5,對角度來說偏差也比較大。所以在求反正切時,需要把要求的數放大以後再去求,精度會高些。但是輸入的資料越大我這模擬顯示資料精度也不是很大,反而會下降,例如x=255*1024;y=255*1024;得到的幅值為382372,誤差較大,角度為11072;x=200*1024;y=200*1024;得到的幅值為289642,沒有多延遲了一個週期,角度為11520/256=45;所以不能盲目的增加位寬來求提高精度,還有增加位寬增加了資源消耗,還有計算時間都需要權衡考慮。具體關於cordic演算法可以參考《雙模式CORDIC演算法的fpga實現》這篇文章和三角函式計算,Cordic 演算法入門這篇部落格,網址如下:http://blog.csdn.net/liyuanbhu/article/details/8458769,