JP6548855B1 - 三角関数近似装置、三角関数近似方法、および三角関数近似プログラム - Google Patents

三角関数近似装置、三角関数近似方法、および三角関数近似プログラム Download PDF

Info

Publication number
JP6548855B1
JP6548855B1 JP2019512852A JP2019512852A JP6548855B1 JP 6548855 B1 JP6548855 B1 JP 6548855B1 JP 2019512852 A JP2019512852 A JP 2019512852A JP 2019512852 A JP2019512852 A JP 2019512852A JP 6548855 B1 JP6548855 B1 JP 6548855B1
Authority
JP
Japan
Prior art keywords
signal
sawtooth
function
phase
triangular wave
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
JP2019512852A
Other languages
English (en)
Other versions
JPWO2019043814A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6548855B1 publication Critical patent/JP6548855B1/ja
Publication of JPWO2019043814A1 publication Critical patent/JPWO2019043814A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03BGENERATION OF OSCILLATIONS, DIRECTLY OR BY FREQUENCY-CHANGING, BY CIRCUITS EMPLOYING ACTIVE ELEMENTS WHICH OPERATE IN A NON-SWITCHING MANNER; GENERATION OF NOISE BY SUCH CIRCUITS
    • H03B28/00Generation of oscillations by methods not covered by groups H03B5/00 - H03B27/00, including modification of the waveform to produce sinusoidal oscillations

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Measuring Volume Flow (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

主生成部(11)が、位相信号(51)を用いて理想関数と同調する第1鋸波信号(501)を生成する。調整部(121)が、位相信号(51)を定数倍するとともに定数加算した調整信号(604)を生成する。副生成部(122)が、調整信号(604)を用いて、位相と周波数とが、第1鋸波信号(501)から生成された近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号(603)と同じ第2三角波信号(602)を生成する。第2補正部(123)が、第2三角波信号(602)の波形の値域を調整し、誤差補正信号(603)を生成する。加算部(113)が、第1鋸波信号(501)と誤差補正信号(603)とを加算し、補正鋸波信号(501a)を生成する。近似信号生成部(114)が、補正鋸波信号(501a)を用いて、近似信号(52)を生成する。

Description

本発明は、余弦関数あるいは正弦関数といった三角関数を近似する三角関数近似装置、三角関数近似方法、および三角関数近似プログラムに関する。
三角関数は、波動信号処理あるいは画像処理といった信号処理に、幅広く用いられる基礎的な関数である。波動信号処理は、具体例として、レーダーの分野で用いられる。画像処理は、具体例として、3DCG(3−Dimensional Computer Graphics)の分野で用いられる。三角関数は超越関数である。よって、三角関数は、加算および乗算といった有限数の代数的演算によって計算することができない。したがって、三角関数の計算を計算機実装で実現する場合、近似計算手法、あるいは、メモリに格納した事前計算値を用いたテーブル参照法が用いられる。
近似計算手法には、具体例として、テイラー展開といった多項式近似がある。非特許文献1には、回路実装に適した近似計算手法として、CORDIC(Coordinate
rotational digital computer)が開示されている。CORDICは、電卓といった機器に広く用いられている。
非特許文献2には、簡易的な三角関数近似手法が開示されている。簡易的な三角関数近似手法の例として、剰余演算、減算、および絶対値演算の3演算のみで近似を実行する手法が開示されている。
また、特許文献1では、放物線信号と、予め記録した放物線信号と正弦波信号との誤差とに基づいて、正弦波を近似的に出力する技術が開示されている。
特開2005−045674号公報
Volder, Jack E. (1959−03−03). "The CORDIC Computing Technique" Proceedings of the Western Joint Computer Conference (WJCC) (presentation). San Francisco, California, USA: National Joint Computer Committee (NJCC): 257−261. Takashi Nishitsuji, Tomoyoshi Shimobaba, Takashi Kakue, Daisuke Arai and Tomoyoshi Ito, "Simple and fast cosine approximation method for computer−generated hologram calculation," Optics Express, 23, 32465−32470 (2015.12.10).
非特許文献1に開示されている近似計算手法では、近似に反復計算を必要とする。よって、結果出力のレイテンシおよび回路規模が課題となる。
また、非特許文献2に開示されている三角関数近似手法では、近似精度の低さが課題となる。
また、特許文献1に開示されている技術では、放物線信号に対する正弦波信号の誤差を格納するメモリ量の大きさが実装上の課題となる。
本発明は、少ない回路面積およびメモリ量で実装可能であり、かつ高精度な三角関数近似装置を提供することを目的とする。
本発明に係る三角関数近似装置は、位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置において、
前記位相信号を用いて、前記理想関数と同調する第1鋸波信号を生成する第1鋸波生成部を備える主生成部と、
前記理想関数と、前記第1鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号を生成する誤差補正生成部と
を備え、
前記誤差補正生成部は、
前記位相信号を定数倍するとともに定数加算した調整信号を生成する調整部と、
前記調整信号を用いて、位相と周波数とが前記誤差補正信号と同じ三角波信号である第2三角波信号を生成する副生成部と、
前記第2三角波信号の波形の値域を調整し、前記誤差補正信号として生成する第2補正部と
を備え、
前記主生成部は、さらに、
前記第1鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成する加算部と、
前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する近似信号生成部とを備えた。
本発明に係る三角関数近似装置は、三角関数の入力となる位相信号に対して、鋸波信号から三角波信号へと、順次変換することにより、理想関数に同調する三角波信号を生成する。そして、三角関数近似装置は、生成した三角波信号に、同じ位相信号から生成した誤差補正信号を重畳する。よって、本発明に係る三角関数近似装置によれば、小規模な計算回路、あるいは計算プログラムで、精度良く三角関数を近似できる。
実施の形態1に係る三角関数近似装置の機能構成図。 実施の形態1に係る三角関数近似装置のハードウェア構成の一例。 実施の形態1に係る三角関数近似装置のハードウェア構成の他例。 実施の形態1に係る三角関数近似処理のフロー図。 実施の形態1に係る主生成処理を説明する図。 実施の形態1に係る誤差補正信号を説明する図。 実施の形態1に係る誤差補正生成処理を説明する図。 実施の形態1に係る誤差補正生成処理を説明する図。 実施の形態1に係る三角関数近似処理を説明する図。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
図1では、本実施の形態に係る三角関数近似装置10の機能構成例を示す。
図2では、本実施の形態に係る三角関数近似装置10のハードウェア構成の一例を示す。
図3では、本実施の形態に係る三角関数近似装置10のハードウェア構成の他例を示す。
まず、三角関数近似装置10の概要について説明する。
本実施の形態に係る三角関数近似装置10は、三角関数に入力される位相信号51を入力とし、三角関数の出力を近似信号52として出力する。位相信号51は、三角関数へ入力する入力信号である。すなわち、三角関数近似装置10は、位相信号51が入力された三角関数の出力を理想関数61とし(図5参照)、理想関数61に近似する近似信号52を生成する。
三角関数近似装置10は、位相信号51に対して、簡易な演算処理を加えることにより、近似信号52を生成する。より具体的には、三角関数近似装置10は、位相信号51に対して、剰余演算、減算、乗算、および絶対値演算の組み合わせで表現される処理を行う。これにより、三角関数近似装置10は、三角関数の出力を近似した近似信号52を、精度良く生成することができる。
三角関数近似装置10により行われる動作は、三角関数近似方法、および三角関数近似プログラムに相当する。
実施の形態1.
***構成の説明***
次に、図1、図2、および図3を用いて、三角関数近似装置10の機能構成例、およびハードウェア構成例を説明する。
図2に示すように、三角関数近似装置10のハードウェア構成例の1つはコンピュータである。この構成例における三角関数近似装置10は、信号入出力インターフェース21と、プロセッサ22と、記憶装置23とのハードウェアを備える。プロセッサ22は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
信号入出力インターフェース21は、センサといった信号発生源、あるいは表示装置といった入出力装置を接続する。信号入出力インターフェース21は、具体例としては、USB、HDMI(登録商標)、IEEE1394の接続端子、または、NICである。USBは、Universal Serial Busの略語である。HDMI(登録商標)は、High−Definition Multimedia Interfaceの略語である。NICは、Network Interface Cardの略語である。
プロセッサ22は、プロセッシングを行うICである。プロセッサ22は、具体例としては、CPU、DSP、あるいはGPUである。ICは、Integrated Circuitの略語である。CPUは、Central Processing Unitの略語である。DSPは、Digital Signal Processorの略語である。GPUは、Graphics Processing Unitの略語である。
記憶装置23は、メモリ231とストレージ232を備える。メモリ231の具体例としては、RAMである。ストレージ232の具体例としては、HDDである。また、ストレージ232は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。RAMは、Random Access Memoryの略語である。HDDは、Hard Disk Driveの略語である。SD(登録商標)メモリカードのSD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlashの略語である。DVDは、Digital
Versatile Diskの略語である。
また、図3に示すように、三角関数近似装置10のハードウェア構成例の1つは、ディジタル回路である。この構成例における三角関数近似装置10は、複数のディジタル回路ブロックで構成される。全てのディジタル回路ブロックは、信号線で接続されている。複数のディジタル回路ブロックとは、ビット抽出器701,708、加算器702,707、減算器703,705,709,711,712,714、乗算器706,713,715、および排他的論理和704,710である。
図1に示すように、三角関数近似装置10は、機能構成要素として、主生成部11と、誤差補正生成部12と、第1補正部13とを備える。主生成部11は、第1鋸波生成部111と、加算部113と、第1折返波生成部112とを備える。誤差補正生成部12は、調整部121と、副生成部122と、第2補正部123とを備える。副生成部122は、第2鋸波生成部1221と、第2第2折返波生成部1222とを備える。これらの機能はソフトウェア、あるいはディジタル回路によって実現される。
三角関数近似装置10がソフトウェアで実現される場合、ストレージ232には、三角関数近似装置10の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ22によりメモリ231に読み込まれ、プロセッサ22によって実行される。これにより、三角関数近似装置10の各部の機能が実行される。なお、加算部113は、加算器により機能を実現する。
三角関数近似装置10がディジタル回路によって実現される場合、第1鋸波生成部111は、入力信号の小数部のみを抽出するビット抽出器701によって構成される。第2鋸波生成部1221は、ビット抽出器708によって構成される。加算部113は、加算器702によって構成される。第1折返波生成部112は、減算器703,705、および排他的論理和704によって構成される。第2第2折返波生成部1222は、減算器709,711、および排他的論理和710によって構成される。調整部121は、乗算器706、および加算器707によって構成される。第1補正部13は、減算器714、および乗算器715によって構成される。第2補正部123は、減算器712、および乗算器713によって構成される。なお、乗算器706,713,715は、それぞれ2のべき乗数の乗算を行うため、ビットシフトによる実装でも良い。
プロセッサとディジタル回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、三角関数近似装置10の各部の機能は、プロセッシングサーキットリにより実現される。
三角関数近似装置10の各部の「部」を「工程」に読み替えてもよい。また、以下に説明する各処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
****動作の説明****
図4は、本実施の形態に係る三角関数近似処理S100のフロー図である。
図5は、本実施の形態に係る主生成処理を説明する図である。
図6は、本実施の形態に係る誤差補正信号を説明する図である。
図7は、本実施の形態に係る誤差補正生成処理を説明する図である。
図8は、本実施の形態に係る誤差補正生成処理を説明する図である。
図9は、本実施の形態に係る三角関数近似処理を説明する図である。
三角関数近似装置10では、位相信号51が、主生成部11と誤差補正生成部12に入力される。そして、三角関数近似装置10では、第1補正部13から近似信号52が出力される。
<主生成処理>
主生成部11は、位相信号51に対し、鋸波生成処理S101と加算処理S106と折返波生成処理S107とを実行し、第1三角波信号502を出力する。
<<第1鋸波生成処理>>
ステップS101において、主生成部11の第1鋸波生成部111は、位相信号51を用いて、理想関数61と同調する第1鋸波信号501を生成する。具体的には、第1鋸波生成部111は、位相信号51を取得し、第1鋸波生成処理を実行する。第1鋸波生成部111は、位相信号51に対し、所望の三角関数の周波数に同調する第1鋸波信号501を形成する。所望の三角関数を理想関数61とする。理想関数61とは、位相信号51を入力する三角関数の出力である。図5では、理想関数61を点線で表し、第1鋸波信号501を実線で表している。
ここで、具体例を用いて説明する。位相信号51を、f=2πθで表される浮動小数点、あるいは固定小数点の信号とする。第1鋸波生成部111は、θの小数点部分を抽出する処理によって第1鋸波信号501を生成する。すなわち、第1鋸波生成部111は、θが1.0に達したタイミングでピークを持ち、値域が0.0から1.0である第1鋸波信号501を生成する。
この第1鋸波生成処理は、三角関数近似装置10がディジタル回路で実装され、かつ、位相信号51が固定小数点で実装されている場合、位相信号51の小数部に相当するビット列の抽出によって実現できる。すなわち、第1鋸波生成部111の第1鋸波生成処理は、ビット抽出器701によって実現される。上述のように、位相信号51、すなわち位相信号fは、2πとθの乗算で表される。このため、θが1.0に達するタイミングは位相信号fが2πの整数倍に達したタイミングと重なる。よって、第1鋸波生成部111から出力される第1鋸波信号501は、周期2πの三角関数に同調する。
<<加算処理>>
主生成部11の加算部113は、第1鋸波信号501と誤差補正信号603とを加算し、補正鋸波信号501aを生成する。なお、加算処理S106については後述する。
<<折返波生成処理>>
第1折返波生成部112は、加算部113から出力された補正鋸波信号501aに対し、折返波生成処理を行うことにより、第1三角波信号502を生成する。なお、図5では、第1鋸波信号501に誤差補正信号603が加算されていない状態を説明する。すなわち、第1折返波生成部112が、第1鋸波生成部111から出力された第1鋸波信号501に対し、折返波生成処理を行う場合について説明する。加算部113から出力された補正鋸波信号501aに対して折返波生成処理を行う第1折返波生成処理S107については後述する。
折返波生成処理は、第1鋸波信号501に対し、図5に示すように、信号波形上、0.5以下の信号に対して0.5を境に線対称となるように変換を行う処理である。
具体的には、第1折返波生成部112は、第1鋸波信号501から0.5を減算し、さらに、絶対値演算をかけることで、折返波生成処理を実行する。
この折返波生成処理は、三角関数近似装置10がディジタル回路で実現される場合、0.5の減算は減算器703で実現する。また、絶対値演算は、減算器703の出力と符号ビットを入力に持つ排他的論理和704の出力と、減算器703の出力の符号ビットと排他的論理和704とを入力に持つ減算器705によって実現される。第1折返波生成部112の折返波生成処理は、θが0.5の整数倍に達するタイミングで信号を折り返す。すなわち、位相信号fがπの整数倍になるタイミングでの折り返しに相当するため、第1折返波生成部112の出力である第1三角波信号502は、理想関数61に完全に同調する。また、第1折返波生成部112の出力である第1三角波信号502は、値域が0.0から0.5となる。
<<補正処理>>
第1補正部13は、第1三角波信号502の値域を、理想関数61と同じ−1.0から1.0に合わせるため、第1三角波信号502に対し、オフセットを加算し、定数を乗算する。主生成部11の出力である第1三角波信号502は、値域が0.0から0.5のため、ここでは−0.25を加算し、4を乗算する。三角関数近似装置10がディジタル回路で実装される場合、この動作は減算器714による0.25の減算と、乗算器715による0.5の乗算によって実現される。このように、第1補正部13は、第1三角波信号502に対し、オフセットを加算し、定数を乗算することにより、図6の近似三角波信号61xを生成する。なお、図6の近似三角波信号61xは、誤差補正信号603を第1鋸波信号501に加算していない状態での近似信号である。誤差補正信号603を第1鋸波信号501に加算した場合の近似信号52を出力する第1補正処理S108については後述する。
<誤差補正信号生成処理>
図6に示すように、誤差補正生成部12は、理想関数61と、誤差補正をしていない近似三角波信号61xとの誤差を表した誤差関数63を相殺する誤差補正信号603を生成する。近似三角波信号61xは、第1鋸波信号501から生成され、位相、周波数、および振幅が理想関数61と同じ三角波信号である。近似三角波信号61xおよび誤差関数63について、具体例を用いて以下に説明する。
図6において、点線は理想関数61である。細点線は、誤差補正信号603を加算しなかった場合の主生成部11の出力、すなわち、誤差補正をしていない近似三角波信号61xである。細一点鎖線は、理想関数61と、誤差補正をしていない近似三角波信号61xとの誤差を表す誤差関数63の例である。以下、図6の例を参照しながら、誤差補正生成部12により生成される誤差補正信号603について説明する。
誤差補正信号603を加算しなかった場合の主生成部11の出力、すなわち誤差補正をしていない近似三角波信号61xをf(θ)、理想関数61をf(θ)=cos(2πθ)とする。このとき、f(θ)とf(θ)との誤差関数ε(θ)は、ε(θ)=f(θ)−f(θ)で定義される。
図6では、説明のためθ(x)=xとした場合の例を示している。誤差関数が連続である区間の代表として、{θ|0≦θ<0.5}を考えたとき、同区間においてf(θ)は、以下の数式1となる。
(数式1) f(θ)=−4θ+1
そのため、誤差関数ε(θ)は、以下の数式2で表される正弦関数となる。
(数式2) ε(θ)=cos(2πθ)+4θ−1
数式2より、同区間においてε(θ)=0を満たすθは、0、0.25、0.5の3点である。また、数式2は、以下の数式3および数式4に示すθにおいて極値を取る。そして、当該範囲では、n=0のとき、すなわち、θ≒0.11,0.39で極値を取り、ε(θ)|θ=0.11,0.39≒±0.21となる。したがって、誤差関数ε(θ)は、同区間において、およそ、−0.21から0.21の値域を持ち、正弦波に類似した波形をもつ関数となる。誤差関数ε(θ)は理想関数61に対してπ/2だけ位相シフト、すなわち正弦関数に対して余弦関数に類似した波形を持つ関数となり、倍の周波数を持っている。また、図6に示す通り、同区間に隣接する区間(例えば{θ|0.5≦θ<1.0})では接続点に対して対称な波形となる。この特性は、他の区間においても同様である。したがって、誤差補正生成部12は、この特性を持つ数式2の誤差関数を相殺する誤差補正信号603を生成する。
(数式3) θ=(2nπ+π−sin−1(2/π))/2π,n∈Z
(数式4) θ=(2nπ+sin−1(2/π))/2π,n∈Z
次に、図7および図8を用いて、誤差補正生成部12による誤差補正生成処理について説明する。
<<調整処理>>
誤差補正生成部12の調整部121は、位相信号51を定数倍するとともに定数加算した調整信号604を生成する。調整部121は、位相信号51に対して、定数倍および定数加算をすることで、後段出力の位相および周波数変調を実現する調整処理を実行する。
ステップS102において、調整部121は、図7に示すように、位相信号51を2倍し、さらに0.25を加算し、調整信号604を生成する。この調整部121による調整処理は、三角関数近似装置10がディジタル回路で実現される場合、乗算器706を用いた定数2の乗算と、加算器707を用いた0.25の加算で実現される。
<<副生成処理>>
次に、副生成部122は、調整信号604を用いて、位相と周波数とが誤差補正信号603と同じ三角波信号である第2三角波信号602を生成する。副生成部122の構成および機能は、主生成部11と同様である。第2鋸波生成部1221と第2折返波生成部1222は、主生成部11における第1鋸波生成部111と第1折返波生成部112と同様の構成および機能を有する。
<<<第2鋸波生成処理>>>
ステップS103において、副生成部122の第2鋸波生成部1221は、調整部121により生成された調整信号604を取得する。図7に示すように、第2鋸波生成部1221は、調整信号604を用いて、位相が第1鋸波信号501の位相とずれており、かつ、周波数が第1鋸波信号501の2倍である第2鋸波信号601を生成する。第2鋸波生成部1221は、調整信号604に対して、小数部のみを抽出することで第2鋸波信号601を生成する。主生成部11と同様に、入力信号が0.5に達するタイミングで折り返された三角波信号を出力するために、副生成部122には、調整部121によって2倍された位相信号が入力される。よって、副生成部122は、主生成部11の出力に対して倍の周期を持つ出力を得ることができる。また、副生成部122は、振幅の1/4に相当する0.25を加算した位相信号が入力されることで、1/4周期位相シフトした出力を得られる。第2鋸波生成処理は、上述した鋸波生成処理と同様である。
<<<第2折返波生成処理>>>
ステップS104において、図8に示すように、副生成部122の第2折返波生成部1222は、第2三角波信号602を出力する。第2折返波生成部1222は、第2鋸波信号601を用いて、周波数が第2鋸波信号601と同じで、かつ、振幅が第2鋸波信号601の2分の1である第2三角波信号602を生成する。具体的には、第2折返波生成部1222は、第2鋸波信号601から0.5を減算し、絶対値演算を行うことにより、第2三角波信号602を生成する。第2折返波生成処理は、上述した折返波生成処理と同様である。
また、三角関数近似装置10がディジタル回路で実現される場合の副生成部122の動作は、主生成部11の動作と同様である。
<<第2補正処理>>
ステップS105において、第2補正部123は、第2三角波信号602の波形の値域を調整し、誤差補正信号603として生成する第2補正処理を実行する。第2補正部123は、第2三角波信号602に対して乗算および減算を施すことで波形の値域を調整する。具体的には、第2補正部123は、値域が0.0から0.5である第2三角波信号602を、誤差関数ε(θ)の値域に合わせる。第2補正部123は、第2三角波信号602を誤差関数ε(θ)の値域に合わせるため、オフセットを加算し、定数を乗算する。第2補正部123は、オフセットを加算し、定数を乗算することにより、第2三角波信号602を誤差補正信号603として生成する。
具体的には、第2補正部123は、0.25を減算し、0.25を乗算することで、第2三角波信号602を値域が−0.0625から0.0625の信号にできる。この場合、厳密には誤差関数ε(θ)の値域と合致しないが、2のべき乗数による処理とすることで、ビットシフト演算が可能になり、演算コストを抑えることができる。三角関数近似装置10がディジタル回路で実装される場合、第2補正処理は、減算器712による0.25の減算と、乗算器713による0.25の乗算によって実現される。
誤差関数ε(θ)は、値域が−1.0から1.0の理想関数と、第1補正部13によってフィッティングされた補正無しの近似信号52との差分により表現される。一方、誤差補正信号603は、第1補正部13を通過する前、すなわち値域が0から0.5(幅は理想関数の4分の1)となる第1三角波信号502を生成する際に、第1鋸波信号に加算される。よって、誤差補正信号603の値域の幅は、0.5の4分の1となる必要がある。具体的には、第2補正部123は、第2三角波信号602の値域0から0.5を、減算器712により−0.25から0.25とする。そして、第2補正部123は、その値域を乗算器713により4分の1とし、−0.0625から0.0625とする。
次に、図9を用いて、ステップS106の加算処理、およびステップS107の第1折返波生成処理について説明する。
<<加算処理(ステップS106)>>
ステップS106では、加算部113は、第1鋸波信号501と誤差補正信号603とを加算し、補正鋸波信号501aを生成する加算処理を行う。図9に示すように、誤差補正信号603は、位相が理想関数61と約4分の1ずれており、かつ、周波数が理想関数61の約2倍であり、かつ、振幅が理想関数61の約4分の1である。
<近似信号生成処理>
第1折返波生成部112と第1補正部13とを近似信号生成部114とする。第1折返波生成処理と第1補正処理により、近似信号生成部114は、補正鋸波信号501aを用いて、位相、周波数、および振幅が理想関数61と同じ三角波信号を近似信号52として生成する。
<<第1折返波生成処理(ステップS107)>>
ステップS107では、第1折返波生成部112は、加算部113から出力された補正鋸波信号501aに対し、上述した折返波生成処理を行う。第1折返波生成部112は、補正鋸波信号501aに対し折返波生成処理を行うことにより、図9の第1三角波信号502を生成する。
<第1補正処理>
ステップS108において、第1補正部13は、第1三角波信号502の値域を、理想関数61と同じ−1.0から1.0に合わせるため、第1三角波信号502に対し、オフセットを加算し、定数を乗算する。主生成部11の出力である第1三角波信号502は、値域0.0から0.5である。よって、第1補正部13は、第1三角波信号502に対し、−0.25を加算し、4を乗算する。三角関数近似装置10がディジタル回路で実装される場合、この動作は減算器714による0.25の減算と、乗算器715による0.5の乗算によって実現される。このように、第1補正部13は、図9の第1三角波信号502に対し、オフセットを加算し、定数を乗算することにより、図9の近似信号52を生成する。
なお、図8の0.5≦θ<1.0の範囲、および、0.5≦θ<1.0以降の1周期後半の範囲では、誤差関数ε(θ)に対して誤差補正関数603が逆位相になる。よって、上記範囲では誤差を増幅しているように見える。しかし、本実施の形態では、上記範囲でも誤差を増幅しないために、誤差補正信号603を第1鋸波信号に加算している。誤差関数が半周期毎に逆位相になるのは、第1折返波生成部による折返し処理が原因である。したがって、第1折返波生成部の前に誤差補正信号を第1鋸波信号に加算し、第1鋸波信号と併せて折り返すことで、誤差補正信号と第1鋸波信号とを同時に逆位相としている。
****本実施の形態の効果の説明****
以上のように、本実施の形態に係る三角関数近似装置10では、主生成部が、入力された位相信号に対して、鋸波信号と三角波信号とを順次生成する。そして、主生成部は、所望の三角関数に同調する三角波信号を生成する。また、副生成部は、同じ位相信号を入力とし、乗算と加算を行い、調整信号を生成する。そして、副生成部は、調整信号に対して、同様に鋸波信号と三角波信号とを順次生成する。そして、副生成部は、三角波信号の値域を調整した誤差補正信号を生成する。そして、主生成部は、三角波信号の生成過程において誤差補正信号を鋸波信号に加算する。よって、本実施の形態に係る三角関数近似装置10によれば、所望の三角関数に同調し、かつ、より類似した誤差の小さい三角関数の近似信号を出力できる。
また、本実施の形態に係る三角関数近似装置10では、近似三角波信号は、主生成部が位相信号に対して簡易な演算処理を加えることで得られる。また、誤差補正生成部が、同じ位相信号入力を調整部、主生成部と同様の構成をもつ副生成部、および波形補正部によって構成される。三角関数近似装置10では、加算部が、誤差補正生成部の出力信号を、第1鋸波信号に加算する。これにより、三角関数近似装置10では、主生成部の所望の三角関数に対する誤差を低減し、近似精度を改善する。また、三角関数近似装置10では、計算負荷の高い三角関数(余弦関数、正弦関数)の実装において、少ない計算負荷で高精度な近似出力を得ることができる。
以上のように、本実施の形態に係る三角関数近似装置10では、位相信号から、誤差信号を相殺する信号出力を得ることができる。よって、本実施の形態に係る三角関数近似装置10によれば、誤差補正に伴う演算負荷を小さくし、回路規模を小さくすることができる。また、本実施の形態に係る三角関数近似装置10では、実装によっては、主生成部を再帰的に使用でき、誤差補正に伴う追加回路を小さくすることができる。
****他の構成****
本実施の形態に係る三角関数近似装置は、主生成部の後段に第1補正部が配置されている。そして、第1補正部が、−1.0から1.0の値域を持ち、理想関数に類似する近似信号を出力する。しかし、主生成部の出力波形と第1補正部の出力波形の概形は相似関係にあるため、三角関数としての絶対値を要しない場合は、主生成部の出力を近似信号としてもよい。具体例としては、波動シミュレーションにおいて、複数の波源が作る複素振幅分布の位相分布を求める場合のように、三角関数を用いて導出される値同士の相対値が必要な場合には有効である。
本実施の形態では、理想関数の値域を−1.0から1.0として説明した。しかし、実装系によっては、値域が、0.0から1.0のように、正数に正規化された関数を用いてもよい。正数に正規化された関数を用いる分野には、例えば、ロボット工学の姿勢制御がある。また、光学シミュレーションにおいて、複数の光源がつくる波面の位相を求める問題の場合、複素数で表される波面の実部および虚部の相対値から位相を算出するため、三角関数の値域は重要ではなくなる。
実施の形態1では、三角関数近似装置の各部を独立した機能ブロックとして説明した。しかし、三角関数近似装置の構成は、上述した実施の形態のような構成でなくてもよい。三角関数近似装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。
実施の形態1のうち、複数の部分を組み合わせて実施しても構わない。あるいは、実施の形態1のうち、1つの部分を実施しても構わない。その他、実施の形態1を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
10 三角関数近似装置、11 主生成部、111 第1鋸波生成部、1221 第2鋸波生成部、112 第1折返波生成部、1222 第2折返波生成部、113 加算部、114 近似信号生成部、12 誤差補正生成部、121 調整部、122 副生成部、13 第1補正部、123 第2補正部、21 信号入出力インターフェース、22 プロセッサ、23 記憶装置、231 メモリ、232 ストレージ、701 ビット抽出器、702 加算器、703 減算器、704 排他的論理和、705 減算器、706 乗算器、707 加算器、708 ビット抽出器、709 減算器、710 排他的論理和、711 減算器、712 減算器、713 乗算器、714 減算器、715 乗算器、51 位相信号、52 近似信号、61x 近似三角波信号、501 第1鋸波信号、601 第2鋸波信号、501a 補正鋸波信号、502 第1三角波信号、602 第2三角波信号、603 誤差補正信号、604 調整信号、61 理想関数、63 誤差関数。

Claims (8)

  1. 位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置において、
    前記位相信号を用いて、前記理想関数と同調する第1鋸波信号を生成する第1鋸波生成部を備える主生成部と、
    前記理想関数と、前記第1鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号を生成する誤差補正生成部と
    を備え、
    前記誤差補正生成部は、
    前記位相信号を定数倍するとともに定数加算した調整信号を生成する調整部と、
    前記調整信号を用いて、位相と周波数とが前記誤差補正信号と同じ三角波信号である第2三角波信号を生成する副生成部と、
    前記第2三角波信号の波形の値域を調整し、前記誤差補正信号として生成する第2補正部と
    を備え、
    前記主生成部は、さらに、
    前記第1鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成する加算部と、
    前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する近似信号生成部と
    を備えた三角関数近似装置。
  2. 前記副生成部は、
    前記調整信号を用いて、位相が前記第1鋸波信号の位相とずれており、かつ、周波数が前記第1鋸波信号の2倍である第2鋸波信号を生成する第2鋸波生成部と、
    前記第2鋸波信号を用いて、周波数が前記第2鋸波信号と同じで、かつ、振幅が前記第2鋸波信号の2分の1の前記第2三角波信号を生成する第2折返波生成部と
    を備えた請求項1に記載の三角関数近似装置。
  3. 前記誤差補正信号は、
    位相が前記理想関数と4分の1ずれており、かつ、周波数が前記理想関数の2倍であり、かつ、振幅が前記理想関数の4分の1である請求項2に記載の三角関数近似装置。
  4. 前記第2鋸波生成部は、
    前記調整信号の小数部を抽出することにより、前記第2鋸波信号を生成する請求項2または3に記載の三角関数近似装置。
  5. 前記第2折返波生成部は、
    前記第2鋸波信号から0.5を減算し、絶対値演算を行うことにより、前記第2三角波信号を生成する請求項2から4のいずれか1項に記載の三角関数近似装置。
  6. 前記第2補正部は、
    前記第2三角波信号に対して乗算および減算を施すことで波形の値域を調整する請求項2から5のいずれか1項に記載の三角関数近似装置。
  7. 位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置の三角関数近似方法において、
    主生成部が、前記位相信号を用いて、前記理想関数と同調する第1鋸波信号を生成し、
    調整部が、前記位相信号を定数倍するとともに定数加算した調整信号を生成し、
    副生成部が、前記調整信号を用いて、位相と周波数とが、前記第1鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号と同じ三角波信号である第2三角波信号を生成し、
    第2補正部が、前記第2三角波信号の波形の値域を調整し、前記誤差補正信号を生成し、
    加算部が、前記第1鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成し、
    近似信号生成部が、前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する三角関数近似方法。
  8. 位相信号が入力された三角関数の出力を理想関数とし、前記理想関数に近似する近似信号を生成する三角関数近似装置の三角関数近似プログラムにおいて、
    前記位相信号を用いて、前記理想関数と同調する第1鋸波信号を生成する第1鋸波生成処理と、
    前記位相信号を定数倍するとともに定数加算した調整信号を生成する調整処理と、
    前記調整信号を用いて、位相と周波数とが、前記第1鋸波信号から生成され、位相、周波数、および振幅が前記理想関数と同じ近似三角波信号との誤差を表した誤差関数を相殺する誤差補正信号と同じ三角波信号である第2三角波信号を生成する副生成処理と、
    前記第2三角波信号の波形の値域を調整し、前記誤差補正信号を生成する第2補正処理と、
    前記第1鋸波信号と前記誤差補正信号とを加算し、補正鋸波信号として生成する加算処理と、
    前記補正鋸波信号を用いて、位相、周波数、および振幅が前記理想関数と同じ三角波信号を前記近似信号として生成する近似信号生成処理と
    をコンピュータである前記三角関数近似装置に実行させる三角関数近似プログラム。
JP2019512852A 2017-08-30 2017-08-30 三角関数近似装置、三角関数近似方法、および三角関数近似プログラム Expired - Fee Related JP6548855B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/031066 WO2019043814A1 (ja) 2017-08-30 2017-08-30 三角関数近似装置、三角関数近似方法、および三角関数近似プログラム

Publications (2)

Publication Number Publication Date
JP6548855B1 true JP6548855B1 (ja) 2019-07-24
JPWO2019043814A1 JPWO2019043814A1 (ja) 2019-11-07

Family

ID=65525129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019512852A Expired - Fee Related JP6548855B1 (ja) 2017-08-30 2017-08-30 三角関数近似装置、三角関数近似方法、および三角関数近似プログラム

Country Status (2)

Country Link
JP (1) JP6548855B1 (ja)
WO (1) WO2019043814A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04178005A (ja) * 1990-11-13 1992-06-25 Roland Corp 疑似サイン波信号発生装置
JPH08130414A (ja) * 1994-11-01 1996-05-21 Nippon Telegr & Teleph Corp <Ntt> シンセサイザ回路
JPH08130415A (ja) * 1994-11-01 1996-05-21 Nippon Telegr & Teleph Corp <Ntt> シンセサイザ回路
JP2017053914A (ja) * 2015-09-07 2017-03-16 株式会社河合楽器製作所 波形生成装置

Also Published As

Publication number Publication date
WO2019043814A1 (ja) 2019-03-07
JPWO2019043814A1 (ja) 2019-11-07

Similar Documents

Publication Publication Date Title
TWI351640B (en) Exponent processing systems and related methods
De Dinechin et al. Hardware implementations of fixed-point Atan2
Hung et al. Fast division algorithm with a small lookup table
US9851947B2 (en) Arithmetic processing method and arithmetic processor having improved fixed-point error
Low et al. A memory-efficient tables-and-additions method for accurate computation of elementary functions
JP6548855B1 (ja) 三角関数近似装置、三角関数近似方法、および三角関数近似プログラム
Durán et al. Fourier–Dunkl system of the second kind and Euler–Dunkl polynomials
TWI754680B (zh) 產生起始估算值的裝置及方法、製造方法及測試方法
Domínguez et al. Algorithm 884: A simple Matlab implementation of the Argyris element
KR102503498B1 (ko) 수학적 함수를 연산하는 시스템 및 방법
US9703530B2 (en) Systems and methods for computing mathematical functions
EP3358460B1 (en) Systems and methods for computing mathematical functions
JP2010067251A (ja) 許容誤差内の整数除算回路
JP4696920B2 (ja) Dds信号発生装置
JP6335661B2 (ja) 演算装置およびその制御方法
CN108182050B (zh) 利用四输入点积电路计算三角函数
JP7262028B2 (ja) 三角関数演算装置
Nilsson Complexity reductions in unrolled CORDIC architectures
Ashrafi Optimization of the quantized coefficients for DDFS utilizing polynomial interpolation methods
JP6327154B2 (ja) 信号生成装置、信号生成方法及び数値制御発振器
Wanhammar et al. Efficient sine and cosine computation using a weighted sum of bit-products
Emelyanov On Wood Basis for the mod p Steenrod Algebra.
JP2022180257A (ja) 内積計算装置、内積計算方法、および、内積計算プログラム
Nilsson et al. Power reductions in unrolled CORDIC architectures
Phalle et al. Efficient Implementation of Two Stage Binary Logarithmic Converter

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190305

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190305

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190625

R150 Certificate of patent or registration of utility model

Ref document number: 6548855

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees