Constellation Blöcke

In GNU Radio sind die Constellation-Blöcke essenzielle Bausteine für digitale Modulations- und Demodulationsschemata.

Die Constellation-Blöcke dienen dazu, die Zuordnung zwischen digitalen Daten (Bits oder Bitgruppen) und den Symbolen in einer Konstellation sowie deren Decodierung zu definieren und umzusetzen. Ein Symbol repräsentiert hierbei eine Gruppe von Bits, die gemeinsam übertragen werden. Die Konstellation bezeichnet die Menge der möglichen Signalzustände, die ein Symbol annehmen kann, dargestellt als Punkte in der komplexen Ebene.

Diese Blöcke in GNU Radio ermöglichen es, verschiedene digitale Modulationstechniken wie BPSK, QPSK, QAM oder auch benutzerdefinierte Modulationen zu realisieren. (Erläuterung der Modulationstypen: BPSK (Binary Phase-Shift Keying) nutzt zwei Phasen, um 0 und 1 darzustellen. QPSK (Quadrature Phase-Shift Keying) nutzt vier Phasen, um Bitpaare (Symbole aus 2 Bits) darzustellen. QAM (Quadrature Amplitude Modulation) nutzt sowohl Amplitude als auch Phase, um Symbole darzustellen, z.B. 16-QAM für Symbole aus 4 Bits).

Die Constellation-Blöcke arbeiten auf der Grundlage eines Constellation-Objekts, das die mathematische und logische Struktur der jeweiligen Modulation beschreibt.

Typen von Constellation-Blöcken

  1. Constellation Modulator: Dieser Block führt die Umwandlung von digitalen Symbolen (repräsentiert als Integer-Werte, die aus Bitgruppen gebildet werden) in die entsprechenden komplexen Konstellationspunkte gemäß der im Constellation-Objekt definierten Zuordnung durch.
    • Beispiel: Ein QPSK-Modulator ordnet je zwei Bits (z.B. 00, 01, 10, 11) den vier spezifischen Punkten in der komplexen Ebene zu, die die QPSK-Konstellation bilden.
  2. Constellation Demodulator: Dieser Block empfängt das (möglicherweise gestörte) Signal und klassifiziert die empfangenen Signalpunkte, indem er sie dem nächstgelegenen idealen Konstellationspunkt zuordnet. Anschließend wandelt er diese Symbole zurück in die entsprechenden Bitsequenzen, basierend auf dem im Constellation-Objekt definierten Mapping.
  3. Constellation Decoder und Analyse: Diese Blöcke unterstützen weiterführende Verarbeitungsschritte. Decoder können Verfahren zur Fehlerkorrektur integrieren, oft unter Verwendung von Codierungen wie der Gray-Codierung, um die Auswirkung von Symbolfehlern auf die Bitfehlerrate zu minimieren. Analyseblöcke ermöglichen die visuelle Darstellung der empfangenen Signalpunkte als Konstellationsdiagramm, was eine wichtige Methode zur Bewertung der Signalqualität ist.

Der Begriff Konstellation (Constellation)

Der Begriff Konstellation wird in diesem Kontext verwendet, da er sich auf die exakte Lage eines Symbols in der komplexen Ebene bezieht. Diese Lage wird durch eine komplexe Zahl dargestellt, die sich aus einer Amplitude (Betrag der komplexen Zahl, Abstand vom Ursprung) und einer Phase (Winkel der komplexen Zahl zur positiven reellen Achse) zusammensetzt.

  • Beispiel: Der Punkt für die Bitkombination (0,0) bei QPSK liegt oft bei +1+j, was eine komplexe Zahl mit dem Realteil +1 (entspricht der In-Phase-Komponente) und dem Imaginärteil +1 (entspricht der Quadratur-Komponente) ist. Die Konstellation umfasst also die Menge aller möglichen, eindeutig definierten Punkte in der komplexen Ebene, von denen jeder einem spezifischen Symbol entspricht.

Der Begriff Phase

