JP4199100B2 - 関数演算方法及び関数演算回路 - Google Patents

関数演算方法及び関数演算回路 Download PDF

Info

Publication number
JP4199100B2
JP4199100B2 JP2003414688A JP2003414688A JP4199100B2 JP 4199100 B2 JP4199100 B2 JP 4199100B2 JP 2003414688 A JP2003414688 A JP 2003414688A JP 2003414688 A JP2003414688 A JP 2003414688A JP 4199100 B2 JP4199100 B2 JP 4199100B2
Authority
JP
Japan
Prior art keywords
variable
unit
constant
function
calculation
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
JP2003414688A
Other languages
English (en)
Other versions
JP2005174077A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003414688A priority Critical patent/JP4199100B2/ja
Priority to US10/823,570 priority patent/US7634524B2/en
Publication of JP2005174077A publication Critical patent/JP2005174077A/ja
Application granted granted Critical
Publication of JP4199100B2 publication Critical patent/JP4199100B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

本発明は、テイラー級数式によりサイン関数やコサイン関数を算出する関数算出方法及び関数演算回路に関し、特に、高速フーリエ変換の演算サイクルに同期してサイン関数とコサイン関数を算出して使用可能とする関数算出方法及び関数演算回路に関する。
従来、コンピュータを用いた情報処理装置において、角度情報からサイン関数やコサイン関数を演算して使用することがある。特に、フーリエ変換等の信号処理をハードウェアで行うとき、角度情報をアドレスとして、サイン関数とコサイン関数の値を求めて演算処理に使用している。
図18は、電波天文学の分野で高速フーリエ変換を行う従来システムの例である。専用のパラボラアンテナ200で受信した電波や音声信号などのアナログ時系列信号
202は、AD変換装置204によってディジタル信号205に変換したのち、フーリエ変換装置206において高速フーリエ変換処理することで周波数成分208に分解して解析される。
このフーリエ変換装置206にあっては、角度情報をアドレスとし、アドレスに対応したサイン関数及びコサイン関数を演算パラメータに使用している。
図19は従来のパイプライン型高速フーリエ変換装置の例である(特許文献1)。図19において、従来の高速フーリエ変換装置は、並べ替え回路部242,252,256,260、バタフライ演算部244,254,258,262、及びひねり係数記憶回路部264,266,268,270で構成され、例えばバタフライ演算部244は、乗算器246と加算器248,250で構成される。
この高速フーリエ変換装置は、処理する高速フーリエ変換(FFT)点数がNである高速フーリエ変換を行う回路であり、入力データ点数NをN/R(但し、Rは基数)に分割し、分割された入力データ点数をシリアルに並べて、R入力のデータ並べ替え回路部と、ひねり係数乗算部と、バタフライ演算部とからなる高速フーリエ変換の基本回路に入力し、この基本回路を1段として、この段をM個(M=logR N)直列に並べて、高速フーリエ変換を行うように構成している。
ここで高速フーリエ変換処理にあっては、アドレスを示す角度情報のサイン関数及びコサイン関数により導出されるひねり係数を予め求め、これを角度情報をアドレスとしてひねり係数記憶回路部264,266,268,270を構成するメモリに保持して処理を行う。
ところで、従来、アドレスを示す角度情報に対応したサイン関数及びコサイン関数を求める方法としては、図20のルックアップ・テーブル210が知られている。ルックアップ・テーブル210は、角度情報をアドレスiとしてサイン関数及びコサイン関数の値を保持したメモリ212で構成される。
また図19の高速フーリエ変換装置では、予め算出したサイン関数及びコサイン関数の値からひねり係数を算出してメモリに記憶しているが、角度情報の分解能が高くなると、分解能に比例してひねり係数を保持するメモリの容量が増加する。
そこで、高速フーリエ演算の中でのサイン関数及びコサイン関数が高速に演算できれば、ひねり係数を算出して記憶しておくメモリが不要となり、角度分解能が向上してもメモリ容量が増加することはない。
このような高速フーリエ変換の演算速度に適合してサイン関数及びコサイン関数を算出する方法としては、テイラー級数式による演算処理を単純にハードウェアで実現した回路が考えられる。
この回路の演算原理は次のようになる。いま角度0°から 360°をN等分し、第i番目の角度θi を次式で表す。
Figure 0004199100
このi番目の角度θiに対するサインとコサインのテイラー級数を示すと次のようになる。
Figure 0004199100
図21は、sinθをテイラー級数式から求める単純なハードウェアによる回路であり、乗算器218、シフタ220、乗算器222,224,226,230,232,236,238及び加算器228,234,240によって第4項までのテイラー級数式の演算を実現している。この回路にあっては、例えば4個の項を有するテイラー級数であれば、約10クロックサイクルでサイン関数の値を算出することができる。
更に、三角関数を含む超越関数を迅速に計算する方法として、テイラー級数を並列処理する装置がある(特許文献2)。
この装置は、テイラー級数を2つの部分級数に分けて並列処理した後に2つの結果を減算する並列処理を行っている。例えば10個の項を有するテイラー級数について、半分の5個の項をもつ部分級数に分解して並列処理し、約10クロックサイクルでサイン関数又はコサイン関数を算出することができる。また各並列処理部は、巡回型に変形して処理しており、且つ浮動小数点演算を前提にしている。
特開平06−019955号公報 特開平10−214176号公報
しかしながら、このような従来のテイラー級数式を使用してサイン関数及びコサイン関数を求める方法にあっては、次の問題がある。
まず図21に示したようにテイラー級数式の各項を単純にハードウェアの演算回路で実現する場合にあっては、項数に応じてハードウェア規模が増加し、また演算に要するクロックサイクルも増加し、高速フーリエ変換に適用した場合に全体的な演算速度を低下させる問題がある。
一方、テイラー級数を2つの部分級数に分けて並列的に計算する方法にあっては、並列化により演算処理を高速化できるが、ハードウェアの規模は部分級数に分けない場合と同等であり、回路規模が大きく、またソフトウェアで実現する場合には、浮動小数点演算の並列処理となるために処理負担が大きいという問題がある。
本発明は、テイラー級数式を利用してサイン関数とコサイン関数を高速計算する関数演算方法及び関数演算回路を提供する。
また本発明は、ルックアップ・テーブル・メモリを使用することなく、テイラー級数式を利用してサイン関数とコサイン関数を高速計算して高速フーリエ変換のひねり係数の計算に使用する関数演算方法及び装置を提供することを目的とする。
図1は本発明の原理説明図である。本発明は、テイラー級数式を用いてサイン関数sinθiを演算する関数演算方法であり、
巡回式設定部13により、サイン関数を計算するテイラー級数式を、既知数Qと、変数Xの2乗を乗算し、その結果をシフト数Sだけシフトしたのち、定数Kを加算したものを新たな既知数Qとする各項に共通な単一の巡回式(Q=K+S・X2・Q)に変形して設定する巡回式設定ステップと、
調整部14により、変数Xは、変数Xの変化範囲内で、変数Xの最大値が1となるように、定数Kは1以下となるように、シフト数Sを調整して準備する調整ステップと、
巡回式実行部15により、角度情報iを入力して変数Xに変換し、テイラー級数式の項の数分、巡回式を高次の項から低次の項に向けて順次実行して角度情報iのサイン関数を導出する巡回式実行ステップと、
を備えたことを特徴とする。
ここで巡回式実行ステップは、巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行する。
また本発明は、テイラー級数式を用いてコサイン関数cosθiを演算する関数演算方法であり、
巡回式設定部13により、コサイン関数を計算するテイラー級数式を、既知数Qと、変数Xの2乗を乗算し、その結果をシフト数Sだけシフトしたのち、定数Kを加算したものを新たな既知数Qとする各項に共通な単一の巡回式(Q=K+S・X2・Q)に変形して設定する巡回式設定ステップと、
調整部14により、変数Xは、変数Xの変化範囲内で、変数Xの最大値が1となるように、定数Kは1以下となるように、シフト数Sを調整して準備する調整ステップと、
巡回式実行部15により、角度情報iを入力して変数Xに変換し、テイラー級数式の項の数分、巡回式を高次の項から低次の項に向けて順次実行して角度情報iのコサイン関数を導出する巡回式実行ステップと、
を備えたことを特徴とする。
この場合にも、巡回式実行ステップは、巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする。
本発明は、テイラー級数式を用いてサイン関数sinθiを演算する関数演算回路を提供する。この関数演算回路は、既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするサイン関数を計算するテイラー級数式の変形により得られた巡回式(Q=K+S・X2・Q)を演算する巡回式演算部と、入力した角度情報iを変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるようにシフト数Sを調整して出力する変換調整部と、サイン関数を計算するテイラー級数式の各項に対応した定数Kと、各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、変換調整部から変数Xが出力された際に、予め定めたテイラー級数式の項数分、巡回式演算部を高次の項から低次の項に向けてテーブルの定数Kとシフト数Sの選択に基づき順次循環演算を実行させて角度情報iのサイン関数を導出する演算制御部とを備えたことを特徴とする。
ここで、巡回式演算部は、巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行する。
本発明は、テイラー級数式を用いてコサイン関数cosθiを演算する関数演算回路を提供する。この関数演算回路は、既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするコサイン関数を計算するテイラー級数式の変形により得られた巡回式(Q=K+S・X2・Q)を演算する巡回式演算部と、入力した角度情報iを変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるようにシフト数Sを調整して出力する変換調整部と、コサイン関数を計算するテイラー級数式の各項に対応した定数Kと、各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、変換調整部から前記変数Xが出力された際に、予め定めたテイラー級数式の項数分、巡回式演算部を高次の項から低次の項に向けてテーブルの定数Kとシフト数Sの選択に基づき順次循環演算を実行させて角度情報iのコサイン関数を導出する演算制御部とを備えたことを特徴とする。
ここで、巡回式演算部は、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行する。
本発明は、テイラー級数式を用いてサイン関数sinθiをパイプライン演算する関数演算回路を提供する。この関数演算回路は、既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするサイン関数を計算するテイラー級数式の変形により得られた巡回式(Q=K+S・X2・Q)を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、入力した角度情報iを変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるようにシフト数Sを調整してパイプライン演算部に出力する変換調整部と、サイン関数を計算するテイラー級数式の各項に対応した定数Kと、各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、記変換調整部から変数Xが出力される毎に、パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき角度情報iのサイン関数を導出させるパイプライン制御部とを備えたことを特徴とする。
ここで、パイプライン演算部の各巡回式演算部は、巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行する。
本発明は、テイラー級数式を用いてコサイン関数cosθiをパイプライン演算する関数演算回路を提供する。この関数演算回路は、既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするコサイン関数を計算するテイラー級数式の変形により得られた巡回式(Q=K+S・X2・Q)を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、入力した角度情報iを変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるようにシフト数Sを調整してパイプライン演算部に出力する変換調整部と、コサイン関数を計算するテイラー級数式の各項に対応した定数Kと、各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、変換調整部から変数Xが出力される毎に、パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき角度情報iのコサイン関数を導出させるパイプライン制御部とを備えたことを特徴とする。
この場合も、パイプライン演算部の各巡回式演算部は、巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行する。
本発明は、高速フーリエ変換装置に好適なサイン関数及びコサイン関数をパイプライン演算する関数演算回路を提供する。この関数演算回路は、サイン関数演算回路とコサイン関数演算回路を有する。
サイン関数演算回路は、既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするサイン関数を計算するテイラー級数式の変形により得られた巡回式(Q=K+S・X2・Q)を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、入力した角度情報iを変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるように前記シフト数Sを調整してパイプライン演算部に出力する変換調整部と、サイン関数を計算するテイラー級数式の各項に対応した定数Kと、各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、変換調整部から前記変数Xが出力される毎に、パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき前記角度情報iのサイン関数を導出させるパイプライン制御部とを備える。
またコサイン関数演算回路は、既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするコサイン関数を計算するテイラー級数式の変形により得られた巡回式(Q=K+S・X2・Q)を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、入力した角度情報iを変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるようにシフト数Sを調整してパイプライン演算部に出力する変換調整部と、コサイン関数を計算するテイラー級数式の各項に対応した定数Kと、各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、変換調整部から変数Xが出力される毎に、パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき角度情報iのコサイン関数を導出させるパイプライン制御部とを備える。
ここで、各パイプライン演算部の各巡回式演算部は、巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行する。
この関数演算回路は、入力情報iのサイン関数およびコサイン関数に基づき、基数2のパイプライン型高速フーリエ変換装置に設けた複数のバタフライ段のひねり係数値を計算させる。
更に本発明は、サイン関数やコサイン関数を含む一般的な超越関数、即ち三角関数、対数関数、指数関数などのように、多項式で表せない関数として定義される超越関数(transcendental function)をテイラー級数式を用いて演算する関数演算方法を提供する。
この関数演算方法は、
巡回式設定部により、超越関数を計算するテイラー級数式を、既知数Qと、変数Xを乗算し、その結果をシフト数Sだけシフトしたのち、定数Kを加算したものを新たな既知数Qとする各項に共通な単一の巡回式(Q=K+S・X・Q)に変形して設定する巡回式設定ステップと、
調整部により、変数Xは、変数Xの変化範囲内で、変数Xの最大値が1となるように、前記定数Kは1以下となるように、シフト数Sを調整して準備する調整ステップと、
巡回式実行部により、入力情報を前記変数Xに変換し、前記テイラー級数式の項の数分、前記巡回式を高次の項から低次の項に向けて順次実行して前記入力情報の超越関数を導出する巡回式実行ステップと、
を備えたことを特徴とする。
本発明によれば、テイラー級数式を各項に共通な1個の巡回式に変形することで、高次から低次に向かって行う演算内容を各項につき共通化でき、巡回計算を行う場合、パイプライン計算を行う場合のいずれについても、演算アルゴリズムを単純化し、ソフトウェアでは処理負担を低減し、ハードウェアでは回路構成を簡単にし、いずれも高速化できる。
またビットのシフト操作を導入することで、巡回計算毎に少ない最低限の同じ演算ビット数でありながら、必要な演算ビット精度を確保できる。この結果、浮動小数点演算や、ビット数の多い演算回路を使用することなく、少ないビット数の固定小数点演算回路を使用でき、少ないハードウェアによる関数計算を容易に実現できる。
また本発明のパイプライン型の関数演算回路を高速フーリエ変換装置に適用することで、ひねり係数をリアルタイムで演算でき、従来のひねり係数を保持するメモリが不要となり、フーリエ変換点数が多くなった場合に、ひねり係数メモリを使用するよりも少ないハードウェアで、精度良くひねり係数を生成することができる。
この結果、従来のフーリエ変換装置は、バタフライ演算回路等をLSIに集積し、ひねり係数は外部メモリを使用して構成していたが、本発明によるパイプライン型の関数演算回路を使うことで、LSIだけで比較的容易に構成できるようになる。
図2は、コンピュータのプログラムにより実現される本発明による関数演算処理の機能構成のブロック図である。
図2において、本発明の関数演算処理システムは角度検出部10とコンピュータ11で構成される。角度検出部10としては例えば図18に示したようなパラボナアンテナに設けられ、アンテナの角度利用情報としてアドレスiを出力する。角度検出部10としては例えばロータリエンコーダーなどが使用されており、0度〜360度をN等分したアドレスiを出力するものでこのアドレスiの角度θiを表す。
コンピュータ11には角度検出部10からのアドレスiを入力してsinθi及びcosθiのサイン関数及びコサイン関数を演算する関数演算処理部12が設けられる。関数演算処理部12は巡回式設定部13、調整部14及び巡回式実行部15で構成され、さらに巡回式実行部15で使用する定数などを予め格納した定数テーブル16を設けている。
巡回式設定部13はサイン関数及びコサイン関数を計算するテイラー級数式をテイラー級数式の各項に共通な単一の巡回式に変形して巡回式実行部15にセットする。この巡回式は次式で与えられる。
Figure 0004199100
巡回式(1)はテイラー級数式を既知数Q(d+2)と変数Xiの2乗を乗算し、その結果をシフト数S(d+2)だけシフト+)とする。このテイラー級数式から巡回式の変形処理は後の説明で明らかにする。
調整部14は(1)式の巡回式について変数Xiが変数Xiの変換範囲内で最大値が1となるように、また定数Kdが1以下となるようにシフト数S(d−2)を調整し、これを定数テーブル16に予め準備する。
ここでサイン関数とコサイン関数について角度0°〜45°まで計算する場合と0°〜90°までを計算する場合の定数テーブル16に格納している定数Kdとシフト数Sdの例を図3に示している。
図3の定数テーブル16は、サイン関数及びコサイン関数のそれぞれについてテイラー級数式のパラメータd及び(2π)d/d!に対応して(1)式の巡回式における定数Kdの値とシフト数Sdを示し、シフト数Sdについては45°まで計算する場合と90°まで計算する場合に分けて格納している。
図4は、図2のコンピュータ11のプログラム制御により実現される本発明による関数演算処理部12の処理手順のフローチャートである。
この関数演算処理にあっては、ステップS1で前記(1)式の巡回式の設定処理を行なった後、ステップS2で変数Xi及び定数Kdを最適化するためのシフト数Sdの調整を行なうことにより、図3に示したようなテーブル16を作成する。
ステップS1,S2の準備処理が終了したならばステップS3で角度検出部10からの角度情報アドレスiの入力をチェックしており、アドレスiの入力があるとステップS4に進み角度情報としてのアドレスiを変数Xiに変換し、テイラー級数式の項の数分巡回式を高次の項から低次の項に向けて順次実行してアドレスiの角度θiのサイン関数、sinθiを計算する。
ここで前記(1)式の巡回式のテイラー級数式からの変形処理について説明する。まず本発明の関数演算処理にあっては、サイン関数及びコサイン関数について角度45°まで計算する場合と角度90°まで計算する場合とに分けている。
ここで角度が90°〜180°の範囲のサイン関数及びコサイン関数を、本発明による演算結果としての角度0°〜90°のサイン関数から簡単に求めることができ、本発明による関数演算の必要はない。
即ち、三角関数の公式
Figure 0004199100
から導くことができる。この三角関数の公式を変形すると次式のようになる。
Figure 0004199100
例えば角度120°の場合には90°+β=120°であるからβ=30°となる。従って
cos120°=−sin30°
sin30°=cos30°
として求めることができる。
また角度が45°〜90°の範囲のサイン関数及びコサイン関数も、本発明の関数演算処理により求められる0°〜45°のサイン関数及びコサイン関数から簡単に求めることも簡単にできる。即ち、三角関数の公式である次式から導くことができる。
Figure 0004199100
この三角関数の公式を変形すると次のようになる。
Figure 0004199100
例えば角度60°のサイン関数及びコサイン関数を求める場合には、90°―β=60°であるから、β=30°であり、従って
cos60°=sin30°
sin30°=cos30°
が求まる。
ここでは角度が0°〜45°までについてサイン関数及びコサイン関数を求める場合についての巡回式への変形を説明する。
まず角度アドレスiは角度0°〜45°の範囲であることから、アドレスの値としては0〜N/8まで変化する。ここでアドレスiは角度0°〜360°をN等分した場合の第n番目の角度θiをあらわすことから次式で与えられる。
Figure 0004199100
そこでこの角度θiを示す(2)式を用いてsinθiを求めるテイラー級数式を展開すると次のようになる。
Figure 0004199100
このテイラー級数式の展開において1行目は本来のテイラー級数式であり、2行目はこれに(2)式のθiの値を代入している。3〜4行目の式はN=8(N/8)を代入して2のべき乗に変換している。さらに5〜6行目はカッコについて変数部分と定数部分をわけるようにしている。
ここで本発明にあっては(1)式の巡回式における定数Kdは1以下で出来るだけ近い値となるようにしている。例えば前記のテイラー級数式の変形式における5〜6行目の第1項の2π=6.28は23=8で除算するとK1=0.785とすることができる。
即ち2π=6.28を22=4で除算するとK1=1.57となって1を超えてしまうことからこれは採用できず、一方24=16で除算するとK1=0.3925と1から遠い値となり、従って23=8で除算することで定数K1として1以下で出来るだけ1に近い値にすることができる。
そこで前記のテイラー級数式の変形式について定数をまとめると、次式のようになる。
Figure 0004199100
この式について定数K1,K3,K5,K7を次のように定義する。
Figure 0004199100
そこで定数K1,K3,K5,K7を用いて変形すると次式が得られる。
Figure 0004199100
この変形式にあっては、1行目は定数K1,K3,K5,K7を代入したもので、2行目は括弧内について{i/(N/8)}を括りだしている。3〜4行目については右側の大括弧内の第1項、2項につき2-3で括っている。5〜6行目については更にその中で2項目以降2-5で括っている。最終的に7行目にあっては3項目を2-6で括っている。
ここで上記の変形式について変数Xiとして
Figure 0004199100
を定義し、更にビットシフト数S3,S5,S7として
Figure 0004199100
を定義し、更に既知数としてQ7,Q5,Q3,Q1を
Figure 0004199100
とすると次式を得ることができる。
Figure 0004199100
この変形式におけるサイン関数の巡回部分はd=1,3,5,7・・・・の値をとっており、前記(1)式と同じ次式が与えられる。
Figure 0004199100
このため、この巡回式を用いたsinθ単位の計算はd=7,5,3,1の順番に巡回式を順次計算して、Q7,Q5,Q3、Q1を順次求め、最終的にXiと乗算することでサイン関数であるsinθiを求めることができる。尚、初期値としてのQ7は定数K7を使用する。
同様にして、コサイン関数についてのテイラー級数式から巡回式への変形を説明すると次のようになる。まずcosθiのテイラー級数式に前記(2)式を代入することによる変形式は次のようになる。
Figure 0004199100
続いて定数K0,K2,K4,K6を
Figure 0004199100
として変形すると、次式が与えられる。
Figure 0004199100
ここで変数Xiを
Figure 0004199100
とし、またシフト数S2,S4,S6を
Figure 0004199100
とし、更に既知数Q6,Q4,Q2,Q0を
Figure 0004199100
とすると次式に変形することができる。
Figure 0004199100
このテイラー級数式の変形式におけるコサイン関数の巡回部分はd=0,2,4,6・・・の値をとり、各項に共通な巡回式は前記(1)式と同じ
Figure 0004199100
となる。
図5は、図2の巡回式実行部15におけるサイン関数演算処理のフローチャートであり、次の処理手順となる。

