spLib
|
データ構造 | |
class | spFFTRec |
FFTの実行を制御するクラスです. [詳解] | |
型定義 | |
typedef struct _spFFTRec * | spFFTRec |
FFTの実行 (<sp/fft.h>) | |
int | spfftf (float *xRe, float *xIm, long fftl, int inv) |
int | spfft (double *xRe, double *xIm, long fftl, int inv) |
int | sprfftf (float *data, long fftl, int inv) |
int | sprfft (double *data, long fftl, int inv) |
FFT用データシフト (<sp/fft.h>) | |
void | datashifts (short *data, long length, long shift) |
void | datashiftl (long *data, long length, long shift) |
void | datashiftf (float *data, long length, long shift) |
void | datashift (double *data, long length, long shift) |
void | ridatashifts (short *real, short *imag, long length, long shift) |
void | ridatashiftl (long *real, long *imag, long length, long shift) |
void | ridatashiftf (float *real, float *imag, long length, long shift) |
void | ridatashift (double *real, double *imag, long length, long shift) |
void | circshifts (short *data, long length, long shift) |
void | circshiftl (long *data, long length, long shift) |
void | circshiftf (float *data, long length, long shift) |
void | circshift (double *data, long length, long shift) |
void | ricircshifts (short *real, short *imag, long length, long shift) |
void | ricircshiftl (long *real, long *imag, long length, long shift) |
void | ricircshiftf (float *real, float *imag, long length, long shift) |
void | ricircshift (double *real, double *imag, long length, long shift) |
void | fftturnf (float *xRe, float *xIm, long fftl) |
void | fftturn (double *xRe, double *xIm, long fftl) |
void | fftshiftf (float *xRe, float *xIm, long fftl) |
void | fftshift (double *xRe, double *xIm, long fftl) |
FFTプラグインによるFFTの実行 (<sp/fft.h>) | |
int | spGetNumFFTPlugin (void) |
char * | xspSearchFFTPluginFile (int *index) |
spBool | spSetDefaultFFTPlugin (const char *name) |
spBool | spIsFFTPlugin (spPlugin *plugin) |
spPlugin * | spLoadFFTPlugin (const char *name) |
spBool | spFreeFFTPlugin (spPlugin *plugin) |
spFFTSpeed | spGetFFTSpeed (spFFTPrecision precision) |
spFFTRec | spInitBatchedFFTByPlugin (spPlugin *plugin, long order, long batch, spFFTPrecision precision) |
spFFTRec | spInitBatchedFFT (long order, long batch, spFFTPrecision precision) |
spFFTRec | spInitFFTByPlugin (spPlugin *plugin, long order, spFFTPrecision precision) |
spFFTRec | spInitFFT (long order, spFFTPrecision precision) |
spBool | spFreeFFT (spFFTRec fftrec) |
spBool | spResetFFTOrder (spFFTRec fftrec, long order) |
long | spGetFFTOrder (spFFTRec fftrec) |
long | spGetFFTLength (spFFTRec fftrec) |
long | spGetFFTBatch (spFFTRec fftrec) |
spBool | spExecFFTF (spFFTRec fftrec, float *real, float *imag, int inv) |
spBool | spExecFFT (spFFTRec fftrec, double *real, double *imag, int inv) |
spBool | spExecRealFFTF (spFFTRec fftrec, float *data, int inv) |
spBool | spExecRealFFT (spFFTRec fftrec, double *data, int inv) |
spBool | spExecFFTPowerF (spFFTRec fftrec, float *data, float exponent) |
spBool | spExecFFTPower (spFFTRec fftrec, double *data, double exponent) |
#define SP_FFT_HIGHEST_PRECISION SP_HIGHEST_PRECISION |
最高精度です.
#define SP_FFT_HIGH_DOUBLE_PRECISION SP_HIGH_DOUBLE_PRECISION |
通常のdouble型より高精度です.
#define SP_FFT_DOUBLE_PRECISION SP_DOUBLE_PRECISION |
double型の精度です.
#define SP_FFT_LOW_DOUBLE_PRECISION SP_LOW_DOUBLE_PRECISION |
通常のdouble型より低精度です.
#define SP_FFT_HIGH_FLOAT_PRECISION SP_HIGH_FLOAT_PRECISION |
通常のfloat型より高精度です.
#define SP_FFT_FLOAT_PRECISION SP_FLOAT_PRECISION |
float型の精度です.
#define SP_FFT_LOW_FLOAT_PRECISION SP_LOW_FLOAT_PRECISION |
通常のfloat型より低精度です.
#define SP_FFT_32BIT_PRECISION SP_32BIT_PRECISION |
32ビット整数の精度です.
#define SP_FFT_24BIT_PRECISION SP_24BIT_PRECISION |
24ビット整数の精度です.
#define SP_FFT_16BIT_PRECISION SP_16BIT_PRECISION |
16ビット整数の精度です.
#define SP_FFT_IGNORE_PRECISION SP_IGNORE_PRECISION |
精度が無視されることを示します.
#define SP_FFT_UNKNOWN_PRECISION SP_UNKNOWN_PRECISION |
不明な精度です.
#define SP_FFT_DEFAULT_PRECISION SP_FFT_FLOAT_PRECISION |
デフォルトの精度です.
#define SP_FFT_SPEED_EXTREMELY_FAST SP_COMPUTE_SPEED_EXTREMELY_FAST |
極めて高速です.
#define SP_FFT_SPEED_VERY_FAST SP_COMPUTE_SPEED_VERY_FAST |
かなり高速です.
#define SP_FFT_SPEED_FASTER SP_COMPUTE_SPEED_FASTER |
より高速です.
#define SP_FFT_SPEED_FAST SP_COMPUTE_SPEED_FAST |
高速です.
#define SP_FFT_SPEED_NORMAL SP_COMPUTE_SPEED_NORMAL |
通常の速度です.
#define SP_FFT_SPEED_SLOW SP_COMPUTE_SPEED_SLOW |
低速です.
#define SP_FFT_SPEED_SLOWER SP_COMPUTE_SPEED_SLOWER |
より低速です.
#define SP_FFT_SPEED_VERY_SLOW SP_COMPUTE_SPEED_VERY_SLOW |
かなり低速です.
#define SP_FFT_SPEED_EXTREMELY_SLOW SP_COMPUTE_SPEED_EXTREMELY_SLOW |
極めて低速です.
#define SP_FFT_SPEED_UNKNOWN SP_COMPUTE_SPEED_UNKNOWN |
不明な速度です.
typedef struct _spFFTRec* spFFTRec |
spFFTRec の定義です.
|
extern |
入力データに対してFFTを実行します.
[in] | xRe | 実部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,fftl 以上である必要があります. |
[in] | xIm | 虚部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,fftl 以上である必要があります. |
[in] | fftl | FFTポイント数を指定します. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_SUCCESS | 成功 |
SP_FAILURE | 失敗 |
|
extern |
入力データに対してFFTを実行します.
[in] | xRe | 実部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,fftl 以上である必要があります. |
[in] | xIm | 虚部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,fftl 以上である必要があります. |
[in] | fftl | FFTポイント数を指定します. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_SUCCESS | 成功 |
SP_FAILURE | 失敗 |
|
extern |
入力実数データに対してFFTを実行します.
[in] | data | フーリエ変換を行うデータを指定します. 領域の大きさは,fftl 以上である必要があります. 周波数領域では, data には,次のように複素スペクトルの値が入っています. data[0]=Re(X[0]) , data[1]=Re(X[fftl/2]) , data[2*n]=Re(X[n]) , data[2*n+1]=Im(X[n]) . ここで,X[n] は複素スペクトルを表します. すなわち,0を除く偶数番目の要素にはスペクトルの実部の値が,1を除く奇数番目の要素にはスペクトルの虚部の値が入っており,0番目の要素には周波数0におけるスペクトルの値(実部)が,1番目の要素にはナイキスト周波数におけるスペクトルの値(実部)が入っています. |
[in] | fftl | FFTポイント数を指定します. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_SUCCESS | 成功 |
SP_FAILURE | 失敗 |
|
extern |
入力実数データに対してFFTを実行します.
[in] | data | フーリエ変換を行うデータを指定します. 領域の大きさは,fftl 以上である必要があります. 周波数領域では, data には,次のように複素スペクトルの値が入っています. data[0]=Re(X[0]) , data[1]=Re(X[fftl/2]) , data[2*n]=Re(X[n]) , data[2*n+1]=Im(X[n]) . ここで,X[n] は複素スペクトルを表します. すなわち,0を除く偶数番目の要素にはスペクトルの実部の値が,1を除く奇数番目の要素にはスペクトルの虚部の値が入っており,0番目の要素には周波数0におけるスペクトルの値(実部)が,1番目の要素にはナイキスト周波数におけるスペクトルの値(実部)が入っています. |
[in] | fftl | FFTポイント数を指定します. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_SUCCESS | 成功 |
SP_FAILURE | 失敗 |
|
extern |
入力データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データのシフトを実行します.シフトしてバッファの範囲外にはみ出た部分は捨てられます.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力データの環状シフトを実行します.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力データの環状シフトを実行します.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力データの環状シフトを実行します.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力データの環状シフトを実行します.
[in] | data | 実行の対象となるデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データの環状シフトを実行します.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データの環状シフトを実行します.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データの環状シフトを実行します.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
入力複素数データの環状シフトを実行します.
[in] | real | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | imag | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | length | バッファの長さを指定します. |
[in] | shift | データシフト長です.正の値を指定すると右側に,負の値を指定すると左側にシフトします. |
|
extern |
バッファにおけるインデックスfftl/2
を基準にして,スペクトルの実部に対しては線対称になるようにし,スペクトルの虚部については,点対称になるようにします.入力スペクトルの後半部分に含まれているデータは使用されません.
[in] | xRe | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | xIm | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | fftl | FFTポイントを指定します.バッファはこの長さ以上である必要があります. |
|
extern |
バッファにおけるインデックスfftl/2
を基準にして,スペクトルの実部に対しては線対称になるようにし,スペクトルの虚部については,点対称になるようにします.入力スペクトルの後半部分に含まれているデータは使用されません.
[in] | xRe | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | xIm | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | fftl | FFTポイントを指定します.バッファはこの長さ以上である必要があります. |
|
extern |
バッファにおけるインデックスfftl/2
がインデックス0
になるように環状シフトします.
[in] | xRe | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | xIm | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | fftl | FFTポイントを指定します.バッファはこの長さ以上である必要があります. |
|
extern |
バッファにおけるインデックスfftl/2
がインデックス0
になるように環状シフトします.
[in] | xRe | 実行の対象となる実部のデータが含まれるバッファを指定します.実行後に値が上書きされます. |
[in] | xIm | 実行の対象となる虚部のデータが含まれるバッファを指定します.実行後に値が上書きされます.使用しない場合は,NULLとすることができます. |
[in] | fftl | FFTポイントを指定します.バッファはこの長さ以上である必要があります. |
|
extern |
使用可能なFFTプラグインの数を取得します.
|
extern |
登録されているFFTプラグイン名を調べます.
[in] | index | 調査を開始するプラグインインデックスを値に持つ変数のアドレスを指定します.最初の呼び出しの際はインデックスを0にして呼び出します.関数終了後は,インデックスの値が新たに取得したFFTプラグインのインデックスの値に更新されます.なお,このインデックスは連続した値でない可能性があります. |
|
extern |
指定したFFTプラグインをデフォルトのFFTエンジンに設定します.
[in] | name | デフォルトのFFTエンジンに設定したいFFTプラグイン名をヌル終端文字列で指定します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
プラグインがFFTプラグインであるかをチェックします.
[in] | plugin | 対象のプラグインを指定します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
|
extern |
FFTプラグインをロードして使用できるように初期化します.
[in] | name | FFTプラグイン名をヌル終端文字列で指定します. |
spLoadFFTPlugin() で得られたFFTプラグインをアンロードして解放します.
[in] | plugin | spLoadFFTPlugin() の呼び出しで得られた plugin を指定します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
|
extern |
デフォルトのFFTエンジンの速度を調べます.FFTプラグインがデフォルトになっていたとしても,プラグインのものは調べません.
[in] | precision | どの精度の場合の速度を調べるかを spFFTPrecision 型で指定します. |
|
extern |
FFTプラグインを用い,FFTを行う際に使われるリソースを戻り値の spFFTRec 内に確保して初期化します. FFT関連の関数である spExecFFT() , spExecRealFFT() などが,この関数の戻り値を用いて使用できるようになります. spInitFFTByPlugin() との違いは,batch
の数だけFFTが一括処理される点です. spExecFFT() , spExecRealFFT() などに渡すバッファは batch
の数だけFFTポイントのベクトルが並んでいるものだと考える必要があります.
[in] | plugin | FFTを実行するエンジンとなるFFTプラグインを指定します. |
[in] | order | FFTポイントが2の何乗であるかを指定します.例えば,256であれば,8を指定します. |
[in] | batch | FFTの一括処理数を指定します. |
[in] | precision | FFTの内部計算における精度を指定します. SP_FFT_DEFAULT_PRECISION , SP_FFT_DOUBLE_PRECISION , SP_FFT_FLOAT_PRECISION などが指定できます. 特に精度を重視しない場合は, SP_FFT_DEFAULT_PRECISION を指定して下さい. 精度を高くする場合,環境によっては速度が遅くなる場合があります. |
|
extern |
デフォルトのFFTエンジンを用い,FFTを行う際に使われるリソースを戻り値の spFFTRec 内に確保して初期化します. FFT関連の関数である spExecFFT() , spExecRealFFT() などが,この関数の戻り値を用いて使用できるようになります. spInitFFT() との違いは,batch
の数だけFFTが一括処理される点です. spExecFFT() , spExecRealFFT() などに渡すバッファは batch
の数だけFFTポイントのベクトルが並んでいるものだと考える必要があります.
[in] | order | FFTポイントが2の何乗であるかを指定します.例えば,256であれば,8を指定します. |
[in] | batch | FFTの一括処理数を指定します. |
[in] | precision | FFTの内部計算における精度を指定します. SP_FFT_DEFAULT_PRECISION , SP_FFT_DOUBLE_PRECISION , SP_FFT_FLOAT_PRECISION などが指定できます. 特に精度を重視しない場合は, SP_FFT_DEFAULT_PRECISION を指定して下さい. 精度を高くする場合,環境によっては速度が遅くなる場合があります. |
FFTプラグインを用い,FFTを行う際に使われるリソースを戻り値の spFFTRec 内に確保して初期化します. FFT関連の関数である spExecFFT() , spExecRealFFT() などが,この関数の戻り値を用いて使用できるようになります.
[in] | plugin | FFTを実行するエンジンとなるFFTプラグインを指定します. |
[in] | order | FFTポイントが2の何乗であるかを指定します.例えば,256であれば,8を指定します. |
[in] | precision | FFTの内部計算における精度を指定します. SP_FFT_DEFAULT_PRECISION , SP_FFT_DOUBLE_PRECISION , SP_FFT_FLOAT_PRECISION などが指定できます. 特に精度を重視しない場合は, SP_FFT_DEFAULT_PRECISION を指定して下さい. 精度を高くする場合,環境によっては速度が遅くなる場合があります. |
|
extern |
デフォルトのFFTエンジンを用い,FFTを行う際に使われるリソースを戻り値の spFFTRec 内に確保して初期化します. FFT関連の関数である spExecFFT() , spExecRealFFT() などが,この関数の戻り値を用いて使用できるようになります.
[in] | order | FFTポイントが2の何乗であるかを指定します.例えば,256であれば,8を指定します. |
[in] | precision | FFTの内部計算における精度を指定します. SP_FFT_DEFAULT_PRECISION , SP_FFT_DOUBLE_PRECISION , SP_FFT_FLOAT_PRECISION などが指定できます. 特に精度を重視しない場合は, SP_FFT_DEFAULT_PRECISION を指定して下さい. 精度を高くする場合,環境によっては速度が遅くなる場合があります. |
FFTを行う際に使われる spFFTRec のリソースを解放します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
FFTを実行する際のFFTポイントを変更します. FFT実行の際( spExecFFT() や spExecRealFFT() )のデータの領域の大きさは,2のorder
乗である必要があります.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
[in] | order | FFTポイントの次数(2の何乗であるか)を指定します.例えば,256であれば,8を指定します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
|
extern |
現在のFFTポイントの次数(2の何乗であるか)を取得します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
|
extern |
|
extern |
FFTプラグインを用いてFFTを実行します. float型のデータの場合は spExecFFTF() を,double型のデータの場合は spExecFFT() を呼び出します. どちらの関数を呼び出しても,内部処理においては spInitFFT() の呼び出し時に指定したprecisionに対応する精度で計算します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
[in] | real | 実部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,2のorder ( spInitFFT() の呼び出し時に指定したもの)乗である必要があります. |
[in] | imag | 虚部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,2のorder ( spInitFFT() の呼び出し時に指定したもの)乗である必要があります. 入力が複素数ではなく,実数の場合は,imag の全てのデータを0.0にしたものを指定します. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
FFTプラグインを用いてFFTを実行します. float型のデータの場合は spExecFFTF() を,double型のデータの場合は spExecFFT() を呼び出します. どちらの関数を呼び出しても,内部処理においては spInitFFT() の呼び出し時に指定したprecisionに対応する精度で計算します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
[in] | real | 実部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,2のorder ( spInitFFT() の呼び出し時に指定したもの)乗である必要があります. |
[in] | imag | 虚部のデータを指定します.配列,あるいはメモリ確保されたポインタを指定します. 領域の大きさは,2のorder ( spInitFFT() の呼び出し時に指定したもの)乗である必要があります. 入力が複素数ではなく,実数の場合は,imag の全てのデータを0.0にしたものを指定します. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
実数データに対するFFTを実行します. float型のデータの場合は spExecRealFFTF() を,double型のデータの場合は spExecRealFFT() を呼び出します. どちらの関数を呼び出しても,内部処理においては spInitFFT() の呼び出し時に指定したprecisionに対応する精度で計算します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
[in] | data | フーリエ変換を行うデータを指定します. 領域の大きさは,2のorder ( spInitFFT() 等の呼び出し時に指定したもの)乗である必要があります. 周波数領域では, data には,次のように複素スペクトルの値が入っています. data[0]=Re(X[0]) , data[1]=Re(X[fftl/2]) , data[2*n]=Re(X[n]) , data[2*n+1]=Im(X[n]) . ここで,X[n] は複素スペクトルを,fftl はFFTポイントを表します. すなわち,0を除く偶数番目の要素にはスペクトルの実部の値が,1を除く奇数番目の要素にはスペクトルの虚部の値が入っており,0番目の要素には周波数0におけるスペクトルの値(実部)が,1番目の要素にはナイキスト周波数におけるスペクトルの値(実部)が入っています. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
実数データに対するFFTを実行します. float型のデータの場合は spExecRealFFTF() を,double型のデータの場合は spExecRealFFT() を呼び出します. どちらの関数を呼び出しても,内部処理においては spInitFFT() の呼び出し時に指定したprecisionに対応する精度で計算します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
[in] | data | フーリエ変換を行うデータを指定します. 領域の大きさは,2のorder ( spInitFFT() 等の呼び出し時に指定したもの)乗である必要があります. 周波数領域では, data には,次のように複素スペクトルの値が入っています. data[0]=Re(X[0]) , data[1]=Re(X[fftl/2]) , data[2*n]=Re(X[n]) , data[2*n+1]=Im(X[n]) . ここで,X[n] は複素スペクトルを,fftl はFFTポイントを表します. すなわち,0を除く偶数番目の要素にはスペクトルの実部の値が,1を除く奇数番目の要素にはスペクトルの虚部の値が入っており,0番目の要素には周波数0におけるスペクトルの値(実部)が,1番目の要素にはナイキスト周波数におけるスペクトルの値(実部)が入っています. |
[in] | inv | 非0の場合には逆FFTを実行し,0の場合にはFFTを実行します. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
FFTによってパワースペクトルを算出します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
[in] | data | フーリエ変換を行うデータを指定します. 領域の大きさは,2のorder ( spInitFFT() 等の呼び出し時に指定したもの)乗である必要があります. 実行後は,計算結果で上書きされます. |
[in] | exponent | パワースペクトル算出後にパワースペクトルを何乗するかを指定します. 1であればパワースペクトルそのもの,0.5であれば振幅スペクトルが得られます. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |
FFTによってパワースペクトルを算出します.
[in] | fftrec | spInitFFT() 等の呼び出しで得られた fftrec を指定します. |
[in] | data | フーリエ変換を行うデータを指定します. 領域の大きさは,2のorder ( spInitFFT() 等の呼び出し時に指定したもの)乗である必要があります. 実行後は,計算結果で上書きされます. |
[in] | exponent | パワースペクトル算出後にパワースペクトルを何乗するかを指定します. 1であればパワースペクトルそのもの,0.5であれば振幅スペクトルが得られます. |
SP_TRUE | 成功 |
SP_FALSE | 失敗 |