Der Begriff Phase bezieht sich speziell auf den Winkel des Konstellationspunktes relativ zur positiven reellen Achse in der komplexen Ebene. Dieser Winkel wird oft in Grad (°) oder Radiant (rad) angegeben. Bei konstanter Amplitudenmodulation (wie bei PSK-Verfahren – Phase-Shift Keying) bestimmt die Phase allein die Position des Symbols. Bei komplexeren Modulationen wie QAM spielt zusätzlich die Amplitude eine Rolle bei der eindeutigen Definition des Symbolpunkts.

Constellation Object

Das Constellation-Objekt ist ein fundamentales Konzept in GNU Radio, das die Zuordnung von Symbolen zu den komplexen Punkten in einem Konstellationsdiagramm für digitale Modulationsschemata kapselt. Dieses Objekt definiert die Struktur und das Verhalten der spezifischen Modulation und kann in verschiedenen Blöcken (Modulatoren, Demodulatoren, Decodern) wiederverwendet werden, was eine konsistente Implementierung sicherstellt.

Das Constellation-Objekt ist im Wesentlichen eine Definition von Parametern, die für die ausführenden Blöcke relevant sind:

ID : Eine eindeutige Kennung, mit der das Objekt den spezifischen Blöcken im Flowgraph zugewiesen werden kann.

Constellation Type: Definiert den Grundtyp der Konstellation, z.B. BPSK, QPSK, SQPSK (Staggered QPSK), 8PSK, 16QAM. Zusätzlich kann Variable Constellation ausgewählt werden, um eine benutzerdefinierte Konstellation zu erstellen. Abhängig vom gewählten Typ werden weitere spezifische Parameter verfügbar oder ausgeblendet.

Soft Decision Points: Dieser Wert bestimmt die Genauigkeit, mit der “Soft Decisions” (weiche Entscheidungen) getroffen werden. Eine Soft Decision ist eine Aussage über die Wahrscheinlichkeit, mit der ein bestimmtes Bit basierend auf dem empfangenen Signalwert korrekt ist. Im Gegensatz dazu wird bei einer Hard Decision einfach entschieden, ob ein Bit eine ‘0’ oder eine ‘1’ ist, basierend auf der nächstgelegenen Schwelle, ohne Angabe der Sicherheit dieser Entscheidung.

  • Die Soft Decisions sind entscheidend für die Leistungsfähigkeit von Fehlerkorrekturalgorithmen (Forward Error Correction, FEC), da sie zusätzliche Informationen über die Zuverlässigkeit der empfangenen Bits liefern.
  • Die Soft Decision Precision gibt die Anzahl der Bits an, die verwendet werden, um die Wahrscheinlichkeit oder Unsicherheit zu quantisieren. Ein Wert von 8 bedeutet, dass es 28=256 mögliche Abstufungen für die Wahrscheinlichkeit gibt, was eine sehr feine Quantisierung der Unsicherheit ermöglicht. Dies verbessert potenziell die Leistung von Fehlerkorrektur-Decodern, erfordert aber auch mehr Rechenleistung und Speicher. Dies wird oft verwendet, um die Bitfehlerrate (BER) – die Anzahl der fehlerhaft empfangenen Bits im Verhältnis zur Gesamtzahl der übertragenen Bits – zu minimieren.

Soft Decisions LUT (Look-Up Table): Eine Soft Decisions LUT ist eine vorab berechnete Tabelle, die es ermöglicht, für einen bestimmten Bereich im Signalraum (wo die empfangenen, potenziell gestörten Signalpunkte liegen) schnell die zugehörigen Soft Decision-Werte für die einzelnen Bits zu finden. Dies beschleunigt den Demodulations- und Decodierungsprozess, da die Wahrscheinlichkeiten nicht jedes Mal neu berechnet werden müssen.

  • Der Wert auto bewirkt, dass GNU Radio die LUT basierend auf den anderen Konstellationsparametern automatisch berechnet.


Beispiel für eine Soft Decisions LUT (angenommen für ein QPSK-Signal mit 3 Bit Genauigkeit für Soft Decisions)::

