Forum: Mikrocontroller und Digitale Elektronik Software Defined Radio Programmierung erlernen


von Henri (Gast)


Lesenswert?

Guten Abend allerseits,

Ich möchte gerne mehr über die Software Entwicklung im Bereich SDR 
lernen.
Könnt ihr Tutorials oder Literatur empfehlen?
Welche Programmiersprache eignet sich besonders gut?
In Python und C bin ich relativ fit, vor allem in Python.

Ich freue mich auf eure Antworten, gerne auch über Projektvorschläge!

Gruß,
Henri

(19 Jahre, Mechatronik Student, 2.Semester)

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Demnächst wieder in Friedrichshafen, die "SDR-Academy":
https://www.youtube.com/channel/UC1GAlgAQrkjeeLmIkCB8pgQ
https://2022.sdra.io/pages/programme.html

Viele gnuradio-Programme sind in Python geschrieben.
https://www.gnuradio.org/

: Bearbeitet durch User
von Baku M. (baku)


Lesenswert?

Moin!
Ich würde für den Einstieg auch gnuradio empfehlen.
Da kann man zunächst mal sogar mit einem GUI Signalverarbeitungs-Blöcke 
zusammenklicken, damit bekommt man sehr schnell etwas Funktionierendes 
und lernt, wie es überhaupt geht.
Im weiteren kann man dann eigene Module (in python oder C oder..) 
schreiben und einbinden.
Am Ende kann man dann das GUI auch weglassen...

IdS,
Baku

von W.S. (Gast)


Lesenswert?

Baku M. schrieb:
> Da kann man zunächst mal sogar mit einem GUI Signalverarbeitungs-Blöcke
> zusammenklicken, damit bekommt man sehr schnell etwas Funktionierendes
> und lernt, wie es überhaupt geht.

Lernt man damit, wie es geht?

W.S.

von Thomas W. (twust)


Lesenswert?

Henri schrieb:
> Ich möchte gerne mehr über die Software Entwicklung im Bereich SDR
> lernen.
> Könnt ihr Tutorials oder Literatur empfehlen?

Bitte Suchmaschine hier im Forum benutzen!
Wir haben da schon einiges an Literatur genannt und gezeigt wie man das 
Thema SDR und Programmierung angehen kann. Es macht ja keinen Sinn jedes 
Quartal die Sache in einem neuen Thread immer und immer wieder 
abzuspulen.

Viel Erfolg.

Gruß
Thomas

von W.S. (Gast)


Lesenswert?

Henri schrieb:
> Ich möchte gerne mehr über die Software Entwicklung im Bereich SDR
> lernen.
> Könnt ihr Tutorials oder Literatur empfehlen?
> Welche Programmiersprache eignet sich besonders gut?
> In Python und C bin ich relativ fit, vor allem in Python.

Hmm... da wirst du am besten ganz ohne spezielle Programmiersprache 
anfangen, also Grundverständnis der Funktionalität erlernen.
Mal ganz grob gesagt, funktioniert die digitale Signalverarbeitung im 
Radio genauso wie im analogen Radio: also Eingangsmischer mit einem LO, 
womit man die Empfangsfrequenz wählt, dann Dezimation (man braucht ja 
weiter 'hinten' im Radio nicht die selbe große Samplerate wie weiter 
'vorn'), dann Bandpaß, um alles wegzufiltern, was man nicht hören will, 
dann Demodulator. Das sind alles Teilgebiete, die man ganz passabel 
voneinander trennen kann. Wieviel bei so einem Radio dann analog und 
wieviel digital gemacht werden soll, hängt von dem jeweiligen 
Konstruktionsprinzip ab.

Tutorials kann ich keine empfehlen.
Literatur gibt es etwas, allem voran die "DSP Guide", die es im Netz als 
PDF gibt.

Programmiersprachen? Nee, das ist an dieser Stelle noch Fehlanzeige. 
Erstmal die Grundlagen verstehen. Und was am besten geeignet ist, muß 
nicht das sein, was man am leichtesten erlernen und anwenden kann. 
Python ist interpretiert, das sieht wie die allerschlechteste Wahl aus. 
Assembler wäre am besten geeignet, ist aber den meisten Leuten zu schwer 
zu erlernen (bis man da zu Effektivität kommt).
Bedenke mal, daß man nur eine begrenzte Anzahl von Maschinenzyklen hat 
zwischen zwei Samples. Bespiel: PC mit 3 GHz CPU-Takt, Samplerate von 96 
kHz. Das macht, daß man pro Sample nur 3125 CPU-Takte hat. Das ist nicht 
berauschend viel, also ist Rechenzeit sparen bei allen 
Bearbeitungsschritten angesagt.

W.S.

von Olaf (Gast)


Lesenswert?

> Könnt ihr Tutorials oder Literatur empfehlen?
> (19 Jahre, Mechatronik Student, 2.Semester)

