/dsp-theory

Theory of digital signal processing (DSP): signals, filtration (IIR, FIR, CIC, MAF), transforms (FFT, DFT, Hilbert, Z-transform) etc.

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Digital signal processing

Digital signal processing

Перед вами лекции по цифровой обработке сигналов (ЦОС) в виде тетрадок Jupyter Notebook на языке Python. Можно воспринимать их как полноценный курс по цифровой обработке или использовать как заметки по теоретическим аспектам и практическому применению в решении различных задач.

Материалы представлены с использованием библиотек на языке Python (numpy , scipy, librosa, matplotlib, seaborn etc). Основная информация взята из моих лекций, которые я читал студентам Московского Энергетического Института ("НИУ МЭИ") и которая была использована на обучающих семинарах в Центре Современной Электроники. Лекции содержат перевод различных статей, компиляцию материалов из достоверных источников и литературы по тематике цифровой обработки сигналов, а также официальную документацию по прикладным библиотекам языка Python. Некоторые лекции написаны с помощью моих хороших знакомых и коллег, за что им отдельная благодарность!

  1. Сигналы: аналоговые, дискретные, цифровые. Z-преобразование,
  2. Преобразование Фурье: амплитудный и фазовый спектр сигнала, ДПФ и БПФ,
  3. Свертка и корреляция. Линейная и циклическая свертка. Быстрая свёртка
  4. Случайные процессы. Белый шум. Функция плотности вероятностей
  5. Детерминированные сигналы. Модуляция: АМ, ЧМ, ФМ, ЛЧМ. Манипуляция
  6. Фильтрация сигналов: БИХ, КИХ фильтры
  7. Оконная фильтрация. Детектирование слабых сигналов с помощью наложения окна,
  8. Ресемплинг: децимация и интерполяция. CIC-фильтры, фильтры скользящего среднего
  9. Непараметрические методы спектрального анализа
  10. Полифазные схемы преобразования Фурье - усреднение по частоте и по времени
  11. Банки фильтров в задачах аудиокодирования
  12. Фильтры Фарроу
  13. Мел-спектрограммы
  14. Кепстр и MFCC
  15. Вейвлет-преобразование
  16. Алгоритм Герцеля

Установка

  • Установите miniconda
  • Создайте и активируйте виртуальную среду
  • Установите необходимые библиотеки из requirements.txt
  • Запустите jupyter notebooks через Jupyter server или JetBrains DataSpell
# Создайте среду и установите необходимые библиотеки
conda create -n "dsp_venv" python=3.9 -y
conda activate dsp_venv
pip install -r requirements.txt
# Запустите jupyter notebook server и перейдите по ссылке из консоли 
jupyter notebook

Для лекции 15 необходимо отдельно установить библиотку scaleogram

# Склонируйте репозиторий
git clone http://github.com/alsauve/scaleogram
cd scaleogram
# Установите библиотеку
python ./setup.py install --user

HTML / PDF

Для конвертации ноутбуков в html формат можно выполнить скрипт convert.sh. Могут потребоваться следующие библиотеки:

nbmerge
nbformat
nbconvert

Для конвертации в pdf может потребоваться pandoc

Пост на Habr

Первый релиз

  • 2019/07/10

Авторы

Лицензия

  • GNU GPL 3.0.