Блочный код для исправления ошибок - это код блока. Код назван в честь Ричарда Хамминга, который разработал его в 1950-х годах. В то время Hamming работал с машинами, которые имели реле и использовали перфокарты для считывания данных. Поскольку перфокарты использовались в больших количествах, они часто содержали ошибки, которые должны были исправляться сотрудниками.
Коды хаммеров используются для цифровой обработки сигналов и телекоммуникаций. Коды помех генерируются в соответствии с определенными правилами. В кодах помех используется несколько битов четности. Бит четности говорит о том, является ли группа битов четной или нечетной. В кодах помех каждый бит данных покрывается несколькими битами четности. Это позволяет обнаружить ошибки, а в некоторых случаях и исправить их. В коде для удара используется избыточность. Если на одно кодовое слово приходится три бита четности, то длина кодового слова должна составлять 7 ( 2 k - 1 {\displaystyle 2^{k}-1} , для k - количество битов четности). Таким образом, в примере на одно кодовое слово остается 4 бита пользовательских данных. Обычно это записывается как (N,n), где первое число - общая длина кодового слова, а второе - количество бит для пользовательских данных. Пример выше (7,4).
Кратчайший код Hamming (3,1), для одного бита данных используются 2 бита четности. Этот код имеет два действительных значения 000 и 111 - коды 001, 010 и 100 являются ошибками передачи и присваиваются действительному кодовому слову 000. Остальные возможности 011,101 и 110 будут заменены на '111.