Пример #1
0
        private void btnRampa_Click(object sender, RoutedEventArgs e)
        {
            double tiempoInicial      = double.Parse(txtTiempoInicial.Text);
            double tiempoFinal        = double.Parse(txtTiempoFinal.Text);
            double frecuenciaMuestreo = double.Parse(txtMuestreo.Text);

            Rampa Rampa = new Rampa();

            plnGrafica.Points.Clear();

            double periodoMuestreo = 1 / frecuenciaMuestreo;

            for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo)
            {
                double valorMuestra = Rampa.evaluar(i);

                if (Math.Abs(valorMuestra) > Rampa.AmplitudMaxima)
                {
                    Rampa.AmplitudMaxima = Math.Abs(valorMuestra);
                }

                Rampa.Muestras.Add(new Muestra(i, valorMuestra));
            }


            //Recorrer una colección o arreglo
            //La variable muestra guarda cada elemento de la colección de: señal.Muestra
            foreach (Muestra muestra in Rampa.Muestras)
            {
                plnGrafica.Points.Add(new Point(muestra.X * Scroll.Width, (muestra.Y *
                                                                           ((Scroll.Height / 2)) - 30) * -1 + (Scroll.Height / 2)));
            }
        }
        private void Graficar_Click(object sender, RoutedEventArgs e)
        {
            /* double amplitud = double.Parse(txtAmplitud.Text);
             * double fase = double.Parse(txtFase.Text);
             * double frecuencia = double.Parse(txtFrecuencia.Text);*/
            double tiempoinicial      = double.Parse(txtTiempo_Inicial.Text);
            double tiempofinal        = double.Parse(txtTiempo_Final.Text);
            double frecuenciamuestreo = double.Parse(txtFrecuenciaMuestreo.Text);
            /* senoidal = new SeñalSenoidal(amplitud, fase, frecuencia);*/
            /*SeñalParabolica parabolica = new SeñalParabolica();*/
            //SeñalSigno signo = new SeñalSigno();//
            Rampa  rampa           = new Rampa();
            double periodoMuestreo = 1.0 / frecuenciamuestreo;
            double amplitudMaxima  = 0.0;

            plnGrafica.Points.Clear();

            for (double i = tiempoinicial; i <= tiempofinal; i += periodoMuestreo)
            {
                double valorMuestra = rampa.evaluar(i);
                if (Math.Abs(valorMuestra) >= amplitudMaxima)
                {
                    amplitudMaxima = Math.Abs(valorMuestra);
                }
                Muestra muestra = new Muestra(i, valorMuestra);

                rampa.muestras.Add(muestra);
            }
            foreach (Muestra muestra1 in rampa.muestras)
            {
                plnGrafica.Points.Add(adaptarCoordenadas(muestra1.X, muestra1.Y, tiempoinicial, amplitudMaxima));
            }
            lblLimiteSuperior.Text = amplitudMaxima.ToString();
            lblLimiteInferior.Text = "-" + amplitudMaxima.ToString();
            pnlEjeX.Points.Clear();
            pnlEjeX.Points.Add(adaptarCoordenadas(tiempoinicial, 0.0, tiempoinicial, amplitudMaxima));
            pnlEjeX.Points.Add(adaptarCoordenadas(tiempofinal, 0.0, tiempoinicial, amplitudMaxima));
            pnlEjeY.Points.Clear();
            pnlEjeY.Points.Add(adaptarCoordenadas(0.0, amplitudMaxima, tiempoinicial, amplitudMaxima));
            pnlEjeY.Points.Add(adaptarCoordenadas(0.0, -amplitudMaxima, tiempoinicial, amplitudMaxima));
        }
Пример #3
0
        private void btnGraficarRampa_Click(object sender, RoutedEventArgs e)
        {
            double tiempoInicial      = double.Parse(txtTiempoInicial.Text);
            double tiempoFinal        = double.Parse(txtTiempoFinal.Text);
            double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text);

            Rampa rampa = new Rampa();

            plnGrafica.Points.Clear();

            double periodoMuestro = 1 / frecuenciaMuestreo;

            for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestro)
            {
                double valorMuestra = rampa.evaluar(i);
                rampa.muestras.Add(new Muestra(i, valorMuestra));
            }
            foreach (Muestra muestra in rampa.muestras)
            {
                plnGrafica.Points.Add(new Point(muestra.x * scrContenedor.Width, (muestra.y * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2)));
            }
        }
