Кодирование

На передающей стороне для подготовки сообщения к передаче по линии связи обычно производят предварительную обработку. Такая обработка в частности может состоять из двух этапов, кодирование и модуляции.

Во время первого этапа информационным сообщениям l(t) ставят в соответствие информационный сигнал b(t), в телемеханике это обычно импульсная серия. Как правило, используются импульсы достаточно широкие, что порождает низкочастотный спектр (НЧ) сигнала b(t). В связи с этим возникает понятие код. Код - совокупность условных сигналов, обозначающих дискретные сообщения.

Все используемые в системах передачи информации коды можно условно разделить по следующим признакам.

  1. По числу используемых элементарных символов:
    • двоичные (кодовые слова состоят из символов 0, 1);
    • троичные (кодовые слова состоят из символов 0, 1, 2);
    • K-ичные (кодовые слова состоят из символов 0, 1,…, K);
  2. По числу элементарных символов в каждом слове, или кодовой комбинации (по общему числу символов):
    • равномерные (блочные); в таких кодах все кодовые слова содержат одно и то же постоянное число элементов, то есть n = const;
    • неравномерные; разные сообщения в этих кодах кодируются словами разной длины, то есть n = var;
  3. По способности обнаруживать и/или исправлять ошибки:
    • непомехоустойчивые (непомехозащищенные, неизбыточные) – коды, неспособные не только исправлять, но даже обнаруживать ошибки;
    • помехоустойчивые (помехозащищенные) – коды, способные обнаруживать и/или исправлять ошибки различных типов (избыточные коды);
  4. По разделимости информационных и избыточных элементов:
    • систематические, в которых есть четкое различение между информационными и избыточными элементами; особенно удобны коды, в которых информационные элементы занимают первые m позиций, а за ними следуют избыточные элементы на k позициях;
    • несистематические, в которых нельзя различить информационные и избыточные элементы.

Далее рассматривается кодирование импульсных сигналов. Суть кодирования – представление исходного множества двоичных сигналов эквивалентным ему множеством кодовых комбинаций с определенными свойствами.

Набор импульсов, соответствующий какому – либо сообщению будем называть словом. Для сравнения различных кодов между собой применяется метрика Хэмминга, которая позволяет определить расстояние (кодовое) между любой парой слов рассматриваемого кода, состоящих из n символов (импульсов).

d(x, y) = S(ai + bi)mod 2, i=1,2,…,n.

Любую комбинацию можно рассматривать как число, записанное в определенной системе счисления. Наиболее распространена в технике связи двоичная система счисления, в которой каждый символ комбинации может принимать значения либо 0 либо 1. Примеры кодов: Морзе, Бодо, Грея, международный телеграфный, двоично-десятичный. Кодовые комбинации принято записываются в виде многочленов, в одной из форм:

F(x)=1·x7+0·x6+1·x5+0·x4+1·x3+0·x2+0·x1+1·x0 = 10101001=x7+x5+x3+1.

Для систематических кодов используется сложение по модулю 2, которое производится отдельно для каждого разряда по правилам:

0Å0=0; 0Å1=1; 1Å0=1; 1Å1=0;

Если из возможного множества кодов выбрать только такие, которые отличаются друг от друга не менее, чем в 2-х разрядах, то d=2, и этот код может обеспечить обнаружение одиночных ошибок. Коды с d>1 называют помехозащищенными.

a2 a1 a0 p

Примером кода с d=2 является код с проверкой на четность. В этом коде кроме 3-х информационных элементов a2, a1, a0 вводится проверочный элемент p, который принимает значение 1, если сумма значений информационных элементов равна 1 и 0 - в противном случае. Таким образом, сумма элементов всего кода всегда четное число. p=( a2+ a1 + a0)мод 2. Приведенный код способен обнаружить любую одиночную ошибку. При увеличении кодового расстояния до 3 можно построить код с исправлением одиночной ошибки и обнаружения двойных ошибок. В общем случае для r обнаруживаемых ошибок и s исправляемых кодовое расстояние должно быть d=r+s+1.

Рассмотрим некоторые из распространенных кодов.

 

Десятичное число Двоичное число Код Грея0

Код Грея. Характерен тем, что два смежных значения отображаемой величины отличаются не более, чем в одном разряде. Это позволяет при передаче информации о медленно изменяющихся процессах проще анализировать возникающие от помех ошибки. Такой код эффективно использовать в датчиках, преобразующих угол в цифровой код.

Правила образования кода Грея. Если в комбинации безызбыточного двоичного кода в старшем разряде по отношению к рассматриваемому стоит 0, то при переходе к коду Грея его символ сохраняется. Если стоит 1 - меняется на обратный.

