Перемешивание данных скрэмблером перед передачей их в линию с помощью потенциального кода является другим способом логического кодирования.
Методы скрэмблирования заключаются в побитном вычислении результирующего кода на основании бит исходного кода и полученных в предыдущих тактах бит результирующего кода. Например, скрэмблер может реализовывать следующее соотнношение
Вi = Ai Å Вi-3 Å Bi-5,
где Bi — двоичная цифра результирующего кода, полученная на i-м такте скрэмблера, Ai — двоичная цифра исходного кода, поступающая на i-м такте на вход скрэмблера, Вi-3, Bi-5 — двоичные цифры результирующего кода, полученные на предыдущих тактах работы скрэмблера, соответственно на 3 и на 5 тактов ранее текущего такта, Å— операция исключающего ИЛИ (сложение по модулю 2).
Например, для исходной последовательности 110110000001 скрэмблер даст следующий результирующий код:
B1 =A1 = 1 (первые три цифры результирующего кода будут совпадать с исходным, так как еще нет нужных предыдущих цифр)
B2= А2 = 1
B3= А3 =0
В4 = A4 Å В1 =1Å1= 0
B5= A5 Å В2 =1Å1= 0
B6 = A6 Å В3Å В1=0 Å 0 Å 1= 1
B7 = A7 Å В4Å В2 =0 Å 0 Å 1= 1
B8 = A8 Å В5Å В3 =0 Å 0 Å 0= 0
B9 = A9Å В6Å В4 =0 Å 1 Å 0= 1
B10 = A10 Å В7Å В5 =0 Å 1 Å 0= 1
B11 = A11 Å В8Å В6 =0 Å 0 Å 1= 1
B12 = A12 Å В9Å В7 =1 Å 1 Å 1= 1
Таким образом, на выходе скрэмблера появится последовательность 110001101111, в которой нет последовательности из шести нулей, присутствовавшей в исходном коде.
После получения результирующей последовательности приемник передает ее дескрэмблеру, который восстанавливает исходную последовательность на основании обратного соотношения:
Ci =Bi Å Вi-3 Å Bi-5=(Ai Å Вi-3 Å Bi-5) Å Вi-3 Å Bi-5=Ai
Различные алгоритмы скрэмблирования отличаются количеством слагаемых, дающих цифру результирующего кода, и сдвигом между слагаемыми. Так, в сетях ISDN при передаче данных от сети к абоненту используется преобразование со сдвигами в 5 и 23 позиции, а при передаче данных от абонента в сеть — со сдвигами 18 и 23 позиции.
Существуют и более простые методы борьбы с последовательностями единиц, также относимые к классу скрэмблиррвания.
Для улучшения кода Bipolar AMI используются два метода, основанные на искусственном искажении последовательности нулей запрещенными символами.
На рис. 1.9. показано использование метода B8ZS (Bipolar with 8-Zeros Substitution) и метода HDB3 (High-Density Bipolar 3-Zeros) для корректировки кода AMI. Исходный код состоит из двух длинных последовательностей нулей: в первом случае — из 8, а во втором — из 5.
Код B8ZS исправляет только последовательности, состоящие из 8 нулей. Для этого он после первых трех нулей вместо оставшихся пяти нулей вставляет пять цифр: V-1*-0-V-1*. V здесь обозначает сигнал единицы, запрещенной для данного такта полярности, то есть сигнал, не изменяющий полярность предыдущей единицы, 1* — сигнал единицы корректной полярности, а знак звездочки отмечает тот факт, что в исходном коде в этом такте была не единица, а ноль. В результате на 8 тактах приемник наблюдает 2 искажения — очень маловероятно, что это случилось из-за шума на линии или других сбоев передачи. Поэтому приемник считает такие нарушения кодировкой 8 последовательных нулей и после приема заменяет их на исходные 8 нулей. Код B8ZS построен так, что его постоянная составляющая равна нулю при любых последовательностях двоичных цифр.
Биполярный код AMI | |||||||||||||||||||||||
B8ZS | |||||||||||||||||||||||
V | 1* | V | 1* | ||||||||||||||||||||
HDB3 | |||||||||||||||||||||||
V | 1* | V | 1* | V | |||||||||||||||||||
Рис.1.9. Коды B8ZS и HDB3. V — сигнал единицы запрещенной полярности; 1* — сигнал единицы корректной полярности, но заменившей 0 в исходном коде
Код HDB3 исправляет любые четыре подряд идущих нуля в исходной последовательности. Правила формирования кода HDB3 более сложные, чем кода В8ZS. Каждые четыре нуля заменяются четырьмя сигналами, в которых имеется один сигнал V. Для подавления постоянной составляющей полярность сигнала V чередуется при последовательных заменах. Кроме того, для замены используются два образца четырехтактовых кодов. Если перед заменой исходный код содержал нечетное число единиц, то используется последовательность 000V, а если число единиц было четным — последовательность 1*00V.
Улучшенные потенциальные коды обладают достаточно узкой полосой пpoпускания для любых последовательностей единиц и нулей, которые встречают в передаваемых данных. Потенциальный код NRZ обладает хорошим спектром с одним недостатком — у него имеется постоянная составляющая. Коды, полученные из потенциального путем логического кодирования, обладают более узким спектром, чем манчестерский, даже при повышенной тактовой частоте Этим объясняется применение потенциальных избыточных и скрэмблированных кодов в современных технологиях, подобных FDDI, Fast Ethernet, Gigabit Ethernet, ISDN и т. п. вместо манчестерского и биполярного импульсного кодирования.