예제 #1
0
    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);
    }
예제 #2
0
    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);
    }