Kryentech Logo Elektrotechnik Bericht

← Elektrotechnik Übersicht

NOMA für IoT – Grundlagen und praktische Umsetzung

Non-Orthogonal Multiple Access, Mehrnutzer-Funk und Software Defined Radio

Titelgrafik: NOMA, Mehrnutzer-Funk und Signalverarbeitung
Übersichtsgrafik: Mehrnutzer-NOMA mit SDR und Signalverarbeitungskette.

Kapitel 1 – Einleitung: Warum NOMA für IoT wichtig ist

Im Folgenden wird beschrieben, wie Non-Orthogonal Multiple Access (NOMA) mit Software Defined Radio (SDR) umgesetzt und im Labor erprobt wurde. Ausgangspunkt ist die Frage, ob sich zwei Nutzer gleichzeitig im selben Frequenzband so übertragen lassen, dass ein Empfänger beide Datenströme wieder trennen kann – ohne sie durch Zeitslots oder getrennte Träger strikt zu isolieren.

Im Versuchsaufbau arbeiteten zwei unabhängige Sender (je ein SDR) und ein gemeinsamer Empfänger. Die Basisbandverarbeitung (Filter, Synchronisation, Demodulation und sukzessive Interferenzunterdrückung, SIC) wurde überwiegend in GNU Radio und ergänzend in Python umgesetzt; ausgewertet wurden unter anderem Bitfehlerrate (BER) und die Abhängigkeit vom Leistungsverhältnis der Nutzer. Die Abbildungen und Kurven auf dieser Seite stammen aus denselben Messungen.

Die drahtlose Datenübertragung spielt eine zentrale Rolle in modernen technischen Systemen. Besonders im Bereich des Internet of Things (IoT) steigt die Anzahl vernetzter Geräte stark an. Sensoren, Steuerungen und eingebettete Systeme senden laufend Daten – oft gleichzeitig und auf begrenzten Funkressourcen.

Dabei entsteht ein grundlegendes Problem:

Kernpunkt: Je mehr Geräte senden, desto häufiger kommt es zu Kollisionen.

Gerade bei energieoptimierten IoT-Systemen wird oft auf aufwendige Protokolle oder Rückmeldungen verzichtet. Das spart Energie, bedeutet aber auch, dass kollidierende Datenpakete häufig verloren gehen. Klassische Verfahren wie Zeitmultiplex (TDM) oder Frequenzmultiplex (FDM) versuchen dieses Problem zu umgehen, indem sie die Nutzer strikt trennen – entweder in der Zeit oder in der Frequenz. Diese Ansätze skalieren jedoch nur begrenzt und nutzen die verfügbaren Ressourcen nicht optimal aus.

Eine alternative Lösung ist Non-Orthogonal Multiple Access (NOMA).

Zentraler Unterschied: Mehrere Teilnehmer senden gleichzeitig auf derselben Frequenz.

Die Trennung der Signale erfolgt nicht mehr über getrennte Kanäle, sondern durch Signalverarbeitung im Empfänger. Dabei werden überlagerte Signale gezielt rekonstruiert und voneinander getrennt.

In der Theorie wirkt dieses Konzept relativ einfach. In der Praxis entstehen jedoch zahlreiche Herausforderungen:

  • Rauschen und Störungen
  • Frequenz- und Phasenfehler
  • unterschiedliche Signalstärken
  • Synchronisationsprobleme

Damit NOMA zuverlässig funktioniert, muss der Empfänger komplexe Verarbeitungsschritte durchführen. Ein zentrales Verfahren dabei ist die sukzessive Interferenzunterdrückung (SIC), bei der Signale schrittweise erkannt, rekonstruiert und vom Gesamtsignal abgezogen werden.

Dieser Artikel zeigt, wie sich ein solches System praktisch umsetzen lässt – von den Grundlagen der Funkübertragung bis zur realen Signalverarbeitung mit Software Defined Radio.

Kapitel 2 – Grundlagen: Software Defined Radio und Datenübertragung

Software Defined Radio (SDR)

Ein Software Defined Radio (SDR) ist ein Funksystem, bei dem möglichst viele klassische Hardware-Funktionen durch Software ersetzt werden.

In einem klassischen Funkempfänger sind viele Schritte fest in Hardware implementiert:

  • Mischer
  • Filter
  • Demodulator

Beim SDR hingegen wird das Signal möglichst früh digitalisiert und danach rein softwarebasiert verarbeitet.

Funktionsprinzip eines SDR

Der Signalfluss sieht vereinfacht so aus:

  1. Antenne empfängt das HF-Signal.
  2. Der Mischer verschiebt das Signal in eine niedrigere Frequenz (Zwischenfrequenz oder Basisband).
  3. Der ADC (Analog-Digital-Wandler) digitalisiert das Signal.
  4. Die digitale Signalverarbeitung übernimmt:
    • Filterung
    • Demodulation
    • Synchronisation
    • Dekodierung

Vorteil für diesen Aufbau

Entscheidend: Das gesamte Verhalten des Funkempfängers ist programmierbar.

Das ist genau der Grund, warum SDR für NOMA gut passt:

  • mehrere überlagerte Signale lassen sich flexibel analysieren
  • Algorithmen wie SIC lassen sich direkt implementieren
  • Anpassungen sind ohne Hardwareänderung möglich

Grundlagen der digitalen Datenübertragung

Damit ein Funksystem funktioniert, müssen digitale Daten in ein analoges Signal umgewandelt werden.

Modulation – Beispiel QPSK

In diesem System wird Quadraturphasenumtastung (QPSK) verwendet.

Eigenschaften:

  • 2 Bit pro Symbol
  • doppelte Datenrate gegenüber BPSK
  • robuste und weit verbreitete Modulation

Die Symbole werden als Punkte in der komplexen Ebene dargestellt:

  • Realteil → In-Phase (I)
  • Imaginärteil → Quadratur (Q)

Typische Symbolwerte (I, Q):

  • (1, 1)
  • (−1, 1)
  • (−1, −1)
  • (1, −1)

Hinweis: Daraus ergibt sich das übliche QPSK-Konstellationsdiagramm.

Für das erweiterte QPSK (inkl. Anpassung der Bytes für GNU Radio) wird im Sender die Funktion adjust_data verwendet (Auszug aus BAT_NOMA_Transmitter.py):

Python – adjust_data (erweitertes QPSK, aus BAT_NOMA_Transmitter.py)
def adjust_data(data):  # erweitertes QPSK
    new_data = np.zeros(len(data) * 2, dtype=int)
    data_temp = np.zeros(len(data) * 2, dtype=int)
    for i in np.arange(len(data_temp)):
        data_temp[i] = data[int(i / 2)]
    for j in np.arange(len(new_data)):
        if (j % 2) == 0:
            new_data[j] = (np.uint8(np.uint8(data_temp[j] / (64)) * 16)) | (
                np.uint8(np.uint8(data_temp[j] * 4) / 64))
        if (j % 2) == 1:
            new_data[j] = np.uint8(np.uint8(np.uint8(data_temp[j] / 4) * 64) / 4) | (
                np.uint8(np.uint8(data_temp[j] * 64) / 64))
    return new_data

Im GNU-Radio-Block Constellation Object sind die 16 Symbolpositionen u. a. mit vier QPSK-Punkten und mehreren Null-Symbolen (0+0j) konfiguriert (siehe Anhang der Arbeit).

QPSK-Konstellationsdiagramm mit vier Symbolpunkten in der I-Q-Ebene
QPSK in der komplexen Ebene: die vier zulässigen Symbolpunkte (I/Q).

Impulsform – Root Raised Cosine

Damit die Symbole sauber übertragen werden, wird eine spezielle Impulsform verwendet: ein Root-Raised-Cosine-Filter (RRC).

Warum?

  • reduziert Intersymbolinterferenz (ISI)
  • ermöglicht saubere Symboltrennung
  • optimiert die Bandbreitennutzung

Wichtig: Sender und Empfänger verwenden zusammen einen Matched Filter (typischerweise je ein RRC); idealerweise hebt sich die ISI dabei auf.

Impulsform und Spektrum des Root-Raised-Cosine-Filters
Root Raised Cosine: zeitlicher Impulsverlauf und zugehörige spektrale Begrenzung (Matched-Filter-Kontext).

