1次元フーリエ変換用にFFTハンドルを初期化する
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_fft_1D_alloc( ref FHANDLE phFFT, int iOrder, f_fft_direction iDirection, f_fft_normalize_type iNormalization, f_fft_data_type iSignalDataType, f_fft_data_type iFourierDataType ) |
Visual Basic |
---|
Public Shared Function fnFIE_fft_1D_alloc ( ByRef phFFT As FHANDLE, iOrder As Integer, iDirection As f_fft_direction, iNormalization As f_fft_normalize_type, iSignalDataType As f_fft_data_type, iFourierDataType As f_fft_data_type ) As Integer |
Parameters
- phFFT
- Type: fvalgcli..::..FHANDLE%
FFTハンドルのポインタ。ポインタの入力値は IntPtr.Zero でなければいけません。
- iOrder
- Type: System..::..Int32
データ長の次数。データの入出力長 N は N≦2^iOrderを満たさなければいけません
- iDirection
- Type: fvalgcli..::..f_fft_direction
実行するフーリエ変換の方向。 f_fft_direction を参照して下さい。
- iNormalization
- Type: fvalgcli..::..f_fft_normalize_type
正規化手法。 f_fft_normalize_type を参照して下さい。
- iSignalDataType
- Type: fvalgcli..::..f_fft_data_type
時間領域データの形式。 f_fft_data_type を参照して下さい。
- iFourierDataType
- Type: fvalgcli..::..f_fft_data_type
周波数領域データの形式。 f_fft_data_type を参照して下さい。
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_PARAM |
|
F_ERR_NOMEMORY | メモリ不足エラー |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { /// <summary> /// 1次元フーリエ変換用にFFTハンドル初期化. /// </summary> [FvPluginExecute] public void fnFIE_fft_1D_alloc() { int status = (int)f_err.F_ERR_NONE; int iOrder = 5; FHANDLE hFFT = FHANDLE.Zero; f_fft_direction iDirection = f_fft_direction.F_FFT_FORWARD; f_fft_normalize_type iNormalization = f_fft_normalize_type.F_FFT_DIV_BY_SQRTN; f_fft_data_type iSignalDataType = f_fft_data_type.F_1D_FFT_FCOMPLEX; f_fft_data_type iFourierDataType = f_fft_data_type.F_1D_FFT_FCOMPLEX; try { // 処理実行. status = api.fnFIE_fft_1D_alloc(ref hFFT, iOrder, iDirection, iNormalization, iSignalDataType, iFourierDataType); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 確認. { int igetSpecType = 0; int igetWidth = 0; int igetHeight = 0; int igetNormalization = 0; // FFTハンドルが保持しているパラメータの取得. status = api.fnFIE_fft_get_spec(hFFT, ref igetSpecType, ref igetWidth, ref igetHeight, ref igetNormalization); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); Assert.IsTrue(1 == igetSpecType, "FFTハンドルの種類:期待値と一致しません.({0})", igetSpecType); Assert.IsTrue(Math.Pow( 2, iOrder) == igetWidth, "データ長:期待値と一致しません.({0})", igetWidth); Assert.IsTrue(0 == igetHeight, "1次元FFTなので0を返すはずです.({0})",igetHeight); Assert.IsTrue((int)iNormalization == igetNormalization, "正規化手法:期待値と一致しません.({0})", igetNormalization); } } finally { // オブジェクトの開放. hFFT.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ''' <summary> ''' 1次元フーリエ変換用にFFTハンドル初期化. ''' </summary> <FvPluginExecute> _ Public Sub fnFIE_fft_1D_alloc() Dim status As Integer = CInt(f_err.F_ERR_NONE) Dim iOrder As Integer = 5 Dim hFFT As FHANDLE = FHANDLE.Zero Dim iDirection As f_fft_direction = f_fft_direction.F_FFT_FORWARD Dim iNormalization As f_fft_normalize_type = f_fft_normalize_type.F_FFT_DIV_BY_SQRTN Dim iSignalDataType As f_fft_data_type = f_fft_data_type.F_1D_FFT_FCOMPLEX Dim iFourierDataType As f_fft_data_type = f_fft_data_type.F_1D_FFT_FCOMPLEX Try ' 処理実行. status = api.fnFIE_fft_1D_alloc(hFFT, iOrder, iDirection, iNormalization, iSignalDataType, iFourierDataType) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 確認. If True Then Dim igetSpecType As Integer = 0 Dim igetWidth As Integer = 0 Dim igetHeight As Integer = 0 Dim igetNormalization As Integer = 0 ' FFTハンドルが保持しているパラメータの取得. status = api.fnFIE_fft_get_spec(hFFT, igetSpecType, igetWidth, igetHeight, igetNormalization) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) Assert.IsTrue(1 = igetSpecType, "FFTハンドルの種類:期待値と一致しません.({0})", igetSpecType) Assert.IsTrue(Math.Pow(2, iOrder) = igetWidth, "データ長:期待値と一致しません.({0})", igetWidth) Assert.IsTrue(0 = igetHeight, "1次元FFTなので0を返すはずです.({0})", igetHeight) Assert.IsTrue(CInt(iNormalization) = igetNormalization, "正規化手法:期待値と一致しません.({0})", igetNormalization) End If Finally ' オブジェクトの開放. hFFT.Dispose() End Try End Sub End Class |