calculates the discrete Fourier transform or inverse Fourier transform of a sequence of iSize complex data values.
int fft_fft_complex( int iSize, double * vSigReal, double * vSigImag, FFT_SIGN iSign = FFT_FORWARD )
Returns 0 for success or error codes for failure.
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; } }
fft_fft_real, fft_fft_2d_complex
fft.h