//модификация оригинальных сигналов псевдо-+случайным образом
        public void MagicOn()
        {
            List <double> result = new List <double>();

            foreach (double item in OriginalSignal)
            {
                result.Add(item + _Random.NextDouble() * Magic - _Random.NextDouble() * Magic);
            }

            OriginalSignal.Clear();

            foreach (double item in result)
            {
                OriginalSignal.Add(item);
            }


            result.Clear();

            foreach (double item in OriginalNoise)
            {
                result.Add(item + _Random.NextDouble() * Magic - _Random.NextDouble() * Magic);
            }

            OriginalNoise.Clear();

            foreach (double item in result)
            {
                OriginalNoise.Add(item);
            }

            Computer();
        }
        //восстановление сигналов и шума из old...
        public void AfterMagic()
        {
            Signal.Clear();
            Noise.Clear();
            OriginalSignal.Clear();
            OriginalNoise.Clear();



            foreach (double item in oldSignal)
            {
                Signal.Add(item);
            }

            foreach (double item in oldNoise)
            {
                Noise.Add(item);
            }

            foreach (double item in oldOriginalSignal)
            {
                OriginalSignal.Add(item);
            }

            foreach (double item in oldOriginalNoise)
            {
                OriginalNoise.Add(item);
            }
        }
Exemple #3
0
        void UpdateStatistics(FrameworkElement target, Point original, Point filtered)
        {
            Point targetPointOrig     = _window.TranslatePoint(original, target);
            Point targetPointFiltered = _window.TranslatePoint(filtered, target);
            Point targetCenter        = new Point(target.ActualWidth / 2.0, target.ActualHeight / 2.0);

            OriginalSignal.Update((targetCenter.X - targetPointOrig.X) / target.ActualWidth,
                                  (targetCenter.Y - targetPointOrig.Y) / target.ActualHeight);

            FilteredSignal.Update((targetCenter.X - targetPointFiltered.X) / target.ActualWidth,
                                  (targetCenter.Y - targetPointFiltered.Y) / target.ActualHeight);
        }
 public void SignalClear()
 {
     Signal.Clear();
     OriginalSignal.Clear();
 }