Авторизация


...

Кто на сайте?

Сейчас 106 гостей и один зарегистрированный пользователь на сайте

  • thamohmedsaman

Статистика

-Посетители : 28065
-Материалы : 210

Пользователь сайта продает...

  MB913 C-01

Пользователь сайта покупает...

Помехоустойчивое кодирование на примере кода Хэмминга

Автор: Иван Шевченко (R1ZK) Просмотров: 3237

 

Обычно код Хэмминга характеризуется двумя целыми числами, например, (11,7) используемый при передаче 7-битных ASCII-кодов. Такая запись говорит о том, что при передаче 7-битного кода используется 4 контрольных бита (7+4=11). При этом предполагается, что имела место ошибка в одном бите и что ошибка в двух или более битах существенно менее вероятна. С учетом этого исправление ошибки осуществляется с определенной вероятностью. Я буду привязываться не к семи, а к восьми битам полезной информации. В этом случае 4-х бит на контрольную сумму достаточно с лихвой, т.к. с помощью четырёх бит можно адресоваться к 16 бит, а в приведенном ниже примере применяется только 12 (8+4=12).

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

Попытаюсь объяснить суть кодирования… Четыре контрольных бита представляют собой контрольную сумму ненулевых битов кодируемого числа и должны занимать в байте позиции, определяемые целой степенью 2 (8, 4, 2, 1). К примеру: в байте 8ххх4х21 цифрами указаны эти позиции. Для преобразования необходимо старший полубайт числа перенести в младший полубайт дополнительного регистра, т.к. позиции 3, 5-7 займёт младший полубайт числа, а позиции 8, 4, 2, 1 займут биты контрольной суммы. Если при приёме один какой-либо бит был принят неправильно, то в контрольной сумме ненулевых битов будет номер позиции бита ошибки, который необходимо проинвертировать. Если ошибка произойдет при передаче более чем одного бита, код Хэмминга при данной избыточности окажется бесполезен.

 

Ниже приведена программа под PIC18F252. В одной программе, для примера, реализован как кодер, так и декодер. Пример программы можно скачать здесь.

Все вопросы на форум.

Случайные статьи....

Prev Next

Быстрые регистры стека.

31-05-2011 Super User

 При рассмотрении прерываний в микроконтроллерах 18 серии мы упоминали о  том, что при помощи команды RETFIE FAST можно восстановить  значения регистров  W, STATUS и BSR . Делается это при помощи быстрых регистров стека, в которые записываются значение регистров при выходе...

Индикатор сети бензоагрегата -электростанции.

03-11-2013 Александр Милевский

Индикатор сети бензоагрегата -электростанции.

Индикатор сети был сделан по просьбе знакомого, проживающего в сельской местности. Частые отключения электричества  до суток,  вынудили его купить бензоагрегат - электростанцию. Все как будто хорошо,  нагрузки работают, но не работает главная нагрузка -электронный газовый котел, что в зимнее время доставляет...

GSM - сигнализация

18-03-2012 Владимир

GSM - сигнализация

  Добрый день!  Представляю вам свою разработку – GSM сигнализацию. Кому-то, наверное, интересно, что послужило мотивацией для создания этого проекта? Все просто, потребность друга в сигнализации для охраны своего офиса, которая будет дешевле других аналогичных устройств и весьма функциональна, а главное -...

Среда программирования.

22-04-2012 Super User

Для написания наших программ  нам понадобится установить на наш компьютер  программное обеспечение. Для PIC микроконтроллеров существует интегрированная  среда разработки MPLAB (IDE) фирмы Microchip Technology Incorporated. MPLAB позволяет писать программы в встроенном текстовом редакторе, ассемблировать и компилировать исходный текст, отлаживать и оптимизировать...


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru