実行
[高速フーリエ変換]


列挙型

enum  f_fft_normalize_type {
  F_FFT_DIV_BY_ONE = 0x10, F_FFT_DIV_FWD_BY_N = 0x20,
  F_FFT_DIV_INV_BY_N = 0x30, F_FFT_DIV_BY_SQRTN = 0x40
}
 フーリエ変換の正規化方法指定 [詳細]
enum  f_fft_data_type {
  F_1D_FFT_FCOMPLEX = 0x8, F_1D_FFT_DOUBLEC = 0x4,
  F_1D_FFT_REAL = 0x2, F_1D_FFT_PACK = 0x1,
  F_2D_FFT_FCOMPLEX = 0x80, F_2D_FFT_DOUBLEC = 0x40,
  F_2D_FFT_REAL = 0x20
}
 フーリエ変換の入力と出力データの型 [詳細]
enum  f_fft_direction {
  F_FFT_FORWARD = 0x11, F_FFT_INVERSE = 0x22,
  F_FFT_BIDIRECTION = 0x44
}
 フーリエ変換の向き指定 [詳細]

関数

INT FVALGAPI fnFIE_fft_get_spec (const FHANDLE hFFT, INT *ipSpecType, INT *ipWidth, INT *ipHeight, INT *ipNormalization)
 FFTハンドルが保持しているパラメータを取得する
INT FVALGAPI fnFIE_fft_check_spec (const FHANDLE hFFT, INT iWidth, INT iHeight, INT iDirection, INT iSignalDataType, INT iFourierDataType)
 FFTハンドルの有効性チェック
INT FVALGAPI fnFIE_fft_fwd_CtoC_in (FHANDLE hFFT, FCOMPLEX *vpData, INT iOrder)
 interleaved format の複素数データの1次元順方向フーリエ変換を行う(インプレース処理)
INT FVALGAPI fnFIE_fft_inv_CtoC_in (FHANDLE hFFT, FCOMPLEX *vpData, INT iOrder)
 interleaved format の複素数データの1次元逆フーリエ変換を行う(インプレース処理)
INT FVALGAPI fnFIE_fft_fwd_CtoC_out (FHANDLE hFFT, const FCOMPLEX *vpSrc, FCOMPLEX *vpDst, INT iOrder)
 interleaved format の複素数データの1次元順方向フーリエ変換を行う(アウトプレース処理)
INT FVALGAPI fnFIE_fft_inv_CtoC_out (FHANDLE hFFT, const FCOMPLEX *vpSrc, FCOMPLEX *vpDst, INT iOrder)
 interleaved format の複素数データの1次元逆フーリエ変換を行う(アウトプレース処理)
INT FVALGAPI fnFIE_fft_fwd_DDtoDD_in (FHANDLE hFFT, DOUBLE *dpRe, DOUBLE *dpIm, INT iOrder)
 splitted format の複素数データの1次元順方向フーリエ変換を行う(インプレース処理)
INT FVALGAPI fnFIE_fft_inv_DDtoDD_in (FHANDLE hFFT, DOUBLE *dpRe, DOUBLE *dpIm, INT iOrder)
 splitted format の複素数データの1次元逆フーリエ変換を行う(インプレース処理)
INT FVALGAPI fnFIE_fft_fwd_DDtoDD_out (FHANDLE hFFT, const DOUBLE *dpSrcRe, const DOUBLE *dpSrcIm, DOUBLE *dpDstRe, DOUBLE *dpDstIm, INT iOrder)
 splitted format の複素数データの1次元順方向フーリエ変換を行う(アウトプレース処理)
INT FVALGAPI fnFIE_fft_inv_DDtoDD_out (FHANDLE hFFT, const DOUBLE *dpSrcRe, const DOUBLE *dpSrcIm, DOUBLE *dpDstRe, DOUBLE *dpDstIm, INT iOrder)
 splitted format の複素数データの1次元逆フーリエ変換を行う(アウトプレース処理)
