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

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

Один из известных кодов для этого называется 4B/5B. Каждые 4 бита отображены в 5-битовый образец с заданной таблицей преобразования. Эти пять комбинаций двоичных разрядов выбраны так, чтобы никогда не встречались больше трех последовательных нулей. Отображение показано в табл. 2.4. Эта схема добавляет 25 % накладных расходов, что лучше чем 100 % при Манчестерском кодировании. Так как имеется 16 входных комбинаций и 32 выходных комбинации, некоторые из выходных комбинаций не используются. За вычетом комбинаций со слишком многими последовательными нулями остаются еще некоторые. В качестве награды мы можем использовать эти коды, не соответствующие данным, чтобы представить управляющие сигналы физического уровня. Например, иногда «11111» обозначает свободную линию, а «11000» обозначает начало фрейма.

Таблица 2.4. Отображение 4B/5B

Данные (4B)

Ключевое слово (5B)

Данные (4B)

Ключевое слово (5B)

0000

11110

1000

10010

0001

01001

1001

10011

0010

10100

1010

10110

0011

10101

1011

10111

0100

01010

1100





11010

0101

01011

1101

11011

0110

01110

1110

11100

0111

01111

1111

11101

Альтернативный подход, который должен заставить данные выглядеть случайными, известен как скремблирование. В этом случае, вероятно, что будут частые переходы. Скремблер объединяет с помощью «исключающего или» данные с псевдослучайной последовательностью прежде, чем они будут переданы. Это смешивание делает данные столь же случайными, как псевдослучайная последовательность (предполагается, что они независимы от псевдослучайной последовательности). Приемник тогда применяет «исключающее или» к поступающим битам с той же самой псевдослучайной последовательностью, чтобы получить реальные данные. Для того чтобы это было практично, псевдослучайную последовательность должно быть легко создать. Обычно это доверяется простому генератору случайных чисел.

Скремблирование привлекательно, потому что оно не добавляет требований к полосе пропускания или времени на служебные данные. Фактически оно используется для создания дополнительных требований к сигналу — энергетические составляющие не должны попадать на основные гармоники (возникающие из-за повторяющихся пакетов данных), поскольку это может привести к возникновению интерференции. Скремблирование идеально подходит для этого случая, потому что случайные сигналы весьма похожи на «белый шум», или их энергия «размазана» по частоте.

Однако скремблирование не гарантирует, что не потребуется никакой длительной обработки. Иногда оно может быть неудачным. Если данные будут похожи на псевдослучайную последовательность, то в результате применения «исключающего или» они превратятся в нули. Такого не произойдет с длинной псевдослучайной последовательностью, которую трудно предсказать. Однако для коротких или предсказуемых последовательностей существует возможность подобрать комбинацию двоичных разрядов, которые вызывают длинные последовательности нулей после шифрования и «портят» связь. В ранних версиях стандартов для отправки IP-пакетов по каналам SONET в телефонной сети этот дефект присутствовал (Malis и Simpson, 1999). Пользователи могли послать определенные «пакеты убийцы», которые гарантировано вызывали проблемы.

Симметричные сигналы

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

Балансирование помогает обеспечить передачу для сигналов синхронизации, так как представляет собой сочетание положительных и отрицательных напряжений. Оно также обеспечивает простой способ калибровать приемники, потому что среднее значение сигнала может быть измерено и использоваться в качестве порога решения для расшифровки символов. В несимметричном сигнале среднее значение может далеко отклониться от истинного решения, например, из-за плотности единиц, в результате больше символов было бы расшифровано с ошибками.

Простейший способ создать симметричный код состоит в том, чтобы использовать два уровня напряжения для представления логической 1, (скажем +1 В или -1 В), и 0 В для представления логического нуля. Чтобы послать 1, передатчик чередует уровни между +1 В и -1 В так, чтобы они всегда давали среднее. Эту схему называют биполярным кодированием. В телефонных сетях ее называют AMI (Alternate Mark Inversionсхема биполярного кодирования, в которой последовательные объекты кодируются противоположной полярностью), основываясь на старой терминологии, в которой 1 называют «маркой» и 0 называют «пробелом». Пример показан на рис. 2.17, д.

Биполярное кодирование добавляет уровень напряжения, чтобы достигнуть баланса. Или мы можем использовать для достижения баланса отображение, такое как 4B/5B (так же как переходы для синхронизации). Пример симметричного кода — линейный код 8B/10B. Он отображает 8 входных бит на 10 выходных бит, таким образом, это на 80 % эффективно, точно так же, как код линии 4B/5B. 8 бит разделены на группу из 5 бит, которые отображаются на 6 бит, и группу из 3 бит, которые отображаются на 4 бита. 6-битовые и 4-битовые символы таким образом связаны. В каждой группе некоторые входные образцы могут быть отображены на симметричные выходные образцы, у которых одинаковое число нулей и единиц. Например, «001» отображен на симметричный «1001». Но комбинаций недостаточно много для того, чтобы все выходные образцы были сбалансированы. Поэтому каждый входной образец отображен на два выходных образца. У каждого будет один с дополнительной 1 и один с дополнительным 0. Например, «000» отображен и на «1011» и на его дополнение «0100». Когда происходит отображение входных битов, кодирующее устройство помнит неравенство предыдущего символа. Неравенство — общее количество нулей или единиц, которые делают сигнал не сбалансированным. Кодирующее устройство выбирает или выходной образец, или его альтернативу, чтобы уменьшить неравенство. Для кода 8B/10B самое большое неравенство будет составлять 2 бита. Таким образом, сигнал никогда не будет сильно не сбалансирован. И в нем никогда не будет больше чем пяти последовательных единиц или нулей, что облегчит синхронизацию.

2.5.2. Передача в полосе пропускания

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

К счастью, во всех фундаментальных результатах, изложенных ранее в этой главе, фигурировала полоса пропускания или ширина диапазона частот. Абсолютные значения частоты не имеют значения для полосы пропускания. Это означает, что мы можем взять низкочастотный сигнал, который занимает диапазон от 0 до B Гц, и сместить его, чтобы занять полосу пропускания от S до S + B Гц, не изменяя количество информации, которую он может перенести, даже при том, что сигнал будет выглядеть по-другому. Чтобы обработать сигнал в приемнике, мы можем сместить его обратно в область низких частот, где более удобно определять символы.