GMSK-Modulation

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

GMSK (Gaussian Minimum Shift Keying) ist eine Bandbreite sparende Modulationsart für die digitale Datenübertragung. MSK ist ein Spezialfall der Frequenzumtastung FSK mit einem Modulationsindex von 0,5. Das "G" bedeutet, dass die seriellen Daten vor dem Modulator durch einen Gauß-Tiefpass gefiltert werden.

Modulator

Gauß-Tiefpass

Das serielle Datensignal wird zunächst durch ein Tiefpassfilter mit Gauß-Charakteristik geschickt. Das ist eine theoretische Filterkurve, die nur angenähert erreicht werden kann.

Die Impulsantwort des idealen Gauß-Tiefpasses lautet:

[math]\displaystyle{ h_G(t) = \sqrt \frac {2 \pi}{ln2} B exp( \frac {-2 \pi^2}{ln 2} B^2 t^2) }[/math]

und die Übertragungsfunktion:

[math]\displaystyle{ H_G(f) = exp( \frac {-ln 2}{2}(\frac {f}{B})^2) }[/math]

mit der -3dB-Bandbreite B. Wie man sieht, ist B der einzige Parameter, es gibt keine Filterordnung, wie bei anderen Filterfunktionen.

Analoger Gauß-Tiefpass

Ein Aktivfilter läßt sich mit der Filtersoftware Filter Pro von Texas Instruments berechnen. Praktischerweise werden auf Wunsch die nächstgelegenen Bauteil-Normwerte angegeben, und das erforderliche Verstärkungs-Bandbreite-Produkt GBW der verwendeten Operationsverstärker genannt.

Frequenz/Phasengang
Gauss-Tiefpass

Das Beispiel zeigt ein Gaußfilter mit einer 3dB-Grenzfrequenz von 1,44 kHz. Für das Filter wird üblicherweise der Faktor "BT" angegeben, das ist das Produkt aus Bandbreite B und Bitlänge T. Das ist gleich der -3dB-Grenzfrequenz dividiert durch die Baudrate. Hier soll BT=0,3 also B = 0,3 * 4800Baud = 1,44kHz sein. Das minimal erforderliche GBW beträgt in der letzten Stufe 1,57 MHz. Ein TL074 mit einem typischen GBW von 3 MHz sollte also ausreichen. Man sieht den sehr ebenen Verlauf der Gruppenlaufzeit, der für ein Gaussfilter typisch ist.

Für DECT-Telefone wurde ein integrierter Gauß-Tiefpass hergestellt, LMX2411 Baseband Processor for Radio Communications mit der Gaußfunktion im ROM.

Digitaler Gauß-Tiefpass

Zu digitalen Gaußfiltern gibt es hier einen Übersichtsartikel zur Auswahl von FIR oder IIR-Filtern "Recursive Gaussian filters" von Dave Hale. Der Text nimmt für IIR-Filter Bezug auf ältere Arbeiten von Deriche 1993 und van Vliet et al. 1998. Beide verwenden leider "nicht-kausale" Filter, die nicht für Echtzeitanwendungen wie GMSK geeignet sind.

Ein Filter mit ebener Gruppenlaufzeit, wie das Gaußfilter, ist immer auch ein linearphasiges Filter, das exakt nur als FIR-Filter realisiert werden kann. Ein IIR-Filter kann aber annähernd linearphasig, engl. approximately linear phase, ausgelegt werden. Eine mögliche Lösung: man kombiniert einen IIR-Tiefpass mit einem IIR-Allpass als Entzerrer, engl. equalizer. Der Aufwand kann damit geringer als für ein FIR-Filter bleiben.

Ein linearphasiges FIR-Filter hat je zwei gleiche Koeffizienten, sodaß man den Rechenaufwand halbieren kann: "abgeknickte Direktstruktur" . Die FIR Filterung kann man auch als Faltung, engl. convolution, des Signals mit der Gaußfunktion betrachten.

FM-Modulator

Zur Frequenzumtastung muß der Sendeoszillator linear und phasentreu frequenzmoduliert werden.
Ein PLL-abgestimmter Oszillator versucht jede Frequenzänderung auszuregeln, daher kann man das Signal nicht einfach auf die Abstimmdiode des Oszillators geben. Der Quarz des Referenzoszillators läßt sich nicht beliebig schnell ziehen, da Nebenresonanzen zu Frequenz- und Phasenverzerrungen führen.
Man muß entweder das Schleifenfilter der PLL sehr langsam nachregeln lassen, was zu langen Einschwingzeiten und Störanfälligkeit führt.
Oder man benutzt eine Zweipunkt-Modulation, für niedere Signalfrequenzen wird der Referenzquarz gezogen, hohe Frequenzen modulieren den Oszillator.
Eine Alternative wäre das Mischerverfahren, ein GMSK-modulierter frequenzstabiler VCO von wenigen MHz wird mit einem PLL-stabilisierten VHF/UHF-Oszillator auf die Sendefrequenz hochgemischt, die Spiegelfrequenz weggefiltert.

