ATANを求めるCORDICアルゴリズムの検証をしてみました。 CORDICとは、半分、半分、半分、、、と追い込んでゆき、だんだん制度が高くなってゆくアルゴリズムのようです。 ちょっと違うかも知れませんが、(+)するか(−)するかの判断のところなんか、逐次比較A/Dコンバーターを思い出しました。
あらかじめ角度が1,1/2,1/4,1/8,1/16,,,,,のatan()テーブルを用意しておき、この値を順次(+)足したり(-)引いたりしてゆく。 10回くらいやると、目的とするatan(y/x)に近づく。 足すのか、引くのかがポイント。 yが0より大きければ(−)引く。 xとyの座標の求め方は、3角形の相似を利用。 ここが理解できて、すっきりしました。 たとえば、 x=x-y/2 y=y+x/2
CORDIC ATAN検証用エクセルファイル
|
|
|