Код Шеннона-Фано. Неравномерный код. Для сообщений с наибольшей вероятностью выбирают более короткие коды. При построении кода все сообщения записывают в порядке убывания их вероятности. Затем все сообщения делят на две группы примерно равновероятные. В старший разряд первой группы записывают 0, во второй – 1. Затем каждая группа вновь делиться на две и нечетной группе записывают 0, для четной - 1 и т.д.

Сообщение
Вероятность 0,22 0,2 0,18 0,15 0,10 0,08 0,05 0,02
 
 
     
           
             
Код Фано

Код Хемминга с обнаружением и исправлением одиночных ошибок. Как следует из названия кода, он позволяет не только обнаружить ошибку от помехи, но и исправить ее на приемной стороне без необходимости повторной передачи. В этом коде в результате нескольких проверок на приемной стороне вычисляется позиция, в которой произошла ошибка. Рассмотрим в качестве примера систему, в которой кодируется m=4 информационных и r=3 проверочных символов. Общая длина сообщения n=m+r. Каждая проверка выявляет номера позиций, в которых произошла ошибка. Проверочные разряды имеют номера позиций 2i

Позиция двоичное число 111 110 101 100 011 010 001

Позиция десятичное число 7 6 5 4 3 2 1

Информационные символы а7 а6 а5 а3

Проверочные символы b4 b2 b1

 

Формирование проверочных символов на передающей стороне. Первый проверочный символ суммирует значения тех информационных символов, в номерах позиций которых присутствует младший двоичный разряд. Второй проверочный символ – те, где в номерах присутствует второй двоичный разряд и т.д.

b1=a3Åa5Åa7; b2=a3Åa6Åa7; b4=a5Åa6Åa7

 

Проверки на приемной стороне. Первая проверка выявляет ошибку в позициях, номер которой имеет единицу в младшем разряде. Вторая проверка – те позиции, где ошибка во втором двоичном разряде и т.д.

S1= b1Åa3Åa5Åa7; S2=b2Åa3Åa6Åa7; S3=b4Åa5Åa6Åa7

Допустим, на передающей стороне сформировано слово

Позиция 7 6 5 4 3 2 1

Значение 1 1 0 0 0 0 1

При приеме без искажений

. S1= 1Å0Å0Å1=0; S2= 0Å0Å1Å1=0; S3= 0Å0Å1Å1=0;

Если при приеме получена комбинация

Позиция 7 6 5 4 3 2 1

Значение 1 1 1 0 0 0 1

Проверки дают

S1= 1Å0Å1Å1=1; S2= 0Å0Å1Å1=0; S3= 0Å1Å1Å1=1;

Записав слово S3 S2 S1 = 101 получаем номер позиции, где возникла ошибка, а следовательно ее можно будет исправить.

Циклический код. Циклические коды – это коды, у которых любая кодовая комбинация при циклическом сдвиге дает новую комбинацию, принадлежащую этому же коду. Для защиты таких кодов от помех используются порождающие полиномы. Для кодов, длина которых равна n и в котором имеется m информационных символов и r проверочных порождающий полином имеет степень r. Построение кода осуществляется следующим образом. Исходный полином, соответствующий информационному сигналу G(x) умножают на xr. F(x)=G(x)· xr. Затем его делят на порождающий полином Ps(x). Остаток от деления R(x) (СРС-код) суммируют c F(x). Полученный код делится на порождающий полином без остатка. Этот код передается в канал связи. На приемной стороне полученное слово делиться на образующий полином. При передаче без искажений деление дает 0, при искажениях получается вектор ошибки E(x), анализируя который можно не только обнаружить ошибку, но в ряде случаев и скорректировать ее.

Линейное кодирование. Для согласования возможностей аппаратуры каналов связи с передаваемыми кодами используется их преобразование, иногда называемое линейным кодированием (код используется в линии связи). Одной из основной проблемой является обеспечение приемника сигналов синхронной работы с передатчиком. Для обеспечения синхронной работы передаваемые коды должны позволять выделять тактовый сигнал при любой последовательности информационных символов. Наиболее сложно обеспечить синхронизацию при передаче большой числа подряд следующих единиц или нулей. Путем удвоения полосы пропускания можно улучшить синхронизирующие свойства кода. Так получается в коде, когда исходной 1 соответствует положительный импульс с возвратом на нулевой уровень, а исходному 0 – отрицательный импульс с возвратом на нулевой уровень. В Манчестерском коде единица представляется перепадом 1/0 а нуль перепадом 0/1.

схема RZ - return-to-zero) Манчестерский код

 

Стремление более эффективно использовать полосу пропускания привело к появлению код AMI (alternate mark inversion). В этом коде символы 0 кодируются уровнем 0, а символы 1 попеременно импульсами положительной и отрицательной полярности. Этот метод обладает недостатком при появлении длинных последовательностей нулей. Поэтому получила распространение измененная форма этого метода, когда каждые три последовательных нуля заменяют последовательностью 00V или BOV. Метод получил обозначение B3ZS (bipolar with 3 zero substitution) . Рассмотренные коды приведены на рис.

