Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
seti1.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

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

Некоторые разновидности цифрового кодирования очень чувствительны к характеру передаваемых данных. Например, при передаче длинных последо- вательностей логических нулей посредством потенциального кода типа NRZ или AMI сигнал на линии долгое время не изменяется, и приемник может оши- биться с моментом считывания очередного бита. Для кода NRZ подобные про- блемы возникают и при передаче длинных последовательностей логических единиц. Логическое кодирование (которому может подвергаться исходная по- следовательность данных) должно внедрять в длинные последовательности бит, биты с противоположным значением, или вообще заменять их другими после- довательностями. Кроме исключения “проблемных” битовых последовательно- стей, логическое кодирование позволяет также увеличить кодовое расстояние между символами (для упрощения декодирования), улучшить спектральные ха- рактеристики сигнала, а кроме того передавать в общем потоке служебные сиг- налы. В основном для логического кодирования применяются три группы ме- тодов: вставка бит, избыточное кодирование и скремблирование.

Вставка бит (bit stuffing) – наиболее прямолинейный способ исключения длинных последовательностей, например, логических единиц. Если в переда- ваемой последовательности встречается непрерывная цепочка “1”, то передат- чик вставляет “0” после каждой, например, пятой “1”. Приемник отбрасывает все эти лишние “0”, которые встречаются после пяти “1”. Разумеется, можно проводить и обратную операцию – вставку “1” в длинные последовательности “0”. Схема вставки бит применяется, например, в протоколе HDLC.

Избыточное кодирование основано на разбиении исходной последова-

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

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

на символ, состоящий из троичных разрядов). Рассмотрим некоторые распро-

страненные схемы логического кодирования.

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

ный символ) на 5-битный выходной символ. Так как количество различных 5-

битных символов равно 32, а исходные символы могут содержать лишь одну из

16 битовых комбинаций, среди возможных выходных кодов можно отобрать 16 “удобных” комбинаций – не содержащих большого количества нулей (больше

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

Входной

символ

Выходной

символ

Входной

символ

Выходной

символ

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

Табл. 5.1. Код 4B/5B

Накладные расходы при кодировании 4B/5B составляют 25% (один лиш- ний бит на четыре бита данных), соответственно для достижения той же пропу- скной способности, что и без логического кодирования, передатчик должен ра- ботать на повышенной на 25% частоте. Код 4B/5B используется в FDDI и Fast Ethernet: 100BaseFX и 100BaseTX.

Логический код 8B/10B заменяет каждый 8-битный исходный символ 10-

битным выходным символом. При том же уровне накладных расходов (25%), что в случае кода 4B/5B, обладает 4-кратной избыточностью (1024 выходных символов и 256 исходных символов). При кодировании 8B/10B каждому исход- ному символу сопоставлено два выходных символа, выбор из которых осуще-

ствляется в зависимости от последнего бита предыдущего переданного симво- ла. В результате код обеспечивает стабильное соотношение “0” и “1” в выход- ном потоке, независимо от исходных данных. Это свойство важно для лазерных передатчиков, поскольку от данного соотношения зависит их нагрев и количе- ство ошибок приема. Код 8B/10B используется в Gigabit Ethernet: 1000BaseSX,

1000BaseLX, 1000BaseCX.

Логический код 8B/6T кодирует каждые 8 бит исходной информации ше-

стью троичными (T – ternary, троичный) разрядами, принимающими значения

{+, 0, –}. Например, “00000000” = “+–00+–“, “11111110” = “–+0+00”. Избыточ- ность кода 8B/6T выше, чем у кода 4B/5B и составляет 36/28 = 729/256 = 2,85. Применяется в Fast Ethernet – 100BaseT4.

Скремблирование заключается в побитном вычислении выходной по- следовательности на основании значений бит исходной последовательности и уже вычисленных бит результата. Например, скремблер может вычислять для каждого бита следующее выражение: Bi=Ai⊕Bi-5⊕ Bi-7, где Ai – i-й бит исходной

последовательности, Bi – i-й бит результата скремблирования, ⊕ – операция

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

разным количеством слагаемых и разным сдвигом между слагаемыми (в приве- денном выше примере используется два слагаемых со сдвигами 5 и 7). Напри- мер, в ISDN используется два варианта скремблирования: со сдвигами 5 и 23, и со сдвигами 18 и 23.

Существуют специальные методы скремблирования, применяемые со-

вместно определенными методами физического кодирования. Например, для улучшения кода AMI применяются методы B8ZS и HDB3. Метод B8ZS (Bipolar

win 8-Zeros Substitution, биполярный с заменой 8 нулей) заменяет последова- тельности, состоящие из 8 нулей на “000V10V1”, где V – сигнал единицы за- прещенной в данном такте полярности, а 1 – сигнал единицы корректной по-

лярности. Если на 8 тактах приемник наблюдает три начальных нуля и два ис- кажения полярности, то он заменяет эти 8 бит на 8 логических нулей. Метод HDB3 (High-Density Bipolar 3-Zeros, биполярный трех-нулевой высокой плот-

ности) заменяет последовательности из четырех идущих подряд нулей на один из четырех четырехразрядных биполярных кодов в зависимости от предысто- рии – полярности предыдущего импульса и предыдущей замены.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]