FourierTransform ライブラリ
- 目次 -
概要 - Abstract
このライブラリ math.FourierTransform は、離散フーリエ変換(DFT)の処理を提供します。
現時点で高速フーリエ変換(FFT)は実装されておらず、計算オーダーが N^2 の単純なDFTのみが実装されています。
なお、このモジュールでは varcomplex 型による多倍長精度の離散フーリエ変換処理も提供されますが、
ただアルゴリズムが実装されているだけであり、演算誤差の蓄積や、桁落ち等に対する特別な措置は行われません。
つまり、最終桁まで正しい値が得られる訳ではなく、演算結果の末尾に、常に誤差蓄積による正しくない部分が含まれます。
この誤差部分の長さは、実装のアルゴリズムの違いや、引数による桁落ちやその他影響の違いなど、場合によって異なります。
従って、多倍長精度のDFT(varcomplex型)を使用する場合は、
必要な桁数よりも、十分に大きな桁数で関数を呼び出し、得られた結果から不要な(誤差を含む)部分を切り捨てて下さい。
目次 - Index
- const int FORWARD
- 順変換となるフーリエ変換の指数部符号です。
- const int BACKWARD
- 逆変換となるフーリエ変換の指数部符号です。
- complex[ ] dft(complex arg[ ], int sgn)
- 離散フーリエ変換を行います。定義域は 0〜2π で、変換後の規格化は行いません。
- varcomplex[ ] dft(varcomplex arg[ ], int sgn)
- 離散フーリエ変換を行います。定義域は 0〜2π で、変換後の規格化は行いません。
構造体 - Structs
- なし - None -
変数 - Variables
文法的定義 - Signature |
const int FORWARD |
変数名 - Name |
FORWARD |
役割 - Role |
順変換となるフーリエ変換の指数部符号です。 |
文法的定義 - Signature |
const int BACKWARD |
変数名 - Name |
BACKWARD |
役割 - Role |
逆変換となるフーリエ変換の指数部符号です。 |
関数 - Functions
文法的定義 - Signature |
complex[ ] dft(complex arg[ ], int sgn) |
関数名 - Name |
dft |
役割 - Role |
離散フーリエ変換を行います。定義域は 0〜2π で、変換後の規格化は行いません。 |
引数 - Arguments |
(complex[]型) arg : 離散フーリエ変換したいデータを入力します。 (int型) sgn : フーリエ変換の指数部符号です。-1で順変換、1で逆変換となります。通常は定数 FourierTransform.FORWARD (順変換)または FourierTransform.BACKWARD (逆変換) を用いて指定します。 |
戻り値 - Return |
(complex[]型) 引数を離散フーリエ変換した値です。 |
文法的定義 - Signature |
varcomplex[ ] dft(varcomplex arg[ ], int sgn) |
関数名 - Name |
dft |
役割 - Role |
離散フーリエ変換を行います。定義域は 0〜2π で、変換後の規格化は行いません。 |
引数 - Arguments |
(varcomplex[]型) arg : 離散フーリエ変換したいデータを入力します。 (int型) sgn : フーリエ変換の指数部符号です。-1で順変換、1で逆変換となります。通常は定数 FourierTransform.FORWARD (順変換)または FourierTransform.BACKWARD (逆変換) を用いて指定します。 |
戻り値 - Return |
(varcomplex[]型) 引数を離散フーリエ変換した値です。 |