Beispiel #1
0
        private void Button_Click_Y(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = Environment.CurrentDirectory;
            openFileDialog.Filter           = "Binary|*.bin";
            if (openFileDialog.ShowDialog() == true)
            {
                _sygY = WriteRead.ReadFromFile(openFileDialog.FileName);
            }
        }
Beispiel #2
0
        public static SygnalCiagly ReadFromFile(string name)
        {
            IFormatter   formatter = new BinaryFormatter();
            Stream       stream    = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);
            SygnalCiagly obj       = (SygnalCiagly)formatter.Deserialize(stream);

            obj.FromTimeAndAmplitudeToPoints(obj.Points, obj.TimeAndAmplitude);
            obj.FromTimeAndAmplitudeToPoints(obj.Points2, obj.TimeAndAmplitude2);
            stream.Close();
            return(obj);
        }
Beispiel #3
0
        public static void WriteToFile(SygnalCiagly syg, string name)
        {
            IFormatter formatter = new BinaryFormatter();
            Stream     stream    = new FileStream(i + "." + name + "- t1-" + syg._t1 + " d-" + syg._d + " f-" + syg._fciagly + ".bin", FileMode.Create, FileAccess.Write, FileShare.None);

            syg.FromPointsToTimeAndAmplitude(syg.Points, syg.TimeAndAmplitude);
            syg.FromPointsToTimeAndAmplitude(syg.Points2, syg.TimeAndAmplitude2);
            formatter.Serialize(stream, syg);
            stream.Close();
            i++;
        }
Beispiel #4
0
 private void Button_Click_wynik(object sender, RoutedEventArgs e)
 {
     if (_sygX == null || _sygY == null)
     {
         MessageBox.Show("Nie wybrano sygnałów", "Uwaga", MessageBoxButton.OK, MessageBoxImage.Information);
     }
     else
     {
         if (_sygX._t1 != _sygY._t1 || _sygX._d != _sygY._d || _sygX._fciagly != _sygY._fciagly)
         {
             MessageBox.Show("Nie można wykonać operacji na tych dwóch sygnałach", "Uwaga", MessageBoxButton.OK, MessageBoxImage.Information);
             _sygX = null;
             _sygY = null;
         }
         else
         {
             if (operation.Text == "+")
             {
                 SygnalCiagly wynik = Operations.Add(_sygX, _sygY);
                 LineChart    lc    = new LineChart();
                 lc.DataContext = wynik.MakeChart("Sygnał wynikowy");
                 lc.Show();
                 WriteRead.WriteToFile(wynik, "Sygnał wynikowy");
             }
             if (operation.Text == "-")
             {
                 SygnalCiagly wynik = Operations.Subtract(_sygX, _sygY);
                 LineChart    lc    = new LineChart();
                 lc.DataContext = wynik.MakeChart("Sygnał wynikowy");
                 lc.Show();
                 WriteRead.WriteToFile(wynik, "Sygnał wynikowy");
             }
             if (operation.Text == "*")
             {
                 SygnalCiagly wynik = Operations.Muliply(_sygX, _sygY);
                 LineChart    lc    = new LineChart();
                 lc.DataContext = wynik.MakeChart("Sygnał wynikowy");
                 lc.Show();
                 WriteRead.WriteToFile(wynik, "Sygnał wynikowy");
             }
             if (operation.Text == "/")
             {
                 SygnalCiagly wynik = Operations.Divide(_sygX, _sygY);
                 LineChart    lc    = new LineChart();
                 lc.DataContext = wynik.MakeChart("Sygnał wynikowy");
                 lc.Show();
                 WriteRead.WriteToFile(wynik, "Sygnał wynikowy");
             }
         }
     }
 }
Beispiel #5
0
        private void Button_Click_odtw(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = Environment.CurrentDirectory;
            openFileDialog.Filter           = "Binary|*.bin";
            if (openFileDialog.ShowDialog() == true)
            {
                SygnalCiagly s     = WriteRead.ReadFromFile(openFileDialog.FileName);
                LineChart    lc    = new LineChart();
                string       nazwa = openFileDialog.FileName;
                nazwa          = nazwa.Substring(nazwa.IndexOf(".") + 1);
                nazwa          = nazwa.Substring(0, nazwa.IndexOf("-"));
                lc.DataContext = s.MakeChart(nazwa);
                lc.Show();
            }
        }
Beispiel #6
0
        public static SygnalCiagly Divide(SygnalCiagly x, SygnalCiagly y)
        {
            ICollection <Point> newPoints = new Collection <Point>();

            for (int i = 0; i < x.TimeAndAmplitude.Count(); i++)
            {
                double iloraz;
                if (y.TimeAndAmplitude.ElementAt(i).Y == 0)
                {
                    iloraz = 0;
                }
                else
                {
                    iloraz = x.TimeAndAmplitude.ElementAt(i).Y / y.TimeAndAmplitude.ElementAt(i).Y;
                }
                newPoints.Add(new Point(x.TimeAndAmplitude.ElementAt(i).X, iloraz));
            }
            ICollection <Point> newPoints2 = new Collection <Point>();

            for (int i = 0; i < x.TimeAndAmplitude2.Count(); i++)
            {
                double iloraz;
                if (y.TimeAndAmplitude2.ElementAt(i).Y == 0)
                {
                    iloraz = 0;
                }
                else
                {
                    iloraz = x.TimeAndAmplitude2.ElementAt(i).Y / y.TimeAndAmplitude2.ElementAt(i).Y;
                }
                newPoints2.Add(new Point(x.TimeAndAmplitude2.ElementAt(i).X, iloraz));
            }
            SygnalCiagly wynik = new SygnalCiagly(0, 0, 0, 0, 0, 0, 0, 0);

            wynik.TimeAndAmplitude = newPoints;
            wynik.FromTimeAndAmplitudeToPoints(wynik.Points, wynik.TimeAndAmplitude);
            wynik.TimeAndAmplitude2 = newPoints2;
            wynik.FromTimeAndAmplitudeToPoints(wynik.Points2, wynik.TimeAndAmplitude2);
            wynik.CalculateInfo();
            return(wynik);
        }
