Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Методические указания к выполнению расчетно-графической работы №2
Код Хэмминга позволяет обеспечить самоконтроль и самокоррекцию кода путем кодирования какого-либо информационного сообщения определённым образом и после передачи осуществить определение единичной ошибки в этом сообщении, а также восстановить это сообщение. Для исправления одиночной ошибки бинарного кода, который состоит из nи символов, несущих информацию, и nк контрольных (избыточных) символов, расчет количества символов в коде производится по формуле:
n = nи+ nк . (2.1)
При передаче кода может быть искажен любой информационный символ, либо ни один из символов не будет искажен, т. е. если всего n символов, то с помощью контрольных символов, входящих в это число, должно быть создано такое число комбинаций 2nк, чтобы свободно различить n+1 вариант.Поэтому nк должно удовлетворять следующему неравенству:
2nк ≥ n + 1. (2.2)
Тогда, согласно (2.2): 2n = 2nк+nи = 2nк ⋅ 2nи. (2.3)
Используя (2.2), запишем:
2n ≥ (n + 1) ⋅ 2nи, (2.4)
где 2n – полное число комбинаций кода. Отсюда число информационных символов кода, обнаруживающего и корректирующего одиночную ошибку:
2nи ≤ 2n /(n + 1). (2.5)
Для вычисления основных параметров кода Хэмминга задается количество либо информационных символов, либо информационных комбинаций N = 2nи. Номера контрольных символов удобно выбирать по закону 2i, где i = 0, 1, 2, 3,... – натуральный ряд чисел. Номера контрольных символов в этом случае равны 1, 2, 4, 8, 16, 32... Затем определяют значения контрольных коэффициентов (0 или 1), руководствуясь следующим правилом: сумма единиц на проверочных позициях должна быть четной. Если эта сумма четна – значение контрольного коэффициента нуль, в противном случае – единица. Код Хэмминга состоит из двух частей. Первая часть кодирует исходное сообщение, вставляя в него в определённых местах контрольные биты. Вторая часть получает входящее сообщение и заново вычисляет контрольные биты (по тому же алгоритму, что и первая часть). Если все вновь вычисленные контрольные биты совпадают с полученными, то сообщение получено без ошибок. В противном случае, выводится сообщение об ошибке и при возможности ошибка исправляется.
2.2.1 Подготовка сообщения. Пусть необходимо закодировать и передать без ошибок сообщение «habr». Для кодирования данного сообщения при помощи Кода Хэмминга необходимо представить его в бинарном виде. Для этого используем таблицу ASCII. На данном этапе необходимо определиться с длиной информационного слова, то есть длиной строки из нулей и единиц. Пусть длина нашего слова будет равна 16. Таким образом, нам необходимо разделить наше исходное сообщение («habr») на блоки по 16 бит (таблица 2.4), которые будут потом кодироваться отдельно друг от друга. Так как один символ занимает в памяти 8 бит (таблица 2.2), то в одно кодируемое слово помещается ровно два ASCII символа (таблица 2.3).
Таблица 2.2 – Бинарные строки исходного сообщения
Длину сообщения можно брать равной 8, 16, 32 бит. Таблица 2.3 – Таблица символов ASCII
Продолжение таблицы 2.3
Используя таблицу 2.3, закодируем исходное сообщение с помощью кода ASCII и получим две информационные последовательности, состояцих из 16 бит каждая (таблица 2.4).
Таблица 2.4 – Два информационных слова исходного сообщения
2.2.2 Кодирование сообщения. Процесс кодирования разделен на две части сообщения, каждое из которых кодируется отдельно. Для кодирования каждого информационного слова необходимо добавить контрольные биты, которые являются позициями в строго определенных местах последовательности, т.е номера позиций, равных степени двойки. Для полуслова в 8 бит позициями контрольных бит будут служить 1,2,4,8 и контрольных бит будет 4. Для информационного слова в 16 бит позициями контрольных бит будут служить 1,2,4,8,16 и контрольных бит будет 5. Для двойного слова в 32 бита позициями контрольных бит будут служить 1,2,4,8,16,32 и контрольных бит будет 6. В примере используется деление на слова по 16 бит, они выделены красным в таблице 2.5. Длина всего сообщения увеличилась на 5 бит. До вычисления контрольных бит им присваивается значение «0».
Таблица 2.5 – Добавление контрольных бит
2.2.3 Вычисление контрольных бит. Значение каждого контрольного бита зависит от значений информационных бит, которые они контролируют: контрольный бит с номером «N» контролирует все последующие «N» биты через каждые «N» бит, начиная с позиции «N». Составим таблицу 2.6 контрольных бит, в которой значением «Х» будут обозначены позиции контролируемых битов.
Таблица 2.6 – Таблица контролируемых битов
Для вычисления значения каждого контрольного бита необходимо посчитать количество контролируемых им единиц.
Если это число четное, то ставим «0», если нечетное - «1». Согласно таблице 2.6, составим последовательность контролируемых бит (таблица 2.7).
Таблица 2.7 – Вычисление контрольных бит
2.2.4 Декодирование сообщения и исправление ошибок. Пусть первая часть сообщения пришла с ошибкой в 11 бите (таблица 2.8). Таблица 2.8 – Ошибка в сообщении
Для нахождения и исправления ошибки необходимо заново рассчитать контрольные биты и сравнить их с вычисленными ранее битами. Для этого составим таблицу 2.9 по закодированной последовательности с ошибкой (таблица 2.8).
Таблица 2.9 – Таблица контролируемых битов
Получили последовательность контрольных бит уже декодированной последовательности с ошибкой (таблица 2.10).
Таблица 2.10 – Последовательность при декодировании сообщения
Проверяем соответствие контролируемых бит в таблице 2.11 с таблицей 2.6.
Таблица 2.11 – Таблица контролируемых битов после дешифровки и проверки битов
Исходя из сравнения таблиц 2.11 и 2.6 видно, что контролируемые биты под номерами 1,2,8 не совпадают. Сложив номера позиций неправильных контрольных бит 1+2+8 = 11, получим позицию ошибочного бита. Для декодирования сообщения, т.е получения исходного сообщения, необходимо инвертировать ошибочный бит и отбросить контрольные биты. Аналогично поступить со второй частью сообщения.
2.3 Контрольные вопросы 1 Объяснить методику построения кода Хемминга. 2 Что такое кодирование? 3 Что такое контрольный бит и как его определить? 4 Что такое помехоустойчивые коды? Для чего вводится избыточность? 5 Что такое блочные коды? 6 Как построить кодовые слова в коде Хэмминга? 7 Как определить общее число элементов кодовых комбинаций кодов Хэмминга для двоичных последовательностей? 8 Как определить количество контрольных бит в коде Хемминга? 9 Как исправить ошибку в коде Хемминга? 10 Сколько ошибок может исправлять код Хемминга?
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-01-08; просмотров: 133; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.91.252 (0.049 с.) |