GNU Radio ist ein freies Softwareentwicklungs- Toolkit, das Signalverarbeitungsblöcke zur Implementierung softwaredefinierter Funkgeräte und Signalverarbeitungssysteme bereitstellt . Es kann mit externer Hochfrequenzhardware (HF-Hardware) zur Erstellung softwaredefinierter Funkgeräte oder ohne Hardware in einer simulationsähnlichen Umgebung verwendet werden. Es findet breite Anwendung in Hobby-, Forschungs- und kommerziellen Bereichen und unterstützt sowohl die Forschung im Bereich der drahtlosen Kommunikation als auch reale Funksysteme.

Überblick

GNU Radio stellt demodulierte Radiosignale dar

Die GNU Radio-Software bietet das Framework und die Werkzeuge zum Erstellen und Ausführen von Softwareradio oder allgemeinen Signalverarbeitungsanwendungen. Die GNU Radio-Anwendungen selbst werden im Allgemeinen als „Flowgraphen“ bezeichnet. Sie bestehen aus einer Reihe von miteinander verbundenen Signalverarbeitungsblöcken und beschreiben so einen Datenfluss.

Wie bei allen softwaredefinierten Funksystemen ist die Rekonfigurierbarkeit ein zentrales Merkmal. Anstatt verschiedene Funkgeräte für spezifische, aber unterschiedliche Zwecke zu verwenden, kann ein einziges Allzweck-Funkgerät als Funk-Frontend eingesetzt werden, während die Signalverarbeitungssoftware (hier GNU Radio) die für die jeweilige Funkanwendung spezifische Verarbeitung übernimmt.

Diese Ablaufdiagramme können entweder in C++ oder Python geschrieben werden. Die GNU Radio-Infrastruktur ist vollständig in C++ geschrieben, und viele der Benutzerwerkzeuge (wie z. B. GNU Radio Companion) sind in Python geschrieben. Ablaufdiagramme können auch in der grafischen Benutzeroberfläche von GNU Radio Companion erstellt werden .

GNU Radio ist ein Signalverarbeitungspaket und Teil des GNU-Projekts . Es wird unter den Bedingungen der GNU General Public License (GPL) vertrieben, und der größte Teil des Projektcodes ist urheberrechtlich geschützt durch die Free Software Foundation . [ 5 ]

Geschichte

GNU Radio, erstmals 2001 veröffentlicht, ist ein offizielles GNU-Paket . Der Philanthrop John Gilmore initiierte GNU Radio mit einer Finanzierung von 320.000 US-Dollar für Eric Blossom , der damit die Programmierung und das Projektmanagement übernahm. Eine der ersten Anwendungen war die Entwicklung eines ATSC-Empfängers in Software.

Die GNU Radio-Software entstand als Abspaltung des Pspectra-Codes, der vom SpectrumWare-Projekt am Massachusetts Institute of Technology (MIT) entwickelt wurde. Im Jahr 2004 wurde GNU Radio vollständig neu geschrieben , sodass es heute keinen ursprünglichen Pspectra-Code mehr enthält.

Matt Ettus stieß als einer der ersten Entwickler zum Projekt hinzu und entwickelte das Universal Software Radio Peripheral (USRP), um eine Hardwareplattform für die Verwendung mit der GNU Radio-Software bereitzustellen. Im Jahr 2004 gründete Matt die Ettus Research LLC und begann mit dem Verkauf von USRPs, die mit GNU Radio kompatibel waren. [ 6 ]

Im September 2010 trat Eric Blossom als Projektleiter zurück und wurde durch Tom Rondeau ersetzt. [ 7 ]

Zu Beginn des Projekts veranstalteten die Kernentwickler halbjährliche Hackfests . Im Jahr 2011 begann das GNU Radio-Projekt mit der jährlichen Konferenz „GRCon“, deren letzter Tag in der Regel ein Hackfest beinhaltet.

Im März 2016 trat Tom Rondeau zurück und wurde durch Ben Hilburn als Projektleiter und Johnathan Corgan, einen langjährigen Wartungsmitarbeiter, als Chefarchitekten ersetzt. [ 8 ]

Im Januar 2018 trat Johnathan Corgan von seiner Position als Chefarchitekt zurück und wurde durch Marcus Müller ersetzt. [ 9 ]

Im September 2020 wurde GNU Radio in allen finanziellen und vertraglichen Belangen Teil des SETI-Instituts (einer gemeinnützigen, multidisziplinären Forschungs- und Bildungsorganisation). [ 10 ]

Im Oktober 2020 beschlossen Ben Hilburn und die damaligen Projektverantwortlichen, die Leitung des GNU Radio-Projekts neu zu organisieren und eine Generalversammlung mit einer Satzung zu gründen, die die Details der Arbeitsweise der Organisation regelt. [ 11 ] [ 12 ] Ein dreiköpfiger Vorstand, bestehend aus gewählten Mitgliedern der Generalversammlung, übernahm die Aufgaben des vorherigen Projektleiters.

Software

GNU Radio Companion

GNU Radio Companion, das GUI-Tool für die Entwicklung von GNU Radio-Flussdiagrammen, wurde zur Arbeit an einer Simulation verwendet.

Der GNU Radio Companion (GRC) ist eine grafische Benutzeroberfläche zur Entwicklung von GNU-Radio-Anwendungen. [ 13 ] Er dient als Frontend für die GNU-Radio-Bibliotheken zur Signalverarbeitung . GRC wurde von Josh Blum während seines Studiums an der Johns Hopkins University (2006–2007) entwickelt und anschließend im Rahmen des Hackfest im Oktober 2009 als freie Software veröffentlicht . Ab Version 3.2.0 war GRC offiziell Bestandteil der GNU-Radio-Softwareverteilung.

GRC ist im Grunde ein Tool zur Generierung von Python-Code. Wenn ein Ablaufdiagramm in GRC kompiliert wird , generiert es Python-Code, der die gewünschten Fenster und Widgets der grafischen Benutzeroberfläche (GUI) erstellt und die Blöcke im Ablaufdiagramm verbindet.

GRC unterstützt derzeit die GUI-Erstellung mithilfe des Qt- Toolkits.

Diagramme und Anzeigen

GNU Radio bietet zahlreiche gängige Darstellungs- und Visualisierungsmöglichkeiten, darunter FFT-Darstellungen, Symbolkonstellationsdiagramme und Oszilloskopdarstellungen. Diese werden häufig sowohl zum Debuggen von Funkanwendungen als auch als Benutzeroberfläche für die fertige Anwendung verwendet.

PyBOMBS

Viele Benutzer erstellen „externe Module“ zur Verwendung mit GNU Radio. Um diese und die für den Betrieb von GNU Radio erforderlichen Abhängigkeiten zu verwalten, hat die Organisation das PyBOMBS-Projekt (Python Build Overlay Managed Bundle System) ins Leben gerufen. [ 14 ]

Siehe auch

Referenzen