Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел_4.doc
Скачиваний:
30
Добавлен:
25.11.2019
Размер:
2.57 Mб
Скачать

Логическое кодирование

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

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

Логическое кодирование позволяет внедрять в длинные последовательности бит, биты с противоположным значением, или заменять их другими последовательностями.

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

Например, если для передачи данных могут использоваться только четыре состояния 00, 01, 10, 11, то минимальное кодовое расстояние будет равно 1 (кодовые комбинации отличаются хотя бы на один бит). Если в передаваемой последовательности произошло искажение в числе бит, не превышающем минимального кодового расстояния передатчик способен зафиксировать ошибку, в противном случает принятая последовательность будет воспринята как верная. Поэтому, чем больше минимальное кодовое расстояние между символами, тем выше помехоустойчивость кода.

Также логическое кодирование позволяет улучшить спектральные характеристики сигнала, и передавать в общем потоке служебные сигналы.

Для логического кодирования применяются три группы методов: вставка бит, избыточное кодирование и скремблирование.

Вставка бит (bit stuffing) – наиболее простой способ исключения длинных последовательностей. Например, для исключения последовательности единиц передатчик вставляет нули после каждой пятой единицы. Приемник в свою очередь, отбрасывает нули, которые встречаются после пяти единиц. Разумеется, можно проводить и обратную операцию – вставку единиц в длинные последовательности нулей.

Избыточное кодирование

При избыточном кодировании исходная последовательность бит разбивается на участки одинаковой длины – символы. Затем последовательности бит, соответствующие каждому символу заменяются на новые. Замена осуществляется, как правило, табличным способом.

Новые последовательности бит имеют либо большее количество бит, либо другое основание системы счисления (двоичная последовательность заменяется, например, троичной).

Рассмотрим некоторые распространенные избыточные логические коды.

Логический код 4B/5B заменяет каждые 4 бита исходной битовой последовательности (входной символ) на 5 бит (выходной символ) (табл. 4.1).

Таблица 4.1 – Код 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

Буква В в названии кода означает, что элементарный сигнал имеет 2 состояния (binary – двоичный).

Входные символы состоят из 4 бит, поэтому возможное число различных кодовых комбинаций равно 16 (24=16). Выходные символы состоят из 5 бит, и возможное число кодовых комбинаций равно 32 (25=32). Таким образом, из 32 возможных выходных кодов можно отобрать 16 комбинаций не содержащих большого количества нулей (больше трех подряд). Среди оставшихся кодов можно выделить служебные символы (для поддержания синхронизации, выделения границ кадров и т.д.). Не используемые комбинации считаются запрещенными (code violation). Наличие запрещенных комбинаций повышает помехоустойчивость кода.

Логический код 8B/10B заменяет каждый 8-битный исходный символ 10-битным выходным символом. При этом каждому исходному символу соответствует два выходных символа, выбор из которых осуществляется в зависимости от последнего бита предыдущего переданного символа.

Логический код 8B/6T кодирует каждые 8 бит исходной информации шестью троичными разрядами, принимающими значения {+, 0, –} (T – ternary, троичный). Например, “00000000” = “+–00+–“, “11111110” = “–+0+00”.