splitted format の複素数データの1次元逆フーリエ変換を行う(インプレース処理)
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_fft_inv_DDtoDD_in( FHANDLE hFFT, DOUBLE_PTR dpRe, DOUBLE_PTR dpIm, int iOrder ) |
Visual Basic |
---|
Public Shared Function fnFIE_fft_inv_DDtoDD_in ( hFFT As FHANDLE, dpRe As DOUBLE_PTR, dpIm As DOUBLE_PTR, iOrder As Integer ) As Integer |
Parameters
- hFFT
- Type: fvalgcli..::..FHANDLE
FFTハンドル
- dpRe
- Type: fvalgcli..::..DOUBLE_PTR
周波数領域の1次元入力データの実部のポインタ(=時間領域の出力データの実部)
- dpIm
- Type: fvalgcli..::..DOUBLE_PTR
周波数領域の1次元入力データの虚部のポインタ(=時間領域の出力データの虚部)
- iOrder
- Type: System..::..Int32
データ長の次数。入出力データ長はN=2^iOrderになります。
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_OBJECT | hFFT 又は dpRe 又は dpIm に IntPtr.Zero が渡された。 |
F_ERR_INVALID_PARAM |
|
F_ERR_FFT_INVALID_SPEC | 指定された hFFT ハンドルはこの処理に使用できない |
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> /// splitted format の複素数データの1次元逆フーリエ変換(インプレース処理). /// </summary> [FvPluginExecute] public void fnFIE_fft_inv_DDtoDD_in() { int status = (int)f_err.F_ERR_NONE; int iOrder = 5; FHANDLE hFFT = FHANDLE.Zero; DOUBLE_PTR dpRe = IntPtr.Zero; DOUBLE_PTR dpIm = IntPtr.Zero; try { status = api.fnFIE_fft_1D_alloc(ref hFFT, iOrder, f_fft_direction.F_FFT_INVERSE, f_fft_normalize_type.F_FFT_DIV_BY_SQRTN, f_fft_data_type.F_1D_FFT_DOUBLEC, f_fft_data_type.F_1D_FFT_DOUBLEC); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); int length = 1 << iOrder; dpRe = DOUBLE_PTR.alloc(length); for (int i = 0; i < length; i++) dpRe[i] = (double)i * 10 + 0.1; dpIm = DOUBLE_PTR.alloc(length); for (int i = 0; i < length; i++) dpIm[i] = (double)i * 10 + 0.1; status = api.fnFIE_fft_inv_DDtoDD_in(hFFT, dpRe, dpIm, iOrder); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); for (int i = 0; i < length; i++) { Console.WriteLine("[{0}] dpRe={1}, dpIm={2}", i, dpRe[i], dpIm[i]); } } finally { hFFT.Dispose(); dpRe.Dispose(); dpIm.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ''' <summary> ''' splitted format の複素数データの1次元逆フーリエ変換(インプレース処理). ''' </summary> <FvPluginExecute> _ Public Sub fnFIE_fft_inv_DDtoDD_in() Dim status As Integer = CInt(f_err.F_ERR_NONE) Dim iOrder As Integer = 5 Dim hFFT As FHANDLE = FHANDLE.Zero Dim dpRe As DOUBLE_PTR = IntPtr.Zero Dim dpIm As DOUBLE_PTR = IntPtr.Zero Try status = api.fnFIE_fft_1D_alloc(hFFT, iOrder, f_fft_direction.F_FFT_INVERSE, f_fft_normalize_type.F_FFT_DIV_BY_SQRTN, f_fft_data_type.F_1D_FFT_DOUBLEC, f_fft_data_type.F_1D_FFT_DOUBLEC) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) Dim length As Integer = 1 << iOrder dpRe = DOUBLE_PTR.alloc(length) For i As Integer = 0 To length - 1 dpRe(i) = CDbl(i) * 10 + 0.1 Next dpIm = DOUBLE_PTR.alloc(length) For i As Integer = 0 To length - 1 dpIm(i) = CDbl(i) * 10 + 0.1 Next status = api.fnFIE_fft_inv_DDtoDD_in(hFFT, dpRe, dpIm, iOrder) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) For i As Integer = 0 To length - 1 Console.WriteLine("[{0}] dpRe={1}, dpIm={2}", i, dpRe(i), dpIm(i)) Next Finally hFFT.Dispose() dpRe.Dispose() dpIm.Dispose() End Try End Sub End Class |