Добавить в цитаты Настройки чтения

Страница 48 из 64

Мы начнем со схем, которые непосредственно преобразовывают биты в сигнал. Эти схемы приводят к передаче в основной полосе частот, в которой сигнал занимает частоты от нуля до максимума, который зависит от сигнального уровня. Это характерно для проводов. Затем мы рассмотрим схемы, которые регулируют амплитуду, фазу или частоту несущего сигнала для передачи битов. Эти схемы приводят к передаче в полосе пропускания, в которой сигнал занимает полосу частот вокруг несущей сигнала. Это характерно для беспроводных и оптических каналов, для которых сигналы должны находиться в заданном диапазоне частот. Каналы часто совместно используются несколькими сигналами. В конце концов, намного более удобно использовать один провод, чтобы перенести несколько сигналов, чем проложить провод для каждого сигнала. Этот вид совместного использования называют мультиплексированием. Это может быть достигнуто несколькими различными способами. Мы рассмотрим методы временного, частотного мультиплексирования и мультиплексирования с кодовым разделением.

Все методы модуляции и мультиплексирования, которые мы описываем в этом разделе, широко используются для проводов, оптоволокна, наземного радио и спутниковых каналов. В следующих разделах мы рассмотрим примеры сетей, чтобы увидеть эти методы в действии.

2.5.1. Низкочастотная передача

Самая простая форма цифровой модуляции — использовать положительное напряжение, чтобы представить 1 и отрицательное напряжение, чтобы представить 0. Для оптоволокна присутствие света могло бы представить 1 и отсутствие света могло бы представить 0. Эту схему называют NRZ (Non-Return-to-Zero, без возвращения к нулю). Это странное название возникло по историческим причинам и просто означает, что сигнал следует за данными. Пример показан на рис. 2.17, б.

Посланный сигнал NRZ отправляется по проводу. С другой стороны, приемник преобразовывает его в биты, выбирая сигнал равномерно по времени.

Сигнал не будет походить на сигнал, который был послан. Он будет ослаблен и искажен каналом и шумом в приемнике. Чтобы расшифровать биты, приемник отображает образцы сигнала в самые близкие символы. Для NRZ положительное напряжение будет указывать на то, что было послано 1, отрицательное напряжение — что был послан 0.

Рис. 2.17. Линейные коды (коды для линии связи): a — биты, б — NRZ; в — NRZI; г — Манчестер;

д — биполярный или AMI

NRZ — хорошая начальная точка для наших исследований, потому что это просто, но практически эта схема редко используется отдельно. Более сложные схемы могут преобразовать биты в сигналы, которые лучше отвечают техническим соображениям. Эти схемы называют линейными кодами (кодами для линии связи). Ниже, мы описываем линейные коды, которые помогают эффективно использовать пропускную способность, восстанавливать синхронизацию и баланс постоянного тока.

Эффективность использования полосы частот

С NRZ сигнал может циклически повториться между положительными и отрицательными уровнями для каждых двух битов (в случае чередования единиц и нулей). Это означает, что когда скорость битов — B бит/с, необходима полоса, по крайней мере, B/2 Гц. Данное отношение получается из скорости Найквиста. Это — фундаментальный предел, таким образом, мы не можем выполнить NRZ быстрее, не используя большей полосы. Полоса является ограниченным ресурсом даже для проводных каналов, сигналы высокой частоты сильнее затухают, делая их менее полезными, а также требуют более скоростной обработки.





Одна из стратегий более эффективного использования ограниченной полосы состоит в том, чтобы использовать больше чем два сигнальных уровня. При использовании четырех уровней напряжения, например, мы можем послать два бита сразу как один символ. Эта схема будет работать, пока сигнал, поступающий в приемник, достаточно силен, чтобы эти четыре уровня различались. Скорость, с которой изменяется сигнал, является тогда половиной битрейта, таким образом, необходима меньшая полоса.

Мы называем скорость, с которой сигнал изменяет уровень, символьной скоростью, чтобы отличить ее от понятия битрейт. Битрейт — скорость символа, умноженная на число битов в символе. Более старое название символьной скорости, особенно в контексте устройств, названных телефонными модемами, которые передают цифровые данные по телефонным линиям — бодрейт (скорость в бодах). В литературе термины битрейт и бодрейт часто путают.

Заметьте, что количество уровней сигнала не обязательно должно быть степенью двойки. Часто это не так, некоторые из уровней используются для защиты от ошибок и упрощения конструкции приемника.

Синхронизация

Для всех схем, которые кодируют биты в символы, приемник, чтобы правильно расшифровывать биты, должен знать, когда символ заканчивается и начинается следующий символ. С NRZ, в котором символы — просто уровни напряжения, несколько подряд нулей или единиц оставляют сигнал неизменным. Через некоторое время трудно отделить биты, поскольку 15 нулей очень напоминают 16 нулей, если у вас нет очень точных часов.

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

Одна из стратегий состоит в том, чтобы послать в приемник отдельный сигнал часов. Отдельная линия для часов — это не сложно для компьютерных шин или коротких кабелей, в которых есть много параллельных линий, но это расточительно для большинства сетевых каналов: если бы у нас была еще одна линия, чтобы послать сигнал, то мы могли бы использовать ее, чтобы послать данные. Здесь следует исхитриться смешать сигнал часов с сигналом данных и объединить их с помощью «исключающего или» так, чтобы никакая дополнительная линия не была необходима. Результат показан на рис. 2.17, г. Часы выполняют передачу сигнала часов в каждый момент прохождения бита, таким образом, это работает на скорости два битрейта. Когда сигнал часов объединяется с уровнем 0, происходит переход низкий-к-высокому, который является просто часами. Этот переход — логический 0. Когда он объединяется с уровнем 1, инвертируется и происходит переход от высокого к низкому. Этот переход — логическая 1. Эту схему называют Манчестерским кодированием, она использовалась для классического Ethernet.

Недостаток Манчестерского кодирования в том, что из-за часов требуется вдвое большая полоса пропускания, чем для NRZ, а мы знаем, что эта полоса часто важна. Другая стратегия основана на идее, что мы должны кодировать данные, чтобы гарантировать, что в сигнале есть достаточно много переходов. Предположим, что у NRZ будут проблемы синхронизации только для долгих последовательностей нулей или единиц. Если переходы будут происходить часто, то приемнику будет легко остаться синхронизированным с поступающим потоком символов.

В качестве шага в правильном направлении, мы можем упростить ситуацию, кодируя 1 как переход и 0 как отсутствие перехода, или наоборот. Это кодирование называют NRZI (Без возвращения к нулю с инверсией). Пример показан на рис. 2.17, в. Популярный стандарт соединения компьютера с периферийными устройствами —

USB (Универсальная последовательная шина) — использует NRZI. В этом случае длинные последовательности единиц не вызывают проблему.

Конечно, длинные последовательности нулей все еще вызывают проблему, которую мы должны решить. Если бы мы были телефонной компанией, то могли бы просто потребовать, чтобы отправитель не передал слишком много нулей подряд. Более старые цифровые телефонные линии в США, названные линиями T1, действительно фактически требовали, чтобы по ним посылали не больше чем 15 последовательных нулей, чтобы работать правильно. Чтобы действительно решить проблему, мы можем разбить последовательности нулей, отображая небольшие группы битов, которые будут переданы так, чтобы группы с последовательным нулями были отображены на немного более длинные образцы, у которых нет слишком длинных последовательностей нулей.