Die Impulsformung im Empfänger verwendet explizit berechnete RRC-Koeffizienten und die Faltung zu rcos (Auszug aus BAT_NOMA_Receiver.py):

Python/NumPy – RRC-Impuls und Raised-Cosine (aus BAT_NOMA_Receiver.py)
rrcos = np.array(
    [1, 1, 1, 0.95256299, 0.7945013, 0.56381161, 0.3173851, 0.11599391, 0.00930381])
rrcos = np.sqrt(np.concatenate((np.array([1]), rrcos, np.zeros(50 - 19), np.flip(rrcos))))
rrcos = np.fft.fftshift(np.real(np.fft.ifft(rrcos)))
rrcos = rrcos / np.sqrt(np.sum(np.square(rrcos)))
rcos = np.convolve(rrcos, rrcos)

Der Sender nutzt parallel den RRC-Block in GNU Radio; die Koeffizienten müssen zur gleichen Symbolrate/SPS passen.

Frequenzwahl in der Praxis

Die Wahl der Frequenz hat grossen Einfluss auf die Signalqualität.

Typische Beobachtungen:

  • 2,4 GHz → viele Störungen (WLAN, Bluetooth)
  • niedrigere Frequenzen → oft stabilere Übertragung

Vorteil tieferer Frequenzen: weniger Interferenzen und oft geringerer Frequenzoffset zwischen den Geräten.

Aufbau eines Datenpakets

Für die Übertragung werden kleine Burst-Pakete verwendet – typisch für IoT.

Ein Paket besteht aus:

  • Präambel – dient zur Synchronisation und zur Erkennung des Signals
  • Header – enthält Metadaten (z. B. Empfänger)
  • Nutzdaten – die eigentliche Information

Warum die Präambel wichtig ist

Der Empfänger weiss nicht, wann ein Signal beginnt. Die Präambel dient dazu,

  • das Signal im Datenstrom zu finden,
  • die Zeitbasis zu synchronisieren,
  • die Demodulation vorzubereiten.

Datenfluss im System

Gesamtablauf – Sender:

  1. Daten → QPSK-Modulation
  2. Pulsformung (RRC)
  3. Hochmischen auf die Trägerfrequenz
  4. Aussenden über die Antenne

Gesamtablauf – Empfänger:

  1. Empfang über die Antenne
  2. Runtermischen ins Basisband
  3. Digitalisierung
  4. Filterung und Synchronisation
  5. Demodulation
  6. Datenauswertung

Wichtig für NOMA

Alle diese Grundlagen sind entscheidend, weil NOMA nur funktioniert, wenn das Signal sehr sauber verarbeitet wird.

Schon kleine Fehler führen zu:

  • falscher Symbolerkennung
  • schlechter Interferenzsubtraktion
  • nicht rekonstruierbaren Nutzersignalen

Kapitel 3 – Funktionsweise von NOMA

In diesem Aufbau wird NOMA als Power-Domain-NOMA behandelt: die Nutzer unterscheiden sich primär durch die empfangene Leistung (durch unterschiedliche Sendeamplituden und Kanaldämpfung). Der Empfänger nutzt diese Hierarchie, um zuerst den stärksten „Layer“ zu decodieren und ihn schrittweise abzuziehen. Die folgenden Abschnitte formalisieren dieses Bild und führen zum SINR – die Messauswertung in Kapitel 7 bezieht sich auf dieselben Grössen.

Grundidee von NOMA

Klassische Mehrfachzugriffsverfahren trennen Nutzer strikt:

  • TDM → unterschiedliche Zeiten
  • FDM → unterschiedliche Frequenzen

NOMA macht das Gegenteil: Mehrere Teilnehmer senden gleichzeitig auf derselben Frequenz und zur selben Zeit.

Die Trennung erfolgt erst im Empfänger – durch Signalverarbeitung.

Vergleich orthogonaler Mehrfachzugriff (TDM, FDM) mit NOMA im gleichen Zeit-Frequenz-Ressource
Gegenüberstellung: strikte Trennung (orthogonal) versus gemeinsame Nutzung derselben Ressource bei NOMA.

Mathematisches Modell

Das empfangene Signal ist die Überlagerung mehrerer Sender:

\[ x(t) = \sum_{k=1}^{N} P_k \cdot s_k(t) \]

  • \(s_k(t)\): Signal des Senders \(k\) (z. B. modulierte Symbole inkl. Pulsformung)
  • \(P_k\): zugehörige Sendeleistung (oder Amplitudenfaktor, je nach Modellierung)
  • \(x(t)\): Gesamtsignal am Empfangsort (vor Rauschen; Kanal kann separat modelliert werden)

Kernpunkt: Alle Nutzersignale liegen im selben Frequenzband und sind gleichzeitig aktiv.

Schematische Darstellung der NOMA-Überlagerung mehrerer Nutzer im gleichen Band
Illustration des Überlagerungsmodells: mehrere Nutzerbeiträge im gemeinsamen Band.

Trennung über die Leistung (Power Domain)

Der zentrale Trick bei gängigem Power-Domain-NOMA:

Unterschiedliche empfangene Signalstärken – typischerweise durch unterschiedliche Sendeleistung und/oder Dämpfung im Kanal.

Typisches Setup (idealisiert):

  • weiter entfernter oder schwächerer Kanal → höhere Sendeleistung, damit am Empfänger noch ausreichend Energie ankommt
  • naher Sender → geringere Sendeleistung, am Empfänger trotzdem noch detektierbar

Dadurch entsteht am Empfänger grob gesprochen: ein dominantes Signal und ein oder mehrere schwächere Signale darunter.

Was passiert beim Empfänger?

Das empfangene Signal sieht nicht mehr wie ein sauberes Einzelnutzer-QPSK-Signal aus, sondern ist

  • überlagert,
  • verrauscht,
  • und durch Kanaleffekte verzerrt.

Intuition: Das schwächere Nutzersignal wirkt zunächst wie zusätzliches Rauschen gegenüber dem stärkeren.

Zeitverlauf: einzeln ausgesendete Nutzersignale und überlagertes Empfangssignal
Senderseitig getrennte Burst-Signale und resultierende Überlagerung am Empfang (Basisband).
Abtastung des überlagerten NOMA-Signals im Zeit- und Wertebereich
Diskrete Abtastwerte des überlagerten Signals – Ausgangspunkt für die digitale Verarbeitung.

Sukzessive Interferenzunterdrückung (SIC)

Das zentrale Verfahren zur Nutzertrennung ist die Successive Interference Cancellation (SIC) – sukzessive Interferenzunterdrückung.

Ablauf Schritt für Schritt

  1. Starkes Signal erkennen – es ist dominant im Gesamtsignal und kann (zunächst) wie ein Einzelnutzersignal demoduliert werden.
  2. Signal rekonstruieren – aus den decodierten Symbolen wird das Beitragssignal des starken Nutzers möglichst genau wieder aufgebaut (inkl. Kanalschätzung).
  3. Vom Empfangssignal subtrahieren – die Rekonstruktion wird vom Gesamtsignal abgezogen.
  4. Schwaches Signal wird sichtbar – war zuvor im Überlagerungs-„Rauschen“ verborgen, kann nun ausgewertet werden.
  5. Wiederholen – für weitere Nutzer in der Reihenfolge abnehmender empfangener Stärke.
Ablaufdiagramm der sukzessiven Interferenzunterdrückung SIC
SIC im Überblick: Detektion, Rekonstruktion und schrittweise Subtraktion der Nutzeranteile.

Warum das funktioniert

Das gelingt nur, wenn

  • die Signalstärken (bzw. empfangenen Leistungen) klar getrennt sind,
  • das dominante Signal zuverlässig erkannt wird,
  • und die Rekonstruktion sehr genau ist.

Sonst: Es bleibt zu viel Restfehler im Signal – nachfolgende Demodulationsschritte brechen ein.

Betrachtung im Konstellationsdiagramm

Bei QPSK ergibt sich ein charakteristisches Verhalten:

  • ohne NOMA → vier klare Punkte in der I/Q-Ebene
  • mit NOMA → die effektiven Symbolpositionen verschieben sich durch die Überlagerung

