Цифровая обработка сигналов
Сигналы и системы
Shazam определяет песню за 5 секунд среди 100 миллионов треков. Механизм - спектрограмма через DSP. CD-качество = 44100 Гц, потому что Найквист в 1928 доказал: чтобы передать звук до 22 кГц, нужна вдвое большая частота дискретизации. Без этой теоремы нет цифровой эры. 5G использует OFDM - 3300 поднесущих, каждая независимый DSP-канал. Всё это - сигналы и системы. И всё начинается с одной идеи: сигнал - это последовательность чисел, система - правило её преобразования.
- **Shazam fingerprinting:** за 5 секунд строится спектрограмма через STFT - сигнал превращается в набор (время, частота, амплитуда), потом ищется отпечаток в базе. Это прямое применение LTI и свёртки
- **5G OFDM:** 3300 поднесущих частот, каждая - отдельный LTI-канал. Мультиплексирование через обратное FFT - O(N log N) вместо O(N²). Без DSP нет 5G
- **Whisper / speech recognition:** сначала сигнал превращается в log-mel спектрограмму (свёртка + FFT), потом подаётся в трансформер. DSP - первый слой любой речевой системы
- **MRI и радар:** импульсная характеристика среды восстанавливается через деконволюцию. Медицинский снимок - это решение обратной задачи свёртки
- **MP3/AAC сжатие:** психоакустическая модель работает в частотной области (FFT + MDCT). Удаляются частоты, которые ухо не слышит - информация в спектре, не во времени
Дискретные сигналы
**Дискретный сигнал** x[n] - это последовательность чисел, где n - целое. Каждый отсчёт x[n] - значение сигнала в момент n. Цифровой звук в наушниках, пиксели изображения, биржевые котировки - всё это дискретные сигналы. И Shazam, анализируя звук микрофона, первым делом видит именно это: x[0], x[1], x[2], ... - числа, числа, числа.
Три фундаментальных строительных блока. **Единичный импульс** delta[n] - 1 при n=0, ноль везде. Кажется банальным - но это атом, из которых строится любой сигнал. **Единичный скачок** u[n] - включается в нуле и больше не выключается. **Экспонента** a^n·u[n] - модель любой затухающей реакции: звонок колокола, заряд конденсатора, шум в канале.
| Сигнал | Определение | Энергия/Мощность |
|---|---|---|
| δ[n] | 1 при n=0, 0 иначе | Энергия = 1 |
| u[n] | 1 при n≥0, 0 при n<0 | Мощность = 1 |
| a^n · u[n], |a|<1 | Затухающая экспонента | Энергия = 1/(1-a²) |
| cos(ω₀n) | Косинусоида | Мощность = 1/2 |
| A·δ[n-k] | Импульс амплитуды A в момент k | Энергия = A² |
**Сигналы с конечной энергией** (sum|x[n]|² < inf) - звук, изображение. **Сигналы с конечной мощностью** (lim(1/N)sum|x[n]|² < inf) - периодические сигналы, шум. Импульс - энергетический, синусоида - мощностной.
Любой дискретный сигнал раскладывается в сумму сдвинутых импульсов: x[n] = Σ x[k]·delta[n-k]. Это не теорема - это определение. И это ключ к свёртке: если система линейная и инвариантная во времени, достаточно знать её реакцию на один импульс - и реакция на любой сигнал вычисляется автоматически.
Сигнал x[n] = 3·delta[n] - 2·delta[n-1] + delta[n-3]. Чему равно x[1]?
Непрерывные сигналы
**Непрерывный (аналоговый) сигнал** x(t) определён для всех вещественных t. Звуковая волна в воздухе, напряжение на выходе микрофона, температура тела - непрерывные сигналы. Смартфон слышит именно это - непрерывное давление воздуха. Чтобы передать его в процессор, нужна дискретизация: x[n] = x(n·T_s), где T_s - шаг выборки.
Непрерывный аналог импульса - дельта-функция Дирака delta(t): бесконечно узкий, бесконечно высокий, с единичным интегралом. Физически - идеальный щелчок. Скачок Хевисайда u(t) - включение питания. Экспонента e^(-at)·u(t) - разряд батарейки. Те же три строительных блока, что и в дискретном мире, только в непрерывном времени.
| Свойство | Дискретный x[n] | Непрерывный x(t) |
|---|---|---|
| Аргумент | Целые n | Вещественные t |
| Импульс | δ[n] (Кронекер) | δ(t) (Дирак) |
| Энергия | Σ|x[n]|² | ∫|x(t)|²dt |
| Периодичность | x[n] = x[n+N] | x(t) = x(t+T) |
| Обработка | Цифровая (DSP) | Аналоговая (схемы) |
| Спектр | Периодический (DTFT) | Непериодический (FT) |
**Найквист - Котельников, 1928:** если дискретизировать с частотой f_s, то без потерь восстанавливаются все частоты до f_s/2. CD-формат: f_s = 44100 Гц, потолок слышимости = 22050 Гц - чуть выше предела слуха 20 кГц. Если частота дискретизации слишком мала - возникает алиасинг: высокие частоты маскируются под низкие, и сигнал искажается необратимо.
DSP работает с дискретными сигналами - компьютеры оперируют числами, не функциями. Но понимание непрерывного мира критично: именно на стыке аналог/цифра живут алиасинг, джиттер и квантовый шум - три источника ошибок, которые преследуют всякую реальную систему.
Энергия сигнала x(t) = 2·e^(-3t)·u(t). Чему равна?
LTI-системы
**LTI (Linear Time-Invariant)** - линейная инвариантная во времени система. Два условия. **Линейность:** если x1 → y1 и x2 → y2, то a·x1 + b·x2 → a·y1 + b·y2. **Инвариантность:** если x[n] → y[n], то x[n-k] → y[n-k] для любого k. Большинство фильтров, усилителей, акустических помещений - LTI. Именно поэтому реверберация в зале - это свёртка сигнала с импульсной характеристикой помещения.
Убийственная идея LTI: вся система полностью описывается одной функцией - **импульсной характеристикой** h[n], реакцией на единичный импульс delta[n]. Записать h[n] = выстрелить стартовым пистолетом в зале и записать эхо. Теперь знаешь всё. Любой звук через этот зал = свёртка с h[n].
| Система | LTI? | Почему |
|---|---|---|
| y[n] = 3x[n] + 2x[n-1] | Да | Линейная комбинация сдвигов |
| y[n] = x[n]² | Нет | Нелинейная: (2x)² ≠ 2·x² |
| y[n] = x[-n] | Нет | Не инвариантна: отражение + сдвиг ≠ сдвиг + отражение |
| y[n] = n·x[n] | Нет | Не инвариантна: коэффициент зависит от n |
| y(t) = ∫x(τ)dτ | Да | Интегратор - LTI |
**BIBO-устойчивость** (bounded input → bounded output): LTI-система устойчива тогда и только тогда, когда sum(|h[n]|) < infinity. Импульсная характеристика должна быть абсолютно суммируема.
Каузальность: h[n] = 0 для n < 0 - система не смотрит в будущее. Все реально работающие системы каузальны. Некаузальные фильтры существуют только в оффлайн-обработке: когда Audacity применяет линейно-фазовый эквалайзер к записанному файлу, он может использовать будущие отсчёты - запись уже известна целиком.
Система y[n] = x[n] + x[n]². Является ли она LTI?
Свёртка
**Свёртка** - центральная операция DSP. Выход LTI-системы: y[n] = x[n] * h[n] = Σ x[k]·h[n-k] для всех k. Каждый входной отсчёт x[k] порождает масштабированную копию импульсной характеристики, сдвинутую на k. Все копии накладываются - это и есть выход.
Алгоритм вручную: 1) Перевернуть h[k] → h[-k], 2) Сдвинуть на n: h[n-k], 3) Умножить поэлементно на x[k], 4) Просуммировать. Переворот h - ключевое отличие свёртки от корреляции. Именно он обеспечивает каузальность: прошлые входы влияют на текущий выход, а не наоборот.
| Свойство | Формула | Применение |
|---|---|---|
| Коммутативность | x * h = h * x | Порядок не важен |
| Ассоциативность | (x * h₁) * h₂ = x * (h₁ * h₂) | Каскад фильтров |
| Дистрибутивность | x * (h₁ + h₂) = x*h₁ + x*h₂ | Параллельные фильтры |
| Нейтральный элемент | x * δ = x | δ[n] - 'единица' свёртки |
| Сдвиг | x * δ[n-k] = x[n-k] | Задержка на k отсчётов |
**Свёртка в частотной области - умножение!** Y(omega) = X(omega) · H(omega). Это основа FFT-фильтрации: вместо O(N²) свёртки делаем O(N·logN) FFT + поэлементное умножение + обратное FFT.
Вернёмся к LTI: свёртка - механизм, превращающий знание h[n] в ответ на произвольный вход. Записал импульсный отклик концертного зала Карнеги-холл - можешь наложить его акустику на любую запись. Именно это делают конвольверы в профессиональном аудио: h[n] - это слепок пространства.
Свёртка в истории DSP
Свёртка использовалась в математике с XVIII века (Эйлер, Лаплас), но стала практическим инструментом с появлением цифровых компьютеров. Алгоритм FFT Кули и Тьюки (1965) ускорил свёртку с O(N²) до O(NlogN), сделав реальной обработку звука и изображений в реальном времени.
Свёртка и корреляция - одно и то же
Свёртка переворачивает одну из функций (h[n-k]), а корреляция - нет (h[n+k]). Для симметричных h совпадают, для несимметричных - разные.
Свёртка: y[n] = Σ x[k]·h[n-k] - h переворачивается и сдвигается. Корреляция: R[n] = Σ x[k]·h[n+k] - h только сдвигается. Переворот в свёртке нужен, чтобы каузальная система давала физически корректный отклик: прошлые входы влияют на текущий выход. Корреляция измеряет похожесть, свёртка - отклик.
x[n] = {1, 2, 3}, h[n] = {1, 1}. Чему равен y[0] = (x * h)[0]?
Ключевые идеи
- **x[n]** - дискретный сигнал = последовательность чисел. Любой сигнал раскладывается в сумму сдвинутых импульсов: x[n] = Σ x[k]·δ[n-k]
- **LTI-система:** линейная + инвариантная во времени. Полностью описывается импульсной характеристикой h[n] - реакцией на единичный импульс
- **Свёртка** y[n] = Σ x[k]·h[n-k] - выход LTI на произвольный вход. Знаешь реакцию на щелчок - знаешь реакцию на симфонию. O(N²) напрямую, O(N log N) через FFT
- **Свёртка ≠ корреляция:** свёртка переворачивает h (причинность), корреляция - нет (похожесть). Для симметричных h совпадают
- **Найквист 1928 → Shazam, 5G, Whisper:** одна теорема о частоте дискретизации лежит в основе всей цифровой обработки сигналов
Связанные темы
Сигналы и системы - фундамент для всего DSP:
- Дискретизация и теорема Найквиста — Почему CD = 44100 Гц, а не 22050. Алиасинг - когда нарушаешь теорему
- Z-преобразование — Свёртка во временной области = умножение в Z-области. Фильтры через полюса и нули
Вопросы для размышления
- Система y[n] = median(x[n-1], x[n], x[n+1]) - медианный фильтр. Является ли она LTI? Почему медиана нелинейна, а среднее - нет?
- Свёртка коммутативна: x * h = h * x. Но физически сигнал проходит через систему, а не наоборот. Как это согласуется с математическим равенством?
- Shazam записывает 5 секунд звука и строит спектрограмму. Какие операции из этого урока участвуют в этом процессе? Где именно возникает свёртка?
Связанные уроки
- calc-01-sequences — Математический анализ обязателен для DSP: производные (скорость изменения сигнала), интегралы (энергия), ряды Фурье
- cg-01 — Свёртка в DSP (фильтрация сигналов) математически идентична свёртке в image processing (blur, sharpen)
- it-01 — Теория информации и DSP связаны через теорему Найквиста-Шеннона о дискретизации
- arvr-01 — DSP используется в AR/VR для spatial audio (binaural), обработки IMU и шумоподавления
- trig-11