Skip to content

Jupyter noteboooks for the lecture "Nachrichtentechnik" (communications engineering) with explanations in german.

Notifications You must be signed in to change notification settings

fgnt/nachrichtentechnik

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 

Repository files navigation

Python-Notebooks zur Übung Nachrichtentechnik

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.)

Überblick

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 .

Dokumentationen

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.

Download der Notebooks

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.

Installation und Start eines Jupyter-Servers

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)

Installation von Anaconda

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.

Nutzung von SageMathCloud

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.

Kurzeinstieg in die Nutzung von Jupyter

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).

Python-Zellen

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.

Markdown-Zellen

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.

About

Jupyter noteboooks for the lecture "Nachrichtentechnik" (communications engineering) with explanations in german.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published