第18回LSIデザインコンテスト・イン沖縄  設計仕様書 - 3-1

3-1. CORDIC法([1])

CORDICとは,初等関数の値を計算する1つの方法であり,平面でベクトル(あるいは座標)を回転させながら計算を行う.

Figure 1

図1:CORDIC法の概要図

最終的に求めたい角度を\(θ\)として,図1ではCORDIC法における\(cosθ\),\(sinθ\)の求め方の概要図を示している.図1に示すように, CORDIC法は角度\(z\)が角度\(θ\)に近づくように処理を繰り返すことで,座標\(x\)を\(cosθ\)として,座標\(y\)を\(sinθ\)として算出する. また図1より,角度\(z\)には次のような関係がある.

Equation 1

式(1.1)は角度\(θ\)に近づいていくために,角度\(α\)を角度\(z\)に加えていくことを示している.このときそれぞれの角度間は次のような関係となる.

Equation 2

式(1.10)で示すように,角度\(z\)は最終的に\(θ\)へ近づく.このようにして\(sinθ\),\(cosθ\)を求める.続いて,CORDIC法の主な原理について説明する.

Figure 2

図2:CORDIC法の概要図

図2ではCORDIC法において角度\(z\)をどのようにして角度\(θ\)に近づけるかを示している.まず座標\(x_i\),\(y_i\)と原点とを結ぶ線分の長さを\(R_i\), その角度を\(z_i\)とすると,座標\(x_i\),\(y_i\)および角度\(z_(i+1)\)は以下の式で表される.

Equation 3
Equation 4
Equation 5

ここで角度\(z_i\)を角度\(θ\)へ近づけるための更新値\(α_i\)を考える.

Equation 6

式(1.6)のように定義すると\(sinα_i\),\(cosα_i\)は以下のようにあらわせる.

Equation 7
Equation 8

式(1.7),(1.8)を用いることにより,点\((x_i,y_i)\)から\((x_(i+1),y_(i+1))\)への座標変換を次のように表すことができる.

Equation 9
Equation 9
Equation 9
Equation 9

同様にして,

Equation 10

続いて,例として\(cosθ\),\(sinθ\)がどのように計算されていくのか,過程を追ってみていく.

Figure 3

図3:CORDIC法による\(cosθ\),\(sinθ\)の計算

ここで図3に示すように,回転していくベクトルの初期位置がx軸上にあるものとし,初期座標点を\((x_0 ,y_0 (=0))\)とする.\(z_n=θ\)とすると,

Equation 11
Equation 11
Equation 12
Equation 12
Equation 13

式(1.11),(1.13)から\(x_0\)の初期値を決めてn回の回転後の\(x_n\)座標と\(y_n\)座標とを求めれば,与えられた角度\(θ\)の\(cosθ\), \(sinθ\) は以下のように求めることができる.

Equation 14
Equation 15

注意しなければならない点として,回転をn回繰り返して角度\(z_n\)が角度\(θ\)に近づいたものとし,\(θ\)を誤差とすると,

Equation 16

式(1.16)のように,n回繰り返しても誤差が発生してしまうことがある.

Reference

[1] 青木由直,『BASIC計算法』,コロナ社,1984

<<Back                 Next>>