JPS62502576A - 高速正弦および余弦発生装置 - Google Patents
高速正弦および余弦発生装置Info
- Publication number
- JPS62502576A JPS62502576A JP61503301A JP50330186A JPS62502576A JP S62502576 A JPS62502576 A JP S62502576A JP 61503301 A JP61503301 A JP 61503301A JP 50330186 A JP50330186 A JP 50330186A JP S62502576 A JPS62502576 A JP S62502576A
- Authority
- JP
- Japan
- Prior art keywords
- digits
- transcendental function
- bits
- generator
- transcendental
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/035—Reduction of table size
- G06F1/0356—Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/04—Trigonometric functions
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
高速正弦および余弦発生装置
見豆立!μ
本発明は正弦および余弦関数値を迅速かつ正確に発生する装置に関する。
三角関数sinθ およびcosθ は多くの分野で広く使用されている1種々
の応用用途で要求される精度および値の計算に必要な速度は応用用途の領域に大
幅に依存する。しかし、近年の一般的傾向としてこれら三角関数を発生する装置
に対しより高い精度とより速い速度の両方が要求されている。
正弦および余弦を計算する従来技術に従う手法は大きく3つのカテゴリに分類さ
れる。即ち多項式を用いた級数展開、内挿を用いたあるいは用いないルックアッ
プ・テーブルおよび特殊技法である。
級数による正弦および余弦の計算は周知のオイラの公式
%式%(1)
に基づいている。ここでjは−1の平方根を表わし、θはラジアンで表現されて
いる。ej#が中級数に展開され、実数および虚数の項を分離すると次のような
正弦および余弦に対する級数展開が得られる。
この級数展開は可成迅速に収束する。何故ならば、これらは分母に階乗の項を有
しているからである。多項式を近似する他の関数を用いることにより更に速い収
束が得られるが、基本原理は同一であり1級数の複数個の項が計算され2組合わ
されて所望の関数が形成される。
(例えば倍精度で動作している32ビツト・マシンのように)高い精度が要求さ
れる場合には、級数展開アルゴリズムは一般にある応用用途にとって十分な程速
く結果を与えない1例えば、これらのアルゴリズムが典型的なマイクロプロセッ
サ上で実現されると、浮動小数点プロセッサの助けをかりても正弦値を計算する
のに100から150マイクロ秒が必要である。これはある応用用途に対しては
極めて長い。
計算を回避し、速度を改善する正弦および余弦を計算する他の方法は直接ルック
アップ・テーブルを引く方法である。極端な場合、決定したい関数のすべての値
を記憶し、単にメモリにアクセスすることにより所望の値を発生することができ
る。しかし高い精度が要求される場合にはこの方法では膨大な量の記憶装置を必
要とする。
例えば、角が24ビツトの精度で表わされる場合、関数の224の値を決定する
必要があるが、これには1ワードが24ビツトの場合24 X 224(約4
X 10”)ビットのルックアップ・テーブルを必要とする。
この膨大な記憶容量を減少させるために従来技術のルックアップ・テーブル法で
は角を 7c/2に制限しており、θが小なるときsinθ=θなる近似を利用
する内挿法を使用している。従って θ=θ、+Δθなるとき、三角恒等式は次
のようになる。
sinθ= sinθ、十(Δθ)(cosθ□)(4)この方法は1回の乗算
と1回の加算を必要とするがルックアップ・テーブルの記憶容量に対する要求を
大幅に緩和している。
−(N−1)/2
近似が成立するためにはΔθは2 より小でなければならないことが示される。
2進表現を使用するシステムにあっては、この要求は(Nを正弦および余弦関数
の所望の精度とするとき)Nが偶数ならΔθの最大許容値は2X2 または2
に、θ、はN/2ビツトで表現することに等しい。換言するとルックアップ・テ
ーブルは各々Nビットより成る2(N/2 )のエン1〜りを含む必要がある1
例えば24ビツトの精度の装置でsinθを得るためには各ルックアップ・テー
ブルは212ワードを有さなければならない。
正弦および余弦を計算する他の方法では多項式展開もテーブル・ルックアップも
使用しない。その1つの方法はジェー・イー・ボルダが開発した座標引用ディジ
タル計算機(CORDIC)技法として知られている。これについてはrcOR
DIC三角関数計算技法」、アイ・アール・イー・トランズアクションズ・オン
・エレクトロニック・コンピュータ、EC−8,1958年9月に述べられてい
る。この技法は正弦および余弦だけでなく他の関数を計算するために殆どのカリ
キュレータで使用されている。基本的にはこの技法は次の等式を使用する。
このようにしてθはユニークな(前爪って定められた)大きさを有する角の級数
で近似され、その結果この方法は一連の加算およびシフト(2の巾乗の関係によ
る)とそれに続く1回の乗算だけから成る。この方法は小さな記憶容量しか要求
せず、その操作は本質的に繰返しと逐次操作より成る。
級数展開法は汎用計算機で広く使用され、関数発生サブルーチンとして実現され
ている。テーブル・ルックアップ法はしばしばイメージ処理およびロボット(こ
の場合には関数値は極めて速く発生する必要がある)で使用される。C0RDI
C法は簡単化のために速度および精度が一般に犠牲とされ得るカリキュレータで
主として使用されている。しかし問題はこれらの方法はいずれも高い精度と速い
速度を有して正弦および余弦を発生することができない点にある。
図面の簡単な説明
第1図は24ビツトの2進ワードで表わされた角θの3分割法を示す図、第2図
は2分割された角θで正弦関数を発生させる装置を示す図、第3図は4分割され
た角θで正弦関数を発生させる装置を示す図、第4図は4分割された角0で余弦
関数を発生させる装置を示す図、第5図は近似手法を使用する第3図の装置の変
形を示す図である。
茜遡40E毘
本発明の原理に従い、その三角関数を発生したい角を複数個の成分角に分割する
ことによって正確な正弦および余弦関数が得られる。三角関数値は成分角の正弦
および余弦値を取り出し、それらを特定の三角方程式に従って線形結合すること
により形成される。正弦および余弦値をルックアップ・テーブルから取り出し、
その値を並列に組合わせることにより速い計算速度が実現される。
その関数値をめたい角を角のディジタル表現で使用される基数に基づく複数個の
成分角に分割し、更に必要なルックアップ・テーブルがほぼ同じ大きさになるよ
うな成分角を生成することにより速い計算速度が促進され、メモリの大きさが小
さくできる。
群1μζ睨朋−
角θが2つの成分角(AおよびB)の和として表現できるものとすると、その角
の正弦および余弦は夫々の成分角の正弦および余弦により次のように表現される
ことは良く知られている。
5in(A 十B )=sinA cosA +cosA sin B (6)
cos(A + B)=cosA cosB −5inA 5inB (7)事
実、前述の(内挿を使用する)従来技術のテーブル・ルックアップ技法では角B
が要求される精度に依存するある値より小となるよう角AとBに角θを分割して
この三角恒等式を使用している。三角恒等式(6)および(7)は角θの3分割
、4分割および他の分割に拡張できるが一般には実現されていない。
三角関数値を正確に形成する本発明の装置は前述の恒等式を使用しているが、角
θの分割法が特殊である。角θはθの値またはその成分角の値に基づいてではな
く角θのディジタル表現に厳密に従って成分角に分割される。
更に詳細に述べると、角θは次のように分割される。即ち成分角の各々が角θを
規定するディジットの互いに素な部分集合によって表わされ、かつその結果得ら
れる互いに素な部分集合の各々の中のディジットの数は所望の三角関数を形成す
るのに要求されるハードウェア全体を減少させるように選択される。角θとその
ディジタル表現の間の対応関係が形成されねばならないこと、および0のディジ
タル表現が0ラジアンに対応し、最大のディジタル表現がπ/2ラジアンに対応
すると最も効率が良いことに注意すべきである。
第1図は本発明に従い24ビツトの2進ワードで表わされた角θの3分割状態を
示している。角θは角A、BおよびCに分割されており、角Aは角θを規定する
2進数の上位8ビツトによって完全に規定されており、角Cは角θを規定する2
進ワードの下位8ビツトによって完全に規定されており、角Bは角θを規定する
2進ワードの中間8ビツトによって完全に規定されている。第1図は単に本発明
を説明するものであり、異なるワードの大きさ、3分割以外の分割、および2進
以外の角θの表現も本発明の範囲内に入ることを理解されたい。
第2図は、角θを2分割して正弦関数を発生する装置を示している。説明の便宜
上、角θは24ビツトとしている。第2図において、角θはθの上位12ビツト
で規定された角Aとθの下位12ビツトで規定された角Bに分割されている。角
Aは正弦テーブル100および余弦テーブル110に加えられる。同様に、角B
は正弦テーブル120および余弦テーブル130に加えられる。テーブル120
および13oは 1/224刻みで、oがら(2”−1)/2”までの角に対す
る正弦値および余弦値を含んでおり、テーブル100および110は1/2”刻
みで0から<2”−2”>/2” までの角に対する正弦値および余弦値を含ん
でいる。テーブル100および130の出力は乗算器140に加えられ、テーブ
ル110および120の出力は乗算器150に加えられる。乗算器140および
150によって形成された積は加算回路160で組合わされ、適用可能な三角方
程式に従って正弦関数が形成される。
第2図の装置は内挿技法よりも多少多くのハードウェアを必要とするが、内挿技
法と異なり、第2図の装置はその大きさのルックアップ・−プルを必要とするこ
となくより高い精度を提供する。
本発明の原理に従い、角θが2つ以上の角に分割されるとき更に有利な結果が得
られる。例えば第1図に示す角θの2進表現の分割を用いると、角θの正弦は第
3図に示す装置で実現され、角θの余弦は第4図に示す装置で実現される。第3
図において、角Aを規定する8ビツトは正弦ルックアップ・テーブル10および
余弦ルックアップ・テーブル11に加えられる。同様に、角Bを規定する8ビツ
トは正弦ルックアップ・テーブル12および余弦ルックアップ・テーブル13に
加えられる。最後に角Cを規定する8ビツトは正弦ルックアップ・テーブル14
および余弦ルックアップ・テーブル15に加えられる。
角θを角A、角Bおよび角Cに分割すると次の三角恒等式が成立する。
5in(A+B+C)=sinA cosB cosc−sinA 5inB
5inC+cosA 5inB cosc+5inA cosB 5inC従っ
て、異なるルックアップ・テーブルの異なる出力が異なる乗算器に加えられる。
詳細に述べると第3図において乗算器21はsin Aテーブル10およびco
sBテーブル13から入力を受信する。乗算器21の出力はcoscテーブル1
5から第2の入力を受信する乗算器22に加えられる。従って乗算器22の出力
信号は前述の三角恒等式において第1の順を形成する。乗算器23はsin A
テーブル10およびsin Bテーブル12から入力を受信する。乗算器23の
出力はsin Cテーブル14から第2の入力を受信する乗算器24に加えられ
る。従って乗算器24の出力信号は前述の三角恒等式の第2項を形成する。乗算
器25はcosAテーブル11およびsin Bテーブル12から入力を受信す
る6乗算器25の出力は乗算器26(これはsin Cテーブル14から第2の
入力を受信する)に加えられる。従って、乗算器26の出力は前述の三角恒等式
の第3項を形成する。最後に乗算器27はcosAテーブル11およびcos
Bテーブル13から入力を受信する。乗算器27の出力はcoscテーブル15
から第2の入力を受信する乗算器28に加えられる。乗算器28の出力は前述の
三角恒等式中の第4(最後)の項を形成する。乗算器22,24,26および2
8の4つの出力はこれら4つの項を適当に加減算する加算回路30に加えられる
。加算回路30の出力は入力角θの24ビツトの正弦値を形成する。
第4図は第3図と殆ど同一であるが、唯一の相異はルックアップ・テーブル10
〜15と乗算器21〜28の間の接続にある。乗算器10〜15に対する接続お
よび加算回路30における加算または減算の選択は次式で示す角(A+B+C)
の余弦に対する三角恒等式に従って実行される。
cos(A+B+C)=cosA cosB cosc−cosA 5inB
5inC−sinA 5inB cosc−sinA eosB 5inC第3
図および第4図の正弦および余弦ルックアップ・テーブルの各々は8ビツト入力
を有しており、従ってルックアップ・テーブルの各々はわずか2@のエントリ、
即ち256ワードを有すればよい、しかし各ワードは要求される精度の正弦およ
び余弦関数を与えるビット数を有することができる。第3図の各々256ワード
から成る 6つのテーブルの総メモリ必要量は、第2図の各々4096ワードか
ら成る4つのテーブルの総メモリ必要量と比べるとはるかに少なく、約4億ワー
ドの単一のルックアップ・テーブルのメモリ必要量と比べると更にはるかに少な
い。角θを3つの成分に分割することの利点は所望の精度のレベルが増したとき
に増大する。
先に指摘した如く、第3図および第4図の装置の出力の値の精度はルックアップ
・テーブルの大きさの関数ではなく、ルックアップ・テーブルのワード長の関数
である。第3図および第4図の過程は近似ではないので、記憶するワードの大き
さを増すことのみが精度の向上に対して要求される。しかし、一度山力における
精度のレベルが選択されると、前述した近似手法が更に所望の記憶容量を減少さ
せるために適用できる。
第5図は角Cが極めて小さく、その正弦および余弦が近似できることによって近
似手法を使用する第3図の装置の変形を示すm 5inCテーブル14は角それ
自身によって置き換えられ、cosCテーブル15は除去されている。 cos
cは1で近似されているので、乗算器22および26はまた除去されており、乗
算器21および25の出力が直接加算回路30に加えられることが許容されてい
る。
近似手法が本発明の原理と関連して使用される場合、角θの分割は幾分具なった
方法に従う。詳細に述べると、所望の出力精度Pが与えられると、(P+1)/
2 の整数部分に相応する数の上位ビットが選択され、角AとBの間で等分され
、入力角の残りのビットは角Cに割当てられる。所望の出力精度が入力ディジッ
トの精度(および入力ディジット数)に等しい場合には入力ワード・ディジット
の上位半分は角AとBの間で分割され、その結果メモリ必要量は更に少なくなる
。このような角の分割を行なうと、例えば第5図の回路は各々わずか64ワード
を有する4つのルックアップ・テーブルを必要とすることになる。
FIG、1
θ
1 2−−−−−−−−一−−−−−−−−’−−−−−−−−−−一−−−−
−−−−−−−−−−−−−24八 日 C
FIG、2
省
国際調査報告
ANNEX To A4 1NTERNATIONAL 5EARCHREPO
RT ON
Claims (10)
- 1.KY個の可能な入力信号に応動して関数値を発生する基数K,M桁より成る 数によって表わされるディジタル信号に応動する超越関数発生器であって、該発 生器は: 前記Mのディジットを前記ディジタル信号の前記数値表現中において互いに隣接 するディジットの互いに素なる部分集合に分割し、この場合各部分集合中のディ ジットの数はNを部分集合の数とするとき商M/Nの整数部分Iより小でなく、 I+1を越さないよう分割する手段と; 前記互いに素なる部分集合の各々に応動する第1の超越関数値発生手段と; 前記互いに素なる部分集合の各々に応動する第2の超越関数値発生手段と; 前記第1および第2の超越関数値発生手段の出力信号を組合わせて前記関数発生 器の出力信号を形成する手段とより成ることを特徴とする超越関数発生器。
- 2.入力信号のMビットの信号表現に応動する超越関数発生器において、該発生 器は: 前記Mビット信号中の互いに隣接するビットの互いに素なる部分集合に前記Mビ ットを分割し、この場合、前記部分集合の各々の中のビットの数はNを部分集合 の数とするとき商M/Nの整数部分Iより小でなく、I+1を越さないよう分割 する手段と; 前記互いに素なる部分集合の各々に応動する第1の超越関数値発生手段と; 前記互いに素なる部分集合の各々に応動する第2の超越関数値発生手段と; 前記第1および第2の超越関数値発生手段の出力信号を組合わせて前記関数発生 器の出力信号を形成する手段とを含むことを特徴とする超越関数発生器。
- 3.第1項記載の装置において前記超越関数は正弦三角関数であることを特徴と する装置。
- 4.第1項記載の装置において前記超越関数は余弦三角関数であることを特徴と する装置。
- 5.第1項記載の装置において前記第1および第2の超越関数発生手段はルック アップ・テーブルであることを特徴とする装置。
- 6.KM個の可能な入力信号に応動して基数KのP桁内の精度で関数値を発生す る基数K,M桁より成る数によって表わされるディジタル信号に応動する超越関 数発生器において、該発生器は: 前記MディジットをJを数[(P/2)+(1/2)]の整数部分として前記M 桁の数の上位J桁を含むディジットの上位の組と、残りのM−J桁を含むディジ ットの下位の組に分割する手段と; 前記上位J桁を前記ディジタル信号の前記数値表現中において互いに隣接するデ ィジットの2つの互いに素なる部分集合に分割し、この場合前記部分集合の各々 中のディジットの数はNを部分集合の数とするとき商J/Nの整数部分Iより小 でなく、I+1を越さないように分割する手段と; 前記互いに素なる部分集合の各々に応動する第1の超越関数値発生手段と; 前記互いに素なる部分集合の各々に応動する第2の超越関数値発生手段と; 前記第1および第2の超越関数値発生手段の出力信号とディジットの前記下位の 組を組合わせて前記関数発生器の出力信号を形成する手段とを含むことを特徴と する超越関数値発生器。
- 7.第6項記載の装置において、前記第1の超越関数発生手段は正弦ルックアッ プ・テーブルより成り、前記第2の超越関数発生手段は余弦ルックアップ・テー ブルより成ることを特徴とする装置。
- 8.角のMビット表現に応動してPビット内の精度で関数値を発生する超越関数 発生器において、該発生器は: 前記MビットをJを[(P/2)十(1/2)]の整数部分として前記角の上位 Jビットを含む上位のビットの組と残りのM−Jビットを含む下位のビットの組 に分割する手段と; 前記上位Jビットを各々ほぼ等しい数を有する隣接ビットの2つの互いに素なる 部分集合(AおよびB)に分割する手段と; 前記隣接ビットの部分集合Aに応動してsinA出力信号を発生する第1の正弦 ルックアップ・テーブルと;前記隣接ビットの部分集合Aに応動してcosA出 力信号を発生する第1の余弦ルックアップ・テーブルと;前記隣接ビットの部分 集合Bに応動してsinB出力信号を発生する第2の正弦ルックアップ・テーブ ルと;前記隣接ビットの部分集合Bに応動してcosB出力信号を発生する第2 の余弦ルックアップ・テーブルと;前記出力信号sinA,sinB,cosA およびcosBを組合わせて前記関数発生器の出力信号を形成する手段より成る ことを特徴とする超越関数発生器。
- 9.第8項記載の装置において、前記組合せを行なう手段は線形結合sinAc osB+cosAsinBを発生することを特徴とする装置。
- 10.第8項記載の装置において、前記組合せを行なう手段は線形結合sinA sinB−cosAcosBを発生することを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72592185A | 1985-04-22 | 1985-04-22 | |
US725921 | 2000-11-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62502576A true JPS62502576A (ja) | 1987-10-01 |
Family
ID=24916477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61503301A Pending JPS62502576A (ja) | 1985-04-22 | 1986-04-10 | 高速正弦および余弦発生装置 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0218724A1 (ja) |
JP (1) | JPS62502576A (ja) |
KR (1) | KR880700350A (ja) |
WO (1) | WO1986006517A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2248355B (en) * | 1990-09-26 | 1994-07-13 | British Aerospace | Digital chirp generator |
US6661852B1 (en) | 1999-07-21 | 2003-12-09 | Raytheon Company | Apparatus and method for quadrature tuner error correction |
US6640237B1 (en) * | 1999-07-27 | 2003-10-28 | Raytheon Company | Method and system for generating a trigonometric function |
US6647075B1 (en) | 2000-03-17 | 2003-11-11 | Raytheon Company | Digital tuner with optimized clock frequency and integrated parallel CIC filter and local oscillator |
US6590948B1 (en) | 2000-03-17 | 2003-07-08 | Raytheon Company | Parallel asynchronous sample rate reducer |
US9875084B2 (en) | 2016-04-28 | 2018-01-23 | Vivante Corporation | Calculating trigonometric functions using a four input dot product circuit |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4077063A (en) * | 1976-08-11 | 1978-02-28 | The Singer Company | Apparatus for rapidly determining the trigonometric functions of an input angle |
-
1986
- 1986-04-10 WO PCT/US1986/000735 patent/WO1986006517A1/en not_active Application Discontinuation
- 1986-04-10 EP EP86903726A patent/EP0218724A1/en not_active Withdrawn
- 1986-04-10 JP JP61503301A patent/JPS62502576A/ja active Pending
- 1986-12-18 KR KR860700907A patent/KR880700350A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
KR880700350A (ko) | 1988-02-22 |
WO1986006517A1 (en) | 1986-11-06 |
EP0218724A1 (en) | 1987-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5737253A (en) | Method and apparatus for direct digital frequency synthesizer | |
Ercegovac et al. | Reciprocation, square root, inverse square root, and some elementary functions using small multipliers | |
US4823301A (en) | Method and circuit for computing reciprocals | |
Hallin et al. | Pipelining of arithmetic functions | |
Omondi et al. | Residue number systems: theory and implementation | |
US5224064A (en) | Transcendental function approximation apparatus and method | |
EP0421092A2 (en) | Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier | |
JPS6132437Y2 (ja) | ||
EP0541707B1 (en) | Sin/cos generator implementation | |
US4945505A (en) | Cordic apparatus and method for approximating the magnitude and phase of a complex number | |
US4747067A (en) | Apparatus and method for approximating the magnitude of a complex number | |
US5337266A (en) | Method and apparatus for fast logarithmic addition and subtraction | |
US3898446A (en) | Quadratic phase memory | |
Agrawal et al. | On modulo (2 n+ 1) arithmetic logic | |
US6065031A (en) | Log converter utilizing offset and method of use thereof | |
Taylor | An extended precision logarithmic number system | |
EP0192419A2 (en) | Method and apparatus for effecting range transformation in a digital circuitry | |
JPS62502576A (ja) | 高速正弦および余弦発生装置 | |
US3436533A (en) | Digital log computer | |
Qian | Application of CORDIC algorithm to neural networks VLSI design | |
Good | The interaction algorithm and practical Fourier analysis: An addendum | |
US3569684A (en) | Sine-cosine generator comprised of a diode array | |
US3973243A (en) | Digital image processor | |
Sasao et al. | Application of LUT cascades to numerical function generators | |
JPS62113236A (ja) | 平方根関数を求める回路 |