ステップS1:角度を示すアドレスiを入力する。
ステップS2:アドレスiにより0°〜45°の算出であることから変数XiをXi=i/(N/8)として最大値が1となるように正規化する。
ステップS3:変数Xiの二乗を算出する。
ステップS4:テイラー級数式の打ち切りを示す項数となるd=7を設定し、図3の定数テーブル16から定数K(7)を求め、これを既知数Q(7)に代入する。
ステップS5:dをd=d−2とする。
ステップS6:dが1以上か否かチェックする。1以上であればステップS7に進み、1未満であればステップS8に進む。
ステップS7:巡回式をd=5,3,1の順番にステップS5〜S7のルートを通じて既知数Q5,Q3,Q1を順次演算する。
ステップS8:dが1未満となって巡回式の演算の終了した場合であり、そこで既知数Q(1)に変数Xiを乗ずることでsinθiを算出する。
ステップS9:算出したsinθiの値を出力する。
図6は、図2の本発明のコサイン関数演算処理のフローチャートである。このコサイン関数の演算処理は次のようになる。

ステップS1:角度を示すアドレスiを入力する。
ステップS2:アドレスiを(N/8)で除算して最大値を1に正規化した変数Xiを求める。
ステップS3:変数Xiの二乗を求める。
ステップS4:d=6を設定し、Q(6)に図3のコサイン側のt=6から取り出した定数K(d)を代入する。
ステップS5:d=d−2を計算する。
ステップS6:dが0以上か否かチェックする。0以上であればステップS7に進み、マイナスであればステップS8に進む。
ステップS7:d=4,2,0につきステップS5〜S7のルート処理により巡回式を順次計算し、Q(4),Q(2)及びQ(0)を順次求める。
ステップS8:dがマイナスとなって巡回式の演算が終了した場合であり、この場合にはステップS5〜S7で最後に求めたQ(0)をcosθiとする。
ステップS9:演算処理により求めたcosθiの値を出力する。
図7は、ハードウェアにより実現される本発明の関数演算回路のブロック図であり、図2の実施形態に示したコンピュータによるプログラム制御で実現される本発明の関数演算をハードウェアで実現している。
図7において、本発明の関数演算装置は角度検出部10と任意の装置18で構成され、装置18には本発明による関数演算回路19が設けられている。関数演算回路19は演算制御部20、定数テーブル22、変換調整部24及び巡回式演算部25で構成される。
定数テーブル22には図3の定数テーブル16における例えば45°までの計算に必要なシフト数Sdと定数Kdがサイン及びコサインによりdのうちの必要な値、例えばsinについてはd=1,3,5,7についてはcosについてはd=0,2,4,6について格納格されている。
変換調整部24は角度検出部10から入力したアドレスiを変数Xiに変換すると共に変数Xiの変換範囲内で最大値が1となるようにシフト数を調整して出力する。
巡回式演算部25は既知数dと変数Xiの2乗を乗算し、その結果をシフト数Sdだけシフトした後に定数Kdを加算したものを新たな既知数Qdとするサイン関数もしくはコサイン関数を計算するテイラー級数式の変形により得られた巡回式を演算する。
演算制御部20は変換調整部24から変数Xiが出力された際に予め定められたテイラー級数式の項数分、巡回式演算部25を高次の項から低次の項に向けて定数テーブル22の定数Kdとシフト数Sdの選択に基づき順次巡回演算を実行させ、アドレスiのサイン関数sinθi及びコサイン関数cosθiを算出させる。
図8は、図7で用いるサイン関数演算回路の回路ブロック図である。図8において、サイン関数演算回路25−1は、変換シフト回路26、乗算器27,30,40、加算器34、選択回路35,36,38で構成され、乗算器30、シフト回路32及び加算器34によって、巡回式の演算を繰り返す巡回処理部28を構成している。このサイン関数演算回路25−1に対しては演算制御部20−1が設けられている。
変換シフト回路26は、入力したアドレスiを(N/8)分だけビットシフトさせることで、Xi=i/(N/8)の変数に変換する。乗算器27は、変数Xi2 を求める。巡回処理部28は、前記(1)式の巡回式におけるXi2 と、Q(d+2)の乗算を行う。シフト回路32は(1)式におけるシフト数S(d+2)のシフトを行う。
加算器34はシフト回路32の結果を定数Kdに加える加算を行う。加算器34の出力は選択回路35に帰還されている。選択回路35は乗算器30における最初の乗算で定数K7を選択し、次の乗算で加算器34から出力された既知数Q5を選択し、3番目の演算で加算器34から出力された既知数Q3を選択する。
また選択回路36は、最初のシフトでシフト数S7=2-6 を選択し、2番目のシフト動作でS5=2-5 を選択し、3番目のシフト動作でS3=2-3 を選択する。更に選択回路38は、最初の加算で定数K5を選択し、2番目の加算で定数K3を選択し、3番目の加算で定数K1を選択する。
乗算器40は、巡回処理部28でd=5,3,1となる3回の巡回処理が終了した後に出力される既知数Q1と、変換シフト回路26より出力されている変数Xiを乗算し、この乗算結果をsinθiとして出力する。
このような本発明のサイン関数演算回路25−1にあっては、巡回処理部28を繰り返し使うことにより乗算5回と加算3回の演算処理で済む。これに対し、図21に示した従来例の場合には乗算8回と加算3回が必要であり、本発明による巡回式を用いたサイン関数演算回路25−1の方が少ない演算処理で結果を出すことができる。
また乗算回路や加算回路に比べ、選択回路やシフト回路はハードウェアとしての回路規模が小さいため、従来のハードウェアに比べ本発明によるサイン関数演算回路25−1の方がハードウェア規模を小さく簡単に構成することができる。
図9は、図7におけるコサイン関数演算回路25−2の回路ブロック図である。このコサイン関数演算回路25−2は、変換シフト回路45、乗算器46,50、シフト回路52、加算器54及び選択回路55,56,58で構成される。
このうち、乗算器50、シフト回路52及び加算器54によって巡回処理部48が構成されている。また、コサイン関数演算回路25−2の演算処理を制御する演算制御部20−2が設けられる。
コサイン関数演算回路25−2は、アドレスiが入力すると、変換シフト回路45による(N/8)のシフト処理により変数Xi=i/(N/8)に変換した後、乗算器46で変数Xi2 を求める。乗算器46の出力は巡回処理部48の乗算器50に入力され、選択回路55からの既知数Q(d+2)との乗算が行われる。
乗算器50の出力は、シフト回路52で選択回路56からのシフト数S(d+2)に基づいてシフトされる。シフト回路52の出力は、加算器54で選択回路58から選択された定数Kdと加算される。加算器54の出力は選択回路55の他方に入力され、且つ最終的な演算出力となる。
演算制御部20−2は、巡回処理部48において前記(1)式の巡回演算に続いてd=6,4,2,0となるように巡回演算を行う。即ち、乗算器50の1回目の乗算にあっては、選択回路55がd=6に対応した定数K6を選択して乗算し、続いてシフト回路52に対し選択回路56がシフト数S6=2-6 を選択してシフトを行い、加算器54に対しては選択回路58が定数K4を選択して既知数Q4の加算出力を行う。
この加算出力Q4は選択回路55に帰還入力され、2回目の乗算器50の乗算で選択され、Xi2 と乗算される。続いてシフト回路52に対し選択回路56がS4=2-4 を設定してシフト処理を行い、加算器54で、選択回路58で選択された定数K2との加算により既知数Q2が求められる。
この加算出力Q2は再び選択回路55に入力され、3回目の乗算で乗算器50はXi2 と選択回路55からの既知数Q2を乗算し、シフト回路52で選択回路56が選択したS2=2-1 のシフトを行った後、加算器54でそのとき選択回路58が選択している定数K0と加算し、加算出力Q0を求める。この加算出力Q0は最終的に算出された余弦関数であるcosθiであることから、これを演算結果として出力する。
図10は、保護ビットを加えた演算結果を丸めて演算精度を保つ図2の関数演算処理部12による本発明のサイン関数演算処理の他の実施形態のフローチャートである。
この図10のサイン関数演算処理にあっては、既知数Qd、変数Xi2 、シフト後の中間値、定数Kdは、最終的なビット数に保護ビット数(ガードビット)を加えたビット数として巡回計算をした後、最終値の保護ビット部分を丸めて、必要な最終ビット数を確保できるようにしている。
このような保護ビット数を加えて巡回計算した後に最終値の保護ビット部分を丸める演算処理により、固定小数点演算として毎回同じビット精度で計算することができ、図10のソフトウェア処理にあっては固定小数点演算であることから処理負荷が低減でき、またハードウェアで実現した場合の回路構成を簡単にすることができる。
ここで、符号をs、ビットデータをb、保護ビットデータをgとし、必要な最終の小数点以下のビット数を8ビット、保護ビットを2ビットとすると、図10のサイン関数演算処理における各データは次のように表現できる。
Figure 0004199100
ここで、図3の定数テーブル16において、コサイン関数を0°〜90°に範囲で計算するときシフトS2をS2=−1としている。このシフト数S2=−1は、1ビット左にシフトすることを意味し、0°〜45°まで計算するときと同じ精度を確保するためには、0〜45°の範囲で計算するときに比べ保護ビット(ガードビット)を1ビット多くして計算する必要がある。そこで図10のサイン関数演算処理の処理手順を説明すると次のようになる。

