public override SamplePoint[] Generate(double samplingRate, ulong samples)
        {
            double samplingPeriod = 1.0/samplingRate;
            double period = 1.0/this.Frequency;
            SamplePoint[] samplePoints = new SamplePoint[samples];
            for (ulong sampleIndex = 0; sampleIndex < samples; sampleIndex++)
            {
                double scaledValue = this.Amplitude*Math.Sin(2*Math.PI*(1.0/period*samplingPeriod)*sampleIndex);
                samplePoints[sampleIndex] = new SamplePoint(DateTime.Now.ToBinary(), scaledValue);
            }

            return samplePoints;
        }
 public SignalVector(ISignal signal, SamplePoint[] samplePoints)
 {
     this.signal = signal;
     this.samplePoints = samplePoints;
 }
 public SignalVector(ISignal signal, SamplePoint[] samplePoints, INoise noise)
     : this(signal, samplePoints)
 {
     this.noise = noise;
 }
 // ---------------------
 public SamplePoint[] AddNoise(SamplePoint[] signalVector, INoise noise)
 {
     throw new NotImplementedException();
 }