Anwendung der Datenauswertung
Verhalten beim Originalprogramm
Der bisherig angewandte Algorithmus zur Bitbestimmung erweist sich als unpassend unter Nutzung der neuen LED. Grund ist der geringe Unterschied zwischen ihrem Minimal- und Durchschnittswert. Ihre wünschenswerten Eigenschaften bleiben entgegen den Annahmen des vorherigen Kapitels jedoch vollständig erhalten. Unabhängig von der Leuchtdauer vor einem jeweiligen Bitwechsel fällt die Helligkeit nach einer Periode auf denselben festen Wert, wie in den Messungen, mit Max = 2.15 * Min. Für jede weitere Periode, in der die LED ausgeschaltet bleibt, fällt der Wert weiterhin schlagartig. Diese Eigenschaft ging aus der Datenerfassung zwar nicht hervor, ist jedoch nicht nachteilig. Des Weiteren wechselt der Helligkeitswert von jedem beliebigen Minimalwert auf das feste Maximum von 945SW.
Maßnahmen zur spezifischen Anpassung des Programms
Unter Ausnutzung letzterer Eigenschaft wurde der Durchschnittswert umfunktioniert zu einer festen Schwelle knapp unter dem Maximum. Da die Diode in der Lage ist rapide und konstant zwischen den Extremwerten zu oszillieren, wird nur überprüft, ob der aktuelle Wert über oder unter der Schwelle liegt. Mit dieser Verbesserung verläuft die Übermittlung bei Tmax mit einer Fehlerquote von null Prozent.
In einer Art zweiten Phase der Anpassung des Programmcodes wurde ein fehlerkorrigierender Algorithmus entwickelt, welcher die angestrebte Periodendauer Tmin anwendbar macht. Die temporären Konsolenausgaben zeigen das Vorgehen, nach dem jede Folge von Nullen durch ihre Übertragungsdauer überprüft wird.
Unter Ausnutzung der schnellen Oszillation der roten TC LED korrigiert der neue Algorithmus jeweilige Bits mit Wert null, die durch Messverschiebungen fälschlicherweise mit Wert eins interpretiert werden. Dem konkreten Anwendungsfall entsprechend, ermittelt und kennzeichnet das Programm die Steigung des Graphen. Somit kann die Fallzeit vor jedem Bitwechsel von Nullen zu Einsen bestimmt werden. Die Länge des Zeitraums gibt Aufschluss darüber, wie viele Bits mit einem Wert von null darin übertragen werden müssten. Die theoretische Anzahl wird bei jedem interpretierten Bit des Wertes eins abgeglichen. Sind sie nicht gleich bedeutet das eine verspätete Messung des letzten Bits mit Wert null, womit der Bitfehler korrigierbar ist. Auch hier ist der Algorithmus nur auf den vorliegenden Anwendungsfall, d. h. das Verhalten bei einer Röhrenlänge von einem Meter und der roten TC LED, optimiert.
Kurzübersicht: Anpassung des alten Arduino-Programms
- geringer Unterschied zwischen Max und Min, weshalb Schwelle zur Bitbestimmung zu festem Wert knapp unter 945SW umfunktioniert
- Steigung des Graphen gibt Aufschluss über Zeit zwischen Bitwechseln
- Länge der Fallzeit (von Bitwert 1 zu 0) gibt an wie viele 0-Bits übertragen werden müssten
- Abgleichung der tatsächlichen 0-Bits mit theoretischer Anzahl in Fallzeit erlaubt Bitfehler zu berichtigen (grüne Punkte)
Weitere Graphiken aus Datensätzen der Arduino Standard LED:
Endresultate
Systematisches Verringern der Periodendauer ergibt, dass somit Übertragungen bei Tmin fehlerfrei funktionieren und bis zu einer optimierten Periodendauer Topt = 65 reduzierbar sind.
Die Optimierung der Datenübermittlungsrate des LWL-Modells war erfolgreich. Das festgelegte Verfahren, in dem zwei aufeinander folgende Bitwechsel zusammen mit verschiedenen Leuchtdauern simuliert wurden, bestätigte die Annahme, dass Minima abhängig von vorherigen Leuchtdauern sind. Über kürzere Zeiträume der Dunkelheit erhöhen sich die Minima, während sich die Maxima bei längeren Leuchtdauern vergrößern. Diese Beobachtung erklärt das inkonsistente Verhalten vieler Leuchtdioden, das die Nachrichtenübermittlungen bei Periodendauern T < Tmax unmöglich machen. Glücklicherweise weist die rote TC LED unabhängig von Leuchtdauer und Periodenlänge konstante Lichtwerte zusammen mit einer extrem schnellen Oszillation auf. Obwohl die Programmumgebung die Dateninterpretation im Anwendungsfall mit Tmin unrealistisch machte, konnten die Merkmale der LED aus der Datenauswertung zur Entwicklung eines fehlerkorrigierenden Algorithmus ausgenutzt werden. Der Code wurde an die Leuchtdiode angepasst, womit ein BER < 1,5% gewährleistet ist. Schließlich konnte die Periodendauer unter Anwendung der Fehlerkorrektur über Tmin bis hin zu Topt = 65ms reduziert werden. Dies entspricht einer enormen Verbesserung von 48 Prozent, statt der zu Beginn angestrebten 36 Prozent. Die finale Frequenz beträgt bemerkenswerte 15,4 Bits/s.