Что такое код Хэмминга: история, работа и его применение

Попробуйте наш инструмент устранения неполадок





В цифровых системах передаваемые данные для коммуникация могут быть повреждены из-за внешнего шума и любых других физических сбоев. Если переданные данные не совпадают с заданными входными данными, это называется «ошибкой». Ошибки данных могут привести к удалению важных данных в цифровых системах. В цифровых системах данные будут передаваться в виде битов (0 и 1). Если изменить какой-либо бит, это может повлиять на производительность всей системы. Если бит «1» изменяется на бит «0» или наоборот, это называется битовой ошибкой. Они разные типы ошибок как одиночные битовые ошибки, множественные ошибки и пакетные ошибки. В этой статье мы обсуждаем исправление и обнаружение ошибок, а также код Хэмминга.

Что такое обнаружение и исправление ошибок?

При цифровой связи данные будут потеряны, если произойдет ошибка при передаче информации из одной системы / сети в другую систему / сеть. Итак, важно найти и исправить ошибки. Некоторая ошибка обнаружение и методы исправления используются для обнаружения и исправления ошибок для эффективного общения. Если использовать эти методы, то данные могут быть переданы с большей точностью.




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

Исправление ошибок - это исправление данных, передаваемых от передатчика к приемнику. Исправление ошибок может быть выполнено двух типов.



Обратное исправление ошибок

В этом типе исправления ошибок получатель просит отправителя повторно передать данные, если получатель обнаруживает ошибку.

Прямая коррекция ошибок

если данные, полученные приемником, обнаруживают ошибку, он выполняет коды исправления ошибок, чтобы исправить и восстановить данные автоматически.


Если имеется «m» количество битов данных и «r» количество избыточных битов, то комбинация информации будет 2r.

2r> = m + r + 1

Типы кодов обнаружения ошибок

Ошибки в полученных данных могут быть обнаружены с помощью 3 типов кодов обнаружения ошибок. Это проверка четности, циклический контроль избыточности (CRC) и продольный контроль избыточности.

Проверка четности

Избыточный бит, называемый битом четности, добавляется, чтобы сделать количество бит четным или нечетным в случае четности или нечетности. Получатель подсчитывает количество битов (1) в кадре, чтобы добавить бит четности. Это называется проверкой четности. Если количество единиц в кадре четное, то используется четность путем добавления бита «1» с нулевым значением. Точно так же количество единиц является нечетным, тогда используется нечетная четность путем добавления бита со значением «1».

Обнаружение ошибок

обнаружение ошибок

Следовательно, он используется, чтобы гарантировать, что кадр / дата, полученные приемником от источника, не повреждены. В этом типе обнаружения ошибок число единиц должно быть даже в полученном кадре. Это намного дешевле среди всех типов обнаружения ошибок.

Продольная проверка избыточности (LRC)

Если набор / блок битов организован, то можно использовать метод LRC для проверки бита четности в каждом кадре. Это помогает отправить набор битов четности вместе с исходными данными и проверяет избыточность.

Циклическая проверка избыточности

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

Циклическая проверка избыточности

циклическая проверка избыточности

Во время передачи фактических данных от отправителя он добавляет остаток в конец фактических данных. Комбинация фактических данных и остатка называется кодовым словом. Данные передаются в виде кодовых слов. В этом процессе, если данные повреждены, они будут отклонены получателем, в противном случае они будут приняты.

Что такое код Хэмминга?

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

Код Хэмминга

код Хэмминга

История кодов Хэмминга

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

Процесс кодирования сообщения с использованием кода Хэмминга

Процесс кодирования сообщения с использованием кода Хэмминга отправителем включает 3 этапа.

Шаг 1: Первый шаг - вычислить количество избыточных битов в сообщении.

  • Например, если сообщение содержит «n» количество битов и «p» количество избыточных битов добавлено к сообщению, то «np» указывает (n + p + 1) разные состояния.
  • Где (n + p) представляет местоположение ошибки в каждой битовой позиции
  • 1 (дополнительное состояние) означает отсутствие ошибки.
  • Поскольку «p» обозначает 2 ^ p (2p) состояния, которые равны (n + p + 1) состояниям.