ステップS1:アドレスiを入力する。
ステップS2:変数Xiをアドレスiのシフト処理により求める。このとき変数Xiには保護ビットが2ビット付加される。
ステップS3:変数Xiを2乗し、結果を四捨五入により丸める。
ステップS4:d=7を設定し、既知数Q(d)を図3の定数テーブル16から読み出した定数K(7)とする。
ステップS5:d=d−2を求める。dは巡回処理により、5,3,1,0と変化する。
ステップS6:dが1以上か否かチェックする。1以上であればステップS7に進み、1未満であればステップS8に進む。
ステップS7:変数Xi2 に既知数Q(b+2)を乗算し、その結果を四捨五入により丸めて中間値Wとする。中間値Wをシフト数S(d+2)によりシフト処理する。中間値Wに定数K(d)を加算した値を四捨五入により丸め、新たな既知数Q(d)とする。この演算は、d=5,3,1につき3回繰り返される。
ステップS8:dが1未満となって巡回計算が終了した場合であり、Q(1)に変数Xiを乗算してsinθiを求め、その結果を四捨五入によりまるめて最終ビット数の値を求める。
ステップ9:演算結果としてsinθiを出力する。
図11は、保護ビットを加えた演算結果を丸めて演算精度を保つ本発明によるコサイン関数演算処理のフローチャートであり、次の処理手順となる。

