Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Помехоустойчивое кодирование.doc
Скачиваний:
93
Добавлен:
17.04.2013
Размер:
111.62 Кб
Скачать

1) Для кодов обнаруживающие ошибки необходимо, чтобы все ошибки, действующие в канале (кратностью  t) обеспечивали переход разрешенной кодовой комбинации в запрещенную.

а) Пусть требуется построить код ,обнаруживающий все ошибки кратностью t и ниже.Для этого из множества возможных комбинаций N0 необходимо выбрать N1 – разрешенных комбинаций, так, чтобы под действием ошибки разрешенная комбинация не переходила бы в разрешенную. Но поскольку вес вектора e: (e)  t, это значит, что d(Ej, Ej + e) t. Для этого необходимо, чтобы E, 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 = n2k;

б) Все коды необходимо («машинно») проверить и

выбрать с требуемыми характеристиками.

Пример: для весьма умеренного (по современным

понятиям) (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. Инверсные коды.

В основу построения инверсного кода положен метод повторения исходной комбинации, если она содержит четное число «1» (w – четное), и выбор в качестве проверочных разрядов – инверсии исходной комбинации, если последняя содержит нечетное число «1»

Пример: а.) 0110011 0110011

четное

б.) 0110001 1001110

н/четные

код (2к, к)

а.) Алгоритм декодирования:

-А = информационной части;

А, - если А содержит четное число «1»;

В =

А,- если А содержит нечетное число «1»;

  • А = В – нет ошибок;

А  В – есть ошибки;

б.) Ввод операции инверсии (а не просто повторения) позволяет не только обнаруживать, но и при некоторых допущениях (Pодиночн.>Pмногократн. ошибок) исправлять одиночные ошибки.

Пример: передаваемая

комбинация

0111 1000 01111000 0101.1000

А В

Соседние файлы в папке Лекции