JP4757328B2 - 逆正接演算装置及び逆正接演算プログラム - Google Patents

逆正接演算装置及び逆正接演算プログラム Download PDF

Info

Publication number
JP4757328B2
JP4757328B2 JP2009158913A JP2009158913A JP4757328B2 JP 4757328 B2 JP4757328 B2 JP 4757328B2 JP 2009158913 A JP2009158913 A JP 2009158913A JP 2009158913 A JP2009158913 A JP 2009158913A JP 4757328 B2 JP4757328 B2 JP 4757328B2
Authority
JP
Japan
Prior art keywords
degrees
dimensional vector
vector value
degree
unit
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.)
Expired - Fee Related
Application number
JP2009158913A
Other languages
English (en)
Other versions
JP2011014025A (ja
Inventor
昌人 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009158913A priority Critical patent/JP4757328B2/ja
Priority to US12/813,044 priority patent/US8549056B2/en
Priority to EP10165899A priority patent/EP2275923A3/en
Priority to KR1020100063451A priority patent/KR101114785B1/ko
Publication of JP2011014025A publication Critical patent/JP2011014025A/ja
Application granted granted Critical
Publication of JP4757328B2 publication Critical patent/JP4757328B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5446Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation using crossaddition algorithms, e.g. CORDIC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0353Reduction of table size by using symmetrical properties of the function, e.g. using most significant bits for quadrant control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/548Trigonometric functions; Co-ordinate transformations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)
  • Chemical Vapour Deposition (AREA)
  • Control Of Ac Motors In General (AREA)

Description

