fft_fft_complex
    
  
  Description
  calculates the discrete Fourier transform or inverse Fourier transform of a sequence of iSize complex data values. 
  Syntax
  
int fft_fft_complex( int iSize, double * vSigReal, double * vSigImag, FFT_SIGN iSign = FFT_FORWARD )
 
  Parameters
  
    - iSize
 
    - [input] the number of data values.
 
    - vSigReal
 
    - [modify] the real part of the data for input, and the real part of the transformed data for output
 
    - vSigImag
 
    - [modify] the imaginary part of the data for input, and the imaginary part of the transformed data for output
 
    - iSign
 
    - [input] the transformation to carry out
 
    - = FFT_FORWARD: FFT (by default)
 
    - = FFT_BACKWARD: IFFT.
 
   
  Return
  Returns 0 for success or error codes for failure. 
  Examples
  EX1 
  
//Assume the current Worksheet has 6 columns, the first two columns contain 7 data each.
//The first column is the real part of the original complex data and the second column
//is the imaginary part. This piece of code reads in a sequence of these 7 complex data
//values and put the result of the discrete Fourier transform of the original data
//into the third and fourth columns. The third column is the real part and the fourth
//column is the imaginary part. Then inverse Fourier transform is performed, and the
//result is output into the fifth and sixth column.
#include <..\originlab\fft.h>
void TEST_fft_fft_complex()
{
    int nSize = 7, success;
    //Attach two Datasets to these 2 columns
    
    Worksheet wks = Project.ActiveLayer();
    if(wks)
    {
        Dataset xx(wks, 0);
        Dataset yy(wks, 1);
        Dataset aa(wks, 2);
        aa.SetSize(nSize);
        Dataset bb(wks, 3);
        bb.SetSize(nSize);
        Dataset cc(wks, 4);
        cc.SetSize(nSize);    
        Dataset dd(wks, 5);
        dd.SetSize(nSize);
        
        //Because Dataset cannot be the parameter of function, but vector can.
        vector x = xx, y = yy;
        
        ///FT
        success = fft_fft_complex(nSize, x, y);
        //put the result back to the current worksheet, the third and the fourth column.
        aa = x;
        bb = y;
        
        ///IFT
        success = fft_fft_complex(nSize, x, y, FFT_BACKWARD);
        //put the result back to the current worksheet, the fifth and the sixth column.
        cc = x;
        dd = y;
    }
}
  Remark
  See Also
  fft_fft_real, fft_fft_2d_complex 
  header to Include
  fft.h 
  Reference
             |