Основы передачи дискретных сообщений _ лекция 5
Линейные коды
Скорость, которая необходима для передачи сигналов ИКМ, требует специальных мер для передачи сигналов даже на небольшие расстояния. Величина расстояния, на котором возможна передача сигналов, зависит от требуемой скорости передачи. Проблемы ИКМ заключаются в широком спектре частот, которые требуются для передачи и восстановления прямоугольного импульса. Этот спектр, порождаемый резкими передними и задними фронтами, может привести к возникновению помех в соседних линиях и появлению в них наведенной информации, что нарушит ее конфиденциальность. Особенно ухудшает ситуацию передача однополярных прямоугольных импульсов. Наличие постоянной составляющей и асимметричность порождают искажение самих импульсов и приводит к влиянию на соседние цепи. Поэтому для передачи цифровых сигналов по линии применяются специальные коды (линейные коды).
Биполярные коды
Для устранения постоянной составляющей применяются биполярные коды. Их симметричность аналогична двуполярному аналоговому сигналу синусоидальной формы, хотя резкие переходы заднего и переднего фронтов все же остаются. Однако для таких кодов резко снижается затухание линии и, как следствие, возрастает дальность передачи.
|
|
В случае биполярного преобразования (рис. 1.30) логическая единица передается импульсами с чередующейся полярностью (код ЧПИ — чередующаяся полярность импульсов). В иностранной литературе этот код называется AMI (Alternating Mark Inversion). При этом каждая последующая единица передается полярностью, противоположной предыдущей единице. В результате энергия, накопившаяся от положительного импульса, компенсируется энергией отрицательного. Логическому нулю соответствует отсутствие импульса.
По сути дела, в данном случае применяется троичный код, поскольку при передаче в канал используются три уровня сигнала +1, 0, -1. При этом полярности единиц должны чередоваться. Это позволяет осуществлять контроль правильности передачи. При одиночной ошибке в канале, например, исчезновении одной единицы, происходит нарушение чередования полярности.
Основным недостатком такого линейного кода является то, что число единиц в сигнале зависит от их числа в исходной комбинации. Для того, чтобы синхронизовать генераторы, находящиеся на разных станциях, необходимо на приемном конце из поступающих импульсов выделять передние фронты и сравнивать моменты их поступления с аналогичными фронтами местного генератора. При длинной последовательности нулей в исходном сигнале (допускается не более 14 нулей) отсутствие передних фронтов на приемном конце может привести к рассинхронизации ге-нераторов, что в свою очередь приведет к появлению ошибок в информации. Поэтому для биполярного кода применяется алгоритм, позволяющий увеличить плотность единиц.
|
|
Код HDB3 исправляет любые четыре подряд идущих нуля в исходной последовательности. Каждые четыре нуля заменяются четырьмя сигналами, в которых имеется один сигнал V. Для подавления постоянной составляющей полярность сигнала V чередуется при последовательных заменах. Кроме того, для замены используются два образца четырехтактовых кодов. Если перед заменой исходный код содержал нечетное число единиц, то используется последовательность 000V, а если число единиц было четным - последовательность 100V.
Алгоритм заключается в том, что, если передано N нулей подряд, то на передающем конце вставляется единица. Чтобы на приемном конце при декодировании не воспринималась лишняя единица, на приемный конец передается сигнал о вставке. Этот сигнал состоит в нарушении полярности и позволяет исключить добавленную единицу.
Условия нарушения полярности требуют, чтобы при замене последовательности из нулей на нарушающуюся комбинацию число переданных единиц с правильным чередованием было нечетным. Если оно четное, то в подставляемую комбинацию добавляется одна единица без нарушения полярности и далее 0, а потом происходит нарушение полярности.
Таким образом, соблюдаются условия:
- вместо нулей вставляются единицы;
- нарушается закон чередования полярностей для того, чтобы на приемном конце могли различить вставленную единицу;
- между правильно переданной последовательностью и нарушением всегда находится нечетное количество импульсов (единиц), переданных в соответствии с правилом кодирования;
- на приемном конце после обнаружения указанных выше условий восстанавливается последовательность из трех нулей на месте прихода нарушенной комбинации; дополнительно передаваемые единицы используются для выделения передних фронтов и синхронизации генераторов.
Рассмотренный выше код обозначается HDBN (High Density Bipolar of Order N). В примере показан HDB3.
Преобразование к троичным кодам
Биполярный код использует для передачи троичные сигналы. Это позволяет повысить информационность каждой передаваемой единицы. Одна из первых процедур состоит в сведении двоичных кодов к троичным, что позволяет кодировать комбинации меньшим числом разрядов и тем самым повысить скорость передачи. Последовательность чисел от 0 до 15 можно закодировать и передать с помощью четырех битов. При использовании троичных кодов для этого потребуется только три разряда. Таким образом, требуемая скорость в канале уменьшается и составляет только 3/4от скорости, требуемой для передачи двоичными кодами. Например, если при передаче двоичными кодами требуется скорость 160 бит/с, то при троичных кодах — только 120 бит/с. Одно из частных преимуществ троичного кодирования состоит в избыточности кода. Три троичных символа дают 27 комбинаций, а четыре двоичных — 16. Поэтому для передачи многим двоичным комбинациям можно сопоставить по две троичных комбинации. Это делается для несбалансированных кодов, т.е. тех, в которых преобладают сигналы положительной или отрицательной полярности. Тогда второй код выбирается с обратной балансировкой, и их попеременная передача обеспечивает отсутствие постоянной составляющей в линии. Те коды, которые не имеют второго варианта, выбираются из множества сбалансированных комбинаций, как это показано в табл. 1.10. Этот код получил обозначение 4ВЗТ (так как преобразует четыре двоичных символа в 3 троичных).
По аналогии с этим кодом был разработан код 2B1Q, который преобразует два двоичных символа в один символ в системе из четырех уровней. Это позволяет снизить требования к линейной скорости в 4 раза или во столько же раз повысить пропускную способность канала.
|
|
Эта тенденция получила дальнейшее развитие в применении многоуровневых кодов для расширения пропускной способности канала.
Кодирование 2B1Q
Код 2B1Q передает пару бит за один битовый интервал. Каждой возможной паре в соответствие ставится свой уровень потенциала. Паре 00 соответствует потенциал −2.5 В, 01 соответствует −0.833 В, 11 — +0.833 В, 10 — +2.5 В.Достоинство метода 2B1Q: Сигнальная скорость у этого метода в два раза ниже, чем у кодов NRZ и AMI, а спектр сигнала в два раза уже. Следовательно с помощью 2B1Q-кода можно по одной и той же линии передавать данные в два раза быстрее. Недостаток метода 2B1Q: Реализация этого метода требует более мощного передатчика и более сложного приемника, который должен различать четыре уровня.
Спектр кода 2B1Q