public void Convolute() { if (SelectedSignal1 != null && SelectedSignal1.HasData() && SelectedSignal2 != null && SelectedSignal2.HasData()) { SampledSignal signal = new SampledSignal(); signal.PointsY = Convolution.ComputeSignal(SelectedSignal1.PointsY, SelectedSignal2.PointsY); signal.Name = $"({SelectedSignal1.Name})*({SelectedSignal2.Name})"; SignalCreator.AddSignal(signal); } }
public void ComputeSignalsDifference() { if (SelectedSignal1 != null && SelectedSignal2 != null && SelectedSignal1.HasData() && SelectedSignal2.HasData()) { MSE = SimilarityFunctions.CalculateMSE(SelectedSignal1.PointsY, SelectedSignal2.PointsY); SNR = SimilarityFunctions.CalculateSNR(SelectedSignal1.PointsY, SelectedSignal2.PointsY); PSNR = SimilarityFunctions.CalculatePNSR(SelectedSignal1.PointsY, SelectedSignal2.PointsY); MD = SimilarityFunctions.CalculateMD(SelectedSignal1.PointsY, SelectedSignal2.PointsY); ENOB = SimilarityFunctions.CalculateENOB(SelectedSignal1.PointsY, SelectedSignal2.PointsY); } }
public void ComputeSignals() { if (SelectedSignal1 != null && SelectedSignal2 != null) { if (IsComplex) { SampledSignal signal = new SampledSignal(); List <Complex> points = new List <Complex>(); switch (SelectedOperation.Substring(1, 2)) { case "D1": points = SignalOperations.AddComplexSignals(SelectedSignal1.ComplexPoints, SelectedSignal2.ComplexPoints); break; case "D2": points = SignalOperations.SubtractComplexSignals(SelectedSignal1.ComplexPoints, SelectedSignal2.ComplexPoints); break; case "D3": points = SignalOperations.MultiplyComplexSignals(SelectedSignal1.ComplexPoints, SelectedSignal2.ComplexPoints); break; case "D4": points = SignalOperations.DivideComplexSignals(SelectedSignal1.ComplexPoints, SelectedSignal2.ComplexPoints); break; } signal.ComplexPoints = points; signal.Name = ResultSignalName + " - S [Complex]"; SignalCreator.Signals.Add(signal); SignalCreator.SampledSignals.Add(signal); } else { if (!SelectedSignal2.IsValid(SelectedSignal2)) { MessageBox.Show("Given signals are not valid", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } SampledSignal signal = new SampledSignal(); List <double> pointsY = new List <double>(); switch (SelectedOperation.Substring(1, 2)) { case "D1": pointsY = SignalOperations.AddSignals(SelectedSignal1.PointsY, SelectedSignal2.PointsY); break; case "D2": pointsY = SignalOperations.SubtractSignals(SelectedSignal1.PointsY, SelectedSignal2.PointsY); break; case "D3": pointsY = SignalOperations.MultiplySignals(SelectedSignal1.PointsY, SelectedSignal2.PointsY); break; case "D4": pointsY = SignalOperations.DivideSignals(SelectedSignal1.PointsY, SelectedSignal2.PointsY); break; } signal.PointsY = pointsY; signal.StartTime = SelectedSignal1.StartTime; signal.Frequency = SelectedSignal1.Frequency; signal.CalculateSamplesX(); signal.Name = ResultSignalName + " - S"; SignalCreator.Signals.Add(signal); SignalCreator.SampledSignals.Add(signal); } } }