INT FVALGAPI fnFIE_fft_fwd_UC8toC (FHANDLE hFFT, const UCHAR *ucpSrc, FCOMPLEX *vpDst, INT iOrder)
 時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_CtoUC8 (FHANDLE hFFT, const FCOMPLEX *vpSrc, UCHAR *ucpDst, DOUBLE dScaleFactor, INT iOrder)
 interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、UCHAR 型の実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_UC8toDD (FHANDLE hFFT, const UCHAR *ucpSrc, DOUBLE *dpRe, DOUBLE *dpIm, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_DDtoUC8 (FHANDLE hFFT, const DOUBLE *dpRe, const DOUBLE *dpIm, UCHAR *ucpDst, DOUBLE dScaleFactor, INT iOrder)
 周波数領域の1次元複素数データを逆フーリエ変換し、UCHAR型の時間領域1次元実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_UC8toPack (FHANDLE hFFT, const UCHAR *ucpSrc, DOUBLE *dpDst, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_PacktoUC8 (FHANDLE hFFT, const DOUBLE *dpSrc, UCHAR *ucpDst, DOUBLE dScaleFactor, INT iOrder)
 packed format の周波数領域の1次元複素数データを逆フーリエ変換し、UCHAR型の時間領域1次元実数データを出力する。
INT FVALGAPI fnFIE_fft_fwd_US16toC (FHANDLE hFFT, const USHORT *uspSrc, FCOMPLEX *vpDst, INT iOrder)
 時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_CtoUS16 (FHANDLE hFFT, const FCOMPLEX *vpSrc, USHORT *uspDst, DOUBLE dScaleFactor, INT iOrder)
 interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、USHORT 型の実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_US16toDD (FHANDLE hFFT, const USHORT *uspSrc, DOUBLE *dpRe, DOUBLE *dpIm, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_DDtoUS16 (FHANDLE hFFT, const DOUBLE *dpRe, const DOUBLE *dpIm, USHORT *uspDst, DOUBLE dScaleFactor, INT iOrder)
 周波数領域の1次元複素数データを逆フーリエ変換し、USHORT型の時間領域1次元実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_US16toPack (FHANDLE hFFT, const USHORT *uspSrc, DOUBLE *dpDst, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_PacktoUS16 (FHANDLE hFFT, const DOUBLE *dpSrc, USHORT *uspDst, DOUBLE dScaleFactor, INT iOrder)
 packed format の周波数領域の1次元複素数データを逆フーリエ変換し、USHORT型の時間領域1次元実数データを出力する。
INT FVALGAPI fnFIE_fft_fwd_S16toC (FHANDLE hFFT, const SHORT *spSrc, FCOMPLEX *vpDst, INT iOrder)
 時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_CtoS16 (FHANDLE hFFT, const FCOMPLEX *vpSrc, SHORT *spDst, DOUBLE dScaleFactor, INT iOrder)
 interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、SHORT 型の実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_S16toDD (FHANDLE hFFT, const SHORT *spSrc, DOUBLE *dpRe, DOUBLE *dpIm, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_DDtoS16 (FHANDLE hFFT, const DOUBLE *dpRe, const DOUBLE *dpIm, SHORT *spDst, DOUBLE dScaleFactor, INT iOrder)
 周波数領域の1次元複素数データを逆フーリエ変換し、SHORT型の時間領域1次元実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_S16toPack (FHANDLE hFFT, const SHORT *spSrc, DOUBLE *dpDst, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_PacktoS16 (FHANDLE hFFT, const DOUBLE *dpSrc, SHORT *spDst, DOUBLE dScaleFactor, INT iOrder)
 packed format の周波数領域の1次元複素数データを逆フーリエ変換し、UCHAR型の時間領域1次元実数データを出力する。
INT FVALGAPI fnFIE_fft_fwd_D64toC (FHANDLE hFFT, const DOUBLE *dpSrc, FCOMPLEX *vpDst, INT iOrder)
 時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_CtoD64 (FHANDLE hFFT, const FCOMPLEX *vpSrc, DOUBLE *dpDst, INT iOrder)
 interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、DOUBLE型の実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_D64toDD (FHANDLE hFFT, const DOUBLE *dpSrc, DOUBLE *dpRe, DOUBLE *dpIm, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する
INT FVALGAPI fnFIE_fft_inv_DDtoD64 (FHANDLE hFFT, const DOUBLE *dpRe, const DOUBLE *dpIm, DOUBLE *dpDst, INT iOrder)
 周波数領域の1次元複素数データを逆フーリエ変換し、DOUBLE型の時間領域1次元実数データを出力する
INT FVALGAPI fnFIE_fft_fwd_D64toPack_out (FHANDLE hFFT, const DOUBLE *dpSrc, DOUBLE *dpDst, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する。(アウトプレース処理)
INT FVALGAPI fnFIE_fft_inv_PacktoD64_out (FHANDLE hFFT, const DOUBLE *dpSrc, DOUBLE *dpDst, INT iOrder)
 packed format の周波数領域の1次元複素数データを逆フーリエ変換し、DOUBLE型の時間領域1次元実数データを出力する。
INT FVALGAPI fnFIE_fft_fwd_D64toPack_in (FHANDLE hFFT, DOUBLE *dpVec, INT iOrder)
 時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する。(インプレース処理)
INT FVALGAPI fnFIE_fft_inv_PacktoD64_in (FHANDLE hFFT, DOUBLE *dpVec, INT iOrder)
 packed format の周波数領域の1次元複素数データを逆フーリエ変換し、DOUBLE型の時間領域1次元実数データを出力する。
INT FVALGAPI fnFIE_fft2_fwd_CtoC_in (FHANDLE hFFT, FHANDLE hImg)
 2次元の複素数画像を順方向フーリエ変換する(インプレース処理)
INT FVALGAPI fnFIE_fft2_inv_CtoC_in (FHANDLE hFFT, FHANDLE hImg)
 2次元の複素数画像を逆フーリエ変換する(インプレース処理)
INT FVALGAPI fnFIE_fft2_fwd_CtoC_out (FHANDLE hFFT, FHANDLE hImgSrc, FHANDLE hImgDst)
 2次元の複素数画像を順方向フーリエ変換する(アウトプレース処理)
INT FVALGAPI fnFIE_fft2_inv_CtoC_out (FHANDLE hFFT, FHANDLE hImgSrc, FHANDLE hImgDst)
 2次元の複素数画像を逆フーリエ変換する(アウトプレース処理)
INT FVALGAPI fnFIE_fft2_fwd_DDtoDD_in (FHANDLE hFFT, FHANDLE hImgRe, FHANDLE hImgIm)
 2次元の複素数画像を順方向フーリエ変換する(インプレース処理)
INT FVALGAPI fnFIE_fft2_inv_DDtoDD_in (FHANDLE hFFT, FHANDLE hImgRe, FHANDLE hImgIm)
 2次元の複素数画像を逆フーリエ変換する(インプレース処理)
INT FVALGAPI fnFIE_fft2_fwd_DDtoDD_out (FHANDLE hFFT, FHANDLE hImgSrcRe, FHANDLE hImgSrcIm, FHANDLE hImgDstRe, FHANDLE hImgDstIm)
 2次元の複素数画像を順方向フーリエ変換する(アウトプレース処理)
INT FVALGAPI fnFIE_fft2_inv_DDtoDD_out (FHANDLE hFFT, FHANDLE hImgSrcRe, FHANDLE hImgSrcIm, FHANDLE hImgDstRe, FHANDLE hImgDstIm)
 2次元の複素数画像を逆フーリエ変換する(アウトプレース処理)
INT FVALGAPI fnFIE_fft2_fwd_RealtoDD (FHANDLE hFFT, FHANDLE hSrcRe, FHANDLE hDstRe, FHANDLE hDstIm)
 2次元実数画像を順方向フーリエ変換する
INT FVALGAPI fnFIE_fft2_inv_DDtoReal (FHANDLE hFFT, FHANDLE hSrcRe, FHANDLE hSrcIm, FHANDLE hDst, DOUBLE dScaleFactor)
 2次元複素数画像を逆フーリエ変換し、実数画像を出力する
INT FVALGAPI fnFIE_fft_1D_alloc (FHANDLE *phFFT, INT iOrder, enum f_fft_direction iDirection, enum f_fft_normalize_type iNormalization, enum f_fft_data_type iSignalDataType, enum f_fft_data_type iFourierDataType)
 1次元フーリエ変換用にFFTハンドルを初期化する
INT FVALGAPI fnFIE_fft_2D_alloc (FHANDLE *phFFT, INT iWidth, INT iHeight, enum f_fft_direction iDirection, enum f_fft_normalize_type iNormalization, enum f_fft_data_type iImgDataType, enum f_fft_data_type iFourierDataType)
 2次元フーリエ変換用にFFTハンドルを初期化する
INT FVALGAPI fnFIE_fft2_get_mag_and_phase_DD (FHANDLE hImgRe, FHANDLE hImgIm, FHANDLE hMag, FHANDLE hPhase)
 周波数領域複素数画像の強度と角度を計算する
INT FVALGAPI fnFIE_fft2_get_mag_and_phase_C (FHANDLE hImgFourier, FHANDLE hMag, FHANDLE hPhase)
 周波数領域複素数画像の強度と角度を計算する
INT FVALGAPI fnFIE_fft2_mul_DDtoDD (FHANDLE hSrc1Re, FHANDLE hSrc1Im, FHANDLE hSrc2Re, FHANDLE hSrc2Im, FHANDLE hDstRe, FHANDLE hDstIm)
 splitted format の複素数画像間の乗算
INT FVALGAPI fnFIE_fft2_div_DDtoDD (FHANDLE hSrc1Re, FHANDLE hSrc1Im, FHANDLE hSrc2Re, FHANDLE hSrc2Im, FHANDLE hDstRe, FHANDLE hDstIm)
 splitted format の複素数画像間の除算

列挙型

フーリエ変換の正規化方法指定

フーリエ変換の結果は、1次元入力データ長、又は2次元入力画像サイズに応じて正規化することが出来ます。 正規化手法は下記に示すフラグで指定できます。 FIE_FFTでは4種の正規化手法が使用できます。データ長を $N$ で表すと、各手法は次の通りです。

  1. F_FFT_DIV_BY_ONE : 順方向、逆方向フーリエ変換共に、結果を1.0で割って出力します。
  2. F_FFT_DIV_FWD_BY_N : 順方向フーリエ変換の結果は $N$ で割って出力し、逆方向フーリエ変換の結果は1.0で割って出力します。
  3. F_FFT_DIV_INV_BY_N : 順方向フーリエ変換の結果は1.0で割って出力し、逆方向フーリエ変換の結果は $N$ で割って出力します。
  4. F_FFT_DIV_BY_SQRTN : 順方向、逆方向フーリエ変換共に、結果を $ \sqrt N $ で割って出力します。

参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_2D_alloc()
列挙型の値:
F_FFT_DIV_BY_ONE  順方向、逆方向フーリエ変換共に、結果をそのまま出力
F_FFT_DIV_FWD_BY_N  順方向FFT: N で割る 逆FFT: そのまま出力
F_FFT_DIV_INV_BY_N  順方向FFT: そのまま出力 逆FFT: N で割る
F_FFT_DIV_BY_SQRTN  順方向、逆方向フーリエ変換共に、結果を $ \sqrt N $ で割って出力

フーリエ変換の入力と出力データの型

FIE_FFT は複素数と実数の両形式のデータを使用可能です。

実数データには、下記に示す4種類のデータ形式が使用できます。

  1. UCHAR
  2. USHORT
  3. SHORT
  4. DOUBLE

1次元のFIE_FFT関数群を利用するにはFFTハンドルの初期化時に F_1D_FFT_REAL を指定して下さい。 また、2次元のFIE_FFT関数群を利用するには F_2D_FFT_REAL を指定して下さい。 2次元のFIE_FFT関数では、上記のデータ形式はそれぞれ F_IMG_UC8, F_IMG_US16, F_IMG_S16, F_IMG_DOUBLE 型の画像の事を意味します。

FIE_FFT で使用可能な複素数データは、全てDOUBLE型の値の集合です。 複素数値の構成方法が違ういくつかの形式をサポートしており、それらの形式は下記の通りです。

  1. Interleaved Format
    interleaved format は FCOMPLEX 型 と同じデータ構造です。 このデータ形式では、実数部と虚数部は並んでメモリに格納されます。 2次元形式では、FIEでは複素数の画像形式が定義されていません。そのため F_IMG_DOUBLE型 画像を用います。 複素数の1画素を格納するために、DOUBLE型で水平方向に連続して2画素分の領域が使用されます。 最初の1画素には実部が格納され、続く1画素には虚部が格納されます。 当然、この形式の複素数画像では、複素数で $ x $ の幅をもつ画像は F_IMG_DOUBLE で $ 2 \times x $ の幅が必要になります。 interleaved format を使用するには、FFTハンドル初期化時に F_1D_FFT_FCOMPLEX ( 1次元変換 ) 又は F_2D_FFT_FCOMPLEX ( 2次元変換 ) を指定して下さい。
    fie_fft_interleaved.png
  2. Splitted Format
    splitted format は実部と虚部の2つの分かれた DOUBLE型 領域によって構成される形式です。 1次元フーリエ変換では、本形式は実部を格納する配列と虚部を格納する配列の2つのDOUBLE型配列によって構成されます。 2つの配列は異なるメモリ領域に配置され、各配列の値は連続して格納される必要があります。 2次元フーリエ変換では、本形式は2つの F_IMG_DOUBLE型 の画像によって構成されます。 1つの画像は複素数画像のうち実数部を格納し、もう1つの画像は虚数部を格納します。 2つの画像の幅と高さは同じでなければいけません。これらの画像は複数のチャネルを持つことができますが、 その場合、実部と虚部の2つの画像は同じチャネル数でなければいけません。 本形式を使用するには、FFTハンドル初期化時に F_1D_FFT_DOUBLEC ( 1次元変換 ) 又は F_2D_FFT_DOUBLEC ( 2次元変換 ) を指定して下さい。
    fie_fft_splitted.png
  3. Packed Format
    packed format は1次元実数データのフーリエ変換のみに用いられる特別な形式です。 本形式を使用するには、FFTハンドル初期化時に F_1D_FFT_PACK を指定して下さい。 1次元実数データの順方向フーリエ変換の結果は対象な複素数になることはよく知られています。 本形式では、長さ N の1次元実数データをフーリエ変換するとき、変換結果のデータ長も N になります。 複素数値の i 番目の実数部を $ R(i) $ 、 虚数部を $I(i)$ と表せば、結果データは次のように表せます。
    $ R(0) \; \; \; I(0) \; \; \; R(1) \; \; \;I(1) \; \; \; ... \; \; \; R(i) \; \; \; I(i) \; \; \; ... \; R(N-1) \; \; \; I(N-1) $

    このとき

    \begin{eqnarray*} I(0) &=& I( \frac{ N }{ 2 } - 1 ) = 0; \\ R(i) &=& R( N - i ); \qquad i = 0 \ \sim \ \frac{N}{2} \\ I(i) &=& -I( N - i ); \qquad i = 0 \ \sim \ \frac{ N } { 2 } \\ \end{eqnarray*}

    ゆえに、本形式では対象な複素数を表すのに他の形式に比べ半分のメモリ量ですみます。 本形式では下表のようにに複素数データが格納されます。

$Index$ $ 0 $ $ 1 $ $ 2 $ $ 3 $ $ 4 $ $ 5 $ $ ... $ $ 2 i $ $ 2 i + 1$ $ ... $ $ N - 2 $ $ N - 1 $
$ Packed $ $ R(0) $ $ R(\frac {N}{2} ) $ $ R(1) $ $ I(1) $ $ R(2) $ $ I(2) $ $ ... $ $ R(i) $ $ I(i) $ $ ... $ $ R( \frac {N}{2} - 1) $ $ R( \frac {N}{2} - 1) $

2次元形式のinterleaved formatとsplitted formatの相互変換について
fnFIE_packing_ch() により、0チャネル目に実部を、1チャネル目に虚部を格納した2チャネルのF_IMG_DOUBLE型画像から interleaved format形式の1チャネル画像を作成することができます。 2チャネルのF_IMG_DOUBLE型画像は fnFIE_img_root_import_alloc() によりsplitted formatの画像から作成できるため、 splitted formatからinterleaved formatへの変換が可能です。
同様に、 fnFIE_unpacking_ch() を用いてinterleaved formatからsplitted formatへの変換が可能です。
複素数データに複数のチャネルが存在する場合は、 fnFIE_img_child_alloc_single_ch() を用いてチャネルごとに変換してください。
列挙型の値:
F_1D_FFT_FCOMPLEX  FCOMPLEX型の1次元配列 (Interleaved Foramt)
F_1D_FFT_DOUBLEC  Splitted Format の1次元配列
F_1D_FFT_REAL  Packed Format の UCHAR, USHORT, SHORT, 又は DOUBLE 型の1次元配列
F_1D_FFT_PACK  Packed Format の1次元配列
F_2D_FFT_FCOMPLEX  Interleaved Format のDOUBLE型の2次元画像
F_2D_FFT_DOUBLEC  Splitted Format のDOUBLE型の2次元画像
F_2D_FFT_REAL  Packed Format の UCHAR, USHORT, SHORT, 又は DOUBLE 型の2次元画像

フーリエ変換の向き指定

FIE_FFTのFFTハンドルを初期化する際に、フーリエ変換の方向を指定します。

順方向変換を行う際には、FFTハンドルの初期化時に F_FFT_FORWARD を指定して下さい。 逆方向変換を行う際には、FFTハンドルの初期化時に F_FFT_INVERSE を指定して下さい。 順方向、逆方向の両変換を行う際には、FFTハンドルの初期化時に F_FFT_BIDIRECTION を指定して下さい。

参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_2D_alloc()
列挙型の値:
F_FFT_FORWARD  順方向FFT
F_FFT_INVERSE  逆方向FFT
F_FFT_BIDIRECTION  順方向及び逆方向FFT


関数

INT FVALGAPI fnFIE_fft_get_spec ( const FHANDLE  hFFT,
INT *  ipSpecType,
INT *  ipWidth,
INT *  ipHeight,
INT *  ipNormalization 
)

FFTハンドルが保持しているパラメータを取得する

fnFIE_fft_get_spec 関数は、FFTハンドルが保持しているパラメータを取得します。 FFTハンドルは1次元FFT、2次元FFTの両方で使用されます。 そのため ipSpecType パラメータはFFTハンドルが1次元FFT用か2次元FFT用かを出力します。 ipSpecType の値は次のとおりです。

  • 1 の場合、FFTハンドルは1次元FFT用
  • 2 の場合、FFTハンドルは2次元FFT用

他のパラメータの意味については fnFIE_fft_1D_alloc() 又は fnFIE_fft_2D_alloc() を参照して下さい。.

本関数では、取得するパラメータを選択することが出来ます。 取得する必要のないパラメータのポインタにはNULLを指定して下さい。

引数:
[in] hFFT FFTハンドル
[out] ipSpecType FFTハンドルの種類
[out] ipWidth 1次元FFTの場合はデータ長を返します。2次元FFTの場合は画像幅を返します。
[out] ipHeight 1次元FFTの場合は0を返します。2次元FFTの場合は画像高さを返します。
[in] ipNormalization 正規化手法。 f_fft_normalize_type を参照して下さい。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT がNULLポインタ
F_ERR_INVALID_PARAM hFFT の型が F_OBJID_FFTSPEC ではない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_fft_check_spec ( const FHANDLE  hFFT,
INT  iWidth,
INT  iHeight,
INT  iDirection,
INT  iSignalDataType,
INT  iFourierDataType 
)

FFTハンドルの有効性チェック

fnFIE_fft_check_spec 関数は、確保済みのFIE_FFTハンドルがパラメータによって指定されるFFT処理に 適用可能かどうかをチェックします。

hFFT は1次元または2次元どちらのFIE_FFT処理用に確保された物でもかまいません。 FFTハンドルは確保されている回転因子テーブルとバッファのサイズが十分に大きければ いずれのFIE_FFT処理にも使用することが出来ます。 本関数は、パラメータによって指定されるFFT処理がFIE_FFTによって処理可能なものであるかチェックし、 さらにその処理が hFFT によって処理可能かどうかをチェックします。

引数:
[in] hFFT 既存FFTハンドル
[in] iWidth 1次元FFTの場合はデータ長を入力。2次元FFTの場合は画像幅を入力。
[in] iHeight 1次元FFTの場合は0を入力。2次元FFTの場合は画像高さを入力。
[in] iDirection 実行するフーリエ変換の方向。 f_fft_direction を参照して下さい。
[in] iSignalDataType 時間領域データの形式。 f_fft_data_type を参照して下さい。
[in] iFourierDataType 周波数領域データの形式。 f_fft_data_type を参照して下さい。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT がNULLポインタ
F_ERR_INVALID_PARAM パラメータ不正
  • hFFT の型が F_OBJID_FFTSPEC ではない
  • 入力パラメータは有効なFIE_FFTのパラメータではない
F_ERR_FFT_INVALID_SPEC 既存FFTハンドルは指定された条件のFFTに適用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_fft_fwd_CtoC_in ( FHANDLE  hFFT,
FCOMPLEX vpData,
INT  iOrder 
)

interleaved format の複素数データの1次元順方向フーリエ変換を行う(インプレース処理)

fnFIE_fft_fwd_CtoC_in 関数は時間領域の1次元複素数データの順方向フーリエ変換を行います。 変換後の周波数領域データは入力データと同じメモリに格納されます。 時間領域と周波数領域の両データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_FCOMPLEX
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in,out] vpData 時間領域の1次元入力データのポインタ(=周波数領域の出力データ)
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は vpData に NULLポインタが渡された。
F_ERR_INVALID_PARAM パラメータエラー
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_CtoC_in ( FHANDLE  hFFT,
FCOMPLEX vpData,
INT  iOrder 
)

interleaved format の複素数データの1次元逆フーリエ変換を行う(インプレース処理)

fnFIE_fft_fwd_CtoC_in 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 変換後の時間領域データは入力データと同じメモリに格納されます。 時間領域と周波数領域の両データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_FCOMPLEX
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in,out] vpData 周波数領域の1次元入力データのポインタ(=時間領域の出力データ)
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は vpData に NULLポインタが渡された。
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_CtoC_out ( FHANDLE  hFFT,
const FCOMPLEX vpSrc,
FCOMPLEX vpDst,
INT  iOrder 
)

interleaved format の複素数データの1次元順方向フーリエ変換を行う(アウトプレース処理)

fnFIE_fft_fwd_CtoC_out 関数は時間領域の1次元複素数データの順方向フーリエ変換を行います。 変換後の周波数領域データは、入力データとは別のメモリ領域に格納されます。 時間領域と周波数領域の両データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization Any value of f_fft_normalize_type
iSignalDataType F_1D_FFT_FCOMPLEX
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] vpSrc 時間領域の1次元入力データのポインタ
[out] vpDst 周波数領域の1次元出力データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は vpSrc 又は vpDst に NULLポインタが渡された。
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_CtoC_out ( FHANDLE  hFFT,
const FCOMPLEX vpSrc,
FCOMPLEX vpDst,
INT  iOrder 
)

interleaved format の複素数データの1次元逆フーリエ変換を行う(アウトプレース処理)

fnFIE_fft_inv_CtoC_out 関数は周波数領域の1次元データを逆フーリエ変換します。 変換後の時間領域データは入力データとは別のメモリ領域に格納されます。 時間領域と周波数領域の両データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_FCOMPLEX
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] vpSrc 時間領域の1次元入力データのポインタ
[out] vpDst 周波数領域の1次元出力データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は vpSrc 又は vpDst に NULLポインタが渡された。
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_DDtoDD_in ( FHANDLE  hFFT,
DOUBLE *  dpRe,
DOUBLE *  dpIm,
INT  iOrder 
)

splitted format の複素数データの1次元順方向フーリエ変換を行う(インプレース処理)

fnFIE_fft_fwd_DDtoDD_in 関数は時間領域の1次元複素数データの順方向フーリエ変換を行います。 変換後の周波数領域データは入力データと同じメモリに格納されます。 時間領域と周波数領域の両データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_DOUBLEC
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in,out] dpRe 時間領域の1次元入力データの実部のポインタ(=周波数領域の出力データの実部)
[in,out] dpIm 時間領域の1次元入力データの虚部のポインタ(=周波数領域の出力データの虚部)
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は dpRe 又は dpIm に NULLポインタが渡された。
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_DDtoDD_in ( FHANDLE  hFFT,
DOUBLE *  dpRe,
DOUBLE *  dpIm,
INT  iOrder 
)

splitted format の複素数データの1次元逆フーリエ変換を行う(インプレース処理)

fnFIE_fft_inv_DDtoDD_in 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 変換後の時間領域データは入力データと同じメモリに格納されます。 時間領域と周波数領域の両データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_DOUBLEC
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in,out] dpRe 周波数領域の1次元入力データの実部のポインタ(=時間領域の出力データの実部)
[in,out] dpIm 周波数領域の1次元入力データの虚部のポインタ(=時間領域の出力データの虚部)
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は dpRe 又は dpIm に NULLポインタが渡された。
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_DDtoDD_out ( FHANDLE  hFFT,
const DOUBLE *  dpSrcRe,
const DOUBLE *  dpSrcIm,
DOUBLE *  dpDstRe,
DOUBLE *  dpDstIm,
INT  iOrder 
)

splitted format の複素数データの1次元順方向フーリエ変換を行う(アウトプレース処理)

fnFIE_fft_fwd_DDtoDD_in 関数は時間領域の1次元複素数データの順方向フーリエ変換を行います。 変換後の周波数領域データは入力データと別のメモリ領域に格納されます。 時間領域と周波数領域の両データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization Any value of f_fft_normalize_type
iSignalDataType F_1D_FFT_DOUBLEC
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] dpSrcRe 時間領域の1次元入力データの実部のポインタ
[in] dpSrcIm 時間領域の1次元入力データの虚部のポインタ
[out] dpDstRe 周波数領域の1次元出力データの実部のポインタ
[out] dpDstIm 周波数領域の1次元出力データの虚部のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrcRe , dpSrcIm , dpDstRe , dpDstIm のいずれかにNULLポインタが渡された。
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_DDtoDD_out ( FHANDLE  hFFT,
const DOUBLE *  dpSrcRe,
const DOUBLE *  dpSrcIm,
DOUBLE *  dpDstRe,
DOUBLE *  dpDstIm,
INT  iOrder 
)

splitted format の複素数データの1次元逆フーリエ変換を行う(アウトプレース処理)

fnFIE_fft_inv_DDtoDD_out 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 変換後の時間領域データは入力データと別のメモリ領域に格納されます。 時間領域と周波数領域の両データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_DOUBLEC
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] dpSrcRe 周波数領域の1次元入力データの実部のポインタ
[in] dpSrcIm 周波数領域の1次元入力データの虚部のポインタ
[out] dpDstRe 時間領域の1次元出力データの実部のポインタ
[out] dpDstIm 時間領域の1次元出力データの虚部のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrcRe , dpSrcIm , dpDstRe , dpDstIm のいずれかにNULLポインタが渡された。
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_UC8toC ( FHANDLE  hFFT,
const UCHAR *  ucpSrc,
FCOMPLEX vpDst,
INT  iOrder 
)

