Die in diesem Repository enthaltenen Notebooks werden in der Übung zur Vorlesung Nachrichtentechnik verwendet. Sie dienen der Visualisierung des Vorlesungsstoffs und der Übungsaufgaben.
Die Notebooks können online betrachtet betrachtet werden: Direktlink zu den Notebooks
(Hinweis: Die Betrachtung funktioniert auch direkt über Github, die Notebooks werden so jedoch nicht sehr ansprechend gerendert. Deshalb leitet der obige Link auf den nbviewer von jupyter weiter.)
Die Notebooks bestehen aus Zellen mit Python-Code und deren Ausgaben sowie aus Zellen, in denen Erklärungen mit Markdown und Formeln mit LaTeX gesetzt sind. Der Python-Code ist hauptsächlich dazu da, um Visualisierungen zu erstellen. Einige der Visualisierungen sind animiert, d.h. es können z.B. durch Schieberegler Parameter variiert und die Auswirkungen auf den Plot betrachtet werden.
Für den Code werden Pakete aus dem SciPy-Stack verwendet. Damit erhält Python einen Funktionsumfang, der sehr nahe an den von MATLAB heranreicht (es fehlt allerdings eine Alternative zu Simulink), ohne dass teure Lizenzen notwendig sind. Es gibt aber Unterschiede in Syntax und Semantik zwischen Python und MATLAB .
Erste Anlaufstelle für die Benutzung von Python im Allteag ist die Ausführliche Dokumenatation der Sprache.
Die Darstellung der Notebooks erfolgt durch jupyter. Für die numerischen Berechnungen werden die Pakete numpy und scipy verwendet und die Visualisierungen werden mit matplotlib und ipython erstellt.
Eine Einführung in Python im Kontext der Signalverarbeitung bietet der Artikel
Adventures in Signal Processing with Python.
Sehr empfehlenswert ist darüber hinaus das Python Data Science Handbook, das frei über Github betrachtet (und geklont!) werden kann.
Absolute Beginner, die aber bereits anderweitige Programmiererfahrung haben, können die Grundlagen von Python im Buch Whirlwind Tour Of Python durchgehen, das vom selben Autor stammt.
Das ganze Notebook-Repository kann entweder mit git geklont werden (GitHub Help: Cloning a Repository):
$> git clone https://github.com/fgnt/nachrichtentechnik.git PATH/TO/DESTINATION
oder als Zip-Datei heruntergeladen und entpackt werden. Die Variante mit git wird empfohlen, weil häufig aktualisiert wird und die Änderungen einfach mit
$> git pull
heruntergeladen werden können, wenn man sich im Verzeichnis des Repositories befindet.
Die Notebooks können direkt auf github betrachtet werden. Um die Animationen verwenden zu können, müssen sie aber durch einen jupyter-Notebookserver gerendert werden. Dies kann durch eine der folgenden Alternativen erreicht werden:
- Installation einer Python-Distribution für wissenschaftliches Programmieren (z.B. anaconda)
- Nutzung eines Online-Hostingservices (z.B. SageMathCloud)
Es gibt viele Möglichkeiten, um an eine geeignete Python-Distribution zu kommen. Hier wird anaconda empfohlen. Nach Download des Installationsprogramms für python-3.5 und das passende Betriebssystem (Hinweis für Linux-Nutzer: Der Ort des bin-Verzeichnisses von anaconda sollte der PATH-Variable hinzugefügt werden, was das Install-Skript aber ohnehin vorschlägt).
Im offenen Terminal kann dann in das Verzeichnis mit den Notebooks gewechselt und mittels
$> jupyter noteboook
ein Server gestartet werden. Dadurch sollte ein Browserfenster mit dem Inhalt des Verzeichnisses geöffnet werden. Ein Notebook kann dann durch Hinnavigieren und anklicken geöffnet werden.
Nach Aufruf der Webseite muss zunächst ein Account erstellt werden. Dazu kann auch ein vorhandenes Google-, GitHub-, Twitter- oder Facebook-Konto verwendet werden.
Nach erfolgter Anmeldung kann ein neues Projekt erstellt werden. Nach einem Klick auf den Menüpunkt "+New" können die Notebook-Dateien dann einzeln hochgeladen werden.
Ein Notebook kann dann durch Wechsel auf "Files" und anklicken geöffnet werden. Der jupyter-Server läuft in der SageMathCloud und muss nicht selbst gestartet werden.
Die Notebooks werden im Browser gerendert. Dazu wird der Inhalt in einzelne Zellen unterteilt.
Mithilfe von Ctrl+m h kann die Hilfe angezeigt werden.
Einzelne Zellen können mit Ctrl+Enter oder Shift+Enter ausgeführt werden. Das ganze Notebook kann mit dem Menüeintrag Kernel -> Restart & Run All ausgeführt werden.
Wird gerade keine Zelle editiert (sonst Esc drücken), kann durch Drücken von a oder b eine neue Zelle vor oder nach der alten eingefügt werden (oder das "+" in der Menüleiste drücken).
Der Modus einer Zelle kann mit Ctrl+m m und Ctrl-m y zwischen Markdown und Python-Code gewechselt werden (Das geht auch über die Menüleiste).
In eine Python-Zelle kann beliebiger Python-Code geschrieben und ausgeführt werden. Alle Code-Zellen teilen sich einen globalen Gültigkeitsbereich für Variablen, Klassen und Funktionen haben aber ihre eigenen lokalen Gültigkeitsbereiche.
Wenn ein Paket verwendet wird, muss es zuvor per import importiert werden.
Nach Wechsel des Modus auf Markdown per Ctrl+m m kann strukturierter Text eingegeben werden. Damit ist es auch möglich, Gleichungen in LaTeX-Formelsyntax zu setzen.