Anwendung aus der Messtechnik: Baseline Fit

In spektrometrischen Anwendungen der Messtechnik hat man oft das Problem, dass die sogenannte Baseline (Untergrund) der Messung unbekannt ist. In der Darstellung unten sehen Sie eine typische Situation:

measurementdataWithoutNoise.png

Für die Interpretation des physikalischen Vorgangs ist man nur am Peak (grün) interessiert. Die Rohsignale entsprechen jedoch der blauen Kurve. Das Baselinesignal (orange) ist die Folge von Hintergrundprozessen oder Eigenschaften des Messgerätes und sollte diskriminiert werden. Die folgende Anleitung zeigt Ihnen, wie das mit Hilfe der Ausgleichsrechnung gelingt.

Beschreibung des Untergrundes (Baseline)

Wir gehen davon aus, dass sich der Untergrund durch ein unbekanntes Polynom 3. Grades beschreiben lässt, welches additiv zum eigentlichen Peak der Resonanz dazu kommt. Damit können wir die Messdaten durch eine lineare Kombination von Funktionsansätzen fitten.

Lorentz-Shape einer Resonaz

Die Systemreaktion wird mit Hilfe der Lorentz-Shape \(l(x^\prime)\) beschrieben:

\[l(x^\prime) = \frac{1}{1+(x^\prime)^2},\quad x^\prime = \frac{x-x_0}{s_0/2}.\]

wobei \(x_0\) die Resonanzfrequenz und \(s_0\) die Breite des Peaks bezeichnen. In vielen Anwendungen ist die Resonanzfreqeunz, also \(x_0\) zum vornherein bekannt, aber nicht der Wert von \(s_0\). Wenn die Breite \(s_0\) aus den Messdaten bestimmt werden muss, wird die Problemstellung nichtlinear.

Deshalb gehen wir hier von einer bekannten Breite \(s_0 = 100\) aus, die Resonanz befinde sich bei \(x_0 = 80.3\cdot 10^3\). Unbekannt ist jedoch die Amplitude des Peaks, d.h. die multiplikative Konstante vor \(l(x^\prime)\).

Rauschenanteil

Im allgemeinen wird die Aufgabe erschwert durch Rauschen im Messsignal, d.h. realistische Daten sehen folgendermassen aus:

measurementdata.png

Sie finden diese Daten im Downloadbereich als „data.txt“. Eingelesen werden diese Werte via:

import numpy as np
np.loadtxt('data.txt')

resp. unter Matlab:

load('data.txt')

Auftrag 2

Aufgabe 1: Separation von Lorentz-Peak und Untergrund

  • Bestimmen Sie die Systemmatrix \(A\) für das lineare Ausgleichsproblem zur Separation des Untergrundes.

  • Berechnen Sie die Lösung des Ausgleichsproblems mit folgenden Varianten:

    • Mit der Normalengleichung via \(A^T A\)

      Bemerkung: Benutzen Sie hier alle gelernten Ansätze (LR, Cholesky, QR)! Sie werden sehen, dass die Matrix so schlecht konditioniert ist, dass nur mit QR eine halbwegs brauchbare Lösung berechnet werden kann!

    • Mit der QR-Zerlegung der Matrix \(A\) direkt

    Bestimmen Sie die Kondition der jeweiligen Matrix und geben Sie einen Kommentar ab, was diese Werte über die erwarte numerische Genauigkeit aussagen.

  • Stellen Sie den Lorentz-Peak als Funktion mit der gefitteten Amplitude graphisch dar, zusammen mit den verrauschten Daten von welchen Sie den Untergrund abziehen.

Aufgabe 2: Verbesserung der Numerik

  • Verbessern Sie die Kondition der beteiligten Matrizen, indem Sie die \(x\)-Achse auf das Intervall \([0,1]\) skalieren.

  • Wiederholen Sie die Berechnungen mit den skalierten, verschobenen x-Werten und dokumentieren Sie die Unterschiede zum unskalierten Fall.