• Stars
    star
    788
  • Rank 57,762 (Top 2 %)
  • Language
    Jupyter Notebook
  • License
    Other
  • Created about 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Digital Signal Processing - Theory and Computational Examples

Digital Signal Processing - Theory and Computational Examples

Integration Test

This repository collects didactically edited Jupyter notebooks that introduce basic concepts of Digital Signal Processing. Please take a look at the static version at first glance. The materials provide an introduction to the foundations of spectral analysis, random signals, quantization, and filtering. A series of computational examples and exercises written in IPython 3 accompany the theory.

Digital signal processing chain

The notebooks constitute the lecture notes to the master's course Digital Signal Processing given by Sascha Spors at the University of Rostock, Germany. The contents are provided as Open Educational Resource, so feel free to fork, share, teach and learn. You can give the project a Star if you like it.

Getting Started

The Jupyter notebooks are accessible in various ways

Other online services (e.g. Google Colaboratory, Microsoft Azure, ...) also provide environments for the interactive execution of Jupyter notebooks. Local execution on your computer requires a local Jupyter/IPython installation. The Anaconda distribution is considered a convenient starting point. Then, you would have to clone/download the notebooks from Github. Use a Git client to clone the notebooks and start your local Jupyter server. For manual installation under OS X/Linux please refer to your packet manager.

Concept and Contents

An understanding of the underlying mechanisms and the limitations of basic digital signal processing methods is essential for designing more complex algorithms, such as the recent contributions on indirect detection of supermassive black holes heavily relying on system identification and image processing.

The present notebooks cover fundamental aspects of digital signal processing. A focus is laid on a detailed mathematical treatise. Discussing the mathematical background is essential to understand the underlying principles more broadly. The materials contain computational examples and exercises to interpret the theoretical findings and foster understanding. The examples are designed to be explored interactively. Furthermore, an outlook on practical applications is given whenever possible.

The material covers the following topics

  • spectral analysis of deterministic signals
  • random signals and linear-time invariant systems
  • spectral estimation for random signals
  • realization of non-recursive and recursive filters
  • design of digital filters

Usage and Contributing

The contents are provided as Open Educational Resource. The text is licensed under Creative Commons Attribution 4.0 , and the code of the IPython examples is under the MIT license. Feel free to use the entire collection, parts, or even single notebooks for your purposes. I am curious on the usage of the provided resources, so feel free to drop a line or report to [email protected].

Our long-term vision is to lay the grounds for a community-driven concise and reliable resource covering all relevant aspects of digital signal processing revised by research and engineering professionals. We aim to link the strengths of good old-fashioned textbooks and the interactive playground of computational environments. Open Educational Resources, combined with open source tools (Jupyter, Python) and well-established tools for data literacy (git), provides the unique possibility for collaborative and well-maintained resources. Jupyter is chosen due to its seamless text, math, and code integration. The contents are represented future proof, as a simple markdown layout allowing for conversion into many other formats (html, PDF, ...). The git version management system features tracking of the changes and authorship.

You are invited to contribute on different levels. The lowest level is to provide feedback in terms of a Star if you like the content. Please consider reporting errors or suggestions for improvements as issues. We are always looking forward to new examples and exercises, and reformulated existing and novel sub-sections or sections. Authorship of each considerable contribution is clearly stated. One way of introducing reformulated and new material is to handle them as a tracked pull request.

Build Status

The notebooks' computational examples are automatically built and checked for errors by continuous integration using github actions.

Integration Test

More Repositories

1

python-sounddevice

πŸ”‰ Play and Record Sound with Python 🐍
Python
1,004
star
2

nbsphinx

πŸ“’ Sphinx source parser for Jupyter notebooks
Python
448
star
3

signals-and-systems-lecture

Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples
Jupyter Notebook
322
star
4

computational_acoustics

Collection of Jupyter notebooks illustrating various techniques in computational acoustics
Jupyter Notebook
140
star
5

jackclient-python

πŸ‚» JACK Audio Connection Kit (JACK) Client for Python 🐍
Python
132
star
6

portaudio-binaries

Pre-compiled shared libraries for PortAudio
97
star
7

selected-topics-in-audio-signal-processing-exercises

Exercises for the lecture "Selected Topics in Audio Signal Processing"
Jupyter Notebook
64
star
8

python-rtmixer

🎀 Reliable low-latency audio playback and recording with Python 🐍
C
62
star
9

sfa-numpy

