フルディジタル無線& 変復調 実験室

連載
高速 A−D/FPGA/DSP/DDS 搭載基板を
動かしながらしくみを学ぶ
フルディジタル無線&
変復調 実験室
三角関数や対数の計算が得意なCORDICアルゴリズム
西村 芳一
1
K
Y
≒0.60725
0
0.65
(初期値)
cos0.65
≒0.79608
sin0.65
≒0.60518
x
y
z
Yoshikazu Nishimura
z 角度,−
π
π
≦z ≦
に対して,sin z とcos z を計算
2
2
1
0
p1
pn =(0.79608,
i :ループ・
0.60518)
カウンタ
CORDIC
1回目で求まる近似値
X
cos z
0
Y
sin z
z
Z
0
K
m =1,z →0
半径1の円
定数
sin/cos計算
p3
yes
p2
x =1/K
y =0
i =0
K =1.6467602
no
z ≧0
u = x − y 2− i
y = y + x 2− i
z = z −tan−12−i
u = x + y 2− i
y = y − x 2− i
z = z +tan−12−i
x =u
x =u
2回目で求まる
近似値
0
x
θn = z 0=0.65
z
yes
z は角度誤差
z 0=0.65
z2
i = i +1
p 0=(0.60725,0)
i<n
no
回数を増やすほど誤差が減る
z3
0
zn =0
n ビットまで処理
cos z=x
sin z=y
回数 i
z1
終わり
(a)sin/cosの解を求めていくようす
(b)計算フロー
図 1 sin/cos を計算する CORDIC のアルゴリズム
● 無線の信号処理にピッタリな計算アルゴリズム
「CORDIC」
フルディジタル無線機では,次の四つの信号処理を
実行する際に関数を利用して計算を実行します.
(1)ミキシング:sin と cos
(2)FFT:sin と cos
190
(3)局座標変換:tan − 1 と平方根
(4)信号強度測定:対数
(5)AGC
(Auto Gain Control)
:対数と指数
なかでも三角関数や対数の計算を多用します.今回
紹介するのは,これらの計算にピッタリな計算アルゴ
リズム「CORDIC
(COrdinate Rotation DIgital Computer)
2015 年 2 月号