FT8-Kommunikationsprotokoll - wie es funktioniert

Hallo Habr.

Wahrscheinlich hat jeder, der sich auch nur ein wenig für Funkkommunikation und Amateurfunk interessierte, von dem digitalen Kommunikationsprotokoll FT8 gehört . Diese Art der Verbindung trat 2017 auf und seitdem hat ihre Popularität nur noch zugenommen.


Quelle: www.qsl.net/w1dyj/FT8%20for%20web.pdf

Für diejenigen, die daran interessiert sind, wie dies funktioniert und warum es benötigt wird, weiter unter dem Schnitt.

Geschichte


Für diejenigen, die weit entfernt von Amateurfunkkommunikation sind, ein kurzer historischer Hintergrund.

Die ersten hausgemachten und später gekauften Amateurfunkstationen erschienen vor etwa 100 Jahren. Das einzige Signal, das sie empfangen und senden konnten, war ein einfacher Ton, und die Übertragung verwendete den Morsecode. Früher war es natürlich notwendig zu lernen, wie man CW nach Gehör nimmt, da diese Fähigkeit nicht nur bei Amateuren, sondern auch bei Profis lange Zeit gefragt war. Der Beruf des Funkers in der Marine wurde anscheinend erst in den 60er Jahren aufgehoben. Natürlich gab es eine gewisse Romantik beim Empfang schwacher Signale gegen das Rauschen des Äthers, so gelang es einem einfachen Amateurfunker aus der Region Kostroma 1928, das SOS-Signal vom notleidenden Luftschiff- Team Umberto Nobile zu empfangen .

Der nächste Schritt war die Sprachkommunikation - die Sprachübertragung mit einem Mikrofon in Einzelbandmodulation machte die Funkkommunikation bequemer. Diese Methode wird weiterhin verwendet.

Schließlich begann die digitale Kommunikation um die 90er Jahre bei Amateurfunkern an Beliebtheit zu gewinnen. In diesem Fall bildet das Signal (normalerweise RTTY oder PSK) den Computer, der Bediener kommuniziert mit dem Korrespondenten über eine Art Text-Chat.



Es muss gesagt werden, dass technisch ähnliche Protokolle sehr einfach sind und vom Benutzer über die Tastatur eingegebene Zeichen fast ohne komplizierte Verarbeitung an die Sendung gesendet wurden. Und seltsamerweise hatte dies seine Vorteile - der Bediener musste selbst die richtige Frequenz finden, die Signalqualität nach Gehör bewerten, die dekodierten Zeichen auf dem Bildschirm sehen, die Antwort eingeben usw.

Aber die Möglichkeiten der digitalen Verarbeitung wuchsen und schließlich erschien der Held unserer Überprüfung - der Kommunikationsstandard FT8. Der Name FT8 bedeutet Franke und Taylor, 8-FSK-Modulation. Professor Steven Franke und der Astrophysiker und Nobelpreisträger Joseph Taylor haben ein wirklich interessantes und effizientes Protokoll für die Datenübertragung erstellt.

Eigenschaften von FT8:

  • Die Nachrichtenlänge beträgt 15 s, Nachrichten werden in festen Zeitschlitzen übertragen, was das Decodieren erleichtert.
  • Die Nachrichtenlänge beträgt 77 Bit + 12-Bit-CRC.
  • Fehlerkorrektur FEC LDPC (174,87).
  • Frequenzmodulation 8-FSK, der Abstand zwischen den Tönen 6,25 Hz.
  • Bandbreite 50Hz. Mit solch einem schmalen Band können mehrere Stationen gleichzeitig arbeiten und decodieren.
  • Decodierungsschwelle -20dB.
  • Die optionale Möglichkeit, automatisch zu arbeiten, Antworten automatisch zu senden usw.

Im Allgemeinen haben die Autoren gute Arbeit geleistet, um ein fast vollständig automatisiertes Kommunikationsprotokoll zu erstellen, das einerseits Informationen effizienter übertragen und andererseits den „Geist des Amateurfunk“ im Keim töten kann. Es gibt keine Romantik mehr für das Rauschen und Verblassen des Äthers, das ein schwaches Korrespondenzsignal von der anderen Seite des Ozeans empfängt, es gibt nur einen PC-Bildschirm, und der Rest wird durch Algorithmen und Mathematik erledigt.

Ein Screenshot des WSJT-X-Programms, das FT8 unterstützt, sieht ungefähr so ​​aus:


Quelle: 3fs.net.au/ft8-digital-amateur-radio

Persönlich verstehe ich das Vergnügen einer fast vollständig automatischen Funkkommunikation nicht wirklich, aber da FT8 beliebt ist, ist dies jemand notwendig. Lassen Sie uns genauer sehen, wie dies funktioniert.

Bitcodierung


Betrachten Sie ein praktisches Beispiel - die Übertragung des Ausdrucks "CQ RA1ABC KO50". Hier ist CQ der allgemein akzeptierte Rufcode (weitere Details hier ), RA1ABC ist das Amateur-Rufzeichen, KO50 ist der sogenannte Grid-Locator , der die Region bestimmt, aus der das Amateurfunk sendet.

Im ersten Schritt werden gebräuchliche Abkürzungen durch Funktionscodes ersetzt. Beispielsweise erhält CQ einen 2-Stunden-Code. Amateurfunk-Rufzeichen haben ein streng definiertes Format von Buchstaben und Zahlen, mit dem Sie sie auch kompakter aufzeichnen können.