ステップS1:アドレスiを入力する。
ステップS2:アドレスiを(N/8)シフトさせて変数Xiを求める。このとき変数Xiに保護ビットとして2ビットを付加する。
ステップS3:変数Xi2 を求め、四捨五入により丸める。
ステップS4:d=6とし、図3の定数テーブル16から求めた定数K(6)を既知数Q(6)とする。
ステップS5:d=d−2を求める。この場合、dはd=4,2,0と変化する。
ステップS6:dが0以上か否かチェックする。0以上であればステップS7に進み、マイナスであればステップS8に進む。
ステップS7:変数Xi2 に既知数Q(d+2)を乗算して、四捨五入による丸めにより中間値Wを求める。次に、中間値Wにシフト数S(d+2)によるシフト処理を行った後、定数K(d)を加算して四捨五入による丸めを行い、新たな既知数Q(d)を求める。この演算処理は、Q(4),Q(2)及びQ(0)というように3回、S5〜S7のループ処理を通じて行われる。
ステップS8:dがマイナスとなって巡回演算が終了した場合であり、ステップS7で求めたQ(0)を四捨五入により丸めて最終ビット数のcosθiとする。
ステップS9:cosθiを演算結果として出力する。
なお図10,図11の処理における丸めとしては四捨五入を例にとっているが、下位ビットの切り捨てでもよい。四捨五入は、演算過程で求めている最下位ビット位置より1ビット下の位置に1を加えて計算した後に切り捨てることで四捨五入ができる。切り捨ては、必要な小数点以下のビット数を残し、それ以下を切り捨てればよい。
図12は、図7に示したハードウェア構成による本発明の関数演算回路19の他の実施形態であり、パイプライン演算を行うサイン関数演算回路の実施形態である。また、このパイプライン型のサイン関数演算回路にあっては、図10のサイン関数演算処理の場合と同様、保護ビットを加えた演算結果を丸めて演算精度を保つようにしている。
図13において、サイン関数パイプライン演算回路25−3は、変換シフト回路64、乗算器65、第1演算部66、第2演算部74、第3演算部80、乗算器86及び丸め回路88で構成される。第1演算部66、第2演算部74及び第3演算部80は、パイプライン接続されている。
第1演算部66は乗算器68、シフト回路70、加算器72を備え、第2演算部74は乗算器75、シフト回路76、加算器78を備え、更に第3演算部80は乗算器82、シフト回路84及び加算器85を備え、この3つの演算部66,74,80は、それぞれ同じ回路構成を備えている。
ここで乗算器65,68,75,82,86及び加算器72,78,85は、丸め(Round)の機能を備えており、演算結果について切り捨てまたは四捨五入を行う。切り捨ては有効ビット以下の下位のビットを切り捨てる。四捨五入する場合は、有効ビットの最下位ビット位置より1ビット下の位置に1を加えて計算した後に切り捨てることで四捨五入できる。
この場合、例えば有効ビットである小数点以下8ビットに対し適切な保護ビット(ガードビット)を付加して計算することで、例えば既知数Qd、変数Xi、Xi2 及び定数Kdのそれぞれについて、2ビットのガードビットを付加して計算することで、丸めについて切り捨て処理であっても実用的な演算精度で計算することができる。
またシフト回路70,76,84としては、実際のハードウェアにあっては特に回路を設ける必要はなく、乗算器68,75,82の出力信号を加算器72,78,85のそれぞれに入力信号として供給するときに、ビット位置を変更するだけの機能を設ければよい。
このようなサイン関数パイプライン演算回路25−3にあっては、角度を表わすアドレスiをパイプライン制御部20−3による演算サイクルに同期して順次入力すると、例えば9サイクル目で最初のサイン関数の演算結果が出力され、それ以降は各サイクルごとに連続してサイン関数の演算結果が出力されるパイプライン演算が実現できる。
図13は、パイプライン演算を行う本発明によるコサイン関数演算回路の実施形態である。このコサイン関数パイプライン演算回路25−4にあっては、変換シフト回路95、乗算器96、第1演算部98、第2演算部105、第3演算部112で構成され、第1演算部98、第2演算部105及び第3演算部112はパイプライン接続されている。
また、第1演算部98は乗算器100、シフト回路102、加算器104で構成され、第2演算部105は乗算器106、シフト回路108、加算器110で構成され更に第3演算部112は乗算器114、シフト回路115及び加算器116で構成され、3つの演算部は同じ回路構成を持ってパイプライン接続されている。
また乗算器96,100,106,114及び加算器104,110,116は、丸めにより必要なビット数に切り捨てや四捨五入を行う機能を備えている。
このコサイン関数パイプライン演算回路25−4にあっても、パイプライン制御部20−4によるパイプラインの演算制御により各演算サイクルごとに角度情報としてのアドレスiを順次入力すると、8サイクル目で最初のコサイン関数の演算結果が出力でき、それ以降は各演算サイクルごとに順次演算結果が出力されることになる。
図14は、図12及び図13に示したパイプライン型のサイン関数及びコサイン関数の演算回路を、基数を2とした高速フーリエ変換回路に適用した場合のブロック図である。
図14において、基数2の高速フーリエ変換回路は、並べ替え回路120、バタフライ演算部122、並べ替え回路130、バタフライ演算部132、並べ替え回路134、バタフライ演算部136、並べ替え回路138及びバタフライ演算部140の4段構成を持っている。
この実施形態にあっては、例えば16点のサンプリングデータを入力して高速フーリエ変換を行う。ここで並べ替え回路120に対する時系列入力信号X0(k)は、バタフライ演算部122で番号kが8離れたX0(k+8)のデータ同士でバタフライ演算される。
次の2段目のバタフライ演算部132にあっては、入力データX1(k)の番号kが4離れたデータX1(k+4)同士でバタフライ演算が行われる。次に3段目のバタフライ演算部136にあっては、入力データX2(k)が2離れたデータX2(k+2)同士でバタフライ演算が行われる。
最終的に4段目のバタフライ演算部140にあっては、入力データX3(k)が1離れたデータX3(k+1)同士でバタフライ演算が行われ、フーリエ変換出力X4(k)とX4(k+1)が出力される。
図15は、図14における高速フーリエ変換回路における1段目から4段目の並べ替え回路120,130,134,138と、バタフライ演算部122,132,136,140のそれぞれの組合せ部分における入出力データを示している。
図15において、まず1段目の並べ替え回路120に対しては、2つの入力に16点のサンプリングデータのうち、番号が偶数となるX0(0),X0(2),…,X0(14)と、番号が奇数となる入力データX0(1),X0(3),…,X0(15)がそれぞれ入力され、K=8離れた同士のバタフライ演算が行われ、バタフライ演算部122の右側に示す演算データが得られる。
この演算データは2行目の並べ替え回路130に2組のデータ単位で順次入力され、バタフライ演算部132により、その右側に示す演算データが得られる。続いて2行目の出力データは3行目の3段目の並べ替え回路134に入力され、バタフライ演算部136の右側の演算結果が得られ、これが4行目の4段入力として並べ替え回路138に入力された後、バタフライ演算部140による演算で右側に示す高速フーリエ変換出力の結果が得られる。
再び図14を参照するに、例えば1段目のバタフライ演算部122に示すように、乗算器124にあってはバッファ145を介して得られたひねり係数W0 を入力データに乗算するひねり係数乗算を行っている。
このひねり係数は、1段目から4段目に向けて順番に1,2,4,8のように、2nでその種類が増加する。また各段におけるそれぞれのひねり係数は、1段目については8回使用され、2段目については4回使用され、3段目については2回使用され、4段目については1回ずつ使用され、乗算される。
このひねり係数と各データとの乗算を図15の各段について示すと次のようになる。
(1段目) X0(8)・W0,X0(9)・W0,X0(10)・W0
X0(11)・W0,X0(12)・W0,X0(13)・W0
X0(14)・W0,X0(15)・W0
(2段目) X1(4)・W0,X1(5)・W0,X1(6)・W0,X1(7)・W0
X1(12)・W4,X1(13)・W4,X1(14)・W4
X1(15)・W4
(3段目) X2(2)・W0,X2(3)・W0
X2(6)・W4,X2(7)・W4
X2(10)・W2,X2(11)・W2
X2(14)・W6,X2(15)・W6
(4段目) X3(1)・W0
X3(3)・W4
X3(5)・W2
X3(7)・W6
X3(9)・W1
X3(11)・W5
X3(13)・W3
X3(15)・W7
このようなバタフライ演算部122,132,136,140で使用されるひねり係数W0 〜W7 は、関数演算部144−1,144−2のそれぞれにおいて、アドレス計算部142−1,142−2から与えられたアドレスiに基づいてリアルタイムで演算される。
ひねり係数演算部144−1,144−2のそれぞれには、図12に示したサイン関数パイプライン演算回路25−3と、図13に示した同じくコサイン関数演算回路25−4が設けられており、4段のバタフライ演算部122,132,136,140の演算サイクルに同期して、必要とするひねり係数をリアルタイムで演算し、必要とする種類のひねり係数をバッファ145,146,148,150のそれぞれに格納し、また4段目については専用のひねり係数演算部144−2により8種類のひねり係数W0 ,W4 ,…W7 が順次演算されている。
ここでひねり係数は、WP 上で表わすと次式の複素数の乗算で表わされる。
Figure 0004199100
この複素数の乗算にあっては、アドレスpを入力としてコサイン関数及びサイン関数の演算が必要であり、これが本発明のパイプライン型のコサイン関数演算回路及びサイン関数演算回路で実現される。
ひねり係数演算部144−1は、高速フーリエ変換における各バタフライ演算の段数の演算タイミングまでに必要とするひねり係数を演算し、バッファ145,146,148,150に格納する。即ちひねり係数演算部144−1は、時刻tの経過に伴ってひねり係数列300としてW0 ,W0 ,W4 ,W0 ,W2 ,W4 ,W6 を演算し、黒枠で示すひねり係数をバッファレジスタ145,146,148に、1段目は1種類、2段目は2種類、4段目は4種類というように格納する。
またひねり係数演算部144−2は4段目のバタフライ演算部140専用に設けられており、時刻tの経過に伴ってひねり係数列302としてW0 ,W4 ,W2 ,W6 ,W1 ,W5 ,W3 ,W7 を順次演算して、バッファ150に格納する。そして図15の1段から4段目に示した2つの入力データの組に対し、下側の入力データにつき対応するひねり係数を乗算するバタフライ乗算が行われることになる。
図16は、図14の高速フーリエ変換回路を並列構成としたブロック図である。この高速フーリエ変換回路は、図14と同じ基数が2でサンプル点を16点としている。
図16において、並列構成とした高速フーリエ変換回路は、1段目バタフライ演算部152、2段目バタフライ演算部154、3段目バタフライ演算部156及び4段目バタフライ演算部158で構成される。
1段目バタフライ演算部152は、8つの乗算器を備えたひねり係数乗算部160、16個の加算器群162で構成される。2段目バタフライ演算部154は、4つずつ2組に分かれた乗算器を用いたひねり係数乗算部164と16個の加算器を備えた加算器群166で構成される。
3段目バタフライ演算部156は、2つずつの乗算器を4組備えたひねり係数乗算部168と16個の加算器を備えた加算器群170で構成される。更に4段目バタフライ演算部158は、8個の乗算器を備えたひねり係数乗算部172と16個の加算器を備えた加算器群174で構成される。
このような並列構成の高速フーリエ変換回路にあっては、入力段から出力段への演算段数は8段であり、8クロックサイクルで演算処理を終了することができる。
図16の並列構成の高速フーリエ変換回路に対応して、各段のひねり係数乗算部160,164,168,172のそれぞれに対し、必要とするひねり係数をリアルタイムで供給するため、図17のひねり係数演算回路が設けられる。
図17のひねり係数演算回路は、基本的には図14の高速フーリエ変換回路と同じである。まず図16における1段目バタフライ演算部152、2段目バタフライ演算部154、3段目バタフライ演算部156に対応してアドレス計算部142−1と、ひねり係数演算部144−1が設けられる。また1段目バタフライ演算部152、2段目バタフライ演算部154、3段目演算部156に対応して、それぞれバッファレジスタ176,178,180が設けられる。
4段目バタフライ演算部158に対しては、独立したアドレス計算部142−2とひねり係数演算部144−2が設けられ、同様にバッファ182を設けている。ひねり係数演算部144−1は、アドレス計算部142−1からのt=0,4,2,6に基づき出力系列184に示す時刻t0,t1,t2,t3のタイミングでひねり係数W0,W4,W2,W6を出力し、バッファ176にW0を格納し、バッファ178にW0,W4を格納し、さらにバッファ180にひねり係数W0,W4,W2,W6を格納する。
一方、ひねり係数演算部142−2は、アドレス計算部144−2からのアドレスt=0,4,2,6,1,5,3,7に基づいて出力系列186のように時刻t0〜t7のタイミングでひねり係数W0,W4,W2,W6,W1,W5,W3,W7を順次演算し、バッファ182に格納する。
図16の並列構成の高速フーリエ変換回路にあっては時刻t1のタイミングで1段目バタフライ演算部152のひねり係数乗算部160に設けた8つの乗算器がバッファレジスタ176のひねり係数W0を使用してひねり係数乗算を行なう。
また2段目バタフライ演算部154のひねり係数乗算部164は時刻t3のタイミングでバッファレジスタ178に格納されているひねり係数W0,W4を用いたひねり係数乗算を行なう。
また3段目バタフライ演算部156のひねり係数乗算部68にあっては時刻t5のタイミングですでにバッファレジスタ180に格納されているひねり係数W0,W4,W2,W6を使用したひねり係数乗算を行なう。そして4段目バタフライ演算部158にあっては時刻t7のタイミングでバッファレジスタ182に格納されているひねり係数W0,W4・・・W7の8種類のひねり係数を使用したひねり係数乗算を行なうようになる。
このように図16の並列構成の高速フーリエ変換回路に図17のひねり係数演算回路を組み合わせることで、変数X0(0)〜X0(15)の16点のサンプルデータを入力から演算8サイクルで4段にわたるバタフライ演算を並列実行して高速フーリエ変換出力を得ることができる。
尚、図8,図9のサイン関数、コサイン関数の演算回路にあっては巡回処理部をひとつ設け、これを繰り返し使用することで関数演算を行なっているが、これを図12,図13に示したようにパイプライン型に変えることもできる。
また図12,図13に示したパイプライン型のサイン及びコサイン演算回路を図8,図9のような巡回処理部をひとつ設けてこれを繰り返し使用する関数演算回路に変更することもできる。
また上記の実施形態にあってはテイラー級数式を巡回式に変形して処理する演算処理としてサイン関数とコサイン関数を例にとるものであったが、他の三角関数であるタンジェント関数、コセカント関数、セカント関数、コタンジェント関数や、三角関数以外のテイラー級数式が適用される一般的な超越関数に含まれる対数関数や指数関数についても適用できる。
このように三角関数以外の一般的な超越関数についてのテイラー級数式を本発明における巡回型に変形する際には、変数X2ではなく、変数を単にXとし、テイラー級数式を既知数Qと変数Xを乗算し、その結果をシフト数Sだけシフトしたのちに変数Kを加算したものを新たに既知数Qとする巡回式に変形すればよい。
また本発明にあっては変数Xiを最大値が1となるようにし、定数Kdは1以下となるようにすることでハードウェア回路が容易に実現できるように説明したが、演算処理回路の構成や固定小数点演算における小数点位置を移動して考えれば、この値に限定されない。
また浮動小数点演算回路を使用するハードウェアに場合や、浮動小数点演算を使えるCPUやDSPによるソフトウェア処理の場合には、テイラー級数式を巡回式に変形するだけで演算回数を削減して処理負担を低減し高速処理を実現することができる。
さらに上記の実施形態にあってはサイン関数及びコサイン関数の演算結果を高速フーリエ変換に適用する場合を例にとるものであったが、本発明はこれに限定されず、サイン関数およびコサイン関数の演算結果を利用する適宜の装置にそのまま適用することができる。
ここで、本発明の特徴を列挙すると次の付記ようになる。
(付記)
(付記1)
サイン関数を計算するテイラー級数式を、既知数Qと、変数Xの2乗を乗算し、その結果をシフト数Sだけシフトしたのち、定数Kを加算したものを新たな既知数Qとする各項に共通な単一の巡回式に変形して設定する巡回式設定ステップと、
前記変数Xは、変数Xの変化範囲内で、変数Xの最大値が1となるように、前記定数Kは1以下となるように、前記シフト数Sを調整して準備する調整ステップと、
角度情報iを入力して前記変数Xに変換し、前記テイラー級数式の項の数分、前記巡回式を高次の項から低次の項に向けて順次実行して前記角度情報iのサイン関数を導出する巡回式実行ステップと、
を備えたことを特徴とする関数演算方法。(1)
(付記2)
付記1記載の関数演算方法に於いて、前記巡回式実行ステップは、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする関数演算方法。(2)
(付記3)
コサイン関数を計算するテイラー級数式を、既知数Qと、変数Xの2乗を乗算し、その結果をシフト数Sだけシフトしたのち、定数Kを加算したものを新たな既知数Qとする各項に共通な単一の巡回式に変形して設定する巡回式設定ステップと、
前記変数Xは、変数Xの変化範囲内で、変数Xの最大値が1となるように、前記定数Kは1以下となるように、前記シフト数Sを調整して準備する調整ステップと、
角度情報iを入力して前記変数Xに変換し、前記テイラー級数式の項の数分、前記巡回式を高次の項から低次の項に向けて順次実行して前記角度情報iのコサイン関数を導出する巡回式実行ステップと、
を備えたことを特徴とする関数演算方法。(3)
(付記4)
付記3記載の関数演算方法に於いて、前記巡回式実行ステップは、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする関数演算方法。
(付記5)
既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするサイン関数を計算するテイラー級数式の変形により得られた巡回式を演算する巡回式演算部と、
入力した角度情報iを前記変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるように前記シフト数Sを調整して出力する変換調整部と、
サイン関数を計算するテイラー級数式の各項に対応した定数Kと、前記各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、
前記変換調整部から前記変数Xが出力された際に、予め定めたテイラー級数式の項数分、前記巡回式演算部を高次の項から低次の項に向けて前記定数テーブルの定数Kとシフト数Sの選択に基づき順次循環演算を実行させて前記角度情報iのサイン関数を導出する演算制御部と、
を備えたことを特徴とする関数演算回路。(4)
(付記6)
付記5記載の関数演算回路に於いて、前記巡回式演算部は、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする関数演算回路。
(付記7)(コサイン関数演算回路)
既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするコサイン関数を計算するテイラー級数式の変形により得られた巡回式を演算する巡回式演算部と、
入力した角度情報iを前記変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるように前記シフト数Sを調整して出力する変換調整部と、
サイン関数を計算するテイラー級数式の各項に対応した定数Kと、前記各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、
前記変換調整部から前記変数Xが出力された際に、予め定めたテイラー級数式の項数分、前記巡回式演算部を高次の項から低次の項に向けて前記テーブルの定数Kとシフト数Sの選択に基づき順次循環演算を実行させて前記角度情報iのコサイン関数を導出する演算制御部と、
を備えたことを特徴とする関数演算回路。
(付記8)
付記7記載の関数演算回路に於いて、前記巡回式演算部は、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする関数演算回路。
(付記9)
既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするサイン関数を計算するテイラー級数式の変形により得られた巡回式を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、
入力した角度情報iを前記変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるように前記シフト数Sを調整して前記パイプライン演算部に出力する変換調整部と、
サイン関数を計算するテイラー級数式の各項に対応した定数Kと、前記各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、
前記変換調整部から前記変数Xが出力される毎に、前記パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを前記定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき前記角度情報iのサイン関数を導出させるパイプライン制御部と、
を備えたことを特徴とする関数演算回路。(5)
(付記10)
付記9記載の関数演算回路に於いて、前記パイプライン演算部の各巡回式演算部は、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする関数演算回路。
(付記11)(コサイン関数パイプライン演算回路)
既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするコサイン関数を計算するテイラー級数式の変形により得られた巡回式を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、
入力した角度情報iを前記変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるように前記シフト数Sを調整して前記パイプライン演算部に出力する変換調整部と、
コサイン関数を計算するテイラー級数式の各項に対応した定数Kと、前記各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、
前記変換調整部から前記変数Xが出力される毎に、前記パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを前記定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき前記角度情報iのコサイン関数を導出させるパイプライン制御部と、
を備えたことを特徴とする関数演算回路。
(付記12)
付記11記載の関数演算回路に於いて、前記パイプライン演算部の各巡回式演算部は、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする関数演算回路。
(付記13)(サイン及びコサイン関数パイプライン演算回路)
サイン関数演算回路とコサイン関数演算回路を有し、
前記サイン関数演算回路は、
既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするサイン関数を計算するテイラー級数式の変形により得られた巡回式を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、
入力した角度情報iを前記変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるように前記シフト数Sを調整して前記パイプライン演算部に出力する変換調整部と、
サイン関数を計算するテイラー級数式の各項に対応した定数Kと、前記各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、
前記変換調整部から前記変数Xが出力される毎に、前記パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを前記定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき前記角度情報iのサイン関数を導出させるパイプライン制御部と、
を備え、
前記コサイン関数演算回路は、
既知数Qと変数Xの2乗を乗算し、その結果をシフト数Sだけシフトした後に定数Kを加算したものを新たな既知数Qとするコサイン関数を計算するテイラー級数式の変形により得られた巡回式を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、
入力した角度情報iを前記変数Xに変換すると共に、変数Xの変化範囲内で変数Xの最大値が1となるように前記シフト数Sを調整して前記パイプライン演算部に出力する変換調整部と、
コサイン関数を計算するテイラー級数式の各項に対応した定数Kと、前記各定数Kを1以下となるように調整したシフト数Sを予め求めて保持した定数テーブルと、
前記変換調整部から前記変数Xが出力される毎に、前記パイプライン演算部の各巡回式演算部にテイラー級数式の対応する項の定数Kとシフト数Sを前記定数テーブルから選択して並列的に演算させ最終段の巡回式演算部の出力に基づき前記角度情報iのコサイン関数を導出させるパイプライン制御部と、
を備えたことを特徴とする関数演算回路。
(付記14)
付記13記載の関数演算回路に於いて、前記各パイプライン演算部の各巡回式演算部は、前記巡回式の既知数Q、変数X、シフト後の中間値、定数Kは、最終的なビット数に保護ビット数を加えたビット数として演算処理を実行することを特徴とする関数演算回路。
(付記15)
付記13記載の関数演算回路に於いて、前記入力情報iのサイン関数およびコサイン関数に基づき、基数2のパイプライン型高速フーリエ変換装置に設けた複数のバタフライ段のひねり係数値を計算させることを特徴とする関数演算回路。
(付記16)
超越関数を計算するテイラー級数式を、既知数Qと、変数Xを乗算し、その結果をシフト数Sだけシフトしたのち、定数Kを加算したものを新たな既知数Qとする各項に共通な単一の巡回式に変形して設定する巡回式設定ステップと、
前記変数Xは、変数Xの変化範囲内で、変数Xの最大値が1となるように、前記定数Kは1以下となるように、前記シフト数Sを調整して準備する調整ステップと、
入力情報を前記変数Xに変換し、前記テイラー級数式の項の数分、前記巡回式を高次の項から低次の項に向けて順次実行して前記入力情報の超越関数を導出する巡回式実行ステップと、
を備えたことを特徴とする関数演算方法。
本発明の原理説明図 コンピュータのプログラムにより実現される本発明の関数演算処理の機能構成のブロック図 図2の関数演算に使用するテーブル内容の説明図 図2の関数演算処理のフローチャート 図2によるサイン関数演算処理のフローチャート 図2によるコサイン関数演算処理のフローチャート ハードウェアにより実現される本発明の関数演算回路のブロック図 図7に設けるサイン関数演算回路の回路ブロック図 図7に設けるコサイン関数演算回路の回路ブロック図 保護ビットを加えた演算結果を丸めて演算精度を保つ本発明によるサイン関数演算処理のフローチャート 保護ビットを加えた演算結果を丸めて演算精度を保つ本発明によるコサイン関数演算処理のフローチャート パイプライン演算を行う本発明のサイン関数演算回路の回路ブロック図 パイプライン演算を行う本発明のコサイン関数演算回路の回路ブロック図 ひねり係数の演算に図12及び図13のパイプライン演算を行う本発明の関数演算回路を適用した基数を2とした高速フーリエ変換回路のブロック図 図14の4段にわたる並べ替えとバタフライ演算の入出力データの説明図 図14の高速フーリエ変換回路を並列構成としたブロック図 図16の高速フーリエ変換回路で使用するひねり係数演算回路のブロック図 従来の高速フーリエ変換装置を使用したシステムの説明図 ひねり係数をメモリに保持した従来の高速フーリエ変換装置のブロック図 角度情報のアドレスiをサイン関数又はコサイン関数に変換するルックアップテーブルの説明図 テイラー級数式を用いてサイン関数を演算する単純なハードウェアとしての回路図
符号の説明
10:角度検出部
11:コンピュータ
12:関数演算処理部
13:巡回式設定部
14:調整部
15:巡回式実行部
16,22:定数テーブル
18:装置
19:関数演算回路
20,20−1,20−2:演算制御部
20−3,20−4:パイプライン制御部
24:変換調整部
25:巡回式演算部
25−1:サイン関数演算回路
25−2:コサイン関数演算回路
25−3:サイン関数パイプライン演算回路
25−4:コサイン関数パイプライン演算回路
26,45,64,95:変換シフト回路
27,30,40,46,50,65,68,75,82,86,96,100,106,114,124,:乗算器
28,48:巡回処理部
32,52,70,76,84,102,108,115:シフト回路
34,54,126,128:加算器
35,36,38,55,56,58:選択回路
66,98:第1演算部
74,105:第2演算部
80,112:第3演算部
88:丸め回路
120,130,134,138:並べ替え回路
122,132,136,140,152,154,156,158:バタフライ演算部
142−1,1421−2:アドレス計算部
144−1,144−2:ひねり係数演算部
145,146,148,150,176,178,180,182:バッファ
160,164,168,172:ひねり係数乗算部