{
    complex( 1, 1):  { (0, 0): 7, (0, 1): 3, (1, 0): 3, (1, 1): 1 },
    complex( 1, -1): { (0, 0): 3, (0, 1): 7, (1, 0): 1, (1, 1): 3 },
    complex(-1, 1):  { (0, 0): 3, (0, 1): 1, (1, 0): 7, (1, 1): 3 },
    complex(-1, -1): { (0, 0): 1, (0, 1): 3, (1, 0): 3, (1, 1): 7 },
}
  • Die 4 komplexen Zahlen (complex(1, 1), etc.) repräsentieren die idealen Positionen der QPSK-Konstellationspunkte in der komplexen Ebene.
  • Der Eintrag complex(1, 1): { (0, 0): 7, (0, 1): 3, (1, 0): 3, (1, 1): 1 } beschreibt die Soft Decision-Werte (hier ganzzahlig von 0 bis 7) für jede mögliche 2-Bit-Kombination, wenn der empfangene Signalpunkt nahe dem idealen Punkt (1, 1) liegt.
  • Die Werte 7, 3, 1 geben die relative Wahrscheinlichkeit an, dass die entsprechende Bitkombination ((0,0), (0,1), etc.) gesendet wurde. Ein höherer Wert (hier 7) bedeutet eine höhere Wahrscheinlichkeit.

    Werte im Detail:
