Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Realizuje funkcje: x(t) = A * sin(omega + fi), gdzie: omega = 2 * PI * f.
- /// /// </summary>
- /// <param name="ampl">Amplituda (najwieksze wychylenie).</param>
- /// <param name="frequency">Czestotliwosc (czestosc) probkowania. Wyrazana w [Hz]. Czestotliwosc 1 herca odpowiada wystepowaniu jednego cyklu (zdarzenia) w ciagu 1s.</param>
- /// <param name="period">Okres T. Czas, w ktorym zachodzi jeden cykl drgañ. </param>
- /// <param name="phase"> Faza poczatkowa. </param>
- /// <returns>Zwraca ciag liczbowy. Kazda wartosc ciagu nazywa sie probka.</returns>
- public List<Sample> GenerateSamples(double ampl, double frequency, out SignalData input, double phase = 0)
- {
- List<Sample> samples = new List<Sample>();
- //this is unsused, just for the output data
- double period = 1 / frequency;
- double pulsation = 2 * Math.PI * frequency;
- double deltaTime = GlobalSimulationTimeSeconds / GlobalSamplingRate;
- double time = deltaTime;
- for (int sample = 1; sample <= GlobalSamplingRate; sample++)
- {
- var sampleValue = ampl * Math.Sin(pulsation * time + phase);
- samples.Add(new Sample(sampleValue, time));
- time += deltaTime;
- }
- input = new SignalData()
- {
- Frequency = frequency,
- Pulsation = pulsation,
- SimulationTime = GlobalSimulationTimeSeconds,
- SamplingRate = GlobalSamplingRate,
- Phase = phase,
- Amplitude = ampl,
- Period = period
- };
- return samples;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement