int __stdcall NDK_IDFT | ( | double * | amp, |
double * | phase, | ||
size_t | nSize, | ||
double * | X, | ||
size_t | N | ||
) |
Calculates the inverse discrete fast Fourier transformation, recovering the time series.
- Returns
- status code of the operation
- Return values
-
NDK_SUCCESS Operation successful NDK_FAILED Operation unsuccessful. See Macros for full list.
- Parameters
-
[in] amp is an array of the amplitudes of the fourier transformation components. [in] phase is an array of the phase angle (radian) of the Fourier transformation components . [in] nSize is the number of spectrum components (i.e. size of amp and phase). [out] X is the filtered (recovered) time series output [in] N is the original number of observations used to calculate the fourier transform.
- Remarks
-
- The input time series may include missing values (NaN) at either end, but they will not be included in the calculations.
- The input time series must be homogeneous or equally spaced.
- The first value in the input time series must correspond to the earliest observation.
- The frequency component order, \(k\), must be a positive number less than \(N\), or an error (#VALUE!) is returned.
- The DFT returns the phase angle in radians; i.e. \( 0 \lt \phi \lt 2 \times \pi\).
- The discrete Fourier transformation (DFT) is defined as follows: \[ X_k = \sum_{j=0}^{N-1} x_j e^{-\frac{2\pi i}{N} j k} \] Where:
- \(k\) is the frequency component
- \(x_0,...,x_{N-1}\) are the values of the input time series
- \(N\) is the number of non-missing values in the input time series
- The Cooley-Tukey radix-2 decimation-in-time fast Fourier transformation (FFT) algorithm divides a DFT of size N into two overlapping DFTs of size $\frac{N}{2}$ at each of its stages using the following formula: \[ X_{k} = \begin{cases} E_k + \alpha \cdot O_k & \text{ if } k \lt \dfrac{N}{2} \\ E_{\left (k-\frac{N}{2} \right )} - \ \alpha \cdot O_{\left (k-\frac{N}{2} \right )} & \text{ if } k \geq \dfrac{N}{2} \end{cases} \] Where:
- \(E_k\) is the DFT of the even-indicied values of the input time series, \(x_{2m} \left(x_0, x_2, \ldots, x_{N-2}\right)\)
- \(O_k\) is the DFT of the odd-indicied values of the input time series, \(x_{2m+1} \left(x_1, x_3, \ldots, x_{N-2}\right)\)
- \(\alpha = e^{ \left (-2 \pi i k /N \right )}\)
- \(N\) is the number of non-missing values in the time series data
- The unit frequency of the DFT is \(\frac{2\pi}{N}\), where \(N\) is the number of non-missing observations.
- Requirements
-
Header SFSDK.H Library SFSDK.LIB DLL SFSDK.DLL
- Examples
-
Namespace: | NumXLAPI |
Class: | SFSDK |
Scope: | Public |
Lifetime: | Static |
int NDK_IDFT | ( | double[] | amp, |
double[] | phase, | ||
UIntPtr | nSize, | ||
double[] | data, | ||
UIntPtr | nWindowSize | ||
) |
Calculates the inverse discrete fast Fourier transformation, recovering the time series.
- Return Value
-
a value from NDK_RETCODE enumeration for the status of the call.
NDK_SUCCESS operation successful Error Error Code
- Parameters
-
[in] amp is an array of the amplitudes of the fourier transformation components. [in] phase is an array of the phase angle (radian) of the Fourier transformation components . [in] nSize is the number of spectrum components (i.e. size of amp and phase). [out] data is the filtered (recovered) time series output [in] nSize is the original number of observations used to calculate the fourier transform.
- Remarks
-
- The input time series may include missing values (NaN) at either end, but they will not be included in the calculations.
- The input time series must be homogeneous or equally spaced.
- The first value in the input time series must correspond to the earliest observation.
- The frequency component order, \(k\), must be a positive number less than \(N\), or an error (#VALUE!) is returned.
- The DFT returns the phase angle in radians; i.e. \( 0 \lt \phi \lt 2 \times \pi\).
- The discrete Fourier transformation (DFT) is defined as follows: \[ X_k = \sum_{j=0}^{N-1} x_j e^{-\frac{2\pi i}{N} j k} \] Where:
- \(k\) is the frequency component
- \(x_0,...,x_{N-1}\) are the values of the input time series
- \(N\) is the number of non-missing values in the input time series
- The Cooley-Tukey radix-2 decimation-in-time fast Fourier transformation (FFT) algorithm divides a DFT of size N into two overlapping DFTs of size $\frac{N}{2}$ at each of its stages using the following formula: \[ X_{k} = \begin{cases} E_k + \alpha \cdot O_k & \text{ if } k \lt \dfrac{N}{2} \\ E_{\left (k-\frac{N}{2} \right )} - \ \alpha \cdot O_{\left (k-\frac{N}{2} \right )} & \text{ if } k \geq \dfrac{N}{2} \end{cases} \] Where:
- \(E_k\) is the DFT of the even-indicied values of the input time series, \(x_{2m} \left(x_0, x_2, \ldots, x_{N-2}\right)\)
- \(O_k\) is the DFT of the odd-indicied values of the input time series, \(x_{2m+1} \left(x_1, x_3, \ldots, x_{N-2}\right)\)
- \(\alpha = e^{ \left (-2 \pi i k /N \right )}\)
- \(N\) is the number of non-missing values in the time series data
- The unit frequency of the DFT is \(\frac{2\pi}{N}\), where \(N\) is the number of non-missing observations.
- Exceptions
-
Exception Type Condition None N/A
- Requirements
-
Namespace NumXLAPI Class SFSDK Scope Public Lifetime Static Package NumXLAPI.DLL
- Examples
-
- References
- * Hamilton, J .D.; Time Series Analysis , Princeton University Press (1994), ISBN 0-691-04289-6
- * Tsay, Ruey S.; Analysis of Financial Time Series John Wiley & SONS. (2005), ISBN 0-471-690740
- * D. S.G. Pollock; Handbook of Time Series Analysis, Signal Processing, and Dynamics; Academic Press; Har/Cdr edition(Nov 17, 1999), ISBN: 125609906
- * Box, Jenkins and Reisel; Time Series Analysis: Forecasting and Control; John Wiley & SONS.; 4th edition(Jun 30, 2008), ISBN: 470272848