Beispiel #7
0
        public static SygnalCiagly Muliply(SygnalCiagly x, SygnalCiagly y)
        {
            ICollection <Point> newPoints = new Collection <Point>();

            for (int i = 0; i < x.TimeAndAmplitude.Count(); i++)
            {
                newPoints.Add(new Point(x.TimeAndAmplitude.ElementAt(i).X, x.TimeAndAmplitude.ElementAt(i).Y *y.TimeAndAmplitude.ElementAt(i).Y));
            }
            ICollection <Point> newPoints2 = new Collection <Point>();

            for (int i = 0; i < x.TimeAndAmplitude2.Count(); i++)
            {
                newPoints2.Add(new Point(x.TimeAndAmplitude2.ElementAt(i).X, x.TimeAndAmplitude2.ElementAt(i).Y *y.TimeAndAmplitude2.ElementAt(i).Y));
            }
            SygnalCiagly wynik = new SygnalCiagly(0, 0, 0, 0, 0, 0, 0, 0);

            wynik.TimeAndAmplitude = newPoints;
            wynik.FromTimeAndAmplitudeToPoints(wynik.Points, wynik.TimeAndAmplitude);
            wynik.TimeAndAmplitude2 = newPoints2;
            wynik.FromTimeAndAmplitudeToPoints(wynik.Points2, wynik.TimeAndAmplitude2);
            wynik.CalculateInfo();
            return(wynik);
        }
Beispiel #8
0
        private void Button_Click_stworz(object sender, RoutedEventArgs e)
        {
            SygnalCiagly    sc = null;
            SygnalDyskretny sd = null;

            if (signal.Text == "Szum impulsowy" || signal.Text == "Impuls jednostkowy")
            {
                sd = new SygnalDyskretny(Convert.ToDouble(_A), Convert.ToDouble(_t1), Convert.ToDouble(_d), Convert.ToDouble(_ns), Convert.ToDouble(_f), Convert.ToDouble(_p), Convert.ToInt32(_his));
            }
            else
            {
                sc = new SygnalCiagly(Convert.ToDouble(_A), Convert.ToDouble(_t1), Convert.ToDouble(_d), Convert.ToDouble(_T), Convert.ToDouble(_kw), Convert.ToDouble(_f), Convert.ToDouble(_ns), Convert.ToInt32(_his));
            }

            LineChart  lc = new LineChart();
            PointChart pc = new PointChart();

            if (signal.Text == "Szum o rozkładzie jednostajnym")
            {
                sc.SzumJednostajny();
            }
            if (signal.Text == "Szum gaussowski")
            {
                sc.SzumGaussowski();
            }
            if (signal.Text == "Sygnał sinusoidalny")
            {
                sc.SygnalSinusoidalny();
            }
            if (signal.Text == "Sygnał sinusoidalny wyprostowany jednopołówkowo")
            {
                sc.SygnalSinusoidalnyWyprostowanyJednopolowkowo();
            }
            if (signal.Text == "Sygnał sinusoidalny wyprostowany dwupołówkowo")
            {
                sc.SygnalSinusoidalnyWyprostowanyDwupolowkowo();
            }
            if (signal.Text == "Sygnał prostokątny")
            {
                sc.SygnalProstokatny();
            }
            if (signal.Text == "Sygnał prostokątny symetryczny")
            {
                sc.SygnalProstokatnySymetryczny();
            }
            if (signal.Text == "Sygnał trójkątny")
            {
                sc.SygnalTrojkatny();
            }
            if (signal.Text == "Skok jednostkowy")
            {
                sc.Skok();
            }
            if (signal.Text == "Impuls jednostkowy")
            {
                sd.ImpulsJednostkowy();
            }
            if (signal.Text == "Szum impulsowy")
            {
                sd.SzumImpulsowy();
            }

            if (sc != null)
            {
                sc.CalculateInfo();
                if (kwantyzacja.Text == "Kwantyzacja z obcięciem")
                {
                    sc.KwantyzacjaZObcieciem();
                }
                else
                {
                    sc.KwantyzacjaZZaokragleniem();
                }
                lc.DataContext = sc.MakeChart(signal.Text);
                lc.Show();

                if (checkboxzapisz.IsChecked.GetValueOrDefault() == true)
                {
                    WriteRead.WriteToFile(sc, signal.Text);
                }
            }
            if (sd != null)
            {
                sd.CalculateInfo();
                pc.DataContext = sd.MakeChart(signal.Text);
                pc.Show();
            }

            if (_his > 0)
            {
                Histogram his = new Histogram();
                if (sc != null)
                {
                    his.DataContext = sc.MakeHistogram();
                }
                if (sd != null)
                {
                    his.DataContext = sd.MakeHistogram();
                }
                his.Show();
            }
        }