예제 #1
0
        /// <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];
        }
예제 #2
0
        /**************************** 初期化/削除 ************************************/
        /*****************
         * このクラスのコンストラクタ
         *
         * 初期化時に使用します。
         * ***************/
        /// <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];
        }