mikrocontroller.net

Forum: PC-Programmierung Messwärte glätten und dann unzapplig anschauen


Autor: Messwertglättung (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Hi, ich abe einen Datensatz mit Messwerten, die hin- und herzappeln und 
dadurch das ganze Graphenschaubild ziemlich unruhig aussieht. Dabei sind 
die Werte alle immer um eine Art Mittelpunkt.

Wie kann man die Werte so verarbeiten, dass man das ganze glättet? Gibt 
es da einen mathematischen Trick oder ähnliches?

Autor: Horst (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Mittelwert bilden aka gleitendes Mittelwertfilter?

Autor: Messwertglättung (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
ist denn das enigermaßen genau mit dem Mittelwertfilter? Wie geht das 
genau? Ich habe eine Datei mit den Messwwerten, die geglättet werden 
müssen. Aber in Excel kann ich die nicht einfügen, weil die Datenmenge 
zu groß ist.

Autor: Draco (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ja willst du dir den Mittelwert in Excel bilden oder nicht? Oder was 
bildet dir dein "Graphenschaubild" ab?

Autor: Horst (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Messwertglättung schrieb:
> ist denn das enigermaßen genau mit dem Mittelwertfilter?

Was ist denn das für eine blöde Frage? Ja, ein Mittelwertfilter 
berechnet genau den Mittelwert. Wer hätte das gedacht. Die Frage ist 
doch eher, was du für Daten hast und ob das dazu passt.

Und wenn Excel nicht geht, dann nimm eine Programmiersprache deiner 
Wahl. Einfach geht es zB mit Python oder Octave.

Autor: Johannes T. (johannes_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du unbedingt mit Excel arbeiten willst, dann teile deine Datenmenge 
halt in mehrere kleine Dateien auf.
Wenn das auch nicht praktikabel ist, musst du eine Programmiersprache 
hernehmen. Kannst du eine?

... Horst war schneller ...

: Bearbeitet durch User
Autor: Thomas U. (thomasu)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Wenn Excel nicht reicht, dann wird es eng. Da gehem ja inzwischen 
Datenblätter in der Größe eines Gigabytes.

Autor: Nop (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Unter Umständen wäre auch statt eines gleitenden Mittelwertes ein 
gleitender Median möglich. Nämlich dann, wenn Du Ausreißer (Spikes) 
weghaben willst.

Ein gleitender Mittelwert summiert die letzten N Werte auf und teilt sie 
durch N. Implementieren tut man das natürlich nicht so direkt, sondern 
man zieht vom aktuellen gleitenden Mittelwert den durch N geteilten 
ältesten Wert ab und addiert den durch N geteilten neuesten Wert drauf. 
Allerdings geht dann jeder Teilwert immer noch linear in den Mittelwert 
ein.

Der Effekt: Du hast eine Kneipe mit 99 Habenichtsen, und auf einmal 
verirrt sich ein Milliardär in diese Kneipe. Der gleitende Mittelwert 
ergibt dann, daß die Kneipe von Multimillionären besucht wird.

Der Median gibt Dir stattdessen den Wert, unterhalb/oberhalb dessen 50% 
der Werte liegen. Es ist dabei egal, wie WEIT einzelne Ausreißer gehen. 
Der Nachteil ist, daß man dann seine letzten N Werte sortieren muß, für 
embedded empfehle ich dabei Shellsort oder Heapsort.

In der besagten Kneipe wäre der gleitende Median nun das wahrscheinlich 
auch erwartete Ergebnis, daß der Mediangast ein Habenichts ist.

Fazit: Nimm ein Mittelwertfilter, um Rauschen wegzukriegen, und einen 
Medianfilter, um Spikes zu eliminieren.

Autor: T.roll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Messwertglättung schrieb:
> Aber in Excel kann ich die nicht einfügen, weil die Datenmenge
> zu groß ist.

Daten gehören (oh Wunder) in eine DATENBANK.

Also installier dir MariaDB (mit XAMPP kannst du damit üben) und kipp 
das Zeug da rein. Das hat mit größeren Datenmengen auch keine Probleme 
und du kannst direkt bei der Abfrage soviel rechnen wie du willst.

Johannes T. schrieb:
> Wenn du unbedingt mit Excel arbeiten willst, dann teile deine Datenmenge
> halt in mehrere kleine Dateien auf.

Klingt nach dem typischen Windows-Programmierer. Immer die schlechteste 
Lösung finden. :)

Autor: Moe S. (loetsinn)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wo kommen denn die Daten her? Wenn du die in Excel einfügst, müssen die 
ja zuerst in irgendeiner Form vorliegen. Öffnest du z.B. eine CSV-Datei 
in Excel?
Also: Welche Dateiendung hat dein "Datensatz" aus dem OP?

In Python ist so eine Glättung mit Pandas einfach und flexibel machbar, 
ich habs angehängt. Pandas kann so ziemlich alles einlesen, was es an 
bekannten Datenformaten gibt. R kann das auch, aber damit kenne ich mich 
nicht aus.
Sollte die Quelldatei so groß sein, dass Python hier ins Stocken gerät, 
kann man die Berechnung auch noch in "Chunks" aufteilen. Aber dafür 
müsstest du etwas mehr Infos rauslassen.

Autor: Peter M. (r2d3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beispielbilder für Messwertglättung in R mit ganz banaler 
Durchschnittsbildung:

http://www.thoralt.de/phpbb/viewtopic.php?f=7&t=819

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nop schrieb:
> Der Median gibt Dir stattdessen den Wert, unterhalb/oberhalb dessen 50%
> der Werte liegen. Es ist dabei egal, wie WEIT einzelne Ausreißer gehen.
> Der Nachteil ist, daß man dann seine letzten N Werte sortieren muß, für
> embedded empfehle ich dabei Shellsort oder Heapsort.

Der Nachteil ist vor allem, dass der Median mehr rauscht als der 
Mittelwert bei gleicher Reaktionszeit. Wenn es keinen guten Grund gibt 
den Median zu nehmen, ist der Mittelwert die bessere Wahl.

Autor: Thomas U. (thomasu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für diese rauschigen Werte braucht es aber ein etwas subtileres filter, 
als einfach den Mttelwert meine ich ...

Autor: Sven B. (scummos)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Wenn nicht mehr Information da ist, bringt dir der beste Filter nix ... 
signifikant besser als Mittelwert kann der Filter nur dann sein, wenn 
das Rauschen bestimmte Eigenschaften hat, zum Beispiel bei bestimmten 
Frequenzen besonders stark ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.