• Stars
    star
    322
  • Rank 130,398 (Top 3 %)
  • Language
    Jupyter Notebook
  • License
    Other
  • Created over 8 years ago
  • Updated 6 months ago

Reviews

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

Repository Details

Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples

Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples

Integration Test

This repository collects didactically edited Jupyter notebooks that introduce the theory of linear, time-invariant (LTI) signals and systems. Please take a look at the static version for a first glance. The continuous-time case, as well as the temporally sampled (discrete-time) case is covered. The theory is accompanied by a series of computational examples and exercises written in IPython 3.

System in the temporal and spectral domain

The notebooks constitute the lecture notes to the bachelor's course Signals and Systems 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 the notebooks.

Getting Started

The Jupyter notebooks are accessible in various ways

Other online services (e.g. Google Colaboratory, Microsoft Azure, ...) provide environments for interactive execution of Jupyter notebooks as well. Local execution on your computer requires a local Jupyter/IPython installation. The Anaconda distribution can be considered as a convenient starting point. Then, you'd have to clone/download the notebooks from Github. Use a Git client to clone the notebooks and then 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 signal processing methods is essential for the design of more complex techniques, such as for example the recent contributions on indirect detection of supermassive black holes heavily relying on system identification and image processing.

The present notebooks cover the fundamentals of linear and time-invariant signals and systems. A focus is laid on a detailed mathematical treatise. The discussion of the mathematical background is important to understand the underlying principles in a more general manner. The materials contain a series of computational examples and exercises to interpret the theoretical findings and foster understanding. The examples are designed to be explored in an interactive manner. Furthermore, an outlook to practical applications is given whenever possible.

The material is organized in two major blocks, namely

  • continuous-time and
  • discrete-time (temporal sampling)

signals and systems. The two blocks become interrelated by the discussion of the ideal temporal sampling process and its inherent implications on sampled signals. The didactical layouts for the two blocks are quite similar:

  • introduction into signals and LTI systems
  • standard signals and operations
  • characterization of LTI systems in the time-domain
  • spectral representation of signals (Laplace and Fourier transform vs. z- and discrete-time Fourier transform)
  • spectral representation of LTI systems
  • properties of LTI systems

This allows to observe the similarities and differences between the continuous- and discrete-time case but otherwise for reading a block without having studied the other one.

Usage and Contributing

The contents are provided as Open Educational Resource. The text is licensed under Creative Commons Attribution 4.0 , the code of the IPython examples under the MIT license. Feel free to use the entire collection, parts or even single notebooks for your own 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 the entire theory of signals and systems revised by research and engineering professionals. We aim at linking the strengths of both, the good old-fashioned text books and the interactive playground of computational environments. Open Educational Resources in combination with open source tools (Jupyter, Python) and well-established tools for data literacy (git) provide the unique possibility for collaborative and well-maintained resources. Jupyter has been chosen due to its seamless integration of text, math and code. The contents are represented future prove, as simple markdown layout allows 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 contents. Please consider reporting errors or suggestions for improvements as issues. We are always looking forward to new examples and exercises, as well as reformulation of existing and novel sub-sections or sections. Authorship of each considerable contribution will be clearly stated. One way of introducing reformulated and new material is to handle them as a tracked pull request.

We are currently working on an accompanying exercise repository to gain knowledge and experience on manual calculation of prototypical signal and systems problems. This will be online very soon.

Build Status

The computational examples in the notebooks are automatically build 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

digital-signal-processing-lecture

Digital Signal Processing - Theory and Computational Examples
Jupyter Notebook
788
star
3

nbsphinx

πŸ“’ Sphinx source parser for Jupyter notebooks
Python
448
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