Более полное описание кодирования для цифровых систем связи можно посмотреть здесь.

 

Рис. Линейное кодирование.

а – исходное сообщение, б – кодирование сигнала в ЭВМ, в – манчестерский код, г - код AMI, д – код BZS3

 

Телемеханические коды. Форматы для передачи этих кодов стандартизованы и имеют вполне определенные значения вероятностей нераспознанных ошибок. Как правило, в телемеханике применяют асинхронные каналы связи.

Формат FT1.1. Информационная часть слова имеет байтовую длину. Кроме того, перед информационными битами и после них передаются специальные символы: 0 – до информационной части (стартовый бит), Р – после нее (бит проверки на четность), 1 – за битом проверки на четность (стоповый бит). Иногда под словом понимают только информационную часть.

В асинхронных системах передачи данных канал связи обтекается постоянным током. Прием информационных бит осуществляется после исчезновения этого тока (передача стартового бита).

Кодовые слова передаются без пауз между ними, то есть блоками. Такой блок называется кодовым предложением. Число слов в таком блоке при использовании формата FT1.1 не должно превышать 127. Если их будет больше, система может выйти из синхронизма, который с увеличением скорости передачи все сложнее обеспечивать. Если необходимо передать число слов больше 127, после паузы определенной длительности продолжают передачу.

В формате FT1.1 можно передавать как постоянное, так и переменное число слов. При передаче блока с фиксированным числом слов положительным моментом является то, что на приемной стороне заранее известно, сколько бит должно быть в кодовом предложении. Отрицательной стороной является недоиспользование канала связи при передаче небольшого числа слов длинным кодовым предложением. При передаче блока с переменным числом слов необходимо указывать их количество, причем эта информация не полезная, а служебная.

На приемной стороне кодовый формат FT1.1 считается принятым правильно, если все его структурные особенности сохранены, то есть не искажены (в каждом слове информационные биты заключены между стартовым и стоповым битами и включают в себя бит четности). При нарушении хотя бы одного из признаков хотя бы в одном слове формат полностью бракуется. Однако в частном случае, когда одно сообщение об объекте укладывается в 8 информационных бит, то есть отсутствует корреляция между словами, при структурном нарушении принятого кодового слова бракуется только оно одно, другие считаются принятыми правильно.

Кроме того, при передаче информации необходимо предусмотреть появление нуля определенной длительности из-за возможного действия помехи, чтобы исключить реакцию на дробление.

Каждый кодовый формат принято оценивать по критерию эффективности. Эффективность – отношение правильно принятых информационных бит (nИPПР) к общему числу бит nОБЩ:

Следует отметить, что все форматы в основном используются только в режиме обнаружения ошибки.

Формат FT1.1 довольно эффективен с точки зрения параметра EFF, но мало эффективен с точки зрения помехоустойчивости, так как обеспечивает минимальное кодовое расстояние dmin = 2.

Формат FT1.1 используется в малоответственных системах передачи информации (например, в циклических системах телеизмерения).

Формат FT1.2 состоит из i слов (он может быть постоянным или переменным), каждое из которых имеет такую же структуру, как и в формате FT1.1. Кроме того, в конце кодового предложения добавляется еще одно служебное слово. Оно формируется по правилам итеративного кода и представляет собой результат проверки столбцов матрицы, сформированной кодовыми словами, в отличие от классического итеративного кода, где проверяются и строки, и столбцы. В данном служебном слове столбцы проверяются путем арифметического поразрядного суммирования всех строк с формированием остатка по модулю 256 и его инвертированием. При такой проверке можно обнаружить больше ошибок (то есть уменьшить вероятность ложного приема), чем при использовании правил классического итеративного кода.

На приемной стороне все слова складываются по модулю 256. При правильном приеме результат сложения должен представлять собой инверсию служебного контрольного слова. После их суммирования должен быть получен результат, целиком состоящий из единиц. Физически это означает установление всех триггеров в единичное состояние. Это свидетельствует не только о правильности приема, но и о наличии приема вообще, так как исходным является нулевое состояние триггеров. Форматы FT1.2 используются обычно для передачи телесигнализации.

В формате FT2 слова формируются в некоторые блоки (объединение i слов образует предложение). Каждое слово имеет только 8 информационных бит, в отличие от структуры слов форматов FT1.1 и FT1.2.

Контрольный байт формируется по законам циклического кода как остаток от деления информационной части блока на образующий полином седьмой степени P(x) = x7 + x6 + x5 + x2 + 1 расширенный восьмым битом защиты по четности всего блока с инверсией всех восьми контрольных бит.

