GNU Radio
# GNU Radio

GNU Radio ist ein freies Programmierwerkzeug für die Implementierung von Software Defined Radio (SDR), einem Bereich der Nachrichtentechnik mit Fokus auf der digitalen Signalverarbeitung. GNU Radio erlaubt die praktische Implementierung beliebiger digitaler Modulations- und Demodulationsverfahren, Verfahren zur Manipulation von Signalen wie digitale Filter und bietet verschiedene Anzeigen wie Darstellungen als Zeitsignal oder als Frequenzspektrum, der dabei auftretenden Leistungsdichten, oder die bei digitalen Modulationen vorhandenen Konstellationsdiagramme.

Mit GNU Radio kann die digitale Signalverarbeitung entweder am Rechner simuliert werden, dafür ist keine weitere Hardware nötig. Alternativ kann GNU Radio mit zusätzlicher an den PC angeschlossener Hardware betrieben werden, welche primär die Funkschnittstelle und die nötigen externen Verbindungen wie Antennen umfasst. Die erzeugten Signale können dann in Echtzeit ausgestrahlt oder in der Gegenrichtung die empfangenen Funksignale demoduliert und weiterverarbeitet werden. Aufgrund der vergleichsweise kostengünstig verfügbaren SDR-Hardware, der leichten Verfügbarkeit handelsüblicher Rechner auf denen GNU Radio lauffähig ist, findet es vor allem im Bereich des Amateurfunks, im Rahmen von Ausbildung und Lehre und als einfache Evaluierungsplattform im professionellen Sektor Anwendung.

## Struktur

GNU Radio besteht aus mehreren einzelnen Anwendungen, welche als englisch flowgraphs bezeichnet werden und elementare Signalverarbeitungsblöcke darstellen. Durch Kombination mehrerer flowgraphs werden komplexe Strukturen beschrieben und durch Austausch, Veränderung der Parameter und Funktionen und durch die Anordnung der flowgraphs lässt sich die Signalverarbeitung beliebig gestalten.

Die flowgraphs werden entweder in Python oder bei zeitkritischen und komplexen Funktionen in C++ programmiert. Die GNU-Radio-Umgebung ist komplett in C++ geschrieben. Daneben existieren diverse Erweiterungsmodule wie beispielsweise der GNU Radio Companion, eine auf Qt basierende grafische Oberfläche für die Darstellung und Modifikation der flowgraphs.

Für den Empfang zur Analyse oder für die Ausstrahlung von mit GNU Radio und den flowgraphs erzeugten Signalen ist zusätzliche Hardware, ein sogenanntes Software Defined Radio Frontend nötig. Es kann für Anwendungen im Basisband und bei Verwendung von Audiofrequenzen auch eine Soundkarte zur Signalaus- und Signaleingabe verwendet werden.