const char A0[] = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+-./?";
const char A1[] = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const char A2[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const char A3[] = "0123456789";

// Check for standard callsign
int i0, i1, i2, i3, i4, i5;
if ((i0 = char_index(A1, c6[0])) >= 0 && (i1 = char_index(A2, c6[1])) >= 0 &&
    (i2 = char_index(A3, c6[2])) >= 0 && (i3 = char_index(A4, c6[3])) >= 0 &&
    (i4 = char_index(A4, c6[4])) >= 0 && (i5 = char_index(A4, c6[5])) >= 0) {
        // This is a standard callsign
        int32_t n28 = i0;
        n28 = n28 * 36 + i1;
        n28 = n28 * 10 + i2;
        n28 = n28 * 27 + i3;
        n28 = n28 * 27 + i4;
        n28 = n28 * 27 + i5;
        printf("Pack28: n28=%d (%04xh)\n", n28, n28);
        return NTOKENS + MAX22 + n28;
}

Die Idee, Zeichen durch Indizes zu ersetzen, ist hier wichtig, was bei einer kleinen Wörterbuchgröße effektiv ist. Infolgedessen wird das Rufzeichen „RA1ABC“ als 0BF1C2C1h geschrieben - wir haben 4 Bytes anstelle von 6 ausgegeben.

Ebenso wird der Grid-Locator „KO50“ als 2-Byte-4BFAh-Nummer geschrieben. All dies ist notwendig, da die maximale Nachrichtenlänge 77 Bit beträgt. Natürlich können beliebiger Text und sogar Telemetrie übertragen werden, unterliegen jedoch diesen Einschränkungen. Die 77-Bit-Nachrichtenlänge wurde als Kompromiss zwischen der Übertragungszeit (ungefähr 13 Sekunden, was nicht so schnell ist) und der Informationskapazität gewählt - die Nachricht könnte länger gemacht werden, aber dann würde sie länger gesendet.

Infolgedessen werden alle unsere Nachrichten „CQ RA1ABC KO50“ in den Datenblock 00 00 00 26 28 9F D4 92 FE 88 konvertiert. Außerdem wird eine 14-Bit-CRC hinzugefügt.

Der nächste Schritt besteht darin, die 91-Bit-Nachricht in den sogenannten LDPC-Code (Low Density Parity Check) mit einer Länge von 174 Bit umzuwandeln. Dadurch wird die Redundanz hinzugefügt, mit der Fehler während des Empfangs korrigiert werden. In diesem Schritt wird die Nachricht in 00 00 00 26 28 9F D4 92 FE 8A CA 0C F3 D1 34 33 88 D0 C2 9C 3D CC konvertiert.

Frequenzcodierung


Alles hier ist ziemlich einfach. In diesem Schritt transformieren wir die Nachricht in eine Folge von Tönen mit unterschiedlichen Frequenzen. Wie Sie wissen, können wir 8 Töne haben (Modulationstyp FSK-8). Nach der Konvertierung erhalten wir eine Sequenz der Form 31406520 00000001 15353274 61112745 36563140 65201575 76054515 70523040 61407642 3140652, wobei jede Ziffer eine Tonzahl von 0 bis 7 ist.

Der Frequenzabstand zwischen Tönen beträgt 6,25 Hz. Die Dauer eines Tons beträgt 0,16 s. Mit der oben gezeigten Sequenz können Sie einfach eine WAV-Datei erstellen oder den Frequenzsynthesizer bei einem autonomen Beacon direkt steuern.

Das Spektrum des erzeugten Signals unserer Nachricht sieht folgendermaßen aus:



Natürlich ist es besser, einmal zu hören, als sich das Spektrum anzusehen. Leider erlaubt Habr das Anhängen einer WAV-Datei nicht, und wir konnten auf YouTube kein normales Video mit einer Demonstration des FT8-Sounds finden. Moderne Radioamateure müssen die Sendung nicht mehr hören, der Computer erledigt das für sie. Ein Beispiel für den Funkprozess finden Sie hier:


Fazit


Wie Sie sehen können, ist FT8 mathematisch gesehen ein ziemlich interessantes Protokoll. Die Originale des WSJT-X-Quellcodes sind in Fortran geschrieben, und ich konnte es mit ihnen immer noch nicht herausfinden. Eine separate Version des Encoders in C ++ kann unter github.com/kgoba/ft8_lib eingesehen werden. Die obigen Codefragmente wurden daraus entnommen. Wer möchte, kann auch einfach die WSJT-X- Version herunterladen , sie ist kostenlos, man kann sie ohne Sender ausprobieren, nur ohne Soundkarte. Sie können sogar die FT8-Frequenzen mit http://websdr.ewi.utwente.nl:8901 einstellen und den Ton über ein virtuelles Audiokabel umleiten, sodass Sie das Programm ohne Transceiver und ohne Rufzeichen im Betrieb sehen können.

Was die Popularität von FT8 in Amateurfunkkreisen betrifft ... Nun, persönlich ist mir das nicht ganz klar, meiner Meinung nach gibt es in solchen Kommunikationsarten bereits keine Romantik, es ist näher am Industrieprotokoll als am Hobby und an der Kreativität. Die meisten scheinen jedoch eine andere Meinung zu haben, die in der Grafik am Anfang des Artikels dargestellt ist. Millionen Amateurfunkfans können sich nicht irren? Nun, FT8 selbst ist natürlich technisch interessant, und hier ist der Prozess des Studierens des Protokolls vielleicht viel interessanter als seine Verwendung. Es ist aber sicherlich auch interessant, das Programm mindestens einmal auszuprobieren.

Alle erfolgreichen Experimente.

All Articles