Перемешивание данных скрэмблером перед передачей их в линию с помощью потенциального кода является другим способом логического кодирования.
Методы скрэмблирования заключаются в побитном вычислении результирующего кода на основании бит исходного кода и полученных в предыдущих тактах бит результирующего кода. Например, скрэмблер может реализовывать следующее соотношение:
Bi = Ai + Bi-3 + Bi-5,
где Bi — двоичная цифра результирующего кода, полученная на i-м такте работы скрэмблера, Аi - двоичная цифра исходного кода, поступающая на i-м такте на вход скрэмблера, Вi-з и Вi-5 — двоичные цифры результирующего кода, полученные на предыдущих тактах работы скрэмблера, соответственно на 3 и на 5 тактов ране» текущего такта, + операция исключающего ИЛИ (сложение по модулю 2).
Например, для исходной последовательности 110110000001 скрэмблер даст с дующий результирующий код:
B1 = A2 = 1 (первые три цифры результирующего кода будут совпадать с исходным, так как еще нет нужных предыдущих цифр)
B2 = А2 = 1
B3 = А3 = 0
В4= A4 + B1 = 1 + 1 = 0
B5 = А5 + В2 = 1 + 1 = 0
B6 = А6 + В3 + B1 = 0 + 0 + 1 = 1
B7 = А7 + В4 + В2 = 0 + 0 + 1 = 1
B8 = A8 + B5 + B3 = 0 + 0 + 0 = 0
В9 = А9 + В6 + В4 = 0 + 1 + 0 = 1
В10 = А10 + В7 + B5 = 0 + 1 + 0 = 1
В11 = А11 + В8 + В6 = 0 + 0 + 1 = 1
Bl2 = А12 + B9 + В7 = 1 + 1 + 1 = 1
Таким образом, на выходе скрэмблера появится последовательность 110001101111, в которой нет последовательности из шести нулей, присутствовавшей в исходном коде.
После получения результирующей последовательности приемник передает ее дескрэмблеру, который восстанавливает исходную последовательность на основании обратного соотношения:
Ci = Вi + Bi-3 + Вi-5 = (Аi + Вi-3 + Вi-5) + Bi-3 + Вi-5 = A
Различные алгоритмы скрэмблирования отличаются количеством слагаемых, дающих цифру результирующего кода, и сдвигом между слагаемыми. Так, в сетях ISDN при передаче данных от сети к абоненту используется преобразование со сдвигами в 5 и 23 позиции, а при передаче данных от абонента в сеть — со сдвигами 18 и 23 позиции.
Существуют и более простые методы борьбы с последовательностями единиц, также относимые к классу скрэмблирования.
Для улучшения кода Bipolar AMI используются два метода, основанные на искусственном искажении последовательности нулей запрещенными символами.
B8ZS (Bipolar with 8 Zeros Substitution) и метод HDB3 (High-Density Bipolar 3-Zeros) для корректировки кода AMI.
Исходный код состоит из двух длинных последовательностей нулей: в первом случае — из 8, а во втором — из 5.
Код B8ZS исправляет только последовательности, состоящие из 8 нулей. Для этого он после первых трех нулей вместо оставшихся пяти нулей вставляет пять цифр: V - l* - 0 –V - l*. V здесь обозначает сигнал единицы, запрещенной для данного такта полярности, то есть сигнал, не изменяющий полярность предыдущей единицы, 1* — сигнал единицы корректной полярности, а знак звездочки отмечает тот факт, что в исходном коде в этом такте была не единица, а ноль. В результате на 8 тактах приемник наблюдает 2 искажения — очень маловероятно, что это случилось из-за шума на линии или других сбоев передачи. Поэтому приемник считает такие нарушения кодировкой 8 последовательных нулей и после приема заменяет их на исходные 8 нулей.
Код B8ZS построен так, что его постоянная составляющая равна нулю при любых последовательностях двоичных цифр.
Код HDB3 исправляет любые четыре подряд идущих нуля в исходной последовательности.
Правила формирования кода HDB3 более сложные, чем кода B8ZS. Каждые четыре нуля заменяются четырьмя сигналами, в которых имеется один сигнал V. Для подавления постоянной составляющей полярность сигнала V чередуется при последовательных заменах. Кроме того, для замены используются два образца четырехтактовых кодов. Если перед заменой исходный код содержал нечетное число единиц, то используется последовательность 000V, а если число единиц было четным — последовательность l*00V.
Улучшенные потенциальные коды обладают достаточно узкой полосой пропускания для любых последовательностей единиц и нулей, которые встречаются в передаваемых данных. Коды, полученные из потенциального путем логического кодирования, обладают более узким спектром, чем манчестерский, даже при повышенной тактовой частоте. Этим объясняется применение потенциальных избыточных и скрэмблированных кодов в современных технологиях, подобных FDDI, Fast Ethernet, Gigabit Ethernet, ISDN и т. п. вместо манчестерского и биполярного импульсного кодирования.