Programmfehler? -- Min-Maxima Suche und zeitlicher Abstand

OP #2609348
Lesenswert?

Hallo,

ich habe ein Problem bei der Ermittlung vom zeitlichen Abstand zweier 
Hoch- und Tiefpunkte in einem Kurvenverlauf.

Ich weiss, dass die Hoch- und Tiefpunkte jeweils maximal 10 
Messzeitpunkte auseinander liegen und habe daher ein Programm 
geschrieben, welches ein Fenster von 10 Messzeitpunkten über die 
Teilmenge meiner Messpunkte hinüberschiebt und Ort und Betrag der 
maximalen und minimalen Punkte aufzeichnet. Die Differenz beider Werte 
wird lokal ermittelt und wenn sie größer ist als die global ermittelten 
Werte, wird stets der Ort von globalem Minimum oder Maximum sowie der 
wert erneuert.
Das Fenster beginnt kurz nach dem Beginn einer einer Datenmenge (200 
Stück, beginn bei 50) und soll 25 Messzeitpunkte weit verschoben werden, 
d.h. der maximale zeitliche Abstand kann 35 Datenpunkte betragen 
(Fenster von 10 Werten und dieses wird 25 werte weit geschoben).

Anschließend wird der Abstand beider Minima und der Abstand beider 
Maxima errechnet. Zeitlich liegen zwei Messpunkte jeweils 22,7 
Millisekunden auseinander. Der Abstand wird also ermittelt und 1 Minute 
= 600000us wird durch dieses Produkt geteilt, so dass eine Frequenz 
errechnet wird.

Das Problem ist, dass der Wert, den ich dabei erhalte auf einen 
zeitlichen Abstand von ~65-70 Datenpunkten schließen lässt und ich beim 
besten Willen nicht sehe, wo der Fehler ist.
Ich meine, der Abstand kann maximal 35 werden, weil das zweite 
Maxima-Minima Paar doch erst dort beginnt ermittelt zu werden, wo das 
erste gefunden wurde.


Mehr Augen sehen mehr, Wo habe ich einen Fehler gemacht?

mfg und schonmal vielen Dank
Angehängte Dateien:
Gast #2609562
Lesenswert?

...und was sagst du zu der Programmlogik?

logisch oder nicht logisch?


nur mal am Rande aus Verzweiflung gefragt: Kann es sein, dass ein 
Mikrocontroller trotz Klammersetzung die Punkt-Vor-Strich Regeln nicht 
beherrscht?
Gast #2609688
Lesenswert?

> ...und was sagst du zu der Programmlogik?
> logisch oder nicht logisch?

Es ist heute abend für mich zu spät so eine komplexe Frage noch 
anzupacken. Lieber den Sonntag noch ruhig ausklingen lassen.

Komplex weil man komplett theoretisch an die Sache rangehen muss, also 
ob die Beschreibung eine gültige Logik enthält, dann ob die korrekt in 
Programmcode umgesetzt wurde.

Der pragmatische Weg mit Testdaten und lauffähigem Programm debuggen, 
scheidet ja mangels Testdaten und lauffähigem Programm aus.

Was beim oberflächlichen Blick auffällt ist, dass du nacheinander auf 
zwei Arrays arbeitest: Pletyrot bei der ersten Teilsuche und 
Pletyinfra bei der zweiten Teilsuche und davon steht nix in der 
Beschreibung. Auch dass die Arrays nicht komplett (also keine PLETYLANGE 
Elemente lang) durchsucht werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren