using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Signal_Generator { class SinusoidalSignal : AnalogSignalMethods, IAnalogSignal { public string typeToString { get { return "SIN сигнал"; } } public new string paramsToString { get { return paramsToString(paramsCollection); } } public Collection paramsCollection { get; set; } public SinusoidalSignal(double ampl, double freq, double phase = 0) { paramsCollection = new Collection(); paramsCollection.Add(new Parameter("Амплитуда", ampl)); paramsCollection.Add(new Parameter("Частота", freq)); paramsCollection.Add(new Parameter("Фаза", phase)); } public double currentAmplitude(double t) { var c = paramsCollection.ToArray(); return c[0].value * Math.Sin(2 * Math.PI * c[1].value * t + c[2].value); } } }