Коды с обнаружением и исправлением ошибок. Код Хемминга



Код Хемминга относится к блоковым кодам. Наиболее простой код, исправляющий ошибки кратности t=1, имеет кодовое расстояние d=3.

   

Принцип построения

 1. На передающей стороне к k информационным символам добавляется r проверочных символов. Значения проверочных символов (0 или 1) определяются путем проверок на четность [2]. В проверку на четность включают определенные элементы кодовых комбинаций, образующие проверочную группу. Сформированный n-разрядный код, состоящий из k информационных и r проверочных элементов, передается в линию связи.

2. На приемной стороне в тех же проверочных группах производится r проверок на четность.

3. Проверочные группы строятся таким образом, чтобы записи результатов каждой проверки  в двоичной форме давали бы r-разрядное двоичное число , указывающее номер разряда (в исчислении с основанием 10) искаженного элемента. Это r-разрядное двоичное число   называют синдромом ошибки.

Для того чтобы обнаружить и исправить все ошибки кратности 1, число проверочных символов выбирается из соотношения . Добавление слагаемого +1 соответствует случаю отсутствия ошибок.

Число элементов помехоустойчивой кодовой комбинации определяется из решения уравнения относительно n:

                                                      .                         (6)

Изначально известно число k. Определив n из уравнения (6), получим число проверочных разрядов r в новых кодовых комбинациях (табл. 2).

 

 

Таблица 2. Соотношение числа информационных и проверочных разрядов

k 2 3 4 5 6 7 8 9 10 11 12
n 5 6 7 9 10 11 12 13 14 15 17
r 3 3 3 4 4 4 4 4 4 4 5

 

Выбор значений и позиций проверочных элементов

Если ошибок нет, то синдром ошибки имеет значение 00…00.

При наличии ошибки двоичный код синдрома ошибки должен указать номер разряда кодовой комбинации (в исчислении с основанием 10), в котором произошло искажение элемента.

 Единица в первом разряде синдрома ошибки появляется при искажении любого нечетного разряда кодовой комбинации.

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

                                         .                          (7)

То есть в первую проверку должны входить все элементы кодовой комбинации, в первом (младшем) разряде которых содержится 1. Если , то один из элементов искажен.

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

                  (8)

 Если S2=1, то один из элементов искажен.

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

              .                      (9)

Четвертая проверочная группа содержит элементы, принимающие значение 1 в четвертом разряде новой кодовой комбинации:

                                     .                          (10)

Проверочные элементы каждой кодовой комбинации должны входить только в одну проверку. Таким образом, проверочными должны быть символы, расположенные в 1-м, 2-м, 4-м, 8-м и т. д. (16-м, 32-м,…) разрядах полученной кодовой комбинации.

Обозначим проверочные символы как  . Тогда

                                ; ; ; .                           (11)

Пример:

1 0 1 0 1 1 – исходная кодовая комбинация (младший разряд слева), число разрядов k=6. Обозначим их как  k1, k2, k3, k4, k5, k6.

По табл. 1 найдем число проверочных символов r=4. Помехоустойчивая кодовая комбинация должна содержать n=k+r=10 элементов (разрядов).

Для нахождения проверочных элементов используем вспомогательную схему (а1 – младший разряд), представленную в виде табл. 3:    

Таблица 3. Нахождение проверочных элементов

    k1   k2 k3 k4   k5 k6
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
b1 b2   b3       b4    

 

Выполним проверку на четность по описанным выше правилам [выражения (7)-(10)], подставляя в табл. 3 на места ai соответствующие значения символов исходной кодовой комбинации ki  и учитывая обозначения (11).

Результаты определения значений проверочных элементов:

;

;

;

.

Подставим в соответствии с табл. 3 на места ai соответствующие значения проверочных элементов bi и значения символов исходной кодовой комбинации ki. Получим новую кодовую комбинацию 0111010011, содержащую информационные символы и проверочные символы.

Пусть принят код 0111110011, т. е. произошла ошибка в 5-м разряде.

Проверочные группы на приемной стороне дадут следующие результаты:

;

;

;

.

Таким образом, синдром ошибки

, то есть, выявлена ошибка в символе .

Для ее исправления надо выполнить операцию суммирования а5 с 1 по модулю 2: а5= а5 1.

 


Дата добавления: 2020-01-07; просмотров: 587; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!