Как следует из теории циклических кодов, приведенный полином может породить код длиной n = 27 – 1 = 127, обеспечивающий минимальное кодовое расстояние dmin = 3. Бит защиты по паритету добавляется для обеспечения dmin = 4, код удлиняется на 1 бит.

Форматы FT1.2 и FT2 используются обычно для передачи информации от объектов сигнализации и наиболее важных параметрах телеизмерения, так как обеспечивают dmin = 4. Для менее важных объектов телеизмерения можно использовать и формат FT1.1.

Формат FT3 строится по тем же принципам, что и FT2 с использованием более мощного образующего полинома P(x) = x16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 + 1, после деления на который информационной части блока получают два контрольных байта. Таким образом, при общей длине блока в 128 бит максимальное число информационных слов равно 14. При использовании формата FT3 число информационных слов уменьшается на одно, но минимальное кодовое расстояние увеличивается до шести (dmin = 6). Однако ситуации, где необходимо использовать dmin = 6, встречаются редко. Обычно используют укороченные коды с dmin = 4 или dmin = 5.

Организация обмена информации в телемеханике. Информацию по каналу можно передавать дуплексно (передача осуществляется одновременно по различным физическим каналам ТУ и ТС), полудуплексно (передача осуществляется по одному физическому КС, который используется и как канал ТУ, и как канал ТС), на разных частотах одновременно. Часто полудуплексной считают такую связь, при которой обменивающиеся информацией стороны используют один канал связи поочередно (раздельно по времени).

По способу синхронизации передающей и принимающей стороны различают асинхронные и синхронные системы.

В асинхронных системах передачи данных канал связи обтекается постоянным током. Прием информационных бит осуществляется после исчезновения этого тока (передача стартового бита. Кроме того, перед информационными битами и после них передаются специальные символы: 0 – до информационной части (стартовый бит), Р – после нее (бит проверки на четность), 1 – за битом проверки на четность (стоповый бит). Иногда под словом понимают только информационную часть.

В системах асинхронного типа нормально (то есть в паузах между передачами) канал связи остается свободным. Перед выдачей информационного блока передающая сторона формирует и передает специальную синхронизирующую посылку (рис. 6).

Рис. 6 Последовательность импульсов в канале связи, асинхронной системы

 

Чаще всего эта посылка представляет собой одиночный импульс строго определенной длительности, которая отличается от длительности последующих информационных символов. Такой импульс называется пусковым элементом (ПЭ).

Длительность пускового элемента , чтобы устройство синхронизации не было запущено вторично при получении нескольких одинаковых сигналов подряд в информационной части. Пусковой элемент может быть заполнен частотой или быть большим по амплитуде

С учетом сказанного можно проиллюстрировать работу любой системы передачи информации асинхронного типа с помощью временных диаграмм (рис. 8).

Рис. 8 Временные диаграммы работы асинхронной системы передачи

 

Контрольная пауза (КП) необходима для исключения возможности слияния пускового элемента с информационной частью. Длительность ее может быть равна .

В синхронных системах постоянно передается сигнал определенной формы: длительность импульса такого сигнала равна длительности паузы (меандр). Он используется для поддержания передающего и приемного генераторов в режиме синхронной работы, или, как говорят, для поддержания синхронизма. Начало передачи устанавливается по факту появления слова НАЧАЛО, или открывающего флага. НАЧАЛО имеет постоянную структуру вида 01111110 (содержит шесть единиц подряд). В некоторых случаях предусматривается и закрывающий флаг такой же структуры. Открывающий и закрывающий флаги должны отличаться от информационных слов. Поэтому во всех словах, совпадающих по структуре с флагами, искусственно добавляется еще один бит после появления пяти единиц подряд. Операция введения добавочного бита называется бит-стаффингом.

Устройства циклической синхронизации (УЦС) служат для согласования передающего и приемного распределителей.

Распределитель – устройство, имеющее некоторые входные цепи (одна нулевая и n рабочих). В нулевой цепи распределителя есть сигнал, когда он находится в исходном состоянии. Управление работой распределителя осуществляется по входной цепи. Распределитель обеспечивает последовательную выдачу отдельных элементарных сигналов.

Рис. 9 Временные диаграммы работы распределителя

 

Наиболее часто распределитель выполняется в виде переключателей счетчиков (например, двоичный счетчик с выходным дешифратором). На приемной стороне распределитель необходим для распознавания номера передаваемого символа. Распределители передатчика и приемника должны работать синхронно и синфазно, то есть быть синхронизированным по циклам.

Для фазирования двух распределителей необходимо передать приемнику специальный сигнал (информацию) в виде синхронизирующих импульсов или в виде сложной синхронизирующей кодовой комбинации.