science

Учебник Цифровая обработка сигналов (DSP) для начинающих

32 урока · 9 разделов · бесплатно, без регистрации

Полный инженерный курс по цифровой обработке сигналов (DSP) на русском языке — от ответа на вопрос «что такое сигнал» до проектирования цифровых фильтров и спектрограмм. Вы разберёте дискретизацию и теорему Котельникова, алиасинг и квантование, свёртку и LTI-системы, преобразование Фурье и БПФ. Главное отличие курса: ДПФ, БПФ, свёртку и фильтры мы реализуем по-настоящему — на чистом стандартном Python через модуль cmath, с точным выводом и ASCII-графиками спектров. В конце — практические задачи (чистка ЭКГ от наводки 50 Гц, детект частоты и пиков, корреляция), 2D-обработка изображений и обзор реальных инструментов numpy/scipy. Каждый урок — лонгрид с разбором «под капотом», частыми ошибками и мини-квизом.

Курс «Цифровая обработка сигналов (DSP)» состоит из 9 разделов и 32 уроков: Введение в ЦОС, Дискретизация и квантование, Основные сигналы и операции, Свёртка и LTI-системы, Преобразование Фурье, БПФ и спектральный анализ, Цифровые фильтры, Практические задачи DSP и 2D-сигналы и инструменты. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Введение в ЦОС

    1. Что такое сигнал

      Сигнал как величина, меняющаяся во времени: примеры из звука, радио, медицины и датчиков. Аналоговые и цифровые сигналы простым языком.

    2. Зачем обрабатывать сигналы

      Зачем нужна цифровая обработка сигналов: шумоподавление, сжатие, анализ, фильтрация и распознавание. Реальные задачи DSP в звуке, связи и медицине.

    3. Виды сигналов

      Классификация сигналов: непрерывные и дискретные, периодические и апериодические, детерминированные и случайные, чётные и нечётные. Энергия и мощность сигнала.

    4. Язык DSP: обозначения и термины

      Базовые обозначения цифровой обработки сигналов: отсчёт, индекс, частота дискретизации, нормированная частота, единичный импульс и единичная ступень.

  2. 2 Дискретизация и квантование

    1. Дискретизация по времени

      Дискретизация сигнала: переход от непрерывного к отсчётам, частота дискретизации, период дискретизации. Как АЦП превращает аналог в список чисел.

    2. Теорема Котельникова и частота Найквиста

      Теорема Котельникова (Найквиста-Шеннона): почему частота дискретизации должна быть минимум вдвое выше максимальной частоты сигнала. Частота Найквиста простыми словами.

    3. Алиасинг: что будет, если нарушить теорему

      Алиасинг (наложение спектров): почему высокая частота при недостаточной дискретизации маскируется под низкую. Эффект стробоскопа, обратное вращение колёс, муар.

    4. Квантование, разрядность и шум квантования

      Квантование сигнала по амплитуде: уровни, разрядность (биты), шаг квантования и шум квантования. Отношение сигнал/шум и правило 6 дБ на бит.

  3. 3 Основные сигналы и операции

    1. Базовые сигналы: синус, импульс, ступень, шум

      Элементарные сигналы DSP: синусоида и косинусоида, единичный импульс, единичная ступень, белый шум. Генерируем их на чистом Python и понимаем роль каждого.

    2. Амплитуда, частота и фаза

      Три параметра синусоиды: амплитуда (громкость), частота (высота тона) и фаза (сдвиг). Как каждый меняет сигнал и почему фаза важна при сложении волн.

    3. Операции над сигналами

      Базовые операции DSP над сигналами: сложение, умножение, масштабирование амплитуды, сдвиг во времени, инверсия и прореживание. Линейные комбинации сигналов.

    4. Модуляция: AM и кольцевая модуляция

      Модуляция сигнала: амплитудная модуляция (AM), несущая и модулирующий сигнал, кольцевая модуляция. Почему умножение сигналов рождает боковые частоты.

  4. 4 Свёртка и LTI-системы

    1. Свёртка: главная операция ЦОС

      Свёртка сигналов: что это, формула, принцип «скольжение и сумма». Реализуем дискретную свёртку на чистом Python и понимаем её смысл шаг за шагом.

    2. Импульсная характеристика системы

      Импульсная характеристика (импульсный отклик) системы: что это, как её снять единичным импульсом и почему она полностью описывает линейную систему.

    3. Линейные стационарные системы (LTI)

      Линейные стационарные системы (LTI): свойства линейности и стационарности, принцип суперпозиции, почему именно LTI-системы лежат в основе всей теории фильтров.

  5. 5 Преобразование Фурье

    1. Идея Фурье: любой сигнал — сумма синусов

      Главная идея анализа Фурье: любой сигнал можно представить как сумму синусоид разных частот. Ряд Фурье для периодических сигналов на наглядном примере меандра.

    2. Спектр: что показывает частотная картина

      Спектр сигнала: переход из временной области в частотную, что показывают амплитудный спектр и спектральные линии. Зачем смотреть на сигнал в частотной области.

    3. Дискретное преобразование Фурье (ДПФ)

      Дискретное преобразование Фурье (ДПФ): формула через комплексные экспоненты, реализация на чистом Python через cmath, вычисление спектра реального сигнала.

    4. Обратное ДПФ, амплитудный и фазовый спектр

      Обратное дискретное преобразование Фурье (оДПФ): восстановление сигнала из спектра. Амплитудный и фазовый спектр: что показывает каждый и почему фаза важна.

  6. 6 БПФ и спектральный анализ

    1. Быстрое преобразование Фурье (БПФ)

      Быстрое преобразование Фурье (БПФ, FFT): идея «разделяй и властвуй», снижение сложности с O(N^2) до O(N log N). Рекурсивная реализация на чистом Python через cmath.

    2. Оконные функции и утечка спектра

      Утечка спектра при ДПФ и оконные функции: окна Хэмминга и Ханна, почему сигнал «между бинами» размазывается и как окно уменьшает боковые лепестки. Разрешение по частоте.

    3. STFT и спектрограмма: спектр во времени

      Кратковременное преобразование Фурье (STFT) и спектрограмма: как анализировать сигнал, спектр которого меняется во времени. Кадры, перекрытие, связь со звуком и речью.

  7. 7 Цифровые фильтры

    1. Зачем нужны фильтры и какие они бывают

      Цифровые фильтры: зачем фильтровать сигнал, типы фильтров ФНЧ, ФВЧ, полосовой и режекторный. Что значит «пропустить» или «подавить» частоту.

    2. КИХ-фильтры (FIR): свёртка с ядром

      КИХ-фильтры (FIR) с конечной импульсной характеристикой: фильтрация как свёртка с ядром, проектирование скользящим средним и методом окна. Линейная фаза FIR.

    3. БИХ-фильтры (IIR): рекурсия и обратная связь

      БИХ-фильтры (IIR) с бесконечной импульсной характеристикой: рекурсивная структура с обратной связью, эффективность по сравнению с FIR, однополюсный фильтр. Устойчивость IIR.

    4. АЧХ, ФЧХ и обзор z-преобразования

      Характеристики фильтра: амплитудно-частотная (АЧХ) и фазочастотная (ФЧХ), полоса пропускания и переходная зона. Обзор z-преобразования, полюса и нули.

  8. 8 Практические задачи DSP

    1. Убираем сетевую наводку 50 Гц из ЭКГ

      Практическая задача DSP: удаление сетевой наводки 50 Гц из сигнала ЭКГ. Режекторный фильтр и трюк со скользящим средним, которое точно гасит мешающую частоту.

    2. Детект частоты, пиков и огибающей

      Практические приёмы анализа сигнала: определение доминирующей частоты через пик спектра, поиск локальных пиков и вычисление огибающей сигнала методом выпрямления и сглаживания.

    3. Корреляция и согласованная фильтрация

      Корреляция сигналов: взаимная корреляция и автокорреляция, поиск шаблона в сигнале, согласованный фильтр для обнаружения известной формы в шуме. Связь с радаром и GPS.

  9. 9 2D-сигналы и инструменты

    1. Обработка изображений как 2D-сигналов

      Изображение как двумерный сигнал: 2D-свёртка с ядром, фильтры размытия, повышения резкости и выделения краёв. Связь обработки изображений с компьютерным зрением.

    2. Семплинг и реконструкция на практике

      Восстановление сигнала из отсчётов на практике: ступенчатая (ZOH) и линейная интерполяция, роль восстанавливающего фильтра ЦАП, передискретизация. От цифры обратно к аналогу.

    3. Инструменты и типичные ошибки

      Реальные инструменты DSP: numpy.fft, scipy.signal, librosa — что использовать на практике. Типичные ошибки: алиасинг, утечка спектра, неверная нормировка ДПФ, нелинейности.

py
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
Открыть курс →