Demodulator

Empfänger-Schnittstelle

Für die Schnittstelle zum Demodulator gibt es zwei Möglichkeiten:

  1. Eine niedrige Zwischenfrequenz wird A/D-gewandelt und digital weiterverarbeitet
  2. Das Signal wird im Empfänger bereits FM-demoduliert und erst danach AD-gewandelt

Die Schaltungen mit dem CML-Modemchip CMX589 gehören zur zweiten Version, die Schaltung die unter "DGPS" beschrieben ist arbeitet nach der ersten. Auch Software, die das Signal mit der Soundkarte des PC aufnimmt, ist meistens von der zweiten Art (es gibt aber z.B. auch SDR-Software, die als Eingangssignal eine Zwischenfrequenz um 12 kHz voraussetzt).

Entzerrer (optional)

In einer Arbeit der Hochschule Heilbronn zur GMSK-Demodulation mittels FPGA wird vor dem eigentlichen Demodulator ein einfaches IIR-Filter als Frequenzgangentzerrer vorgeschlagen, mit diesem Frequenz- und Phasengang und dieser Gruppenlaufzeit. Die Übertragungsfunktion lautet:

[math]\displaystyle{ H(z)=\frac{0{,}1096-0,3593\cdot z^{-1}+1{,}1781\cdot z^{-2}}{1+0{,}3050\cdot z^{-1}} }[/math]

Takt-Rückgewinnung

Zur Demodulation ist eine Rückgewinnung des seriellen Taktes nötig. Üblicherweise wird dazu das empfangene Datensignal quadriert oder "doppelweg-gleichgerichtet", da die Taktfrequenz (spektral betrachtet) im Signal selbst nicht vorkommt. Danach folgt ein Bandpassfilter für die Taktfrequenz und schließlich eine PLL oder ähnliches. Um diese PLL zu synchronisieren, wird vor jedem Datenblock eine regelmäßige Bitfolge, die sogenannte Präambel, eingefügt.

Verwendung

Neben der Anwendung der GMSK im älteren Mobiltelefon-Standard GSM, Beginn 1982, Einführung ab 1990 (das neuere UMTS ab 2000/2004 nutzt QPSK oder 16QAM) und in DECT- Schnurlostelefonen sind für Hobbyanwendungen vor allem folgende Themen interessant:

DGPS differential global positioning system

Vor der Abschaltung der "selective availability", einer künstlichen Verschlechterung der Positionsgenauigkeit für nichtmilitärische Anwender, wurden mittels "Differential GPS" Korrekturdaten übermittelt. Dazu wurden Funkbaken im Langwellenbereich zusätzlich zu ihrer ursprünglichen Aufgabe mit diesen DGPS-Daten GMSK moduliert.

Eine Arbeit am Worcester Polytechnic Institute aus dem Jahr 1990 beschreibt einen Empfänger für diese Daten. Die GMSK-Demodulation übernimmt ein Mikrocontroller 68HC11, der auch den Empfänger bedient. Die eigentliche Demodulation findet im Controller statt. An seinem AD-Wandler-Eingang liegt eine sehr niedrige Zwischenfrequenz von 1 kHz an, die digital I/Q-demoduliert wird. Wer das genauer nachlesen möchte: Die Arbeit wurde nachträglich eingescannt und ist sowohl als PDF als auch als einzelne Seitenscans vorhanden. Im PDF sind zweimal drei Zeilen des Assemblercodes verlorengegangen. In den Originalscans sind sie enthalten.

D-STAR: digitale Amateurfunk - Sprachübertragung

Protokoll

D-STAR, ein digitales Sprach- und Datenübertragungsprotokoll, wurde etwa 1999 vom japanischen Amateurfunkverband vorgeschlagen und vor allem vom Funkgerätehersteller Icom bekannt gemacht. Eine Liste und Karte der deutschen D-Star-Relaisfunkstellen gibts hier.

Der eigentliche Sprachencoder/decoder benutzt ein patentgeschütztes Verfahren, der Chip AMBE2020 ist ein kundenspezifisch programmierter DSP von Texas Instruments. Die US-Patentschrift Nr 6199037 (oder hier) ist bereits von 1997. Erst im Jahr 2017 soll der Patentschutz ablaufen (?). Das Verfahren ist eine Weiterentwicklung der MBE (multi band excitation) und IMBE (improved...), die z.B. auf Inmarsat verwendet wird.

