Entrauschen von Daten

 

Verrauschte Daten in unserem Sinne bedeutet, dass eine Serie von Messwerten mit einer Unsicherheit behaftet ist, die mit einem Fehlerbalken beschrieben werden kann. Man könnte sich mehrere Wege vorstellen wie man derart verrauschte Daten glätten könnte.

Abb.: Beispiel eines Graphen mit verrauschten Daten (aus Numerical Recipes) samt zweier Glättungskurven.

Zum Einen könnte man versucht sein, eine Interpolationskurve zu erzeugen, die durch jeden einzelnen Messpunkt hindurchgeht, z.B. durch Kubische Splines. Da wir jedoch wegen der Fehlerbalken nicht davon ausgehen können, dass unsere Messwerte auch genau sind, erweist sich die Interpolation als nicht geeignet.

Ein anderer, sehr effektvoller Ansatz ist, den Datensatz mit einer Ausgleichskurve anzufitten, z.B. durch Polynomiale Regression. Hierzu benötigt man allerdings ein Modell für die Daten in Form einer Funktion der Art f(x) = ...; dies kann im Beispiel einer quadratischen Regression f(x) = ax² + bx + c sein. Verfügt man jedoch nicht über ein solches theoretisches Modell, so kommt man hier ebenfalls nicht weiter. Frei von Zusatzannahmen wird man die vorliegenden Daten mit einem anderen Verfahren glätten müssen.

Im einfachsten Fall mittelt man die Daten. Für jeden Datenpunkt betrachte man ein Intervall von n Datenpunkten links und rechts des Datenpunktes und führt eine Mittelung über die Werte aus. Hier ist jedoch Vorsicht geboten: In der Nähe eines Extremwertes (lokales Maximum oder Minimum) kommt es zu einer Verschiebung der geglätteten Kurve weg vom Extremwert hin zum Mittelmaß, und zwar umso mehr, je breiter das Intervall der zu mittelnden Werte ist!

Abb.: Die Mittelung von Daten (schwarze Kästchen) in der Nähe eines Extremums über beispielsweise 12 Messpunkte führt zu einer Verschiebung der geglätteten Kurve (blau) nach unten. Die mit dem Auge erwartete Glättungskurve verläuft oberhalb der gemittelten.

Im Buch Numerical Recipes von Press et al (s.u.) wird ein anderer Weg des Entrauschens von Daten beschrieben, der die obenstehende Einschränkung vermeidet. Hierbei wird in einem ersten Schritt eine lineare Ausgleichskurve in die Rohdaten gelegt und anschließend von den Rohdaten abgezogen. Der resultierende Datensatz wird einer Fast Fourier Transformation (FFT) unterzogen und von einem Tiefpassfilter verarbeitet. Um die gewünschte geglättete Kurve zu erhalten wird das Ergebnis rücktransformiert (FFT) und der lineare Anteil wieder addiert. Das Glättverhalten kann über einen Parameter n, der der Anzahl der Messpunkte in einem Intervall links bzw. rechts eines Datenpunktes entspricht und nicht notwendigerweise ganzzahlig ist, gesteuert werden.

Ein weiterer Aspekt betrifft die Behandlung von Datenpunkten an den Rändern des Messbereichs. Wenn z.B. rechts eines Datenpunktes weniger Messpunkte vorliegen als für das Intervall der Breite 2n erforderlich ist, so wird das Intervall auf der linken Seite um den gleichen Betrag erweitert. Das hat zur Folge, dass an den Rändern die Glättung konstante Werte annimmt. Dies ist vielleicht etwas unschön, aber liefert eine bessere Näherung, als wenn die Intervallbreite an den Rändern passend verringert wird, auf dass das Intervall genau hineinpasst und beim letzten Messpunkt die Breite 0 annimmt, denn dies bedeutet, dass der letzte, mit einem Fehler behaftete Wert für genau gehalten wird.

In der ersten Auflage von Numerical Recipes findet sich der Quelltext zu einer Funktion namens smooft(), die genau dieses Glätten bewerkstelligt. Das Buch ist in den inaktuellen Auflagen in Netz frei verfügbar, wobei in der dritten Auflage die Funktion in eine andere namens convlv() aufgegangen ist.

Literatur: Press et al, Numerical Recipes in C/Pascal/Fortran, 1. Auflage, Ch. 13.9: "Smoothing of data"