時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する

fnFIE_fft_fwd_UC8toC 関数は UCHAR 型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] ucpSrc 時間領域の1次元の実数入力データのポインタ
[out] vpDst 周波数領域の1次元の複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , ucpSrc , vpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_CtoUC8 ( FHANDLE  hFFT,
const FCOMPLEX vpSrc,
UCHAR *  ucpDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、UCHAR 型の実数データを出力する

fnFIE_fft_inv_CtoUC8 関数は周波数領域の1次元複素数データを逆フーリエ変換し、 時間領域の実数データを UCHAR 型で出力します。 周波数領域の複素数データの形式はは interleaved format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジを UCHAR 型の値範囲に合わせるために使います。 ucpDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT FFTハンドル
[in] vpSrc 周波数領域の1次元複素数入力データのポインタ
[out] ucpDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をUCHAR型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , vpSrc , ucpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_UC8toDD ( FHANDLE  hFFT,
const UCHAR *  ucpSrc,
DOUBLE *  dpRe,
DOUBLE *  dpIm,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する

fnFIE_fft_fwd_UC8toDD 関数は UCHAR 型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] ucpSrc 時間領域の1次元実数入力データのポインタ
[out] dpRe 周波数領域の1次元複素数出力データの実部のポインタ
[out] dpIm 周波数領域の1次元複素数出力データの虚部のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , ucpSrc , dpRe , dpIm のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_DDtoUC8 ( FHANDLE  hFFT,
const DOUBLE *  dpRe,
const DOUBLE *  dpIm,
UCHAR *  ucpDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

周波数領域の1次元複素数データを逆フーリエ変換し、UCHAR型の時間領域1次元実数データを出力する

fnFIE_fft_inv_DDtoUC8 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 変換後の時間領域データは UCHAR型 の1次元実数データになります。 入力の周波数領域データは splitted format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジを UCHAR 型の値範囲に合わせるために使います。 ucpDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT handle of FFT structure
[in] dpRe 周波数領域の1次元複素数入力データの実部のポインタ
[in] dpIm 周波数領域の1次元複素数入力データの虚部のポインタ
[out] ucpDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をUCHAR型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpRe , dpIm , ucpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_UC8toPack ( FHANDLE  hFFT,
const UCHAR *  ucpSrc,
DOUBLE *  dpDst,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する

fnFIE_fft_fwd_UC8toPack 関数はUCHAR型の時間領域1次元実数データを順方向フーリエ変換します。 変換結果の周波数領域データは packed format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

引数:
[in] hFFT FFTハンドル
[in] ucpSrc 時間領域の1次元実数入力データのポインタ
[out] dpDst packed format の周波数領域の1次元複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , ucpSrc , dpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_PacktoUC8 ( FHANDLE  hFFT,
const DOUBLE *  dpSrc,
UCHAR *  ucpDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

packed format の周波数領域の1次元複素数データを逆フーリエ変換し、UCHAR型の時間領域1次元実数データを出力する。

fnFIE_fft_inv_PacktoUC8 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 処理結果の時間領域データは UCHAR型の1次元実数データになります。 入力の周波数領域1次元複素数データは packed format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジを UCHAR 型の値範囲に合わせるために使います。 ucpDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT FFTハンドル
[in] dpSrc packed format の周波数領域1次元複素数入力データのポインタ
[out] ucpDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をUCHAR型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrc , ucpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_US16toC ( FHANDLE  hFFT,
const USHORT *  uspSrc,
FCOMPLEX vpDst,
INT  iOrder 
)

時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する

fnFIE_fft_fwd_US16toC 関数は USHORT 型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] uspSrc 時間領域の1次元の実数入力データのポインタ
[out] vpDst 周波数領域の1次元の複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , uspSrc , vpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_CtoUS16 ( FHANDLE  hFFT,
const FCOMPLEX vpSrc,
USHORT *  uspDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、USHORT 型の実数データを出力する

fnFIE_fft_inv_CtoUS16 関数は周波数領域の1次元複素数データを逆フーリエ変換し、 時間領域の実数データを UCHAR 型で出力します。 周波数領域の複素数データの形式はは interleaved format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジを USHORT 型の値範囲に合わせるために使います。 uspDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT FFTハンドル
[in] vpSrc 周波数領域の1次元複素数入力データのポインタ
[out] uspDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をUCHAR型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , vpSrc , uspDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_US16toDD ( FHANDLE  hFFT,
const USHORT *  uspSrc,
DOUBLE *  dpRe,
DOUBLE *  dpIm,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する

fnFIE_fft_fwd_UStoDD 関数はUSHORT型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] uspSrc 時間領域の1次元実数入力データのポインタ
[out] dpRe 周波数領域の1次元複素数出力データの実部のポインタ
[out] dpIm 周波数領域の1次元複素数出力データの虚部のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , uspSrc , dpRe , dpIm のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_DDtoUS16 ( FHANDLE  hFFT,
const DOUBLE *  dpRe,
const DOUBLE *  dpIm,
USHORT *  uspDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

周波数領域の1次元複素数データを逆フーリエ変換し、USHORT型の時間領域1次元実数データを出力する

fnFIE_fft_inv_DDtoUS16 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 変換後の時間領域データは USHORT型 の1次元実数データになります。 入力の周波数領域データは splitted format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジを USHORT 型の値範囲に合わせるために使います。 ucpDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT handle of FFT structure
[in] dpRe 周波数領域の1次元複素数入力データの実部のポインタ
[in] dpIm 周波数領域の1次元複素数入力データの虚部のポインタ
[out] uspDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をUSHORT型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpRe , dpIm , uspDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_US16toPack ( FHANDLE  hFFT,
const USHORT *  uspSrc,
DOUBLE *  dpDst,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する

fnFIE_fft_fwd_US16toPack 関数はUSHORT型の時間領域1次元実数データを順方向フーリエ変換します。 変換結果の周波数領域データは packed format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

引数:
[in] hFFT FFTハンドル
[in] uspSrc 時間領域の1次元実数入力データのポインタ
[out] dpDst packed format の周波数領域の1次元複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , uspSrc , dpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_PacktoUS16 ( FHANDLE  hFFT,
const DOUBLE *  dpSrc,
USHORT *  uspDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

packed format の周波数領域の1次元複素数データを逆フーリエ変換し、USHORT型の時間領域1次元実数データを出力する。

fnFIE_fft_inv_PacktoUS16 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 処理結果の時間領域データは USHORT型の1次元実数データになります。 入力の周波数領域1次元複素数データは packed format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジをUSHORT型の値範囲に合わせるために使います。 uspDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT FFTハンドル
[in] dpSrc packed format の周波数領域1次元複素数入力データのポインタ
[out] uspDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をUCHAR型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrc , uspDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_S16toC ( FHANDLE  hFFT,
const SHORT *  spSrc,
FCOMPLEX vpDst,
INT  iOrder 
)

時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する

fnFIE_fft_fwd_S16toC 関数は SHORT 型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] spSrc 時間領域の1次元の実数入力データのポインタ
[out] vpDst 周波数領域の1次元の複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , spSrc , vpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_CtoS16 ( FHANDLE  hFFT,
const FCOMPLEX vpSrc,
SHORT *  spDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、SHORT 型の実数データを出力する

fnFIE_fft_inv_CtoS16 関数は周波数領域の1次元複素数データを逆フーリエ変換し、 時間領域の実数データを SHORT 型で出力します。 周波数領域の複素数データの形式はは interleaved format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization Any value of f_fft_normalize_type
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジを SHORT 型の値範囲に合わせるために使います。 spDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT FFTハンドル
[in] vpSrc 周波数領域の1次元複素数入力データのポインタ
[out] spDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をSHORT型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , vpSrc , spDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_S16toDD ( FHANDLE  hFFT,
const SHORT *  spSrc,
DOUBLE *  dpRe,
DOUBLE *  dpIm,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する

fnFIE_fft_fwd_S16toDD 関数は SHORT 型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] spSrc 時間領域の1次元実数入力データのポインタ
[out] dpRe 周波数領域の1次元複素数出力データの実部のポインタ
[out] dpIm 周波数領域の1次元複素数出力データの虚部のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , spSrc , dpRe , dpIm のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_DDtoS16 ( FHANDLE  hFFT,
const DOUBLE *  dpRe,
const DOUBLE *  dpIm,
SHORT *  spDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

周波数領域の1次元複素数データを逆フーリエ変換し、SHORT型の時間領域1次元実数データを出力する

fnFIE_fft_inv_DDtoS16 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 変換後の時間領域データは SHORT型 の1次元実数データになります。 入力の周波数領域データは splitted format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジをSHORT型の値範囲に合わせるために使います。 spDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT handle of FFT structure
[in] dpRe 周波数領域の1次元複素数入力データの実部のポインタ
[in] dpIm 周波数領域の1次元複素数入力データの虚部のポインタ
[out] spDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をSHORT型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpRe , dpIm , spDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_S16toPack ( FHANDLE  hFFT,
const SHORT *  spSrc,
DOUBLE *  dpDst,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する

fnFIE_fft_fwd_S16toPack 関数はSHORT型の時間領域1次元実数データを順方向フーリエ変換します。 変換結果の周波数領域データは packed format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

引数:
[in] hFFT FFTハンドル
[in] spSrc 時間領域の1次元実数入力データのポインタ
[out] dpDst packed format の周波数領域の1次元複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , spSrc , dpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_PacktoS16 ( FHANDLE  hFFT,
const DOUBLE *  dpSrc,
SHORT *  spDst,
DOUBLE  dScaleFactor,
INT  iOrder 
)

packed format の周波数領域の1次元複素数データを逆フーリエ変換し、UCHAR型の時間領域1次元実数データを出力する。

fnFIE_fft_inv_PacktoS16 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 処理結果の時間領域データは SHORT型の1次元実数データになります。 入力の周波数領域1次元複素数データは packed format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization Any value of f_fft_normalize_type
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

スケールファクター( dScaleFactor )は変換結果のダイナミックレンジを SHORT 型の値範囲に合わせるために使います。 spDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT FFTハンドル
[in] dpSrc packed format の周波数領域1次元複素数入力データのポインタ
[out] spDst 時間領域の1次元実数出力データのポインタ
[in] dScaleFactor 変換結果をUCHAR型の値範囲内に納めるために掛ける値
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrc , spDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
  • dScaleFactor が 0.0
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_D64toC ( FHANDLE  hFFT,
const DOUBLE *  dpSrc,
FCOMPLEX vpDst,
INT  iOrder 
)

時間領域の1次元実数データの順方向フーリエ変換を行い、interleaved format の複素数データを出力する

fnFIE_fft_fwd_D64toC 関数は DOUBLE 型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] dpSrc 時間領域の1次元の実数入力データのポインタ
[out] vpDst 周波数領域の1次元の複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrc , vpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_CtoD64 ( FHANDLE  hFFT,
const FCOMPLEX vpSrc,
DOUBLE *  dpDst,
INT  iOrder 
)

interleaved format の周波数領域1次元複素数データを逆フーリエ変換し、DOUBLE型の実数データを出力する

fnFIE_fft_inv_CtoD64 関数は周波数領域の1次元複素数データを逆フーリエ変換し、 時間領域の実数データを DOUBLE 型で出力します。 周波数領域の複素数データの形式はは interleaved format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] vpSrc 周波数領域の1次元複素数入力データのポインタ
[out] dpDst 時間領域の1次元実数出力データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , vpSrc , dpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_D64toDD ( FHANDLE  hFFT,
const DOUBLE *  dpSrc,
DOUBLE *  dpRe,
DOUBLE *  dpIm,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、splitted format の複素数データを出力する

fnFIE_fft_fwd_D64toDD 関数は DOUBLE 型の時間領域1次元データを順方向フーリエ変換します。 変換後の周波数領域データは splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

Parameters Proper Values
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization Any value of f_fft_normalize_type
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] dpSrc 時間領域の1次元実数入力データのポインタ
[out] dpRe 周波数領域の1次元複素数出力データの実部のポインタ
[out] dpIm 周波数領域の1次元複素数出力データの虚部のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrc , dpRe , dpIm のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_DDtoD64 ( FHANDLE  hFFT,
const DOUBLE *  dpRe,
const DOUBLE *  dpIm,
DOUBLE *  dpDst,
INT  iOrder 
)

周波数領域の1次元複素数データを逆フーリエ変換し、DOUBLE型の時間領域1次元実数データを出力する

fnFIE_fft_inv_DDtoD64 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 変換後の時間領域データは DOUBLE型 の1次元実数データになります。 入力の周波数領域データは splitted format ( f_fft_data_type ) になります。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_DOUBLEC

引数:
[in] hFFT handle of FFT structure
[in] dpRe 周波数領域の1次元複素数入力データの実部のポインタ
[in] dpIm 周波数領域の1次元複素数入力データの虚部のポインタ
[out] dpDst 時間領域の1次元実数出力データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpRe , dpIm , dpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_D64toPack_out ( FHANDLE  hFFT,
const DOUBLE *  dpSrc,
DOUBLE *  dpDst,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する。(アウトプレース処理)

fnFIE_fft_fwd_D64toPack_out 関数はDOUBLE型の時間領域1次元実数データを順方向フーリエ変換します。 変換結果の周波数領域データは packed format ( f_fft_data_type ) にて格納されます。 出力データは入力データとは異なるメモリ領域に格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

引数:
[in] hFFT FFTハンドル
[in] dpSrc 時間領域の1次元実数入力データのポインタ
[out] dpDst packed format の周波数領域の1次元複素数データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrc , dpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_PacktoD64_out ( FHANDLE  hFFT,
const DOUBLE *  dpSrc,
DOUBLE *  dpDst,
INT  iOrder 
)

packed format の周波数領域の1次元複素数データを逆フーリエ変換し、DOUBLE型の時間領域1次元実数データを出力する。

fnFIE_fft_inv_PacktoD64_out 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 処理結果の時間領域データは DOUBLE型の1次元実数データになります。 入力の周波数領域1次元複素数データは packed format ( f_fft_data_type ) にて格納されます。 出力データは入力データとは異なるメモリ領域に格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ Proper Values
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

引数:
[in] hFFT FFTハンドル
[in] dpSrc packed format の周波数領域1次元複素数入力データのポインタ
[out] dpDst 時間領域の1次元実数出力データのポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , dpSrc , dpDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_fwd_D64toPack_in ( FHANDLE  hFFT,
DOUBLE *  dpVec,
INT  iOrder 
)

時間領域の1次元実数データを順方向フーリエ変換し、packed format の複素数データを出力する。(インプレース処理)

fnFIE_fft_fwd_D64toPack_in 関数はDOUBLE型の時間領域1次元実数データを順方向フーリエ変換します。 変換結果の周波数領域データは packed format ( f_fft_data_type ) にて格納されます。 出力データは入力データと同じメモリ領域に格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization Any value of f_fft_normalize_type
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

引数:
[in] hFFT FFTハンドル
[in] dpVec 時間領域の1次元実数入力データ(=packed format の周波数領域の1次元複素数出力データ)のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は vpVec にNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_inv_PacktoD64_in ( FHANDLE  hFFT,
DOUBLE *  dpVec,
INT  iOrder 
)

packed format の周波数領域の1次元複素数データを逆フーリエ変換し、DOUBLE型の時間領域1次元実数データを出力する。

fnFIE_fft_inv_PacktoD64_in 関数は周波数領域の1次元複素数データを逆フーリエ変換します。 処理結果の時間領域データは DOUBLE型の1次元実数データになります。 入力の周波数領域1次元複素数データは packed format ( f_fft_data_type ) にて格納されます。 出力データは入力データとおなじメモリ領域に格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力データの長さは $ 2^{iOrder} $ と等しくなければいけません。 入力データの長さはハンドル初期化時に指定した最大データ長以下でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_1D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization Any value of f_fft_normalize_type
iSignalDataType F_1D_FFT_REAL
iFourierDataType F_1D_FFT_PACK

引数:
[in] hFFT FFTハンドル
[in] dpVec packed format の周波数領域1次元複素数入力データ(=時間領域の1次元実数出力データ)のポインタ
[in] iOrder データ長の次数。入出力データ長は $ N=2^{iOrder} $ になります。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は vpVec にNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • iOrder > 31 または iOrder <= 0
  • 入力データ長 ($ = 2^{iOrder} $ ) が hFFT ハンドル 初期化時に指定された最大データ長より長い
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_1D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_fwd_CtoC_in ( FHANDLE  hFFT,
FHANDLE  hImg 
)

2次元の複素数画像を順方向フーリエ変換する(インプレース処理)

fnFIE_fft2_fwd_CtoC_in 関数は空間領域の2次元複素数画像を順方向フーリエ変換します。 変換結果の周波数領域データは入力データと同じメモリ領域に格納されます。 空間領域の入力データ及び周波数空間の出力データはどちらも interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。また、入出力画像の幅は実画像幅の2倍になっている必要があります。 (複素数データの実部と虚部を保存するために2倍の領域が必要なため)

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_FCOMPLEX
iFourierDataType F_2D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in,out] hImg 空間領域の2次元複素数画像のハンドル(=周波数領域の出力画像) ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は hImg にNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImg が不正なハンドル
  • hImg の型が F_IMG_DOUBLE でない
  • hImg の幅が偶数でない
  • hImg の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_inv_CtoC_in ( FHANDLE  hFFT,
FHANDLE  hImg 
)

2次元の複素数画像を逆フーリエ変換する(インプレース処理)

fnFIE_fft2_inv_CtoC_in 関数は周波数領域の2次元複素数画像を逆フーリエ変換します。 変換結果の空間領域データは入力データと同じメモリ領域に格納されます。 周波数領域の入力データ及び空間領域の出力データはどちらも interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。また、入出力画像の幅は画像本来の2倍になっている必要があります。 (複素数データの実部と虚部を保存するために2倍の領域が必要なため)

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_FCOMPLEX
iFourierDataType F_2D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in,out] hImg 周波数領域の2次元複素数入力画像のハンドル(=空間領域の出力画像) ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT 又は hImg にNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImg が不正なハンドル
  • hImg の型が F_IMG_DOUBLE でない
  • hImg の幅が偶数でない
  • hImg の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_fwd_CtoC_out ( FHANDLE  hFFT,
FHANDLE  hImgSrc,
FHANDLE  hImgDst 
)

2次元の複素数画像を順方向フーリエ変換する(アウトプレース処理)

fnFIE_fft2_fwd_CtoC_out 関数は空間領域の2次元複素数画像を順方向フーリエ変換します。 変換結果の周波数領域データは入力データとは別のメモリ領域に格納されます。 空間領域の入力データ及び周波数領域の出力データはどちらも interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入力画像と出力画像の幅、高さ、チャネル数、及び画像型は同じでなければいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。また、入出力画像の幅は画像本来の幅の2倍になっている必要があります。 (複素数データの実部と虚部を保存するために2倍の領域が必要なため)

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_FCOMPLEX
iFourierDataType F_2D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] hImgSrc 空間領域の複素数入力画像のハンドル ( type: double )
[out] hImgDst 周波数領域の複素数出力画像のハンドル ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hImgSrc , hImgDst のいずれかNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImgSrc 又は hImgDst が不正なハンドル
  • hImgSrc 又は hImgDst の型が F_IMG_DOUBLE でない
  • hImgSrc 又は hImgDst の幅が偶数でない
  • hImgSrc 又は hImgDst の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_inv_CtoC_out ( FHANDLE  hFFT,
FHANDLE  hImgSrc,
FHANDLE  hImgDst 
)

2次元の複素数画像を逆フーリエ変換する(アウトプレース処理)

fnFIE_fft2_inv_CtoC_out 関数は周波数領域の2次元複素数画像を逆フーリエ変換します。 変換結果の空間領域データは入力データとは別のメモリ領域に格納されます。 周波数領域の入力データ及び空間領域の出力データはどちらも interleaved format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入力画像と出力画像の幅、高さ、チャネル数、及び画像型は同じでなければいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。また、入出力画像の幅は画像本来の幅の2倍になっている必要があります。 (複素数データの実部と虚部を保存するために2倍の領域が必要なため)

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメーター 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_FCOMPLEX
iFourierDataType F_2D_FFT_FCOMPLEX

引数:
[in] hFFT FFTハンドル
[in] hImgSrc 周波数領域の複素数入力画像のハンドル ( type: double )
[out] hImgDst 空間領域の複素数出力画像のハンドル ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hImgSrc , hImgDst のいずれかNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImgSrc 又は hImgDst が不正なハンドル
  • hImgSrc 又は hImgDst の型が F_IMG_DOUBLE でない
  • hImgSrc 又は hImgDst の幅が偶数でない
  • hImgSrc 又は hImgDst の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_fwd_DDtoDD_in ( FHANDLE  hFFT,
FHANDLE  hImgRe,
FHANDLE  hImgIm 
)

2次元の複素数画像を順方向フーリエ変換する(インプレース処理)

fnFIE_fft2_fwd_DDtoDD_in 関数は空間領域の2次元複素数画像を順方向フーリエ変換します。 変換結果の周波数領域データは入力データと同じメモリ領域に格納されます。 空間領域の入力データ及び周波数領域の出力データはどちらも splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。また、入出力画像のチャネル数は同じでなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメーター 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_DOUBLEC
iFourierDataType F_2D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in,out] hImgRe 空間領域2次元複素数入力データの実部画像のハンドル(=周波数領域2次元複素数出力データの実部画像) ( type: double )
[in,out] hImgIm 空間領域2次元複素数入力データの虚部画像のハンドル(=周波数領域2次元複素数出力データの虚部画像) ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hImgRe ,又は hImgIm にNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImgRe 又は hImgIm が不正なハンドル
  • hImgRe 又は hImgIm の型が F_IMG_DOUBLE でない
  • hImgRehImgIm の 幅、高さ、チャネル数 が異なっている
  • hImgRe 又は hImgIm の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_inv_DDtoDD_in ( FHANDLE  hFFT,
FHANDLE  hImgRe,
FHANDLE  hImgIm 
)

2次元の複素数画像を逆フーリエ変換する(インプレース処理)

fnFIE_fft2_inv_DDtoDD_in 関数は周波数領域の2次元複素数画像を順方向フーリエ変換します。 変換結果の空間領域データは入力データと同じメモリ領域に格納されます。 周波数領域の入力データ及び空間領域の出力データはどちらも splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。 また、入出力画像のチャネル数は同じでなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメーター 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_DOUBLEC
iFourierDataType F_2D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in,out] hImgRe 周波数領域2次元複素数入力データの実部画像のハンドル(=空間領域2次元複素数出力データの実部画像) ( type: double )
[in,out] hImgIm 周波数領域2次元複素数入力データの虚部画像のハンドル(=空間領域2次元複素数出力データの虚部画像) ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hImgRe ,又は hImgIm にNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImgRe 又は hImgIm が不正なハンドル
  • hImgRe 又は hImgIm の型が F_IMG_DOUBLE でない
  • hImgRehImgIm の 幅、高さ、チャネル数 が異なっている
  • hImgRe 又は hImgIm の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 指定された hFFT ハンドルはこの処理に使用できない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_fwd_DDtoDD_out ( FHANDLE  hFFT,
FHANDLE  hImgSrcRe,
FHANDLE  hImgSrcIm,
FHANDLE  hImgDstRe,
FHANDLE  hImgDstIm 
)

2次元の複素数画像を順方向フーリエ変換する(アウトプレース処理)

fnFIE_fft2_fwd_DDtoDD_out 関数は空間領域の2次元複素数画像を順方向フーリエ変換します。 変換結果の周波数領域データは入力データと別のメモリ領域に格納されます。 空間領域の入力データ及び周波数領域の出力データはどちらも splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。また、入出力画像のチャネル数は同じでなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_DOUBLEC
iFourierDataType F_2D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] hImgSrcRe 空間領域2次元複素数入力データの実部画像のハンドル ( type: double )
[in] hImgSrcIm 空間領域2次元複素数入力データの虚部画像のハンドル ( type: double )
[in] hImgDstRe 周波数領域2次元複素数出力データの実部画像のハンドル ( type: double )
[in] hImgDstIm 周波数領域2次元複素数出力データの虚部画像のハンドル ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm のいずれかが不正なハンドル
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm のいずれか型が F_IMG_DOUBLE でない
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm の 幅、高さ、チャネル数 が異なっている
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 
  • hFFT ハンドルは入力画像のFFTに適用できない。
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_inv_DDtoDD_out ( FHANDLE  hFFT,
FHANDLE  hImgSrcRe,
FHANDLE  hImgSrcIm,
FHANDLE  hImgDstRe,
FHANDLE  hImgDstIm 
)

2次元の複素数画像を逆フーリエ変換する(アウトプレース処理)

fnFIE_fft2_inv_DDtoDD_out 関数は周波数領域の2次元複素数画像を逆フーリエ変換します。 変換結果の空間データは入力データと別のメモリ領域に格納されます。 空間領域の入力データ及び周波数領域の出力データはどちらも splitted format ( f_fft_data_type ) にて格納されます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像の型は F_IMG_DOUBLE でなければいけません。また、入出力画像のチャネル数は同じでなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_DOUBLEC
iFourierDataType F_2D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] hImgSrcRe 周波数領域2次元複素数入力データの実部画像のハンドル ( type: double )
[in] hImgSrcIm 周波数領域2次元複素数入力データの虚部画像のハンドル ( type: double )
[in] hImgDstRe 空間領域2次元複素数出力データの実部画像のハンドル ( type: double )
[in] hImgDstIm 空間領域2次元複素数出力データの虚部画像のハンドル ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm のいずれかが不正なハンドル
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm のいずれか型が F_IMG_DOUBLE でない
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm の 幅、高さ、チャネル数 が異なっている
  • hImgSrcRe , hImgSrcIm , hImgDstRe , hImgDstIm の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 
  • hFFT ハンドルは入力画像のFFTに適用できない。
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft2_fwd_RealtoDD ( FHANDLE  hFFT,
FHANDLE  hSrcRe,
FHANDLE  hDstRe,
FHANDLE  hDstIm 
)

2次元実数画像を順方向フーリエ変換する

fnFIE_fft2_fwd_RealtoDD 関数は空間領域の2次元実数画像を順方向フーリエ変換します。 変換結果の周波数領域データは2次元複素数画像になり、splitted format ( f_fft_data_type ) にて格納されます。 入力画像の型が F_IMG_DOUBLE の場合、hSrcRehDstRe に同じハンドルを指定すれば、 出力複素数画像の実部を同じメモリ領域に格納する事ができます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像のチャネル数はすべて同じでなければいけません。 出力複素数画像の型は F_IMG_DOUBLE でなければいけません。 入力実数画像は F_IMG_UC8, F_IMG_US16, F_IMG_S16, F_IMG_DOUBLE のいずれかの型でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_FORWARD
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_REAL
iFourierDataType F_2D_FFT_DOUBLEC

引数:
[in] hFFT FFTハンドル
[in] hSrcRe 空間領域2次元実数画像のハンドル ( type: uc8, us16, s16, double )
[out] hDstRe 周波数領域2次元複素数出力データの実部画像のハンドル ( type: double )
[out] hDstIm 周波数領域2次元複素数出力データの虚部画像のハンドル ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hSrcRe , hDstRe , hDstIm のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM hFFT が F_OBJID_FFTSPEC 型ではない
F_ERR_INVALID_IMAGE 
  • hSrcRe , hDstRe , hDstIm のいずれかが不正なハンドル
  • hDstRe , hDstIm のいずれか型が F_IMG_DOUBLE でない
  • hSrcRe の型が F_IMG_UC8, F_IMG_US16, F_IMG_S16, F_IMG_DOUBLE のいずれでもない。
  • hSrcRe , hDstRe , hDstIm の 幅、高さ、チャネル数 が異なっている
  • hSrcRe , hDstRe , hDstIm の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 
  • hFFT ハンドルは入力画像のFFTに適用できない。
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()
サンプルコード
周波数画像可視化サンプル
FFTを使用した実画像の周波数フィルタリングのサンプル

INT FVALGAPI fnFIE_fft2_inv_DDtoReal ( FHANDLE  hFFT,
FHANDLE  hSrcRe,
FHANDLE  hSrcIm,
FHANDLE  hDst,
DOUBLE  dScaleFactor 
)

2次元複素数画像を逆フーリエ変換し、実数画像を出力する

fnFIE_fft2_inv_DDtoReal 関数は splitted format ( f_fft_data_type ) にて格納された 周波数領域の2次複素数元画像を順方向フーリエ変換します。 変換結果の空間領域データは2次元実数画像になります。 出力画像の型が F_IMG_DOUBLE の場合、hDsthSrcRe に同じハンドルを指定すれば、 入力複素数画像の実部と同じメモリ領域に格納する事ができます。

hFFT に指定するハンドルは正しく初期化されていなければなりません。 入力複素数画像の幅と高さは、FFTハンドルの初期化時に指定した幅と高さの最大値を超えてはいけません。 入出力画像のチャネル数はすべて同じでなければいけません。 入力複素数画像の型は F_IMG_DOUBLE でなければいけません。 出力実数画像は F_IMG_UC8, F_IMG_US16, F_IMG_S16, F_IMG_DOUBLE のいずれかの型でなければいけません。

本関数に与える hFFT ハンドルは下表のパラメータにて fnFIE_fft_2D_alloc() を実行して 得て下さい。正しいパラメータでハンドルが初期化されていないとエラーが発生する可能性があります。

他の条件を使って初期化されたFFTハンドルが使える可能性があります。そのハンドルを使用する前に fnFIE_fft_check_spec() を使って確認してください。

パラメータ 正しい値
iWidth & iHeight $ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization f_fft_normalize_type のいずれか
iSignalDataType F_2D_FFT_REAL
iFourierDataType F_2D_FFT_DOUBLEC

dScaleFactor は変換結果のダイナミックレンジを 出力画像の型の値範囲に内に納めるために使います。 ucpDst に出力される値は、フーリエ変換の結果に正規化係数( fnFIE_fft_1D_alloc()iNormalization で指定した値 ) と dScaleFactor を掛けた値になります。 そのため、ユーザーは処理結果のダイナミックレンジが小さくならないよう、適切な値を指定する必要があります。 但し dScaleFactor に 0.0 を指定すると F_ERR_INVALID_PARAM エラーになります。

引数:
[in] hFFT FFTハンドル
[in] hSrcRe 周波数領域2次元複素数入力データの実部画像のハンドル ( type: double )
[in] hSrcIm 周波数領域2次元複素数入力データの虚部画像のハンドル ( type: double )
[out] hDst 空間領域2次元実数出力画像のハンドル ( type: uc8, us16, s16, double )
[in] dScaleFactor 出力画像の値範囲内に出力値を制限するためのスケール値
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT hFFT , hSrcRe , hSrcIm , hDst のいずれかにNULLポインタが渡された
F_ERR_INVALID_PARAM 
  • hFFT が F_OBJID_FFTSPEC 型ではない
  • dScaleFactor が 0.0
F_ERR_INVALID_IMAGE 
  • hSrcRe , hSrcIm , hDst のいずれかが不正なハンドル
  • hSrcRe , hSrcIm のいずれか型が F_IMG_DOUBLE でない
  • hDst の型が F_IMG_UC8, F_IMG_US16, F_IMG_S16, F_IMG_DOUBLE のいずれでもない。
  • hSrcRe , hSrcIm , hDst の 幅、高さ、チャネル数 が異なっている
  • hSrcRe , hSrcIm , hDst の幅又は高さが1である
F_ERR_FFT_INVALID_SPEC 
  • hFFT ハンドルは入力画像のFFTに適用できない。
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_fft_2D_alloc(), fnFIE_fft_check_spec()

INT FVALGAPI fnFIE_fft_1D_alloc ( FHANDLE *  phFFT,
INT  iOrder,
enum f_fft_direction  iDirection,
enum f_fft_normalize_type  iNormalization,
enum f_fft_data_type  iSignalDataType,
enum f_fft_data_type  iFourierDataType 
)

1次元フーリエ変換用にFFTハンドルを初期化する

fnFIE_fft_1D_alloc 関数は、1次元フーリエ変換用にFFTハンドルを初期化します。 ハンドルの入力値はNULLでなければいけません。

生成されたFFTハンドルが不要になったら fnFIE_free_object() にて解放してください。

各パラメータに指定可能な値は下表の通りです。

パラメータ 有効な値
iOrder $ 1 \leq iOrder \leq 31 $
iDirection F_FFT_FORWARD
F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization F_FFT_DIV_BY_ONE
F_FFT_DIV_FWD_BY_N
F_FFT_DIV_INV_BY_N
F_FFT_DIV_BY_SQRTN
iSignalDataType F_1D_FFT_FCOMPLEX
F_1D_FFT_DOUBLEC
F_1D_FFT_REAL
iFourierDataType F_1D_FFT_FCOMPLEX
F_1D_FFT_DOUBLEC
F_1D_FFT_PACK

FFTハンドルを初期化する際には、後に利用する1次元フーリエ変換関数に合わせて 適切なパラメータを選択するよう注意して下さい。

引数:
[in,out] phFFT FFTハンドルのポインタ。ポインタの入力値はNULLでなければいけません。
[in] iOrder データ長の次数。データの入出力長 N$ N \leq 2^{iOrder} $ を満たさなければいけません
[in] iDirection 実行するフーリエ変換の方向。 f_fft_direction を参照して下さい。
[in] iNormalization 正規化手法。 f_fft_normalize_type を参照して下さい。
[in] iSignalDataType 時間領域データの形式。 f_fft_data_type を参照して下さい。
[in] iFourierDataType 周波数領域データの形式。 f_fft_data_type を参照して下さい。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 
  • phFFT のポインタ値がNULLでない
  • $ iOrder \leq 0 $ 又は $ iOrder > 31 $
  • パラメータの組合せが不適切
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
f_fft_normalize_type, f_fft_data_type , f_fft_direction

INT FVALGAPI fnFIE_fft_2D_alloc ( FHANDLE *  phFFT,
INT  iWidth,
INT  iHeight,
enum f_fft_direction  iDirection,
enum f_fft_normalize_type  iNormalization,
enum f_fft_data_type  iImgDataType,
enum f_fft_data_type  iFourierDataType 
)

2次元フーリエ変換用にFFTハンドルを初期化する

fnFIE_fft_2D_alloc 関数は、2次元フーリエ変換用にFFTハンドルを初期化します。 ハンドルの入力値はNULLでなければいけません。

生成されたFFTハンドルが不要になったら fnFIE_free_object() にて解放してください。

各パラメータに指定可能な値は下表の通りです。

パラメータ 有効な値
iWidth & iHeight <t$ [2^1\; \; 2^{31}] $ の範囲内
iDirection F_FFT_FORWARD
F_FFT_INVERSE
F_FFT_BIDIRECTION
iNormalization F_FFT_DIV_BY_ONE
F_FFT_DIV_FWD_BY_N
F_FFT_DIV_INV_BY_N
F_FFT_DIV_BY_SQRTN
iSignalDataType F_2D_FFT_FCOMPLEX
F_2D_FFT_DOUBLEC
F_2D_FFT_REAL
iFourierDataType F_2D_FFT_FCOMPLEX
F_2D_FFT_DOUBLEC

FFTハンドルを初期化する際には、後に利用する2次元フーリエ変換関数に合わせて 適切なパラメータを選択するよう注意して下さい。

引数:
[in,out] phFFT FFTハンドルのポインタ。ポインタの入力値はNULLでなければいけません。
[in] iWidth フーリエ変換を行う空間領域又は周波数領域画像の幅
[in] iHeight フーリエ変換を行う空間領域又は周波数領域画像の高さ
[in] iDirection 実行するフーリエ変換の方向。 f_fft_direction を参照して下さい。
[in] iNormalization 正規化手法。 f_fft_normalize_type を参照して下さい。
[in] iImgDataType 時間領域データの形式。 f_fft_data_type を参照して下さい。
[in] iFourierDataType 周波数領域データの形式。 f_fft_data_type を参照して下さい。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 
  • phFFT のポインタ値がNULLでない
  • $ iWidth \leq 1 $ 又は $ iHeight \leq 1 $
  • パラメータの組合せが不適切
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
f_fft_normalize_type, f_fft_data_type , f_fft_direction
サンプルコード
周波数画像可視化サンプル
FFTを使用した実画像の周波数フィルタリングのサンプル

INT FVALGAPI fnFIE_fft2_get_mag_and_phase_DD ( FHANDLE  hImgRe,
FHANDLE  hImgIm,
FHANDLE  hMag,
FHANDLE  hPhase 
)

周波数領域複素数画像の強度と角度を計算する

fnFIE_fft2_get_mag_and_phase_DD 関数は周波数領域複素数画像の角度と強度を計算します。 入力複素数画像は splitted format (see f_fft_data_type ) で格納されていなければいけません。

強度、又は角度のどちらかだけを取得したい場合は 強度 hMag 又は角度 hPhase のうち不要な方にNULLを指定して下さい。 両方にNULLが指定された場合は F_ERR_INVALID_IMAGE エラーになります。

角度の範囲は $ [-\pi, \pi] $ になります。

引数:
[in] hImgRe 周波数領域の入力複素数画像の実部画像のハンドル ( type: double )
[in] hImgIm 周波数領域の入力複素数画像の虚部画像のハンドル ( type: double )
[out] hMag 強度画像のハンドル ( type: double )
[out] hPhase 角度画像のハンドル ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 
  • hImgRe 又は hImgIm が NULL
  • hMaghPhase が両方ともNULL
  • hImgRe , hImgIm , hMag , hPhase のいずれかの画像型が F_IMG_DOUBLE でない
  • hImgRe , hImgIm , hMag , hPhase の幅、高さ、チャネル数が同じでない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
サンプルコード
周波数画像可視化サンプル

INT FVALGAPI fnFIE_fft2_get_mag_and_phase_C ( FHANDLE  hImgFourier,
FHANDLE  hMag,
FHANDLE  hPhase 
)

周波数領域複素数画像の強度と角度を計算する

fnFIE_fft2_get_mag_and_phase_C 関数は周波数領域複素数画像の角度と強度を計算します。 入力複素数画像は interleaved format ( see f_fft_data_type ) で格納されていなければいけません。 実部と虚部を格納するため、入力複素数画像の幅は実際の複素数データ幅の2倍になっていなければいけません。

強度、又は角度のどちらかだけを取得したい場合は 強度 hMag 又は角度 hPhase のうち不要な方にNULLを指定して下さい。 両方にNULLが指定された場合は F_ERR_INVALID_IMAGE エラーになります。

角度の範囲は $ [-\pi, \pi] $ になります。

引数:
[in] hImgFourier 周波数領域の入力複素数画像のハンドル ( type: double )
[out] hMag 強度画像のハンドル ( type: double )
[out] hPhase 角度画像のハンドル ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 
  • hImgFourier がNULL
  • hImgFourier の画像幅が偶数でない
  • hMaghPhase の両方がNULL
  • hImgFourier , hMag , hPhase の何れかの型が F_IMG_DOUBLE でない
  • hImgFourier , hMag , hPhase の幅、高さ、チャネル数が同じでない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_fft2_mul_DDtoDD ( FHANDLE  hSrc1Re,
FHANDLE  hSrc1Im,
FHANDLE  hSrc2Re,
FHANDLE  hSrc2Im,
FHANDLE  hDstRe,
FHANDLE  hDstIm 
)

splitted format の複素数画像間の乗算

splitted format (see f_fft_data_type ) で格納された2つの複素数画像の積を各画素ごとに計算します。 処理結果の複素数画像もsplitted formatにて格納されます。

入出力のすべての画像の型は F_IMG_DOUBLE でなければなりません。 すべての画像の幅と高さ、チャネル数は同一でなければなりません。

覚え書き:
splitted formatで格納された複素数画像間の加算や減算、定数乗算を行いたい場合は、 fnFIE_img_add() などの 算術演算 関数を実部画像と虚部画像のそれぞれに適用してください。
引数:
[in] hSrc1Re 1つ目の入力複素数画像の実部画像 ( type: double )
[in] hSrc1Im 1つ目の入力複素数画像の虚部画像 ( type: double )
[in] hSrc2Re 2つ目の入力複素数画像の実部画像 ( type: double )
[in] hSrc2Im 2つ目の入力複素数画像の虚部画像 ( type: double )
[out] hDstRe 出力複素数画像の実部画像 ( type: double )
[out] hDstIm 出力複素数画像の虚部画像 ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
当関数はin-place処理可能です。

INT FVALGAPI fnFIE_fft2_div_DDtoDD ( FHANDLE  hSrc1Re,
FHANDLE  hSrc1Im,
FHANDLE  hSrc2Re,
FHANDLE  hSrc2Im,
FHANDLE  hDstRe,
FHANDLE  hDstIm 
)

splitted format の複素数画像間の除算

splitted format (see f_fft_data_type ) で格納された2つの複素数画像の商を各画素ごとに計算します。 処理結果の複素数画像もsplitted formatにて格納されます。

分母( hSrc2Re, hSrc2Im )の0チェックは行わないため、 分母が0になる場合は0除算例外が発生する場合があります(処理系依存)。

入出力のすべての画像の型は F_IMG_DOUBLE でなければなりません。 すべての画像の幅と高さ、チャネル数は同一でなければなりません。

引数:
[in] hSrc1Re 分子となる入力複素数画像の実部画像 ( type: double )
[in] hSrc1Im 分子となる入力複素数画像の虚部画像 ( type: double )
[in] hSrc2Re 分母となる入力複素数画像の実部画像 ( type: double )
[in] hSrc2Im 分母となる入力複素数画像の虚部画像 ( type: double )
[out] hDstRe 出力複素数画像の実部画像 ( type: double )
[out] hDstIm 出力複素数画像の虚部画像 ( type: double )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
当関数はin-place処理可能です。


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:47 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2