Пример #4
0
        private void btnGraficar_Click(object sender, RoutedEventArgs e)
        {
            double TiempoInicial = double.Parse(txtTiempoInicial.Text);
            double TiempoFinal   = double.Parse(txtTiempoFinal.Text);
            double Muestreo      = double.Parse(txtMuestreo.Text);

            Señal senal;
            Señal segundasenal;

            switch (cbTipoSeñal.SelectedIndex)
            {
            // Senoidal
            case 0:

                double Amplitud =
                    double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion.Children[0]).txtAmplitud.Text);

                double Fase =
                    double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion.Children[0]).txtFase1.Text);

                double Frecuencia =
                    double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion.Children[0]).txtFrecuencia.Text);

                senal = new SenalSenoidal(Amplitud, Fase, Frecuencia);
                break;

            case 1: senal = new Rampa();
                break;

            case 2:
                double Alpha =
                    double.Parse(((ConfiguracionExponencial)PanelConfiguracion.Children[0]).txtAlpha.Text);

                senal = new Exponencial(Alpha);

                break;

            default:

                senal = null;
                break;
            }
            // SWITCH 2
            switch (cbTipoSeñal.SelectedIndex)
            {
            // Senoidal
            case 0:

                double Amplitud =
                    double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion2.Children[0]).txtAmplitud.Text);

                double Fase =
                    double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion2.Children[0]).txtFase1.Text);

                double Frecuencia =
                    double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion2.Children[0]).txtFrecuencia.Text);

                segundasenal = new SenalSenoidal(Amplitud, Fase, Frecuencia);
                break;

            case 1:
                segundasenal = new Rampa();
                break;

            case 2:
                double Alpha =
                    double.Parse(((ConfiguracionExponencial)PanelConfiguracion2.Children[0]).txtAlpha.Text);

                segundasenal = new Exponencial(Alpha);

                break;

            default:

                segundasenal = null;
                break;
            }

            senal.TiempoInicial      = TiempoInicial;
            senal.TiempoFinal        = TiempoFinal;
            senal.FrecuenciaMuestreo = Muestreo;

            // segunda señal
            segundasenal.TiempoInicial      = TiempoInicial;
            segundasenal.TiempoFinal        = TiempoFinal;
            segundasenal.FrecuenciaMuestreo = Muestreo;

            senal.ConstruirSeñalDigital();
            segundasenal.ConstruirSeñalDigital();

            // Truncar
            if ((bool)CheckUmbral.IsChecked)
            {
                double n = double.Parse(txtUmbral.Text);
                senal.Truncar(n);
            }

            // Escalar
            if ((bool)CheckEscalar.IsChecked)
            {
                double factorEscala = double.Parse(txtAmplitud.Text);
                senal.escalar(factorEscala);
            }

            // Desplazar.
            if ((bool)CheckDesplazamiento.IsChecked)
            {
                double factorDesplazamiento = double.Parse(txtDesplazamiento.Text);
                senal.desplazar(factorDesplazamiento);
                senal.actualizarAmplitudMaxima();
            }

            // Truncar2
            if ((bool)CheckUmbral2.IsChecked)
            {
                double n = double.Parse(txtUmbral1.Text);
                senal.Truncar(n);
            }

            // Escalar2
            if ((bool)CheckEscalar2.IsChecked)
            {
                double factorEscala = double.Parse(txtAmplitud.Text);
                senal.escalar(factorEscala);
            }

            // Desplazar2.
            if ((bool)CheckDesplazamiento2.IsChecked)
            {
                double factorDesplazamiento = double.Parse(txtDesplazamiento2.Text);
                senal.desplazar(factorDesplazamiento);
                senal.actualizarAmplitudMaxima();
            }

            plnGrafica.Points.Clear();

            if (senal != null)
            {
                // Recorrer una coleccion o arreglo
                foreach (Muestra muestra in senal.muestras)
                {
                    plnGrafica.Points.Add(new Point((muestra.X - TiempoInicial) * Scroll.Width, (muestra.Y / senal.AmplitudMaxima
                                                                                                 * ((Scroll.Height / 2) - 30) * -1 + (Scroll.Height / 2))));
                }
            }



            plnEjeX.Points.Clear();
            // Punto de inicio
            plnEjeX.Points.Add(new Point(0, (Scroll.Height / 2)));
            // Punto final.
            plnEjeX.Points.Add(new Point((TiempoFinal - TiempoInicial) * Scroll.Width, (Scroll.Height / 2)));



            lblAmplitudMaximaPositiva.Text = senal.AmplitudMaxima.ToString("F");
            lblAmplitudMaximaNegativa.Text = " - " + senal.AmplitudMaxima.ToString("F");
        }
Пример #5
0
        private void graficar_Click(object sender, RoutedEventArgs e)
        {
            double tiempoInicial      = double.Parse(txtTiempoInicial.Text);
            double tiempoFinal        = double.Parse(txtTiempoFinal.Text);
            double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text);

            Señal señal;

            switch (cbTipoSeñal.SelectedIndex)
            {
            //Seniodal
            case 0:
                double amplitud   = double.Parse(((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtAmplitud.Text);
                double fase       = double.Parse(((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFase.Text);
                double frecuencia = double.Parse(((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFrecuencia.Text);
                señal = new SeñalSenoidal(amplitud, fase, frecuencia);
                break;

            //Rampa
            case 1:
                señal = new Rampa();
                break;

            // Exponencial
            case 2:
                double alpha = double.Parse(((ConfiguracionSeñalExponencial)panelConfiguracion.Children[0]).txtAlpha.Text);
                señal = new SeñalExponencial(alpha);
                break;

            // Exponencial2
            case 3:
                double alpha2 = double.Parse(((ConfiguracionSeñalExponencial2)panelConfiguracion.Children[0]).txtAlpha2.Text);
                señal = new SeñalExponencial2(alpha2);
                break;

            // Exponente
            case 4:
                double exponente = double.Parse(((ConfiguracionSeñalExponencial2)panelConfiguracion.Children[0]).txtExponente.Text);
                señal = new SeñalExponencial2(exponente);
                break;

            default:
                señal = null;
                break;
            }



            plnGrafica.Points.Clear();

            if (señal != null)
            {
                señal.tiempoFinal        = tiempoFinal;
                señal.tiempoInicial      = tiempoInicial;
                señal.frecuenciaMuestreo = frecuenciaMuestreo;

                //contruir señal
                señal.construirSeñalDigital();

                //escalar
                if ((bool)chbEscalar.IsChecked)
                {
                    double escalar = double.Parse(txtEscalar.Text);
                    señal.escalar(escalar);
                }

                //desplazamiento
                if ((bool)chbDesplazamiento.IsChecked)
                {
                    double desplazamiento = double.Parse(txtDesplazamientoY.Text);
                    señal.desplazarY(desplazamiento);
                }

                //desplazamiento
                if ((bool)chbTruncar.IsChecked)
                {
                    double umbral = double.Parse(txtUmbral.Text);
                    señal.truncar(umbral);
                }



                //actualizar amplitud maxima
                señal.actualizarAmplitudMaxima();

                //recorrer una coleccion o arreglo
                foreach (Muestra muestra in señal.muestras)
                {
                    plnGrafica.Points.Add(new Point((muestra.x - tiempoInicial) * scrContenedor.Width, (muestra.y / señal.amplitudMaxima * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2)));
                }

                lblAmplitudMaximaY.Text         = señal.amplitudMaxima.ToString();
                lblAmplitudMaximaNegativaY.Text = "-" + señal.amplitudMaxima.ToString();
            }



            plnEjeX.Points.Clear();
            //punto del principio
            plnEjeX.Points.Add(new Point(0, scrContenedor.Height / 2));
            //punto del fin
            plnEjeX.Points.Add(new Point((tiempoFinal - tiempoInicial) * scrContenedor.Width, scrContenedor.Height / 2));

            plnEjeY.Points.Clear();
            //punto del principio
            plnEjeY.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, (1 * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2)));
            //punto del fin
            plnEjeY.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, (-1 * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2)));
        }