public static Complex[] padded_FFT(double[] signal) { int N = MathUtils.NextPowerOfTwo(signal.Length); signal = zeros(signal, N); double[] signal_fft = FFTUtils.FFT(signal); Complex[] complexSignal = FFTUtils.DoubleToComplex(signal_fft); return(complexSignal); }
public static double[] padded_IFFT(double[] signal) { int N = signal.Length; Complex[] complexSignal = FFTUtils.DoubleToComplex(signal); Fourier.FFT(complexSignal, N, FourierDirection.Backward); // get the result double[] fft_real = new double[N]; for (int j = 0; j < N; j++) { fft_real[j] = complexSignal[j].Re; } return(fft_real); }