Скремблирование
Скремблирование заключается в побитном вычислении результирующего кода на основании битов исходного кода и полученных в предыдущих тактах битов результирующего кода. Например, скремблер может реализовывать следующее соотношение:
Bj= Aj В}_з Bj_5.
Здесь Bj — двоичная цифра результирующего кода, полученная на i-м такте работы скремблера, Aj — двоичная цифра исходного кода, поступающая на i-м такте на вход скремблера, Bj_3 и В{_5 — двоичные цифры результирующего кода, полученные на предыдущих тактах работы скремблера (соответственно на 3 и на 5 тактов ранее текущего такта) и объединенные операцией исключающего ИЛИ (сложение по модулю 2).
Например, для исходной последовательности 110110000001 скремблер даст следующий результирующий код (первые три цифры результирующего кода будут совпадать с исходным кодом, так как еще нет нужных предыдущих цифр):
Bt - А, - 1
В2 = А2 = 1 В3 - А3 = 0 В4= А4 Вх = 1 1 = 0 В5 = А5 В2 = 1 1 = 0 В6 = А6 В3 В, = 0 0 1 = 1 в7 = а7 В4 В2 = 0 0 1 = 1
В8 = А8 В5 В3 = 0 0 0 = О
В9 - А9 В6 В4 - 0 1 0 - 1
В10 - А10 В7 В5 - О 1 0 = 1
Ви - Аи В8 В6 - О О 1 - 1
В12 - А12 В9 В7 - 1 1 1 - 1
Таким образом, на выходе скремблера появится последовательность 110001101111, в которой нет последовательности из шести нулей, присутствовавшей в исходном коде.
После получения результирующей последовательности приемник передает ее дескремблеру, который восстанавливает исходную последовательность на основании обратного соотношения:
Q - Bj Bj_3 Bj_5 = (А{ В{_з В|_5) Bj_3 Bj_5 = Aj. Различные алгоритмы скремблирования отличаются количеством слагаемых, дающих цифру результирующего кода, и сдвигом между слагаемыми. Так, в сетях ISDN при передаче данных от сеги к абоненту используется преобразование со сдвигами на 5 и 23 позиции, а при передаче данных от абонента в сеть — со сдвигами на 18 и 23 позиции.
Существуют и более простые методы борьбы с последовательностями единиц, также относимые к классу скремблирования. Для улучшения биполярного кода AMI используются два метода, основанные на искусственном искажении последовательности нулей запрещенными символами.
Рисунок 9.9 иллюстрирует использование методов B8ZS (Bipolar with 8-Zeros Substitution) и HDB3 (High-Density Bipolar 3-Zeros) для корректировки кода AMI. Исходный код состоит из двух длинных последовательностей нулей: в первом случае — из 8, а во втором — из 5.
о I о
Биполярный код AMI
B8ZS 0 0 V
HDB3
Г |
0 I 0
Рис. 9.9. Коды B8ZS и HDB3
Код B8ZS исправляет только последовательности, состоящие из 8 нулей. Для этого он после первых трех нулей вместо оставшихся пяти нулей вставляет пять цифр: V-l*-0-V-l*. Здесь V обозначает сигнал единицы, запрещенной (Violations) для данного такта полярности, то есть сигнал, не изменяющий полярность предыдущей единицы, 1* — сигнал единицы корректной полярности (знак звездочки отмечает тот факт, что в исходном коде в этом такте была не единица, а ноль). В результате на 8 тактах приемник наблюдает 2 искажения — очень маловероятно, что это случается из-за шума на линии или других сбоев передачи. Поэтому приемник считает такие нарушения кодировкой 8 последовательных нулей и после приема заменяет их исходными 8 нулями. Код B8ZS построен так, что его постоянная составляющая равна нулю при любых последовательностях двоичных цифр.
Код HDB3 исправляет любые четыре смежных нуля в исходной последовательности. Правила формирования кода HDB3 более сложные, чем кода B8ZS. Каждые четыре нуля заменяются четырьмя сигналами, в которых имеется один сигнал V. Для подавления постоянной составляющей полярность сигнала V чередуется при последовательных заменах. Кроме того, для замены используются два образца четырехтактовых кодов. Если перед заменой исходный код содержал нечетное число единиц, задействуется последовательность 000V, а если число единиц было четным — последовательность 1*00V.
Улучшенные потенциальные коды обладают достаточно узкой полосой пропускания для любых последовательностей единиц и нулей, которые встречаются в передаваемых данных. На рис. 9.10 приведены спектры сигналов разных кодов, полученные при передаче произвольных данных, в которых различные сочетания нулей и единиц в исходном коде равновероятны.
NRZ 2B1Q B8ZS 4В/5В |
1,2 А - |
А - |
N N N 8 4 2 |
N |
3N 2 |
2N |
N — скорость передачи данных, бит/с; А — амплитуда сигнала
Рис. 9.10. Спектры потенциальных и импульсных кодов
При построении графиков спектр усреднялся по всем возможным наборам исходных последовательностей. Естественно, что результирующие коды могут иметь и другое распределение нулей и единиц. Из рисунка видно, что потенциальный код NRZ обладает хорошим спектром с одним недостатком — у него имеется постоянная составляющая. Коды, полученные из потенциального кода путем логического кодирования, обладают более узким спектром, чем манчестерский код, даже при повышенной тактовой частоте (на рисунке спектр кода 4В/5В должен был бы примерно совпадать с кодом B8ZS, но он сдвинут в область более высоких частот, так как его тактовая частота повышена на 1 /4 по сравнению с другими кодами). Этим объясняется преимущественное применение потенциальных избыточных и скремблированных кодов в современных технологиях, подобных FDDI, Fast Ethernet, Gigabit Ethernet, ISDN и т. п. вместо манчестерского и биполярного импульсного кодирования.