
- •Работа №1 "Исследование помехозащищенного кодирования. Основные понятия помехозащищённого кодирования"
- •1. Введение в помехозащищенное кодирование
- •2. Помехозашищённые свойства кода
- •3. Некоторые понятия из теории кодов
- •Работа № 2 "исследование помехозащищённого кодирования. Основы обнаруживающего и корректирующего помехозащищённого кодирования"
- •1. Принцип работы обнаруживающего кодирования
- •2. Взаимосвязь минимального кодового расстояния и кратности обнаруживаемой ошибки
- •3. Принцип работы корректирующего кодирования
- •4. Взаимосвязь минимального кодового расстояния и кратности корректируемой ошибки
- •Задания
- •Работа № 3 "исследование помехозащищённого кодирования. Разделённые и неразделённые помехозащищённые коды"
- •1. Понятие о разделённых и неразделённых кодах
- •Для разделённого кода, справедливо:
- •2. Длина защищенной кодовой комбинации кода
- •3. Сравнение разделенных и неразделенных кодов
- •3.1 Преимущества неразделенных кодов:
- •3.2 Преимущества разделённых кодов:
- •3.3 Область применения кодов:
- •Задания
- •Работа № 4 « исследование помехозащищённого кодирования. Алгоритм контроля чётности» Цель работы
- •1. Введение
- •2. Идея алгоритма
- •3. Алгоритм передатчика
- •4. Алгоритм приемника
- •5. Результат работы алгоритма
- •Работа № 5 « исследование помехозащищённого кодирования. Коды хемминга» Цель работы
- •1. Введение
- •2. Идея алгоритма
- •3. Алгоритм передатчика
- •4. Алгоритм приемника
- •4. Анализируем контрольное число Хэмминга, и в зависимости от результатов анализа выполняем одно из двух :
- •5. Результаты работы алгоритма
- •Работа № 6 « исследование помехозащищённого кодирования. Модифицированный алгоритм Хэмминга»
- •1. Введение
- •2. Идея алгоритма
- •3. Алгоритм кодирования
- •4. Алгоритм декодирования
- •5. Результат работы алгоритма
- •Задания
2. Помехозашищённые свойства кода
Возможности помехозащищённых кодов не беспредельны. При искажении слишком большого числа бит кодовой комбинации (превышающем так называемые "помехозащищённые свойства" помехозащищённого кода), декодер не срабатывает должным образом, оказывается не в состоянии корректно обнаружить и исправить возникшие при передаче ошибки.
Степень искажения данных при передаче характеризуется числовым параметром:
Кратность ошибки (k) - число разрядов кодовой комбинации, исказившихся в процессе передаче данной кодовой комбинации.
Помехозащищённые свойства, любого из алгоритмов помехазащищенного кодирования, характеризуются двумя числовыми параметрами:
Максимальной кратностью обнаруживаемой ошибки (kо) – то максимальное значение кратности ошибки k при которой данный алгоритм ещё способен гарантировать обнаружение факта наличия ошибки независимо от того, какие именно разряды в комбинации искажены.
Таким образом: при возникновении ошибки кратностью k < kо - ошибка будет гарантировано обнаружена, при k > kо - данным алгоритмом обнаружение ошибки не гарантировано.
Максимальной кратностью корректируемой ошибки (kк) – то максимальное значение кратности ошибки k при которой данный алгоритм ещё способен гарантировать исправление (коррекцию) ошибки независимо от того, какие именно разряды в комбинации искажены.
При возникновении ошибки кратностью k < kк - ошибка будет откорректирована, при k > kк - коррекция ошибки не гарантирована, в зависимости от того в каких именно разрядах произошла ошибка, результат работы алгоритма декодирования может быть разным, и непредсказуем. А именно: декодер, возможно – не заметит факт наличия ошибок, возможно – заметит, но пытаясь откорректировать ошибку неправильно определит какие именно разряды искажены.
Таким образом, имеем:
1) Для кодов не имеющих помехозащищённых свойств, справедливо: kо = 0, kк = 0
2) Для обнаруживающих помехозащищённых кодов справедливо: kо > 0, kк = 0
3) Для корректирующих помехозащищённых кодов справедливо: : kо > 0, kк > 0, kо = kк (при кратности ошибки k < kк ошибка исправляется корректно, при большей кратности ошибки результат работы декодера непредсказуем)
4) Для обнаруживающее-корректирующих помехозащищённых кодов справедливо: kо > 0, kк > 0, kо > kк (при кратности ошибки k < kк ошибка корректируется, при кратности ошибки большей kк но ещё не превышающей kо ошибка - будет обнаружена, но декодер "заметит" что кратность ошибки слишком высока для коррекции и откажется от попытки коррекции (вместо этого передатчику будет передан "запрос на повторную передачу данных", т. е. просьба повторить передачу искажённые данные заново), и только если k > kо - результат работы декодера окажется непредсказуемым (см. выше).
3. Некоторые понятия из теории кодов
Для того чтобы не только понять, для чего нужны помехозащищённые коды, но и понять как они работают, нам потребуется узнать некоторые, возможно новые для вас, понятия теории кодирования информации. Прежде всего такие важные для помехозащищённого кодирования понятия как "кодовое расстояние" и "минимальное кодовое расстояние".
Кодовое расстояние (dij) – вычисляется между кодами одинаковой длинны, и равно числу разрядов в которых эти два кода отличаются.
Пример:
Пусть кодовые комбинации К(1) = 00110011, К(2) = 00111100
Тогда кодовое расстояние: d12 = 4
Обратим внимание: чтобы при искажении один код K(i), превратился в другой K(j), необходимо чтобы были искажены никак не менее чем dij разрядов.
Минимальное кодовое расстояние (dmin) – вычисляется в группе из множества кодов одинаковой длинны, и равно минимальному из кодовых расстояний взятых между двумя произвольными кодовыми комбинациями из группы.
Пример:
Пусть кодовые комбинации К(1) = 0000, К(2) = 1111, К(3) = 0001
Тогда:
Кодовые расстояния: d12 = 4, d13 = 1, d23 = 3
Минимальное кодовое расстояние: dmin = 1
Обратим внимание: чтобы при искажении любого кода из группы он превратился в другой код из группы, необходимо чтобы были искажены не менее dmin разрядов.
Далее познакомимся с такими, связанными между собой понятиями, как "алфавит источника сообщения", "число возможных состояний кода", а также понятиями "безъизбыточный код" и "избыточный код".
Сообщение строятся с использованием некого набора символов. Например, тексты состоит из последовательности символов, каждый из которых представляет один из символов алфавита (знаки препинания и прочие знаки, используемые в текстах также будем считать "элементами алфавита"). Число "элементов алфавита" в используемом алфавите, называют "размером алфавита источника сообщения", или, что менее точно но зато короче "алфавитом источника сообщения", алфавит источника сообщения принято обозначать буквой М (а именно М заглавной, большой). Например, если при составлении текста на русском сообщения использовать исключительно только прописные символы кириллицы, тогда M = 33. Сообщения могут быть не только текстовыми, но, какова бы не была информация, сообщения строятся из какого-то ограниченного набора символов, буквенных ли, числовых ли (каждое число тоже можно рассматривать как символ), каких других, число используемых символов может быть очень большим, но в любом случае это число (М – "алфавит источника сообщения") ограничено.
Как известно в ЭВМ информация храниться не в виде символов, в виде двоичных чисел (или по иному это называется в виде "двоичных кодов"). Двоичные коды заменяют символы, замена производится в соответствии с принятой "кодовой таблицей". В соответствии с таблицей каждому элементу алфавита ставится в соответствие свой "двоичный код". "Длинной двоичного кода" называется число двоичных бит, составляющих код. Длину кода будем обозначать буквой n (а именно n малой, прописной). От длинны кода зависит число состояний, которое может принимать код, оно же "число возможных состояний кода", его принято обозначать буквой N (а именно N большой, заглавной). Для двоичного кода длинны n, число возможных кодовых комбинаций равно N=2n. Обычно длинна всех кодов составляющих сообщение, используемых при кодировании сообщения – одинакова. Пусть, например, нам нужно закодировать в двоичные коды текст с алфавитом источника сообщения М=32. В этом случае, двоичные коды какой длинны мы можем использовать при кодировании? Ответ – коды длинной не менее 5 бит (25 = 32). Меньшего числа бит просто не хватит, что бы каждому символу алфавита поставить в соответствие своё, уникальное двоичное число (двоичный код), а вот пятибитовые коды, в данном случае, будут как бы "как раз". По науке такое кодирование называют "безъизбыточным кодированием" (или "безъизбыточным кодом"), для такого кодирования характерно M=N. Для каждого символа свой код, никаких "лишних" кодов, что не используются для кодирования символов – нет, быть не может. Далеко не всегда используемое кодирование является "безъизбыточным". Например в нашем случае (М=32) при двоичном кодировании также могут быть использованы коды длиной n более 5, например шестиразрядный (для него N=64), семиразрядный (N=128) и так далее. Такое кодирование (когда используются коды с N>M) называют "избыточным кодированием", или "избыточным кодом".
Вообще говоря, избыточное кодирование имеет тот недостаток что закодированное сообщение получается менее компактным, более длинным чем могло бы быть при безъизбыточном кодировании, но иногда избыточное кодирование неизбежно (что, например, делать если М=35?), а иногда даже и полезно. Например, именно специальным (и правильным, грамотным) образом организованное избыточное кодирование, позволяет создавать "помехозащищённые коды"
Задания
1) Пусть используется помехозащищенный код с характеристиками kо = 3, kк = 2. При передаче информации происходит ошибка кратностью а) k = 1; б) k = 3; в) k = 8; г) k = 4; д) k = 2. Определить результат применения данного кодирования в каждом из случаев.
2) Пусть кодовые комбинации образуют группу из следующих комбинаций: К(1) = 00001111, К(2) = 11110000, К(3) = 11111111, К(4) = 00000011.
Определить минимальное кодовое расстояние между кодами группы.
3) Пусть минимальное кодовое расстояние в группе кодов равно dmin = 8.
Сколько ошибок можно внести в любую из кодовых комбинаций из этой группы, чтобы можно было гарантировать, что она не превратится в какую либо другую комбинацию из этой же группы?
4) Подобрать три кодовые комбинации, минимальное кодовое расстояние между которыми, было бы : а) dмин = 2, б) dмин = 3, в) dмин = 4, г) dмин = 5.