Claims (4)

  1. 演算処理装置の関数演算方法において、
    前記演算処理装置に、
    前記演算処理装置が有する巡回式設定部が、三角関数を計算するテイラー級数式を、既知数Qと、変数Xの2乗を乗算し、前記乗算結果をシフト数Sだけシフトしたのち、前記シフト結果に定数Kを加算した結果前記テイラー級数式の新たな既知数Qとする各項に共通な単一の巡回式に変形して前記演算処理装置が有する巡回式実行部に設定するステップと、
    前記演算処理装置が有する調整部が、前記各項の巡回式に対応して、前記変数Xの変化範囲内で、前記変数Xの最大値が1になるとともに、前記定数K1以下となるように、前記シフト数Sを調整するステップと、
    前記巡回式実行部が、入力された角度情報iを前記変数Xに変換し、前記変数X,前記定数テーブルに格納された定数K及びシフト数Sを用いて前記テイラー級数式の項の数分、前記巡回式を高次から低次の項に向けて順次実行して前記角度情報iの三角関数の演算結果を導出するステップと、
    実行させることを特徴とする関数演算方法。
  2. 前記巡回式実行部が前記各度情報iの三角関数の演算結果を導出するステップにおいて、前記巡回式の既知数Q、変数X、シフト後の中間値及び定数Kは前記三角関数の演算結果のビット数に所定のビット数を加えたビット数の精度により表現されて、前記三角関数の演算結果の導出に用いられることを特徴とする請求項1記載の関数演算方法。
  3. 三角関数を導出するテイラー級数式において、既知数Qと変数Xの2乗を乗算し、前記乗算結果をシフト数Sだけシフトしたのち、前記シフト結果に定数Kを加算した結果を新たな既知数Qとする、前記テイラー級数式の各項の巡回式を演算する巡回式演算部と、
    入力された角度情報iを変数Xに変換すると共に、前記変数Xの変化範囲内で、前記変数Xの最大値が1となるように前記シフト数Sを調整して出力する変換調整部と、
    前記テイラー級数式の各項に対応した定数Kと、前記各調整されたシフト数Sを保持する定数テーブルと、
    前記変換調整部から前記変数Xが出力された際に、前定数テーブルに保持された各項の定数Kとシフト数Sに基づき、予め定めたテイラー級数式の項数分、前記巡回式演算部に高次の項から低次の項に向けて順次循環演算を実行させて前記角度情報iの三角関数の演算結果を導出する演算制御部と、
    を備えたことを特徴とする演算制御装置。
  4. 三角関数を導出するテイラー級数式において、既知数Qと変数Xの2乗を乗算し、前記乗算結果をシフト数Sだけシフトしたのち、前記シフト結果に定数Kを加算した結果を新たな既知数Qとする前記テイラー級数式の各項に共通な単一の巡回式を演算する巡回式演算部を各項ごとに設けてパイプライン接続したパイプライン演算部と、
    力された角度情報iを変数Xに変換すると共に、前記変数Xの変化範囲内で、前記変数Xの最大値が1となるように前記シフト数Sを調整して前記パイプライン演算部に出力する変換調整部と、
    前記テイラー級数式の各項に対応した定数Kと、前記各調整されたシフト数Sを保持する定数テーブルと、
    前記変換調整部から前記変数Xが出力される毎に、前記パイプライン演算部の各巡回式演算部に、前記定数テーブルに保持された各項の定数Kとシフト数Sに基づき、前記パイプライン演算部に前記テイラー級数式の各項の巡回式を演算させて、前記各度情報iの三角関数の演算結果を導出するパイプライン制御部と、
    を備えたことを特徴とする演算処理装置。
