Werte mitteln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Ich habe ein Tuple voll mit Messwerten.
Da will ich immer 10 als Durchschnitt zusammengefasst haben. Habe im Moment folgende Lösung am laufen:

Code: Alles auswählen

import numpy as np
mittelwert = 10
gemittelterWert = np.convolve(wert, np.ones(mittelwert)/mittelwert, 'same')

Ist dies korrekt und wenn nein, wie soll ich es umsetzen?
Zuletzt geändert von Lateiner am Donnerstag 29. September 2011, 19:24, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

`np` ist zwar durchaus bekannt als Abkürzung für das `numpy`-Modul, aber ehrlich gesagt finde ich schon, dass Du die Benutzung dieses externen Moduls schon erwähnen hättest können ;-)

Ich kenne mich mit diesen spezifischen numpy-Funktionen nicht aus, aber mir fällt da spontan auf:
- wo findet sich die "10" im Code wieder?
- was ist denn an `mittelwert` gebunden?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

So, habe das schnell ergänzt.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Lateiner hat geschrieben:Da will ich immer 10 als Durchschnitt zusammengefasst haben.
Und das heißt was? Vielleicht ein gleitender Durchschnitt? Falls ja, und "mittelwert" == "Fenstergröße", dann kann man das so machen. Wie es etwas sauberer geht steht hier.
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Hm, leider werde ich aus dieser smoothing-Funktion nicht schlau... funktioniert bei mir nicht...
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Dann sag' uns doch mal
a) konkret, was Du möchtest und
b) wo es klemmt.
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Also, ich habe eine ziemlich große Menge an Messwerten, die von einem etwas ungenauen Sensor aufgenommen wurden. Deshalb schwanken die sehr stark. Da dies aber nur ein Messwert "zur Information" ist, und die hohe genauigkeit eh falsch, kann man den ja stark mitteln, sodass der Wert grob abgeschätzt werden kann und nicht von den wichtigen, anderen Messwerten durch ein "Schneegestöber" an Linien ablenkt.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Na ja, das ist nur bedingt präzise: Wenn es darum geht eine Baseline und das Rauschen der selben zu identifzieren bzw. zu quantifizieren ist die Frage: Was ist über / unter der Baseline (ein Peak zum Beispiel). Wenn Du so einen Peak math. fitten kannst, ist die Frage nach Lage der Baseline erledigt.

I.d.R. jedenfalls ist es keine gute Idee Werte zu "mitteln", um Rauschen loszuwerden, weil so auch leicht Information verloren geht. Besser ist es die Daten entsprechend ihrer Eigenschaften (möglichst verlustfrei) zu filtern. Vor Jahren hatten ich und andere das mal zusammengasst für spektrale Daten.

Was die beste Herangehensweise ist hängt von der Art der Messung, bzw. der Art der Messinformation, ab. Konvolution an sich ist prinzipiell schon eine Möglichkeit. Vielleicht hat der Hersteller des Sensors eine Standardherangehensweise, die man mit Hilfe des Forums umsetzen kann?

Gruß,
Christian
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

:D
Das ist ein Sensor Marke Eigenbau ;)
Soll eigentlich die Rotation messen, da die aber konstant ist, tütet es nichts, wenn da ein wenig gröber gemittelt wird... will nur, dass das auch einigermaßen "handwerklich korrekt" abgeht...
Antworten