(0,0) : 7Die höchste Wahrscheinlichkeit wird der korrekten Bitkombination
da (1+j) der ideale Punkt für diese Bits ist
(0,1) : 3Die Bitkombination (0,1) hat eine geringere Wahrscheinlichkeit,
da sie einem weiter entfernten Punkt entspricht.
(1,0) : 3(1,0 ist genauso wahrscheinlich wie (0,1)
(1,1) :1Die Bitkombination (1,1) hat die niedrigste Wahrscheinlichkeit,
da ihr idealer Punkt (−1−j) am weitesten entfernt ist. Er liegt diagonal gegenüber.

Wählt man Variable Constellation, können zusätzliche Parameter zur genauen Definition der Konstellation erfasst werden:

Symbol Map: Definiert die exakte Zuordnung zwischen dem dezimalen Wert des Symbols (der aus den Bits gebildet wird, z.B. 2 Bits = 4 mögliche Dezimalwerte 0, 1, 2, 3) und den komplexen Koordinaten des zugehörigen Konstellationspunktes. Diese Zuordnung steht in direktem Zusammenhang mit dem Feld Constellation Points, das die Liste der komplexen Punktkoordinaten enthält

Beispiel:

Die Symbol Map enthält die dezimale Repräsentation der Bit Werte.
Die Bitkombination 10 ist dezimal 2 und wird dem Constallation Point (1-1j) zugeordnet.

Rotational Symmetry: Gibt die Rotationssymmetrie der Konstellation an. Ein Modulationsschema besitzt Rotationssymmetrie, wenn die gesamte Menge der Konstellationspunkte nach einer Drehung um einen bestimmten Winkel (Δθ) wieder exakt mit der ursprünglichen Menge übereinstimmt. Die Symmetrie ist der kleinste positive Winkel, um den dies der Fall ist

  • Beispiel: QPSK hat 4 Konstellationspunkte. Eine Drehung um 90∘ (π/2 Radiant) lässt die Konstellation unverändert erscheinen. Die Rotationssymmetrie ist 90∘.
    16-QAM hat typischerweise keine Rotationssymmetrie um Winkel kleiner als 360∘.
  • Rotationssymmetrie ist relevant, da Phasenverschiebungen im Kommunikationskanal (z.B. durch Oszillator-Drift) bei symmetrischen Konstellationen zu einer Phasenmehrdeutigkeit führen können, die vom Demodulator behoben werden muss. Sie ermöglicht aber auch den Einsatz von differentieller Kodierung (siehe unten), die unempfindlicher gegenüber konstanten oder langsam veränderlichen Phasenverschiebungen ist.

Dimensionality: Beschreibt die Anzahl der orthogonalen Basisfunktionen, die minimal benötigt werden, um alle Symbole im Signalraum darzustellen. Bei den hier betrachteten Konstellationen in der komplexen Ebene entspricht dies der Anzahl der Dimensionen des Signalraums, in dem die Konstellationspunkte liegen.

  • Beispiel: BPSK hat typischerweise eine Dimensionality von 1, da die beiden Konstellationspunkte auf der reellen Achse liegen und nur eine Dimension benötigen. QPSK und QAM haben eine Dimensionality von 2, da die Punkte in der komplexen Ebene liegen und sowohl eine In-Phase- (reelle) als auch eine Quadratur- (imaginäre) Achse benötigen.
  • Eine höhere Dimensionalität kann die Übertragungseffizienz (Bits pro Symbol) erhöhen, erfordert aber in der Regel auch eine höhere Signalqualität und komplexere Empfänger zur präzisen Lokalisierung der Punkte im höherdimensionalen Raum.

Normalization Type: Beschreibt die Methode, mit der die Amplituden der Konstellationspunkte skaliert werden, um die Gesamtenergie oder die Spitzenamplitude des Signals zu standardisieren. Dies ist wichtig für die Systemauslegung, insbesondere im Hinblick auf die Leistung von Verstärkern.

  • Peak Power Normalization: Skaliert die Konstellationspunkte so, dass der Punkt mit der größten Amplitude (der am weitesten vom Ursprung entfernte Punkt) eine definierte Amplitude (meist 1,0) hat. Dies schützt vor Übersteuerung von Verstärkern durch Signalspitzen, kann aber dazu führen, dass die durchschnittliche Signalleistung niedriger ist.
  • Average Power Normalization: Skaliert die Punkte so, dass die durchschnittliche Energie (oder Leistung) über alle Konstellationspunkte hinweg einen definierten Wert (meist 1,0) hat. Dies gewährleistet eine konsistente durchschnittliche Sendeleistung.
  • Bei QAM wird häufig die durchschnittliche Energie normalisiert, da die Punkte stark unterschiedliche Amplituden haben.

Noise Power: Gibt die mittlere Leistung des additiven Rauschens (typischerweise AWGN – Additive White Gaussian Noise) an, das im simulierten Kommunikationskanal auftritt. Dies ist ein Parameter für Simulationen, um die Robustheit des Modulationsschemas gegen Störungen zu testen. Ein höherer Noise Power-Wert führt zu einer stärkeren Streuung der empfangenen Signalpunkte um die idealen Konstellationspunkte und damit zu einer höheren
Bitfehlerrate. Noise Power = 0 bedeutet eine Simulation ohne Rauschen.

Constellation Modulator

Der Constellation Modulator Block ist ein Signalverarbeitungsblock in GNU Radio, der die Kernfunktion der digitalen Modulation implementiert. Er nimmt die digitalen Symbole (als Integer-Werte) als Eingabe und erzeugt daraus das entsprechende modulierte Signal in Form von komplexen Samples (Gleitkommazahlen), die die In-Phase- (Realteil) und Quadratur-Komponenten (Imaginärteil) des Signals repräsentieren. Die genaue Umwandlung wird durch das zugewiesene Constellation-Objekt bestimmt.

Differentially Encoded: Wenn diese Option aktiviert ist (Yes), wird das Eingangssignal nicht direkt in die entsprechenden Konstellationspunkte abgebildet. Stattdessen wird eine differenzielle Kodierung angewendet. Dies bedeutet, dass das aktuell zu sendende Symbol nicht durch seinen absoluten Wert, sondern durch seine Differenz (oder relative Änderung) zum vorherigen gesendeten Symbol bestimmt wird.

  • Standard-Modulation (nicht differenziell): Bitsequenz 01 -> Symbol S1, Bitsequenz 10 -> Symbol S2.
  • Differenzielle Modulation (z.B. DPSK – Differential Phase-Shift Keying): Bitsequenz 01 bedeutet eine Phasenänderung Δϕ1​ relativ zum vorherigen Symbol, Bitsequenz 10 bedeutet eine Phasenänderung Δϕ2​. Das aktuelle Symbol ist also vorheriges Symbol * exp(j * Delta_phi).
  • Vorteil: Differenzielle Kodierung macht das System unempfindlicher gegenüber Phasenverschiebungen, die im Kanal auftreten und alle empfangenen Symbolpunkte um denselben Winkel drehen würden. Da die Information in der relativen Phasenänderung steckt, kann eine solche konstante Phasenverschiebung ignoriert werden. Es ist keine explizite Phasenwiederherstellung (Phase Recovery) im Demodulator nötig, um eine Phasenmehrdeutigkeit aufgrund von Rotationssymmetrie zu lösen.
  • Nachteil: Ein Fehler bei der Übertragung eines Symbols kann sich auf die Decodierung nachfolgender Symbole auswirken (Fehlerfortpflanzung), was die Effizienz der Fehlerkorrektur beeinträchtigen kann.

Samples per Symbol: Dieser Parameter gibt an, aus wie vielen Abtastwerten (Samples) im Zeitbereich ein einzelnes Symbol auf der Signalwellenform am Ausgang des Modulators bestehen soll.

  • Ein Symbol repräsentiert eine Gruppe von Bits (z.B. 2 Bits für QPSK, 4 Bits für 16-QAM).
  • Wenn Samples per Symbol = 1, wird jedes Symbol durch nur einen einzigen komplexen Abtastwert am Ausgang dargestellt. Dies ist oft der Fall, wenn kein Pulsshaping verwendet wird.
  • Wenn Samples per Symbol > 1, wird jedes Symbol durch mehrere komplexe Abtastwerte dargestellt. Dies ist notwendig, wenn Pulsshaping angewendet wird, um die Form des Signals im Zeitbereich zu gestalten und so Inter-Symbol-Interferenz (ISI) zu reduzieren und die Spektraleffizienz zu verbessern. Die zusätzlichen Samples repräsentieren die Punkte auf der durch den Pulsshaping-Filter geformten Wellenform, die das Symbol darstellt.
  • Ein höherer Wert für Samples per Symbol bedeutet eine feinere Auflösung der Signalwellenform, was die Qualität des Pulsshaping verbessert und die Filterung im Empfänger erleichtert. Es erhöht jedoch auch die Datenrate am Ausgang des Blocks und damit die Anforderungen an die nachfolgende Verarbeitung (höhere Abtastrate).

Excess Bandwidth (Überschussbandbreite): Dieser Begriff, oft auch als Roll-off-Faktor bezeichnet, bezieht sich auf den Anteil der Bandbreite, der über die Nyquist-Bandbreite hinausgeht. Die Nyquist-Bandbreite ist die theoretisch minimale Bandbreite (Rsym​/2 Hz, wobei Rsym​ die Symbolrate ist), die benötigt wird, um Symbole ohne Inter-Symbol-Interferenz (ISI) zu übertragen, assuming ideal conditions (rechteckige Pulse im Zeitbereich, was im Frequenzbereich unendliche Bandbreite erfordert).

  • In der Praxis sind rechteckige Pulse nicht realisierbar und würden zu unendlicher Bandbreite und starker ISI führen. Stattdessen werden Pulsshaping-Filter (wie Raised-Cosine-Filter) verwendet, die Pulse erzeugen, die im Frequenzbereich mehr Bandbreite benötigen als die Nyquist-Bandbreite, aber so geformt sind, dass sie ISI bei der idealen Abtastzeit im Empfänger vermeiden.
  • Die Excess Bandwidth (oder der Roll-off-Faktor α) gibt an, wie viel breiter das Frequenzspektrum des Signals ist als die Nyquist-Bandbreite. Die benötigte Bandbreite ist dann B=Rsym​×(1+α). Ein Excess Bandwidth von 0,25 bedeutet z.B., dass das Signal 25% mehr Bandbreite benötigt als die Nyquist-Bandbreite.
  • Ein kleinerer Roll-off-Faktor führt zu einer höheren spektralen Effizienz (mehr Bits pro Hz), erfordert aber auch komplexere Filter und ist empfindlicher gegenüber Timing-Fehlern.