Hallo, ich lese eine Reihe von Werten ein, welche positiv als auch negativ sein können. Das Vorzeichen kann sich auch im Betrieb ändern. Nun kommt es allerdings vor, dass in Situationen in denen definitiv ein positiver Wert kommen müsste, ein oder mehrere negative Werte eingelesen werden. Um diese herauszufiltern speichere ich mir die Werte (falls ungleich 0) in einem FIFO von n (n = ungerade) Werten. Als "Arbeitswert" nehme ich immer den Mittleren. Um nun zu gucken, welches Vorzeichen nun "gültig" ist zähle ich die positiven und die negativen Werte im FIFO. Sind mehr positive als negative und ist der "Arbeitswert" negativ, so interpretiere ich diesen als ungültig und setze ihn 0. In der anderen Richtung genauso. Falls mehr negative als positive Werte im FIFO stehen und der "Arbeitswert" positiv ist, so wird er genullt. Fällt jemanden etwas sinnvolleres/effektiveres/genaueres ein um diesem Problem entgegen zu wirken?
> Fällt jemanden etwas sinnvolleres/effektiveres/genaueres ein um diesem > Problem entgegen zu wirken? Ja, die eigentliche Fehlerursache suchen/finden/beheben. Immer dieses Gefrickel.
>Nun kommt es >allerdings vor, dass in Situationen in denen definitiv ein positiver >Wert kommen müsste, ein oder mehrere negative Werte eingelesen werden. Dann finde heraus WARUM da negative Werte kommen;)
Am einfachsten ohne weitere Prüfung alle Werte auf 0 setzten. Dann kannst du dir auch gleich das Einlesen sparen ;-) Ernsthaft, aus deiner Beschreibung bin ich nicht schlau geworden. Ob du alleine aus der Anzahl der bisher angekommenen positiven und negativen Werte die Gültigleit neu angekommener Werte ableiten kannst, kann dir hier niemand sagen. Problematisch wird dein Vorgehen auf jeden Fall, wenn schon fehlerhafte Werte erkannt und auf 0 gesetzt wurden. Dann stimmt deine vorhandene Vorzeichenanzahl nicht mehr mit dem, was eigentlich sein sollte, überein. Oliver
Tom schrieb: > Ja, die eigentliche Fehlerursache suchen/finden/beheben. holger schrieb: > Dann finde heraus WARUM da negative Werte kommen;) Dazu müsste ich ein Gerät aufbrechen und das Innere analysieren und herausfinden wie genau die Verarbeitung dort stattfindet und gucken ob ich mich dort irgendwo einklinken kann um den Fehler von vorne herein zu umgehen. Mit anderen Worten: Ich habe keinen Einfluss auf die Erzeugung der Werte. Ich muss mit diesen Werten leben. Oliver schrieb: > Ob du alleine aus der Anzahl der bisher angekommenen positiven und > negativen Werte die Gültigleit neu angekommener Werte ableiten kannst, > kann dir hier niemand sagen. Das sehe ich auch so. Allerdings habe ich keinen Einfluss auf die Erzeugung dieser Werte. Ich muss lediglich mit ihnen weiter arbeiten. Oliver schrieb: > Problematisch wird dein Vorgehen auf jeden Fall, wenn schon fehlerhafte > Werte erkannt und auf 0 gesetzt wurden. Dann stimmt deine vorhandene > Vorzeichenanzahl nicht mehr mit dem, was eigentlich sein sollte, > überein. Hab vergessen zu erwähnen, dass ich den genullten Wert nicht wieder ins FIFO schreibe, sondern nur mit diesem weiter arbeite. Die Anzahl der Vorzeichen wird daher nicht beeinflusst.
Oliver schrieb: >> Ob du alleine aus der Anzahl der bisher angekommenen positiven und >> negativen Werte die Gültigleit neu angekommener Werte ableiten kannst, >> kann dir hier niemand sagen. > > Das sehe ich auch so. Allerdings habe ich keinen Einfluss auf die > Erzeugung dieser Werte. Ich muss lediglich mit ihnen weiter arbeiten. In diesem Fall spar dir die ganze Einleserei, nimm einen Zufallsgenerator, und erzeug dir die Werte selber. Alles andere ist sinnlos. Oliver
Oliver schrieb: > In diesem Fall spar dir die ganze Einleserei, nimm einen > Zufallsgenerator, und erzeug dir die Werte selber. Alles andere ist > sinnlos. So schlimm ist das mit den falschen Werten nun auch wieder nicht. Zu einem großen teil kann ich ziemlich gut mit den Werten arbeiten.
Na ja, was erwartest du? Wie sehen die Werte aus? Gibt es irgendwelche Zusammenhänge? Ändern sich die Werte normalerweise nur langsam? Vielleicht wäre es einfacher, wenn du erst mal erzählst, was das für Werte sind und wie so ein Datensatz typischerweise aussieht. Aber Fehlerbehebung ist hinten nach schwer. Information die weg ist, ist weg. Da kann man rechnen so viel man will. Da helfen dann nur noch Heuristiken wie: Temperaturen ändern sich nicht sprunghaft innerhalb 1/10 Sekunde, eine Temperatur die um mehr als 10 Grad vom Wert davor und danach abweicht ist unglaubwürdig und wird durch den Mittelwert der beiden Nachbarwerte ersetzt, etc. Aber sowas muss man immer an die tatsächliche konkrete Aufgabenstellung anpassen.
Das ich zu große Sprünge abfange ist klar. Wenn ich Werte bekomme wie 1 1 1 2 3 1 2 -1 -2 -1 -1 1 2 1 3 3 1 2 1 -60 -128 -128 -40 1 1 2 ... Ich weiss das die negativen Werte falsch sind. Beim zweiten Auftreten der negativen Werte ist das ja einfach zu erkennen, da der Sprung sehr groß ist und ein solch großer Sprung nicht zulässig ist. Beim ersten Auftreten der negativen Werte ist aber kein so großer Sprung vorhanden. Es wäre theoretisch (aber nicht in der aktuellen Messung) möglich, dass ein solcher Sprung von 1 auf -2 vorkommt.
Hallo! Bei Vorzeichenproblemen würde ich immer stutzig werden. Da ich die Zahlenreihe und auch den Ursprung nicht kennne, kann ich nur raten. Kann es sein daß hier ein Typ-Problem vorliegt? Sollten die Zahlen unsigned sein (also z.B. 0...255) und Du interpretierst sie als signed (-128...0...127)?
Route_66 schrieb: > Sollten die Zahlen unsigned sein (also z.B. 0...255) und Du > interpretierst sie als signed (-128...0...127)? 8-Bit Zweierkomplement bekomme ich.
Matthias schrieb: > Das ich zu große Sprünge abfange ist klar. Wenn ich Werte bekomme wie > > 1 1 1 2 3 1 2 -1 -2 -1 -1 1 2 1 3 3 1 2 1 -60 -128 -128 -40 1 1 2 ... > > Ich weiss das die negativen Werte falsch sind. Woher weißt du das? > Es wäre theoretisch (aber nicht in der aktuellen Messung) möglich, dass > ein solcher Sprung von 1 auf -2 vorkommt. Warum ist das in der aktuellen Messung nicht möglich? Mit solchen Fragen musst du anfangen. Warum ist etwas so? Wieso weiß ich etwas? Woher nehme ich das Wissen? Dann kann man darüber nachdenken, diese Erkentnisse in Code zu giessen. Die Antwort "Ich weiß es einfach" gilt allerdings nicht. Da muss sofort die Gegenfrage kommen: Hellseherei, Eingebung oder gibt es dafür einen rationalen Grund?
42 Ganz spontan fallen mir da ein paar Fragen ein: Was sind das für Messwerte? Wo kommen die her? Was repräsentieren die? Woran kann man fehlerhafte Werte erkennen? Kann man überhaupt fehlerhafte Werte erkennen? Wie lässt sich die Erkennung fehlerhafter Werte in Regeln abbilden? Wodurch werden die Fehler hervorgerufen? Messfehler? Übertragungsfehler? Rechenfehler? Was hätten fehlerhafte Werte für eine Auswirkung auf das Ergebnis, was du ermittelst? Was haben fehlende Werte für eine Auswirkung auf das Ergebnis, was du ermittelst? Was machst du überhaupt mit den Daten? Was macht dein System überhaupt? Was ist das Ziel der ganzen Übung? Ist es nachts kälter als draussen? Woher soll irgend jemand in der großen weiten Welt ohne jegliche weitere Informationen diese und noch viel mehr Fragen beantworten können, wenn du, der du alles Informationen vorliegen hast, er schon nicht kannst? Oliver
Ja, ja. Hat die Zeitmaschine erfunden, aber der blöde Klopapierhalter tuts nicht. :-)
Es sind Positionsveränderungen. Wenn ich mich nur in positiver Richtung bewege, dann ist eine negative Positionsveränderung falsch.
Hi >Es sind Positionsveränderungen. Wenn ich mich nur in positiver Richtung >bewege, dann ist eine negative Positionsveränderung falsch. Hoffentlich nicht von einem GPS. MfG Spess
Das nennt man dan wohl rauschen. wo das rauschen entsteht ist egal, wenns mal auf dem signal ist, muss mann damit leben. filtern ist der richtige ansatz. allerdings sind die wertebereiche nicht so toll, wenns um null herum rauscht ... was willst du denn erreichen? nur eine signalisation ob vorwärts oder rückwerts bewegt wird, oder mit dem signal sogar einen regler bauen ??? schau dir mal folgenden themen an im netz: - fir-filter - quantisieren gruss Claudio
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.