(57)【特許請求の範囲】
【請求項１】
位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置において、
前記位相信号を用いて、前記理想関数と同調する第１鋸波信号を生成する第１鋸波生成部を備える主生成部と、
前記理想関数と、前記第１鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号を生成する誤差補正生成部と
を備え、
前記誤差補正生成部は、
前記位相信号を定数倍するとともに定数加算した調整信号を生成する調整部と、
前記調整信号を用いて、位相と周波数とが前記誤差補正信号と同じ三角波信号である第２三角波信号を生成する副生成部と、
前記第２三角波信号の波形の値域を調整し、前記誤差補正信号として生成する第２補正部と
を備え、
前記主生成部は、さらに、
前記第１鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成する加算部と、
前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する近似信号生成部と
を備えた三角関数近似装置。
【請求項２】
前記副生成部は、
前記調整信号を用いて、位相が前記第１鋸波信号の位相とずれており、かつ、周波数が前記第１鋸波信号の２倍である第２鋸波信号を生成する第２鋸波生成部と、
前記第２鋸波信号を用いて、周波数が前記第２鋸波信号と同じで、かつ、振幅が前記第２鋸波信号の２分の１の前記第２三角波信号を生成する第２折返波生成部と
を備えた請求項１に記載の三角関数近似装置。
【請求項３】
前記誤差補正信号は、
位相が前記理想関数と４分の１ずれており、かつ、周波数が前記理想関数の２倍であり、かつ、振幅が前記理想関数の４分の１である請求項２に記載の三角関数近似装置。
【請求項４】
前記第２鋸波生成部は、
前記調整信号の小数部を抽出することにより、前記第２鋸波信号を生成する請求項２または３に記載の三角関数近似装置。
【請求項５】
前記第２折返波生成部は、
前記第２鋸波信号から０．５を減算し、絶対値演算を行うことにより、前記第２三角波信号を生成する請求項２から４のいずれか１項に記載の三角関数近似装置。
【請求項６】
前記第２補正部は、
前記第２三角波信号に対して乗算および減算を施すことで波形の値域を調整する請求項２から５のいずれか１項に記載の三角関数近似装置。
【請求項７】
位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置の三角関数近似方法において、
主生成部が、前記位相信号を用いて、前記理想関数と同調する第１鋸波信号を生成し、
調整部が、前記位相信号を定数倍するとともに定数加算した調整信号を生成し、
副生成部が、前記調整信号を用いて、位相と周波数とが、前記第１鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号と同じ三角波信号である第２三角波信号を生成し、
第２補正部が、前記第２三角波信号の波形の値域を調整し、前記誤差補正信号を生成し、
加算部が、前記第１鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成し、
近似信号生成部が、前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する三角関数近似方法。
【請求項８】
位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置の三角関数近似プログラムにおいて、
前記位相信号を用いて、前記理想関数と同調する第１鋸波信号を生成する第１鋸波生成処理と、
前記位相信号を定数倍するとともに定数加算した調整信号を生成する調整処理と、
前記調整信号を用いて、位相と周波数とが、前記第１鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号と同じ三角波信号である第２三角波信号を生成する副生成処理と、
前記第２三角波信号の波形の値域を調整し、前記誤差補正信号を生成する第２補正処理と、
前記第１鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成する加算処理と、
前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する近似信号生成処理と
をコンピュータである前記三角関数近似装置に実行させる三角関数近似プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、余弦関数あるいは正弦関数といった三角関数を近似する三角関数近似装置、三角関数近似方法、および三角関数近似プログラムに関する。
【背景技術】
【０００２】
三角関数は、波動信号処理あるいは画像処理といった信号処理に、幅広く用いられる基礎的な関数である。波動信号処理は、具体例として、レーダーの分野で用いられる。画像処理は、具体例として、３ＤＣＧ（３−Ｄｉｍｅｎｓｉｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）の分野で用いられる。三角関数は超越関数である。よって、三角関数は、加算および乗算といった有限数の代数的演算によって計算することができない。したがって、三角関数の計算を計算機実装で実現する場合、近似計算手法、あるいは、メモリに格納した事前計算値を用いたテーブル参照法が用いられる。【０００３】
近似計算手法には、具体例として、テイラー展開といった多項式近似がある。非特許文献１には、回路実装に適した近似計算手法として、ＣＯＲＤＩＣ（Ｃｏｏｒｄｉｎａｔｅ
ｒｏｔａｔｉｏｎａｌ  ｄｉｇｉｔａｌ  ｃｏｍｐｕｔｅｒ）が開示されている。ＣＯＲＤＩＣは、電卓といった機器に広く用いられている。
非特許文献２には、簡易的な三角関数近似手法が開示されている。簡易的な三角関数近似手法の例として、剰余演算、減算、および絶対値演算の３演算のみで近似を実行する手法が開示されている。
また、特許文献１では、放物線信号と、予め記録した放物線信号と正弦波信号との誤差とに基づいて、正弦波を近似的に出力する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０４５６７４号公報
【非特許文献】
【０００５】
【非特許文献１】Ｖｏｌｄｅｒ，  Ｊａｃｋ  Ｅ．  （１９５９−０３−０３）．  ”Ｔｈｅ  ＣＯＲＤＩＣ  Ｃｏｍｐｕｔｉｎｇ  Ｔｅｃｈｎｉｑｕｅ”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｗｅｓｔｅｒｎ  Ｊｏｉｎｔ  Ｃｏｍｐｕｔｅｒ  Ｃｏｎｆｅｒｅｎｃｅ  （ＷＪＣＣ）  （ｐｒｅｓｅｎｔａｔｉｏｎ）．  Ｓａｎ  Ｆｒａｎｃｉｓｃｏ，  Ｃａｌｉｆｏｒｎｉａ，  ＵＳＡ：  Ｎａｔｉｏｎａｌ  Ｊｏｉｎｔ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｉｔｔｅｅ  （ＮＪＣＣ）：  ２５７−２６１．
【非特許文献２】Ｔａｋａｓｈｉ  Ｎｉｓｈｉｔｓｕｊｉ，  Ｔｏｍｏｙｏｓｈｉ  Ｓｈｉｍｏｂａｂａ，  Ｔａｋａｓｈｉ  Ｋａｋｕｅ，  Ｄａｉｓｕｋｅ  Ａｒａｉ  ａｎｄ  Ｔｏｍｏｙｏｓｈｉ  Ｉｔｏ，  ”Ｓｉｍｐｌｅ  ａｎｄ  ｆａｓｔ  ｃｏｓｉｎｅ  ａｐｐｒｏｘｉｍａｔｉｏｎ  ｍｅｔｈｏｄ  ｆｏｒ  ｃｏｍｐｕｔｅｒ−ｇｅｎｅｒａｔｅｄ  ｈｏｌｏｇｒａｍ  ｃａｌｃｕｌａｔｉｏｎ，”  Ｏｐｔｉｃｓ  Ｅｘｐｒｅｓｓ，  ２３，  ３２４６５−３２４７０  （２０１５．１２．１０）．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１に開示されている近似計算手法では、近似に反復計算を必要とする。よって、結果出力のレイテンシおよび回路規模が課題となる。
また、非特許文献２に開示されている三角関数近似手法では、近似精度の低さが課題となる。
また、特許文献１に開示されている技術では、放物線信号に対する正弦波信号の誤差を格納するメモリ量の大きさが実装上の課題となる。【０００７】
本発明は、少ない回路面積およびメモリ量で実装可能であり、かつ高精度な三角関数近似装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る三角関数近似装置は、位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置において、
前記位相信号を用いて、前記理想関数と同調する第１鋸波信号を生成する第１鋸波生成部を備える主生成部と、
前記理想関数と、前記第１鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号を生成する誤差補正生成部と
を備え、
前記誤差補正生成部は、
前記位相信号を定数倍するとともに定数加算した調整信号を生成する調整部と、
前記調整信号を用いて、位相と周波数とが前記誤差補正信号と同じ三角波信号である第２三角波信号を生成する副生成部と、
前記第２三角波信号の波形の値域を調整し、前記誤差補正信号として生成する第２補正部と
を備え、
前記主生成部は、さらに、
前記第１鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成する加算部と、
前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する近似信号生成部とを備えた。
【発明の効果】
【０００９】
本発明に係る三角関数近似装置は、三角関数の入力となる位相信号に対して、鋸波信号から三角波信号へと、順次変換することにより、理想関数に同調する三角波信号を生成する。そして、三角関数近似装置は、生成した三角波信号に、同じ位相信号から生成した誤差補正信号を重畳する。よって、本発明に係る三角関数近似装置によれば、小規模な計算回路、あるいは計算プログラムで、精度良く三角関数を近似できる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る三角関数近似装置の機能構成図。
【図２】実施の形態１に係る三角関数近似装置のハードウェア構成の一例。
【図３】実施の形態１に係る三角関数近似装置のハードウェア構成の他例。
【図４】実施の形態１に係る三角関数近似処理のフロー図。
【図５】実施の形態１に係る主生成処理を説明する図。
【図６】実施の形態１に係る誤差補正信号を説明する図。
【図７】実施の形態１に係る誤差補正生成処理を説明する図。
【図８】実施の形態１に係る誤差補正生成処理を説明する図。
【図９】実施の形態１に係る三角関数近似処理を説明する図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１２】
図１では、本実施の形態に係る三角関数近似装置１０の機能構成例を示す。
図２では、本実施の形態に係る三角関数近似装置１０のハードウェア構成の一例を示す。
図３では、本実施の形態に係る三角関数近似装置１０のハードウェア構成の他例を示す。
【００１３】
まず、三角関数近似装置１０の概要について説明する。
本実施の形態に係る三角関数近似装置１０は、三角関数に入力される位相信号５１を入力とし、三角関数の出力を近似信号５２として出力する。位相信号５１は、三角関数へ入力する入力信号である。すなわち、三角関数近似装置１０は、位相信号５１が入力された三角関数の出力を理想関数６１とし（図５参照）、理想関数６１に近似する近似信号５２を生成する。
三角関数近似装置１０は、位相信号５１に対して、簡易な演算処理を加えることにより、近似信号５２を生成する。より具体的には、三角関数近似装置１０は、位相信号５１に対して、剰余演算、減算、乗算、および絶対値演算の組み合わせで表現される処理を行う。これにより、三角関数近似装置１０は、三角関数の出力を近似した近似信号５２を、精度良く生成することができる。
三角関数近似装置１０により行われる動作は、三角関数近似方法、および三角関数近似プログラムに相当する。
【００１４】
実施の形態１．
＊＊＊構成の説明＊＊＊
次に、図１、図２、および図３を用いて、三角関数近似装置１０の機能構成例、およびハードウェア構成例を説明する。
【００１５】
図２に示すように、三角関数近似装置１０のハードウェア構成例の１つはコンピュータである。この構成例における三角関数近似装置１０は、信号入出力インターフェース２１と、プロセッサ２２と、記憶装置２３とのハードウェアを備える。プロセッサ２２は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１６】
信号入出力インターフェース２１は、センサといった信号発生源、あるいは表示装置といった入出力装置を接続する。信号入出力インターフェース２１は、具体例としては、ＵＳＢ、ＨＤＭＩ（登録商標）、ＩＥＥＥ１３９４の接続端子、または、ＮＩＣである。ＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略語である。ＨＤＭＩ（登録商標）は、Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅの略語である。ＮＩＣは、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略語である。
【００１７】
プロセッサ２２は、プロセッシングを行うＩＣである。プロセッサ２２は、具体例としては、ＣＰＵ、ＤＳＰ、あるいはＧＰＵである。ＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。ＤＳＰは、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略語である。ＧＰＵは、Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。
【００１８】
記憶装置２３は、メモリ２３１とストレージ２３２を備える。メモリ２３１の具体例としては、ＲＡＭである。ストレージ２３２の具体例としては、ＨＤＤである。また、ストレージ２３２は、ＳＤ（登録商標）メモリカード、ＣＦ、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体であってもよい。ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略語である。ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。ＳＤ（登録商標）メモリカードのＳＤ（登録商標）は、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌの略語である。ＣＦは、ＣｏｍｐａｃｔＦｌａｓｈの略語である。ＤＶＤは、Ｄｉｇｉｔａｌ
Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略語である。
【００１９】
また、図３に示すように、三角関数近似装置１０のハードウェア構成例の１つは、ディジタル回路である。この構成例における三角関数近似装置１０は、複数のディジタル回路ブロックで構成される。全てのディジタル回路ブロックは、信号線で接続されている。複数のディジタル回路ブロックとは、ビット抽出器７０１，７０８、加算器７０２，７０７、減算器７０３，７０５，７０９，７１１，７１２，７１４、乗算器７０６，７１３，７１５、および排他的論理和７０４，７１０である。
【００２０】
図１に示すように、三角関数近似装置１０は、機能構成要素として、主生成部１１と、誤差補正生成部１２と、第１補正部１３とを備える。主生成部１１は、第１鋸波生成部１１１と、加算部１１３と、第１折返波生成部１１２とを備える。誤差補正生成部１２は、調整部１２１と、副生成部１２２と、第２補正部１２３とを備える。副生成部１２２は、第２鋸波生成部１２２１と、第２第２折返波生成部１２２２とを備える。これらの機能はソフトウェア、あるいはディジタル回路によって実現される。
【００２１】
三角関数近似装置１０がソフトウェアで実現される場合、ストレージ２３２には、三角関数近似装置１０の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ２２によりメモリ２３１に読み込まれ、プロセッサ２２によって実行される。これにより、三角関数近似装置１０の各部の機能が実行される。なお、加算部１１３は、加算器により機能を実現する。
三角関数近似装置１０がディジタル回路によって実現される場合、第１鋸波生成部１１１は、入力信号の小数部のみを抽出するビット抽出器７０１によって構成される。第２鋸波生成部１２２１は、ビット抽出器７０８によって構成される。加算部１１３は、加算器７０２によって構成される。第１折返波生成部１１２は、減算器７０３，７０５、および排他的論理和７０４によって構成される。第２第２折返波生成部１２２２は、減算器７０９，７１１、および排他的論理和７１０によって構成される。調整部１２１は、乗算器７０６、および加算器７０７によって構成される。第１補正部１３は、減算器７１４、および乗算器７１５によって構成される。第２補正部１２３は、減算器７１２、および乗算器７１３によって構成される。なお、乗算器７０６，７１３，７１５は、それぞれ２のべき乗数の乗算を行うため、ビットシフトによる実装でも良い。
【００２２】
プロセッサとディジタル回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、三角関数近似装置１０の各部の機能は、プロセッシングサーキットリにより実現される。
【００２３】
三角関数近似装置１０の各部の「部」を「工程」に読み替えてもよい。また、以下に説明する各処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
【００２４】
＊＊＊＊動作の説明＊＊＊＊
図４は、本実施の形態に係る三角関数近似処理Ｓ１００のフロー図である。
図５は、本実施の形態に係る主生成処理を説明する図である。
図６は、本実施の形態に係る誤差補正信号を説明する図である。
図７は、本実施の形態に係る誤差補正生成処理を説明する図である。
図８は、本実施の形態に係る誤差補正生成処理を説明する図である。
図９は、本実施の形態に係る三角関数近似処理を説明する図である。
三角関数近似装置１０では、位相信号５１が、主生成部１１と誤差補正生成部１２に入力される。そして、三角関数近似装置１０では、第１補正部１３から近似信号５２が出力される。
【００２５】
＜主生成処理＞
主生成部１１は、位相信号５１に対し、鋸波生成処理Ｓ１０１と加算処理Ｓ１０６と折返波生成処理Ｓ１０７とを実行し、第１三角波信号５０２を出力する。
【００２６】
＜＜第１鋸波生成処理＞＞
ステップＳ１０１において、主生成部１１の第１鋸波生成部１１１は、位相信号５１を用いて、理想関数６１と同調する第１鋸波信号５０１を生成する。具体的には、第１鋸波生成部１１１は、位相信号５１を取得し、第１鋸波生成処理を実行する。第１鋸波生成部１１１は、位相信号５１に対し、所望の三角関数の周波数に同調する第１鋸波信号５０１を形成する。所望の三角関数を理想関数６１とする。理想関数６１とは、位相信号５１を入力する三角関数の出力である。図５では、理想関数６１を点線で表し、第１鋸波信号５０１を実線で表している。
ここで、具体例を用いて説明する。位相信号５１を、ｆ＝２πθで表される浮動小数点、あるいは固定小数点の信号とする。第１鋸波生成部１１１は、θの小数点部分を抽出する処理によって第１鋸波信号５０１を生成する。すなわち、第１鋸波生成部１１１は、θが１．０に達したタイミングでピークを持ち、値域が０．０から１．０である第１鋸波信号５０１を生成する。
この第１鋸波生成処理は、三角関数近似装置１０がディジタル回路で実装され、かつ、位相信号５１が固定小数点で実装されている場合、位相信号５１の小数部に相当するビット列の抽出によって実現できる。すなわち、第１鋸波生成部１１１の第１鋸波生成処理は、ビット抽出器７０１によって実現される。上述のように、位相信号５１、すなわち位相信号ｆは、２πとθの乗算で表される。このため、θが１．０に達するタイミングは位相信号ｆが２πの整数倍に達したタイミングと重なる。よって、第１鋸波生成部１１１から出力される第１鋸波信号５０１は、周期２πの三角関数に同調する。
【００２７】
＜＜加算処理＞＞
主生成部１１の加算部１１３は、第１鋸波信号５０１と誤差補正信号６０３とを加算し、補正鋸波信号５０１ａを生成する。なお、加算処理Ｓ１０６については後述する。
【００２８】
＜＜折返波生成処理＞＞
第１折返波生成部１１２は、加算部１１３から出力された補正鋸波信号５０１ａに対し、折返波生成処理を行うことにより、第１三角波信号５０２を生成する。なお、図５では、第１鋸波信号５０１に誤差補正信号６０３が加算されていない状態を説明する。すなわち、第１折返波生成部１１２が、第１鋸波生成部１１１から出力された第１鋸波信号５０１に対し、折返波生成処理を行う場合について説明する。加算部１１３から出力された補正鋸波信号５０１ａに対して折返波生成処理を行う第１折返波生成処理Ｓ１０７については後述する。
【００２９】
折返波生成処理は、第１鋸波信号５０１に対し、図５に示すように、信号波形上、０．５以下の信号に対して０．５を境に線対称となるように変換を行う処理である。
具体的には、第１折返波生成部１１２は、第１鋸波信号５０１から０．５を減算し、さらに、絶対値演算をかけることで、折返波生成処理を実行する。
この折返波生成処理は、三角関数近似装置１０がディジタル回路で実現される場合、０．５の減算は減算器７０３で実現する。また、絶対値演算は、減算器７０３の出力と符号ビットを入力に持つ排他的論理和７０４の出力と、減算器７０３の出力の符号ビットと排他的論理和７０４とを入力に持つ減算器７０５によって実現される。第１折返波生成部１１２の折返波生成処理は、θが０．５の整数倍に達するタイミングで信号を折り返す。すなわち、位相信号ｆがπの整数倍になるタイミングでの折り返しに相当するため、第１折返波生成部１１２の出力である第１三角波信号５０２は、理想関数６１に完全に同調する。また、第１折返波生成部１１２の出力である第１三角波信号５０２は、値域が０．０から０．５となる。
【００３０】
＜＜補正処理＞＞
第１補正部１３は、第１三角波信号５０２の値域を、理想関数６１と同じ−１．０から１．０に合わせるため、第１三角波信号５０２に対し、オフセットを加算し、定数を乗算する。主生成部１１の出力である第１三角波信号５０２は、値域が０．０から０．５のため、ここでは−０．２５を加算し、４を乗算する。三角関数近似装置１０がディジタル回路で実装される場合、この動作は減算器７１４による０．２５の減算と、乗算器７１５による０．５の乗算によって実現される。このように、第１補正部１３は、第１三角波信号５０２に対し、オフセットを加算し、定数を乗算することにより、図６の近似三角波信号６１ｘを生成する。なお、図６の近似三角波信号６１ｘは、誤差補正信号６０３を第１鋸波信号５０１に加算していない状態での近似信号である。誤差補正信号６０３を第１鋸波信号５０１に加算した場合の近似信号５２を出力する第１補正処理Ｓ１０８については後述する。
【００３１】
＜誤差補正信号生成処理＞
図６に示すように、誤差補正生成部１２は、理想関数６１と、誤差補正をしていない近似三角波信号６１ｘとの誤差を表した誤差関数６３を相殺する誤差補正信号６０３を生成する。近似三角波信号６１ｘは、第１鋸波信号５０１から生成され、位相、周波数、および振幅が理想関数６１と同じ三角波信号である。近似三角波信号６１ｘおよび誤差関数６３について、具体例を用いて以下に説明する。
【００３２】
図６において、点線は理想関数６１である。細点線は、誤差補正信号６０３を加算しなかった場合の主生成部１１の出力、すなわち、誤差補正をしていない近似三角波信号６１ｘである。細一点鎖線は、理想関数６１と、誤差補正をしていない近似三角波信号６１ｘとの誤差を表す誤差関数６３の例である。以下、図６の例を参照しながら、誤差補正生成部１２により生成される誤差補正信号６０３について説明する。
【００３３】
誤差補正信号６０３を加算しなかった場合の主生成部１１の出力、すなわち誤差補正をしていない近似三角波信号６１ｘをｆａ（θ）、理想関数６１をｆｉ（θ）＝ｃｏｓ（２πθ）とする。このとき、ｆａ（θ）とｆｉ（θ）との誤差関数ε（θ）は、ε（θ）＝ｆｉ（θ）−ｆａ（θ）で定義される。
【００３４】
図６では、説明のためθ（ｘ）＝ｘとした場合の例を示している。誤差関数が連続である区間の代表として、｛θ｜０≦θ＜０．５｝を考えたとき、同区間においてｆａ（θ）は、以下の数式１となる。
（数式１）  ｆａ（θ）＝−４θ＋１
そのため、誤差関数ε（θ）は、以下の数式２で表される正弦関数となる。
（数式２）  ε（θ）＝ｃｏｓ（２πθ）＋４θ−１
【００３５】
数式２より、同区間においてε（θ）＝０を満たすθは、０、０．２５、０．５の３点である。また、数式２は、以下の数式３および数式４に示すθにおいて極値を取る。そして、当該範囲では、ｎ＝０のとき、すなわち、θ≒０．１１，０．３９で極値を取り、ε（θ）｜θ＝０．１１，０．３９≒±０．２１となる。したがって、誤差関数ε（θ）は、同区間において、およそ、−０．２１から０．２１の値域を持ち、正弦波に類似した波形をもつ関数となる。誤差関数ε（θ）は理想関数６１に対してπ／２だけ位相シフト、すなわち正弦関数に対して余弦関数に類似した波形を持つ関数となり、倍の周波数を持っている。また、図６に示す通り、同区間に隣接する区間（例えば｛θ｜０．５≦θ＜１．０｝）では接続点に対して対称な波形となる。この特性は、他の区間においても同様である。したがって、誤差補正生成部１２は、この特性を持つ数式２の誤差関数を相殺する誤差補正信号６０３を生成する。
【００３６】
（数式３）  θ＝（２ｎπ＋π−ｓｉｎ−１（２／π））／２π，ｎ∈Ｚ
（数式４）  θ＝（２ｎπ＋ｓｉｎ−１（２／π））／２π，ｎ∈Ｚ
【００３７】
次に、図７および図８を用いて、誤差補正生成部１２による誤差補正生成処理について説明する。
【００３８】
＜＜調整処理＞＞
誤差補正生成部１２の調整部１２１は、位相信号５１を定数倍するとともに定数加算した調整信号６０４を生成する。調整部１２１は、位相信号５１に対して、定数倍および定数加算をすることで、後段出力の位相および周波数変調を実現する調整処理を実行する。
ステップＳ１０２において、調整部１２１は、図７に示すように、位相信号５１を２倍し、さらに０．２５を加算し、調整信号６０４を生成する。この調整部１２１による調整処理は、三角関数近似装置１０がディジタル回路で実現される場合、乗算器７０６を用いた定数２の乗算と、加算器７０７を用いた０．２５の加算で実現される。
【００３９】
＜＜副生成処理＞＞
次に、副生成部１２２は、調整信号６０４を用いて、位相と周波数とが誤差補正信号６０３と同じ三角波信号である第２三角波信号６０２を生成する。副生成部１２２の構成および機能は、主生成部１１と同様である。第２鋸波生成部１２２１と第２折返波生成部１２２２は、主生成部１１における第１鋸波生成部１１１と第１折返波生成部１１２と同様の構成および機能を有する。
【００４０】
＜＜＜第２鋸波生成処理＞＞＞
ステップＳ１０３において、副生成部１２２の第２鋸波生成部１２２１は、調整部１２１により生成された調整信号６０４を取得する。図７に示すように、第２鋸波生成部１２２１は、調整信号６０４を用いて、位相が第１鋸波信号５０１の位相とずれており、かつ、周波数が第１鋸波信号５０１の２倍である第２鋸波信号６０１を生成する。第２鋸波生成部１２２１は、調整信号６０４に対して、小数部のみを抽出することで第２鋸波信号６０１を生成する。主生成部１１と同様に、入力信号が０．５に達するタイミングで折り返された三角波信号を出力するために、副生成部１２２には、調整部１２１によって２倍された位相信号が入力される。よって、副生成部１２２は、主生成部１１の出力に対して倍の周期を持つ出力を得ることができる。また、副生成部１２２は、振幅の１／４に相当する０．２５を加算した位相信号が入力されることで、１／４周期位相シフトした出力を得られる。第２鋸波生成処理は、上述した鋸波生成処理と同様である。
【００４１】
＜＜＜第２折返波生成処理＞＞＞
ステップＳ１０４において、図８に示すように、副生成部１２２の第２折返波生成部１２２２は、第２三角波信号６０２を出力する。第２折返波生成部１２２２は、第２鋸波信号６０１を用いて、周波数が第２鋸波信号６０１と同じで、かつ、振幅が第２鋸波信号６０１の２分の１である第２三角波信号６０２を生成する。具体的には、第２折返波生成部１２２２は、第２鋸波信号６０１から０．５を減算し、絶対値演算を行うことにより、第２三角波信号６０２を生成する。第２折返波生成処理は、上述した折返波生成処理と同様である。
また、三角関数近似装置１０がディジタル回路で実現される場合の副生成部１２２の動作は、主生成部１１の動作と同様である。
【００４２】
＜＜第２補正処理＞＞
ステップＳ１０５において、第２補正部１２３は、第２三角波信号６０２の波形の値域を調整し、誤差補正信号６０３として生成する第２補正処理を実行する。第２補正部１２３は、第２三角波信号６０２に対して乗算および減算を施すことで波形の値域を調整する。具体的には、第２補正部１２３は、値域が０．０から０．５である第２三角波信号６０２を、誤差関数ε（θ）の値域に合わせる。第２補正部１２３は、第２三角波信号６０２を誤差関数ε（θ）の値域に合わせるため、オフセットを加算し、定数を乗算する。第２補正部１２３は、オフセットを加算し、定数を乗算することにより、第２三角波信号６０２を誤差補正信号６０３として生成する。
具体的には、第２補正部１２３は、０．２５を減算し、０．２５を乗算することで、第２三角波信号６０２を値域が−０．０６２５から０．０６２５の信号にできる。この場合、厳密には誤差関数ε（θ）の値域と合致しないが、２のべき乗数による処理とすることで、ビットシフト演算が可能になり、演算コストを抑えることができる。三角関数近似装置１０がディジタル回路で実装される場合、第２補正処理は、減算器７１２による０．２５の減算と、乗算器７１３による０．２５の乗算によって実現される。
誤差関数ε（θ）は、値域が−１．０から１．０の理想関数と、第１補正部１３によってフィッティングされた補正無しの近似信号５２との差分により表現される。一方、誤差補正信号６０３は、第１補正部１３を通過する前、すなわち値域が０から０．５（幅は理想関数の４分の１）となる第１三角波信号５０２を生成する際に、第１鋸波信号に加算される。よって、誤差補正信号６０３の値域の幅は、０．５の４分の１となる必要がある。具体的には、第２補正部１２３は、第２三角波信号６０２の値域０から０．５を、減算器７１２により−０．２５から０．２５とする。そして、第２補正部１２３は、その値域を乗算器７１３により４分の１とし、−０．０６２５から０．０６２５とする。
【００４３】
次に、図９を用いて、ステップＳ１０６の加算処理、およびステップＳ１０７の第１折返波生成処理について説明する。
【００４４】
＜＜加算処理（ステップＳ１０６）＞＞
ステップＳ１０６では、加算部１１３は、第１鋸波信号５０１と誤差補正信号６０３とを加算し、補正鋸波信号５０１ａを生成する加算処理を行う。図９に示すように、誤差補正信号６０３は、位相が理想関数６１と約４分の１ずれており、かつ、周波数が理想関数６１の約２倍であり、かつ、振幅が理想関数６１の約４分の１である。
【００４５】
＜近似信号生成処理＞
第１折返波生成部１１２と第１補正部１３とを近似信号生成部１１４とする。第１折返波生成処理と第１補正処理により、近似信号生成部１１４は、補正鋸波信号５０１ａを用いて、位相、周波数、および振幅が理想関数６１と同じ三角波信号を近似信号５２として生成する。
【００４６】
＜＜第１折返波生成処理（ステップＳ１０７）＞＞
ステップＳ１０７では、第１折返波生成部１１２は、加算部１１３から出力された補正鋸波信号５０１ａに対し、上述した折返波生成処理を行う。第１折返波生成部１１２は、補正鋸波信号５０１ａに対し折返波生成処理を行うことにより、図９の第１三角波信号５０２を生成する。
【００４７】
＜第１補正処理＞
ステップＳ１０８において、第１補正部１３は、第１三角波信号５０２の値域を、理想関数６１と同じ−１．０から１．０に合わせるため、第１三角波信号５０２に対し、オフセットを加算し、定数を乗算する。主生成部１１の出力である第１三角波信号５０２は、値域０．０から０．５である。よって、第１補正部１３は、第１三角波信号５０２に対し、−０．２５を加算し、４を乗算する。三角関数近似装置１０がディジタル回路で実装される場合、この動作は減算器７１４による０．２５の減算と、乗算器７１５による０．５の乗算によって実現される。このように、第１補正部１３は、図９の第１三角波信号５０２に対し、オフセットを加算し、定数を乗算することにより、図９の近似信号５２を生成する。
【００４８】
なお、図８の０．５≦θ＜１．０の範囲、および、０．５≦θ＜１．０以降の１周期後半の範囲では、誤差関数ε（θ）に対して誤差補正関数６０３が逆位相になる。よって、上記範囲では誤差を増幅しているように見える。しかし、本実施の形態では、上記範囲でも誤差を増幅しないために、誤差補正信号６０３を第１鋸波信号に加算している。誤差関数が半周期毎に逆位相になるのは、第１折返波生成部による折返し処理が原因である。したがって、第１折返波生成部の前に誤差補正信号を第１鋸波信号に加算し、第１鋸波信号と併せて折り返すことで、誤差補正信号と第１鋸波信号とを同時に逆位相としている。
【００４９】
＊＊＊＊本実施の形態の効果の説明＊＊＊＊
以上のように、本実施の形態に係る三角関数近似装置１０では、主生成部が、入力された位相信号に対して、鋸波信号と三角波信号とを順次生成する。そして、主生成部は、所望の三角関数に同調する三角波信号を生成する。また、副生成部は、同じ位相信号を入力とし、乗算と加算を行い、調整信号を生成する。そして、副生成部は、調整信号に対して、同様に鋸波信号と三角波信号とを順次生成する。そして、副生成部は、三角波信号の値域を調整した誤差補正信号を生成する。そして、主生成部は、三角波信号の生成過程において誤差補正信号を鋸波信号に加算する。よって、本実施の形態に係る三角関数近似装置１０によれば、所望の三角関数に同調し、かつ、より類似した誤差の小さい三角関数の近似信号を出力できる。
【００５０】
また、本実施の形態に係る三角関数近似装置１０では、近似三角波信号は、主生成部が位相信号に対して簡易な演算処理を加えることで得られる。また、誤差補正生成部が、同じ位相信号入力を調整部、主生成部と同様の構成をもつ副生成部、および波形補正部によって構成される。三角関数近似装置１０では、加算部が、誤差補正生成部の出力信号を、第１鋸波信号に加算する。これにより、三角関数近似装置１０では、主生成部の所望の三角関数に対する誤差を低減し、近似精度を改善する。また、三角関数近似装置１０では、計算負荷の高い三角関数（余弦関数、正弦関数）の実装において、少ない計算負荷で高精度な近似出力を得ることができる。
【００５１】
以上のように、本実施の形態に係る三角関数近似装置１０では、位相信号から、誤差信号を相殺する信号出力を得ることができる。よって、本実施の形態に係る三角関数近似装置１０によれば、誤差補正に伴う演算負荷を小さくし、回路規模を小さくすることができる。また、本実施の形態に係る三角関数近似装置１０では、実装によっては、主生成部を再帰的に使用でき、誤差補正に伴う追加回路を小さくすることができる。
【００５２】
＊＊＊＊他の構成＊＊＊＊
本実施の形態に係る三角関数近似装置は、主生成部の後段に第１補正部が配置されている。そして、第１補正部が、−１．０から１．０の値域を持ち、理想関数に類似する近似信号を出力する。しかし、主生成部の出力波形と第１補正部の出力波形の概形は相似関係にあるため、三角関数としての絶対値を要しない場合は、主生成部の出力を近似信号としてもよい。具体例としては、波動シミュレーションにおいて、複数の波源が作る複素振幅分布の位相分布を求める場合のように、三角関数を用いて導出される値同士の相対値が必要な場合には有効である。
【００５３】
本実施の形態では、理想関数の値域を−１．０から１．０として説明した。しかし、実装系によっては、値域が、０．０から１．０のように、正数に正規化された関数を用いてもよい。正数に正規化された関数を用いる分野には、例えば、ロボット工学の姿勢制御がある。また、光学シミュレーションにおいて、複数の光源がつくる波面の位相を求める問題の場合、複素数で表される波面の実部および虚部の相対値から位相を算出するため、三角関数の値域は重要ではなくなる。
【００５４】
実施の形態１では、三角関数近似装置の各部を独立した機能ブロックとして説明した。しかし、三角関数近似装置の構成は、上述した実施の形態のような構成でなくてもよい。三角関数近似装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。
【００５５】
実施の形態１のうち、複数の部分を組み合わせて実施しても構わない。あるいは、実施の形態１のうち、１つの部分を実施しても構わない。その他、実施の形態１を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
【符号の説明】
【００５６】
１０  三角関数近似装置、１１  主生成部、１１１  第１鋸波生成部、１２２１  第２鋸波生成部、１１２  第１折返波生成部、１２２２  第２折返波生成部、１１３  加算部、１１４  近似信号生成部、１２  誤差補正生成部、１２１  調整部、１２２  副生成部、１３  第１補正部、１２３  第２補正部、２１  信号入出力インターフェース、２２  プロセッサ、２３  記憶装置、２３１  メモリ、２３２  ストレージ、７０１  ビット抽出器、７０２  加算器、７０３  減算器、７０４  排他的論理和、７０５  減算器、７０６  乗算器、７０７  加算器、７０８  ビット抽出器、７０９  減算器、７１０  排他的論理和、７１１  減算器、７１２  減算器、７１３  乗算器、７１４  減算器、７１５  乗算器、５１  位相信号、５２  近似信号、６１ｘ  近似三角波信号、５０１  第１鋸波信号、６０１  第２鋸波信号、５０１ａ  補正鋸波信号、５０２  第１三角波信号、６０２  第２三角波信号、６０３  誤差補正信号、６０４  調整信号、６１  理想関数、６３  誤差関数。
【要約】
主生成部（１１）が、位相信号（５１）を用いて理想関数と同調する第１鋸波信号（５０１）を生成する。調整部（１２１）が、位相信号（５１）を定数倍するとともに定数加算した調整信号（６０４）を生成する。副生成部（１２２）が、調整信号（６０４）を用いて、位相と周波数とが、第１鋸波信号（５０１）から生成された近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号（６０３）と同じ第２三角波信号（６０２）を生成する。第２補正部（１２３）が、第２三角波信号（６０２）の波形の値域を調整し、誤差補正信号（６０３）を生成する。加算部（１１３）が、第１鋸波信号（５０１）と誤差補正信号（６０３）とを加算し、補正鋸波信号（５０１ａ）を生成する。近似信号生成部（１１４）が、補正鋸波信号（５０１ａ）を用いて、近似信号（５２）を生成する。【図１】
0006548855.tif 000002
【図２】
0006548855.tif 000003
【図３】
0006548855.tif 000004
【図４】
0006548855.tif 000005
【図５】
0006548855.tif 000006
【図６】
0006548855.tif 000007
【図７】
0006548855.tif 000008
【図８】
0006548855.tif 000009
【図９】
0006548855.tif 000010