Коды с обнаружением ошибок    

1.     Код с проверкой на четность.

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

Пример 5.1. Построим коды для проверки на четность, где k - исходные комбинации, r - контрольные символы.   

k r n
11011 0 110110
11100 1 111001

    Определим, каковы обнаруживающие свойства этого кода. Вероятность Poo обнаружения ошибок будет равна

             

         Так как вероятность ошибок   является весьма малой величиной, то можно ограничится                    

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

При передаче большого количества кодовых комбинаций Nk , число кодовых комбинаций, в которых ошибки обнаруживаются, равно:     

 Общее количество комбинаций с обнаруживаемыми и не обнаруживаемыми ошибками равно 

Тогда коэффициент обнаружения Kобн для кода с четной защитой будет равен

 

Например, для кода с  k=5   и вероятностью ошибки     коэффициент обнаружения составит     . То есть 90% ошибок обнаруживаем, при этом избыточность будет составлять         или 17%. 

   2. Код  с  постоянным   весом.

    Этот  код содержит постоянное число единиц и нулей. Число кодовых комбинаций составит

Пример 5.2.  Коды с двумя единицами из пяти и тремя единицами из семи.

 
11000

10010

00101
0000111

1001001

1010100

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

 Рассмотрим код с тремя единицами из семи. Для этого кода возможны смещения трех типов.

                                   

Вероятность появления не обнаруживаемых ошибок смещения

, где                       

При p<<1     , тогда  

Вероятность появления всевозможных ошибок как обнаруживаемых, так и не обнаруживаемых будет составлять

Вероятность обнаруживаемых ошибок     . Тогда коэффициент обнаружения будет равен                  

Например,  код    при         коэффициент обнаружения составит      ,  избыточность      L=27%. 

   3. Корреляционный  код  (Код  с  удвоением). Элементы данного кода заменяются двумя символами, единица ‘1’ преобразуется в 10, а ноль ‘0’ в 01.

Вместо комбинации 1010011 передается  10011001011010. Ошибка обнаруживается в том случае, если в парных элементах будут одинаковые символы 00 или 11 (вместо 01 и 10).

Например, при k=5, n=10  и вероятности ошибки  , .      Но при этом избыточность будет составлять 50%. 

   4. Инверсный  код. К исходной комбинации добавляется такая же комбинация по длине. В линию посылается удвоенное число символов. Если в исходной комбинации четное число единиц, то добавляемая комбинация повторяет исходную комбинацию, если нечетное, то добавляемая комбинация является инверсной по отношению к исходной.

k r n
11011 11011 1101111011
11100 00011 1110000011

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

Обнаруживающие способности данного кода достаточно велики. Данный код обнаруживает практически любые ошибки, кроме редких ошибок смещения, которые одновременно происходят как среди информационных символов, так и среди соответствующих контрольных. Например, при k=5,  n=10 и       . Коэффициент обнаружения будет составлять   .

   5. Код  Грея.    Код Грея используется для преобразования угла поворота тела вращения в код. Принцип  работы можно представить по рис.5.2. На  пластине, которая  вращается  на  валу, сделаны  отверстия, через  которые  может  проходить  свет. Причём, диск  разбит  на  сектора, в  которых  и  сделаны  эти  отверстия. При  вращении, свет  проходит  через  них, что  приводит  к срабатыванию фотоприёмников. При снятии информации в виде двоичных кодов может произойти существенная ошибка. Например, возьмем две соседние цифры 7 и 8. Двоичные коды этих цифр отличаются во всех разрядах.               

                                      7       0111   ->  1111

                                      8       1000  ->   0000

    Если ошибка произойдет в старшем разряде, то это приведет к максимальной ошибке, на 3600. А код Грея, это такой код в котором все соседние комбинации отличаются только одним символом, поэтому при переходе от изображения одного числа к изображению соседнего происходит изменение только на единицу младшего разряда. Ошибка будет минимальной.

Рис.5.2. Схема съема информации угла поворота вала в код

                 Код Грея записывается следующим образом

Номер Код Грея
0 0    0     0     0
1 0    0     0     1
2 0    0     1     1
3 0    0     1     0
4 0    1     1     0
5 0    1     1     1
6 0    1     0     1
7 0    1     0     0
8 1    1     0     0
9 1    1     0     1
10 1    1     1     1
11 1    1     1     0
12 1    0     1     0
13 1    0     1     1
14 1    0     0     1
15 1    0     0     0

    Разряды в коде Грея не имеют постоянного веса. Вес k-разряда определяется следующим образом          .

При этом все нечетные единицы, считая слева направо, имеют положительный вес, а все четные единицы отрицательный.

Например,   

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

Пусть          -- двоичный  код,            -- код  Грея

Тогда  переход из двоичного кода  в код Грея  выполнится по следующему алгоритму

   

Например,         .

Обратный переход из кода Грея в двоичный код

Например,   .

 

Hosted by uCoz