(57)【要約】【課題】小範囲の逆正接テーブルと簡単なシフター及び減算回路で複素数の角度を求める方法及び関連回路を提供する。【解決手段】方法は、複素数データを受信する段階と、上記複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する段階と、除算結果を生成するために、上記第一値と第二値の大小によって被除数と除数を選択する段階と、所定角度テーブルで上記除算結果を検索し、検索結果を生成する段階と、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する段階を含む。【選択図】図１
2009089343.tif 000002
【特許請求の範囲】
【請求項１】
複素数の実部と虚部の夾角を計算する方法であって、
複素数データを受信する段階と、
上記複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する段階と、
除算結果を生成するために、上記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を選択する段階と、
所定角度テーブルで上記除算結果を検索し、検索結果を生成する段階と、
上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する段階を含むことを特徴とする複素数の夾角計算方法。
【請求項２】
除算結果を生成するために、前記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を選択する段階は、第一値が第二値より大きい場合に、上記除算結果を生成するために第一値を除数とし、第二値を被除数として選択する段階を有することを特徴とする請求項１記載の複素数の夾角計算方法。
【請求項３】
除算結果を生成するために、前記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を選択する段階は、第一値が第二値より小さい場合に、上記除算結果を生成するために第一値を被除数とし、第二値を除数として選択することを特徴とする請求項１記載の複素数の夾角計算方法。
【請求項４】
前記除算はシフト法と減算法で実行されることを特徴とする請求項１記載の複素数の夾角計算方法。
【請求項５】
前記所定角度テーブルは、範囲が１以下の逆正接テーブルであることを特徴とする請求項１記載の複素数の夾角計算方法。
【請求項６】
前記所定角度テーブルの範囲は0.25-1であることを特徴とする請求項５記載の複素数の夾角計算方法。
【請求項７】
前記判断結果に基づいて検索結果を調整し、複素数データに対応する角度を生成する段階は、
前記第一値と第二値の大小に基づいて前記検索結果を処理し、第一角度を生成する段階と、
前記複素数データの実部と虚部の正負情報に基づいて、上記第一角度を対応象限に調整して、同複素数データに対応する角度を生成する段階を含むことを特徴とする請求項１記載の複素数の夾角計算方法。
【請求項８】
前記第一値と第二値の大小に基づいて検索結果を処理し、第一角度を生成する段階は、第一値が第二値より大きい場合に同検索結果を第一角度として出力する段階を有することを特徴とする請求項７記載の複素数の夾角計算方法。
【請求項９】
前記第一値と第二値の大小に基づいて検索結果を処理し、第一角度を生成する段階は、第一値が第二値より小さい場合に、同検索結果を対応余角に調整して同余角を第一角度として出力する段階を有することを特徴とする請求項７記載の複素数の夾角計算方法。
【請求項１０】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がいずれも正数である場合に、前記第一角度を複素数データに対応する角度として出力する段階を有することを特徴とする請求項７記載の夾角計算方法。
【請求項１１】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がそれぞれ負数と正数の場合に、前記第一角度を対応補角に調整して同補角を複素数データに対応する角度として出力する段階を有することを特徴とする請求項７記載の夾角計算方法。
【請求項１２】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がそれぞれ正数と負数の場合に、前記第一角度を対応補角の負値に調整して同負値を複素数データに対応する角度として出力する段階を有することを特徴とする請求項７記載の夾角計算方法。
【請求項１３】
前記複素数データの実部と虚部の正負情報に基づいて第一角度を対応象限に調整し、複素数データに対応する角度を生成する段階は、複素数の実部と虚部がいずれも負数である場合に、前記第一角度を同第一角度の負値に調整して同負値を複素数データに対応する角度として出力する段階を有することを特徴とする請求項７記載の夾角計算方法。
【請求項１４】
複素数の実部と虚部の夾角を計算する回路であって、
複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する判断ユニットと、
判断ユニットに結合され、除算結果を生成するために、上記第一値と第二値の大小によって被除数と除数を選択する除算ユニットと、
除算ユニットに結合され、所定角度テーブルで上記除算結果を検索し、検索結果を生成するテーブル検索ユニットと、
テーブル検索ユニットと判断ユニットに結合され、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する調整ユニットとを含むことを特徴とする複素数の夾角計算回路。
【請求項１５】
前記除算ユニットは、除算結果を生成するために、第一値が第二値より大きい場合に第一値を除数とし、第二値を被除数として選択することを特徴とする請求項１４記載の複素数の夾角計算回路。
【請求項１６】
前記除算ユニットは、除算結果を生成するために、第一値が第二値より小さい場合に第一値を被除数とし、第二値を除数として除算を行って上記除算結果を生成することを特徴とする請求項１４記載の複素数の夾角計算回路。
【請求項１７】
前記除算ユニットはシフターと減算器を有することを特徴とする請求項１４記載の複素数の夾角計算回路。
【請求項１８】
前記所定角度テーブルは、範囲が１以下の逆正接テーブルであることを特徴とする請求項１４記載の複素数の夾角計算回路。
【請求項１９】
前記所定角度テーブルの範囲は0.25-1であることを特徴とする請求項１８記載の複素数の夾角計算回路。
【請求項２０】
前記調整ユニットは、
前記第一値と第二値の大小に基づいて前記検索結果を処理し、第一角度を生成し、
前記複素数データの実部と虚部の正負情報に基づいて、上記第一角度を対応象限に調整して、同複素数データに対応する角度を生成することを特徴とする請求項１４記載の複素数の夾角計算回路。
【請求項２１】
前記調整ユニットは、第一値が第二値より大きい場合に同検索結果を第一角度として出力することを特徴とする請求項２０記載の複素数の夾角計算回路。
【請求項２２】
前記調整ユニットは、第一値が第二値より小さい場合に、同検索結果を対応余角に調整して同余角を第一角度として出力することを特徴とする請求項２０記載の複素数の夾角計算回路。
【請求項２３】
前記調整ユニットは、複素数の実部と虚部がいずれも正数である場合に、前記第一角度を複素数データに対応する角度として出力することを特徴とする請求項２０記載の複素数の夾角計算回路。
【請求項２４】
前記調整ユニットは、複素数の実部と虚部がそれぞれ負数と正数の場合に、前記第一角度を対応補角に調整して同補角を複素数データに対応する角度として出力することを特徴とする請求項２０記載の複素数の夾角計算回路。
【請求項２５】
前記調整ユニットは、複素数の実部と虚部がそれぞれ正数と負数の場合に、前記第一角度を対応補角の負値に調整して同負値を複素数データに対応する角度として出力することを特徴とする請求項２０記載の複素数の夾角計算回路。
【請求項２６】
前記調整ユニットは、複素数の実部と虚部がいずれも負数である場合に、前記第一角度を同第一角度の負値に調整して同負値を複素数データに対応する角度として出力することを特徴とする請求項２０記載の複素数の夾角計算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は角度計算方法及び関連回路に関し、特に小範囲の逆正接テーブルと簡単なシフター及び減算回路で複素数の角度を求める方法及び関連回路に関する。
【背景技術】
【０００２】
回路設計の分野では、CORDIC（座標回転デジタルコンピュータ）は周知の回路素子であって、ベクトルの回転角度または複素数の実部と虚部間の夾角を求めるために用いられる。CORDICは乗算器と加算器からなる簡単な回路によって構成されるため、低電力と低コストの特長を有する。しかし、再帰的アルゴリズムによる近似法を用いるCORDICは演算速度が芳しくなく、ＵＷＢ（超広帯域）などの高速回路設計には適用できない。
【０００３】
そのほか、テーブル検索法で複素数の実部と虚部の夾角を求める方法も周知されている。この方法は、複素数の虚部を実部で割ってから、その商に対応する角度を逆正接テーブルから検索する。例えば、入力複素数データ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の誤差が２％、arctan（64）とπ/2の誤差が１％しかないため、回路設計時に逆正接テーブルの上限を∞から32か64（即ち25か26）に近似することが多い。一方、Y/Xが小さい場合（例えばY/X<2-2またはY/X<2-3）、その逆正接値は本来の値とほぼ一致する（即ちarctan（Y/X）=Y/X）。したがって、上記現象を利用して近似すれば、回路に必要な逆正接テーブルの範囲は0〜∞のみですむ。
【０００４】
しかし、それにもかかわらず、従来の回路では範囲が0.25-32の逆正接テーブルが記憶されているため、多大な回路面積が必要となる。また、テーブル検索法は演算速度が速いが、除算器または逆数検索と乗算器を合わせて演算を行うため、電力消費が高いという欠点もある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上記従来の問題を解決するため、角度計算方法及び関連回路を提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明は複素数の実部と虚部の夾角を計算する方法を提供する。該方法は、複素数データを受信する段階と、上記複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する段階と、除算結果を生成するために、上記第一値と第二値の大小によって上記第一値と第二値から被除数と除数を生成する段階と、所定角度テーブルで上記除算結果を検索し、検索結果を生成する段階と、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する段階を含む。
【０００７】
本発明は更に、複素数の実部と虚部の夾角を計算する回路を提供する。該回路は、複素数データに基づいて、同複素数データの実部と虚部の絶対値にそれぞれ対応する第一値と第二値と、同複素数データの実部と虚部の正負情報と絶対値情報を含んだ判断結果を生成する判断ユニットと、判断ユニットに結合され、除算結果を生成するために、上記第一値と第二値の大小によって被除数と除数を選択する除算ユニットと、除算ユニットに結合され、所定角度テーブルで上記除算結果を検索し、検索結果を生成するテーブル検索ユニットと、テーブル検索ユニットと判断ユニットに結合され、上記判断結果に基づいて検索結果を調整し、上記複素数データに対応する角度を生成する調整ユニットとを含む。
【発明の効果】
【０００８】
本発明はオイラー方程式に基づいて、小範囲の逆正接テーブルから複素数データに対応する角度を求めることができるため、精度を維持しながら所要の角度値を減らし、回路面積を大幅に節減する効果がある。なお、本発明の除算は乗算器及び加算器のような簡単な回路素子で行われるため、電力消費を節減し、ＵＷＢなどの高速回路に適用することができる。
【発明を実施するための最良の形態】
【０００９】
かかる方法と装置の特徴を詳述するために、具体的な実施例を挙げ、図を参照して以下に説明する。
本発明を理解するため、下記オイラー方程式を参照する。
Arctan（a）+Arctan（b）＝Arctan（（a+b）/（1-a*b））    但しa*b<1
bが1/aに近づいている場合、上記方程式はArctan（a）+Arctan（1/a）＝π/2に書き換えることができる。言い換えれば、任意値の逆正接値と、その逆数の逆正接値の和はπ/2（90度）となる。そのため、回路に保存する逆正接テーブルの範囲は大幅に縮減できる。
【００１０】
例えば、入力複素数データ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に対応する角度が得られる。
【００１１】
それに反して、実部Xが虚部Yより小さい場合、即ち|X|＜|Y|または|X/Y|＜1の場合、上記方程式によれば、|Y/X|の逆正接値と|X/Y|の逆正接値との和がπ/2となるため、本発明では範囲0.25-1の逆正接テーブルのみ検索すれば、Y/Xの第一象限にある角度（即ち絶対値|Y/X|に対応する角度を求め、進んで実部Xと虚部Yに対応する角度を求めることができる。
【００１２】
したがって、回路に範囲0.25-1の逆正接テーブルのみ保存すれば実部Xと虚部Yに対応する角度が得られるため、所要の回路面積は大幅に縮減できる。なお、|Y/X|または|X/Y|を求めるとき、実部Xと虚部Yの絶対値が既に判断されているため、簡単なシフターと減算回路のみで除算を行うことが可能である。
【００１３】
図１を参照する。図１は本発明による角度計算方法１０のフローチャートである。
ステップ１００：開始。
ステップ１１０：複素数データIN_COMを受信する。複素数データIN_COMの実部と虚部はそれぞれX、Yとする。
ステップ１２０：複素数データIN_COMに基づいて実部Xと虚部Yの絶対値|X|、|Y|を算出し、実部Xと虚部Yの正負情報と絶対値情報を含んだ判断結果を生成する。
ステップ１３０：実部絶対値|X|と虚部絶対値|Y|の大小を判断する。実部絶対値|X|が虚部絶対値|Y|より大きい場合はステップ１４０に進み、実部絶対値|X|が虚部絶対値|Y|より小さい場合はステップ１６０に進む。
ステップ１４０：実部絶対値|X|を除算の除数とし、虚部絶対値|Y|を除算の被除数をとして商|Y/X|を求める。
ステップ１５０：所定逆正接テーブルで商|Y/X|を検索し、検索結果を第一角度として出力する。ステップ１８０に進む。
ステップ１６０：実部絶対値|X|を除算の被除数とし、虚部絶対値|Y|を除算の除数をとして商|X/Y|を求める。
ステップ１７０：所定逆正接テーブルで商|X/Y|を検索し、検索結果に対応する余角を第一角度として出力する。ステップ１８０に進む。
ステップ１８０：上記判断結果に基づいて第一角度を対応象限に調整して、複素数データに対応する角度ANGを生成する。
ステップ１９０：終了。
【００１４】
以上のとおり、本発明ではまず、受信した複素数データIN_COMに基づいて同データの実部絶対値|X|と虚部絶対値|Y|を算出し、実部Xと虚部Yの正負情報と絶対値情報を含んだ判断結果を生成する（ステップ１２０）。次に実部絶対値|X|と虚部絶対値|Y|の値に基づいてそれぞれ除数と被除数として除算を行う。実部絶対値|X|が虚部絶対値|Y|より大きい場合は実部絶対値|X|を除数とし、虚部絶対値|Y|を被除数として商|Y/X|を求め（ステップ１４０）、実部絶対値|X|が虚部絶対値|Y|より小さい場合は実部絶対値|X|を被除数とし、虚部絶対値|Y|を除数として商|X/Y|を求める（ステップ１６０）。この場合、被除数が除数より小さいため、簡単なシフターと減算回路で除算を行うことができる。なお、除算の結果（|Y/X|と|X/Y|）が１より小さいので、本発明では範囲0.25-1の逆正接テーブルで|Y/X|と|X/Y|に対応する角度を検索することができる。
【００１５】
続いて上記オイラー方程式に基づいて検索結果を処理し、第一角度（即ち|Y/X|に対応する角度）を生成する。換言すると、検索結果により|Y/X|に対応する角度が得られた場合（ステップ１５０）は同検索結果を第一角度として出力し、ステップ１８０を実行する。検索結果により|X/Y|に対応する角度が得られた場合（ステップ１７０）は、上記オイラー方程式に基づいて、同検索結果に対応する余角を第一角度として出力する。
【００１６】
最後に、複素数データIN_COMの実部Xと虚部Yの正負情報に基づいて第一角度（即ち|Y/X|に対応する角度）を対応象限に調整し、実部Xと虚部Yに対応する角度ANGを生成する（ステップ１８０）。例えば、複素数データ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として出力する。
【００１７】
したがって、上記角度計算方法１０を利用すれば、回路に範囲0.25-1の逆正接テーブルを保存するのみで複素数データに対応する角度を求めることができ、回路面積は大幅に縮減できる。また、本発明は実部Xと虚部Yの絶対値を判断して被除数が除数より小さいようにするため、簡単なシフターと減算回路で除算を行うことができる。
【００１８】
図２を参照する。図２は図１に示す方法に基づいた除算方法２０のフローチャートである。
ステップ２００：開始。
ステップ２１０：被除数を左へ１ビット移動し、除数より大きいかを判断する。除数より大きければステップ２２０に進み、そうでなければステップ２３０に進む。
ステップ２２０：商のビット値が１となり、左へ１ビット移動された被除数から除数を引いた結果を次の被除数として出力する。ステップ２４０に進む。
ステップ２３０：商のビット値が０となり、左へ１ビット移動された被除数を次の被除数として出力する。ステップ２４０に進む。
ステップ２４０：終了
以上のとおり、本発明では被除数が除数より小さいため、被除数をまず左へ１ビット移動し、除数より大きいかを判断してから次の動作を行う。左へ１ビット移動された被除数が除数より大きい場合は、商のビット値として１を出力し、左へ１ビット移動された被除数から除数を引いて次の被除数として出力する。それに反して、左へ１ビット移動された被除数が除数より小さい場合は、商のビット値として０を出力し、左へ１ビット移動された被除数を次の被除数として出力する。このような動作を商のビット数が所要の精度に達するまで繰り返せば、除算器なしに簡単なシフターと減算回路で除算を行い、電力消費を節減することができる。
【００１９】
図３を参照する。図３は本発明による角度計算回路３０を表す説明図である。角度計算回路３０は上記角度計算方法１０を実行する装置であって、判断ユニット３１と、除算ユニット３２と、テーブル検索ユニット３３と、角度調整ユニット３４を含む。判断ユニット３１は受信した受信した複素数データIN_COMに基づいて同データの実部絶対値|X|と虚部絶対値|Y|を計算し、実部Xと虚部Yの正負情報と絶対値情報を含んだ判断結果を生成する装置である。除算ユニット３２は判断ユニット３１に結合され、実部絶対値|X|と虚部絶対値|Y|の値に基づいてそれぞれ除数と被除数として除算を行う装置であって、望ましくは簡単なシフターと減算回路によって構成される。テーブル検索ユニット３３は除算ユニット３２に結合され、所定の逆正接テーブルで除算ユニット３２から得た除算結果を検索して検索結果を生成する装置である。逆正接テーブルの範囲は0.25-1が望ましい。角度調整ユニット３４はテーブル検索ユニット３３と判断ユニット３１に結合され、判断ユニット３１による判断結果に基づいて検索結果を調整し、複素数データの角度ANGを生成する。角度計算回路３０の詳しい動作についてはここで省略する。
【００２０】
以上は本発明に好ましい実施例であって、本発明の実施の範囲を限定するものではない。よって、当業者のなし得る修正、もしくは変更であって、本発明の精神の下においてなされ、本発明に対して均等の効果を有するものは、いずれも本発明の特許請求の範囲に属するものとする。
【産業上の利用可能性】
【００２１】
本発明は従来の動作条件を変えたのみであり、実施可能である。
【図面の簡単な説明】
【００２２】
【図１】本発明による角度計算方法のフローチャートである。
【図２】図１に示す方法に基づいた除算方法のフローチャートである。
【図３】本発明による角度計算回路を表す説明図である。
【符号の説明】
【００２３】
３１    判断ユニット
３２    除算ユニット
３３    テーブル検索ユニット
３４    角度調整ユニット
【図１】
2009089343.tif 000003
【図２】
2009089343.tif 000004
【図３】
2009089343.tif 000005