Beispiel #1
0
        public SignalGenerator(SignalType Type, float frequency, float phase = 0,
                               float SampleRate = -1, float amplitude = 1, int length = -1)
        {
            if (SampleRate == -1)
            {
                SampleRate = 20 * frequency;
            }
            if (length == -1)
            {
                length = (int)SampleRate;
            }
            BaseSignalGenerator bs = new BaseSignalGenerator(Type);

            this.SamplingRate = SampleRate;
            bs.Amplitude      = amplitude;
            bs.Frequency      = frequency;
            bs.Phase          = phase;
            Samples           = new double[length];
            float t   = 0;
            float tmp = 1 / SampleRate;

            for (int i = 0; i < length; i++)
            {
                Samples[i] = bs.GetValue(t);
                t         += tmp;
            }
            this.Frequency = frequency;
            this.Amplitude = amplitude;
            this.Phase     = phase;
        }
Beispiel #2
0
 public Square(float frequency, float phase = 0, float SampleRate = - 1, float amplitude = 1, int length = -1)
 {
     if (SampleRate == -1) SampleRate = 20 * frequency;
     if (length == -1) length = (int)SampleRate;
     this.SamplingRate = SampleRate;
     BaseSignalGenerator s = new BaseSignalGenerator(SignalType.Square);
     Samples = new double[length];
     s.Frequency = frequency;
     s.Amplitude = amplitude;
     s.Phase = phase;
     float t = 0;
     float tmp = 1 / SampleRate;
     for (int i = 0 ; i < length ; i++)
     {
         Samples[i] = s.GetValue(t);
         t += tmp;
     }
 }
Beispiel #3
0
 public static Signal BFSK_Modulate(BinaryData baseband, float f1, float f2)
 {
     Signal modFSK = new Signal();
     float tmp = 1 / baseband.SamplingRate; //(30 * Math.Max(f1,f2));
     float t = 0;
     BaseSignalGenerator s = new BaseSignalGenerator(    SignalType.Sine);
     modFSK.Samples = new double[baseband.Samples.Length];
     modFSK.SamplingRate = baseband.SamplingRate;
     for (int i = 0 ; i < baseband.Samples.Length ; i++)
     {
         if (baseband.Samples[i] == 1)
         {
             s.Frequency = f1;
         }
         else
         {
             s.Frequency = f2;
         }
         modFSK.Samples[i] = s.GetValue(t);
         t += tmp;
     }
     return modFSK;
 }
 public void Synchronize(BaseSignalGenerator instance)
 {
     startTime = instance.startTime;
     ticksPerSecond = instance.ticksPerSecond;
 }
Beispiel #5
0
 public void Synchronize(BaseSignalGenerator instance)
 {
     startTime      = instance.startTime;
     ticksPerSecond = instance.ticksPerSecond;
 }