Beispiel #1
0
        private void TransformMethod()
        {
            if (SelectedSignal != null)
            {
                SampledSignal signal = new SampledSignal();
                signal.PointsY = SelectedSignal.PointsY;
                signal.Name    = $"{SelectedSignal.Name} {SelectedTransform}";
                Stopwatch timer = new Stopwatch();
                timer.Start();
                switch (SelectedTransform.Substring(1, 4))
                {
                case "F1.1":
                    signal.ComplexPoints = FourierTransform.Transform(signal.PointsY);
                    break;

                case "F1.2":
                    FastFourierTransform fourierTransform = new FastFourierTransform();
                    signal.ComplexPoints = fourierTransform.Transform(signal.PointsY);
                    break;

                case "F1.3":
                    signal.ComplexPoints = WaveletTransform.Transform(signal.PointsY);
                    break;
                }
                timer.Stop();
                Time = timer.ElapsedMilliseconds;
                SignalCreator.AddSignal(signal);
            }
        }
Beispiel #2
0
        public void SineSignalTransform()
        {
            var data = new FunctionData(samples: 256);

            Generator.GenerateSignal(data);

            var fft       = new FastFourierTransform();
            var transform = fft.Transform(data.Points.ToArray());
        }
Beispiel #3
0
 static void Main(string[] args)
 {
     var len = 4096;
     var pow = 12;
     FastFourierTransform fft = new FastFourierTransform(len,len, pow);
     var arr = new Complex[len];
     for (int i = 0; i < len; i++)
     {
         arr[i] = Math.Sin(2*Math.PI*i/len);
     }
     fft.Transform(arr, true);
 }
Beispiel #4
0
        public void TransformTest()
        {
            var r  = new Random();
            var t1 = new DiscreteFourierTransform();
            var t2 = new FastFourierTransform();

            var points  = new List <Point>();
            var points2 = new List <Point>();
            var x       = 0;

            points.Add(new Point(x++, 1));
            points.Add(new Point(x++, 2));
            points.Add(new Point(x++, 3));
            points.Add(new Point(x, 1));
            x = 0;
            points2.Add(new Point(x, 1));
            points2.Add(new Point(x, 1));
            points2.Add(new Point(x, 1));
            points2.Add(new Point(x, 1));
            points2.Add(new Point(x, 0));
            points2.Add(new Point(x, 0));
            points2.Add(new Point(x, 0));
            points2.Add(new Point(x, 0));


            var first  = t1.Transform(points.ToArray()).ToList();
            var second = t2.Transform(points.ToArray()).ToList();
            var f2     = t1.Transform(points2.ToArray()).ToList();
            var s2     = t2.Transform(points2.ToArray()).ToList();


            for (int i = 0; i < first.Count; i++)
            {
                Assert.AreEqual(first[i], second[i]);
            }
        }
        public void Compute()
        {
            Stopwatch      timer   = new Stopwatch();
            List <Complex> complex = new List <Complex>();

            timer.Start();
            string chartCase = SelectedOutputChart.Substring(1, 2);

            switch (SelectedOperation.Substring(1, 4))
            {
            case "F1.1":
                complex = FourierTransform.Transform(SelectedSignal1Tab.TabContent.Data.Samples);
                break;

            case "F1.2":
                FastFourierTransform f = new FastFourierTransform();
                complex = f.Transform(SelectedSignal1Tab.TabContent.Data.Samples);
                break;

            case "F1.3":
                complex = WaveletTransform.Transform(SelectedSignal1Tab.TabContent.Data.Samples);
                break;
            }
            timer.Stop();
            var time = timer.ElapsedMilliseconds;

            if (chartCase.Contains("W1"))
            {
                ComplexChartsW1 window = new ComplexChartsW1(complex);
                window.Show();
                MessageBox.Show("Czas obliczeń: " + time.ToString() + " ms", "Czas", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                ComplexChartsW2 window = new ComplexChartsW2(complex);
                window.Show();
                MessageBox.Show("Czas obliczeń: " + time.ToString() + " ms", "Czas", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }