Graprs

Ich bin ja der Ansicht, dass es sich lohnt sich auch mit Themen zu beschäftigen die nicht im eigentlichen Sinn neu sind. Klassisches Packet Radio (PR) ist so ein Thema. Die Hochblüte von PR war in den 90igern und damals musste man vieles mit purer Hardware realisieren was heute in Software gehen sollte. Speziell interessiert mich dabei Datenübertragung mit 9600Bd über FM Kanäle im 2m und 70cm Band. Ich werde in diesem Posting zweigen wie man mit einer Soundkarte und einem GnuRadio Script APRS Pakete mit 9600Bd empfangen kann.

Die Übertragung mit 1200Bd ist recht weit verbreitet, auch wenn es sich normalerweise um eine Spezialform von PR handelt, nämlich APRS. Das Signal wird über einen schmalbandingen Tonkanal übertragen indem zwei Töne mit 1200 und 2200Hz als Subträger für ein Frequenssprungverfahren (Frequency Shift Keying FSK) verwendet werden. Das so erzeugte Signal wird einfach als Audio Signal übertragen und zum Beispiel anstelle des Mikrofonsignals in den Transceiver eingespeist. Auf der Empfangsseite wird das Signal am Lautsprecherausgang entnommen. Als Tongenerator wird heute einfach die Soundkarte des PC verwendet und ein sogenanntes Softwaremodem macht die Konversion zwischen Bits und Tönen.

Bei echtem FSK würden, wenn wir unseren Hauptträger mit 433MHz wählten die Frequenzen 433001200Hz und 433002200Hz im Spektrum sichtbar. Das passiert aber nur wenn wir an unserem Transceiver SSB Modulation anwählen. Üblicherweise senden wir in diesem Frequenzbereich aber nur frequenzmoduliert, weshalb das Signal im Spektrum komplizierter aussieht und deutlich breiter ist als das mit SSB gesendetete wäre. Macht aber nichts: Wir können unsere zwei Töne auch über FM Modulation senden, funktionieren tut das trotzdem. Das Verfahren hat sogar einen eigenen Namen: AFSK, wobei das A nicht von Amateurfunk kommt, wie man vielleicht denken könnte, sondern für Audio steht.

Nun sind 1200Bd im Vergleich mit den Schmalbandverfahren die auf Kurzwelle zum Einsatz kommen durchaus auf Augenhöhe. Darfs aber auf 70cm ein bisserl mehr sein? Wie sieht es aus wenn man schneller übertragen will? Wo ist hier die Grenze und wodurch wird sie festgelegt?

Die erste Frage die man beantworten muss ist: Welches Rig steht zur Verfügung? Ich will mich hier auf eher konventionelle FM Transceiver beschränken. Konkret habe ich für dieses Experiment einen ICOM 9100 und ein Yaesu-FTM400DX verwendet. Beiden Geräten ist gemeinsam, dass sie mit einer 6-poligen mini DIN Buchse ausgestattet sind, bzw. der FTM400DX kann leicht damit ausgestattet werden. Diese 6-polige Buchse ist besonders bei Japanischen Herstellern recht verbreitet und erlaubt den Anschluss eine PR Modems, meist auch mit 9600Bd.

Nun muss man sich ein Kabel basteln mit dem man die Soundkarte mit der Buchse verbinden kann. Das ist gar nicht so schwierig wenn man ein paar Tipps beherzigt. Falls ihr auch mit 9600Bd arbeiten wollt ist folgende Erkenntnis wichtig: Auf keinen Fall Übertrager verwenden für 9600Bd ! Stimmt, das kann zu Problemen führen, wenn man keinen sauberen Masseaufbau hat bzw. die Antenne keinen sauberen Ground hat. Dennoch macht ein Übertrager die Möglichkeit für 9600Bd zunichte. Der Grund dafür ist, dass die niedrigen Frequenzen, die ohnehin durch den Empfangskanal beeinträchtigt sind noch weiter abgesenkt werden. Das verwendete Übertragungsverfahren, FSK, würde idealerweise die Möglichkeit erfordern sogar Gleichpegel zu übertragen. Keine konventionelle Soundkarte, aber auch kein üblicher Transceiver können das. Die Originaldokumente von James Miller, G3RUH 2 sprechen davon, dass die Übertragung bis hinunter zu ein paar Hertz funktionieren muss. Da die Signale zwischen Modem und Transceiver praktisch nie eine Gleichstromkomponente haben dürfen käme es nämlich bei sehr langen Sequenzen von Nullen oder Einsen zu Problemen. Einen Teil dieser Schwierigkeiten umgeht man indem man die Datenbits mit einem sognennaten Scrambler verwürfelt. So ein Scranmbler hat die Aufgabe die Wahrscheinlichkeit für solche längeren Dauerlagen erheblich zu vermindern.

Leider ist es in der Praxis nun so, dass es mehr als ein paar Hertz werden können. In meinem Fall ist der Kanal beim ICOM erst ab etwa 100Hz und beim Yaesu Radio erst ab etwa 300Hz im Normalbereich. Aber es handelt sich ja um Amateurfunk und deshalb kann man’s auch probieren, obwohl es eigentlich nicht gehen dürfte. Und siehe da: Mit ein wenig Sorgfalt klappt es dann auch. Wer Lust hat kann sich das für GnuRadio Companion geeignete script hier herunterladen und ausprobieren.

Das Script ist nicht perfekt, aber es ist ein Startpunkt für eigene Experimente. (Ich habe im Script einigen frei verfügbaren Sourcecode von anderen Autoren verwendet. Sieh dazu in den Sourceode hinein.)

Ein paar Kommentare:
Das Hauptproblem ist, dass durch die recht hohe untere Grenzfrequenz der sogenannte Baseline-wander dazu führt, dass die Bits viel zu nahe an die bei Null liegende Schwelle gelangen können, die Einsen und Nullen trennen soll. Das führt deshalb zu Fehlern, die aber manchesmal durch Neusenden des Datenpaketes behoben werden können. John Langner, WB2OSZ, Autor der Direwolf Software hatte dazu eine clevere Idee: Er lässt bis zu acht Modems gleichzeitig laufen, jedes mit einer ein wenig anders gesetzten Schwelle. Siehe da in der Praxis funktioniert das recht gut, weil es selten vorkommt, dass alle Schwellen schlecht sind. Wie aber erkennt man, dass eine Schwelle schlecht ist? Ganz einfach: Dazu wertet man die Checksumme des AX25 Paketes aus. Schwups wird aus der Checksumme eine Art einfache Forward Error Correction. Sicher, das ist keine Ingenieurmäßige Lösung, aber hey, es funktioniert. Ich finde, dass es ein großartiger Hack ist. Ich glaube man könnte darüber hinaus auch noch versuchen die Baseline mittels anderer Methoden zu verbesser. Your Turn!