NumPy/Python toolbox for sound field analysis
Python
53
star
10

digital-signal-processing-exercises

Exercises for a masters course on Digital Signal Processing
Jupyter Notebook
37
star
11

communication-acoustics-exercises

Exercises for the lecture "Communication Acoustics"
Jupyter Notebook
24
star
12

python-sofa

A python API for reading and writing SOFA files (https://www.sofaconventions.org/)
Python
23
star
13

data-driven-audio-signal-processing-lecture

Supplementary materials to the lecture data driven audio signal processing
Jupyter Notebook
20
star
14

audiometer

Computer-controlled software audiometer (student project)
Python
16
star
15

selected-topics-in-audio-signal-processing-lecture

Supplementary material for the masters course "Selected Topics in Audio Signal Processing"
Jupyter Notebook
12
star
16

signals-and-systems-exercises

Continuous- and Discrete-Time Signals and Systems - A Tutorial Featuring Computational Examples
TeX
11
star
17

sweep

Simulation environment for sweep-based room impulse response measurements (student project)
Python
11
star
18

hptf-compensation-filters

HpTF compensation filters for binaural synthesis with Matlab script for creation of filters out of measurement data
MATLAB
10
star
19

lf-corrected-kemar-hrtfs

KEMAR HRTFs with low frequency correction
MATLAB
10
star
20

aes148-shelving-filter

shelving filter with adjustable transition band @ 148th Audio Engineering Society Convention, Virtual Vienna, 2020
Python
10
star
21

DAGA2017_towards_open_science_in_acoustics

Towards Open Science in Acoustics: Foundations and Best Practices
TeX
8
star
22

python-pa-ringbuffer

🐍 Python wrapper for PortAudio's ring buffer πŸ’
Python
7
star
23

classification_exercise

Multiclass classification example/exercise using deep neural networks (DNNs)
Jupyter Notebook
6
star
24

schunk

Implementation of Schunk Motion Protocol in Python
Python
6
star
25

sciopy

Package for serial communication with the Sciospec EIT device.
Python
5
star
26

doa-early-room-reflections-pwd-vs-omp

Jupyter Notebook
4
star
27

data-driven-audio-signal-processing-exercise

Data Driven Audio Signal Processing - A Tutorial with Computational Examples
Jupyter Notebook
4
star
28

acoustic-localisation-cnn

Convolutional Neural Network for Acoustic Localisation using Multiple Sensors
Python
3
star
29

non-smooth-secondary-source-distributions

Scripts for the paper "Non-smooth secondary source distributions in Wave Field Synthesis" presented at the annual meeting of the Germany acoustical society, 2015, Nuremberg, Germany.
Python
3
star
30

improved_driving_functions_for_rectangular_loudspeaker_arrays

Scripts for the paper "Improved Driving Functions for Rectangular Loudspeaker Arrays Driven by Sound Field Synthesis" presented at the annual meeting of the Germany acoustical society, 2016, Aachen, Germany.
Python
3
star
31

group-delay-of-filters

Group delay of analog and digital IIR filters
Python
2
star
32

multiple-stimuli-rating-gui-jupyter

minimal example: design of a multiple stimuli rating GUI using Jupyter notebook/widgets and OSC control of Reaper DAW
Jupyter Notebook
2
star
33

audibility-constant-phase

Audibility of Constant Phase Shifts in Audio Signals
TeX
2
star
34

paper-aes154-individual-hrtf-hoa2binaural

material for paper Schultz et al. (2023): "HRTF Individualised Mag-LS and COMPASS Ambisonics-To-Binaural Rendering: Overall Perceived Quality for Pre-Conditioned Listeners." Proc. 154th AES Conv., Espoo
TeX
2
star
35

standards

A Selection of International Standards related to Audio/Acoustics/...
1
star
36

magic_call

Python package for passing some text to a chain of external programs and getting the result(s) back
Python
1
star
37

geq-design

collection of design methods for graphical equalizers
Jupyter Notebook
1
star
38

panorama-examples

Shell
1
star
39

panorama

Panorma functionality to the Varisphear system (student project)
Python
1
star
40

ASA2017_Open_Science_in_TwoEars

Open Science in the Two!Ears Project -- Experiences and Best Practices
TeX
1
star
41

resampling

Library for resampling with various resampling grids and various interpolation techniques (student project)
MATLAB
1
star
42

schunk-cpp

Implementation of Schunk Motion Protocol in C++
C
1
star