本発明は、二次元ベクトル値から位相角度を演算出力する逆正接演算装置及び逆正接演算プログラムに関する。
近年、例えば、高速通信処理、ディジタル画像処理やファジー制御処理等の各種技術分野では、二次元ベクトル値から位相角度を高速に演算出力する逆正接演算装置が必要となっている。
しかしながら、従来の逆正接演算装置では、高速な演算出力が要求されていることから、その回路規模も大きくなる。
そこで、従来の逆正接演算装置では、例えば、CORDIC(Coordinate Rotation Digital Computer)演算の繰り返し演算を採用することで、その回路規模を抑制したものが知られている。
また、二次元ベクトル値に対応した位相角度を管理するROM(Read Only Memory)テーブルを準備し、入力した二次元ベクトル値に応じて位相角度を出力する技術も知られている。
しかしながら、ROMテーブルを使用する方式では、ROMテーブルで管理すべきデータ量が膨大となって、ROMテーブルの記憶容量を大きくする必要があるため、その回路規模が大きくなる。
そこで、近年では、ROMテーブル内の二次元ベクトル値の対数を取る、又は、必要な値域以外の精度を下げることで、ROMテーブル内のデータ量を削減し、その回路規模を抑える技術が知られている。
また、従来の逆正接演算装置としては、逆正接関数atan(x)ではなく、逆正接関数atan(x)−xをテーブルとして備え、その結果に対して入力値xを加算して逆正接結果を得ることで、その回路規模を抑制した技術も知られている。
更に、CORDIC演算及びROMテーブルの折衷案として加法定理を用いることで、小型テーブルで収束の速い演算方式を採用したものも知られている。
更に、従来の逆正接演算装置では、0度〜360度内相当の二次元ベクトル値を0度〜45度内相当の二次元ベクトル値に変換し、逆正接演算部への入力値域を抑制する方法も知られている。
更に、従来の逆正接演算装置では、逆正接関数atan(α)を直線等に近似して計算する方法を採用し、二次元ベクトル値(x、y)に対してα=y÷xを計算し、その値αが所定範囲内の場合、特定の直線に近似したと判断する技術も知られている。
特開昭54−104249号公報 特表昭58−500044号公報 特開平10−308714号公報 特開平4−111019号公報 特開平2−232724号公報 特開2000−99314号公報 特開2002−9856号公報 特開2003−92607号公報 特開平5−347643号公報 特開2000−155672号公報 特開昭58−178478号公報
上記従来の逆正接演算装置では、0度〜360度内相当の二次元ベクトル値を0度〜45度相当の二次元ベクトル値に変換し、逆正接演算部が0度〜45度内相当の二次元ベクトル値に対応した位相角度を位相角度ROMから出力する。
しかしながら、上記従来の逆正接演算装置では、0度〜45度内相当の二次元ベクトル値に対応する位相角度を管理する位相角度ROMのデータ量も膨大であるため、位相角度ROMの記憶容量が大きくなって、その回路規模が大規模となっているのが実情である。
開示の技術は上記点に鑑みてなされたものであり、その目的とするところは、位相角度記憶部で管理するデータ量を抑制することで、複雑な演算処理構成を要することなく、その回路規模の小型化が図れる逆正接演算装置及び逆正接演算プログラムを提供することにある。
本願の開示する逆正接演算装置は、一つの態様において、0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を予め記憶した位相角度記憶部と、0度〜360度内相当の二次元ベクトル値にベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換するベクトル回転部と、前記ベクトル回転部で変換した0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力する逆正接演算部と、前記逆正接演算部にて出力した位相角度を0度〜360度換算の位相角度に変換出力する位相角度変換部とを有するようにした。
また、本願の開示する逆正接演算プログラムは、一つの態様において、0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を位相角度記憶部に記憶した記憶手順と、0度〜360度内相当の二次元ベクトル値にベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換するベクトル回転手順と、前記ベクトル回転手順で変換した0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力する逆正接演算手順と、前記逆正接演算手順にて出力した位相角度を0度〜360度換算の位相角度に変換出力する位相角度変換手順とを含むプログラムをコンピュータ装置に実行させるようにした。
本願の開示する逆正接演算装置及び逆正接演算プログラムの一つの態様によれば、乗除算のような複雑な演算処理を要することなく、0度〜360度内相当の二次元ベクトル値を0度〜略22.5度内相当の二次元ベクトル値に値域抑制して逆正接演算部に入力する。そして、位相角度記憶部では、0度〜略22.5度内相当の二次元ベクトル値に対応した位相角度を記憶するだけで済むため、位相角度記憶部の記憶容量を従来に比して大幅に削減し、その回路規模の小型化を図ることができるという効果を奏する。
図1は、実施例1の逆正接演算装置の内部構成を示すブロック図である。 図2は、二次元ベクトル値及び位相角度の関係を示す説明図である。 図3は、実施例2の逆正接演算装置の内部構成を示すブロック図である。 図4は、90度ベクトル回転部の90度ベクトル回転処理に関わる変換テーブルのテーブル内容を示す説明図である。 図5は、逆正接演算部の前処理に関わる動作を示す説明図である。 図6は、45度ベクトル回転部の45度ベクトル回転処理に関わる変換テーブルのテーブル内容を示す説明図である。 図7は、実施例3の逆正接演算装置の内部構成を示すブロック図である。 図8は、45度ベクトル回転部の45度ベクトル回転処理に関わる動作を示す説明図である。 図9は、実施例4の逆正接演算装置の内部構成を示すブロック図である。 図10は、一括変換テーブルのテーブル内容を示す説明図である。 図11は、位相角度ROMに関わる記憶容量の削減効果を示す説明図である。 図12は、実施例5の逆正接演算装置の内部構成を示すブロック図である。
以下、図面に基づき、本願の開示する逆正接演算装置及び逆正接演算プログラムの実施例につき詳細に説明する。
図1は、実施例1の逆正接演算装置の内部構成を示すブロック図、図2は、二次元ベクトル値及び位相角度の関係を示す説明図である。
図1に示す逆正接演算装置1は、図2に示すように0度〜360度内相当の二次元ベクトル値(X,Y)に対応する位相角度θを演算出力するものである。
逆正接演算装置1は、0度〜略22.5度内相当の二次元ベクトル値(X1,Y1)に対応する位相角度θ1を予め記憶した位相角度ROM2を有している。尚、略22.5度は、例えば、45度の半分の角度である22.5度に相当するものである。
逆正接演算装置1は、0度〜360度内相当の二次元ベクトル値(X,Y)を検出すると、二次元ベクトル値(X,Y)にベクトル回転処理を実行するベクトル回転部3を有している。
ベクトル回転部3は、二次元ベクトル値(X,Y)にベクトル回転処理を施すことで、0度〜略22.5度内相当の二次元ベクトル値(X1,Y1)に変換するものである。
また、逆正接演算装置1は、ベクトル回転部3で変換した0度〜略22.5度内相当の二次元ベクトル値(X1,Y1)に対応する位相角度θ1を位相角度ROM2から出力する逆正接演算部4を有している。
更に、逆正接演算装置1は、逆正接演算部4から0度〜略22.5度換算の位相角度θ1を検出すると、この位相角度θ1を0度〜360度換算の位相角度θに変換する位相角度変換部5を有している。
実施例1では、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に値域抑制して逆正接演算部4に入力する。そして、位相角度ROM2では、0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に対応した位相角度θ1を記憶するだけで済むため、位相角度ROM2の記憶容量を従来に比して大幅に削減できる。その結果、実施例1では、逆正接演算装置1の回路規模の小型化を図ることができる。
次に、実施例2の逆正接演算装置について説明する。図3は、実施例2の逆正接演算装置の内部構成を示すブロック図である。尚、実施例1の逆正接演算装置1と同一の構成については同一符号を付すことで、その重複する構成及び動作の説明を省略する。
図3に示す逆正接演算装置1Aは、位相角度ROM2、逆正接演算部4及び位相角度変換部5の他に、0度〜360度内相当の二次元ベクトル値(X,Y)に対して90度ベクトル回転処理を実行する90度ベクトル回転部11を有している。
90度ベクトル回転部11は、0度〜360度内相当の二次元ベクトル値(X,Y)に90度ベクトル回転処理を施し、0度〜45度内相当の二次元ベクトル値(X2,Y2)に変換するものである。
更に、逆正接演算装置1Aは、90度ベクトル回転処理で変換した二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値であるか否かを判定するベクトル回転判定部12を有している。
また、逆正接演算部4は、二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値である場合、この二次元ベクトル値(X1,Y1)に対応する位相角度θ1を位相角度ROM2から出力するものである。
また、位相角度変換部5は、逆正接演算部4にて出力した0度〜22.5度換算の位相角度θ1を検出すると、位相角度θ1を0度〜360度換算の位相角度θに変換するものである。
更に、逆正接演算装置1Aは、二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値でない場合、二次元ベクトル値(X2,Y2)に45度ベクトル回転処理を実行する45度ベクトル回転部13を有している。
45度ベクトル回転部13は、二次元ベクトル値(X2,Y2)に対して45度ベクトル回転処理を施した後、その二次元ベクトル値を+側のX座標軸(0度軸)を中心に180度反転するものである。その結果、二次元ベクトル値(X2,Y2)を0度〜22.5度内相当の二次元ベクトル値(X3,Y3)に変換するものである。尚、45度ベクトル回転処理は、45度ベクトル回転処理及び180度反転処理を含むものである。
45度ベクトル回転部13は、0度〜22.5度内相当の二次元ベクトル値(X3,Y3)を、ベクトル回転判定部12を通じて二次元ベクトル値(X1,Y1)として逆正接演算部4に入力するものである。
また、ベクトル回転判定部12は、二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値である場合、そのまま、二次元ベクトル値(X2,Y2)を二次元ベクトル値(X1,Y1)として逆正接演算部4に入力するものである。
図4は、90度ベクトル回転部11の90度ベクトル回転処理に関わる変換テーブルのテーブル内容を示す説明図である。
図4に示す変換テーブル20は、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜45度内相当の二次元ベクトル値(X2,Y2)に変換する入力側変換テーブル21を有している。
入力側変換テーブル21は、二次元ベクトル値(X,Y)のX座標側符号を示すX符号21A及びY座標側符号を示すY符号21Bと、二次元ベクトル値(X,Y)のXYの絶対値を比較し、45度以内であるか否かを判定する判定条件21Cを管理している。
更に、入力側変換テーブル21は、これらX符号21A、Y符号21B及び判定条件21Cに応じた二次元ベクトル値(X,Y)の角度範囲21Dを管理している。
また、変換テーブル20は、0度〜360度内相当の二次元ベクトル値(X,Y)から0度〜45度内相当の二次元ベクトル値(X2,Y2)に変換する逆変換テーブル22を有している。
逆変換テーブル22では、90度ベクトル回転処理後の二次元ベクトル値(X2,Y2)22Aと、符号方向D1と、θオフセット値A1とを管理している。
図5は、逆正接演算部4の前処理に関わる動作を示す説明図である。
ベクトル回転判定部12は、図5(A)及び(B)に示すように、0度〜45度内相当の二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値である場合、そのまま、二次元ベクトル値(X2,Y2)を逆正接演算部4に入力する。
そして、逆正接演算部4は、二次元ベクトル値(X2,Y2)を二次元ベクトル値(X1,Y1)として検出すると、この二次元ベクトル値(X1,Y1)に対応した位相角度θ1を位相角度ROM2から出力するものである。
また、ベクトル回転判定部12は、図5(C)に示すように、0度〜45度内相当の二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値でない場合、二次元ベクトル値(X2,Y2)に対して45度ベクトル回転処理を実行する。
45度ベクトル回転部13は、二次元ベクトル値(X2,Y2)に対して45度ベクトル回転処理を施すことで、図5(D)に示すように、二次元ベクトル値に変換するものである。
更に、45度ベクトル回転部13は、二次元ベクトル値(X2,Y2)に対して45度ベクトル回転処理を施した後、その二次元ベクトル値を、図5(E)に示すように、0度軸を中心に180度反転する。そして、45度ベクトル回転部13は、0度〜22.5度内相当の二次元ベクトル値(X3,Y3)に変換するものである。
その結果、逆正接演算部4は、0度〜22.5度の二次元ベクトル値(X3,Y3)を二次元ベクトル値(X1,Y1)として検出すると、この二次元ベクトル値(X1,Y1)に対応した位相角度θ1を位相角度ROM2から出力するものである。
図6は、45度ベクトル回転部13の45度ベクトル回転処理に関わる変換テーブルのテーブル内容を示す説明図である。
図6に示す変換テーブル30は、入力角度範囲31と、45度ベクトル回転処理とベクトル回転判定後の二次元ベクトル値(X1,Y1)32と、符号方向D2と、θオフセット値A2とを対応付けて管理している。
更に、位相角度変換部5は、逆正接演算部4から0〜22.5度換算の位相角度θ1を検出すると、図6に示す変換テーブル30及び図4に示す変換テーブル20を使用して、この位相角度θ1を0度〜360度換算の位相角度θに変換するものである。
位相角度変換部5は、逆正接演算部4から0〜22.5度の位相角度θ1を検出すると、D1*A2+D2*θ1に基づき、45度ベクトル回転部13の45度ベクトル回転処理前の位相角度θ2を算出する。
更に、位相角度変換部5は、位相角度θ2を算出すると、A1+D1*θ2に基づき、90度ベクトル回転部11の90度ベクトル回転処理前の0度〜360度の位相角度θを算出するものである。
つまり、位相角度変換部5は、θ=(A1+A2)+(D1*D2)*θ1に基づき、0度〜22.5度換算の位相角度θ1を0度〜360度換算の位相角度θに変換するものである。
次に、実施例2の逆正接演算装置1Aの動作について説明する。
逆正接演算装置1A内の90度ベクトル回転部11は、0度〜360度内相当の二次元ベクトル値(X,Y)を検出すると、図4に示す変換テーブル20を使用して、この二次元ベクトル値(X,Y)に対する90度ベクトル回転処理を実行する。
90度ベクトル回転部11は、二次元ベクトル値(X,Y)に対して90度ベクトル回転処理を施すことで、0度〜45度内相当の二次元ベクトル値(X2,Y2)に変換する。
また、ベクトル回転判定部12は、0度〜45度内相当の二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値である場合、そのまま、二次元ベクトル値(X2,Y2)を逆正接演算部4に入力する。
逆正接演算部4は、二次元ベクトル値(X2,Y2)を二次元ベクトル値(X1,Y1)として検出すると、二次元ベクトル値(X1,Y1)に対応する位相角度θ1を位相角度ROM2から出力し、この位相角度θ1を位相角度変換部5に入力する。
また、ベクトル回転判定部12は、0度〜45度内相当の二次元ベクトル値(X2,Y2)が0度〜22.5度内相当の二次元ベクトル値でない場合、この二次元ベクトル値(X2,Y2)を45度ベクトル回転部13に入力する。
45度ベクトル回転部13は、二次元ベクトル値(X2,Y2)に対して45度ベクトル回転処理を施した後、この二次元ベクトル値を0度軸を中心に180度反転する。その結果、45度ベクトル回転部13は、二次元ベクトル値(X2,Y2)を0度〜22.5度内相当の二次元ベクトル値(X3,Y3)に変換し、この二次元ベクトル値(X3,Y3)をベクトル回転判定部12に入力する。
ベクトル回転判定部12は、0度〜22.5度内相当の二次元ベクトル値(X3,Y3)を二次元ベクトル値(X1,Y1)として逆正接演算部4に入力する。
そして、逆正接演算部4は、二次元ベクトル値(X1,Y1)に対応する位相角度θ1を位相角度ROM2から出力し、この位相角度θ1を位相角度変換部5に入力する。
そして、位相角度変換部5は、逆正接演算部4から0度〜22.5度の位相角度θ1を検出すると、θ=(A1+A2)+(D1*D2)*θ1に基づき、0度〜22.5度換算の位相角度θ1を0度〜360度換算の位相角度θに変換する。
その結果、逆正接演算装置1Aでは、位相角度変換部5で0度〜360度換算の位相角度θを取得できる。
実施例2では、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に値域抑制して逆正接演算部4に入力する。そして、位相角度ROM2では、0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に対応した位相角度θ1を記憶するだけで済むため、位相角度ROM2の記憶容量を従来に比して大幅に削減できる。その結果、実施例2では、逆正接演算装置1Aの回路規模の小型化を図りながら、部品コスト及び消費電力の抑制を図ることができる。
また、実施例2では、0度〜45度内相当の二次元ベクトル値(X2,Y2)に変換後、二次元ベクトル値(X2,Y2)が0度〜22.5度以内相当の二次元ベクトル値の場合、この二次元ベクトル値に対応した位相角度θ1を位相角度ROM2から出力できる。
更に、実施例2では、0度〜45度内相当の二次元ベクトル値(X2,Y2)に変換後、二次元ベクトル値(X2,Y2)が0度〜22.5度以内相当の二次元ベクトル値でない場合、この二次元ベクトル値に45度ベクトル回転処理を実行する。そして、45度ベクトル回転処理で0度〜22.5度以内相当の二次元ベクトル値に変換することで、二次元ベクトル値に対応した位相角度θ1を位相角度ROM2から出力できる。
また、実施例2では、45度ベクトル回転部13の変換出力である二次元ベクトル値(X3,Y3)を正確に表すと、(X2+Y2,X2−Y2)/√2となる。しかしながら、逆正接結果として必要なのは位相角度だけであるため、1/√2倍は削除できる。その結果、45度ベクトル回転処理では、乗算器を要することなく、加算器1段で実現可能となるため、処理遅延を最小限に抑制できる。
尚、上記実施例2では、90度ベクトル回転部11及び逆正接演算部4間にベクトル回転判定部12及び45度ベクトル回転部13を配置した。しかしながら、90度ベクトル回転部11の前段にベクトル回転判定部12及び45度ベクトル回転部13を配置するようにしても良く、この場合の実施例につき、実施例3として説明する。
図7は、実施例3の逆正接演算装置の内部構成を示すブロック図である。尚、実施例2の逆正接演算装置1Aと同一の構成については同一符号を付すことで、その重複する構成及び動作の説明を省略する。
図7に示す逆正接演算装置1Bは、逆正接演算部4の入力段に90度ベクトル回転部11を配置し、90度ベクトル回転部11の入力段に第1ベクトル回転判定部12Aを配置するものである。更に、逆正接演算装置1Bは、第1ベクトル回転判定部12Aの入力段に45度ベクトル回転部13Aを配置するものである。
図8は、45度ベクトル回転部13Aの45度ベクトル回転処理に関わる動作を示す説明図である。
第1ベクトル回転判定部12Aは、0度〜360度内相当の二次元ベクトル値(X,Y)を検出すると、二次元ベクトル値(X,Y)が最も近い座標軸から22.5度以内相当の二次元ベクトル値であるか否かを判定するものである。尚、第1ベクトル回転判定部12Aは、0度〜360度内相当の二次元ベクトル値(X,Y)を22.5度単位の計16個の角度範囲相当の二次元ベクトル値に識別判定するものである。座標軸は、0度軸、90度軸、180度軸及び270度軸を有している。
二次元ベクトル値(X,Y)が最も近い座標軸から22.5度以内相当の二次元ベクトル値の場合とは、例えば、0度〜22.5度等に相当するものである。具体的には、0度〜22.5度の他に、0度〜360度の内、67.5度〜90度、90度〜112.5度、157.5度〜180度、180度〜202.5度、247.5度〜270度、270度〜292.5度、337.5度〜360度の8種類の角度範囲に相当する。
つまり、二次元ベクトル値(X,Y)が最も近い座標軸から22.5度以内相当の二次元ベクトル値でない場合は、図8(B)に示すように、上記8種類以外の8種類の角度範囲R1〜R8に相当するものである。
また、第1ベクトル回転判定部12Aは、二次元ベクトル値(X,Y)が最も近い座標軸から22.5度以内相当の二次元ベクトル値でない場合、45度ベクトル回転部13Aを通じて、二次元ベクトル値(X,Y)に45度ベクトル回転処理を実行する。
45度ベクトル回転部13Aは、二次元ベクトル値(X,Y)に対して45度ベクトル回転処理を施した後、二次元ベクトル値を、その座標軸を中心に180度反転することで、二次元ベクトル値を図8(C)に示す二次元ベクトル値に変換するものである。
45度ベクトル回転部13Aは、R3(図8(B)参照)相当の二次元ベクトル値に45度ベクトル回転処理を施し、+側のY座標軸(90度軸)を中心に180度反転することで、R3(図8(C)参照)相当の二次元ベクトル値(X5,Y5)に変換する。
その結果、45度ベクトル回転部13Aは、22.5度以内相当の二次元ベクトル値でなくても、この二次元ベクトル値を、図8(D)に示すように、22.5度以内相当の二次元ベクトル値(X5,Y5)に変換するものである。
第1ベクトル回転判定部12Aは、22.5度以内相当の二次元ベクトル値(X,Y)又は(X5,Y5)を検出すると、22.5度以内相当の二次元ベクトル値(X6,Y6)を90度ベクトル回転部11に入力するものである。
90度ベクトル回転部11は、22.5度以内相当の二次元ベクトル値(X6,Y6)に90度ベクトル回転処理を実行して、図8(E)に示すように、0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に変換するものである。そして、90度ベクトル回転部11は、当該二次元ベクトル値(X1,Y1)を逆正接演算部4に入力するものである。
次に、実施例3の逆正接演算装置1Bの動作について説明する。
逆正接演算装置1B内の第1ベクトル回転判定部12Aは、二次元ベクトル値(X,Y)が最も近い座標軸から22.5度以内相当の二次元ベクトル値であるか否かを判定する。
第1ベクトル回転判定部12Aは、二次元ベクトル値(X,Y)が22.5度以内相当の二次元ベクトル値の場合(図8(A)参照)、そのまま、二次元ベクトル値(X,Y)を二次元ベクトル値(X6,Y6)として90度ベクトル回転部11に入力する。
90度ベクトル回転部11は、二次元ベクトル値(X6,Y6)を検出すると、この二次元ベクトル値(X6,Y6)に90度ベクトル回転処理を施し、図8(E)に示す0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に変換する。
更に、90度ベクトル回転部11は、二次元ベクトル値(X1,Y1)を逆正接演算部4に入力する。
また、第1ベクトル回転判定部12Aは、二次元ベクトル値(X,Y)が座標軸から22.5度以内相当の二次元ベクトル値でない場合(図8(B)参照)、二次元ベクトル値(X,Y)に対して45度ベクトル回転処理を実行する。
45度ベクトル回転部13Aは、二次元ベクトル値(X,Y)に対して45度ベクトル回転処理を施し、図8(C)及び(D)に示すように、22.5度以内相当の二次元ベクトル値(X5,Y5)に変換する。そして、45度ベクトル回転部13Aは、22.5度以内相当の二次元ベクトル値(X5,Y5)を第1ベクトル回転判定部12Aに入力する。
第1ベクトル回転判定部12Aは、22.5度以内相当の二次元ベクトル値(X5,Y5)を検出すると、その22.5度以内相当の二次元ベクトル値(X5,Y5)を二次元ベクトル値(X6,Y6)として90度ベクトル回転部11に入力する。
また、逆正接演算部4は、0度〜22.5度内相当の二次元ベクトル値(X1,Y1)を検出すると、この二次元ベクトル値(X1,Y1)に対応する位相角度θ1を位相角度ROM2から出力し、その位相角度θ1を位相角度変換部5に入力する。
位相角度変換部5は、逆正接演算部4から0度〜22.5度換算の位相角度θ1を検出すると、θ=(A1+A2)+(D1*D2)*θ1に基づき、0度〜22.5度換算の位相角度θ1を0度〜360度換算の位相角度θに変換する。
その結果、逆正接演算装置1Bでは、位相角度変換部5で0度〜360度換算の位相角度θを取得できる。
実施例3では、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に値域抑制して逆正接演算部4に入力する。そして、位相角度ROM2では、0度〜22.5度内相当の二次元ベクトル値(X1,Y1)に対応した位相角度θ1を記憶するだけで済むため、位相角度ROM2の記憶容量を従来に比して大幅に削減できる。その結果、実施例3では、逆正接演算装置1Bの回路規模の小型化を図りながら、部品コスト及び消費電力の抑制を図ることができる。
また、実施例3では、二次元ベクトル値(X,Y)が最も近い座標軸から22.5度以内相当の二次元ベクトル値の場合、二次元ベクトル値に90度ベクトル回転処理を実行する。そして、90度ベクトル回転処理を実行して、0度〜22.5度内相当の二次元ベクトル値に変換することで、二次元ベクトル値に対応した位相角度θ1を位相角度ROM2から出力できる。
更に、実施例3では、二次元ベクトル値(X,Y)が最も近い座標軸から22.5度以内相当の二次元ベクトル値でない場合、二次元ベクトル値に45度ベクトル回転処理を実行する。そして、45度ベクトル回転処理を実行後、その二次元ベクトル値に90度ベクトル回転処理を実行して、0度〜22.5度内相当の二次元ベクトル値に変換することで、二次元ベクトル値に対応した位相角度θ1を位相角度ROM2から出力できる。
尚、前述した実施例2では、逆正接演算部4の入力段にベクトル回転判定部12を配置すると共に、そのベクトル回転判定部12の入力段に90度ベクトル回転部11及び45度ベクトル回転部13を配置した。しかしながら、90度ベクトル回転部11の90度ベクトル回転処理及び45度ベクトル回転部13の45度ベクトル回転処理を同時に実行するようにしても良く、この場合の実施例につき、実施例4として説明する。
図9は、実施例4の逆正接演算装置の内部構成を示すブロック図である。尚、実施例2の逆正接演算装置1Aと同一の構成については同一符号を付すことで、その重複する構成及び動作の説明を省略する。
図9に示す逆正接演算装置1Cは、位相角度ROM2、逆正接演算部4及び位相角度変換部5を有し、90度ベクトル回転部11、ベクトル回転判定部12及び45度ベクトル回転部13の代わりに一括ベクトル回転部14を配置した。
一括ベクトル回転部14は、逆正接演算部4の入力段に配置し、0度〜360度内相当の二次元ベクトル値(X,Y)を0〜22.5度内相当の二次元ベクトル値(X7,Y7)に一括変換するものである。
一括ベクトル回転部14は、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に一括変換する条件を管理する一括変換テーブル40を備えている。
位相角度ROM2は、0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に対応する位相角度θ1を管理している。
図10は、一括変換テーブル40のテーブル内容を示す説明図である。
図10に示す一括変換テーブル40は、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に変換する入力側変換テーブル41を有している。
入力側変換テーブル41は、二次元ベクトル値(X,Y)のX座標側符号を示すX符号41A及びY座標側符号を示すY符号41Bと、二次元ベクトル値(X,Y)のXYを比較し、判定条件41Cとを管理している。
尚、判定条件41Cは、45度以内であるか否かを判定する45度判定条件として、「X<Y」を使用し、22.5度以内であるか否かを判定する22.5度判定条件として、「5.0X<12.0Y」を使用する。尚、「5.0X<12.0Y」は、約22.7度以内であるか否かを判定する判定条件であるが、22.5度と近似のため、説明の便宜上、22.5度以内であるか否かを判定する判定条件として使用するものとする。
また、入力側変換テーブル41は、X符号41A、Y符号41B及び判定条件41Cに応じた二次元ベクトル値(X,Y)の角度範囲41Dを管理している。
また、一括変換テーブル40は、0度〜360度内相当の二次元ベクトル値(X,Y)から0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に変換する逆変換テーブル42を有している。
更に、逆変換テーブル42は、一括ベクトル変換処理後の二次元ベクトル値(X7,Y7)42Aと、符号方向D3と、θオフセット値A3とを管理している。
一括ベクトル回転部14は、0度〜360度内相当の二次元ベクトル値(X,Y)を検出すると、一括変換テーブル40の判定条件41Cに基づき、二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に変換するものである。
逆正接演算部4は、0度〜22.5度内相当の二次元ベクトル値(X7,Y7)を検出すると、二次元ベクトル値(X7,Y7)に対応する位相角度θ1を位相角度ROM2から出力するものである。
また、位相角度変換部5は、位相角度θ1を検出すると、図10に示す一括変換テーブル40を使用して、θ=A3+D3*θ1に基づき、0度〜22.5度換算の位相角度θ1を0度〜360度換算の位相角度θに変換するものである。
次に、実施例4の逆正接演算装置1Cの動作について説明する。
図9に示す逆正接演算装置1C内の一括ベクトル回転部14は、0度〜360度内相当の二次ベクトル値(X,Y)を検出する。
一括ベクトル回転部14は、一括変換テーブル40内のX符号41A、Y符号41B及び判定条件41Cに基づき、二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に変換する。
一括ベクトル回転部14は、0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に変換すると、この二次元ベクトル値(X7,Y7)を逆正接演算部4に入力する。
逆正接演算部4は、0度〜22.5度内相当の二次元ベクトル値(X7,Y7)を検出すると、二次元ベクトル値(X7,Y7)に対応する位相角度θ1を位相角度ROM2から出力する。
位相角度変換部5は、逆正接演算部4から0度〜22.5度の位相角度θ1を検出すると、図10に示す変換テーブル40を使用してA3+D3*θ1に基づき、位相角度θ1を一括ベクトル回転処理前の0度〜360度の位相角度θに変換する。
その結果、逆正接演算装置1Cでは、位相角度変換部5で0度〜360度換算の位相角度θを取得できる。
実施例4では、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に値域抑制して逆正接演算部4に入力する。そして、位相角度ROM2では、0度〜22.5度内相当の二次元ベクトル値(X7,Y7)に対応した位相角度θ1を記憶するだけで済むため、位相角度ROM2の記憶容量を従来に比して大幅に削減できる。その結果、実施例4では、逆正接演算装置1Cの回路規模の小型化を図りながら、部品コスト及び消費電力の抑制を図ることができる。
また、実施例4では、一括ベクトル回転部14を通じて45度ベクトル回転処理及び90度ベクトル回転処理を同時に実行することになるため、その処理速度を大幅に向上できる。
図11は、位相角度ROM2に関わる記憶容量の削減効果を示す説明図である。
図11では、0度〜45度相当の二次元ベクトル値に対応する位相角度を単純なテーブル引きで実現する場合の位相角度ROMに比較して、一括変換テーブル40を使用した場合、その位相角度ROM2の記憶容量を半分程度削減できることを示している。
尚、一括変換テーブル40を使用した場合、図11(B)に示すように、45度ベクトル回転で絶対値が√2倍となるため、X座標軸(0度軸)の最大値が増加している。しかしながら、1/√2倍又は精度を犠牲にして、1/2倍や1/2+1/8倍等の絶対値の削減処理を実行することで、図11(B)に示す斜線部分の記憶容量を削減し、X座標軸側の最大値を図11(A)と同じにすることもできる。
尚、前述した実施例2では、逆正接演算部4の入力段に45度ベクトル回転部13を配置した。しかしながら、45度ベクトル回転部13及び逆正接演算部4間に逆正接関数値(atan)を使用したベクトル回転部を配置するようにしても良く、この場合の実施例につき、実施例5として説明する。
図12は、実施例5の逆正接演算装置の内部構成を示すブロック図である。尚、実施例2の逆正接演算装置1Aと同一の構成については同一符号を付すことで、その重複する構成及び動作の説明を省略する。
図12に示す逆正接演算装置1Dは、90度ベクトル回転部11、ベクトル回転判定部12、45度ベクトル回転部13及び逆正接演算部4を有している。
更に、逆正接演算装置1Dは、ベクトル回転判定部12及び逆正接演算部4間に、逆正接関数型ベクトル回転部15及び逆正接関数型ベクトル回転判定部16を配置している。
また、逆正接関数型ベクトル回転判定部16は、0度〜22.5度内相当の二次元ベクトル値(X8,Y8)が逆正接関数atan(1/2)÷2の角度相当の二次元ベクトル値であるか否かを判定するものである。尚、逆正接関数atan(1/2)を26.6度とした場合、逆正接関数atan(1/2)÷2では13.3度ということになる。
逆正接関数型ベクトル回転判定部16は、二次元ベクトル値(X8,Y8)が逆正接関数atan(1/2)÷2の角度以内相当の二次元ベクトル値である場合、そのまま、この二次元ベクトル値を逆正接演算部4に入力するものである。
また、逆正接関数型ベクトル回転判定部16は、二次元ベクトル値(X8,Y8)が逆正接関数atan(1/2)÷2の角度以内相当の二次元ベクトル値でない場合、二次元ベクトル値を逆正接関数型ベクトル回転部15に入力するものである。
逆正接関数型ベクトル回転部15は、0度〜22.5度内相当の二次元ベクトル値(X8,Y8)の逆正接関数atan(1/2)(n=整数)の値を回転角度とする。
更に、逆正接関数型ベクトル回転部15は、この回転角度で二次元ベクトル値(X8,Y8)にベクトル回転処理を施し、二次元ベクトル値(X8,Y8)をatan(1/2)÷2の角度以内の二次元ベクトル値(X9,Y9)に変換するものである。
更に、逆正接関数型ベクトル回転部15は、逆正接関数型ベクトル回転判定部16を通じて二次元ベクトル値(X9,Y9)を二次元ベクトル値(X10,Y10)として逆正接演算部4に入力するものである。
また、位相角度ROM2Aは、0度〜atan(1/2)÷2の角度内相当の二次元ベクトル値(X10,Y10)に対応する位相角度θ1を管理するものである。
つまり、位相角度ROM2Aは、実施例1乃至4の位相角度ROM2では0度〜22.5度内相当の二次元ベクトル値に対応する位相角度θ1を記憶している。これに対し、位相角度ROM2Aでは、0度〜13.3度内相当の二次元ベクトル値(X10,Y10)に対応する位相角度θ1を記憶しているため、その記憶容量を大幅に削減できるものである。
次に、実施例5の逆正接演算装置1Dの動作について説明する。尚、説明の便宜上、atan(1/2)÷2で13.3度とする。
逆正接関数型ベクトル回転判定部16は、ベクトル回転判定部12を通じて0度〜22.5度内相当の二次元ベクトル値(X8,Y8)を検出すると、二次元ベクトル値(X8,Y8)が13.3度以内相当の二次元ベクトル値であるか否かを判定する。
逆正接関数型ベクトル回転判定部16は、二次元ベクトル値(X8,Y8)が13.3度以内相当の二次元ベクトル値である場合、0度〜13.3度内相当の二次元ベクトル値と判断する。
更に、逆正接関数型ベクトル回転判定部16は、そのまま、二次元ベクトル値(X8,Y8)を二次元ベクトル値(X10,Y10)として逆正接演算部4に入力する。
また、逆正接関数型ベクトル回転判定部16は、二次元ベクトル値(X8,Y8)が13.3度以内相当の二次元ベクトル値でない場合、二次元ベクトル値(X8,Y8)を0度〜13.3度内相当の二次元ベクトル値に変換する。
逆正接関数型ベクトル回転部15は、例えば、逆正接関数atan(1/2)の値を回転角度とし、この回転角度で二次元ベクトル値(X8,Y8)を0度〜13.3度内相当の二次元ベクトル値(X9,Y9)に変換する。
更に、逆正接関数型ベクトル回転部15は、二次元ベクトル値(X9,Y9)を逆正接関数型ベクトル回転判定部16に入力する。
逆正接関数型ベクトル回転判定部16は、二次元ベクトル値(X9,Y9)を二次元ベクトル値(X10,Y10)として逆正接演算部4に入力する。
逆正接演算部4は、二次元ベクトル値(X10,Y10)を検出すると、二次元ベクトル値(X10,Y10)に対応する位相角度θ1を位相角度ROM2Aから出力し、この位相角度θ1を位相角度変換部5に入力する。
位相角度変換部5は、逆正接演算部4から0度〜13.3度の位相角度θ1を検出すると、(A1+A2)+(D1*D2)*θ1及びatan(1/2)の逆変換用数値に基づき、0度〜13.3度換算の位相角度θ1を0度〜360度換算の位相角度θに変換する。
その結果、逆正接演算装置1Dでは、位相角度変換部5で0度〜360度換算の位相角度θを取得できる。
実施例5では、0度〜360度内相当の二次元ベクトル値(X,Y)を0度〜13.3度内相当の二次元ベクトル値(X10,Y10)に値域抑制して逆正接演算部4に入力する。そして、位相角度ROM2Aでは、0度〜13.3度内相当の二次元ベクトル値(X10,Y10)に対応した位相角度θ1を記憶するだけで済むため、位相角度ROM2Aの記憶容量を従来に比して大幅に削減できる。その結果、実施例5では、逆正接演算装置1Dの回路規模の小型化を図りながら、部品コスト及び消費電力の抑制を図ることができる。
また、実施例5では、0度〜22.5度内相当の二次元ベクトル値(X8,Y8)に変換後、二次元ベクトル値(X8,Y8)が0度〜13.3度以内相当の二次元ベクトル値の場合、この二次元ベクトル値(X10,Y10)に対応した位相角度θ1を位相角度ROM2Aから出力できる。
更に、実施例5では、0度〜22.5度内相当の二次元ベクトル値(X8,Y8)に変換後、二次元ベクトル値が0度〜13.3度以内相当の二次元ベクトル値でない場合、この二次元ベクトル値にatan(1/2)の回転角度のベクトル回転処理を実行する。そして、atan(1/2)の回転角度のベクトル回転処理で0度〜13.3度以内相当の二次元ベクトル値に変換することで、二次元ベクトル値に対応した位相角度θ1を位相角度ROM2Aから出力できる。
また、実施例5では、逆正接関数型ベクトル回転部15の変換出力である二次元ベクトル値(X9,Y9)を正確に表すと、(2*X8+Y8,−X8+2*Y8)/√5となる。しかしながら、逆正接結果として必要なのは位相角度だけであるため、1/√5倍は削除できる。その結果、逆正接関数型ベクトル回転処理では、乗算器を要することなく、シフト及び加算だけの簡単な回路構成で回転処理を実現できる。同様に、回路規模及び演算遅延が適切な値になるまでベクトル回転による値域削減を繰り返すことができる。
また、上記実施例5では、逆正接関数型ベクトル回転部15のatan(1/2)の係数nを大きくすることで、回転角度を小さくすることができるため、その分、逆正接演算部4の入力値域を抑制できる。
尚、上記実施例5では、逆正接関数型ベクトル回転部15を一段としたが、逆正接関数型ベクトル回転部15を多段にし、逆正接演算部4の入力値域をより一層抑制し、その結果、位相角度ROM2Aのデータ容量を削減するようにしても良い。
また、上記実施例5では、ベクトル回転判定部12の出力段に逆正接関数型ベクトル回転部15及び逆正接関数型ベクトル回転判定部16を配置した。しかしながら、例えば、ベクトル回転判定部12及び45度ベクトル回転部13の入力段に逆正接関数型ベクトル回転部15及び逆正接関数型ベクトル回転判定部16を配置するようにしても、同様の効果が得られることは言うまでもない。
上記実施例4では、説明の便宜上、5.0X1<12.0Y1の判定条件を使用して22.7度に近似した22.5度を閾値判定するようにしたが、厳密に考えると、同判定条件を使用した場合、22.7度を閾値判定することになる。従って、同判定条件を使用した場合、位相角度ROM2も0度〜22.7度内相当の二次元ベクトル値に設定するものである。
また、本実施例では、例えば、0度〜22.5度の範囲で小数点単位までの高精度な閾値判定を実現し、この閾値判定に基づき、逆正接演算部4の逆正接演算結果を出力した。しかしながら、小数点までの高精度な閾値判定を要することなく、精度1度単位にすると、0度〜22.5度の場合、22個の閾値判定で済む。この場合、X1*a>Y1*b:(a=1144,b=65536)の条件を使用し、この条件が成立した場合、二次元ベクトル値で約1度以下と閾値判定できるものである。尚、係数a及びbの数値を変えることで、2度以上にも順次対応できることは言うまでもない。
また、上記実施例1乃至5では、位相変調処理に使用する逆正接演算装置について説明したが、例えば、高速通信処理、ディジタル画像処理やファジー制御処理に関わる逆正接演算処理に有用であることは言うまでもない。
以上、上記実施例について説明したが、本実施例によって本願の技術的思想の範囲が限定されるものではなく、特許請求の範囲に記載した技術的思想の範囲を逸脱しない限り、各種様々な実施例が実施可能であることは言うまでもない。また、本実施例に記載した効果は、これに限定されるものではない。
また、本実施例で説明した各種処理の内、自動的に行われるものとして説明した処理の全部又は一部を手動で行うことも可能であることは勿論のこと、その逆に、手動で行われるものとして説明した処理の全部又は一部を自動で行うことも可能であることは言うまでもない。また、本実施例で説明した処理手順、制御手順、具体的名称、各種データやパラメータを含む情報についても、特記した場合を除き、適宜変更可能であることは言うまでもない。
また、図示した各装置の各構成要素は機能概念的に記載したものであって、必ずしも物理的に図示のように構成されるものではなく、その各装置の具体的な態様は図示のものに限縮されるものでは到底ないことは言うまでもない。
さらに、各装置で行われる各種処理機能は、CPU(Central Processing Unit)、(又はMPU(Micro Processing Unit)、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上、又は同CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を予め記憶した位相角度記憶部と、
0度〜360度内相当の二次元ベクトル値にベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換するベクトル回転部と、
前記ベクトル回転部で変換した0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力する逆正接演算部と、
前記逆正接演算部にて出力した位相角度を0度〜360度換算の位相角度に変換出力する位相角度変換部と
を有することを特徴とする逆正接演算装置。
(付記2)前記ベクトル回転部は、
前記0度〜360度内相当の二次元ベクトル値に90度ベクトル回転処理を施し、0度〜45度内相当の二次元ベクトル値に変換する90度ベクトル回転部と、
前記90度ベクトル回転部で変換した0度〜45度内相当の二次元ベクトル値が略22.5度以内相当の二次元ベクトル値であるか否かを判定する略22.5度ベクトル判定部と、
前記略22.5度ベクトル判定部にて二次元ベクトル値が略22.5度以内相当の二次元ベクトル値でない場合、当該二次元ベクトル値に略45度ベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換する略45度ベクトル回転部と
を有し、
前記略22.5度ベクトル判定部にて前記二次元ベクトル値が略22.5度以内相当の二次元ベクトル値である場合、前記90度ベクトル回転部からの0度〜略22.5度内相当の二次元ベクトル値を変換出力することを特徴とする付記1記載の逆正接演算装置。
(付記3)前記略45度ベクトル回転部は、
前記二次元ベクトル値に45度ベクトル回転処理を施した後、ベクトル座標軸の0度軸を中心に、当該二次元ベクトル値を反転することで、0度〜略22.5度内相当の二次元ベクトル値に変換することを特徴とする付記2記載の逆正接演算装置。
(付記4)前記略45度ベクトル回転部で変換した0度〜略22.5度内相当の二次元ベクトル値が、逆正接関数値atan(1/2)の値である第1角度の半分以内相当の二次元ベクトル値であるか否かを判定する角度ベクトル判定部と、
前記角度ベクトル判定部にて二次元ベクトル値が第1角度の半分以内相当の二次元ベクトル値でない場合、逆正接関数値atan(1/2)のn乗(n=整数)の値である第2角度で当該二次元ベクトル値にベクトル回転処理を施し、0度〜第1角度半分以内相当の二次元ベクトル値に変換する逆正接関数ベクトル回転部と
を有し、
前記位相角度記憶部は、
前記0度〜第1角度半分相当の二次元ベクトル値に対応する位相角度を予め記憶し、
前記逆正接演算部は、
前記ベクトル回転部で変換した0度〜第1角度半分内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力することを特徴とする付記2又は3記載の逆正接演算装置。
(付記5)前記ベクトル回転部は、
前記0度〜360度内相当の二次元ベクトル値が、ベクトル座標上の0度軸、90度軸、180度軸又は270度軸から略22.5度以内相当の二次元ベクトル値であるか否かを判定する略22.5度以内判定部と、
前記略22.5度以内判定部にて前記二次元ベクトル値が略22.5度以内相当の二次元ベクトル値である場合、当該二次元ベクトル値に90度ベクトル回転処理を施し、0度〜略22.5度以内相当の二次元ベクトル値に変換する90度ベクトル回転部と、
前記略22.5度以内判定部にて前記二次元ベクトル値が略22.5度以内相当の二次元ベクトル値でない場合、当該二次元ベクトル値に略45度ベクトル回転処理を施し、略22.5度以内相当の二次元ベクトル値に変換して、この二次元ベクトル値を前記90度ベクトル回転部に入力する略45度ベクトル回転部と
を有することを特徴とする付記1記載の逆正接演算装置。
(付記6)前記略45度ベクトル回転部は、
前記二次元ベクトル値に45度ベクトル回転処理を施した後、前記0度軸、90度軸、180度軸又は270度軸の内、当該二次元ベクトル値から最も近い軸を中心に、当該二次元ベクトル値を反転することで、0度〜略22.5度内相当の二次元ベクトル値に変換することを特徴とする付記5記載の逆正接演算装置。
(付記7)前記90度ベクトル回転部で変換した0度〜略22.5度内相当の二次元ベクトル値が、逆正接関数値atan(1/2)の値である第1角度の半分以内相当の二次元ベクトル値であるか否かを判定する角度ベクトル判定部と、
前記ベクトル角度判定部にて二次元ベクトル値が第1角度の半分以内相当の二次元ベクトル値でない場合、逆正接関数値atan(1/2)のn乗(n=整数)の値である第2角度で当該二次元ベクトル値にベクトル回転処理を施し、0度〜第1角度半分以内相当の二次元ベクトル値に変換する逆正接関数ベクトル回転部と
を有し、
前記位相角度記憶部は、
前記0度〜第1角度半分相当の二次元ベクトル値に対応する位相角度を予め記憶し、
前記逆正接演算部は、
前記ベクトル回転部で変換した0度〜第1角度半分内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力することを特徴とする付記5又は6記載の逆正接演算装置。
(付記8)前記略22.5度は、
22.7度に相当することを特徴とする付記1〜7の何れか一つに記載の逆正接演算装置。
(付記9)0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を位相角度記憶部に記憶した記憶手順と、
0度〜360度内相当の二次元ベクトル値にベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換するベクトル回転手順と、
前記ベクトル回転手順で変換した0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力する逆正接演算手順と、
前記逆正接演算手順にて出力した位相角度を0度〜360度換算の位相角度に変換出力する位相角度変換手順と
を含むプログラムをコンピュータ装置に実行させることを特徴とする逆正接演算プログラム。
(付記10)前記ベクトル回転手順は、
前記0度〜360度内相当の二次元ベクトル値に90度ベクトル回転処理を施し、0度〜45度内相当の二次元ベクトル値に変換する90度ベクトル回転手順と、
前記90度ベクトル回転手順で変換した0度〜45度内相当の二次元ベクトル値が略22.5度以内相当の二次元ベクトル値であるか否かを判定する略22.5度ベクトル判定手順と、
前記略22.5度ベクトル判定手順にて二次元ベクトル値が略22.5度以内相当の二次元ベクトル値でない場合、当該二次元ベクトル値に略45度ベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換する略45度ベクトル回転手順と
を含み、
前記略22.5度ベクトル判定手順にて前記二次元ベクトル値が略22.5度以内相当の二次元ベクトル値である場合、前記90度ベクトル回転手順での0度〜略22.5度内相当の二次元ベクトル値を変換出力する
ことを特徴とする付記9記載の逆正接演算プログラム。
1 逆正接演算装置
1A 逆正接演算装置
1B 逆正接演算装置
1C 逆正接演算装置
1D 逆正接演算装置
2 位相角度ROM
2A 位相角度ROM
3 ベクトル回転部
4 逆正接演算部
5 位相角度変換部
11 90度ベクトル回転部
12 ベクトル回転判定部
12A 第1ベクトル回転判定部
13 45度ベクトル回転部
13A 45度ベクトル回転部
14 一括ベクトル回転部
15 逆正接関数型ベクトル回転部
16 逆正接関数型ベクトル回転判定部
20 変換テーブル
21 入力側変換テーブル
22 逆変換テーブル
30 変換テーブル
40 一括変換テーブル
41 入力側変換テーブル
42 逆変換テーブル

Claims (7)

  1. 0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を予め記憶した位相角度記憶部と、
    0度〜360度内相当の二次元ベクトル値にベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換するベクトル回転部と、
    前記ベクトル回転部で変換した0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力する逆正接演算部と、
    前記逆正接演算部にて出力した位相角度を0度〜360度換算の位相角度に変換出力する位相角度変換部と
    を有することを特徴とする逆正接演算装置。
  2. 前記ベクトル回転部は、
    前記0度〜360度内相当の二次元ベクトル値に90度ベクトル回転処理を施し、0度〜45度内相当の二次元ベクトル値に変換する90度ベクトル回転部と、
    前記90度ベクトル回転部で変換した0度〜45度内相当の二次元ベクトル値が略22.5度以内相当の二次元ベクトル値であるか否かを判定する略22.5度ベクトル判定部と、
    前記略22.5度ベクトル判定部にて二次元ベクトル値が略22.5度以内相当の二次元ベクトル値でない場合、当該二次元ベクトル値に略45度ベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換する略45度ベクトル回転部と
    を有し、
    前記略22.5度ベクトル判定部にて前記二次元ベクトル値が略22.5度以内相当の二次元ベクトル値である場合、前記90度ベクトル回転部からの0度〜略22.5度内相当の二次元ベクトル値を変換出力することを特徴とする請求項1記載の逆正接演算装置。
  3. 前記略45度ベクトル回転部は、
    前記二次元ベクトル値に45度ベクトル回転処理を施した後、ベクトル座標軸の0度軸を中心に、当該二次元ベクトル値を反転することで、0度〜略22.5度内相当の二次元ベクトル値に変換することを特徴とする請求項2記載の逆正接演算装置。
  4. 前記略45度ベクトル回転部で変換した0度〜略22.5度内相当の二次元ベクトル値が、逆正接関数値atan(1/2)の値である第1角度の半分以内相当の二次元ベクトル値であるか否かを判定する角度ベクトル判定部と、
    前記角度ベクトル判定部にて二次元ベクトル値が第1角度の半分以内相当の二次元ベクトル値でない場合、逆正接関数値atan(1/2)のn乗(n=整数)の値である第2角度で当該二次元ベクトル値にベクトル回転処理を施し、0度〜第1角度半分以内相当の二次元ベクトル値に変換する逆正接関数ベクトル回転部と
    を有し、
    前記位相角度記憶部は、
    前記0度〜第1角度半分相当の二次元ベクトル値に対応する位相角度を予め記憶し、
    前記逆正接演算部は、
    前記ベクトル回転部で変換した0度〜第1角度半分内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力することを特徴とする請求項2又は3記載の逆正接演算装置。
  5. 前記ベクトル回転部は、
    前記0度〜360度内相当の二次元ベクトル値が、ベクトル座標上の0度軸、90度軸、180度軸又は270度軸から略22.5度以内相当の二次元ベクトル値であるか否かを判定する略22.5度以内判定部と、
    前記略22.5度以内判定部にて前記二次元ベクトル値が略22.5度以内相当の二次元ベクトル値である場合、当該二次元ベクトル値に90度ベクトル回転処理を施し、0度〜略22.5度以内相当の二次元ベクトル値に変換する90度ベクトル回転部と、
    前記略22.5度以内判定部にて前記二次元ベクトル値が略22.5度以内相当の二次元ベクトル値でない場合、当該二次元ベクトル値に略45度ベクトル回転処理を施し、略22.5度以内相当の二次元ベクトル値に変換して、この二次元ベクトル値を前記90度ベクトル回転部に入力する略45度ベクトル回転部と
    を有することを特徴とする請求項1記載の逆正接演算装置。
  6. 前記略22.5度は、
    22.7度に相当することを特徴とする請求項1〜5の何れか一つに記載の逆正接演算装置。
  7. 0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を位相角度記憶部に記憶した記憶手順と、
    0度〜360度内相当の二次元ベクトル値にベクトル回転処理を施し、0度〜略22.5度内相当の二次元ベクトル値に変換するベクトル回転手順と、
    前記ベクトル回転手順で変換した0度〜略22.5度内相当の二次元ベクトル値に対応する位相角度を前記位相角度記憶部から出力する逆正接演算手順と、
    前記逆正接演算手順にて出力した位相角度を0度〜360度換算の位相角度に変換出力する位相角度変換手順と
    を含むプログラムをコンピュータ装置に実行させることを特徴とする逆正接演算プログラム。
JP2009158913A 2009-07-03 2009-07-03 逆正接演算装置及び逆正接演算プログラム Expired - Fee Related JP4757328B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009158913A JP4757328B2 (ja) 2009-07-03 2009-07-03 逆正接演算装置及び逆正接演算プログラム
US12/813,044 US8549056B2 (en) 2009-07-03 2010-06-10 Apparatus and program for arctangent calculation
EP10165899A EP2275923A3 (en) 2009-07-03 2010-06-14 Apparatus and program for arctangent calculation
KR1020100063451A KR101114785B1 (ko) 2009-07-03 2010-07-01 아크탄젠트 연산 장치 및 컴퓨터 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009158913A JP4757328B2 (ja) 2009-07-03 2009-07-03 逆正接演算装置及び逆正接演算プログラム

Publications (2)

Publication Number Publication Date
JP2011014025A JP2011014025A (ja) 2011-01-20
JP4757328B2 true JP4757328B2 (ja) 2011-08-24

Family

ID=42797320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009158913A Expired - Fee Related JP4757328B2 (ja) 2009-07-03 2009-07-03 逆正接演算装置及び逆正接演算プログラム

Country Status (4)

Country Link
US (1) US8549056B2 (ja)
EP (1) EP2275923A3 (ja)
JP (1) JP4757328B2 (ja)
KR (1) KR101114785B1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014238331A (ja) * 2013-06-07 2014-12-18 株式会社リコー 角度検出装置および角度検出方法
US20150178047A1 (en) * 2013-12-24 2015-06-25 GM Global Technology Operations LLC Method of fast arctangent calculation pre and post processing
EP3260977B1 (en) * 2016-06-21 2019-02-20 Stichting IMEC Nederland A circuit and a method for processing data
KR101806843B1 (ko) 2016-11-15 2017-12-08 숭실대학교산학협력단 아크탄젠트 계산 방법, 이를 수행하기 위한 기록 매체 및 장치
CN111984226B (zh) * 2020-08-26 2024-02-09 南京大学 一种基于双曲cordic的立方根求解装置及求解方法
CN115878071A (zh) 2021-09-29 2023-03-31 恩智浦美国有限公司 Iq到相位转换的方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6029409B2 (ja) 1978-02-03 1985-07-10 日本電気株式会社 三角関数計算装置
US4460958A (en) 1981-01-26 1984-07-17 Rca Corporation Window-scanned memory
JPS58178478A (ja) 1982-04-12 1983-10-19 Mitsubishi Electric Corp 逆三角関数演算装置
US4710892A (en) * 1984-10-29 1987-12-01 Rca Corporation Phase calculation circuitry in digital television receiver
US4893316A (en) * 1985-04-04 1990-01-09 Motorola, Inc. Digital radio frequency receiver
US4841552A (en) * 1988-04-04 1989-06-20 Unisys Corporation Digital phase shifter
JP2610185B2 (ja) 1989-03-07 1997-05-14 株式会社小松製作所 逆関数の演算装置および演算方法
JPH04111019A (ja) 1990-08-30 1992-04-13 Sony Corp 逆正接演算回路
JPH05347643A (ja) 1992-06-12 1993-12-27 Toshiba Corp 位相比較器
US5648924A (en) * 1995-04-18 1997-07-15 Motorola, Inc. Method and apparatus for finding arctangents
JP3797398B2 (ja) 1997-05-02 2006-07-19 ソニー株式会社 演算装置および演算方法
US6385633B1 (en) * 1998-06-30 2002-05-07 Texas Instruments Incorporated Method and apparatus for computing complex phase
JP2945003B1 (ja) * 1998-09-25 1999-09-06 日本電信電話株式会社 逆正接演算回路
JP3201364B2 (ja) * 1998-11-20 2001-08-20 日本電気株式会社 角度演算回路
US6470367B1 (en) * 1999-12-08 2002-10-22 Chung-Shan Institute Of Science Apparatus and method for implementing an inverse arctangent function using piecewise linear theorem to simplify
JP2002009856A (ja) 2000-06-20 2002-01-11 Toyo Commun Equip Co Ltd ディジタル信号処理における逆正接演算回路
US6466958B1 (en) * 2000-09-12 2002-10-15 Interstate Electronics Corporation, A Division Of L3 Communications Corporation Parallel frequency searching in an acquisition correlator
JP4230685B2 (ja) 2001-07-11 2009-02-25 株式会社ケンウッド ディジタル信号処理における逆正接演算回路
DE10164462B4 (de) * 2001-12-20 2007-04-26 IHP GmbH - Innovations for High Performance Microelectronics/ Institut für innovative Mikroelektronik GmbH CORDIC-Einheit
JP2007520009A (ja) * 2004-01-28 2007-07-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複素位相回転に対するcordicアルゴリズムの実施
US8009775B2 (en) 2005-03-11 2011-08-30 Qualcomm Incorporated Automatic frequency control for a wireless communication system with multiple subcarriers

Also Published As

Publication number Publication date
US8549056B2 (en) 2013-10-01
EP2275923A2 (en) 2011-01-19
US20110004645A1 (en) 2011-01-06
KR20110003273A (ko) 2011-01-11
KR101114785B1 (ko) 2012-03-13
EP2275923A3 (en) 2011-04-27
JP2011014025A (ja) 2011-01-20

Similar Documents

Publication Publication Date Title
JP4757328B2 (ja) 逆正接演算装置及び逆正接演算プログラム
JP6225687B2 (ja) データ処理装置、およびデータ処理方法
JPH05241794A (ja) 超越関数近似装置及びその方法
JP2007520009A (ja) 複素位相回転に対するcordicアルゴリズムの実施
TW201030607A (en) Instruction and logic for performing range detection
CN108733349B (zh) 一种基于定点数的三角函数运算电路
CN111752531B (zh) 整数除法装置和马达控制装置
JP5079346B2 (ja) 波形補正装置および波形補正方法
JPH0480815A (ja) 絶対値演算回路
KR100959215B1 (ko) 속도 검출 장치
JP5733379B2 (ja) プロセッサおよび演算方法
Anastasia et al. Linear image processing operations with operational tight packing
CN115659110A (zh) 三角函数计算方法、装置、设备及存储介质
JP2013246772A (ja) 逆正接演算回路および逆正接演算方法
JP4696920B2 (ja) Dds信号発生装置
JP2009245407A (ja) 複素数の積和演算装置および積和演算方法
CN117235423A (zh) 一种利用cordic实现角度计算的方法
Iwanaga et al. Development of Fixed-point Trigonometric Function Library for High-level Synthesis
Fan et al. Efficient CORDIC Iteration Design of LiDAR Point Cloud Map Reconstruction Technology
WO2023100372A1 (ja) データ処理装置、データ処理方法、及びデータ処理プログラム
US20120102081A1 (en) Low-latency arc-tangent calculation structure and calculation method thereof
Pendem et al. Interveled Double Rotation Cordic architecture for improvement of Performance.
JP2009267606A (ja) 演算器
JP2010092412A (ja) 比較方法および比較器
JP2004172794A (ja) 複合三角関数演算器及び位相回転演算装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110531

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees