Ejemplo n.º 1
0
        public ConversionViewModel(SignalViewModel first)
        {
            firstSignalViewModel  = first;
            secondSignalViewModel = new SignalViewModel();

            SamplingFrequency  = new FunctionAttribute <int>(10, false, 1, 5000, "SAMPLING FREQUENCY");
            QuantizationBits   = new FunctionAttribute <int>(3, false, 2, 10, "QUANTIZATION BITS");
            QuantizationLevels = new FunctionAttribute <int>(8, false, 2, 1024, "QUANTIZATION LEVELS");

            AttributesBinding.BindAttributesTwoWay(QuantizationLevels, QuantizationBits, new LogarithmConverter());
            NumberOfSamples = new FunctionAttribute <int>(5, false, 2, 500, "NUMBER OF SAMPLES");

            AnalogToDigitalConversionOperations = new List <string> {
                "UNIFORM SAMPLING", "UNIFORM QUANTIZATION"
            };
            DigitalToAnalogConversionOperations = new List <string> {
                "ZERO-ORDER HOLD", "SINC RECONSTRUCTION"
            };
            Operation = string.Empty;

            MaximumDifference      = new Parameter(0.0d, "MAXIMUM DIFFERENCE");
            SignalToNoiseRatio     = new Parameter(0, "SIGNAL TO NOISE RATIO");
            MeanSquaredError       = new Parameter(0, "MEAN SQUARED ERROR");
            PeakSignalToNoiseRatio = new Parameter(0, "PEAK SIGNAL TO NOISE RATIO");


            Attributes = new List <FunctionAttribute <int> >(
                new[] { SamplingFrequency, QuantizationLevels, QuantizationBits, NumberOfSamples });
            ConversionMetrics = new List <Parameter>(new[]
                                                     { MeanSquaredError, MaximumDifference, SignalToNoiseRatio, PeakSignalToNoiseRatio });

            FirstSignalData.Continuous.PropertyChanged += (sender, args) => OnPropertyChanged(nameof(IsSignalAnalog));
        }
 public WindowAttributesSelection(AttributesBinding AttributesBindingInstance)
 {
     this.InitializeComponent();
     ListBoxAttributes.ItemsSource = AttributesBindingInstance;
     ListBoxAttributes.Items.SortDescriptions.Add(new SortDescription("Key", ListSortDirection.Ascending));
 }
Ejemplo n.º 3
0
        public FunctionData(
            double startTime       = 0,
            double amplitude       = 50,
            double period          = 1,
            double duration        = 2,
            double dutyCycle       = 0.5,
            int samples            = 500,
            int histogramIntervals = 10,
            double probability     = 0.5,
            bool continuous        = true,
            Signal type            = Signal.Sine)
        {
            Amplitude = new FunctionAttribute <double>(
                amplitude,
                false,
                Settings.Default.AmplitudeMin,
                Settings.Default.AmplitudeMax,
                "AMPLITUDE");
            Period = new FunctionAttribute <double>(
                period,
                false,
                Settings.Default.PeriodMin,
                Settings.Default.PeriodMax,
                "PERIOD");
            Frequency = new FunctionAttribute <double>(
                1.0d / period,
                false,
                1.0d / Settings.Default.PeriodMax,
                1.0d / Settings.Default.PeriodMin,
                "FREQUENCY");
            Samples = new FunctionAttribute <int>(
                samples,
                false,
                Settings.Default.SamplesMin,
                Settings.Default.SamplesMax,
                "NUMBER OF SAMPLES");
            StartTime = new FunctionAttribute <double>(
                startTime,
                false,
                Settings.Default.StartTimeMin,
                Settings.Default.StartTimeMax,
                "STARTING TIME");
            Duration = new FunctionAttribute <double>(
                duration,
                false,
                Settings.Default.DurationMin,
                Settings.Default.DurationMax,
                "DURATION");
            DutyCycle = new FunctionAttribute <double>(
                dutyCycle,
                false,
                Settings.Default.DutyCycleMin,
                Settings.Default.DutyCycleMax,
                "DUTY CYCLE");
            HistogramIntervals = new FunctionAttribute <int>(
                histogramIntervals,
                true,
                Settings.Default.HistogramIntervalMin,
                Settings.Default.HistogramIntervalMax,
                "NUMBER OF INTERVALS");
            Probability          = new FunctionAttribute <double>(probability, false, 0, 1, "PROBABILITY");
            Continuous           = new FunctionAttribute <bool>(true, false, false, true, "CONTINUITY");
            AverageValue         = new Parameter(0, "AVERAGE VALUE");
            AbsoluteAverageValue = new Parameter(0, "ABSOLUTE AVERAGE VALUE");
            AveragePower         = new Parameter(0, "AVERAGE POWER");
            Variance             = new Parameter(0, "VARIANCE");
            RootMeanSquare       = new Parameter(0, "ROOT MEAN SQUARE");

            Parameters = new List <Parameter>(
                new[]
            {
                AverageValue, AbsoluteAverageValue, AveragePower, Variance,
                RootMeanSquare
            });

            Attributes = new List <object>(
                new object[]
            {
                Amplitude, Period,
                Frequency, Samples,
                StartTime, Duration,
                DutyCycle, Probability
            });
            HistogramAttributes =
                new List <object>(new object[] { HistogramIntervals });

            Points          = new List <Point>();
            HistogramPoints = new List <Point>();


            AttributesBinding.BindAttributesTwoWay(Frequency, Period, new FrequencyPeriodConverter());
            RequiredAttributes = new Required(false, false, false, false, false, false, false, false);

            Continuous.Value = continuous;
            Type             = type;
        }