Leitfaden zu SDR und DSP mit Python (PySDR)
(pysdr.org)- Software-Defined Radio (SDR) und digitale Signalverarbeitung (DSP) werden in diesem Online-Lehrmaterial praxisorientiert mit Python vermittelt
- Enthält Beispiele zur Signalvisualisierung und -analyse mit NumPy·Matplotlib sowie zu den Prinzipien von SDR, bei dem RF-Signale per Software statt per Hardware verarbeitet werden
- So konzipiert, dass Konzepte mithilfe von Animationen und visuellen Materialien statt vor allem über mathematische Formeln intuitiv verstanden werden
- Auch für Lernende mit Programmiererfahrung leicht zugänglich, selbst ohne elektrotechnischen Hintergrund
- Wird als Open Source betrieben; über GitHub-Beiträge·Patreon-Unterstützung kann man an der Verbesserung des Lehrmaterials mitwirken
1. Zweck und Zielgruppe
- SDR (Software-Defined Radio) ist das Konzept, die bislang hardwarebasierte RF-Verarbeitung per Software auszuführen
- Kann auf gewöhnlichen Computern (CPU), FPGA, GPU usw. laufen und unterstützt sowohl Echtzeitverarbeitung als auch die Offline-Verarbeitung aufgezeichneter Signale
- Existiert auch in Form von Geräten, an die eine Antenne angeschlossen werden kann, um RF-Signale zu empfangen und zu senden
- DSP (Digital Signal Processing) ist die Technik zur digitalen Verarbeitung von Signalen; in diesem Lehrmaterial liegt der Schwerpunkt auf RF-Signalen
- Das Lehrmaterial richtet sich an folgende Lernende
- Personen, die mit SDR experimentelle Projekte umsetzen möchten
- Personen, die mit Python vertraut sind, aber bei DSP und Funkkommunikation noch Anfänger sind
- Lernende, die visuelle Materialien gegenüber Formeln bevorzugen
- Personen, die knappe Erklärungen bevorzugen und praxisorientiert statt mit langen Lehrbüchern lernen möchten
- Geeignet auch für Informatikstudierende mit Programmiererfahrung, selbst ohne elektrotechnisches Studium
- Erklärt zentrale Konzepte wie Fourier-Reihen mithilfe von Bildern und Animationen statt komplexer Mathematik
- Deshalb wird PySDR nicht als gedruckte Ausgabe verkauft
2. Aufbau des Lehrmaterials und Lernansatz
- Verdichtet die grundlegende DSP-Theorie aus einem elektrotechnischen Semesterkurs „Signals and Systems“ auf wenige Kapitel
- Erweitert anschließend auf SDR-bezogene Themen; DSP- und Funkkommunikationskonzepte tauchen im gesamten Lehrmaterial wiederholt auf
- Die Python-Codebeispiele verwenden NumPy und Matplotlib
- NumPy ist die Standardbibliothek für Arrays und mathematische Operationen; die meisten Berechnungen sind in C/C++ optimiert
- Matplotlib ist ein Plotting-Werkzeug zur Visualisierung von Signalen, Arrays und komplexen Zahlen
- Auch wenn Python langsamer als C++ ist, bieten die intern optimierten Operationen genügend Leistung für praktische Übungen
- Wer Erfahrung mit MATLAB, Ruby oder Perl hat, kann es nach der Eingewöhnung in die Python-Syntax leicht nutzen
3. Möglichkeiten zur Mitarbeit
- Es wird empfohlen, das mit PySDR Gelernte mit Studierenden, Kolleginnen und Kollegen sowie anderen Lernenden zu teilen
- Über Unterstützung auf Patreon kann der eigene Name am Seitenende des Lehrmaterials angezeigt werden
- Wer das Lehrmaterial liest und Fragen, Meinungen oder Korrekturvorschläge per E-Mail sendet, wird automatisch als Mitwirkender anerkannt
- Über das GitHub-Repository können direkt Änderungsvorschläge (Pull Requests) eingereicht werden
- Auch ohne Git-Kenntnisse können Vorschläge per E-Mail gemacht werden
4. Danksagung
- Dank an Leserinnen und Leser sowie Übersetzende, die Feedback zum Lehrmaterial gegeben haben
- Genannt werden Mitwirkende an Übersetzungen ins Französische, Niederländische, Ukrainische, Chinesische und Spanische
- Enthält außerdem eine Liste der Patreon-Unterstützer sowie institutionelle Förderer wie Analog Devices, Inc.
- PySDR wird unter der CC BY-NC-SA 4.0-Lizenz veröffentlicht
1 Kommentare
Hacker-News-Kommentare
Insgesamt halte ich es für ein gutes Material, aber schade ist, dass manche Details etwas zu vage abgehandelt werden.
Zum Beispiel wird nicht erklärt, wie man die Schleifenparameter wählen sollte, um stabil zu locken, wenn Präambellänge und maximaler Frequenzoffset bekannt sind.
Es wäre viel besser gewesen, wenn dafür eine Richtung vorgegeben worden wäre.
Es wäre besser gewesen, auch zu zeigen, dass sich das je nach Samplerate und Dauer verändert.
Natürlich stimme ich zu, dass die perfekten Sinusreihen aus Vorlesungen zu linearen Systemen ebenfalls nicht realistisch sind.
Inzwischen hat praktisch jeder einen persönlichen Tutor auf Graduiertenniveau; entscheidend ist also, zu lernen, die richtigen Fragen zu stellen.
Besonders für neue Teammitglieder, die mit Code vertraut sind, aber wenig DSP-Kenntnisse haben, ist es eine sehr gute Einführung.
Außerdem ist die im Buch behandelte Hardware günstig und damit gut zugänglich. Ich benutze derzeit ein RTL-SDR von Nooelec, und für den Einstieg ins Lernen reichen etwa 50 Euro völlig aus.
Je nach Frequenzband gibt es zwar Rauschen oder spurious signals, aber Erfahrene kommen damit meistens problemlos zurecht.
Je tiefer man in die Welt des Radios eintaucht, desto mehr neue Möglichkeiten eröffnet RTL-SDR, und später schreibt man vielleicht sogar selbst Software, die I/Q-Samples verarbeitet.
Ich habe das Radiohören vermisst und beschlossen, wieder damit anzufangen, und schließlich Tecsun PL-880 bestellt.
Wenn ich am Computer hören will, reicht Streaming völlig aus, aber falls ich später merke, dass mir der Tecsun nicht genügt, will ich tiefer in SDR einsteigen.
Ich möchte nicht mehrere Radios stapeln oder große Desktop-Geräte herumstehen haben.