Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_dm.docx
Скачиваний:
315
Добавлен:
16.02.2016
Размер:
1.03 Mб
Скачать

31. Расстояние Хемминга.

На множестве двоичных слов длины m расстоянием d(a,b) между словами a и b называют число несовпадающих позиций этих слов, например: расстояние между словами a = 01101 и b = 00111 равно 2.

Определенное таким образом понятие называется расстоянием Хемминга.

Оно удовлетворяет следующим аксиомам расстояний:

1) d(a,b)   0 и d(a,b)=0 тогда и только тогда, когда a  = b;

2) d(a,b) = d(b,a) ;

3) d(a,b) + d(b,c)   d(a,c)  (неравенство треугольника).

Весом w(a) слова a называют число единиц среди его координат. Тогда расстояние между словами a и b есть вес их суммы a b : d(a,b)=w(a b ) , где символом  обозначена операция покоординатного сложения по модулю 2. Интуитивно понятно, что код тем лучше приспособлен к обнаружению и исправлению ошибок, чем больше различаются кодовые слова. Понятие расстояния Хемминга позволяет это уточнить.

Теорема Для того, чтобы код позволял обнаруживать ошибки в k (или менее) позициях, необходимо и достаточно, чтобы наименьшее расстояние между кодовыми словами было    k + 1.

Доказательство этой теоремы аналогично доказательству следующего утверждения.

Теорема. Для того, чтобы код позволял исправлять все ошибки в k (или менее) позициях, необходимо и достаточно, чтобы наименьшее расстояние между кодовыми словами было    2k + 1.

32. Теорема о корректирующей способности кодов.

Коды, в которых возможно автоматическое исправление ошибок, называются самокорректирующимися. Для построения самокорректирующегося кода, рассчитанного на исправление одиночных ошибок, одного контрольного разряда недостаточно. Как видно из дальнейшего, количество контрольных разрядов k должно быть выбрано так, чтобы удовлетворялось неравенство 2k≥k+m+1или k≥log2(k+m+1), где m — количество основных двоичных разрядов кодового слова. В настоящее время наибольший интерес представляют двоичные блочные корректирующие коды. При использовании таких кодов информация передаётся в виде блоков одинаковой длины и каждый блок кодируется и декодируется независимо друг от друга. Почти во всех блочных кодах символы можно разделить на информационные и проверочные.

Основными характеристиками самокорректирующихся кодов являются:

1. Число разрешенных и запрещенных комбинаций. Если n - число символов в блоке, r - число проверочных символов в блоке, k - число информационных символов, то 2n - число возможных кодовых комбинаций, 2k - число разрешенных кодовых комбинаций, 2n−2k - число запрещенных комбинаций.

2. Избыточность кода. Величину rn называют избыточностью корректирующего кода.

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

4. Число обнаруживаемых и исправляемых ошибок. Если g - количество ошибок, которое код способен исправить, то необходимо и достаточно, чтобы d≥2g+1

5. Корректирующие возможности кодов.

33. Матричное кодирование. Групповые коды.

При явном задании схемы кодирования в (m, n)-коде следует указать 2m кодовых слов, что весьма неэффективно.

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

Ранее каждая схема кодирования описывалась таблицами, задающими кодовое слово длины n для каждого исходного слова длины m. Для блоков большой длины этот способ требует большого объема памяти и поэтому непрактичен. Например, для (16, 33)-кода потребуется 33 * 216 = 2 162 688 бит.

Гораздо меньшего объема памяти требует матричное кодирование. Пусть E матрица размерности m × n, состоящая из элементов eij, где i — это номер строки, а j — номер столбца. Каждый из элементов матрицы eij может быть либо 0, либо 1. Кодирование реализуется операцией b = аЕ или где кодовые слова рассматриваются как векторы, т.е как матрицы-строки  размера 1 × n.

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

Матричные коды называют также линейными кодами. Для линейных (n − r, n)-кодов с минимальным расстоянием Хэмминга d существует нижняя граница Плоткина (Plotkin) для минимального количества контрольных разрядов r  при n³ 2d − 1,

Двоичный (m, n)-код называется групповым, если его кодовые слова образуют группу.

Заметим, что множество всех двоичных слов длины m образует коммутативную группу с операцией покоординатного сложения по модулю 2, в которой выполняется соотношение a a. Следовательно, множество слов-сообщений a длины m есть коммутативная группа.

Блочный код называется групповым, если его кодовые слова образуют группу.

Если код является групповым, то наименьшее расстояние между двумя кодовыми словами равно наименьшему весу ненулевого слова.

Это следует из соотношения d(bi, bj) = w(bi bj).

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

Такие строки ошибок переводят одно кодовое слово в другое.

Следовательно, вероятность того, что ошибка останется необнаруженной, равна сумме вероятностей всех строк ошибок, равных кодовым словам.

Множество всех двоичных слов a = a1 ... am длины mобразует абелеву (коммутативную) группу относительно поразрядного сложения.

Пусть E — кодирующая m × n-матрица, у которой есть m ×m-подматрица с отличным от нуля определителем, например, единичная. Тогда отображение a → a Eпереводит группу всех двоичных слов длины m в группу кодовых слов длины n.

Предположим, что Тогда для получаем

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

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

Групповые коды удобно задавать при помощи матриц, размерность которых определяется параметрами k и n. Число строк равно k, а число столбцов равно n = k+m.

Коды, порождаемые этими матрицами, называются (n, k)-кодами, а соответствующие им матрицы порождающими (образующими, производящими). 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]