Код Хемминга. Кодирование числовой информации

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

Одним из вариантов проверки информационного потока на наличие ошибок, и даже их исправления, является кодирование числовой информации. Существует множество кодов и способов, используемых при работе с различными данными. Так называемый код Хемминга является классическим образцом, который стал отправной точкой для создания более сложных и изощрённых способов поиска и устранения возникающих в ходе передачи данных ошибок.

История появления кода начинается в средине 1940-х годов. В это время Ричард Хэмминг осваивал счётную машину Bell Model V, работая в именитых Bell Labs. Тогда это был ультрасовременный механизм, использующий электромеханический принцип действия. В конструкции машинки использовались релейные блоки. Их использование не давало существенного выигрыша в скорости. На осуществление одного оборота требовалось несколько секунд. Ввод данных происходил по средствам перфокарт, и ошибки в процессе их чтения были не редкостью. В будние дни для обнаружения и исправления найденных ошибок использовались специальные коды. Машина информировала оператора свечением лампочек, тот в свою очередь исправлял ошибку и заново запускал процесс вычисления. А вот в выходные дни процесс происходил по другим правилам. Обнаружив ошибку, машина автоматически прекращала выполнение первой программы и переходила к выполнению другой.

Так как Хэммингу очень часто приходилось работать по выходным дням, его очень раздражало подобное поведение вычислительной машины, ведь ему приходилось каждый раз перезагружать программу над которой он работал, и всему виной была ненадежность перфокарт. Несколько лет ему пришлось потратить на построение максимально эффективных алгоритмов по исправлению ошибок. В результате к 1950 году ему удалось найти и обнародовать оптимальный способ решения данной проблемы, сейчас он известен всему миру как код Хемминга.

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

У систематических кодов есть особенность, проверочные символы являются результатом линейных операций над символами информации. При этом в любой разрешенной кодовой комбинации присутствует возможность получения результата из линейных операций, производимых над набором независимых линейно кодовых комбинаций.

Код Хемминга представляет собой самоконтролирующий код. Такие коды позволяют обнаруживать ошибки автоматически в процессе передачи данных. Чтобы их построить, необходимо лишь приписать до каждого слова один контрольный (добавочный) двоичный разряд. Цифра выбирается с таким расчётом, чтобы в общем количестве единиц при изображении числа было, по условию, четным.

Если возникает одиночная ошибка, то она изменит четность в общем количестве единиц.

Коды, приводящие к исправлению ошибок в автоматическом режиме, называют самокорректирующимися. Для построения подобного кода уже недостаточно одного контролирующего разряда. Самый большой интерес являют собой двоичные коды блочные, являющиеся корректирующими.

Подводя итог, можно сделать вывод о том, что код Хемминга использует принцип проверки на четность, где исследуется число единичных символов.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.