Шаг 2: Поместите избыточные биты в точное / правильное положение

Биты 'p' вставляются в позиции битов, которые являются степенью 2, например 1, 2, 4, 8, 16 и т. д. Эти позиции битов обозначаются как p1 (позиция 1), p2 (позиция 2), p3 (позиция 4) и др.

Шаг 3: Рассчитайте значения избыточных битов

  • Здесь биты четности используются для вычисления значений избыточных битов.
  • Биты четности могут делать количество единиц в сообщении четным или нечетным.
  • Если общее количество единиц в сообщении четное, используется четность.
  • Если общее количество единиц в сообщении нечетное, используется нечетная четность.

Процесс расшифровки сообщения в коде Хэмминга

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

Шаг 1: Подсчитайте количество избыточных битов

Формула для кодирования сообщения с использованием избыточных битов:

2р ≥ п + р + 1

Шаг 2: исправить положения всех избыточных битов

«P» количество избыточных битов размещается в позициях битов степени 2, например 1,2,4,8,16,32 и т.

Шаг 3: проверка на четность (нечетная четность и четность)

Биты четности рассчитываются на основе количества единиц в битах данных и избыточных битах.

Например

Четность p1 будет 1, 3, 5, 7, 9, 11,…

Четность p2 будет 2, 3, 6, 7, 10, 11,…

Четность p3 будет 4-7, 12-15, 20-23,…

Преимущества кода Хэмминга

Главное преимущество использования кода Хэмминга - рентабельность, если поток данных содержит однобитовые ошибки.

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

Недостатки кода Хэмминга

  • Лучше всего только для исправления и обнаружения однобитовых ошибок. Если несколько битов ошибки, то может быть поврежден весь.
  • Алгоритм кода Хэмминга может разрешать только однобитовые ошибки.

Приложения кодов Хэмминга

Коды Хэмминга используются в

  • Вычисление
  • Телекоммуникации
  • Сжатие данных
  • Решение головоломок и турбо-коды
  • Спутники
  • Плазменный САМ
  • Экранированные провода
  • Модемы
  • Память компьютера
  • Открытые разъемы
  • Встроенные системы и процессор

FAQs

1). Может ли код Хэмминга обнаруживать 2-битные ошибки?

Коды Хэмминга могут обнаруживать и исправлять до 2-битных ошибок в потоке данных.

2). Как исправить код Хэмминга?

Коды Хэмминга помещаются в данные любой длины между фактическими данными и избыточными битами. Эти коды представляют собой места с минимальным расстоянием 3 бита.

3). Что такое код четности?

Код четности или бит четности добавляет бит к полученному кадру (данные содержат единицы и нули), чтобы общее количество бит (единиц) стало четным или нечетным.

4). Каково расстояние Хэмминга между данными?

Расстояние Хэмминга между двумя разными потоками данных одинаковой длины не превышает единиц.

Расстояние Хэмминга между двумя строками данных одинаковой длины можно рассчитать с помощью операции XOR.

Например, a = 11011001

б = 10011101

Расстояние Хэмминга можно рассчитать как,

11011001 ⊕ 10011101 = 01000100 (количество 1 бит равно 2)

Расстояние Хэмминга указывает количество единиц в результирующем потоке данных.

Итак, d (11011001, 10011101) = 2

Аналогично 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Цикличен ли код Хэмминга?

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

Таким образом, речь идет об исправлении и обнаружении ошибок, типах обнаружения ошибок, коды Хэмминга , процесс шифрования и дешифрования сообщения с использованием кодов Хэмминга, применения кодов Хэмминга, преимущества и недостатки кодов Хэмминга. Вот вам вопрос: «Каковы применения обнаружения и исправления ошибок?»