Mol(Math Object Library) fot .Net
離散データのフーリェ変換(DFT)を実行する基本クラスです。離散データ値 W とフーリェ変換値 Z の関係は以下のように一般化されます。

Zk1,k2,...,kd = σ・Σjd=1nd…Σj2=1n2Σj1=1n1Wj1,j2,...,jd exp(δ・i・2πΣl=1d jl・kl / nl)

最も単純な変換では W と Z は一次元のデータ列ですが、2次元以上の多次元データの変換が可能です。
ここで、
  i は虚数単位、d(≧1)は次元数(インデックスの数)、ni(1≦i≦d)は各次元サイズ(各インデックスの最大値)
  δは変換の方向を決定する因子で前進(Foward、または単に「フーリェ変換」)変換の時は -1、後退(Backward、または「フーリェ逆変換」)変換の時は +1 が設定されます。
  σはスケール因子でデフォルトでフーリェ変換のときは 1.0、逆変換の時は 1.0/(n1・n2・...nd) が仮定されます。
前進変換の時に与える Wj1,j2,...,jd を「元データ値」(または単に「データ値」)、 計算結果として得られるZk1,k2,...,kdを「変換データ値」(または単に「DFT」値)と定義します
通常の計算手順は以下のようになります。
 フーリェ変換 (δ=-1):元データ値(W) → Forward変換 → DFT値(Z)
 フーリェ逆変換(δ=+1):DFT値(W)    → Backward変換 → 元データ値(Z、元データの近似値)

元データ値は Double (FftDouble)か Complex (FftComplex)が選択できますが、DFT値は常に Complex となります。
データ値の数が 2、3、5、7、11、または 13 の累乗に因数分解できる場合は高速フーリエ変換(FFT)による最大のパフォーマンスを得ることができます。

名前空間: Mol
アッセンブリー: Mol.Net (in Mol.Net.dll)

構文

C#
public abstract class _DFT : _Mol
Visual Basic
Public MustInherit Class _DFT
	Inherits _Mol
Visual C++
public ref class _DFT abstract : public _Mol
[<AbstractClassAttribute>]
type _DFT =  
    class
        inherit _Mol
    end

派生階層

System..::..Object
  Mol..::.._Mol
    Mol..::.._DFT
      Mol..::..DftComplex
      Mol..::..DftDouble

参照