Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.74 KB | None | 0 0
  1.         /// Realizuje funkcje: x(t) = A * sin(omega + fi), gdzie: omega = 2 * PI * f.        
  2.         /// /// </summary>
  3.         /// <param name="ampl">Amplituda (najwieksze wychylenie).</param>
  4.         /// <param name="frequency">Czestotliwosc (czestosc) probkowania. Wyrazana w [Hz]. Czestotliwosc 1 herca odpowiada wystepowaniu jednego cyklu (zdarzenia) w ciagu 1s.</param>
  5.         /// <param name="period">Okres T. Czas, w ktorym zachodzi jeden cykl drgañ. </param>
  6.         /// <param name="phase"> Faza poczatkowa. </param>
  7.         /// <returns>Zwraca ciag liczbowy. Kazda wartosc ciagu nazywa sie probka.</returns>
  8.         public List<Sample> GenerateSamples(double ampl, double frequency, out SignalData input, double phase = 0)
  9.         {
  10.             List<Sample> samples = new List<Sample>();
  11.  
  12.             //this is unsused, just for the output data
  13.             double period = 1 / frequency;
  14.  
  15.             double pulsation = 2 * Math.PI * frequency;
  16.  
  17.             double deltaTime = GlobalSimulationTimeSeconds / GlobalSamplingRate;
  18.  
  19.             double time = deltaTime;
  20.             for (int sample = 1; sample <= GlobalSamplingRate; sample++)
  21.             {
  22.                 var sampleValue = ampl * Math.Sin(pulsation * time + phase);
  23.                 samples.Add(new Sample(sampleValue, time));
  24.                 time += deltaTime;
  25.             }
  26.  
  27.             input = new SignalData()
  28.             {
  29.                 Frequency = frequency,
  30.                 Pulsation = pulsation,
  31.                 SimulationTime = GlobalSimulationTimeSeconds,
  32.                 SamplingRate = GlobalSamplingRate,
  33.                 Phase = phase,
  34.                 Amplitude = ampl,
  35.                 Period = period
  36.             };
  37.             return samples;
  38.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement