fablabcb / CitRad-SensorUnit

Citizen Science Traffic Radar
GNU General Public License v3.0
7 stars 1 forks source link

Gauß Kernel Glättung #13

Closed nFrechen closed 1 month ago

nFrechen commented 2 months ago

Für die Auto-Trigger-Berechnung brauche ich eine Glättung die zeitlich symmetrisch ist, also genauso viel Werte aus der Vergangenheit wie aus der Zukunft verrechnet. D.h man müsste n Werte als Array vorhalten und die Berechnung erst machen wenn n Werte aufgezeichnet wurden. Das Ergebnis kann man dann erst speichern wenn genug Werte aufgelaufen sind mit dem Zeitstempel um (n-1)/2 versetzt. Von daher müsste man das eventuell in eine zweite csv-Datei speichern oder in der schon existierenden CSV-Datei kenntlich machen dass der Wert um (n-1)/2 zeitlich verschoben ist.

$$w(i)=e^{-\frac{1}{2} \left ( \frac{i-(n-1)/2}{\sigma (n-1)/2} \right)^{2}}$$

mit $\sigma = 1/4$. $i$ ist der index im Fenster.

n konfigurierbar. Im Moment rechne ich mit n=31. Nur ungerades n verwenden.

Das Fenster müsste man beim booten vorberechnen können und dann als Array vorhalten.

Wir hatten darüber diskutiert wie man das ganze mit einem Ringspeicher umsetzen kann.

Ergebnis als car_trigger_signal benennen. Eingabewert n als car_trigger_signal_smoothing_factor konfigurierbar machen.

nFrechen commented 2 months ago

Noch besser wäre das Hann-Fenster

$$ w(i)={\frac {1}{2}}\left[1-\cos \left({\frac {2\pi i}{n-1}}\right)\right]$$

thorondev commented 1 month ago

Config Value: "carTriggerSignalSmoothingFactor"

thorondev commented 1 month ago

csv headers for new outputs (car_trigger_signal and dynamic_noise_level) now contain the N as a suffix.