Lopende mediaan bereken

hallo ,

ik ben bezig met een project voor school. Hierbij krijg ik metingen van een HC-SR04, tot hiertoe geen probleem.

Met deze metingen sturen we dan een transportband aan. Het project werkt dus zoals het moet. Aventoe zit er in deze meting een piekwaarde die onrealistisch hoog is waardoor we schokken krijgen.

We zouden dit graag oplossen met een RunningMedian. Jammer genoeg hebben wij hier niet genoeg ervaring voor. Ik vraag dus om jullie hulp om kort de RunningMedian functie uit te leggen zodat we deze kunnen integreren in ons programma.

Alvast bedankt, Stijn & co.

Deze gelezen - http://playground.arduino.cc/Main/RunningMedian - ?

idee is dat de metingen in een circulaire buffer geplaatst worden zodat je bv altijd de laatste 5 of 13 hebt.
Deze waarden sorteer je (in een 2e array) en dan neem je de middelste waarde daarvan.

Als de buffer een even grootte heeft dan neem je het gemiddelde van de middelste 2 waarden. Dit kan bv nodig zijn bij het initieel vullen van de buffer.

MBT schokken:
hoe langer de piekwaarde run (aantal foute metingen direct na elkaar), hoe groter de buffer. Als het echt incidentele pieken zijn is een buffersize van 5 voldoende, komen ze bv met max 3 tegelijk dan moet je de buffer size minimaal 9 zijn. In formule minimale buffersize = 3 + 2x max runlength.

Ik kan deze library ten stelligste aan bevelen. Ik gebruik hem heel intensief en ben daar heel tevreden mee.

Met vriendelijke groet Jantje

Oke bedankt voor de snelle hulp !