Intuition bei zwei QPSK-Nutzern: Jedes Symbol des einen Nutzers kann mit jedem Symbol des anderen kombiniert auftreten – grob können aus vier Einzelpunkten bis zu 16 unterscheidbare Überlagerungszustände werden (sofern beide Anteile relevant sind).

Konstellationsdiagramm: überlagerte QPSK-Symbole zweier Nutzer in der I-Q-Ebene
Symbolenebene bei NOMA: Überlagerung verschiebt die effektiven Konstellationspunkte.

Problem: Wenn das schwächere Signal zu stark ist, liegen Punkte nahe an Entscheidungsgrenzen – die Bitfehlerrate steigt. Wenn es zu schwach ist, geht es im Rauschen unter.

Konstellationsdiagramm nach teilweiser Subtraktion des dominanten Nutzers
Nach erfolgreicher SIC-Stufe: der schwächere Nutzer tritt in der Symbolenebene wieder klarer hervor.

Fazit: Es gibt ein optimales Leistungsverhältnis bzw. eine sorgfältige Planung von Leistungen und Kanalcodierung.

Einfluss von Rauschen und Kanal

In der Praxis kommen hinzu:

  • thermisches Rauschen
  • Kanal-Dämpfung und Schwund
  • Phasen- und Frequenzfehler (Trägeroffset)

Das Signal ist damit nicht nur überlagert, sondern zusätzlich gestört – Schätzung und Subtraktion in der SIC werden anspruchsvoller.

Signal-Rausch- bzw. Signal-zu-Interferenz-Verhältnis

Für Nutzer \(k\) lässt sich ein wirksames Verhältnis in der Form

\[ \mathrm{SINR}_k = \frac{P_k \cdot g_k}{\sum_{i \neq k} P_i \cdot g_i + N} \]

schreiben: Zähler Nutzsignal von \(k\), Nenner Interferenz durch andere Nutzer plus Rauschleistung \(N\). Die \(g_k\) sind die (hier vereinfacht angenommenen) Kanalverstärkungen.

Hinweis: Streng genommen handelt es sich um ein SINR (Signal-zu-Interferenz-und-Rausch-Verhältnis); oft wird es im Mehrnutzerkontext vereinfachend dem SNR zugeordnet. Andere Signale wirken wie zusätzliches Rauschen im Nenner.

Grenzen von NOMA

NOMA ist kein Allheilmittel. Kritisch sind u. a.:

  • ungünstiges Leistungsverhältnis
  • schlechte Synchronisation
  • ungenaues Subtrahieren in der SIC
  • starkes Rauschen oder sich schnell ändernde Kanäle

Dann bricht das Verfahren schnell zusammen – Fehler propagieren von Schritt zu Schritt.

Wichtige Erkenntnis

NOMA ist kein reines „Funkproblem“ – es ist in hohem Masse ein Signalverarbeitungsproblem.

Der Erfolg hängt stark ab von:

  • wie gut das Gesamtsignal geschätzt und synchronisiert wird,
  • wie präzise starke Nutzer rekonstruiert und subtrahiert werden.

Kapitel 4 – Datenverarbeitung: Vom Sender bis zum Empfänger

In diesem Kapitel geht es um den kompletten Signalfluss im System – nicht nur was passiert, sondern wie die Daten konkret verarbeitet werden müssen, damit NOMA überhaupt funktioniert.

Am Empfänger liegt nach dem SDR ein kontinuierlicher Strom komplexer Basisband-Samples vor (I/Q). Die weiteren Schritte laufen softwareseitig: Pufferung, Matched Filter (RRC), Suche der Präambel per Korrelation, Frequenz- und Taktanpassung, Downsampling auf Symbolrate, harte Entscheidung auf QPSK (+ Null-Symbol), anschliessend Rekonstruktion des starken Nutzers für die SIC. GNU Radio übernimmt den grossen Teil der Signalflussgraphik; kritische Auswertungen und die SIC-Arithmetik lassen sich in einem Python-Skript kapseln, das auf die gleiche Samplebasis zugreift wie der Flowgraph (File Sink, TCP oder Embedded Python Block).

Gesamtübersicht

Das System besteht aus drei Hauptteilen:

  • Sender (TX)
  • Funkkanal
  • Empfänger (RX + Signalverarbeitung)

Ablauf in Kurzform: Daten → Modulation → Funk → Empfang → Verarbeitung → Dekodierung → (Vorbereitung) SIC

Ablaufdiagramm vom Datenpaket über Sender, Kanal und Empfänger bis zur SIC
Gesamtüberblick der Signalverarbeitungskette (TX – Kanal – RX inkl. NOMA/SIC-Vorbereitung).

Verarbeitung im Sender

1. Datenaufbereitung

Die Daten werden als kleine Burst-Pakete übertragen. Typischer Aufbau:

  • Präambel (Synchronisation)
  • Header (Metadaten)
  • Nutzdaten

Hinweis: Kurze Pakete sind typisch für IoT und begrenzen gleichzeitig die Zeit, in der Kanal und Taktung als „fast konstant“ angenommen werden können.

Darstellung eines Burst-Datenrahmens mit Präambel, Header und Nutzdaten
Beispielhafte Frame-Struktur: Präambel, Metadaten und Nutzlast im Zeitbereich.
2. Erweiterte QPSK-Modulation (Praxispunkt)

In der Theorie reicht klassisches QPSK. In der Praxis trat hier ein Problem auf:

SDR erzeugt Einschwing- und Übergangseffekte, wenn zeitweise „kein Nutzsignal“ gesendet wird. Das führt zu Störungen am Burst-Anfang und kann Nutzdaten praktisch unbrauchbar machen.

Lösung: Null-Symbol – die Modulation wurde um ein zusätzliches Symbol (0, 0) in der I/Q-Ebene ergänzt, das gesendet wird, wenn keine Nutzdaten anliegen (Ruhe-/Füllphase).

Vorteil: Der Sendepfad bleibt durchgehend „aktiv“, Einschwingartefakte am Beginn echter Nutzdaten lassen sich deutlich reduzieren.

Konstellationsdiagramm mit QPSK-Punkten und Null-Symbol in der Mitte
Erweiterte Symbolalphabet-Ebene: QPSK plus Null-Symbol \((0,0)\) für ruhende Phasen ohne harten Sendepfad-Wechsel.
3. Pulsformung

Nach der Modulation folgt die Pulsformung mit Root Raised Cosine (RRC) – wie in Kapitel 2 beschrieben: bandbegrenzend, mit matched Filter am Empfänger, um ISI zu minimieren.

Filter- und Einschwingverhalten der Pulsformung um Symbolgrenzen
Praxisrelevant: Einschwingen und Übergänge der Pulsformung – Motivation für durchgängige Anregung bzw. Null-Symbol.
4. Leistungsanpassung (entscheidend für NOMA)

Vor dem Senden wird das Basisbandsignal amplitudenmässig skaliert – unterschiedliche Sender erhalten unterschiedliche Amplituden (bzw. Leistungen), damit am Empfänger die gewünschte Dominanz eines Nutzers entsteht und die SIC-Reihenfolge sinnvoll wird.

5. Übertragung über SDR

Im SDR: das (diskrete) Basisbandsignal wird erzeugt, auf die Trägerfrequenz gemischt (z. B. 434 MHz) und über die Antenne ausgesendet.

GNU Radio Flowgraph des NOMA-Senders
GNU Radio: Senderpfad (Modulation, Pulsformung, SDR-Ausgabe).

Funkkanal

Zwischen Sender und Empfänger:

  • überlagern sich die Nutzerbeiträge zu einem empfangenen Wellenzug,
  • nimmt die empfangene Leistung typischerweise mit der Distanz ab,
  • kommt Rauschen hinzu,
  • wirken ggf. Fremdstörer oder Mehrwegeeffekte.

Ergebnis: ein einziges komplexes, gestörtes Empfangssignal.

Verarbeitung im Empfänger

1. Empfang und Digitalisierung

Antenne → SDR (Mischung ins Basisband) → ADC: es entstehen komplexe digitale Samples.

GNU Radio Flowgraph des NOMA-Empfängers
GNU Radio: Empfangspfad (Digitalisierung, Filter, Synchronisation, Demodulation).
2. Buffering

