{"id":13700976,"url":"https://github.com/hukenovs/dsp-theory","last_synced_at":"2025-05-16T00:06:23.072Z","repository":{"id":37658982,"uuid":"196191272","full_name":"hukenovs/dsp-theory","owner":"hukenovs","description":"Theory of digital signal processing (DSP): signals, filtration (IIR, FIR, CIC, MAF), transforms (FFT, DFT, Hilbert, Z-transform) etc.","archived":false,"fork":false,"pushed_at":"2024-09-23T08:23:15.000Z","size":30810,"stargazers_count":1048,"open_issues_count":2,"forks_count":185,"subscribers_count":61,"default_branch":"master","last_synced_at":"2025-04-06T11:07:14.030Z","etag":null,"topics":["convolution","digital-signal-processing","dsp","fast-fourier-transform","fft","finite-impulse-response","fir","fpga","lectures","lessons","numpy","numpy-tutorial","python","scipy","tutorial"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hukenovs.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":"2019-07-10T11:18:10.000Z","updated_at":"2025-04-06T10:28:51.000Z","dependencies_parsed_at":"2023-02-14T11:30:46.326Z","dependency_job_id":"f1230bec-b7e9-4833-b733-30784d8a89fd","html_url":"https://github.com/hukenovs/dsp-theory","commit_stats":{"total_commits":91,"total_committers":11,"mean_commits":8.272727272727273,"dds":0.2857142857142857,"last_synced_commit":"40fa9d54f077fe0dd55ca3596d1789851dce4a55"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fdsp-theory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fdsp-theory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fdsp-theory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fdsp-theory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hukenovs","download_url":"https://codeload.github.com/hukenovs/dsp-theory/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442854,"owners_count":22071878,"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":["convolution","digital-signal-processing","dsp","fast-fourier-transform","fft","finite-impulse-response","fir","fpga","lectures","lessons","numpy","numpy-tutorial","python","scipy","tutorial"],"created_at":"2024-08-02T20:01:12.696Z","updated_at":"2025-05-16T00:06:18.048Z","avatar_url":"https://github.com/hukenovs.png","language":"Jupyter Notebook","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"# Digital signal processing\n\n![Digital signal processing](img/cic_signal.svg \"Improve your skills into Digital Signtal Processing!\")\n\nПеред вами лекции по **цифровой обработке сигналов** (ЦОС) в виде тетрадок Jupyter Notebook на языке Python. Можно воспринимать их как полноценный курс по цифровой обработке или использовать как заметки по теоретическим аспектам и практическому применению в решении различных задач.  \n\nМатериалы представлены с использованием библиотек на языке *Python* (numpy , scipy, librosa, matplotlib, seaborn etc). Основная информация взята из моих лекций, которые я читал студентам Московского Энергетического Института (\"НИУ МЭИ\") и которая была использована на обучающих семинарах в Центре Современной Электроники. Лекции содержат перевод различных статей, компиляцию материалов из достоверных источников и литературы по тематике цифровой обработки сигналов, а также официальную документацию по прикладным библиотекам языка **Python**. Некоторые лекции написаны с помощью моих хороших знакомых и коллег, за что им отдельная благодарность!\n\n## [Список лекций (на русском)](https://github.com/hukenovs/dsp-theory/tree/master/src \"DSP courses in RU\")\n\n1. [Сигналы: аналоговые, дискретные, цифровые. Z-преобразование](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_1_signals.ipynb?flush_cache=True \"Signals, analog, digital, Z-transform\"),\n2. [Преобразование Фурье: амплитудный и фазовый спектр сигнала, ДПФ и БПФ](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_2_spectrum.ipynb?flush_cache=True \"Discrete Fourier Transform. FFT, IFFT\"),\n3. [Свертка и корреляция. Линейная и циклическая свертка. Быстрая свёртка](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_3_convolution.ipynb?flush_cache=True \"Correlation, convolution: linear / circular / fast\")\n4. [Случайные процессы. Белый шум. Функция плотности вероятностей](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_4_random_noise.ipynb?flush_cache=True \"Random signals AWGN, Noise\")\n5. [Детерминированные сигналы. Модуляция: АМ, ЧМ, ФМ, ЛЧМ. Манипуляция](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_5_modulation.ipynb?flush_cache=True \"Modulation. AM-, FM-, Chirp signals\")\n6. [Фильтрация сигналов: БИХ, КИХ фильтры](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_6_iir_fir_filters.ipynb?flush_cache=True \"IIR / FIR filters\")\n7. [Оконная фильтрация. Детектирование слабых сигналов с помощью наложения окна](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_7_windows.ipynb?flush_cache=True \"Windows, filtration: Hann, Blackman, Flattop, Kaiser etc.\"), \n8. [Ресемплинг: децимация и интерполяция. CIC-фильтры, фильтры скользящего среднего](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_8_resampling.ipynb?flush_cache=True \"CIC filters, decimation, interpolation, moving average\")\n9. [Непараметрические методы спектрального анализа](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_9_periodogram.ipynb?flush_cache=True \"Spectrum analysis: Welch's Method\")\n10. [Полифазные схемы преобразования Фурье - усреднение по частоте и по времени](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_10_polyphase_ffts.ipynb?flush_cache=True \"Spectrum analysis: average spectrum\")\n11. [Банки фильтров в задачах аудиокодирования](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_11_filter_banks.ipynb?flush_cache=True \"Filter banks for audio processing\")\n12. [Фильтры Фарроу](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_12_filter_farrow.ipynb?flush_cache=True \"Filter Farrow\")\n13. [Мел-спектрограммы](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_13_mel_scale.ipynb?flush_cache=True \"Mel-spectrum\")\n14. [Кепстр и MFCC](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_14_mfcc.ipynb?flush_cache=True \"MFCC\")\n15. [Вейвлет-преобразование](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_15_wavelets.ipynb?flush_cache=True \"Wavelets\")\n16. [Алгоритм Герцеля](https://nbviewer.jupyter.org/github/hukenovs/dsp-theory/blob/master/src/dsp_theory_16_goertzel.ipynb?flush_cache=True \"Goertzel\")\n\n## Установка\n- Установите [miniconda](https://docs.conda.io/en/latest/miniconda.html)\n- Создайте и активируйте [виртуальную среду](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)\n- Установите необходимые библиотеки из `requirements.txt`\n- Запустите jupyter notebooks через Jupyter server или JetBrains DataSpell\n\n```bash\n# Создайте среду и установите необходимые библиотеки\nconda create -n \"dsp_venv\" python=3.9 -y\nconda activate dsp_venv\npip install -r requirements.txt\n# Запустите jupyter notebook server и перейдите по ссылке из консоли \njupyter notebook\n```\nДля лекции 15 необходимо отдельно установить библиотку [scaleogram](https://github.com/alsauve/scaleogram)\n```bash\n# Склонируйте репозиторий\ngit clone http://github.com/alsauve/scaleogram\ncd scaleogram\n# Установите библиотеку\npython ./setup.py install --user\n```\n### HTML / PDF\nДля конвертации ноутбуков в **html** формат можно выполнить скрипт `convert.sh`. Могут потребоваться следующие библиотеки:\n```commandline\nnbmerge\nnbformat\nnbconvert\n```\nДля конвертации в **pdf** может потребоваться `pandoc`\n\n### Пост на Habr\n  * [Digital Signal Processing Course](https://habr.com/ru/post/460445/ \"Digital Signal Processing Course\")\n\n### Первый релиз\n  * 2019/07/10\n\n### Авторы\n  * Alexander Kapitanov, [@hukenovs](https://github.com/hukenovs)\n  * Vladimir Fadeev, [@kirlf](https://github.com/kirlf)\n  * Karina Kvanchiani, [@karinakvanchiani](https://github.com/karinakvanchiani)\n  * Elizaveta Petrova, [@kleinsbotle](https://github.com/kleinsbotle)\n  * Andrei Makhliarchuk, [@anotherhelloworld](https://github.com/anotherhelloworld)\n### Лицензия\n  * GNU GPL 3.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhukenovs%2Fdsp-theory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhukenovs%2Fdsp-theory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhukenovs%2Fdsp-theory/lists"}