sinusoidal method
Generates a sinusoidal pattern.
Implementation
List<TimeSeriesPoint> sinusoidal({
required DateTime start,
required DateTime end,
required Duration interval,
double amplitude = 10,
double frequency = 1,
double phase = 0,
double offset = 50,
double noise = 0,
}) {
final points = <TimeSeriesPoint>[];
var current = start;
int step = 0;
while (!current.isAfter(end)) {
final t = step * 2 * math.pi * frequency / 100;
final value =
offset + amplitude * math.sin(t + phase) + _random.normal(0, noise);
points.add(TimeSeriesPoint(timestamp: current, value: value));
current = current.add(interval);
step++;
}
return points;
}