Der Samplestrom wird in einen Puffer geschrieben. Grund: der Datenstrom ist kontinuierlich, aber die Auswertung erfolgt burstweise – Pakete müssen erst gefunden und ausgeschnitten werden.

3. Matched Filter

Das Signal wird mit dem zum Sender passenden Matched Filter (hier: RRC-Gegenstück) gefiltert. Ziel: optimale SNR an den Symbolzeitpunkten und Wiederherstellung der erwarteten Pulsform.

4. Präambel-Erkennung

Das Signal wird nach dem bekannten Präambelmuster durchsucht, typischerweise per Kreuzkorrelation. Ein ausgeprägter Peak bedeutet: Paket gefunden, Startindex bekannt.

Im Empfänger werden Referenz-FFT der Präambel über mehrere Frequenzbänder vorbereitet; die Zeitsuche läuft über das Maximum der IFFT-Korrelation (Auszug aus BAT_NOMA_Receiver.py):

Python/NumPy – Präambel in Frequenzbändern und Korrelation (Auszug)
preamble = np.exp(0.5j * np.pi * (symbols[:preamble_len] + 0.5))
pus4 = np.vstack((np.array(preamble), np.zeros((3, len(preamble)))))
pus4 = np.reshape(pus4, 4 * preamble_len, order='F')
pus4fft = np.zeros((sync_bands, fft_len), dtype=np.complex64)
for i in np.arange(sync_bands):
    pus4fft[i, :] = np.fft.fft(np.concatenate((
        pus4 * np.exp(2j * np.pi / (4 * preamble_len) / 3
            * (i - sync_bands / 2) * np.arange(4 * preamble_len)),
        np.zeros(fft_len - 4 * preamble_len, dtype=np.complex64))))
# ... nach RRC: rxfft = np.fft.fft(rxp)
# ccp = max über Bänder von |ifft(rxfft * conj(pus4fft[i]))| → Peak i0

Vollständige Schleife inkl. Schwellwert tsyncthreshold und Plots siehe BAT_NOMA_Receiver.py.

5. Synchronisation
  • Zeitsynchronisation: passende Sampling-Phasen bzw. Symboltakte finden, oft fein nach der Grobposition aus der Präambel.
  • Downsampling: von mehreren Samples pro Symbol auf ein Sample pro Symbol (nach Filterung und Taktanpassung).
  • Frequenzsynchronisation: Schätzung und Korrektur des Trägerfrequenzoffsets, damit die Konstellation nicht dauernd „dreht“.
6. Phasenkorrektur (optional, für NOMA oft wichtig)

Bei längeren Blöcken oder Restfehlern kann eine PLL (Phase Locked Loop) oder ein vergleichbares Tracking die Phasendrift ausgleichen und die Symbolentscheidung stabilisieren.

7. Demodulation

Komplexe Samples werden auf Symbole abgebildet, Symbole auf Bits – zunächst für das stärkste (dominante) Nutzersignal.

Vorbereitung für die SIC

Nach der Demodulation folgt ein kritischer Schritt: Das Nutzersignal wird rekonstruiert, so wie es – idealisiert – vor der Überlagerung aussah.

Rekonstruktion
  • Symbole → komplexe Konstellationspunkte (inkl. ggf. Null-Symbol)
  • Upsampling auf die Sample-Rate der Pulsformung
  • Faltung mit der gleichen Impulsform wie im Sender (RRC)

Ziel: ein möglichst genaues, rauschfreies Referenzsignal des decodierten starken Nutzers im Basisband.

Die Rekonstruktion des decodierten Nutzers erfolgt mit calculated_original_signal (Auszug aus BAT_NOMA_Receiver.py):

Python – calculated_original_signal (aus BAT_NOMA_Receiver.py)
def calculated_original_signal(estimated_symbol):
    estimated_Signal = np.zeros(len(estimated_symbol[0:464]), dtype='complex_')
    for m in np.arange(len(estimated_symbol[0:464])):
        if estimated_symbol[m] == 0:
            estimated_Signal[m] = np.cdouble(complex(1, 1))
        if estimated_symbol[m] == 1:
            estimated_Signal[m] = np.cdouble(complex(-1, 1))
        if estimated_symbol[m] == 2:
            estimated_Signal[m] = np.cdouble(complex(-1, -1))
        if estimated_symbol[m] == 3:
            estimated_Signal[m] = np.cdouble(complex(1, -1))
    sub_signal = np.zeros(len(estimated_Signal) * 4, dtype=np.complex64)
    j = 0
    while j <= len(sub_signal) - 1:
        if j % 4 == 0:
            sub_signal[j] = estimated_Signal[int(j / 4)]
        else:
            sub_signal[j] = 0
        j = j + 1
    sub_signal = np.convolve(sub_signal, rcos)
    return np.array(sub_signal, dtype=np.cdouble)

Anschliessend folgen Phasenkorrektur mit gespeicherter PLL-Referenz, Skalierung mit gleitendem Mittel und Subtraktion (SIC-Block im gleichen File).

Skalierung an die empfangene Amplitude

Die Rekonstruktion muss in Amplitude und Phase zum tatsächlich empfangenen Anteil passen. Schwankt die Amplitude, hilft z. B. ein gleitender Mittelwert der Symbol-Maxima (oder eine Kanalschätzung), den Skalierungsfaktor robust zu setzen.

Zentraler Punkt für die Subtraktion

Für die SIC wird typischerweise nicht das rohe ADC-Signal „blind“ verwendet, sondern die Kette nach Matched Filter und Synchronisation – dort ist die Form des starken Nutzers am besten mit dem decodierten Symbolstrom in Einklang zu bringen.

Ohne diese Übereinstimmung bleiben nach der Subtraktion zu grosse Restanteile; das zweite Signal bleibt verborgen – NOMA bricht praktisch zusammen.

Warum dieser Aufwand nötig ist

Ohne genaue Schätzung von Takt, Frequenz, Phase und Amplitude passt die Rekonstruktion nicht exakt auf den überlagerten Empfang – die Subtraktion wird fehlerhaft, und Fehler pflanzen sich auf alle folgenden SIC-Stufen fort.

Kapitel 5 – Sukzessive Interferenzunterdrückung (SIC) im Detail

Die sukzessive Interferenzunterdrückung (Successive Interference Cancellation, SIC) ist der zentrale Mechanismus, der NOMA in der Praxis erst handhabbar macht.

Während im vorherigen Kapitel die Signalverarbeitung vorbereitet wurde, erfolgt hier die eigentliche Trennung der überlagerten Nutzeranteile.

Ziel: ein überlagertes Empfangssignal in seine ursprünglichen Einzelkomponenten zerlegen bzw. nacheinander so weit zu isolieren, dass schwächere Nutzer demoduliert werden können.

Grundprinzip

Das empfangene Signal (vereinfacht für zwei Nutzer im Basisband) lässt sich schreiben als

\[ r(t) = s_1(t) + s_2(t) + n(t) \]

  • \(s_1(t)\): dominanter Nutzerbeitrag
  • \(s_2(t)\): schwächerer Nutzerbeitrag
  • \(n(t)\): Rauschen (und ggf. modellierte Reststörungen)

Idee von SIC: starken Anteil \(s_1\) zuverlässig schätzen und demodulieren → rekonstruieren → vom Empfang subtrahieren → dadurch wird \(s_2\) „sichtbarer“ für die nächste Demodulationsrunde.

Vergleich empfangenes Gesamtsignal und rekonstruiertes SIC-Referenzsignal
Empfangenes Überlagerungssignal und zugehörige Rekonstruktion des dominanten Nutzers (Vorbereitung zur Subtraktion).

Algorithmischer Ablauf

Schritt 1 – Detektion des dominanten Signals

Nach der Vorverarbeitung aus Kapitel 4 ist das Signal synchronisiert, der Frequenzoffset ist grob korrigiert, und es liegt nach Matched Filter eine geeignete Form für die Symbolentscheidung vor.

Dann kann das stärkste Signal zunächst wie ein Einzelnutzersystem demoduliert werden.

