В прошлых материалах мы поговорили и про радиоволны, и про связь 5G:
Теперь посмотрим, как по радиоволнам передаются сигналы и данные и какие алгоритмы за это отвечают. Эта статья без особой практической применимости, просто для расширения кругозора.
Аналоговое и цифровое кодирование
Смысл кодирования любого сигнала — представить их в таком виде, чтобы с ними было удобно работать получателю. Язык жестов, буквы на бумаге, подмигивание в баре, стук по батарее или неприличный жест на уроке за партой — это всё способы закодировать сигнал.
Радиоволны — это физический способ передачи данных. Электромагнитный излучатель возмущает электромагнитное поле, по полю прокатывается волна. Представьте, что кто-то стучит по батарее, чтобы соседи не шумели посреди ночи. Батарея и все связанные с ней трубы — это как бы электромагнитное поле, оно пронизывает весь дом (и всю Вселенную). Стук по батарее — это излучение, которое возмущает поле. Как сильно и как часто стучат — это кодирование сигнала.
Аналоговое кодирование — это когда когда сигнал не требует цифровой расшифровки. Представьте, что ваш друг сидит в школе на уроке, а вы вышли во двор по делам и решили крикнуть ему что-то в окно. Ваш голос немного исказился, пока звук пролетел сквозь окно и отразился от стен класса, но в целом ваш крик был воспринят без дополнительной расшифровки.
Похожим образом работает аналоговое радиовещание. Сигнал можно поймать и на лету преобразовать обычными радиолюбительскими средствами. Аналоговый сигнал изменяется плавно и непрерывно, без резких обрывов.
Пример аналоговых данных — голос и музыка на радио или телевидение в старом формате, когда на экране в плохую погоду бегали рябь, шум и помехи. Помехи — это как раз способ отличить аналоговый сигнал от цифрового. Если есть помехи, — визуальные или звуковые, — значит, данные передавались аналоговым способом.
Цифровой сигнал устроен иначе: он больше похож на записку в классе. Вы написали что-то на бумажке, передали другу за соседнюю парту, он развернул бумажку и прочитал. Если он в состоянии понять, что вы написали, он поймёт это точно и без искажений. Ваше послание закодировано в буквах на записке.
В цифровом радиосигнале послание кодируется двоичным кодом, то есть последовательностью сильного и слабого излучения. Для компьютера это то же самое, что для вас читать буквы в записке. Если вы знаете эти буквы, вы поймёте сообщение без искажений.
В цифровой передаче данных нет аналоговых помех, которые добавляют рябь или шум — вместо этого там есть потери данных. Если сам радиосигнал будет слабым или неразборчивым из-за помех при передаче, то цифровой приёмник просто проигнорирует этот кусок данных и будет ждать следующий.
Пример потерь в цифровой передаче — когда замирает картинка в кабельном телевидении, даже если звук продолжает идти. Это значит, что приёмник потерял часть пакетов, отвечающих за видео, и ждёт начала следующих. Крупные пиксельные фрагменты во время таких трансляций — тоже признак потери пакетов.
Аналоговое кодирование — AM и FM
Радиостанции отправляют в эфир голос и музыку, а чтобы принять и расшифровать сигнал мог даже самый дешёвый приёмник, они кодируют сигнал аналоговым способом. В зависимости от длины волны используют либо амплитудную модуляцию (AM), либо частотную модуляцию (FM). Есть ещё другие варианты модуляций, но они работают по похожему принципу.
Возьмём один и тот же сигнал, который нам нужно зашифровать, — например, голос ведущего. Если представить его в виде звуковых колебаний, то он будет выглядеть примерно так:
Амплитудная модуляция меняет амплитуду несущей частоты (амплитуда — это насколько высоко над осью Х поднимается волна), чтобы верхние пики образовали нужный нам сигнал:
В этом алгоритме частота остаётся неизменной, а меняется только амплитуда сигнала. Обычно это работает на средних и коротких волнах — их чаще всего используют для передачи на длинные расстояния.
Частотная модуляция работает иначе — меняется сама частота, а амплитуда не меняется. Но частота меняется в очень узком диапазоне, чтобы приёмникам не пришлось переключаться на другую волну.
Цифровое кодирование
В радиотехнике цифровое кодирование называют цифровой модуляцией. Задача такой модуляции — передать в виде радиоволн, например, нули и единицы, чтобы цифровой приёмник сразу мог их обработать.
Самый простой способ оцифровать любой сигнал — включать и выключать передатчик, когда нужно передать 1 и 0:
Принципиально это не отличается от того, как передаётся сигнал по проводу: если напряжение есть, это единица. Если напряжения нет или оно низкое — это ноль. Разница в том, что вместо напряжения — электромагнитное излучение.
И как это всё работает?
- Излучатель в вашем роутере возмущает электромагнитное поле (одно поле на всю Вселенную).
- Приёмник в вашем смартфоне «слушает» возмущения поля и пытается вычленить из них вибрации на нужной ему частоте.
- Вычислив эти вибрации, приёмник начинает их расшифровывать: превращать в единицы и нули.
- Из всей массы единиц и нулей процессор вычленяет то, что предназначено конкретно для этого устройства.
- Вычленив предназначающиеся ему пакеты, процессор передаёт их на обработку дальше в операционную систему, где происходит обработка данных.