Kein eigener Sender
Das System ist rein passiv. Es strahlt nichts ab, ist damit schwer zu detektieren und benötigt keine Sendelizenz für den genutzten Frequenzbereich.
Wir nutzen vorhandene Funksignale als Beleuchter und detektieren Ziele allein aus reflektierten Echos – per Kreuzkorrelation und FFT, in Echtzeit umgesetzt auf einem Xilinx RFSoC 4x2.
Ein klassisches Radar sendet ein eigenes Signal aus und wertet das Echo aus. Ein Passivradar verzichtet auf den eigenen Sender und nutzt stattdessen bereits vorhandene Funksignale aus der Umgebung.
Das System ist rein passiv. Es strahlt nichts ab, ist damit schwer zu detektieren und benötigt keine Sendelizenz für den genutzten Frequenzbereich.
Statt selbst zu senden, empfängt das System Signale von z.B. TV-Sendern, Radio oder anderen Funksystemen, die ohnehin in der Umgebung verfügbar sind.
Durch den Vergleich von direktem Signal und reflektiertem Signal lassen sich bewegte Objekte im Raum erkennen und lokalisieren.
Zwei Empfangskanäle genügen: einer empfängt das direkte Signal von der Quelle (Referenz), der andere beobachtet die Umgebung (Surveillance). Der Vergleich beider Signale verrät, wo sich etwas bewegt.
Passivradare ermitteln Ziele über die Kreuzkorrelation zweier empfangener Signale. Das Referenzsignal stammt direkt von der Signalquelle, das Überwachungssignal enthält die von Objekten reflektierten Anteile.
Das direkt von der Signalquelle (z.B. einem Sender) empfangene Signal über den direkten Pfad. Es dient als „Vorlage“ für den Vergleich.
Das von Objekten reflektierte Signal. Es ist gegenüber der Referenz zeitverschoben (Laufzeit → Entfernung) und frequenzverschoben (Doppler → Geschwindigkeit).
Die Kreuzkorrelationsfunktion vergleicht beide Signale für jede Kombination aus Zeitverschiebung τ und Dopplerfrequenz fₒ:
Drei grundlegende Zusammenhänge bestimmen, wie gut das System Ziele trennen kann – in Entfernung und in Geschwindigkeit.
Die Entfernung zum Ziel ergibt sich aus dem Zeitversatz τ zwischen Referenz- und Überwachungssignal über die Lichtgeschwindigkeit c.
Die Entfernungsauflösung hängt direkt von der Bandbreite B ab: je breiter das Signal, desto feiner können nahe beieinander liegende Ziele getrennt werden.
Die Geschwindigkeitsauflösung steigt mit der Integrationszeit T. Längeres Beobachten trennt Ziele feiner in der Doppler-Frequenz.
Für unser Passivradar haben wir uns für WiFi bei 5 GHz entschieden – und das aus guten Gründen.
WiFi-Router sind überall verfügbar. Sie liefern ein starkes, stabiles Signal, das ideal für Passivradar-Anwendungen geeignet ist.
Mit 160 MHz Bandbreite bei 5 GHz ermöglicht WiFi eine sehr gute Entfernungsauflösung von etwa 1,8 m – ideal, um bewegte Objekte klar zu trennen.
Mit nur zwei Empfangskanälen (Referenz + Surveillance) lässt sich das System realisieren – ein großer Vorteil gegenüber aktiven Radarsystemen.
Die hohe Trägerfrequenz und die große Bandbreite bringen jedoch auch technische Herausforderungen mit sich: der Frequenzbereich liegt oberhalb dessen, was der ADC direkt abtasten kann, und die Datenrate ist enorm.
Bevor überhaupt korreliert werden kann, muss das Signal erst einmal sauber digitalisiert und in den Speicher gebracht werden.
Bei 160 MHz Bandbreite und komplexer (I/Q-)Abtastung mit 16 Bit pro Wert ergibt sich pro Kanal eine erhebliche Datenrate. Für Referenz- und Überwachungskanal zusammen muss der DDR4-Speicher mit 12,8 GBit/s gefüllt werden.
Der Nutzbereich liegt bei 5170–5330 MHz. Der RF-ADC tastet mit maximal 5 GSPS ab – für eine direkte Abtastung bräuchte man nach Nyquist jedoch mindestens 10,66 GHz. Die Lösung dafür heißt Subsampling.
Subsampling (Bandpass-Abtastung) nutzt den Aliasing-Effekt gezielt aus: Ein hochfrequentes, aber schmalbandiges Signal wird durch Unterabtastung eindeutig ins Basisband gefaltet.
Das Nutzsignal sitzt um 5,25 GHz. Eine direkte Abtastung nach Nyquist–Shannon würde > 10 GSPS verlangen – mehr als der ADC liefert.
Da die Bandbreite (160 MHz) sehr viel kleiner ist als die Mittenfrequenz, genügt eine Abtastrate, die das schmale Band eindeutig in eine niedrigere Nyquist-Zone abbildet. Das Signal „faltet“ kontrolliert ins Basisband – ohne Informationsverlust.
Bandpass-Abtastung funktioniert, solange das gesamte Nutzband innerhalb einer Nyquist-Zone liegt und sich die Aliase nicht überlappen.
Die folgenden Messplots zeigen die Kette: das ursprüngliche RF-Signal, das unterabgetastete Signal und schließlich das saubere, gefilterte Basisbandsignal in Zeit- und Frequenzbereich.
Statt das gesamte Integrationsfenster auf einmal zu verarbeiten, wird es in kurze Blöcke zerlegt. Das hält den Rechenaufwand beherrschbar und liefert zugleich die Doppler-Achse.
Das 64-ms-Fenster beider Signale wird in 64 Blöcke zu je 1 ms zerlegt.
Jedes Blockpaar (Referenz/Surveillance) wird einzeln kreuzkorreliert – das ergibt die Entfernungsachse.
Eine FFT über die Blöcke hinweg liefert die Doppler-Achse. In Summe entstehen rund 2000 FFTs pro Range-Doppler-Map.
Die Plattform vereint schnelle RF-Wandler, große FPGA-Logik und einen Prozessor auf einem Chip – genau die Kombination, die dieses Projekt verlangt.
| Logikzellen | 930 k |
|---|---|
| On-Chip-RAM | 60 MB |
| DSP-Slices | 4272 |
| RF-ADC | 4 × 5 GSPS |
| RF-DAC | 2 × 9,85 GSPS |
| DDR4 (PS) | 4 GB |
| DDR4 (PL) | 4 GB |
| Ethernet | 100 GBit |
Die schnellen RF-ADCs erlauben die Bandpass-Abtastung direkt, die große PL-Logik und die vielen DSP-Slices tragen Korrelator und FFT, und der integrierte Prozessor (PS) übernimmt mit PYNQ Steuerung, Auswertung und Visualisierung – alles auf einem einzigen Baustein.
Der RFSoC teilt sich in zwei Welten: die frei konfigurierbare Logik (PL) für die schnelle Signalverarbeitung und das Prozessorsystem (PS) für Steuerung und Auswertung.
Hier läuft die eigentliche Signalverarbeitungskette in Hardware: ADC-Anbindung, Korrelator, FFT, Speicher- und Datenflusssteuerung – getaktet und parallel.
Die Application-Processing-Unit trägt PYNQ-Linux. Die Realtime-Processing-Unit bleibt in diesem Projekt ungenutzt.
Ein Overlay macht das in Vivado gebaute FPGA-Design als Python-Objekt zugänglich – Register und Speicher werden direkt aus dem Notebook angesprochen.
Die ursprüngliche Pipeline ist bewusst einfach gehalten: ein gerader Weg vom ADC bis zur Range-Doppler-Map.
Der einfache Entwurf trifft auf reale Engpässe – vor allem beim Timing, beim Speicherzugriff und bei der Pufferung zwischen den Stufen.
Läuft ein FIFO über, gehen Samples verloren – die Verarbeitung muss mit dem Datenstrom zuverlässig Schritt halten.
Korrelator und FFT erreichen unter Umständen nicht die nötige Frequenz, um den Datenstrom in Echtzeit zu bewältigen.
Die Korrelationsergebnisse müssen für die FFT zwischengespeichert werden – ein direkter Durchlauf reicht nicht.
Die FFT greift nicht sequenziell auf die Daten zu – ein memory-mapped Interface wird erforderlich.
Hinzu kommen Komplexität des Gesamtsystems, große Datenmengen, kniffliges Timing, lange Synthese- und Simulationszeiten in Vivado, kryptische Fehlermeldungen, begrenzte Debug-Möglichkeiten und Xilinx-Blöcke, die sich nicht immer wie erwartet verhalten – und der Effekt, dass ein kleines Design funktioniert, das große aber nicht.
Die Antwort auf die Engpässe: ein gemeinsamer DDR-RAM als zentraler Puffer, mehrere Sync-&-DMA-Einheiten für geordnete Speicherzugriffe – und eine zentrale Steuerung.
Statt Daten starr durchzureichen, dient der DDR-RAM als zentraler Puffer zwischen allen Stufen – das entkoppelt ihre Zeitanforderungen.
Mehrere Sync-&-DMA-Einheiten regeln den geordneten Transfer zwischen Verarbeitung und Speicher – auch für nicht-sequenzielle Zugriffe.
Die FFT liest ihre Eingangsdaten über das memory-mapped Interface aus dem RAM und schreibt das Ergebnis für PYNQ ins PS-RAM.
Der „Vorarbiter“ ist die zentrale Steuerinstanz: Er taktet die einzelnen Schritte, verwaltet den Speicher und macht das System überhaupt erst debugbar.
Er gibt die Reihenfolge der Verarbeitungsschritte vor und sorgt dafür, dass jede Stufe zur richtigen Zeit auf den richtigen Daten arbeitet.
Er verwaltet die Speicherbereiche im DDR-RAM und koordiniert die Sync-&-DMA-Transfers.
Er beobachtet die Verarbeitung fürs Debugging und meldet, wo und welcher Fehler aufgetreten ist.
Steuerung über AXI-Lite – ansprechbar per PYNQ-Overlay (in Arbeit) oder
direkt über die Buttons am Board.
Zwei Blickwinkel auf dieselbe Architektur: eine aufgeräumte, abstrahierte Darstellung – und das tatsächliche, implementierte Blockdesign aus Vivado.
Über den Projektverlauf wurden die zentralen Bausteine der Kette erfolgreich umgesetzt und verifiziert.
Erfassung der RF-Daten über die ADC-Kanäle.
Aufgebaut (ohne Synchronisierung der Kanäle).
Kreuzkorrelation in der PL umgesetzt.
Geordneter Datenfluss durch die Pipeline.
Ablage der Daten im PL-seitigen DDR4.
Übergabe der Ergebnisse an das PS für PYNQ.
Einblick in interne Zustände zur Fehlersuche.
Mit generierten Daten verifiziert.
Eine Range-Doppler-Map trägt Entfernung (Range-Bin) gegen Geschwindigkeit (Doppler-Bin) auf; helle Bereiche markieren detektierte Ziele. Drei Stufen zeigen den Weg von der Simulation bis zum realen WLAN-Signal.
Verifikation der Kette mit kontrollierten Eingangsdaten: die Ziele erscheinen genau dort, wo sie erwartet werden.
Reales Eingangssignal aus einem Funktionsgenerator – die periodische Struktur prägt das charakteristische Muster.
Der Schritt zum echten WLAN-Signal: über ein langes Kabel eingespeist, als Vorstufe zum reinen Funkbetrieb.
Das Projekt zeigt, dass sich aus alltäglichen WiFi-Signalen ein funktionsfähiges Passivradar aufbauen lässt – getragen von der Idee des Subsamplings, einer in Blöcke zerlegten Kreuzkorrelation und einer FPGA-Signalverarbeitungskette auf dem RFSoC 4x2.
Die zentrale Kette aus ADC-Erfassung, Korrelation, FFT und Speicherung wurde realisiert und mit simulierten sowie realen Signalen bis hin zu korrekten Range-Doppler-Maps verifiziert. Der überarbeitete Datenfluss mit gemeinsamem DDR-RAM und dem steuernden „Vorarbiter“ löst die Engpässe des ersten Entwurfs.
Naheliegende nächste Schritte sind die Kanal-Synchronisierung, die Vervollständigung der PYNQ-Overlay-Ansteuerung des Vorarbiters sowie der Übergang vom kabelgebundenen WLAN-Signal zum reinen Funkbetrieb über Antennen.