Блочные коды с коррекцией ошибок, страница 2

d (00000,00100) =1; d(00111, 00100)=2; d(11001,00100)=4;d(11110, 00100) = 3.Таким образом, искомое правило коррекции ошибок можно сформулировать так: если полученное кодовое слово с ошибкой, его истинное значение принимается равным кодовому слову, которое находится на минимальном расстоянии Хэмминга от искаженного слова. Это правило применимо только, когда для каждого ошибочного кодового слова имеется только одно реальное кодовое слово, находящееся от него на минимальном расстоянии Хэмминга.

Для нашего примера приведенное условие не выполняется. Полное количество возможных последовательностей равно 25=32, из которых 4 используются как кодовые слова, а 28 являются ошибочными. Для ошибочных кодовых слов можно составить таблицу.

Ошибочное

кодовое

слово

Минималь-

ное рассто-

яние

Существую-

щее кодовое

слово

Ошибочное

кодовое

слово

Минимальное

расстояние

Существую-

щее кодовое слово

00001

1

00000

10000

1

00000

00010

1

00000

10001

1

11001

00011

1

00111

10010

2

00000 или

11110

00100

1

00000

10011

2

00111 или

11001

00101

1

00111

10100

2

00000 или

11110

00110

1

00111

10101

2

00111 или

11001

01000

1

00000

10110

1

11110

01001

1

11001

10111

1

00111

01010

2

00000   или 11110

11000

1

11001

01011

2

00111 или 11001

11010

1

11110

01100

2

00000 или 11110

11011

1

11001

01101

2

00111 или 11001

11100

1

11110

01110

1

11110

11101

1

11001

01111

1

00111

11111

1

11110

      В 8 случаях ошибочная последовательность находится на расстоянии 2 от двух различных существующих кодовых слов. Любая такая последовательность может возникнуть в результате двух битовых ошибок, и при этом приемник не может однозначно выбрать правильное кодовое слово. Таким образом, ошибка обнаруживается, но не исправляется. В то же время для всех 1-битовых ошибок полученная последовательность находится на расстоянии 1 только от одного правильного кодового слова, что позволяет принять правильное решение. Следовательно, данный код можно использовать для исправления всех 1- битовых ошибок, но в тоже время он не позволяет исправлять ошибки в двух битах.

     Минимальное расстояние между двумя правильными кодовыми словами равно 3. Следовательно, при появлении 1-битовой ошибки расстояние между исходной и ошибочной последовательностью составит 1; а расстояние между ошибочной последовательностью и всеми прочими правильными кодовыми словами будет не менее 2. Таким образом, рассмотренный код позволяет всегда исправлять 1-битовые ошибки. Кроме того, будут обнаружены все 2-битовые ошибки. 

     Приведенные ранее примеры иллюстрируют важные свойства блочных кодов с коррекцией ошибок. Блочный код (n,k) преобразует k бит данных в n-битовые кодо­вые слова. В большинстве случаев каждое корректное кодовое слово — это исходные k бит данных плюс (n - к) контрольных битов. Таким образом, структура блочного кода эквивалентна структуре функции вида vc =f(vd), где vd — вектор, состоящий из k бит данных; vc — вектор, состоящий из n бит кодового слова.