
- •Работа №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. Результат работы алгоритма
- •Задания
Работа № 6 « исследование помехозащищённого кодирования. Модифицированный алгоритм Хэмминга»
Цель работы
Цель работы – изучение популярного и широко применяемого алгоритма разделённого кодирования: модифицированного алгоритма Хэмминга.
1. Введение
Модифицированный алгоритм Хэмминга (алгоритм М-Хэмминга) – простейший алгоритм обнаруживающее-корректирующего кодирования с параметрами dmin = 3, kк = 1, ko = 2
Число контрольных разрядов зависит от
числа информационных разрядов и
определяется:
2. Идея алгоритма
К разработке модифицированного алгоритма Хэнмэна подтолкнул серьёзный недостаток алгоритма Хэнмэна, упомянутый выше (смотрите предыдущую лабораторную работу, раздел "Результаты работы алгоритма".
Модифицированный алгоритм Хэмминга совмещает сильные стороны алгоритма Хэмминга и алгоритма контроля чётности. С одной стороны, позволяет откорректировать однократную ошибку (как и код Хэмминга), с другой стороны, при возникновении двукратной ошибки (а также ошибки любой чётной степени кратности) – обнаруживает ошибку передачи, замечает что она, в данном случае – многократная (и потому не может быть корректно исправлена), и позволяет отказаться от попытки коррекции (обречённой на неудачу) в пользу повторной передачи данных.
Механизм работы прост: если закодировать исходную комбинацию в код Хэмминга, а затем полученную защищённую комбинацию Хэмминга дополнительно закодировать (проконтролировать) ещё и по алгоритму контроля чётности, то при декодировании наличие дополнительного контроля по чётности, не всегда, но в ряде случаев – позволит декодеру заметить факт получения данных с многократной, некорректируемой ошибкой.
3. Алгоритм кодирования
1. Исходная комбинация I(x) кодируется по алгоритму Хэнмэна.
2. Полученная защищённая комбинация в коде Хэнмэна (обозначим Bx(x) ) дополнительно подвергается кодированию по алгоритму контроля чётности, контрольный разряд контроля чётности (как и обычно в алгоритме контроля чётности) дописывается к Bx(x) справа, в итоге получается защищённая комбинация в коде М-Хэнмэна (обозначим её Bmx(x).)
4. Алгоритм декодирования
При передаче по линии связи комбинация может быть искажена. Ту комбинацию, что получит декодер (возможно несущую искажения), обозначим Bmx'(x) – "искажённая защищённая комбинация М-Хэмминга".
Далее декодер выполняет:
1. Начинается первое декодирование, декодирование по алгоритму контроля чётности, всё производится точно так же, как это выполняется в алгоритме декодирования контроля чётности. То есть, напомним, сначала суммируем все разряды полученной по линии связи комбинации Bmx'(x) по модулю два, получаем "контрольное число контроля чётности, число х" (внимание, тут принято писать икс – прописное, малое). Фиксируем (запоминаем) этот результат.
2. Завершается декодирование по алгоритму контроля чётности. Отбрасываем контрольный разряд контроля чётности (крайний справа разряд комбинации Bmx'(x), при описании алгоритма М-Хэмминга его принято нумеровать n0). В результате получаем Bx'(x) – искажённую защищённую комбинацию Хэмминга.
3. Продолжаем декодирование, теперь декодируем Bx'(x), делаем это так, как то и положено делать при декодировании кодов Хэмминга, как рассматривалось выше, в предыдущей работе. То есть, напомним, для Bx'(x) сначала подсчитывается "контрольное число Хэмминга, число X" (внимание, тут принято писать икс – заглавное, большое). В этом месте приостанавливаем декодирование, что бы, в следующем пункте:
4. Сопоставляя X и x, делаем вывод о наличии ошибки, её кратности и возможности коррекции. Как делается этот вывод? Рассмотрим, в таблице, возможные варианты результатов подсчета, ранее подсчитанных контрольных чисел (контрольного числа контроля чётности х, и контрольного числа Хэмминга Х):
Возможные случаи |
X |
x |
вывод |
Случай 1 |
0 |
0 |
Оба алгоритма показали – ошибки нет, значит – ошибки нет. |
Случай 2 |
> 0 |
1 |
Раз X>0 – это значит ошибка есть. Такому выводу не противоречит и значение контрольного числа контроля чётности, x=1 показывает нам что ошибка есть, и что ошибка эта – чётной кратности (однократная, или трёхкратная, пятикратная…). Тут мы полагаем что ошибка эта таки однократная, и значит может быть исправлена. |
Случай 3 |
> 0 |
0 |
Раз X>0 ошибка есть. Но раз x=0 (раз алгоритм контроля чётности не смог её обнаружить), значит, эта ошибка – чётной кратности (контроль чётности, вспомним, не умеет обнаруживать именно ошибки чётной кратности). А это уже значит, что ошибка многократная, минимум двукратная, и алгоритмом Хэмминга определённо не корректируема. |
Случай 4 |
0 |
1 |
Такое сочетание значений х и Х, возможно только в одном случае – если ошибка в принятой комбинации была (контроль чётности обнаружил – значит была), но была она однократной, и не в каком другом разряде, а в контрольном разряде чётности х0 (а этот разряд перед декодированием по алгоритму Хэмминга был отброшен, и именно поэтому последующее декодирование по алгоритму Хэмминга этой ошибки и не обнаружило). |
5. Завершаем декодирование. Декодирование завершается различно, в зависимости от того, какой вывод о числе и местоположении ошибки был сделан в предыдущем пункте.
Вывод сделанный по результату сопоставления X и x. |
Завершение декодирования |
Ошибки нет (Случай 1) |
Завершаем декодирование по алгоритму декодирования кодов Хэмминга. Этап исправления ошибки при этом, естественно – будет пропущен, и после отбрасывания контрольных разрядов получаем исходный код. |
Однократная (корректируемая) ошибка (Случай 2) |
Завершаем декодирование по алгоритму декодирования кодов Хэмминга, после коррекции ошибочного разряда и отбрасывания контрольных разрядов получаем исходный код. |
Многократная (некорректируемая) ошибка (Случай 3) |
Отказываемся от дальнейшей попытки коррекции. Вместо попытки коррекции, декодер формирует специальное сообщение для источника (передатчика) данных, запрашивающее повторную передачу данных. |
Однократная ошибка в разряде х0 (Случай 4) |
Этот случай обрабатывается точно так же, как и случай 1 (отсутствие ошибки). Почему? Потому как контрольный разряд контроля чётности (в каком произошла ошибка) не нес необходимых приёмнику для дальнейшей обработки данных, свою "контрольную" службу он уже отслужил, и уже был отброшен. |