JP2003414688A 2003-12-12 2003-12-12 関数演算方法及び関数演算回路 Expired - Fee Related JP4199100B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003414688A JP4199100B2 (ja) 2003-12-12 2003-12-12 関数演算方法及び関数演算回路
US10/823,570 US7634524B2 (en) 2003-12-12 2004-04-14 Arithmetic method and function arithmetic circuit for a fast fourier transform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003414688A JP4199100B2 (ja) 2003-12-12 2003-12-12 関数演算方法及び関数演算回路

Publications (2)

Publication Number Publication Date
JP2005174077A JP2005174077A (ja) 2005-06-30
JP4199100B2 true JP4199100B2 (ja) 2008-12-17

Family

ID=34650543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003414688A Expired - Fee Related JP4199100B2 (ja) 2003-12-12 2003-12-12 関数演算方法及び関数演算回路

Country Status (2)

Country Link
US (1) US7634524B2 (ja)
JP (1) JP4199100B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4554431B2 (ja) * 2004-05-18 2010-09-29 ローム株式会社 Dtmf信号生成回路、音信号生成回路、ならびに通信装置
JP4755129B2 (ja) * 2007-03-16 2011-08-24 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP5304483B2 (ja) * 2009-06-30 2013-10-02 富士通株式会社 演算処理装置
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) * 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US20140324936A1 (en) * 2013-04-30 2014-10-30 Texas Instruments Incorporated Processor for solving mathematical operations
JP6497250B2 (ja) * 2015-07-16 2019-04-10 富士通株式会社 演算処理装置および演算処理装置の制御方法
WO2017137015A2 (zh) 2016-02-13 2017-08-17 成都海存艾匹科技有限公司 含有三维存储阵列的处理器
US11527523B2 (en) 2018-12-10 2022-12-13 HangZhou HaiCun Information Technology Co., Ltd. Discrete three-dimensional processor
US10848158B2 (en) 2016-02-13 2020-11-24 HangZhou HaiCun Information Technology Co., Ltd. Configurable processor
US11966715B2 (en) 2016-02-13 2024-04-23 HangZhou HaiCun Information Technology Co., Ltd. Three-dimensional processor for parallel computing
US11080229B2 (en) 2016-02-13 2021-08-03 HangZhou HaiCun Information Technology Co., Ltd. Processor for calculating mathematical functions in parallel
US10445067B2 (en) 2016-05-06 2019-10-15 HangZhou HaiCun Information Technology Co., Ltd. Configurable processor with in-package look-up table
US10372359B2 (en) 2016-05-10 2019-08-06 Chengdu Haicun Ip Technology Llc Processor for realizing at least two categories of functions
KR102290606B1 (ko) * 2018-10-08 2021-08-18 이쿠얼키 주식회사 순환수를 이용하여 수의 열에 대한 대상함수를 도출하는 디바이스 및 그 방법
US11296068B2 (en) 2018-12-10 2022-04-05 HangZhou HaiCun Information Technology Co., Ltd. Discrete three-dimensional processor
US11734550B2 (en) 2018-12-10 2023-08-22 HangZhou HaiCun Information Technology Co., Ltd. Discrete three-dimensional processor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1198263A (en) * 1967-06-06 1970-07-08 Nat Res Dev Improvements in or relating to Digital Differential Analysers
US3569894A (en) * 1969-04-14 1971-03-09 Medtronic Inc Magnetically coupled implantable servomechanism
US4077063A (en) * 1976-08-11 1978-02-28 The Singer Company Apparatus for rapidly determining the trigonometric functions of an input angle
US4905177A (en) * 1988-01-19 1990-02-27 Qualcomm, Inc. High resolution phase to sine amplitude conversion
JP2848134B2 (ja) 1992-07-03 1999-01-20 富士通株式会社 可変高速フーリエ変換回路
US5963460A (en) 1996-12-17 1999-10-05 Metaflow Technologies, Inc. Apparatus for computing transcendental functions quickly
US6363405B1 (en) * 1997-12-24 2002-03-26 Elbrus International Limited Computer system and method for parallel computations using table approximation methods

