Fahradar | Embedded-Systems | Busch, Kiriakou, Koscheck, Müssig, Zissis
void generate_waveform(float x[2], float y, float speed, waveform_t *waveform_out);
Abhängikeit der Eingabeparameter:
- Boundingbox [m]
x
→ Amplitudenfaktor jeweiliger Seite:
x[0]
: Linke Grenze
x[1]
: Rechte Grenze
- Abstand [m]
y
→ Amplitude, Anzahl der Sample (20 - 40)
- Geschwindigkeit [km/h]
speed
→ Steigung
Stauchen und Strecken der Sigmoid Funktion:
float speed_norm = (speed_clamped - 1.0f) / (60.0f - 1.0f);
float k = 2.0f * powf(10.0f, speed_norm * 2.0f);
for (int i = 0; i < sample_count; ++i) {
float time = (float)i / (sample_count - 1);
float slope = 1.0f / (1.0f + expf(-k * (time - 0.5f)));
float left = left_factor * slope;
float right = right_factor * slope;
...
}