Example #1
0
        public Form2(double[] signal, int sampleFreq, int N)
        {
            InitializeComponent();

            for (var i = 0; i < N; ++i)
            {
                signalChart.Series["sample"].Points.AddXY(i, signal[i]);
            }

            FFT.OperationCount = 0;
            var spectrum          = FFT.dft(signal, N);
            var operationCountDFT = FFT.OperationCount;

            FFT.OperationCount = 0;
            spectrum           = FFT.fft54(signal);
            var operationCountFFT = FFT.OperationCount;

            var samplingStep = sampleFreq / (double)N;

            for (var i = 0; i < N / 2; ++i)
            {
                spectrumChart.Series["harmonic"].Points.AddXY(i * samplingStep, spectrum[i].MAG / (N / 2));
            }
            MessageBox.Show("Operation count with DFT: " + operationCountDFT + "\nOperation count with FFT: " + operationCountFFT + "\nCAC: " + operationCountDFT / (double)operationCountFFT);
        }