Also Published As

Publication number Publication date
JP2005174077A (ja) 2005-06-30
US20050131975A1 (en) 2005-06-16
US7634524B2 (en) 2009-12-15

Similar Documents

Publication Publication Date Title
JP4199100B2 (ja) 関数演算方法及び関数演算回路
US7062523B1 (en) Method for efficiently computing a fast fourier transform
WO2013109532A1 (en) Algebraic processor
Nascimento et al. A new solution to the hyperbolic tangent implementation in hardware: Polynomial modeling of the fractional exponential part
US20040111227A1 (en) Method and system for fixed point fast fourier transform with improved SNR
de Lassus Saint-Geniès et al. Exact lookup tables for the evaluation of trigonometric and hyperbolic functions
CN102364456A (zh) 64点fft计算器
Bruguera et al. Design of a pipelined radix 4 CORDIC processor
JP3129392B2 (ja) 2次元idct回路
CN109634556B (zh) 一种乘累加器及累加输出方法
CN108897524B (zh) 除法函数处理电路、方法、芯片以及系统
Panda Performance Analysis and Design of a Discreet Cosine Transform processor Using CORDIC algorithm
CN113778379A (zh) 一种基于cordic的低复杂度硬件系统和应用方法
CN113778378A (zh) 一种求解复数n次方根的装置和方法
US20210326404A1 (en) Fourier transform device and fourier transform method
JP2508286B2 (ja) 平方根演算装置
Niharika et al. Implementation of radix-4 butterfly structure to prevent arithmetic overflow
JP2009245407A (ja) 複素数の積和演算装置および積和演算方法
Nicolas et al. Chebyshev approximation technique: analysis and applications
JP2010072981A (ja) 複素数の積和演算装置および積和演算方法
JPH0535773A (ja) ベクトル除算方式とその装置
Bergerman et al. Modulo 2k+ 1 Truncated Multiply-Accumulate Unit
Ghissoni et al. Efficient area and power multiplication part of FFT based on twiddle factor decomposition
Karner et al. Optimum complexity FFT algorithms for RISC processors
JP2751531B2 (ja) ループコードfft演算方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080814

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: 20080909

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081002

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131010

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees