説明

角度計算方法及び関連回路

【課題】小範囲の逆正接テーブルと簡単なシフター及び減算回路で複素数の角度を求める方法及び関連回路を提供する。
【解決手段】方法は、複素数データを受信する段階と、上記複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する段階と、除算結果を生成するために、上記第一値と第二値の大小によって被除数と除数を選択する段階と、所定角度テーブルで上記除算結果を検索し、検索結果を生成する段階と、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する段階を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は角度計算方法及び関連回路に関し、特に小範囲の逆正接テーブルと簡単なシフター及び減算回路で複素数の角度を求める方法及び関連回路に関する。
【背景技術】
【0002】
回路設計の分野では、CORDIC(座標回転デジタルコンピュータ)は周知の回路素子であって、ベクトルの回転角度または複素数の実部と虚部間の夾角を求めるために用いられる。CORDICは乗算器と加算器からなる簡単な回路によって構成されるため、低電力と低コストの特長を有する。しかし、再帰的アルゴリズムによる近似法を用いるCORDICは演算速度が芳しくなく、UWB(超広帯域)などの高速回路設計には適用できない。
【0003】
そのほか、テーブル検索法で複素数の実部と虚部の夾角を求める方法も周知されている。この方法は、複素数の虚部を実部で割ってから、その商に対応する角度を逆正接テーブルから検索する。例えば、入力複素数データIN_COMの実部と虚部をそれぞれX、Yとし、即ちIN_COM=X+jYとすれば、データに対応する角度ANGはY/Xの逆正接値となり、即ちANG=arctan(Y/X)である。この角度の象限は実部Xと虚部Yの正負によって異なるため、回路設計のときは、Y/Xの第一象限にある角度、即ち絶対値|Y/X|に対応する角度を求め、更に実部Xと虚部Yの正負に基づいて検索すれば、実部Xと虚部Yに対応する実際の角度が得られる。この場合、回路に必要な逆正接テーブルの範囲は0〜∞のみですむ。なお、arctan(∞)=π/2であって、arctan(32)とπ/2の誤差が2%、arctan(64)とπ/2の誤差が1%しかないため、回路設計時に逆正接テーブルの上限を∞から32か64(即ち25か26)に近似することが多い。一方、Y/Xが小さい場合(例えばY/X<2-2またはY/X<2-3)、その逆正接値は本来の値とほぼ一致する(即ちarctan(Y/X)=Y/X)。したがって、上記現象を利用して近似すれば、回路に必要な逆正接テーブルの範囲は0〜∞のみですむ。
【0004】
しかし、それにもかかわらず、従来の回路では範囲が0.25-32の逆正接テーブルが記憶されているため、多大な回路面積が必要となる。また、テーブル検索法は演算速度が速いが、除算器または逆数検索と乗算器を合わせて演算を行うため、電力消費が高いという欠点もある。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は上記従来の問題を解決するため、角度計算方法及び関連回路を提供することを課題とする。
【課題を解決するための手段】
【0006】
本発明は複素数の実部と虚部の夾角を計算する方法を提供する。該方法は、複素数データを受信する段階と、上記複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する段階と、除算結果を生成するために、上記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を生成する段階と、所定角度テーブルで上記除算結果を検索し、検索結果を生成する段階と、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する段階を含む。
【0007】
本発明は更に、複素数の実部と虚部の夾角を計算する回路を提供する。該回路は、複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する判断ユニットと、判断ユニットに結合され、除算結果を生成するために、上記第一値と第二値の大小によって被除数と除数を選択する除算ユニットと、除算ユニットに結合され、所定角度テーブルで上記除算結果を検索し、検索結果を生成するテーブル検索ユニットと、テーブル検索ユニットと判断ユニットに結合され、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する調整ユニットとを含む。
【発明の効果】
【0008】
本発明はオイラー方程式に基づいて、小範囲の逆正接テーブルから複素数データに対応する角度を求めることができるため、精度を維持しながら所要の角度値を減らし、回路面積を大幅に節減する効果がある。なお、本発明の除算は乗算器及び加算器のような簡単な回路素子で行われるため、電力消費を節減し、UWBなどの高速回路に適用することができる。
【発明を実施するための最良の形態】
【0009】
かかる方法と装置の特徴を詳述するために、具体的な実施例を挙げ、図を参照して以下に説明する。
本発明を理解するため、下記オイラー方程式を参照する。

Arctan(a)+Arctan(b)=Arctan((a+b)/(1-a*b)) 但しa*b<1

bが1/aに近づいている場合、上記方程式はArctan(a)+Arctan(1/a)=π/2に書き換えることができる。言い換えれば、任意値の逆正接値と、その逆数の逆正接値の和はπ/2(90度)となる。そのため、回路に保存する逆正接テーブルの範囲は大幅に縮減できる。
【0010】
例えば、入力複素数データIN_COMの実部と虚部をそれぞれX、Yとし、即ちIN_COM=X+jYとすれば、データに対応する角度ANGはY/Xの逆正接値となり、即ちANG=arctan(Y/X)である。この角度の象限は実部Xと虚部Yの正負によって異なるため、回路設計のときは、Y/Xの第一象限にある角度、即ち絶対値|Y/X|に対応する角度を求め、更に実部Xと虚部Yの正負に基づいて検索すれば、実部Xと虚部Yに対応する実際の角度が得られる。この場合、回路に必要な逆正接テーブルの範囲は0.25-32のみですむ。したがって、実部Xが虚部Yより大きいか等しい場合、即ち|X|≧|Y|または|Y/X|≦1の場合、範囲0.25-1の逆正接テーブルのみ検索すれば、Y/Xの第一象限にある角度(即ち絶対値|Y/X|に対応する角度)が得られる。Y/Xの第一象限にある角度をもとに実部Xと虚部Yの正負で判断すれば、複素数データIN_COMに対応する角度が得られる。
【0011】
それに反して、実部Xが虚部Yより小さい場合、即ち|X|<|Y|または|X/Y|<1の場合、上記方程式によれば、|Y/X|の逆正接値と|X/Y|の逆正接値との和がπ/2となるため、本発明では範囲0.25-1の逆正接テーブルのみ検索すれば、Y/Xの第一象限にある角度(即ち絶対値|Y/X|に対応する角度を求め、進んで実部Xと虚部Yに対応する角度を求めることができる。
【0012】
したがって、回路に範囲0.25-1の逆正接テーブルのみ保存すれば実部Xと虚部Yに対応する角度が得られるため、所要の回路面積は大幅に縮減できる。なお、|Y/X|または|X/Y|を求めるとき、実部Xと虚部Yの絶対値が既に判断されているため、簡単なシフターと減算回路のみで除算を行うことが可能である。
【0013】
図1を参照する。図1は本発明による角度計算方法10のフローチャートである。

ステップ100:開始。
ステップ110:複素数データIN_COMを受信する。複素数データIN_COMの実部と虚部はそれぞれX、Yとする。
ステップ120:複素数データIN_COMに基づいて実部Xと虚部Yの絶対値|X|、|Y|を算出し、実部Xと虚部Yの正負情報と絶対値情報を含んだ判断結果を生成する。
ステップ130:実部絶対値|X|と虚部絶対値|Y|の大小を判断する。実部絶対値|X|が虚部絶対値|Y|より大きい場合はステップ140に進み、実部絶対値|X|が虚部絶対値|Y|より小さい場合はステップ160に進む。
ステップ140:実部絶対値|X|を除算の除数とし、虚部絶対値|Y|を除算の被除数をとして商|Y/X|を求める。
ステップ150:所定逆正接テーブルで商|Y/X|を検索し、検索結果を第一角度として出力する。ステップ180に進む。
ステップ160:実部絶対値|X|を除算の被除数とし、虚部絶対値|Y|を除算の除数をとして商|X/Y|を求める。
ステップ170:所定逆正接テーブルで商|X/Y|を検索し、検索結果に対応する余角を第一角度として出力する。ステップ180に進む。
ステップ180:上記判断結果に基づいて第一角度を対応象限に調整して、複素数データに対応する角度ANGを生成する。
ステップ190:終了。

【0014】
以上のとおり、本発明ではまず、受信した複素数データIN_COMに基づいて同データの実部絶対値|X|と虚部絶対値|Y|を算出し、実部Xと虚部Yの正負情報と絶対値情報を含んだ判断結果を生成する(ステップ120)。次に実部絶対値|X|と虚部絶対値|Y|の値に基づいてそれぞれ除数と被除数として除算を行う。実部絶対値|X|が虚部絶対値|Y|より大きい場合は実部絶対値|X|を除数とし、虚部絶対値|Y|を被除数として商|Y/X|を求め(ステップ140)、実部絶対値|X|が虚部絶対値|Y|より小さい場合は実部絶対値|X|を被除数とし、虚部絶対値|Y|を除数として商|X/Y|を求める(ステップ160)。この場合、被除数が除数より小さいため、簡単なシフターと減算回路で除算を行うことができる。なお、除算の結果(|Y/X|と|X/Y|)が1より小さいので、本発明では範囲0.25-1の逆正接テーブルで|Y/X|と|X/Y|に対応する角度を検索することができる。
【0015】
続いて上記オイラー方程式に基づいて検索結果を処理し、第一角度(即ち|Y/X|に対応する角度)を生成する。換言すると、検索結果により|Y/X|に対応する角度が得られた場合(ステップ150)は同検索結果を第一角度として出力し、ステップ180を実行する。検索結果により|X/Y|に対応する角度が得られた場合(ステップ170)は、上記オイラー方程式に基づいて、同検索結果に対応する余角を第一角度として出力する。
【0016】
最後に、複素数データIN_COMの実部Xと虚部Yの正負情報に基づいて第一角度(即ち|Y/X|に対応する角度)を対応象限に調整し、実部Xと虚部Yに対応する角度ANGを生成する(ステップ180)。例えば、複素数データIN_COMの実部Xと虚部Yがいずれも正数の場合、Y/Xに対応する角度は第一象限にあるため、第一角度をそのまま複素数データの角度ANGとして出力することができる。複素数データIN_COMの実部Xと虚部Yがそれぞれ負数と正数の場合、Y/Xに対応する逆正接値は第二象限にあるため、第一角度を対応補角に調整して補角を複素数データの角度ANGとして出力する。複素数データIN_COMの実部Xと虚部Yがいずれも負数の場合、Y/Xに対応する角度は第三象限にあるため、第一角度を第一角度の負値に調整して負値を複素数データの角度ANGとして出力する。複素数データIN_COMの実部Xと虚部Yがそれぞれ正数と負数の場合、Y/Xに対応する角度は第四象限にあるため、第一角度を対応補角に調整して補角を複素数データの角度ANGとして出力する。
【0017】
したがって、上記角度計算方法10を利用すれば、回路に範囲0.25-1の逆正接テーブルを保存するのみで複素数データに対応する角度を求めることができ、回路面積は大幅に縮減できる。また、本発明は実部Xと虚部Yの絶対値を判断して被除数が除数より小さいようにするため、簡単なシフターと減算回路で除算を行うことができる。
【0018】
図2を参照する。図2は図1に示す方法に基づいた除算方法20のフローチャートである。

ステップ200:開始。
ステップ210:被除数を左へ1ビット移動し、除数より大きいかを判断する。除数より大きければステップ220に進み、そうでなければステップ230に進む。
ステップ220:商のビット値が1となり、左へ1ビット移動された被除数から除数を引いた結果を次の被除数として出力する。ステップ240に進む。
ステップ230:商のビット値が0となり、左へ1ビット移動された被除数を次の被除数として出力する。ステップ240に進む。
ステップ240:終了

以上のとおり、本発明では被除数が除数より小さいため、被除数をまず左へ1ビット移動し、除数より大きいかを判断してから次の動作を行う。左へ1ビット移動された被除数が除数より大きい場合は、商のビット値として1を出力し、左へ1ビット移動された被除数から除数を引いて次の被除数として出力する。それに反して、左へ1ビット移動された被除数が除数より小さい場合は、商のビット値として0を出力し、左へ1ビット移動された被除数を次の被除数として出力する。このような動作を商のビット数が所要の精度に達するまで繰り返せば、除算器なしに簡単なシフターと減算回路で除算を行い、電力消費を節減することができる。
【0019】
図3を参照する。図3は本発明による角度計算回路30を表す説明図である。角度計算回路30は上記角度計算方法10を実行する装置であって、判断ユニット31と、除算ユニット32と、テーブル検索ユニット33と、角度調整ユニット34を含む。判断ユニット31は受信した受信した複素数データIN_COMに基づいて同データの実部絶対値|X|と虚部絶対値|Y|を計算し、実部Xと虚部Yの正負情報と絶対値情報を含んだ判断結果を生成する装置である。除算ユニット32は判断ユニット31に結合され、実部絶対値|X|と虚部絶対値|Y|の値に基づいてそれぞれ除数と被除数として除算を行う装置であって、望ましくは簡単なシフターと減算回路によって構成される。テーブル検索ユニット33は除算ユニット32に結合され、所定の逆正接テーブルで除算ユニット32から得た除算結果を検索して検索結果を生成する装置である。逆正接テーブルの範囲は0.25-1が望ましい。角度調整ユニット34はテーブル検索ユニット33と判断ユニット31に結合され、判断ユニット31による判断結果に基づいて検索結果を調整し、複素数データの角度ANGを生成する。角度計算回路30の詳しい動作についてはここで省略する。
【0020】
以上は本発明に好ましい実施例であって、本発明の実施の範囲を限定するものではない。よって、当業者のなし得る修正、もしくは変更であって、本発明の精神の下においてなされ、本発明に対して均等の効果を有するものは、いずれも本発明の特許請求の範囲に属するものとする。
【産業上の利用可能性】
【0021】
本発明は従来の動作条件を変えたのみであり、実施可能である。
【図面の簡単な説明】
【0022】
【図1】本発明による角度計算方法のフローチャートである。
【図2】図1に示す方法に基づいた除算方法のフローチャートである。
【図3】本発明による角度計算回路を表す説明図である。
【符号の説明】
【0023】
31 判断ユニット
32 除算ユニット
33 テーブル検索ユニット
34 角度調整ユニット

【特許請求の範囲】
【請求項1】
複素数の実部と虚部の夾角を計算する方法であって、
複素数データを受信する段階と、
上記複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する段階と、
除算結果を生成するために、上記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を選択する段階と、
所定角度テーブルで上記除算結果を検索し、検索結果を生成する段階と、
上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する段階を含むことを特徴とする複素数の夾角計算方法。
【請求項2】
除算結果を生成するために、前記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を選択する段階は、第一値が第二値より大きい場合に、上記除算結果を生成するために第一値を除数とし、第二値を被除数として選択する段階を有することを特徴とする請求項1記載の複素数の夾角計算方法。
【請求項3】
除算結果を生成するために、前記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を選択する段階は、第一値が第二値より小さい場合に、上記除算結果を生成するために第一値を被除数とし、第二値を除数として選択することを特徴とする請求項1記載の複素数の夾角計算方法。
【請求項4】
前記除算はシフト法と減算法で実行されることを特徴とする請求項1記載の複素数の夾角計算方法。
【請求項5】
前記所定角度テーブルは、範囲が1以下の逆正接テーブルであることを特徴とする請求項1記載の複素数の夾角計算方法。
【請求項6】
前記所定角度テーブルの範囲は0.25-1であることを特徴とする請求項5記載の複素数の夾角計算方法。
【請求項7】
前記判断結果に基づいて検索結果を調整し、複素数データに対応する角度を生成する段階は、
前記第一値と第二値の大小に基づいて前記検索結果を処理し、第一角度を生成する段階と、
前記複素数データの実部と虚部の正負情報に基づいて、上記第一角度を対応象限に調整して、同複素数データに対応する角度を生成する段階を含むことを特徴とする請求項1記載の複素数の夾角計算方法。
【請求項8】
前記第一値と第二値の大小に基づいて検索結果を処理し、第一角度を生成する段階は、第一値が第二値より大きい場合に同検索結果を第一角度として出力する段階を有することを特徴とする請求項7記載の複素数の夾角計算方法。
【請求項9】
前記第一値と第二値の大小に基づいて検索結果を処理し、第一角度を生成する段階は、第一値が第二値より小さい場合に、同検索結果を対応余角に調整して同余角を第一角度として出力する段階を有することを特徴とする請求項7記載の複素数の夾角計算方法。
【請求項10】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がいずれも正数である場合に、前記第一角度を複素数データに対応する角度として出力する段階を有することを特徴とする請求項7記載の夾角計算方法。
【請求項11】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がそれぞれ負数と正数の場合に、前記第一角度を対応補角に調整して同補角を複素数データに対応する角度として出力する段階を有することを特徴とする請求項7記載の夾角計算方法。
【請求項12】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がそれぞれ正数と負数の場合に、前記第一角度を対応補角の負値に調整して同負値を複素数データに対応する角度として出力する段階を有することを特徴とする請求項7記載の夾角計算方法。
【請求項13】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がいずれも負数である場合に、前記第一角度を同第一角度の負値に調整して同負値を複素数データに対応する角度として出力する段階を有することを特徴とする請求項7記載の夾角計算方法。
【請求項14】
複素数の実部と虚部の夾角を計算する回路であって、
複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する判断ユニットと、
判断ユニットに結合され、除算結果を生成するために、上記第一値と第二値の大小によって被除数と除数を選択する除算ユニットと、
除算ユニットに結合され、所定角度テーブルで上記除算結果を検索し、検索結果を生成するテーブル検索ユニットと、
テーブル検索ユニットと判断ユニットに結合され、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する調整ユニットとを含むことを特徴とする複素数の夾角計算回路。
【請求項15】
前記除算ユニットは、除算結果を生成するために、第一値が第二値より大きい場合に第一値を除数とし、第二値を被除数として選択することを特徴とする請求項14記載の複素数の夾角計算回路。
【請求項16】
前記除算ユニットは、除算結果を生成するために、第一値が第二値より小さい場合に第一値を被除数とし、第二値を除数として除算を行って上記除算結果を生成することを特徴とする請求項14記載の複素数の夾角計算回路。
【請求項17】
前記除算ユニットはシフターと減算器を有することを特徴とする請求項14記載の複素数の夾角計算回路。
【請求項18】
前記所定角度テーブルは、範囲が1以下の逆正接テーブルであることを特徴とする請求項14記載の複素数の夾角計算回路。
【請求項19】
前記所定角度テーブルの範囲は0.25-1であることを特徴とする請求項18記載の複素数の夾角計算回路。
【請求項20】
前記調整ユニットは、
前記第一値と第二値の大小に基づいて前記検索結果を処理し、第一角度を生成し、
前記複素数データの実部と虚部の正負情報に基づいて、上記第一角度を対応象限に調整して、同複素数データに対応する角度を生成することを特徴とする請求項14記載の複素数の夾角計算回路。
【請求項21】
前記調整ユニットは、第一値が第二値より大きい場合に同検索結果を第一角度として出力することを特徴とする請求項20記載の複素数の夾角計算回路。
【請求項22】
前記調整ユニットは、第一値が第二値より小さい場合に、同検索結果を対応余角に調整して同余角を第一角度として出力することを特徴とする請求項20記載の複素数の夾角計算回路。
【請求項23】
前記調整ユニットは、複素数の実部と虚部がいずれも正数である場合に、前記第一角度を複素数データに対応する角度として出力することを特徴とする請求項20記載の複素数の夾角計算回路。
【請求項24】
前記調整ユニットは、複素数の実部と虚部がそれぞれ負数と正数の場合に、前記第一角度を対応補角に調整して同補角を複素数データに対応する角度として出力することを特徴とする請求項20記載の複素数の夾角計算回路。
【請求項25】
前記調整ユニットは、複素数の実部と虚部がそれぞれ正数と負数の場合に、前記第一角度を対応補角の負値に調整して同負値を複素数データに対応する角度として出力することを特徴とする請求項20記載の複素数の夾角計算回路。
【請求項26】
前記調整ユニットは、複素数の実部と虚部がいずれも負数である場合に、前記第一角度を同第一角度の負値に調整して同負値を複素数データに対応する角度として出力することを特徴とする請求項20記載の複素数の夾角計算回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2009−89343(P2009−89343A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−313672(P2007−313672)
【出願日】平成19年12月4日(2007.12.4)
【出願人】(503264927)安國國際科技股▲ふん▼有限公司 (8)
【Fターム(参考)】