Логическое кодирование
- Bot
- 06.01.2021
- 16 391
- 3
- 24
- 22
- 2

- Содержание статьи
Логическое кодирование употребляется для совершенствования потенциальных кодов на подобии:
- Потенциальный код с инверсией при единице NRZI;
- Метод биполярного кодирования с альтернативной инверсией AMI;
- Потенциальный код 2B1Q.
Логическое кодирование используется для уменьшения длинных последовательностей одинаковых бит, приводящие к неизменному потенциалу, вставками бинарных единиц.
Для логического кодирования разработаны два основных способа уменьшения длинных последовательностей одинаковых бит:
- избыточные коды;
- скремблирование.
Избыточные коды
Избыточные коды базируются на разделение начальной последовательности бит на порции, которые нередко именуют символами. После чего, исходный символ подменяют на новый, содержащий наибольшее количество бит нежели исходный.
В свою очередь логический код 4В/5В, применяющийся в технологиях локальных сетей: FDDI и FastEthernet, заменяет подряд идущие 4 бита исходной последовательности на 5 бит. Из-за чего размер передаваемых данных увеличивается. В результате, вместо 16 битовых комбинаций, получаем 32 битовых комбинации, в которых можно выбрать такие комбинации бит, которые будут содержать наименьшее количество подрят идущих одиннаковых последовательностей бит. А оставшиеся 16 комбинаций пометить как запрещенные, что придает избыточному коду свойство распозновать искаженные биты. Если поступила запрещенная комбинация - сигнал исказился.
Таблица - Соответствие исходных и результирующих кодов 4В/5В

Код 4В/5В затем передается по линии с помощью физического кодирования по одному из методов потенциального кодирования, чувствительному только к длинным последовательностям нулей. Символы кода 4В/5В длиной 5 бит гарантируют, что при любом их сочетании на линии не могут встретиться более трех нулей подряд.
Использование таблицы перекодировки является очень простой операцией, поэтому этот подход не усложняет сетевые адаптеры и интерфейсные блоки коммутаторов и маршрутизаторов.
Скремблирование
Скремблирование (англ. scramble — перемешивать) — разновидность кодирования информации, для передачи по каналам связи и хранения, улучшаюшая спектральные и статиcтические характеристики.
Скремблирование есть приведение информации к виду, по различным характеристикам похожему на случайные данные.
Перемешивание данных скремблером перед передачей их в линию с помощью потенциального кода является другим способом логического кодирования.
Методы скремблирования заключаются в побитном вычислении результирующего кода на основании бит исходного кода и полученных в предыдущих тактах бит результирующего кода. Например, скремблер может реализовывать следующее соотношение:

где Вi, — двоичная цифра результирующего кода, полученная на i-м такте работы скремблера, Ai — двоичная цифра исходного кода, поступающая на вход скремблера, Вi-3 и Bi-5 — двоичные цифры результирующего кода, полученные на предыдущих тактах работы скремблера, соответственно на 3 и на 5 тактов ранее текущего такта, операция исключающего ИЛИ (сложение по модулю 2).
Например, для исходной последовательности 111000000001 скрэмблер даст следующий результирующий код:

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

Произведем обратную операцию с последовательностью 111110001100, для получения исходной последовательности:

Получаем исходную последовательность: 111000000001.
Различные алгоритмы скремблирования отличаются количеством слагаемых, дающих цифру результирующего кода, и сдвигом между слагаемыми. Так, в сетях ISDN при передаче данных от сети к абоненту используется преобразование со сдвигами в 5 и 23 позиции, а при передаче данных от абонента в сеть — со сдвигами 18 и 23 позиции.
Для улучшения кода AMI используются два метода, основанные на искусственном искажении последовательности нулей запрещенными символами:
- метод B8ZS (Bipolarwith 8-ZerosSub¬stitution) - исправляет только последовательности, состоящие из 8 нулей. Для этого он после первых трех нулей вместо оставшихся пяти нулей вставляет пять цифр: V-l*-0-V-l*. V здесь обозначает сигнал единицы, запрещенной для данного такта полярности, то есть сигнал, не изменяющий полярность предыдущей единицы, 1* — сигнал единицы корректной полярности, а знак звездочки отмечает тот факт, что в исходном коде в этом такте была не единица, а ноль.

- метода HDB3 (High-DensityBipolar 3-Zeros) - исправляет любые четыре подряд идущих нуля в исходной последовательности. Каждые четыре нуля заменяются четырьмя сигналами, в которых имеется один сигнал V. Для подавления постоянной составляющей полярность сигнала V чередуется при последовательных заменах. Кроме того, для замены используются два образца четырехтактовых кодов. Если перед заменой исходный код содержал не¬четное число единиц, то используется последовательность 000V, а если число единиц было четным — последовательность l*00V.

V - сигнал единицы запрещенной полярности;
1* - сигнал единицы корректной полярности, но заменившей 0 в исходном коде
Добавить комментарий