- •Классификация кодов, контролирующих ошибки.
- •Классификация помехоустойчивых кодов.
- •Двоичные коды
- •Блоковые
- •Непрерывные (рекуррентные)
- •1Ые ошибки Хеммингом,
- •Основные понятия и характеристики (блоковых).
- •1) Для кодов обнаруживающие ошибки необходимо, чтобы все ошибки, действующие в канале (кратностью t) обеспечивали переход разрешенной кодовой комбинации в запрещенную.
- •Гипотезы:
1) Для кодов обнаруживающие ошибки необходимо, чтобы все ошибки, действующие в канале (кратностью t) обеспечивали переход разрешенной кодовой комбинации в запрещенную.
а) Пусть требуется построить код ,обнаруживающий все ошибки кратностью t и ниже.Для этого из множества возможных комбинаций N0 необходимо выбрать N1 – разрешенных комбинаций, так, чтобы под действием ошибки разрешенная комбинация не переходила бы в разрешенную. Но поскольку вес вектора e: (e) t, это значит, что d(Ej, Ej + ei) t. Для этого необходимо, чтобы Ei, Ej отличалиь более, чем в t разрядах.
Графическая интерпретация.
Ei Ei
Ẽ i+1(t) = Ẽ i(1)
t+1
Ẽ i+1(1) = Ẽ i(t)
Ei+1 Ei+1
Ẽ i+1(1)
t+1
Ẽ i+1(t)
Ei+2 Ei+2
Следствие : чтобы разрешенная кодовая комбинация в сумме по mod 2 с вектором ошибки не давала никакой другой разрешенной комбинации, необходимо выполнение следующего условия:
Dmin t + 1
2) Для кодов, исправляющих ошибки необходимо, чтобы ошибки обеспечивали переход каждой решенной комбинации в переход в заранее выделенное подмножество запрещенных кодовых комбинаций, сформированное вокруг данной разрешенной комбинации:
Ei Ei
Ei+1 2t+1
Ẽ i+1(1)
Ei+1
Ẽ i+1(t) t
Ẽ i+2(t) 2t+1
Ei+2 Ei+2
По аналогии с кодами, обнаруживающими ошибки: dmin 2t + 1. Т.е. разрешенные кодовые комбинации должны различаться более, чем в 2t разрядах.
3) Самостоятельно: определить dmin для кода, который обнаруживает ошибки кратности t1 и исправляет ошибки кратности t2 (естественно, что t1 > t2).
Обозначение блочных кодов.
а) Код (n, k), например: (15, 11);
б) Код (n, k, dmin), например: (15, 11, 3);
Рассмотрим последовательность выбора параметров кода (n, r) для заданной корректирующей способности (t – кратные исправленные ошибки).
Задача: а) объем источника сообщений N – число различных сообщений;
б) число векторов ошибок, которые необходимо исправить Ne,
Определить: k, r, n.
1) Количество информационных символов:
k = [log2N];
2) Полное число ошибочных комбинаций, которые необходимо исправить: Ne2k.
По определению – число запрещенных комбинаций: N2 = N0 – N1 = 2n – 2k Ne2k
3) Отсюда необходимо условие на исправление всех ошибок:
2k(Ne + 1) 2n
Отсюда: 2n-k=r Ne + 1
Следствие: для построения надежного кода необходима полная информация
(в виде Ne) о всех ошибках, действующих в к.с.
Т.о. построение кода начинается со сбора информации об ошибках, действующих в
канале (статистическая обработка).
Т.о. для построения кода, исправляющего t ошибок необходимо одновременное
выполнение: dmin 2t + 1; 2r Ne + 1
Частные случаи:
а) t = 1; 2r n + 1 2r > n; dmin 3;
-
N
k
r
n
4
.
.
.
8
.
.
.
16
.
.
.
128
.
.
.
512
.
.
.
1024
2
.
.
.
3
.
.
.
4
.
.
.
7
.
.
.
9
.
.
.
10
3
.
.
.
3
.
.
.
3
.
.
.
4
.
.
.
4
.
.
.
4
5
.
.
.
6
.
.
.
7
.
.
.
11
.
.
.
13
.
.
.
14
t
б) t; 2r 1+ Cni 2r > n!/(t!(n - t)!);
i=1
dmin 2t + 1;
t
2r > n!/(i!(n -i)!) ;
i=1
Заключение.
Рассмотрели:
а) Общий подход к построению корректирующих блочных кодов;
б) Основные параметры кодов и соотношения между ними.
Переходим:
а) К рассмотрению конкретных алгоритмов построения кодов по заданным
характеристикам: k, r, dmin.
б) При этом упор будет сделан:
- алгоритмы построения корректирующих кодов;
- их сруктурную реализацию.
Рассмотрим проблему поиска методов построения кодов с заданными параметрами (n, k) и корректирующими свойствами.
Машинный поиск по множеству всех Построение теории кодов.
возможных кодов.
а) Определим число возможных кодов для
заданных n и k: имеется 2k слов каждое длинной n,
т.е. имеем двоичные последовательности: R = n2k;
б) Все коды необходимо («машинно») проверить и
выбрать с требуемыми характеристиками.
Пример: для весьма умеренного (по современным
понятиям) (n, k) = (40, 20) имеем число кодов ~ 10
10.000.000 = 107;
Простейшие блоковые коды.
1. Простые коды с проверкой на четность.
Коды с низкой избыточностью и плохими корректирующими характеристиками:
(k +1, k, 2) – коды с dmin = 2 – исправлять не могут, а могут обнаруживать
все одиночные ошибки (все нечетные ошибки, т.е. в общем
случае ~ 50% всевозможных ошибок).
10000 10000.1
Пример: ИРПС – для защиты передаваемых байтов.
2. Простые коды с повторением.
Коды с высокой избыточностью и хорошими корректирующими возможностями. Один информационный символ повторяется n (n – обычно нечетно) раз
0 00000
1 11111
(n, 1, n) dmin, т.е. данный код может исправить ~ код Рида-Маклера (т.н. код с голосованием), т.е. декодирование осуществлялось с помощью мажоритарного метода, был использован при передаче фотографий Марса космическим кораблем «Маритер» в 1972 г. В н.в. для этой цели разработаны более эффективные коды.
-
Инверсные коды.
В основу построения инверсного кода положен метод повторения исходной комбинации, если она содержит четное число «1» (w – четное), и выбор в качестве проверочных разрядов – инверсии исходной комбинации, если последняя содержит нечетное число «1»
Пример: а.) 0110011 0110011
четное
б.) 0110001 1001110
н/четные
код (2к, к)
а.) Алгоритм декодирования:
-А = информационной части;
А, - если А содержит четное число «1»;
В =
А,- если А содержит нечетное число «1»;
-
А = В – нет ошибок;
А В – есть ошибки;
б.) Ввод операции инверсии (а не просто повторения) позволяет не только обнаруживать, но и при некоторых допущениях (Pодиночн.>Pмногократн. ошибок) исправлять одиночные ошибки.
Пример: передаваемая
комбинация
0111 1000 01111000 0101.1000
А В