Olivia


Einleitung

'Olivia', eine relativ neue Betriebsart (2003/2004) für die Amateurfunk-Kommunikation. Olivia basiert auf einer Kombination aus MFSK (Multiple-Frequency- Shift-Keying) und einer auf Walsh-Funktionen basierenden Vorwärtsfehlerkorrektur (Forward Error Correction, FEC).

Olivia wurde von Pawel Jalocha (SP9VRC) nach wochenlanger Programmierarbeit in's Leben gerufen. Ein interaktiver Sender und Empfänger mit einer einfachen Anwenderschnittstelle wurde ursprünglich als LINUX-Version mfsk_trx.tgz geschrieben. Dieses Software gibt es auch als mfsk_trx.exe, eine Variante, die unter CYGWIN auch im Betriebssystem Windows läuft.

In einem geteilten DOS-Fenster für RX und TX werden der ein- und ausgehender Text angezeigt. Neben mfsk_trx.exe besteht alternativ die Möglichkeit, mit den Programmen mfsk_rx.exe und mfsk_tx.exe getrennte Sende- und Empfangsfenster zu betreiben.


Diese Betriebsart wurde im November und Dezember 2004 erstellt. Pawel gab diesem neuen Modus den Namen seiner Tochter „Olivia“. Geplant war ein Programm, das in der Lage sein sollte, einen empfangenen Text zu dekodieren, der noch tiefer als bei MT63im Rauschen liegen kann. Pawel fand, dass diese Version Text erkennt, der noch 22 dB unter dem Rauschpegel liegen kann (weißes Rauschen mit Gauss‘scher Verteilung) das Programm benutzt eine Bandbreite von 125 to 2000 Hz mit 4...128 Tönen. Bei der vorgegebene Standardeinstellung (1000 Hz und 32 Töne) kann eine Empfänger-Verstimmung bis zu +/- 125 Hz ausgeglichen werden.

Da Olivia für LINUX geschrieben wurde, muss die LINUX-‘Emulation‘ CYGWIN installiert sein, und vor Olivia aufgerufen werden. CYGWYN muss allerdings nicht komplett installiert werden, es genügt eine Sparversion, die von allem Balast befreit wurde. Die erste Variante von Olivia, die Mitte Dezember 2004 veröffentlicht wurde, ist sehr einfach zu installieren und läuft auch unter Win98 problemlos (mit Ausnahme der PTT !), während bei den späteren Versionen die Registierung von CYGWIN unter Win98 bzw. ME in Handarbeit mit erheblichen Aufwand durchzuführen ist. Keinerlei Probleme gibt es bei W2000 bzw. WinXP.

Das Programm ist an sich nur als Experimentalversion und noch nicht für Standard-QSO-Betrieb gedacht. Die Bedienung ist daher mehr als spartanisch, erfüllt aber vollkommen ihren Zweck. Es gilt nun in diesem sehr frühen Zustand herauszufinden, welche Parameter für einen bestmöglichen Datentransfer benutzt werden sollen, um schwache und gestörte Signale zu dekodieren. SP9VRC wird nicht nur die beste FEC erstellen, sondern auch passende Filtern gegen QRM - diese Version enthält aber noch keine Filter, sondern nur FEC.

Etwas mehr Komfort bietet ein Zusatzprogramm OliviaAID von Chris Watts VK3DNH, einem kleinen Windows-Fenster, mit dem nicht nur die Olivia- Fenster (RX/TX bzw. TRX) gesteuert werden können, es bietet auch einen Vorschreibpuffer mit der Möglickkeit, Textdateien in diesen einzubinden und ein paar bescheidene Makros aufzurufen. Recht einfach lassen sich hier die Betriebs-Parameter auswählen, unter denen Olivia arbeiten soll. Gerade bei Experimenten ist dies besonders angenehm.

Und was sagt SP9VRC über sein neues Programm:

„Ich meine, dass MT63 und MFSK sehr gut auf der gleichen Frequenz koexistieren können, weil MT63 für MFSK als Breitbandrauschen erscheint und MFSK Breitbandrauschen sehr gut toleriert. MFSK wird andererseits nur einzelne Bits der MT63-Sendung stören, und dies ist wiederum kein Problem für MT63. Deshalb glaube ich, dass sich sogar bei großen Signalstärkenunterschieden MT63 und MFSK einander kaum stören werden. Mit PACTOR-III haben wir die gleiche Situation...“

Das Übertragungssystem 'Olivia'

Die Betriebsart 'Olivia' ist auf zwei Schichten errichtet: die untere, die Modulationsschicht ist eine (fast) klassische Mehrton-Frequenz-Umtastung (MFSK) und die höhere Schicht ist ein Fehler-Korrektur-Kode (FEC), basierend auf einer Walsh- Funktionen

3.1. Die Modulationsschicht: MFSK Im Vorgabemodus immer einer von 32 Töne innerhalb der 1000 Hz Kanal-Bandbreite gesendet, der Abstand der Töne ist somit 1000 Hz/32 = 31,25 Hz. Die Tone sind geformt, um die außerhalb der nominellen Bandbreite ausgesendete Energie zu verringern. Die Form, die angewandt wird, ist im folgenden Diagramm als rote Linie dargestellt:

Die blaue Linie stellt das klassischere Hanning- Fenster dar, das in der ersten Version des Systems benutzt wurde. Die genaue Formformel ist:

+1.0000000000+1.1913785723*cos(x)-0.0793018558*cos(2x)-0.2171442026*cos(3x)-0.0014526076*cos(4x)
wobei sich x im Bereich von – π bis +π bewegt.


Die Koeffizienten stellen den Symbolverlauf im Frequenzbereich dar und wurden mit einem Minimisierungsverfahren berechnet, welches das kleinste Nebensprechen und den kleinsten Frequenzüberlauf suchte. Pawel behält sich das Recht vor, die Form ein bißchen zu ändern, falls er eine bessere Lösung finden sollte. Solch eine Änderung sollte allerdings das Verhalten bzw. die Kompatibilität nicht wesentlich beeinflussen.

Das nachstehende Diagramm zeigt einen 500-Hz-MFSK-Ton (rote Spur), der nach der obigen Formel geformt wurde. Die blaue Spur ist die Einhüllende.


Die Töne werden mit 31,25 Baud bzw. alle 32 Millisekunden gesendet. Die Phase eines Tones bleibt gegenüber dem vorhergehenden nicht erhalten, stattdessen wird eine Zufallsverschiebung von ±90-Grad eingeführt, um zu vermeiden, dass ein reiner, durchgehender Ton ausgesendet wird, wenn ein Symbole mehrmals wiederholt wird. Da die Symbole einen glatten Übergang besitzen, brauchen man die Phase nicht beizubehalten, was normalerweise der Fall wäre, wenn keine (z. B bei einem Rechteck) Glättung erfolgte. Die 5-Bit Symbole werden zu einem Gray-Kode verschlüsselt und im Modulator in Töne umgesetzt.

Der Generator arbeitet mit einer Abtastrate von 8000Hz. Die Töne werden in einem Abstand von 256 Abtastungen in der Zeitachse aufgeteilt und das Formfenster ist 512 Abtastungen lang. Der Demodulator basiert auf einer FFT von 512 Punkten. Der Tonabstand im Frequenzbereich ist 8000 Hz/256 = 31,25 Hz und die Demodulator- FFT hat die Auflösung von 8000 Hz/512 = 15,625 Hz, das ist die Hälfte des Tonabstandes.

Um das System an verschiedene Ausbreitungsbedingungen anzupassen, kann die Anzahl er Töne und die Bandbreite eingestellt und damit die Zeit- und Frequenzparameter proportional geändert werden. Die Anzahl der Tönen kann 2, 4, 8, 16, 32, 64, 128 oder 256 sein. Die Bandbreite kann 125, 250, 500, 1000 oder 2000 Hz sein.

3.2. Die fehlerkorregierende Schicht Die FEC basierend auf einer Walsh-Funktion

Die Modulationsschicht des Olivia-Übertragungssystems sendet jeweils einen von 32 möglichen Tönen (Voreinstellung) aus. Jeder Ton stellt somit ein Symbol dar, das 5 Bit der Information enthält. Für den FEC-Kode bilden 64 Symbole einen Block. Innerhalb jedes Blockes wird ein Bit aus jedem Symbol entnommen, das einen 64-Bit-Vektor als eine Walsh-Funktion kodiert. Jeder 64-Bit-Vektor stellt ein 7-Bit-ASCII-Zeichen dar, jeder Block repräsentiert somit 5 ASCII-Zeichen. Auf diese Weise wird nur ein Bit jedes 64-Bit-Vektors korrupt, wenn ein Symbol (Ton) durch das Rauschen korrumpiert wird, die Übertragungsfehler werden damit einheitlich auf alle Zeichen innerhalb eines Blocks verteilt.

Die zwei Lagen (MFSK+Walsh Funktion) des FEC-Kodes können genau so wie ein zweidimensionaler Kodierer behandelt werden: die erste Dimension wird entlang der Frequenzachse des MFSK selbst gebildet, während die zweite Dimension durch die Walsh-Funktionen entlang der Zeitachse gebildet wird. Diese zweidimensionale Anordnung ging aus der Idee hervor, einen so angeordneten FEC-Kode mit einem iterativen Algorithmus zu lösen, allerdings wurde bis heute kein derartiger Algorithmus eingesetzt.

Die verwürfelte und einfache Bitverzahnung bietet sich an, die erzeugten Symbolmuster zufälliger und mit minimaler Autokorrelation darzustellen: dies vermeidet falsche Blockaden im Empfänger:

Bit-Verzahnung: Die Walsh-Funktion für das erste Zeichen im Block besteht aus dem 1. Bit des 1. Symbols, dem 2. Bit des 2. Symbols und so weiter. Die 2. Walsh-Funktion besteht aus dem 2. Bit des 1. Symbols, dem 3. Bit des 2. Symbols und so weiter.

Verwürfelung: Die Walsh Funktionen werden mit einer pseudozufälligen Folge 0xE257E6D0291574EC verwürfelt. Die Walsh Funktion für das 1. Zeichen in einem Block ist mit der Verwürfelungssequenz (scrambling sequence) vermischt, die


2. Walsh Funktion ist mit der um 13 Bit rechtsrotierten Folge verwürfelt, das 3. mit der um 26 Bit rotierten Folge, und so weiter.


Dieter, DL2RR, SK.

Siehe auch Olivia MFSK auf der englischen Wikipedia.

Diskussionen

Anhänge