fourierクラスの利用方法


ヘッダファイル名:fft-header.hh

複素数型は,creal8として定義している。

定数として複素数を使いたいときは,creal8(実数部,虚数部)とする。

実数部を取り出したいときは,real(creal8型の変数または定数)とし,虚数部を取り出したいときは,imag(creal8型の変数または定数)とする。

 

コンストラクタ:

fourier()    複素数型配列は確保しない。配列内のデータを「空間領域」とする。

fourier(ピクセル数) ピクセル数分の大きさの1次元複素数型配列を確保する。配列内のデータを「空間領域」とする。

fourier(ライン数,ピクセル数) ライン数×ピクセル数分んの大きさの2次元複素数型配列を確保する。配列内のデータを「空間領域」とする。

 

デストラクタ:

もし複素数配列が確保されていれば,すべて解放する。

 

複素数型配列の大きさの取得:

get_nr_lines()    ライン数を返す。 (fourierクラス内のnr_linesは変更できない。)

get_nr_pixels()    ピクセル数を返す。 (fourierクラス内のnr_pixelsは変更できない。)

 

複素数型配列のデータ領域の指定:

set_complex_type(データ領域)   データ領域は,空間領域の場合COMPLEX_SPACEとし,周波数領域の場合COMPLEX_FREQとする。

 

複素数型配列へのアクセス:

pがNULLのとき,複素数型配列が確保されていない。fourierクラスは複素数データを持っていない。

p[ライン番号][ピクセル番号]    2次元複素数型配列の場合,ライン番号は0~ライン数-1,ピクセル番号は0~ピクセル番号-1

z[ピクセル番号]           1次元複素数型配列の場合,ピクセル番号は0~ピクセル番号-1 (zはpと共用している。)

 

複素数型配列の確保:

既に確保されている複素数型配列は解放され,新たに複素数型配列が確保される。

cmake(ライン数,ピクセル数)    ライン数×ピクセル数分の2次元複素数型配列を確保する。

 

フーリエ変換:

複素数型配列の次元数に応じて離散フーリエ変換する。

Forward_DFT()            複素数型配列を離散フーリエ変換する。

Backward_DFT()           複素数型配列を離散フーリエ逆変換する。 (フーリエ変換し,フーリエ逆変換して元のデータに戻す場合,データ数で割り算してスケーリングする必要がある。)

 

高速フーリエ変換: ※ライン数,ピクセル数とも,2のべき乗数でなければならない。

複素数型配列の次元数に応じて高速フーリエ変換する。

Forward_FFT()            複素数型配列を高速フーリエ変換する。

Backward_FFT()           複素数型配列を高速フーリエ逆変換する。 (高速フーリエ変換し,高速フーリエ逆変換して元のデータに戻す場合,データ数で割り算してスケーリングする必要がある。)

 

Complex Text形式ファイルの読み込み:

Complex Text形式ファイルの読み込みに失敗した場合,複素数型配列は確保されない。既に複素数型配列が確保されていた場合には,複素数型配列が解放され,複素数型配列はなくなる。

cpxload()    プログラムの実行中にComplex Text形式のファイル名を指定し,ファイル内に指定されたライン数×ピクセル数分の複素数型配列を確保し,複素数データを読み込む。

cpxload(Complex Text形式ファイルの文字列)    文字列として与えられたComplex Text形式のファイルから,ファイル内に指定されたライン数×ピクセル数分の複素数型配列を確保し,複素数データを読み込む。

 

Complex Text形式ファイルの書き出し:

Complex Text形式ファイルの書き出しに失敗しても,複素数型配列はそのまま保持される。

cpxsave()    プログラムの実行中にComplex Text形式のファイル名を指定し,複素数型配列をテキストデータとして書き出す。

cpxsave(Complex Text形式ファイルの文字列)    文字列で指定されたComplex Text形式のファイルに,複素数型配列をテキストデータとして書き出す。

 

グレイスケール画像の作成:

MakeImage(   

  データ内容,              実数部:OUTPUT_REAL,虚数部:OUTPUT_IMAGE,振幅:OUTPUT_AMP,パワー:OUTPUT_POWER,パワーのデシベル値:OUTPUT_DB,位相:OUTPUT_PHASE;

  シャフリングの有無,          シャフリングしない:FREQ_SPACE_SHUFFLING_OFF,シャフリングする:FREQ_SPACE_SHUFFLING_ON

  スケーリングの方法,          スケーリングしない:OUTPUT_SCALE_OFF,画素値の範囲を求めてスケーリングする:OUTPUT_SCALE_ON

  グレイスケール画像へのポインタ)   複素数型配列から指定されたデータを求め,指定されたスケーリング方法とシャフリングに従って,グレイスケール画像を作成する。


更新日:2008年1月22日