Wichtig: Der schwächere Nutzer wirkt hier wie zusätzliches Rauschen/Interferenz. Die Bitfehlerrate bleibt dennoch niedrig, solange das Leistungsverhältnis und die Kanalqualität passen.

Schritt 2 – Symbolbasierte Rekonstruktion

Die demodulierten Symbole werden auf komplexe Konstellationspunkte abgebildet. Beispiel QPSK (wie im Aufbau verwendet; Gray-Mapping typisch):

  • \(00 \rightarrow 1 + j\)
  • \(01 \rightarrow -1 + j\)
  • \(11 \rightarrow -1 - j\)
  • \(10 \rightarrow 1 - j\)

(Bei erweitertem Alphabet aus Kapitel 4 kommt ggf. das Null-Symbol \((0,0)\) hinzu.)

Ergebnis: eine diskrete Symbolfolge im I/Q-Raum.

Schritt 3 – Upsampling

Die Symbolfolge wird wieder auf die Sample-Rate der Pulsformung gebracht: pro Symbol mehrere Samples, dazwischen (idealisiert) Nullen einfügen. Das ist nötig, um die kontinuierliche Sendepulsform erneut aufzubauen.

Schritt 4 – Pulsformung (Rekonstruktion des Sendesignals)

Das upsamplete Symbolsignal wird mit der Impulsform gefaltet (diskret: Faltungssumme), wie im Sender:

\[ s_{\mathrm{rek}}(t) = s_{\mathrm{sym}}(t) \ast h(t) \]

Dabei ist \(h(t)\) die Impulsantwort des Root-Raised-Cosine-Filters (Senderseite). Ergebnis: eine Approximation des störfreien Sendesignals des starken Nutzers im Basisband – bis auf Skalierung und Kanalphase, die im nächsten Schritt angeglichen werden.

Schritt 5 – Kritisch: Skalierung

Hier unterscheidet sich die Praxis oft stark von einer naiven Theorie.

Naiv (schlecht in der Praxis): Skalierung nur nach der Maximalamplitude des Roh-Empfangssignals – problematisch wegen Rauschen, Überlagerung und SDR-/AGC-Schwankungen.

Praxisnah: Skalierung z. B. über einen gleitenden Mittelwert der Symbol-Maxima (oder eine robuste Kanalamplitudenschätzung). Vorteile: weniger Ausreisser durch Rauschen, stabilere Anpassung bei NOMA-Überlagerung, dynamische Nachführung.

Skalierung der rekonstruierten Amplitude an den empfangenen Nutzeranteil
Amplitudenanpassung der Rekonstruktion: ohne passende Skalierung bleibt nach der Subtraktion ein grosser Rest.
Schritt 6 – Subtraktion

Der eigentliche SIC-Schritt im Basisband:

\[ r_{\mathrm{neu}}(t) = r(t) - \alpha \cdot s_{\mathrm{rek}}(t) \]

\(\alpha\) fasst Amplituden- und Phasenanpassung zusammen (ggf. komplex, je nach Implementierung).

Die empfangenen Signale ohne vorherige Verarbeitung
Die empfangenen Signale ohne vorherige Verarbeitung.
Ohne vorherige Verarbeitung der Signale kommt es zu einem grossen Rest bei der Subtraktion.
Ohne vorherige Verarbeitung der Signale kommt es zu einem grossen Rest bei der Subtraktion.

Wichtig: \(r(t)\) ist hier das vorverarbeitete Signal – gefiltert und synchronisiert, nicht der ungefilterte Roh-ADC-Strom. So stimmen Zeitbasis und Pulsform zwischen Empfang und Rekonstruktion überein.

Ergebnis: der dominante Nutzeranteil wird weitgehend entfernt; der schwächere tritt im Restsignal hervor.

Im Notebook wird nach Phasenkorrektur von whole_rx die Rekonstruktion Sic_Signal mit einem gleitenden Mittel der Betragsmaxima skaliert und vom Ausschnitt subtrahiert; anschliessend wird der Frequenzoffset für den zweiten Nutzer mitkorrigiert (Auszug aus BAT_NOMA_Receiver.py):

Python – SIC-Kern (Auszug aus BAT_NOMA_Receiver.py)
Sic_Signal = calculated_original_signal(estsymb)
for o in np.arange(whole_rx.shape[0] - 50 - 48):
    whole_rx[o + 50] *= np.exp(-1j * refph[int(o / 4)])
start_value = (np.mean(np.abs(rx[i0:i0 + 64 * 4:4].real)))
for i in np.arange(0, 1914):
    new_value = (39 * start_value + np.abs(whole_rx[int(i / 4) + 40].real)) / 40
    Sic_Signal[i + 40] = Sic_Signal[i + 40] * start_value * 1.1
    start_value = new_value
rx[i0 - 50:i0 + 464 * 4 + 48] = whole_rx[0:464 * 4 + 50 + 48] - Sic_Signal
rx[i0:i0 + 464 * 4] = rx[i0:i0 + 464 * 4] * np.exp(
    -1j * (-1 * ph0) - 2j * np.pi * ((-1) * f0) / fft_len * np.arange(i0, i0 + 4 * symbols.shape[0]))

Die Variablen i0, ph0, f0, estsymb, refph stammen aus der Präambel-/PLL-Kette im selben Skript.

Problem: Fehlerverstärkung

Die Subtraktion ist nie perfekt. Ursachen u. a.:

  • Rauschen
  • Phasen- und Frequenzrestfehler
  • ungenaues \(\alpha\) bzw. falsche Kanalschätzung
  • Synchronisationsfehler

Folge: Rest-Artefakte im Signal – sie können das zweite Nutzersignal stark stören und die Demodulation nach der ersten SIC-Stufe verschlechtern.

Erweiterte Optimierungen (Engineering-Learnings)

1. Konsequent das aufbereitete Signal nutzen

Statt am direkt empfangenen Rohsignal zu subtrahieren, wird die Kette gefiltert, takt- und frequenzkorrigiert verwendet – das ist oft der Unterschied zwischen „SIC wirkt“ und „SIC versagt“.

2. Phasenregelkreis (PLL)

Problem: Phasendrift → Rekonstruktion passt nicht exakt auf den Empfang.

Lösung: PLL oder vergleichbares Tracking für laufende Phasenkorrektur. Effekt: bessere Übereinstimmung und spürbar bessere Subtraktion über längere Pakete.

3. Frequenzoffset bei mehreren Nutzern

Problem: unterschiedliche Sender können unterschiedliche Restoffsets erzeugen; nach Demodulation des ersten Nutzers kann das verbleibende Signal noch einen falschen Offset tragen.

Lösung: nach der ersten SIC-Stufe Offset neu schätzen und das Restsignal erneut synchronisieren, bevor der zweite Nutzer demoduliert wird.

Einfluss des Frequenzoffsets auf die Symbolkonstellation oder den Phasenverlauf
Restfrequenzoffset: ohne Nachführung „dreht“ die Konstellation – die Subtraktion und die zweite Demodulation leiden.
4. Signal-Zusammenführung im Gesamtkontext

Wird nur ein Zeitausschnitt oder ein Teilpfad bearbeitet, muss das Ergebnis wieder konsistent ins Gesamtprocessing eingebettet werden – relevant, wenn mehr als zwei Nutzer oder mehrere Bursts nacheinander verarbeitet werden.

Zusammenführung bearbeiteter Signalsegmente in den kontinuierlichen Empfangsdatenstrom
Zusammenführung: bearbeitete Ausschnitte müssen zeitlich und amplitude konsistent in den Puffer zurückgeschrieben werden.
Optimierter Ablauf des Basisbandsignals nach Filter- und Synchronisationskette
Programmablauf nach Optimierung von Filterung, Sync und PLL: stabilerer Verlauf für Demodulation und SIC.

Ergebnis der Optimierungen

In deinem Aufbau führten diese Massnahmen zu einer deutlichen Reduktion der dominanten Interferenz (grob im Bereich eines Faktors um 6 bei der messbaren Signalreduktion) und zu einer spürbar besseren Trennung – ohne diese Schritte war SIC praktisch nicht brauchbar.

Hinweis: Der genaue Faktor hängt von SNR, Leistungsverhältnis und Implementierung ab; entscheidend ist das relative Verbesserungsbild.

