Вычисление контрольных бит.




1. Теперь вычисляют значение каждого контрольного бита. Значение каждого контрольного бита зависит от значений информационных бит, но не от всех, а только от тех, которые этот контрольных бит контролирует. Для того, чтобы понять, за какие биты отвечает каждых контрольный бит необходимо понять очень простую закономерность: контрольный бит с номером N контролирует все последующие N бит через каждые N бит, начиная с позиции N.

                                           
                                          Ав
х   х   х   х   х   х   х   х   х   х   х  
  х х     х х     х х     х х     х х      
      х х х х         х х х х         х х  
              х х х х х х х х              
                              х х х х х х  

Здесь знаком «X» обозначены те биты, которые контролирует контрольный бит, номер которого справа. То есть, к примеру, бит номер 12 контролируется битами с номерами 4 и 8. Чтобы узнать какими битами контролируется бит с номером N надо просто разложить N по степеням двойки.

2. Для вычисления значение каждого контрольного бита берётся каждый контрольный бит и считается сколько среди контролируемых им битов единиц, получается некоторое целое число и, если оно чётное, то ставится ноль, если оно нечётное ставится единица. Или наоборот.

                                          Контрольные биты
                                           
х   х   х   х   х   х   х   х   х   х   х 0(четное)
  х х     х х     х х     х х     х х     0(четное)
      х х х х         х х х х         х х 1(нечетное)
              х х х х х х х х             0(четное)
                              х х х х х х 1(нечетное)

Следовательно «Ав» равно последовательности 00 1 1 000 0 0000101 1 00010

 

3. Вторая пара букв вычисляется аналогично

                                          Контрольные биты
                                          тД
х   х   х   х   х   х   х   х   х   х   х 0(четное)
  х х     х х     х х     х х     х х     0(четное)
      х х х х         х х х х         х х 1(нечетное)
              х х х х х х х х             0(четное)
                              х х х х х х 1(нечетное)

Следовательно «тД» равно последовательности 00 1 1 110 0 0010100 1 00100

4. Исходная последовательность: 10000000101000101110001010000100

После кодирования: 00 1 1 000 0 0000101 1 00010 00 1 1 110 0 0010100 1 00100

 

Порядок выполнения работы.

7. Взять данные для расчета согласно варианта задания в приложении.

8. Представить слово в бинарном виде с помощью кода ASCII.

9. Разделить исходное сообщение на блоки по 16 бит.

10. Вставить контрольные биты.

11. Вычислить контрольные биты.

12. Представить слово в виде исходной и закодированной последовательностей.

 

Контрольные вопросы:

1. Для чего нужно кодирование?

2. В чем отличие КХ от кодов Шенно-Фано и Хаффмана?

3. Какова длинна закодированного сообщения из 3-х слов по 40 бита?

4. В какие позиции вставляются контрольные биты в слове из 40 бит?

5. Как вычисляется значение контрольного бита?

 

Приложение.Варианты задания

Номер п\п Слово Номер п\п Слово
  РпОз   ЖеаВ
  ДЮаЫ   рПЕн
  ГтиЕ   ВсМА
  ЭдЛш   шЬрЕ
  ЖнЕА   эЕтГ
  ОРПм   ДпуЦ
  МцЫч   лРнЕ
  Тимс   ЧФвы
  НОПЩ   юЕшЗ
  ОуЦй   бСмУ
  ЭЪшс   рУНщ
  АВсЫ   ДмеН
  ФЫцл   БвгН
  ьнГр   иЕгР
  уАнИ   ВфКт

 


Практическая работа №8

Тема: Декодирование информации по алгоритму Хэмминга.

Цель: Научиться декодированию и исправление ошибки в тестовом слове по алгоритму Хэмминга.

Теоретические сведения

Исправлять ошибки труднее, чем их обнаруживать или предотвращать. Процедура коррекции ошибок предполагает два совмещенные процесса: обнаружение ошибки и определение места (идентификация сообщения и позиции в сообщении). После решения этих двух задач, исправление просто - надо инвертировать значение ошибочного бита. В наземных каналах связи, где вероятность ошибки невелика, обычно используется метод детектирования ошибок и повторной пересылки фрагмента, содержащего дефект. Для спутниковых каналов с типичными для них большими задержками системы коррекции ошибок становятся привлекательными. Здесь используют коды Хэмминга.

В данном примере используется длина информационного сообщения 16 бит, но длину можно взять любую.

Для каждого числа проверочных символов используется специальная маркировка вида (k,i), где k — количество символов в сообщении, i — количество информационных символов в сообщении. Например, существуют коды (7, 4), (15, 11), (31, 26).

Код (7,4) является минимально возможным кодом с достаточно большой избыточностью. Эффективность кода (k/n) растет с увеличением длины кода.

Избыточность кода — это количество проверочной информации в сообщении. Рассчитывается она по формуле: k/(i+k), где k — количество проверочных бит, i — количество информационных бит. Например, мы передаем 3 бита и к ним добавляем 1 проверочный бит — избыточность составит 1/(3+1) = 1/4 (25%).

Пример работы

Допустим, мы получили закодированное первой частью алгоритма сообщение, но оно пришло к нам с ошибкой. К примеру, мы получили такое «Ав» (11-ый бит передался неправильно):

10 1 1 000 0 00 1 0101 1 00010

 

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: