Durchhangeln durch Spektren

Mehrere Spektren verrechnet man miteinander, indem man zuerst zwei Spektren miteinander verrechnet. Weitere Spektren werden anschließend nacheinander dazurechnet. Das Vorgehen ist beschrieben wenn man mit zwei Spektren klar kommt.

Zwei Spektren miteinander zu verrechnen bedeutet ihre Funktionswerte Punkt für Punkt zu durchzugehen. Das Ergebnis ist wieder ein Spektrum, welches sich jedoch in den Werten und dem Gültigkeitsbereich von den Ausgangsspektren unterscheiden kann. Liegen die Spektralwerte als Stützstellen in bereits sortierten Listen vor, lassen sie sich systematisch mit zwei Variablen $i$ und $j$ durchlaufen. Zugehörige Abszissenwerte werden mit $x_{i}$ und $x_{j}$ und zugehörige Ordinatenwerte mit $y_{i}$ und $y_{j}$ bezeichnet. Abbildung [*] zeigt den prinzipiellen Ablauf und die Probleme beim Durchlauf:

Figure: Durchlauf
\includegraphics[width=0.90\textwidth]{HTMLBilder/SpektrenVerarbeitungDurchlaufDurchZwei.pdf}
  1. $x_{i}$ und $x_{j}$ liegen nicht immer an gleichen Stellen. Somit lassen sich die $y$-Werte nicht direkt zuordnen. Man kann versuchen direkt verwertbare Werte zu interpolieren (hier die schwarzen Punkte).
  2. Spektrum $i$ fängt erst an, wo Spektrum $j$ bereits Werte angenommen hat. Das hat Auswirkungen auf den Ergebnisbereich. Ebenso verhält es sich damit, dass die Stelle $x_{j+3}$ über den Bereich der $i$-Werte ragt.
Durch Interpolation auf die schwarzen Werte erhält jede Stützstelle eine Partnerstelle an gleicher $x$-Position um eine Verknüpfung durchzuführen.

Ein Algorithmus muß beide Spektren abhängig vom lokalen Umfeld durchlaufen um die richtigen Stützstellen $i$ , $i+1$, $j$ und $j+1$ zur Interpolation parat zu haben und zu entscheiden, wie wir zum nächsten Schritt weiterrücken, indem wir entweder $i$ oder $j$ oder Beide hochzählen. Dabei dürfen $i$ und $j$ Werte zwischen dem Anfang 0 und ihrem Maximalwert minus 1 annehmen.

$\displaystyle 0 \leq i \leq i_{\text{max}}-1 \qquad 0 \leq j \leq j_{\text{max}}-1
$

Die letzte Ergebnisstützstelle müssen wir separat berechnen, da die letzte Stützstelle $i_{\text{max}}$ oder $j_{\text{max}}$ keine nächste Stelle mehr hat.

Abbildung [*] zeigt die Situation, bei der die aktuellen Zählerpositionen für eine Interpolation zu weit auseinanderliegen.

Figure: Kein Überlapp in lokalem Umfeld wenn $x_{i+1}\leq x_{j}$ oder $x_{j+1}\leq x_{i}$.
\includegraphics[width=0.90\textwidth]{HTMLBilder/Heranruecken.pdf}
Durch sukzessives Erhöhung von $i$ bzw. $j$ können wir den interpolationsfähigen Bereich heranrücken. Liegt $x_{i+1}\leq x_{j}$, dann erhöhen wir $i$ um Eins. Liegt $x_{j+1}\leq x_{i}$, dann erhöhen wir $j$. Das geschieht so lange, bis wir einen Überlapp der beiden lokalen Bereiche erreicht haben. Wir erfassen alle Szenarien separiert nach den Randbedingungen In Abbildung [*] unterscheiden wir weiter nach der relativen Lage von $x_{j+1}$. Sie bestimmt den Weg zum nachfolgenden Schritt.
Figure: $x_{j}<x_{i}<x_{j+1}$
\includegraphics[width=0.90\textwidth]{HTMLBilder/XigroesserXj.pdf}
Wir können jetzt den Wert an der Stelle $i$ mit dem interpolierten Wert zwischen den Stellen $j$ und $j+1$ des zweiten Spektrums verrechnen. Die gestrichelte rote Linie mit dem dicken roten Punkt für den interpolierten Wert steht wie in Abbildung [*] für diesen Vorgang. Die gestrichelte rote Linie mit dem kleinen roten Punkt zeigt jeweils die Vorschau auf den nächsten Schritt.
Figure: $x_{i}=x_{j}< \{x_{i+1} \; ; \; x_{j+1}\}$
\includegraphics[width=0.90\textwidth]{HTMLBilder/XigleichXj.pdf}
Im Szenario von Abbildung [*] können wir den Wert an der Stelle $i$ direkt mit dem Wert an Stelle $j$ des zweiten Spektrums verrechnen. Die gestrichelte rote Linie mit dem dicken roten Punkt steht für diesen Vorgang. Die gestrichelte rote Linie mit dem kleinen roten Punkt zeigt die Vorschau auf den nächsten Schritt.
Figure: $x_{i}<x_{j}<x_{i+1}$
\includegraphics[width=0.90\textwidth]{HTMLBilder/XikleinerXj.pdf}
Im Szenario von Abbildung [*] können wir den Wert an der Stelle $i$ mit dem interpolierten Wert zwischen den Stellen $j$ und $j+1$ des zweiten Spektrums verrechnen. Die gestrichelte rote Linie mit dem dicken roten Punkt für den interpolierten Wert steht wie in Abbildung [*] für diesen Vorgang. Die gestrichelte rote Linie mit dem kleinen roten Punkt zeigt die Vorschau auf den nächsten Schritt. Haben wir uns durch Erhöhung von $i$ und $j$ immer weiter durch die Ausgangsspektren gearbeitet, kommen wir irgendwann an den Endpunkt.

Wir müssen den letzten Punkt von der rückwärtigen Seite interpolieren. Die rückwärtige Seite $x_{i-1}$ oder $x_{j-1}$ gibt es natürlich nur, wenn $i$ oder $j$ bereits einmal hochgezählt wurden, also größer Null sind. Das ist nicht immer der Fall, beispielsweise wenn ein Spektrum mit 2 Stützstellen alle Stützstellen des anderen Spektrums umschließt. In den Fällen, bei denen $i$ oder $j$ Null sind, können wir jedoch immer getrost um Eins hochzählen, denn zwei Stützstellen gibt es immer. Sonst ist es kein Bereich und es gibt kein Integral.

Für den Fall dass zuerst $i$ den Endpunkt erreicht hat muss noch $j$ bis zum Endpunkt hochgezählt werden. Für den Fall dass zuerst $j$ den Endpunkt erreicht hat muss noch $i$ bis zum Endpunkt hochgezählt werden. Abbildung [*] zeigt den Vorgang als Ablaufdiagramm, aus dem man einen Algorithmus entwickeln kann. Wie üblich sind Bedingungen als Rauten und Aktionen als Rechtecke dargestellt. Eventuelle Verrechnungsaktionen sind eingekreist Numeriert. Sie können weitere Fallunterscheidungen beinhalten.

Figure: Ablauf beim Druchhangeln durch zwei Spektren
\includegraphics[width=0.70\textwidth]{HTMLBilder/ABLAUF.pdf}