[go: up one dir, main page]

Skip to content
/ dsp Public

Unterlagen zu den Vorlesungen "Digitale Signalverarbeitung (DSV)" und "DSV auf FPGAs"

Notifications You must be signed in to change notification settings

chipmuenk/dsp

Repository files navigation

Unterlagen zu den Kursen "DSV" und "DSV auf FPGAs"

[Course material accompanying the courses "DSP" and "DSP on FPGAs" (Digital signal processing on FPGAs)]

ATTENTION: If you have cloned / forked this repo, it has been renamed from dsp_fpga -> dsp and the default branch now is called main (2020-Sep-29).

Hier finden Sie die folgenden Materialien:

  • Jupyter Notebooks zu beiden Lehrveranstaltungen und zum YouTube Channel https://www.youtube.com/c/ChristianMunker
  • Im aktuellen Release finden Sie als "Assets":
    • die gezippten Folien zu den YouTube Videos im Libreoffice und im PDF - Format,
    • ein Skript mit vielen Übungsaufgaben und etwas Theorie zu den Kursen "DSV" und "DSV auf FPGAs"
    • eine Anleitung zum Umgang mit Notebooks

Nutzen Sie auch das interaktive Python Tool pyfda für Filterentwurf und -analyse und zur Simulation von zeitdiskreten Systemen!

Jupyter Notebooks

00. INTRO: Eine kurze interaktive Einführung in Notebooks, Numpy, Scipy, Matplotlib

00. LAB : Praktikumsversuche (als Jupyter Notebooks)

01. LTI : Linear Time-Invariant (LTI) Systeme im Zeitbereich

02. LTF : LTI Systeme im Frequenzbereich

03. DFT : Discrete Fourier Transformation (DFT) und FFT

04. WIN : Fensterung periodischer und stationärer Signale

05. SPS : SPektralSchätzung

06. FIL : Digitale FILter und Filterentwurf

07. FIX : FIXpoint Systeme im Zeitbereich: Quantisierung und Wortlängeneffekte

08. NOI : Fixpoint Systeme im Frequenzbereich: Quantization NOIse

09. SMP : SaMPling, Analog-Digital Conversion and Downsampling

10. INP : Upsampling, INterPolation und Digital-Analog conversion

11. SRC : Sample Rate Conversion

Jupyter Notebook Server in der Cloud

Am einfachsten können Sie mit Jupyter Notebooks interaktiv auf einem Remote Server arbeiten, Sie brauchen dann nichts auf Ihrem eigenen Rechner installieren, müssen aber natürlich online sein. Ich gebe hier keine Empfehlungen mehr, da kostenlose Services selten länger als ein paar Monate funktionieren. Die Startzeit beträgt bei den meisten Services ein paar Minuten.

Falls Sie mit dem klassischen Jupyter Notebook Interface starten (keine Tabs), können Sie zum übersichtlicheren Jupyterlab Interface wechseln, indem Sie in der Adresszeile des Browsers tree durch lab ersetzen.

Binder

Mit diesem Service können Sie per Knopfdruck Binder mit den Notebooks dieses Repos experimentieren, aber keine Änderungen dauerhaft abspeichern.

Lokal arbeiten

Wenn Sie Python auf Ihrem Rechner installiert haben, können Sie auch offline arbeiten und haben eine bessere Performance.

  • Bei Ihnen läuft schon Python? Dann genügt ein pip install jupyterlab und Sie können aus dem Terminal jupyter lab Ihren lokalen Server starten.
  • Sie möchten kein Python installieren, aber trotzdem mit Notebooks arbeiten? Testen Sie die noch ganz frische JupyterLab Desktop Applikation (https://github.com/jupyterlab/jupyterlab-desktop)

Die Notebooks (und die Libraries) clonen Sie auf Ihren Rechner aus dem (lokalen) Terminal mit

git clone https://github.com/chipmuenk/dsp

Oder nutzen Sie die graphische Oberfläche mit git gui -> Clone Repository

Dazu muss ein git Client von der git homepage (http://git-scm.com/) auf Ihrem Rechner installiert sein.

Notfalls können Sie die Files auch gezippt herunterladen von https://github.com/chipmuenk/dsp, können dann aber keine Updates holen.

git

Es schadet nicht, ein paar git Kommandos zu beherrschen, z.B. mit Hilfe von

  • git - Der einfache Einstieg von Roger Dudler gibt den kürzest möglichen Einstieg in die Git Bash (= Kon- sole) - mit Cheat-Sheet! - in vielen Sprachen
  • An Illustrated Guide to Git on Windows (2009) gibt einen ähnlich kompakten Einstieg in die Arbeit mit dem graphischen Frontend Git GUI
  • Pro Git Book, das "offizielle" Git Buch von Scott Chacon und Ben Straub gibt es hier in ziemlich vielen Sprachen
  • Learn Git Branching ist eine „gamifizierte“ Variante mit Schwerpunkt Branching und Merging (auch auf Deutsch)

Zusätzliche Resourcen