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

Разбираем модуляцию — операцию, на которой держатся радиосвязь и звуковые эффекты.

Модуляция — управление одним сигналом (несущей) с помощью другого (модулирующего); чаще всего это умножение или изменение амплитуды несущей по закону сообщения.

Зачем нужна модуляция? Низкочастотный звук (голос, музыка) нельзя эффективно излучить антенной — нужна высокочастотная несущая. Модуляция «сажает» сообщение на несущую, переносит его на радиочастоту, а на приёмнике демодуляция возвращает звук. В музыке та же операция даёт эффекты (тремоло, кольцевая модуляция).

Амплитудная модуляция (AM)

В AM амплитуда несущей меняется по закону сообщения: x[n] = (1 + m*msg[n]) * carrier[n], где m — глубина модуляции. Несущая — высокая частота, сообщение — низкая.

import math

fs = 64
carrier_f = 8.0   # несущая
msg_f = 1.0       # сообщение (медленное)
m = 0.5           # глубина модуляции

am = []
for n in range(8):
    msg = math.sin(2 * math.pi * msg_f * n / fs)
    carrier = math.sin(2 * math.pi * carrier_f * n / fs)
    am.append(round((1 + m * msg) * carrier, 3))

print("AM-сигнал:", am)

Вывод:

AM-сигнал: [0.0, 0.742, 1.098, 0.81, 0.0, -0.874, -1.278, -0.931]

Быстрая несущая «дрожит» по амплитуде в такт медленному сообщению — отсюда характерная «огибающая» AM-сигнала. По радио AM так передаёт звук на сотнях килогерц.

Боковые частоты: откуда они берутся

Умножение двух синусов по тригонометрической формуле даёт сумму двух новых частот: cos(A)*cos(B) = 0.5*cos(A-B) + 0.5*cos(A+B). То есть модуляция несущей fc сообщением fm рождает частоты fc-fm и fc+fmбоковые полосы. Проверим на числах.

import math

# Перемножим cos(2 Гц) и cos(5 Гц) и убедимся: появились 3 Гц и 7 Гц
fs = 32
prod = [round(math.cos(2 * math.pi * 2 * n / fs) * math.cos(2 * math.pi * 5 * n / fs), 3)
        for n in range(8)]
# Сумма двух косинусов 3 и 7 Гц с амплитудой 0.5
check = [round(0.5 * math.cos(2 * math.pi * 3 * n / fs) +
               0.5 * math.cos(2 * math.pi * 7 * n / fs), 3) for n in range(8)]
print("произведение:", prod)
print("0.5*(3Гц+7Гц):", check)
print("Совпадают:", prod == check)

Вывод:

произведение: [1.0, 0.513, -0.271, -0.375, -0.0, -0.075, -0.653, -0.768]
0.5*(3Гц+7Гц): [1.0, 0.513, -0.271, -0.375, -0.0, -0.075, -0.653, -0.768]
Совпадают: True

Произведение тонов 2 и 5 Гц математически равно сумме тонов 3 и 7 Гц. Умножение сдвинуло энергию на новые частоты — это и есть боковые полосы AM.

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

Перенос спектра — суть модуляции. В частотной области умножение на несущую fc сдвигает весь спектр сообщения вверх на fc (и зеркально вниз). Поэтому голос с полосой 3 кГц, умноженный на несущую 1 МГц, превращается в сигнал вокруг 1 МГц шириной 6 кГц — его уже можно излучить антенной. На приёмнике обратное умножение на ту же несущую сдвигает спектр назад к нулю (демодуляция), после чего ФНЧ выделяет исходный звук. Кольцевая модуляция (ring modulation) — это та же операция без слагаемого «1»: чистое произведение двух сигналов, дающее металлический «робо-голос», любимый эффект синтезаторов.

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

  • Глубина модуляции больше 1 в AM. При m > 1 огибающая уходит в минус — возникает перемодуляция и искажения.
  • Забыть про боковые полосы при выборе fs. Модуляция расширяет спектр до fc+fm; fs должна покрывать и эту частоту по Найквисту.
  • Путать AM и кольцевую модуляцию. В AM есть несущая (слагаемое 1), в кольцевой — чистое произведение, несущая подавлена.

Итог

  • Модуляция управляет несущей с помощью сообщения; AM меняет амплитуду несущей.
  • Умножение синусов рождает боковые частоты fc±fm — перенос спектра.
  • Этот перенос позволяет передавать низкочастотный звук на радиочастоте.
  • Кольцевая модуляция — чистое произведение без несущей, источник эффектов в синтезе.
Проверьте себя
1. Что меняет амплитудная модуляция (AM)?
AЧастоту несущей по закону сообщения
BАмплитуду несущей по закону сообщения
CФазу сообщения
DЧастоту дискретизации
2. Какие частоты появляются при умножении тонов fc и fm?
AТолько fc
BТолько fm
CБоковые полосы fc-fm и fc+fm
DНулевая частота
3. Чем кольцевая модуляция отличается от AM?
AНичем
BВ кольцевой нет слагаемого-несущей — это чистое произведение сигналов
CКольцевая работает только с шумом
DКольцевая не создаёт новых частот