【手続補正書】
【提出日】平成19年11月6日(2007.11.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】明細書
【発明の名称】  三角関数生成装置および三角関数生成方法
【特許請求の範囲】
【請求項１】  任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成装置と、
該アドレス生成装置の出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成装置と、
前記アドレス生成装置の出力を入力とし、前記cos近似関数生成装置で生成される近似関数とcos関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するcos誤差記憶装置と、
前記アドレス生成装置の出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成装置と、
前記アドレス生成装置の出力を入力とし、前記sin近似関数生成装置で生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するsin誤差記憶装置と、
前記cos近似関数生成装置の出力と、前記cos誤差記憶装置の出力とを加算する第1の加算装置と、
前記sin近似関数生成装置の出力と、前記sin誤差記憶装置の出力とを加算する第2の加算装置と、
前記第1の加算装置の出力と前記第2の加算装置の出力とを入力とし、上記第1, 第2の加算装置の出力をそれぞれcos関数側出力,sin関数側出力に出力する状態と、上記第1, 第2の加算装置の出力をそれぞれsin関数側出力, cos関数側出力に出力する状態とを、切り替えるデータ入れ替え制御装置と、
該データ入れ替え制御装置の各々の出力の、符号反転制御を行う第1,第2の符号反転制御装置とを備えた、
ことを特徴とする三角関数生成装置。
【請求項２】  任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成装置と、
該アドレス生成装置の出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成装置と、
前記アドレス生成装置の出力を入力とし、前記cos近似関数生成装置で生成された近似関数とcos関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するcos誤差記憶装置と、
前記アドレス生成装置の出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成装置と、
前記アドレス生成装置の出力を入力とし、前記sin近似関数生成装置で生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するsin誤差記憶装置と、
前記cos近似関数生成装置の出力と、前記cos誤差記憶装置の出力とを加算する第1の加算装置と、
前記sin近似関数生成装置の出力と、前記sin誤差記憶装置の出力とを加算する第2の加算装置と、
前記第1の加算装置の出力と、前記第2の加算装置の出力とを入力とし、そのいずれの出力を出力するかを、前記角度入力θとcos関数/sin関数選択信号によって制御するデータ選択装置と、
該データ選択装置の出力の、符号反転制御を行う符号反転制御装置とを備えた、
ことを特徴とする三角関数生成装置。
【請求項３】  請求項1または請求項2記載の三角関数生成装置において、
前記cos近似関数生成装置を、所定の角度範囲内のcos関数に近似した直線関数を生成するcos近似直線関数生成装置で実現してなる、
ことを特徴とする三角関数生成装置。
【請求項４】  請求項1または請求項2記載の三角関数生成装置において、
前記cos近似関数生成装置を、所定の角度範囲内のcos関数に近似した２本以上の線分で構成された折れ線関数を生成するcos近似折れ線関数生成装置で実現してなる、
ことを特徴とする三角関数生成装置。
【請求項５】  請求項1または請求項2記載の三角関数生成装置において、
前記sin近似関数生成装置を、所定の角度範囲内のsin関数に近似した直線関数を生成するsin近似直線関数生成装置で実現してなる、
ことを特徴とする三角関数生成装置。
【請求項６】  請求項1または請求項2記載の三角関数生成装置において、
前記sin近似関数生成装置を、所定の角度範囲内のsin関数に近似した２本以上の線分で構成された折れ線関数を生成するsin近似折れ線関数生成装置で実現してなる、
ことを特徴とする三角関数生成装置。
【請求項７】  請求項１ないし請求項６のいずれかに記載の三角関数生成装置において、
前記所定の角度は、（ｎ・π/４）〜（（ｎ＋１）・π/４）ラジアン（ただし、ｎは０から７までの整数）である、
ことを特徴とする三角関数生成装置。
【請求項８】  任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成ステップと、
該アドレス生成ステップの出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成ステップと、
前記アドレス生成ステップの出力を入力とし、前記cos近似関数生成ステップで生成される近似関数とcos関数との誤差を、所定の角度範囲内で記憶しているcos誤差記憶装置から、上記入力に対応して上記誤差を出力するcos誤差出力ステップと、
前記アドレス生成ステップの出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成ステップと、
前記アドレス生成ステップの出力を入力とし、前記sin近似関数生成ステップで生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しているsin誤差記憶装置から、上記入力に対応して上記誤差を出力するsin誤差出力ステップと、
前記cos近似関数生成ステップの出力と、前記cos誤差出力ステップの出力とを加算する第1の加算ステップと、
前記sin近似関数生成ステップの出力と、前記sin誤差記憶ステップの出力とを加算する第2の加算ステップと、
前記第1の加算ステップの出力と前記第2の加算ステップの出力とを入力とし、上記第1, 第2の加算ステップの出力をそれぞれcos関数側出力,sin関数側出力に出力する状態と、上記第1, 第2の加算ステップの出力をそれぞれsin関数側出力, cos関数側出力に出力する状態とを、切り替えるデータ入れ替え制御ステップと、
該データ入れ替え制御ステップの各々の出力の、符号反転制御を行う第1,第2の符号反転制御ステップとを含む、
ことを特徴とする三角関数生成方法。
【請求項９】  任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成ステップと、
該アドレス生成ステップの出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成ステップと、
前記アドレス生成ステップの出力を入力とし、前記cos近似関数生成ステップで生成された近似関数とcos関数との誤差を、所定の角度範囲内で記憶しているcos誤差記憶装置から、上記入力に対応した上記誤差を出力するcos誤差出力ステップと、
前記アドレス生成ステップの出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成ステップと、
前記アドレス生成ステップの出力を入力とし、前記sin近似関数生成ステップで生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しているsin誤差記憶装置から、上記入力に対応した上記誤差を出力するsin誤差出力ステップと、
前記cos近似関数生成ステップの出力と、前記cos誤差記憶装置の出力とを加算する第1の加算ステップと、
前記sin近似関数生成ステップの出力と、前記sin誤差記憶装置の出力とを加算する第2の加算ステップと、
前記第1の加算ステップの出力と、前記第2の加算ステップの出力とを入力とし、そのいずれの出力を出力するかを、前記角度入力θとcos関数/sin関数選択信号によって制御するデータ選択ステップと、
該データ選択ステップの出力の、符号反転制御を行う符号反転制御ステップとを含む、
ことを特徴とする三角関数生成方法。
【請求項１０】  請求項8または請求項9記載の三角関数生成方法において、
前記cos近似関数生成ステップを、所定の角度範囲内のcos関数に近似した直線関数を生成するcos近似直線関数生成ステップで実現してなる、
ことを特徴とする三角関数生成方法。
【請求項１１】  請求項8または請求項9記載の三角関数生成方法において、
前記cos近似関数生成ステップを、所定の角度範囲内のcos関数に近似した２本以上の線分で構成された折れ線関数を生成するcos近似折れ線関数生成ステップで実現してなる、
ことを特徴とする三角関数生成方法。
【請求項１２】  請求項8または請求項9記載の三角関数生成方法において、
前記sin近似関数生成ステップを、所定の角度範囲内のsin関数に近似した直線関数を生成するsin近似直線関数生成ステップで実現してなる、
ことを特徴とする三角関数生成方法。
【請求項１３】  請求項8または請求項9記載の三角関数生成方法において、
前記sin近似関数生成ステップを、所定の角度範囲内のsin関数に近似した２本以上の線分で構成された折れ線関数を生成するsin近似折れ線関数生成ステップで実現してなる、
ことを特徴とする三角関数生成方法。
【請求項１４】  請求項8ないし請求項13のいずれかに記載の三角関数生成方法において、
前記所定の角度は、（ｎ・π/４）〜（（ｎ＋１）・π/４）ラジアン（ただし、ｎは０から７までの整数）である、
ことを特徴とする三角関数生成方法。
【請求項１５】  請求項8または請求項9に記載の三角関数生成方法において、
前記cos近似関数生成ステップと、前記cos誤差出力ステップとは、この順序、この逆の順序、あるいは同時、のいずれかの順序で実行される、
ことを特徴とする三角関数生成方法。
【請求項１６】  請求項8または請求項9に記載の三角関数生成方法において、
前記sin近似関数生成ステップと、前記sin誤差出力ステップとは、この順序、この逆の順序、もしくは同時、のいずれかの順序で実行される、
ことを特徴とする三角関数生成方法。
【請求項１７】  請求項8または請求項9に記載の三角関数生成方法において、
前記第1の加算ステップと、前記第2の加算ステップとは、この順序、この逆の順序、もしくは同時、のいずれかの順序で実行される、
ことを特徴とする三角関数生成方法。
【請求項１８】  請求項8に記載の三角関数生成方法において、
前記データ入れ替え制御ステップと、前記第1,第2の符号反転制御ステップとは、この順序、この逆の順序、のいずれかの順序で実行される、
ことを特徴とする三角関数生成方法。
【請求項１９】  請求項9に記載の三角関数生成方法において、
前記データ選択ステップと、前記符号反転制御ステップとは、この順序、この逆の順序、のいずれかの順序で実行される、
ことを特徴とする三角関数生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル信号処理で用いる三角関数生成装置および三角関数生成方法に関する。
【０００２】
【従来の技術】
近年の半導体技術の発展に伴い、通信分野や画像処理分野における処理は、従来のアナログ信号処理からディジタル信号処理へと移行してきている。その中でも、ディジタル放送受信用の復調器を構成する自動周波数制御装置や、位相誤差除去装置など、信号の座標回転処理を必要とするもの、また画像処理における座標軸変換や、図形の座標回転処理等、三角関数を必要とする処理は多い。そこで、実用化のためには、これらの三角関数生成装置を小規模化し、低コスト化をはかることが重要な課題となっている。
【０００３】
三角関数生成装置の一例として、特開平8-292201号公報に記載されたものが知られている。該公報記載の三角関数生成装置では、象現によってROMの読み出し方を制御するためのアドレス入力反転制御回路と、1象現分の関数データを記憶させたROMと、ROMから読み出したデータをcos関数データとするか、もしくはsin関数データとするかを選択するsin,cos分離回路と、を備える。
【０００４】
【発明が解決しようとする課題】
しかしながら上記のような構成では、関数値の精度を上げるに従い関数データを記憶させておくためのROMの回路規模が増大し、それに伴い消費電力も増大するという問題点を有していた。さらに、cos関数とsin関数を同時に求める必要がある場合は、それぞれに対応するROMを用意する必要があるため、さらに回路規模が増大するという問題を有していた。
【０００５】
そこで、本発明は、容易に演算器で生成できる直線関数、もしくは折れ線関数により、cos関数とsin関数を近似し、その近似誤差分のみをROMに記憶することにより、記憶しておくべき関数データの絶対値を縮小することができる点に新たに着目し、ROMに必要とされるビット幅を縮小することで回路規模の縮小を実現できる三角関数生成装置および三角関数生成方法を提供することを目的としている。
【０００６】
さらに、cos関数またはsin関数のどちらか一方だけでなく、cos関数とsin関数を同時に生成する必要がある場合でも、０〜π/4の角度の範囲のcos関数の誤差分と、sin関数の誤差分とをともに記憶するだけで実現できる三角関数生成装置および三角関数生成方法を提供することを目的としている。
このように、本発明は、上記問題点に鑑み、その目的は、小規模な三角関数生成装置および三角関数生成方法を提供することにある。
【０００７】
【課題を解決するための手段】
上記問題点を解決するために、本発明(請求項１)にかかる三角関数生成装置は、任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成装置と、該アドレス生成装置の出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成装置と、前記アドレス生成装置の出力を入力とし、前記cos近似関数生成装置で生成される近似関数とcos関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するcos誤差記憶装置と、 前記アドレス生成装置の出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成装置と、前記アドレス生成装置の出力を入力とし、前記sin近似関数生成装置で生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するsin誤差記憶装置と、前記cos近似関数生成装置の出力と、前記cos誤差記憶装置の出力とを加算する第1の加算装置と、前記sin近似関数生成装置の出力と、前記sin誤差記憶装置の出力とを加算する第2の加算装置と、前記第1の加算装置の出力と前記第2の加算装置の出力とを入力とし、上記第1, 第2の加算装置の出力をそれぞれcos関数側出力,sin関数側出力に出力する状態と、上記第1, 第2の加算装置の出力をそれぞれsin関数側出力, cos関数側出力に出力する状態とを、切り替えるデータ入れ替え制御装置と、該データ入れ替え制御装置の各々の出力の、符号反転制御を行う第1,第2の符号反転制御装置とを備えた、ことを特徴とするものである。
【０００８】
本発明(請求項２)にかかる三角関数生成装置は、任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成装置と、該アドレス生成装置の出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成装置と、前記アドレス生成装置の出力を入力とし、前記cos近似関数生成装置で生成された近似関数とcos関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するcos誤差記憶装置と、前記アドレス生成装置の出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成装置と、前記アドレス生成装置の出力を入力とし、前記sin近似関数生成装置で生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しており、上記入力に対応して上記誤差を出力するsin誤差記憶装置と、前記cos近似関数生成装置の出力と、前記cos誤差記憶装置の出力とを加算する第1の加算装置と、前記sin近似関数生成装置の出力と、前記sin誤差記憶装置の出力とを加算する第2の加算装置と、前記第1の加算装置の出力と、前記第2の加算装置の出力とを入力とし、そのいずれの出力を出力するかを、前記角度入力θとcos関数/sin関数選択信号によって制御するデータ選択装置と、該データ選択装置の出力の、符号反転制御を行う符号反転制御装置とを備えた、ことを特徴とするものである。
【０００９】
本発明(請求項３)にかかる三角関数生成装置は、請求項1または請求項2記載の三角関数生成装置において、前記cos近似関数生成装置を、所定の角度範囲内のcos関数に近似した直線関数を生成するcos近似直線関数生成装置で実現してなる、ものである。
【００１０】
本発明(請求項４)にかかる三角関数生成装置は  請求項1または請求項2記載の三角関数生成装置において、前記cos近似関数生成装置を、所定の角度範囲内のcos関数に近似した２本以上の線分で構成された折れ線関数を生成するcos近似折れ線関数生成装置で実現してなる、ものである。
【００１１】
本発明(請求項５)にかかる三角関数生成装置は、請求項1または請求項2記載の三角関数生成装置において、前記sin近似関数生成装置を、所定の角度範囲内のsin関数に近似した直線関数を生成するsin近似直線関数生成装置で実現してなる、ものである。
【００１２】
本発明(請求項6)にかかる三角関数生成装置は、請求項1または請求項2記載の三角関数生成装置において、前記sin近似関数生成装置を、所定の角度範囲内のsin関数に近似した２本以上の線分で構成された折れ線関数を生成するsin近似折れ線関数生成装置で実現してなる、ものである。
【００１３】
本発明(請求項7)にかかる三角関数生成装置は、請求項１ないし請求項６のいずれかに記載の三角関数生成装置において、前記所定の角度は、（ｎ・π/４）〜（（ｎ＋１）・π/４）ラジアン（ただし、ｎは０から７までの整数）であることを特徴とするものである。
【００１４】
本発明(請求項8)にかかる三角関数生成方法は、任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成ステップと、該アドレス生成ステップの出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成ステップと、前記アドレス生成ステップの出力を入力とし、前記cos近似関数生成ステップで生成される近似関数とcos関数との誤差を、所定の角度範囲内で記憶しているcos誤差記憶装置から、上記入力に対応して上記誤差を出力するcos誤差出力ステップと、前記アドレス生成ステップの出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成ステップと、前記アドレス生成ステップの出力を入力とし、前記sin近似関数生成ステップで生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しているsin誤差記憶装置から、上記入力に対応して上記誤差を出力するsin誤差出力ステップと、前記cos近似関数生成ステップの出力と、前記cos誤差出力ステップの出力とを加算する第1の加算ステップと、前記sin近似関数生成ステップの出力と、前記sin誤差記憶ステップの出力とを加算する第2の加算ステップと、前記第1の加算ステップの出力と前記第2の加算ステップの出力とを入力とし、上記第1, 第2の加算ステップの出力をそれぞれcos関数側出力,sin関数側出力に出力する状態と、上記第1, 第2の加算ステップの出力をそれぞれsin関数側出力, cos関数側出力に出力する状態とを、切り替えるデータ入れ替え制御ステップと、該データ入れ替え制御ステップの各々の出力の、符号反転制御を行う第1,第2の符号反転制御ステップとを含む、ことを特徴とするものである。
【００１５】
本発明(請求項9)にかかる三角関数生成方法は、任意の角度入力θに対して、所定の角度範囲内で一意に決まる特定のアドレスを生成するアドレス生成ステップと、該アドレス生成ステップの出力を入力とし、所定の角度範囲内のcos関数に近似した近似関数を生成するcos近似関数生成ステップと、前記アドレス生成ステップの出力を入力とし、前記cos近似関数生成ステップで生成された近似関数とcos関数との誤差を、所定の角度範囲内で記憶しているcos誤差記憶装置から、上記入力に対応した上記誤差を出力するcos誤差出力ステップと、前記アドレス生成ステップの出力を入力とし、所定の角度範囲内のsin関数に近似した近似関数を生成するsin近似関数生成ステップと、前記アドレス生成ステップの出力を入力とし、前記sin近似関数生成ステップで生成された近似関数とsin関数との誤差を、所定の角度範囲内で記憶しているsin誤差記憶装置から、上記入力に対応した上記誤差を出力するsin誤差出力ステップと、前記cos近似関数生成ステップの出力と、前記cos誤差記憶装置の出力とを加算する第1の加算ステップと、前記sin近似関数生成ステップの出力と、前記sin誤差記憶装置の出力とを加算する第2の加算ステップと、前記第1の加算ステップの出力と、前記第2の加算ステップの出力とを入力とし、そのいずれの出力を出力するかを、前記角度入力θとcos関数/sin関数選択信号によって制御するデータ選択ステップと、該データ選択ステップの出力の、符号反転制御を行う符号反転制御ステップとを含む、ことを特徴とするものである。
【００１６】
本発明(請求項10)にかかる三角関数生成方法は、請求項8または請求項9記載の三角関数生成方法において、前記cos近似関数生成ステップを、所定の角度範囲内のcos関数に近似した直線関数を生成するcos近似直線関数生成ステップで実現してなるものである。
【００１７】
本発明(請求項11)にかかる三角関数生成方法は、請求項8または請求項9記載の三角関数生成方法において、前記cos近似関数生成ステップを、所定の角度範囲内のcos関数に近似した２本以上の線分で構成された折れ線関数を生成するcos近似折れ線関数生成ステップで実現してなるものである。
【００１８】
本発明(請求項12)にかかる三角関数生成方法は、請求項8または請求項9記載の三角関数生成方法において、前記sin近似関数生成ステップを、所定の角度範囲内のsin関数に近似した直線関数を生成するsin近似直線関数生成ステップで実現してなるものである。
【００１９】
本発明(請求項13)にかかる三角関数生成方法は、請求項8または請求項9記載の三角関数生成方法において、前記sin近似関数生成ステップを、所定の角度範囲内のsin関数に近似した２本以上の線分で構成された折れ線関数を生成するsin近似折れ線関数生成ステップで実現してなるものである。
【００２０】
本発明(請求項14)にかかる三角関数生成方法は、請求項8ないし請求項13のいずれかに記載の三角関数生成方法において、前記所定の角度は、（ｎ・π/４）〜（（ｎ＋１）・π/４）ラジアン（ただし、ｎは０から７までの整数）であるものである。
【００２１】
本発明(請求項15)にかかる三角関数生成方法は、請求項8または請求項9に記載の三角関数生成方法において、前記cos近似関数生成ステップと、前記cos誤差出力ステップとは、この順序、この逆の順序、あるいは同時、のいずれかの順序で実行されるものである。
【００２２】
本発明(請求項16)にかかる三角関数生成方法は、請求項8または請求項9に記載の三角関数生成方法において、前記sin近似関数生成ステップと、前記sin誤差出力ステップとは、この順序、この逆の順序、もしくは同時、のいずれかの順序で実行されるものである。
【００２３】
本発明(請求項17)にかかる三角関数生成方法は、請求項8または請求項9に記載の三角関数生成方法において、前記第1の加算ステップと、前記第2の加算ステップとは、この順序、この逆の順序、もしくは同時、のいずれかの順序で実行されるものである。
【００２４】
本発明(請求項18)にかかる三角関数生成方法は、請求項8に記載の三角関数生成方法において、前記データ入れ替え制御ステップと、前記第1,第2の符号反転制御ステップとは、この順序、この逆の順序、のいずれかの順序で実行されるものである。
【００２５】
本発明(請求項19)にかかる三角関数生成方法は、請求項9に記載の三角関数生成方法において、前記データ選択ステップと、前記符号反転制御ステップとは、この順序、この逆の順序、のいずれかの順序で実行されるものである。
【００２６】
本発明は、上記した構成によって、cos/sin関数を、cos/sin近似関数生成装置（cos/sin近似関数生成ステップ）の出力と、近似により発生した誤差分のみを記憶するcos/sin誤差記憶装置の出力との加算で実現することにより、記憶しておくべき関数データの絶対値を縮小することができ、関数データの記憶のために必要とされる記憶装置の回路規模を削減することとなる。
【００２７】
また、本発明は、上記した構成によって、cos/sin近似関数を１つの近似直線関数もしくは、２本以上の線分で構成された近似折れ線関数で構成することにより、簡単な構成の演算器で、cos/sin近似関数生成装置（cos/sin近似関数生成ステップ）を実現することができ、近似関数生成装置（近似関数生成ステップ）を構成する回路の回路規模を削減することとなる。
【００２８】
さらに、本発明は、上記した構成によって、cos関数またはsin関数のどちらか一方だけでなく、cos関数とsin関数を同時に生成する必要がある場合でも、０〜π/4の角度の範囲のcos関数の誤差分と、sin関数の誤差分とを記憶した誤差記憶装置を、それぞれ１つ用いるだけで、時分割多重の必要なく実現することができることとなる。
【００２９】
【発明の実施の形態】
以下本発明の実施の形態による三角関数生成装置について、図面を参照しながら説明する。
【００３０】
（実施の形態１）
図1は本発明の実施の形態1による三角関数生成装置の構成図である。
図1において、100は入力データである角度θに対して、0〜π/4ラジアンの範囲において対応するアドレスを生成するアドレス生成装置（アドレス生成ステップ）、200はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲においてcos関数に近似した直線関数を生成するcos近似直線関数生成装置（cos近似直線関数生成ステップ）、250はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲においてcos関数とcos近似直線関数との誤差成分を格納するcos誤差記憶装置、300はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲においてsin関数に近似した直線関数を生成するsin近似直線関数生成装置（sin近似直線関数生成ステップ）、350はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲においてsin関数とsin近似直線関数との誤差成分を格納するsin誤差記憶装置、400はcos近似直線関数生成装置200の出力と、cos誤差記憶装置250の出力とを加算する加算装置（加算ステップ）、450はsin近似直線関数生成装置300の出力とsin誤差記憶装置350の出力を加算する加算装置（加算ステップ）、500は加算装置400の出力と、加算装置450の出力とを入力として、それらを角度入力θによって入れ替え制御するデータ入れ替え装置、600はデータ入れ替え装置500のcos関数側出力を入力として、角度入力θによって符号の反転制御を行う符号反転制御装置（符号反転制御ステップ）、650はデータ入れ替え装置500のsin関数側出力を入力として、角度入力θによって符号の反転制御を行う符号反転制御装置（符号反転制御ステップ）、700はデータ入れ替え装置（データ入れ替え制御ステップ）500と、符号反転制御装置600と、符号反転制御装置650とによって構成されるデータ入れ替え符号反転制御装置である。
【００３１】
以上のように構成された本実施の形態１の三角関数生成装置について、図1および図2を用いて動作について説明する。
入力された角度θは、アドレス生成装置100へ入力される。
アドレス生成装置100では、上記入力された任意の角度θを、これに対応する、読み出すべき0〜π/4ラジアンの範囲を表すアドレスに変換する。
【００３２】
cos近似直線関数生成装置200は、このアドレスにおけるcos関数を近似するcos近似直線関数値を演算し、出力する。cos誤差記憶装置250は、このアドレスにおけるcos関数値と、cos近似直線関数の誤差分とを読み出し、出力する。加算装置400は、cos近似直線関数生成装置200の出力であるcos近似直線関数値と、cos誤差記憶装置250の出力である誤差分とを加算することにより、正確なcos関数値を演算し、出力する。
【００３３】
また、sin近似直線関数生成装置300は、このアドレスにおけるsin関数を近似するsin近似直線関数値を演算し、出力する。sin誤差記憶装置350は、このアドレスにおけるsin関数値と、sin近似直線関数の誤差分とを読み出し、出力する。加算装置450は、sin近似直線関数生成装置300の出力であるsin近似直線関数値と、sin誤差記憶装置350の出力である誤差分とを加算することにより、正確なsin関数値を演算し、出力する。
【００３４】
データ入れ替え装置500は、入力された角度θによって、加算装置400の出力と、加算装置450の出力のそれぞれを、それぞれcos関数側出力と、sin関数側出力のいずれへ出力するかを選択する。
符号反転制御装置600は、入力された角度θによって、データ入れ替え装置500のcos関数側出力の、符号の反転制御を行い、cos関数値として出力する。
符号反転制御装置650は、入力された角度θによって、データ入れ替え装置500のsin関数側出力の、符号の反転制御を行い、sin関数値として出力する。
【００３５】
つまり、上記cos近似直線関数生成装置200、cos誤差記憶装置250、sin近似直線関数生成装置300、sin誤差記憶装置350、加算装置400、及び加算装置450によって、0〜π/4ラジアンの範囲のcos関数値と、sin関数値とを演算し、アドレス生成装置100、データ入れ替え装置500、符号反転制御装置600、及び符号反転制御装置650によって、0〜π/4ラジアンの範囲のcos関数値と、sin関数値とから、任意の角度θにおけるcos関数値と、sin関数値とを演算する。
【００３６】
図2に、cos/sin関数と近似直線関数の例を示す。
cos近似直線関数は、cos関数に少なくとも1つの接点をもち、cos関数誤差分の絶対値の最大値が小さくなるように、傾きや切片を選択する。
同様に、sin近似直線関数は、sin関数に少なくとも1つの接点をもち、sin関数誤差分の絶対値の最大値が小さくなるように、傾きや切片を選択する。
このようにすることで、cos誤差記憶装置、およびsin誤差記憶装置の回路規模を最小にすることができる。
【００３７】
以上のように、本実施の形態1によれば、近似関数値を生成するcos/sin近似直線関数生成装置200/300と、近似関数による誤差分を記憶するcos/sin誤差記憶装置250/350とを設け、それぞれの出力を加算装置400/450で加算することにより、cos/sin関数生成装置における、関数データ記憶装置の回路規模を縮小することができる。
さらに、cos関数と、sin関数とを同時に出力する場合、0〜π/4ラジアンの範囲のcos関数と、sin関数とを同時に演算できることで、記憶装置のアドレスとしては、従来の1/2にすることができ、三角関数生成装置の回路規模を縮小することができる。
【００３８】
（実施の形態２）
図3は本発明の第2の実施の形態による三角関数生成装置の構成図である。
図3において、100は入力データである角度θに対し、0〜π/4ラジアンの範囲において、対応するアドレスを生成するアドレス生成装置（アドレス生成ステップ）、210はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲において、cos関数に近似した折れ線関数を生成するcos近似折れ線関数生成装置（cos近似関数生成ステップ）、250はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲において、cos関数とcos近似折れ線関数との誤差成分を格納するcos誤差記憶装置、310はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲においてsin関数に近似した折れ線関数を生成するsin近似折れ線関数生成装置（sin近似関数生成ステップ）、350はアドレス生成装置100の出力であるアドレスを入力として、0〜π/4ラジアンの範囲において、sin関数とsin近似折れ線関数との誤差成分を格納するsin誤差記憶装置、400はcos近似折れ線関数生成装置210の出力と、cos誤差記憶装置250の出力とを加算する加算装置（加算ステップ）、450はsin近似折れ線関数生成装置310の出力と、sin誤差記憶装置350の出力とを加算する加算装置（加算ステップ）、510は加算装置400の出力と、加算装置450の出力とを入力として、それらを角度入力θと、cos関数/sin関数選択信号とによって選択制御するデータ選択装置（データ選択ステップ）、610はデータ選択装置510の出力を入力として、角度入力θと、cos関数/sin関数選択信号とによって、符号の反転制御を行う符号反転制御装置（符号反転制御ステップ）、710はデータ選択装置510と、符号反転制御装置610とによって構成されるデータ選択制御装置である。
【００３９】
以上のように構成された三角関数生成装置について、以下、図3と図4を用いて動作を説明する。
入力された角度θは、アドレス生成装置100へ入力される。アドレス生成装置100では、任意の角度θを、これに対応する、読み出すべき0〜π/4ラジアンの範囲を表すアドレスに変換する。
【００４０】
cos近似折れ線関数生成装置210は、このアドレスにおけるcos関数を近似するcos近似折れ線関数値を演算し、出力する。cos誤差記憶装置250は、このアドレスにおけるcos関数値と、cos近似折れ線関数との誤差分を読み出し、出力する。
【００４１】
加算装置400は、cos近似折れ線関数生成装置210の出力であるcos近似折れ線関数値と、cos誤差記憶装置250の出力である誤差分とを加算することにより、正確なcos関数値を演算し、出力する。
また、sin近似折れ線関数生成装置310は、このアドレスにおけるsin関数を近似するsin近似折れ線関数値を演算し、出力する。また、sin誤差記憶装置350は、このアドレスにおけるsin関数値と、sin近似折れ線関数の誤差分とを読み出し、出力する。加算装置450は、sin近似折れ線関数生成装置310の出力であるsin近似折れ線関数値と、sin誤差記憶装置350の出力である誤差分とを加算することにより、正確なsin関数値を演算し、出力する。
【００４２】
データ選択装置510は、入力された角度θと、cos関数/sin関数選択信号とによって、加算装置400の出力と、加算装置450の出力とを選択し、出力する。
符号反転制御装置610は、データ選択装置510の出力を入力とし、入力された角度θと、cos関数/sin関数選択信号とによって、符号の反転制御を行い、出力する。
【００４３】
つまり、cos近似折れ線関数生成装置210、cos誤差記憶装置250、sin近似折れ線関数生成装置310、sin誤差記憶装置350、加算装置400、加算装置450によって0〜π/4ラジアンの範囲のcos関数値と、sin関数値とを演算し、アドレス生成装置100、データ選択装置510、符号反転制御装置610によって、0〜π/4ラジアンの範囲のcos関数値、もしくはsin関数値から、任意の角度θにおけるcos関数値、もしくはsin関数値を演算する。
【００４４】
図4に、cos/sin関数と近似折れ線関数の例を示す。
cos近似折れ線関数を構成する複数の線分は、それぞれcos関数に少なくとも1つの接点をもち、cos関数誤差分の絶対値の最大値が小さくなるように各線分を選択する。
同様に、sin近似折れ線関数を構成する複数の線分はそれぞれsin関数に少なくとも1つの接点をもち、sin関数誤差分の絶対値の最大値が小さくなるように各線分を選択する。
このようにすることで、cos誤差記憶装置、およびsin誤差記憶装置の回路規模を最小にすることができる。
【００４５】
以上のように本実施の形態2によれば、近似関数値を生成するcos/sin近似折れ線関数生成装置210/310と、近似関数による誤差分を記憶するcos/sin誤差記憶装置250/350とを設け、それぞれの出力を加算装置400/450で加算することにより、cos/sin関数生成装置における関数データ記憶装置の回路規模を、近似の精度が上がった分だけ、実施の形態1に比べて縮小することができる。
なお、上記実施の形態1, 2においては、cos誤差記憶装置と、sin誤差記憶装置とをROMを用いて構成したが、これらは、RAMもしくはレジスタを用いて構成してもよい。
【００４６】
また、上記実施の形態2において、cos近似関数生成装置と、sin近似関数生成装置とを、それぞれ２本の線分で構成された折れ線関数としたが、この２本の線分の接続は、接続点において連続でなくてもよい。さらに、３本以上の線分で構成されている場合も、同様に線分の接続点において連続でなくてもよい。
【００４７】
また、上記実施の形態1, 2において、cos近似関数生成装置と、sin近似関数生成装置とを用いた構成としたが、cos近似関数と、sin近似関数とを共に生成することができ、かつその出力を選択信号によって切り替えて時分割多重化を行ない、出力する１つの近似関数生成装置を有する構成としてもよい。
【００４８】
また、上記実施の形態1, 2において、cos近似関数生成装置とsin近似関数生成装置に用いた近似関数の折れ線の数は、それぞれ同じ数で構成したが、cos近似関数と、sin近似関数とが、異なる折れ線の数で構成された近似関数を用いてもよい。
【００４９】
また、上記実施の形態1, 2において、cos近似関数生成装置を直線関数、もしくは折れ線関数で近似したが、近似関数として１−θ2/2を用いてもよい。
【００５０】
また、上記実施の形態1において、データ入れ替え装置の後に、符号反転制御装置を配置したが、両者の配置は、これを逆に入れ替えてもよい。
【００５１】
また、上記実施の形態2において、データ選択装置の後に、符号反転制御装置を配置したが、両者の配置は、これを逆に入れ替えてもよい。
【００５２】
【発明の効果】
以上のように、本発明にかかる三角関数生成装置によれば、アドレス生成装置と、cos関数に近似した近似関数を生成するcos近似関数生成装置と、cos誤差記憶装置と、sin関数に近似した近似関数を生成するsin近似関数生成装置と、sin誤差記憶装置と、cos近似関数生成装置の出力とcos誤差記憶装置の出力とを加算する第1の加算装置と、sin近似関数生成装置の出力とsin誤差記憶装置の出力とを加算する第2の加算装置とを備えたものとしたので、記憶しておくべき関数データの絶対値を縮小することができ、関数データの記憶のために必要とされる記憶装置の回路規模を削減することができる効果が得られる。
【００５３】
また、本発明にかかる三角関数生成装置によれば、cos/sin近似関数を１つの近似直線関数、もしくは２本以上の線分で構成された近似折れ線関数で構成することにより、簡単な構成の演算器で、cos/sin近似関数生成装置を実現することができ、近似関数生成装置の回路規模を削減することができる。
【００５４】
さらに、本発明にかかる三角関数生成装置によれば、（ｎ・π/４）〜（（ｎ＋１）・π/４）ラジアン（ただし、ｎは０から７までの整数）の範囲内でcos関数およびsin関数の近似関数を生成するとともに、その誤差を記憶した記憶装置から読み出した値とを加算することにより、cos関数またはsin関数のどちらか一方だけでなく、cos関数とsin関数とを同時に生成する必要がある場合でも、０〜π/4の角度の範囲のcos関数の誤差分、あるいはsin関数の誤差分を記憶した誤差記憶装置をそれぞれ１つ用いるだけで、時分割多重の必要なく、装置を実現することができる。
【００５５】
また、本発明にかかる三角関数生成方法によれば、アドレス生成ステップと、cos関数に近似した近似関数を生成するcos近似関数生成ステップと、cos誤差記憶装置と、sin関数に近似した近似関数を生成するsin近似関数生成ステップと、sin誤差記憶装置と、cos近似関数生成ステップの出力とcos誤差記憶装置の出力とを加算する第1の加算ステップと、sin近似関数生成ステップの出力とsin誤差記憶装置の出力とを加算する第2の加算ステップとを含むものとしたので、記憶しておくべき関数データの絶対値を縮小することができ、関数データの記憶のために必要とされる記憶装置の回路規模を削減することができる効果が得られる。
【００５６】
また、本発明にかかる三角関数生成方法によれば、cos/sin近似関数を１つの近似直線関数、もしくは２本以上の線分で構成された近似折れ線関数で構成することにより、簡単な構成の演算器で、cos/sin近似関数生成装置を実現することができ、近似関数生成装置の回路規模を削減することができる三角関数の生成方法が得られる効果がある。
【００５７】
さらに、本発明にかかる三角関数生成方法によれば、（ｎ・π/４）〜（（ｎ＋１）・π/４）ラジアン（ただし、ｎは０から７までの整数）の範囲内でcos関数およびsin関数の近似関数を生成するとともに、その誤差を記憶した記憶装置から読み出した値とを加算することにより、cos関数またはsin関数のどちらか一方だけでなく、cos関数とsin関数とを同時に生成する必要がある場合でも、０〜π/4の角度の範囲のcos関数の誤差分、あるいはsin関数の誤差分を記憶した誤差記憶装置をそれぞれ１つ用いるだけで、時分割多重の必要なく、装置を実現することができる三角関数の生成方法が得られる効果がある。
【図面の簡単な説明】
【図１】
本発明の実施の形態1による三角関数生成装置の構成図である。
【図２】
本発明の実施の形態1における近似関数の例を示す図である。
【図３】
本発明の実施の形態2による三角関数生成装置の構成図である。
【図４】
本発明の実施の形態2における近似関数の例を示す図である。
【符号の説明】
100  アドレス生成装置
200  cos近似直線関数生成装置
210  cos近似折れ線関数生成装置
250  cos誤差記憶装置
300  sin近似直線関数生成装置
310  sin近似折れ線関数生成装置
350  sin誤差記憶装置
400、450  加算装置
500  データ入れ替え装置
510  データ選択装置
600、610、650  符号反転制御装置
700  データ入れ替え制御装置
710  データ選択制御装置