• ベストアンサー

CORDICによるSIN/COSの計算

題目のアルゴリズムの計算をプログラムしましたが、期待値と 計算値が合いません。 誤りを指摘してください。 REM calculation of sin and cos by CORDIC k = 1 / .60725 z = .65 GOSUB 1000 PRINT "cos(z)="; x PRINT "sin(z)="; y END 1000 REM sin(z) , cos(z) x = 1 / k y = 0 i = 0 1010 IF z >= 0 THEN 1200 u = x + y * 2 ^ (-i) y = y - x * 2 ^ (-i) z = z + atan(2 ^ (-i)) x = u GOTO 1400 1200 u = x - y * 2 ^ (-i) y = y + x * 2 ^ (-i) z = z - atan(2 ^ (-i)) x = u 1400 i = i + 1 IF i < n THEN 1010 RETURN アルゴリズムの出展は ディジタル信号による通信システム設計 P138 図3-36 CQ出版社

みんなが選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8529/18254)
回答No.1

nが定義されていません。 nは反復回数でしょう。

noname#91216
質問者

お礼

ありがとうございます。 確かにnの初期値が未定義です。 ただ、nの値はどうやって決めるか・・・ 困ったなぁ・・・orz 値はn>10くらいで収束するようなので、答えがあっているか 明日検算してみます。

noname#91216
質問者

補足

n=10で計算して見ると 期待値 cos(0.65)=0.79608 sin(0.65)=0.60518 計算値 cos(z)=-.1697108 sin(z)= .9854883 計算値が期待値と合わず、アルゴリズムの誤り?かどうか 検討要になってしまいました。

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8529/18254)
回答No.2

おかしいですね。同じアルゴリズムでn=10としたら x=0.795994263186743 y=0.605295130438878 と計算されますよ。(エクセルVBAを使ってみました。)

関連するQ&A

専門家に質問してみよう