{"id":15014850,"url":"https://github.com/spatialaudio/digital-signal-processing-lecture","last_synced_at":"2025-05-15T02:06:36.294Z","repository":{"id":45470174,"uuid":"43798613","full_name":"spatialaudio/digital-signal-processing-lecture","owner":"spatialaudio","description":"Digital Signal Processing - Theory and Computational Examples","archived":false,"fork":false,"pushed_at":"2025-01-13T10:20:34.000Z","size":43738,"stargazers_count":822,"open_issues_count":3,"forks_count":209,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-04-14T20:55:38.258Z","etag":null,"topics":["digital-signal-processing","educational-materials","educational-resources","filter-design","filtering","ipython","jupyter","lecture-notes","masters-course","notebook","open-educational-resources","random-signals","signals-and-systems","spectral-analysis"],"latest_commit_sha":null,"homepage":"http://nbviewer.jupyter.org/github/spatialaudio/digital-signal-processing-lecture/blob/master/index.ipynb","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spatialaudio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-07T06:22:48.000Z","updated_at":"2025-04-06T03:00:00.000Z","dependencies_parsed_at":"2023-02-10T11:00:50.511Z","dependency_job_id":"f9e07dbb-4159-4242-94b5-607a04a5ca7a","html_url":"https://github.com/spatialaudio/digital-signal-processing-lecture","commit_stats":{"total_commits":425,"total_committers":5,"mean_commits":85.0,"dds":"0.12470588235294122","last_synced_commit":"78e8c6039a5f22c0495c2e487e3806a1c12bfe9f"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spatialaudio%2Fdigital-signal-processing-lecture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spatialaudio%2Fdigital-signal-processing-lecture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spatialaudio%2Fdigital-signal-processing-lecture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spatialaudio%2Fdigital-signal-processing-lecture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spatialaudio","download_url":"https://codeload.github.com/spatialaudio/digital-signal-processing-lecture/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259370,"owners_count":22040819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["digital-signal-processing","educational-materials","educational-resources","filter-design","filtering","ipython","jupyter","lecture-notes","masters-course","notebook","open-educational-resources","random-signals","signals-and-systems","spectral-analysis"],"created_at":"2024-09-24T19:46:10.414Z","updated_at":"2025-05-15T02:06:36.252Z","avatar_url":"https://github.com/spatialaudio.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digital Signal Processing - Theory and Computational Examples\n\n[![Linting](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/lint_nb.yml/badge.svg?branch=master)](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/lint_nb.yml) \n[![Run Notebooks](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/run_nb.yml/badge.svg?branch=master)](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/run_nb.yml) \n[![Sphinx Built](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/notebook_ci.yml/badge.svg?branch=master)](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/notebook_ci.yml)\n\nThis repository collects didactically edited [Jupyter](https://jupyter.org/) notebooks that introduce basic concepts of [Digital Signal Processing](https://en.wikipedia.org/wiki/Digital_signal_processing). Please take a look at the [static version](http://nbviewer.ipython.org/github/spatialaudio/digital-signal-processing-lecture/blob/master/index.ipynb)\nat 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](http://ipython.org/) accompany the theory.\n\n![Digital signal processing chain](https://github.com/spatialaudio/digital-signal-processing-lecture/blob/master/introduction/DSP.png)\n\nThe notebooks constitute the lecture notes to the master's course [Digital Signal Processing](http://www.int.uni-rostock.de/Digitale-Signalverarbeitung.48.0.html) given by [Sascha Spors](http://www.int.uni-rostock.de/Staff-Info.23+B6JmNIYXNoPWUxOTliMTNjY2U2MDcyZjJiZTI0YTc4MmFkYTE5NjQzJnR4X2pwc3RhZmZfcGkxJTVCYmFja0lkJTVEPTMmdHhfanBzdGFmZl9waTElNUJzaG93VWlkJTVEPTExMQ__.0.html) at the University of Rostock, Germany. The contents are provided as [Open Educational Resource](https://de.wikipedia.org/wiki/Open_Educational_Resources), so feel free to fork, share, teach and learn.\nYou can give the project a [Star](https://github.com/spatialaudio//digital-signal-processing-lecture/stargazers) if you like it.\n\n\n## Getting Started\n\nThe Jupyter notebooks are accessible in various ways\n\n* Online as [static web pages](http://nbviewer.ipython.org/github/spatialaudio/digital-signal-processing-lecture/blob/master/index.ipynb)\n* Online for [interactive usage](https://mybinder.org/v2/gh/spatialaudio/digital-signal-processing-lecture/master?filepath=index.ipynb) with [binder](https://mybinder.org/)\n* Local for interactive usage on your computer\n\nOther online services (e.g. [Google Colaboratory](https://colab.research.google.com),\n[Microsoft Azure](https://azure.microsoft.com/), ...) also provide environments for the \ninteractive execution of Jupyter notebooks.\nLocal execution on your computer requires a local Jupyter/IPython installation.\nThe [Anaconda distribution](https://www.continuum.io/downloads)  is considered a convenient starting point.\nThen, you would have to [clone/download the notebooks from Github](http://github.com/spatialaudio/digital-signal-processing-lecture).\nUse a [Git](http://git-scm.org/) client to clone the notebooks and start\nyour local Jupyter server. For manual installation under OS X/Linux please\nrefer to your packet manager.\n\n## Concept and Contents\n\nAn 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\nblack holes](https://en.wikipedia.org/wiki/Messier_87)\nheavily relying on system identification and image processing.\n\nThe present notebooks cover fundamental aspects of digital signal processing.\nA focus is laid on a detailed mathematical treatise.\nDiscussing the mathematical background is essential to understand the underlying principles more broadly.\nThe materials contain computational examples and exercises to\ninterpret the theoretical findings and foster understanding.\nThe examples are designed to be explored interactively.\nFurthermore, an outlook on practical applications is given whenever possible.\n\nThe material covers the following topics \n\n* spectral analysis of deterministic signals\n* random signals and linear-time invariant systems\n* spectral estimation for random signals\n* realization of non-recursive and recursive filters\n* design of digital filters\n\n\n## Usage and Contributing\n\nThe contents are provided as [Open Educational Resource](https://de.wikipedia.org/wiki/Open_Educational_Resources).\nThe text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/)\n, and the code of the IPython examples is under the [MIT license](https://opensource.org/licenses/MIT).\nFeel free to use the entire collection, parts, or even single notebooks for your purposes.\nI am curious on the usage of the provided resources, so feel free to drop a\nline or report to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).\n\nOur long-term vision is to lay the grounds for a **community-driven concise and\nreliable resource** covering all relevant aspects of digital signal processing revised\nby research and engineering professionals.\nWe aim to link the strengths of good old-fashioned textbooks\nand the interactive playground of computational environments.\nOpen 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.\nJupyter 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.\n\nYou are invited to contribute on different levels.\nThe lowest level is to provide feedback in terms of a\n[Star](https://github.com/spatialaudio/digital-signal-processing-lecture/stargazers)\nif you like the content.\nPlease consider reporting errors or suggestions for improvements as\n[issues](https://github.com/spatialaudio/digital-signal-processing-lecture/issues).\nWe are always looking forward to new examples and exercises, and reformulated existing and novel sub-sections or sections.\nAuthorship of each considerable contribution is clearly stated.\nOne way of introducing reformulated and new material is to handle them as\na tracked [pull request](https://github.com/spatialaudio/digital-signal-processing-lecture/pulls).\n\n\n## Build Status\n\nThe notebooks' computational examples are automatically built and checked for errors by continuous integration using github actions.\n\n[![Linting](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/lint_nb.yml/badge.svg?branch=master)](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/lint_nb.yml) \n[![Run Notebooks](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/run_nb.yml/badge.svg?branch=master)](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/run_nb.yml) \n[![Sphinx Built](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/notebook_ci.yml/badge.svg?branch=master)](https://github.com/spatialaudio/digital-signal-processing-lecture/actions/workflows/notebook_ci.yml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspatialaudio%2Fdigital-signal-processing-lecture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspatialaudio%2Fdigital-signal-processing-lecture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspatialaudio%2Fdigital-signal-processing-lecture/lists"}