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

Разбираемся, что инженеры называют сигналом и почему почти всё вокруг — это сигнал.

Сигнал — это физическая величина, которая несёт информацию и меняется в зависимости от другой величины, чаще всего от времени.

Вы слушаете музыку — это сигнал. Снимаете кардиограмму — сигнал. Ловите Wi-Fi, фотографируете кота, измеряете температуру в комнате термодатчиком — везде сигналы. Цифровая обработка сигналов (ЦОС, англ. DSP — Digital Signal Processing) — это инженерная дисциплина о том, как заставить компьютер понимать, чистить и преобразовывать такие величины. Прежде чем разбирать алгоритмы, надо чётко увидеть сам объект обработки.

Сигнал — это функция времени

Математически сигнал удобно записать как функцию: x(t) — значение в момент времени t. Для звука x(t) — это давление воздуха на мембрану микрофона. Для ЭКГ — разность потенциалов на коже. Для термодатчика — температура. Природа величины разная, но идея одна: одно число на каждый момент времени.

Самый знакомый сигнал — синусоида, чистый тон. Сгенерируем несколько её значений во времени, чтобы увидеть, что «сигнал» — это просто последовательность чисел.

import math

# x(t) = sin(2*pi*f*t), частота f = 1 Гц, смотрим 8 моментов времени
f = 1.0
times = [i / 8 for i in range(8)]          # моменты времени в секундах
x = [round(math.sin(2 * math.pi * f * t), 3) for t in times]

for t, v in zip(times, x):
    print(f"t = {t:.3f} c  ->  x = {v:+.3f}")

Вывод:

t = 0.000 c  ->  x = +0.000
t = 0.125 c  ->  x = +0.707
t = 0.250 c  ->  x = +1.000
t = 0.375 c  ->  x = +0.707
t = 0.500 c  ->  x = +0.000
t = 0.625 c  ->  x = -0.707
t = 0.750 c  ->  x = -1.000
t = 0.875 c  ->  x = -0.707

Восемь чисел — и это уже сигнал, который компьютер может обработать. Вся ЦОС работает с такими списками чисел.

Где встречаются сигналы

ОбластьЧто за сигналЗачем обрабатывают
Звук, музыкадавление воздуха x(t)шумоподавление, эквалайзер, сжатие MP3
Связь, радионапряжение в антеннемодуляция, выделение канала, демодуляция
Медицина (ЭКГ, ЭЭГ)биопотенциалыубрать наводку, найти R-зубцы, диагностика
Изображенияяркость пикселей (2D-сигнал)резкость, размытие, выделение краёв
Датчики, IoTтемпература, ускорениесгладить, отфильтровать выбросы
Сейсмика, радаротражённая волнаобнаружить эхо, измерить задержку

Аналоговый и цифровой сигнал

В природе сигналы аналоговые: величина определена в каждый момент времени и принимает любое из бесконечного множества значений. График — непрерывная линия. Компьютер так работать не может: у него конечная память и он считает дискретными шагами.

Поэтому сигнал переводят в цифровой вид двумя шагами: берут значения только в отдельные моменты времени (это дискретизация по времени) и каждое значение округляют до ближайшего уровня из конечного набора (это квантование по амплитуде). Получается таблица целых чисел — её и обрабатывает DSP. Подробно оба шага разберём в следующем разделе.

Аналоговый (непрерывная линия):     Цифровой (отдельные отсчёты):
   /\        /\                         o     o
  /  \      /  \                       o o   o o
 /    \    /    \             -->      o   o o   o
/      \  /      \                    o    o     o
        \/                                  o

Отсчёт (sample) — одно значение цифрового сигнала, снятое в конкретный момент времени.

Как работает под капотом

Превращением аналогового в цифровое занимается микросхема АЦП (аналого-цифровой преобразователь, англ. ADC). Она тысячи или миллионы раз в секунду измеряет напряжение на входе и выдаёт целое число. Обратно — из чисел в напряжение, например на динамик, — превращает ЦАП (DAC). Звуковая карта — это пара АЦП/ЦАП плюс DSP. Когда вы записываете голос, АЦП делает 44100 измерений в секунду; каждое — отсчёт. Час записи — это 158 миллионов чисел на канал.

Важная мысль: после АЦП исходной «непрерывной линии» уже нет — есть только список отсчётов. Всё, что DSP знает о сигнале, заключено в этих числах. Поэтому правильно их снять (с какой частотой, с какой точностью) — половина дела.

Частые ошибки

  • Путать сигнал и шум. Шум — тоже сигнал, просто нежелательный. Задача DSP часто в том, чтобы отделить полезный сигнал от шума, а не «удалить сигнал».
  • Думать, что отсчёты — это «приближённая копия». При соблюдении правил дискретизации (см. теорему Котельникова) отсчёты содержат всю информацию о сигнале, и его можно точно восстановить.
  • Считать сигнал только звуком. Сигнал — это любая измеримая величина во времени или в пространстве: курс акций, ряд температур, строка пикселей.

Итог

  • Сигнал — величина, несущая информацию и меняющаяся во времени; формально x(t).
  • Аналоговый сигнал непрерывен; цифровой — это конечный список отсчётов (чисел).
  • Переход аналог → цифра делает АЦП через дискретизацию и квантование; обратно — ЦАП.
  • Вся ЦОС — это операции над списком чисел: чистка, анализ, преобразование.
Проверьте себя
1. Что такое сигнал в терминах ЦОС?
AТолько звук, записанный микрофоном
BФизическая величина, несущая информацию и меняющаяся во времени
CЛюбая программа, обрабатывающая данные
DПомеха, которую нужно удалить
2. Чем цифровой сигнал отличается от аналогового?
AЦифровой всегда громче
BЦифровой — непрерывная линия, аналоговый — набор точек
CЦифровой — конечный список отсчётов, аналоговый определён в каждый момент времени
DМежду ними нет разницы
3. Какая микросхема превращает напряжение микрофона в числа?
AЦАП (DAC)
BАЦП (ADC)
CОЗУ
DGPU