Restsignal nach SIC mit sichtbarem zweiten Nutzeranteil
Signal nach der ersten SIC-Stufe: der schwächere Nutzer wird im Zeitverlauf deutlicher.
Zeitausschnitt des Signals nach erfolgreicher Interferenzunterdrückung
Detailausschnitt nach SIC – zur Beurteilung von Restanteilen und verbleibender Struktur.

Grenzen von SIC

SIC ist empfindlich gegenüber:

  • falschem Leistungsverhältnis
  • hohem Rauschen
  • ungenauer Synchronisation

Kritischer Punkt: Wird das erste Signal falsch dekodiert, ist die Rekonstruktion falsch, die Subtraktion verschlechtert das Restsignal, und das zweite Signal wird praktisch unbrauchbar – klassische Fehlerfortpflanzung.

Zentrale Erkenntnis

SIC ist kein einfaches „Abziehen“ eines Signals. Es ist ein hochpräziser, iterativ wirkender Prozess aus Demodulation, Rekonstruktion, Amplituden-/Phasenanpassung und Subtraktion – jeder Fehler belastet alle folgenden Stufen.

Kapitel 6 – Durchführung des NOMA-Verfahrens im realen System

Nach der detaillierten Betrachtung von Signalverarbeitung und SIC beschreibt dieses Kapitel, wie das NOMA-Verfahren in einem konkreten Laboraufbau umgesetzt und getestet wurde.

Schwerpunkte: echte Signalüberlagerung, Detektion beider Nutzer, Anwendung von SIC und bewertbare Rekonstruktion des schwächeren Signals.

Nahaufnahme SDR-Hardware mit Antenne
SDR-Modul mit Antenne – einer der beiden Sender bzw. der Empfängerpfad.

Versuchsaufbau

Das System besteht aus:

  • 2 Sendern (je ein SDR)
  • 1 Empfänger (SDR)
  • Antennen mit geringem Abstand (Grössenordnung wenige Meter)

Szenario (Power Domain):

  • Sender 1 → höhere Sendeleistung (simuliert u. a. „weiter entfernt“ bzw. schwächerer Kanal)
  • Sender 2 → geringere Sendeleistung (näher / stärkerer Kanal)

Effekt: Am Empfänger entsteht ein NOMA-typisches Überlagerungsbild mit unterschiedlicher Dominanz der Nutzeranteile.

Das folgende Bild zeigt den Laboraufbau mit Antennen und SDR-Hardware.

Versuchsaufbau: Anordnung der Antennen und SDR-Geräte im Labor
Messaufbau: räumliche Anordnung von Sende- und Empfangsantennen.

Herausforderung: Gleichzeitige Übertragung

Zwei Signale wirklich gleichzeitig auszusenden ist in der Praxis anspruchsvoller als es klingt.

Steuerung erfolgte über TCP – das bringt kleine, aber variable Latenzen. Zusätzlich sind die Bursts sehr kurz (Grössenordnung Millisekunden), sodass schon geringe Jitter merkbar sind.

Ziel im Versuch: möglichst starke zeitliche Überlagerung der beiden Bursts im Empfang, trotz nicht idealer Triggerung.

Umgesetzt wurde das so, dass ein kleines Steuerskript (oder ein Block im Flowgraph) an beide Sender nacheinander oder parallel Kommandos schickt („Sende jetzt“). Wegen TCP-Buffering und OS-Scheduling ist die absolute Zeitlage der beiden HF-Bursts nicht deterministisch; deshalb ist die Präambel-Korrelation am Empfänger entscheidend, um jeden Beitrag im gemischten Signal wiederzufinden – und nach der SIC erneut für Nutzer 2.

Python – TCP an zwei GNU-Radio-Sender (aus BAT_NOMA_Transmitter.py)
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientSocket2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientSocket2.connect(("192.168.1.153", 9092))  # zweiter PC
clientSocket.connect(("localhost", 9092))
while i < 1:
    time.sleep(0.2)
    clientSocket2.send(send_zeros)
    clientSocket2.send(frame)
    clientSocket2.send(send_zeros)
    time.sleep(0.01)
    clientSocket.send(send_zeros)
    clientSocket.send(frame)
    clientSocket.send(send_zeros)

IP und Ports an die eigene Installation anpassen; frame enthält nach adjust_data angepasste Nutzbytes und Null-Symbol-Füllung.

Empfang des überlagerten Signals

Das empfangene Basisbandsignal zeigt erwartungsgemäss:

  • keine konstante Einhüllende,
  • sichtbare Schwankungen,
  • keine „saubere“ Einzelnutzer-Symbolstruktur im Rohverlauf.

Deutung: mehrere Nutzerbeiträge überlagern sich; genau dieses Signal ist die Ausgangsbasis für Präambel-Suche und SIC.

Schritt 1 – Detektion des ersten Signals (Präambel)

Wie in Kapitel 4/5: Kreuzkorrelation mit der bekannten Präambel.

Ergebnis: ausgeprägter Peak → Start des ersten nutzbaren Segments bzw. des zuerst ausgewerteten Bursts identifiziert.

Kreuzkorrelation der Präambel mit dem Empfangssignal
Kreuzkorrelation: Peaklage entspricht dem geschätzten Paketbeginn.
Erkanntes Nutzsignal im aufgenommenen Datenpuffer
Detektion: markierter Ausschnitt des empfangenen Bursts nach Präambel-basierter Lagefindung.

Signalinterpretation im Zeitverlauf

Im beobachteten Verlauf: die ersten Samples wirken relativ ruhiger, später nimmt die „Zerrissenheit“ zu.

Interpretation: zu Beginn dominiert faktisch ein Nutzeranteil stärker; im weiteren Verlauf wächst der Einfluss der Überlagerung mit dem zweiten Signal – konsistent mit leicht versetzten oder überlappenden Bursts.

Schritt 2 – Auswertung des dominanten Signals

Das stärkere Signal wird zuerst demoduliert.

Beobachtungen: trotz Überlagerung weiterhin gut auswertbar; die Symbolphasen bleiben weitgehend stabil.

Konstellationsdiagramm des dominanten Nutzers vor SIC
Demodulation Signal 1: Symbole als Winkel dargestellt. Im hinteren Teil des Signals kann man die Überlagerung mit dem zweiten Signal erkennen.

Geschätzte Bitfehlerrate (Versuch, Grössenordnung): sehr niedrig, etwa \(5 \cdot 10^{-3}\) (0,5 % der Bits fehlerhaft) – abhängig von SNR und exakter Burstlage.

Schritt 3 – Anwendung von SIC

Das dominierende Signal wird entfernt nach dem etablierten Schema: rekonstruieren (Symbole → Pulsform), skalieren, vom vorverarbeiteten Empfangssignal subtrahieren.

Effekt der Subtraktion

Nach der Subtraktion: die Amplitude des verbleibenden Signals sinkt deutlich, die Struktur ändert sich.

Entscheidend: das zweite Nutzersignal tritt sichtbarer hervor – es war vorher im dominanten Anteil „versteckt“.

Signalvergleich vor und nach der SIC-Subtraktion
Vor/Nach SIC: Reduktion des dominanten Anteils im Zeit- oder Einhüllendenverlauf.

Schritt 4 – Detektion des zweiten Signals

Erneut Kreuzkorrelation mit der Präambel auf dem Restsignal.

Beobachtung: ein neuer Peak zeigt sich; der Anteil des ersten Nutzers ist im Rest stark reduziert.

Folgerung: Nachweis, dass die SIC-Kette in diesem Aufbau wirkt – der zweite Nutzer wird wieder auffindbar.

Kreuzkorrelation auf dem Restsignal nach SIC
Präambel-Korrelation nach SIC: neuer Peak bestätigt den zweiten Nutzer im Restsignal.

Schritt 5 – Auswertung des zweiten Signals

Das schwächere Signal wird demoduliert.

Beobachtungen: mehr Rauschen, weniger stabile Symbolwinkel als beim ersten Nutzer.

Konstellationsdiagramm nach Subtraktion des ersten Nutzers
Zweites Signal als Winkel dargestellt. Das zweite Signal fluktuiert stärker und ist weniger zentriert.

Geschätzte Bitfehlerrate: höher, Grössenordnung etwa \(10^{-2}\) (1 %) – erwartbar durch Restinterferenz nach SIC und geringeren effektiven SNR.

Warum das zweite Signal schwieriger ist

  • Restfehler aus unvollständiger Subtraktion
  • nicht perfekte Überlagerung / Timing im Versuch
  • stärkerer Einfluss von Rauschen auf den schwächeren Anteil

Das ist typisches NOMA-Verhalten: der zweite Stufe bleibt immer die kritischere.

Gesamtbewertung des Versuchs

  • Erfolg: beide Signale konnten detektiert und getrennt ausgewertet werden.
  • Erfolg: die Überlagerung wurde durch SIC in diesem Setup praktisch nutzbar getrennt.
  • Einschränkung: die Qualität des zweiten Nutzers bleibt deutlich hinter dem ersten zurück – konsistent mit Theorie und SIC-Fehlerfortpflanzung.

Wichtige Erkenntnisse aus der Praxis

  1. NOMA funktioniert real – nicht nur in Simulation; echte überlagerte SDR-Signale liessen sich in diesem Aufbau trennen.
  2. Leistungsverhältnis: Zu grosser Abstand → das schwache Signal geht unter; zu kleiner Abstand → der erste Nutzer ist nicht mehr sauber dominant und die erste Demodulation leidet.
  3. Synchronisation: kleine Timingfehler haben grosse Wirkung – besonders bei kurzen Paketen.
  4. SIC als Engpass: die Güte der Subtraktion bestimmt massgeblich, ob der zweite Nutzer noch brauchbar ist.

Engineering-Learnings

Dieses Kapitel fasst zusammen: Theorie und Praxis sind nicht identisch.

Typische reale Effekte im Versuch:

  • Jitter und Latenz durch TCP-Steuerung
  • instabile Amplituden (AGC, Hardware, Übersteuerung)
  • nie perfekt gleichzeitige und perfekt überlappende Bursts
  • zusätzliche Hardware-Ungenauigkeiten (Offset, Phase)

Genau deshalb waren die in Kapitel 4 und 5 beschriebenen Schritte – Filterung, Sync, Skalierung, PLL – keine „Nice-to-have“-Optionen, sondern Voraussetzung, um SIC stabil zu machen.

Kapitel 7 – Auswertung und Performance des Systems

Nach der Durchführung des NOMA-Verfahrens im Versuchsaufbau stellt sich die zentrale Frage:

Wie zuverlässig funktioniert die Signaltrennung in der Praxis?

Zur Bewertung werden vor allem zwei Grössen herangezogen:

  • Bitfehlerrate (BER)
  • Abhängigkeit vom Leistungsverhältnis der Nutzer

Bitfehlerrate (BER) als zentrale Kennzahl

Die Bitfehlerrate beschreibt den Anteil falsch übertragener Bits:

\[ \mathrm{BER} = \frac{\text{Anzahl fehlerhafter Bits}}{\text{Gesamtanzahl Bits}} \]

Je kleiner die BER, desto besser die Übertragung bzw. Dekodierung unter den gewählten Bedingungen.

Im Empfängernotebook wird die BER über die Symbolabweichung von den referenzierten symbols gebildet (Auszug aus BAT_NOMA_Receiver.py):

Python – BER aus Symbolfehlern (aus BAT_NOMA_Receiver.py)
error_sum = 0
for l in np.arange(symbol_len):
    error = ((estsymb[l] - symbols[l] + 8) % 4)
    if error == 3:
        error = 1
    error_sum = error_sum + error
BER = error_sum / (symbol_len * 2)

Pakete mit BER unter 0,1 zählen als korrekt empfangen (wie in der Auswertung beschrieben).

Ergebnisse für das erste Signal (dominant)

Das stärkere Signal wird direkt aus dem überlagerten Empfang dekodiert.

Beobachtungen: sehr stabile Symbolerkennung; der zweite Nutzer stört nur moderat; niedrige Fehlerrate.

Typische Werte im Versuch: \(\mathrm{BER} < 0{,}01\) (unter 1 %).

Gemessene Bitfehlerrate des dominanten Signals in Abhängigkeit vom Leistungsverhältnis
BER Nutzer 1 (dominant): Verlauf im untersuchten Parameterbereich.

Interpretation (Signal 1)

Das dominante Signal ist robust, weil es die grösste effektive Amplitude trägt und der zweite Nutzer in der ersten Stufe vor allem wie zusätzliche Störung wirkt.

Ergebnisse für das zweite Signal (nach SIC)

Das schwächere Signal wird erst nach der Subtraktion des dominanten Nutzers ausgewertet.

Beobachtungen: deutlich mehr Streuung, höhere Empfindlichkeit gegenüber Parametertoleranzen, stärkere Abhängigkeit von SIC-Qualität und Rauschen.

Typische Werte: \(\mathrm{BER}\) grob im Bereich \(0{,}01\) bis \(0{,}1\) – stark vom Leistungsverhältnis und von der Burstqualität abhängig.

Gemessene Bitfehlerrate des zweiten Signals nach SIC über das Leistungsverhältnis
BER Nutzer 2 (nach SIC): höhere Streuung und stärkere Abhängigkeit vom Verhältnis \(P_2/P_1\).

Ursachen der höheren Fehlerquote (Signal 2)

  • unvollständige oder ungenaue Subtraktion (SIC)
  • Rest-Artefakte vom ersten Signal
  • Rauschen
  • Synchronisationsrestfehler

Das ist der Hauptlimitierungsfaktor von NOMA in diesem Aufbau: die zweite Stufe trägt fast die gesamte „Brüchigkeit“.

Einfluss des Leistungsverhältnisses

Der wichtigste Steuerparameter im Versuch ist das Verhältnis der Signalstärken bzw. empfangenen Leistungen. Mit \(P_1\) für den dominanten Nutzer und \(P_2\) für den schwächeren Nutzer (jeweils am Empfang gewertet) wird das Verhältnis

\[ R = \frac{P_2}{P_1} \]

betrachtet (konkrete Definition entspricht der Messprotokollierung im Labor).

Beobachtung aus den Messungen

Es zeigt sich ein klares Optimum: im Versuch lag das günstigste Verhältnis \(R\) grob bei \(0{,}4\) bis \(0{,}5\).

Zusammenhang zwischen Bitfehlerrate und Leistungsverhältnis der beiden Nutzer
BER beider Nutzer über dem Leistungsverhältnis: sichtbares Optimum im mittleren Bereich von \(R\).

Verhalten ausserhalb des Optimums

  • Wenn Nutzer 1 zu dominant ist (\(R\) zu klein): Nutzer 2 wird stark überdeckt und ist nach SIC kaum rekonstruierbar.
  • Wenn Nutzer 1 zu schwach ist (\(R\) zu gross): die erste Demodulation wird fehleranfällig, die SIC-Kette bricht zusammen – Fehler propagieren.

Interpretation

NOMA funktioniert in diesem System nur in einem vergleichsweise engen Leistungsfenster – eine der wichtigsten praktischen Erkenntnisse.

Verteilung der Bitfehlerraten

Im optimalen Bereich für \(R\):

  • Signal 1: sehr stabil, kaum Ausreisser, durchgehend gut dekodierbar.
  • Signal 2: grössere Streuung – einzelne Bursts deutlich besser, andere deutlich schlechter.

Median (Signal 2, im ausgewerteten Datensatz): etwa \(\mathrm{BER} \approx 0{,}08\).

Empfangswahrscheinlichkeit / Erfolgsquote

Zusätzlich wurde definiert, wann ein Burst als „korrekt empfangen“ gilt:

Kriterium: \(\mathrm{BER} < 0{,}1\).

Ergebnisse (Versuch):

  • über alle Einstellungen: rund 34 % der Fälle mit erfolgreicher Rekonstruktion (nach obiger Definition),
  • im optimalen Leistungsbereich: rund 60 %.
Übersicht: korrekt versus fehlerhaft dekodierte Bursts über alle Messbedingungen
Gesamtübersicht der Empfangsfälle (richtig/falsch nach dem Kriterium BER kleiner als 0,1).

Interpretation

