/// <summary> /// int型の引数を用いてFFTデータ幅を決定するコンストラクタ /// <para>デフォルトでは4096ポイントFFT/IFFT,窓関数の種別としてハミングウィンドウがセットされます。</para> /// <para>指定ポイント数が2^Nではない場合、FFT_point<2^N かつ32以上となる最小の2^Nを採用しますので注意してください。</para> /// </summary> /// <param name="FFT_point">FFT/IFFTポイント数</param> /// <param name="window_kind">窓関数の種類</param> public DFT(int FFT_point = 4096, Window.WindowKind window_kind = Window.WindowKind.Hanning) { int FFT_point2 = 1; while (FFT_point2 < FFT_point || FFT_point2 < (int)FFTpoint.size32) FFT_point2 <<= 1; // サイズ調整 this.__FFTpoint = FFT_point2; this.__WindowKind = window_kind; this.calced_datas = new FFTdata[this.__FFTpoint]; // サイズに合わせて、インスタンスを生成 this.set_datas = new FFTdata[this.__FFTpoint]; }
/**************************** 初期化/削除 ************************************/ /***************** * このクラスのコンストラクタ * * 初期化時に使用します。 * ***************/ /// <summary> /// FFTpointを利用したコンストラクタ /// <para>デフォルトでは4096ポイントFFT/IFFT,窓関数の種別としてハミングウィンドウがセットされます。</para> /// </summary> /// <param name="FFT_point">FFT/IFFTポイント数</param> /// <param name="window_kind">窓関数の種類</param> public DFT(FFTpoint FFT_point = FFTpoint.size4096, Window.WindowKind window_kind = Window.WindowKind.Hanning) { this.__FFTpoint = (int)FFT_point; this.__WindowKind = window_kind; this.calced_datas = new FFTdata[this.__FFTpoint]; // サイズに合わせて、インスタンスを生成 this.set_datas = new FFTdata[this.__FFTpoint]; }