Der Studiengang der einem die notwendigen Grundlagen vermittelt
heisst Nachrichtentechnik. Es sollte dir eigentlich problemlos
moeglich sein in der Unibibli die entsprechenden Fachbuecher
zu finden und kostenlos auszuleihen.

Olaf

von Markus W. (dl8mby)


Lesenswert?

@Henri,

bleib erst mal bei Python und widme Dich der Numerik.
In Py. kannst Du gut visualisieren.
Schau Dir GunRadio an. Dort werden auch Plugins aus Python
verwendet. Darin kannst Du sehen, wie Generatoren, Mischer,
Verstärker und andere Komponenten Programmiertechnisch aufgebaut
sind.
Im Prinzip musst Du nur Abtastwerte, also Zahlen, verarbeiten
können um an die darin enthaltenen Informationen zu kommen.

In der Praxis besteht die Schwierigkeit darin den dauernden
Datenstrom zeitnah zu verarbeiten.

Wenn Du die Mathematik dahinter verstanden hast, ist SDR im
Prinzip gar nicht so schwer.

Dann kannst Du Dir Gedanken machen, welche Quelle (USB-DVBT-Stick,
ADI-Pluto, RF+AD-Übungs-Board, etc) Du dir leisten und besorgen kannst,
um dann mit richtigen Daten zu arbeiten.

Du kannst auch über WEB-SDR der UNI Twente in NL

http://websdr.ewi.utwente.nl:8901/

Dir echte Sampels aus dem Äther als mp3-File herunterladen und
damit spielen.

Der Hinweis mit der SDR-Akademi und den Veranstaltungen in
Friedrichshafen auf der HAM-Radio sind auch eine gute Quelle
um Wissen über SDR-Technik aufzuauen.

Viel Erfolg und Spaß dabei.

Markus

von Thomas S. (doschi_)


Lesenswert?


von HAM (Gast)


Lesenswert?

Markus W. schrieb:
> Dir echte Sampels aus dem Äther als mp3-File herunterladen und
> damit spielen.

LoL!

von Thomas W. (twust)


Lesenswert?

Auch nochmal erwähnt sei dieses Buch:

Software Defined Radio-Systeme für die Telemetrie: Aufbau und 
Funktionsweise von der Antenne bis zum Bit-Ausgang von Albert Heuberger

Hier werden alle Teilgebiete eines SDR erst mal mit Matheprogrammen wie 
Octave, SciLab, Matlab,... durchgerechnet. Man erkennt wie AM, FM aber 
auch komplexere Modulationsarten mathematisch behandelt werden. Einen 
tieferen Einblick gibt das Buch DIGITAL MODULATIONS using MATLAB von 
Viswanathan.  Mehr braucht man im ersten Schritt nicht. Auch GNU Radio 
ist hilfreich, man kann sich ja auch dort die Mathematik hinter den 
Blöcken anschauen. Speziell für Python-Leute vielleicht das hier 
https://pysdr.org/

Ich persönlich habe mir die Mathematik mit den Büchern beigebracht und 
mit Matlab Sender und Empfänger auf Dateibasis am PC aufgebaut. Dann das 
Ganze mit C/C++ auf PC, im weiteren Schritt auf einen schnellen 
Microcontroller gewechselt.  Hier reicht für den Anfang auch ein 
Rasperry Pico, der ist leicht und billig verfügbar, schnell genug für 
Langwellenapplikationen ohne spezielles HF-Frontend. DCF77, DDH47 und AM 
Radio habe ich damit vor ein paar Wochen im Ortsverband im 
Nachwuchsbereich gezeigt.

Also viel Spaß und bei konkreten Fragen sind wir hier.

Gruß
Thomas

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Eine gute Einführung mit HackRFOne (aber nicht beschränkt darauf) sind 
auch die Videos von Michael Ossmann:
https://www.youtube.com/GreatScottGadgets

Das 'Hello World' für ein SDR ist ein kleines UKW Radio, das mit so gut 
wie jedem SDR laufen sollte. Dabei ist, wie meist, GRC die Basis.

von Rolf M. (rmagnus)


Lesenswert?

W.S. schrieb:
> Bespiel: PC mit 3 GHz CPU-Takt, Samplerate von 96 kHz. Das macht, daß man
> pro Sample nur 3125 CPU-Takte hat.

Rechne nochmal nach.

von Markus W. (dl8mby)



Lesenswert?

@von HAM alias Ahnungsloser,

siehe Anhang!

vy73
Markus

PS.:
.wav File im Anhang dazu! (nicht .mp3 wie von mir geschrieben!)

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Rolf M. schrieb:
> Rechne nochmal nach.

Nee, besser genauer auf den Taschenrechner gucken. Das war wohl alles.

W.S.

Beitrag #7443551 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.