public FFTResult Run(Complex[] signal) { var result = new FFTResult(); Stopwatch sw = new Stopwatch(); sw.Start(); result.Result = FFT.FFT.fft(signal); sw.Stop(); result.Time = sw.Elapsed; return(result); }
// [DllImport("IPS_Fourier.dll", CallingConvention = CallingConvention.Cdecl, //SetLastError = true)] // static private extern void run(int n, double[] signal, double[] real, double[] imag); public FFTResult Run(Complex[] signal) { var size = signal.Length; var real = new double[size]; var imag = new double[size]; //pzdc //run(0, signal.Select(c => c.Real).ToArray(), real, imag); var result = new FFTResult(); result.Result = new Complex[size]; for (int i = 0; i < size; i++) { result.Result[i] = new Complex(real[i], imag[i]); } return(result); }
double CalcDominantFrequence(FFTResult fftResult) { throw new NotImplementedException(); }
double CalcSpectralFlatness(FFTResult fftResult) { throw new NotImplementedException(); }