Das System zeigt die erwartete NOMA-Funktion, ist aber noch nicht ausreichend zuverlässig für harte IoT-Anforderungen – stark abhängig von Leistungsverhältnis und Signalqualität.

Hauptlimitierungen des Systems

  1. Instabiles Leistungsverhältnis: SDR/AGC liefern keine strikt konstanten Amplituden; Drift über Zeit und zwischen Bursts.
  2. Fehler in der SIC: Subtraktion nie perfekt; Restfehler belasten die zweite Stufe.
  3. Rauschen und Kanal: wirkt auf beide Nutzer; für den schwachen besonders kritisch.
  4. Synchronisationsfehler: Timing und Frequenz nie ideal – kleine Abweichungen, grosse Wirkung bei kurzen Paketen.

Zentrale Erkenntnisse

  1. NOMA ist stark parameterabhängig – ohne passendes Setup sinkt die Performance schnell.
  2. SIC ist der kritische Punkt – die Qualität der Subtraktion bestimmt massgeblich den Erfolg.
  3. Das zweite Signal ist immer schwieriger – bedingt durch geringere effektive Leistung und höhere Störeinflüsse nach der ersten Stufe.

Was für ein robusteres System fehlt

Damit NOMA in ähnlichen Szenarien deutlich zuverlässiger wird, wären u. a. sinnvoll:

  • Fehlerkorrektur (FEC) und ggf. Interleaving
  • adaptive Leistungs- oder Ratenregelung (Anpassung von \(R\) und Datenrate)
  • verbesserte Synchronisation (präzisere Triggerung, ggf. gemeinsame Referenz statt TCP-Jitter)
  • für Forschungsaufbauten: lernbasierte oder iterativ verfeinerte SIC zur besseren Kanal- und Restinterferenzschätzung

Fazit dieses Kapitels

NOMA funktioniert im Versuch – aber nicht trivial.

  • Im optimalen Leistungsbereich sind gute Ergebnisse erreichbar.
  • Deutliche praktische Grenzen zeigen sich durch SIC-Restfehler, Rauschen und Synchronisation.
  • Die Performance hängt stark von den Systemparametern ab – insbesondere vom Verhältnis \(P_2/P_1\) und von der Güte der ersten Demodulation.

Kapitel 8 – Fazit und Ausblick

Dieses Kapitel fasst die Ergebnisse aus dem Laboraufbau und der Messauswertung zusammen und ordnet sie in einen technischen Ausblick ein. Zusätzliche Messgrafiken gibt es hier bewusst nicht; die zentralen Kennlinien stehen in Kapitel 7.

Zusammenfassung

Der Artikel zeigt, wie sich Non-Orthogonal Multiple Access (NOMA) praktisch mit einem Software Defined Radio (SDR) umsetzen und im Labor erproben lässt.

Zentrale Idee: Mehrere Nutzer senden gleichzeitig im selben Frequenzband; die Trennung erfolgt im Empfänger durch Signalverarbeitung – vor allem durch sukzessive Interferenzunterdrückung (SIC).

Was die Umsetzung bestätigt hat:

  • Überlagerte Signale lassen sich tatsächlich in nutzbare Einzelanteile zurückführen.
  • SIC funktioniert in realen SDR-Ketten, wenn Vorverarbeitung und Skalierung stimmen.
  • Ein zweites, schwächeres Signal kann nach Subtraktion des dominanten Nutzers sichtbar gemacht und demoduliert werden.

Fazit: NOMA ist damit nicht nur ein theoretisches Konzept, sondern in einem kontrollierten Aufbau praktisch realisierbar.

Realität versus Theorie

Eine zentrale Erkenntnis aus dem Versuch: Die Theorie wirkt einfacher als die Praxis.

Das Grundprinzip von NOMA ist schnell erklärt; die reale Kette zeigt jedoch:

  • Signale sind verrauscht und nicht ideal.
  • Amplituden sind nicht konstant (AGC, Hardware, Übersteuerung).
  • Frequenz- und Phasenfehler treten stets auf.
  • Synchronisation ist nie perfekt – besonders bei kurzen Bursts und externer Triggerung.

Konsequenz: SIC gelingt nur, wenn die gesamte Signalverarbeitung (Filter, Sync, Phase, Amplitude) sehr präzise aufeinander abgestimmt ist.

Wichtigste technische Erkenntnisse

  1. Leistungsverhältnis: Es bestimmt den Erfolg – zu grosser Unterschied verschwindet der schwache Nutzer; zu kleiner Unterschied lässt den ersten nicht sauber detektieren. Es gibt ein enges optimales Fenster (siehe Kapitel 7).
  2. SIC als Kern: Die Qualität der Subtraktion entscheidet über fast alles; kleine Fehler in der Rekonstruktion haben grosse Wirkung auf das zweite Signal. SIC ist der zentrale Engpass.
  3. Fokus auf DSP: Das Problem ist weniger die Funkübertragung allein als die Signalverarbeitung danach – Filterung, Synchronisation, Phasenkorrektur und Skalierung machen NOMA in dieser Form erst möglich.
  4. Schwache Nutzer: Das zweite Signal ist physikalisch und algorithmisch benachteiligt – mehr Rauschen, höhere Fehlerempfindlichkeit, schwierigere Rekonstruktion. Das ist Systemeigenschaft von Power-Domain-NOMA mit SIC, keine Implementierungspanne allein.

Potenzial von NOMA

Trotz der Herausforderungen bietet NOMA Potenzial für künftige, dicht genutzte Funknetze:

  • IoT-Netzwerke: viele Geräte parallel, oft moderate Datenraten, Interesse an effizienter Spektrumnutzung.
  • Smart Cities: Sensorfelder, Verkehrs- und Infrastrukturdaten – hohe Gerätedichte, begrenzte Ressourcen.
  • Energiearme Kommunikation: weniger strikte orthogonale Zuweisung kann Overhead reduzieren – verbunden mit sauberer Leistungsplanung und robusten Empfängern.

Mögliche Verbesserungen

Damit NOMA praxistauglicher wird, sind u. a. sinnvoll:

  1. Adaptive Leistungsregelung: Sender passen Leistung dynamisch an, damit das optimale Verhältnis stabiler bleibt.
  2. Machine Learning für SIC / Kanal: z. B. neurale oder iterative Schätzer für Restinterferenz und Kanal – robuster gegenüber Rauschen und Modellfehlern (Forschungs- und Prototypenstand).
  3. Fehlerkorrektur (FEC): reduziert Bitfehler im zweiten Nutzerpfad und entschärft SIC-Restfehler massgeblich.
  4. Verbesserte Synchronisation: präzisere Zeit- und Frequenzanbindung (gemeinsame Referenz, bessere Triggerung) → weniger Restfehler vor der Subtraktion.

Persönliche Engineering-Erkenntnis

Praktisch zeigt sich: Die grössten Schwierigkeiten liegen selten in der Theorie, sondern in den Details der Umsetzung.

Typische „unsichtbare“ Effekte:

  • kleine Timingfehler
  • minimale Phasenabweichungen
  • instabile Amplituden
  • nicht ideale Hardware (Offset, Drift)

Diese Details entscheiden oft, ob ein demonstratorisches System trägt oder bricht.

Schlussgedanke

NOMA verdeutlicht: Moderne drahtlose Kommunikation ist zu grossen Teilen Algorithmen- und Signalverarbeitungsfrage – nicht nur Antennen und Verstärker.

Die Kombination aus Funktechnik, Software und mathematischen Modellen eröffnet Wege, vorhandene Bandbreite effizienter zu nutzen.

Abschluss

Der beschriebene Aufbau verbindet digitale Signalverarbeitung, drahtlose Übertragung und praktische Systementwicklung und zeigt, wie theoretische Konzepte messbar werden.

Diese Verbindung aus Theorie, Implementierung und Messung ist entscheidend für die Weiterentwicklung von IoT- und Kommunikationssystemen – unabhängig davon, ob NOMA später in Standards in genau dieser Form auftaucht oder als Baustein im Methodenspektrum dient.

Autor: Ruedi von Kryentech

Erstellt am: 06.04.2026 · Zuletzt aktualisiert: 06.04.2026

Fachlicher Stand zum Zeitpunkt der letzten Aktualisierung.