void DrawFastFourierPlot(List <DataPoint> previousPoints) //, out List<double> measuredValues
        {
            DrawChart(previousPoints, false);

            Stopwatch s = new Stopwatch();

            s.Start();
            complexPoints = FastFourierTransform.Transform(previousPoints.Select(p => p.Y).ToList());
            s.Stop();
            ElapsedTime = s.Elapsed;

            var realYValues = complexPoints.Select(p => p.Real).ToList();
            List <DataPoint> realDataPoints = new List <DataPoint>();

            for (int i = 0; i < realYValues.Count; i++)
            {
                realDataPoints.Add(new DataPoint(i, realYValues[i]));
            }
            DrawChart(realDataPoints, false, true);

            var imaginaryYValues = complexPoints.Select(p => p.Imaginary).ToList();
            List <DataPoint> imaginaryDataPoints = new List <DataPoint>();

            for (int i = 0; i < imaginaryYValues.Count; i++)
            {
                imaginaryDataPoints.Add(new DataPoint(i, imaginaryYValues[i]));
            }
            DrawLowerChart(imaginaryDataPoints, true, "Część urojona");
        }
        void DrawReverseFastFourierPlot(List <Complex> previousPoints) //, out List<double> measuredValues
        {
            Stopwatch s = new Stopwatch();

            s.Start();
            var reversedPoints = FastFourierTransform.ReverseTransform(previousPoints);

            s.Stop();
            ElapsedTime = s.Elapsed;

            List <DataPoint> dataPoints = new List <DataPoint>();

            for (int i = 0; i < reversedPoints.Count; i++)
            {
                dataPoints.Add(new DataPoint(i, reversedPoints[i]));
            }
            DrawChart(dataPoints, false, true);
        }