Die Einzelheiten der Datenübertragung sind dagegen offengelegt. Es ist ein Übertragungsprotokoll mit 4800 Baud GMSK-Modulation. Für höhere Frequenzbänder existieren noch zwei weitere Formate mit größeren Baudraten.

Hardwareprojekte

Der GMSK-Demodulator benötigt den FM-demodulierten Datenstrom, wie er im Funkgerät direkt am "Diskriminator-Ausgang" des FM-Demodulators anliegt. Am Lautsprecherausgang ist das Signal schon durch Filter zu stark verfälscht. Viele Amateurfunkgeräte verfügen aber über einen Anschluß für 9600 Bd Packet-Radio, der sich auch zum Anschluß des GMSK-Demodulators eignet.

Zur GMSK-Modulation und Demodulation wird fast ausschließlich ein Modemchip CMX589A (vorher auch FX589/MX589), Datenblatt hier, des britischen Herstellers CML benutzt, der in Deutschland nur vom Distributor Spezial-Elektronik für etwa 25 € vertrieben wird.

Eine Ausnahme bildet das "DV-Modem" mit einem AVR32-Controller, der auch die GMSK-Modemfunktionen ausübt. Die Firmware in C steht unter GPL v2.

Eine weitere Entwicklung namens UP4DAR (Universal platform for digital amateur radio) stammt von Denis Bederov, DL3OCK. Zur GMSK-Demodulation nutzt er eine Schaltung auf 455 kHz ZF-Ebene. Damit sollen bis zu 4 dB Verbesserung gegenüber der NF-Lösung möglich sein. Sein Vortrag auf der "Ham-Radio" 2011 ist als mp3 abrufbar. Ältere Texte zu UP4DAR von 2009 sind im Web zu finden.
Eine Anmerkung dazu: 3 dB gewinnt man durch kohärente I/Q-Demodulation, das heißt, der Mischoszillator im Empfänger wird mit dem Sendeoszillator synchronisiert. Wenn der I/Q-Demodulator die Daten dadurch z.B. nur im I-Kanal enthält, der Q-Kanal nur Rauschen, so kann ein nicht kohärenter Empfänger dieses nicht auseinanderhalten, die Rauschleistung verdoppelt sich, entsprechend 3 dB. Liegen die Daten nur als niederfrequentes Signal vor, läßt sich das nicht mehr trennen, es ist nur noch nicht kohärente Demodulation möglich.

PC-Softwarelösungen

Es gibt ein Programm, um unter Windows (Version 02) oder (Version 03) Datenpakete via Soundkarte mitzulesen, auch eine Software unter Linux, die andere xMBE-Sprachcodecs decodieren kann, aber der Autor will bisher (zumindest offiziell) den D-Star-Codec nicht emulieren.

Links

Von KB9MWR gibt es eine Sammlung von Dateien zu D-Star, darunter auch zum Decodertest ein .wav File mit einem Stück D-Star-Signal wie es aus dem Diskriminator herauskommt.

AIS Positionsmeldungen der Schiffahrt

Auf den beiden AIS-Frequenzen 161,975 MHz und 162,025 MHz geben Schiffe in kurzen Datenpaketen ihre Position und Fahrtrichtung bekannt, vor allem zur Kollisionsvermeidung. GMSK-Modulation 9600 Baud.

Ein einfacher Empfänger könnte von einem 18 MHz Quarz ausgehend durch zweimalige Verdreifachung 162 MHz als Mischoszillator benutzen. Wenn man den Quarz leicht daneben abgleicht, können die beiden Frequenzen auf zwei niedrige Zwischenfrequenzen von 20...30 kHz heruntergemischt und mit je einem FM-ZF-IC demoduliert werden. Der untere Kanal ist dadurch in Kehrlage.

Es gibt Software um diese Daten zu decodieren. Auch hier wird meistens der CMX589 Modemchip verwendet.:

AIS Decoding, einfache Schaltung mit CMX589, AVR2313 und MAX232
GnuAIS unter Linux
Ais Decoder by Neal Arundale
Ship-Plotter (Shareware 21 Tage Testversion)

Zwei ähnliche Systeme gibt es in der Luftfahrt,

das ältere ACARS mit 2400 Baud Audio-FSK um 131MHz und
ADS-B mit 1 MBaud Pulspositions-Modulation auf 1090 MHz. Dazu gibt es hier im Wiki ein Projekt "1090 MHz-ADS-B-Receiver" und eine Diskussion.

GMSK im Forum

Weblinks