Qué es el código Hamming: historia, funcionamiento y sus aplicaciones

Qué es el código Hamming: historia, funcionamiento y sus aplicaciones

En los sistemas digitales, los datos transmitidos para comunicación puede dañarse debido al ruido externo y cualquier otro fallo físico. Si los datos transmitidos no coinciden con los datos de entrada dados, se denomina 'error'. Los errores de datos pueden eliminar datos vitales en sistemas digitales. La transferencia de datos se realizará en forma de bits (0 y 1) en sistemas digitales. Si se cambia alguno de los bits, el rendimiento de todo el sistema puede verse afectado. Si el bit '1' se cambia al bit '0' o viceversa, entonces se denomina error de bit. Hay diferentes tipos de errores como errores de un solo bit, errores múltiples y errores de ráfaga. En este artículo, discutimos la corrección y detección de errores, y el código hamming.

¿Qué es la detección y corrección de errores?

En la comunicación digital, los datos se perderán si hay un error en la transferencia de información de un sistema / red a otro sistema / red. Por eso, es importante encontrar y corregir errores. Algún error detección y se utilizan métodos de corrección para detectar y corregir los errores para una comunicación eficaz. Si se utilizan estos métodos, los datos se pueden transferir con mayor precisión.


La detección de errores se define como el método utilizado para detectar los errores transmitidos desde el transmisor / emisor al receptor en sistemas digitales. Los códigos de redundancia se agregan a los datos durante la transmisión para encontrar los errores. Estos se denominan códigos de detección de errores.



La corrección de errores es la corrección de los datos transmitidos del transmisor al receptor. La corrección de errores se puede realizar de dos tipos.

Corrección de errores hacia atrás

En este tipo de corrección de errores, el receptor solicita al remitente que retransmita los datos si el receptor detecta el error.

Corrección de errores hacia adelante

si los datos recibidos por el receptor encuentran el error, entonces ejecuta los códigos de corrección de errores, para corregir y recuperar los datos automáticamente.


Si hay 'm' no. De bits de datos y 'r' no. De bits redundantes, entonces las combinaciones de información serán 2r.

2r> = m + r + 1

Tipos de códigos de detección de errores

Los errores en los datos recibidos se pueden detectar usando 3 tipos de códigos de detección de errores. Ellos son, verificación de paridad, verificación de redundancia cíclica (CRC) y verificación de redundancia longitudinal.

Comprobación de paridad

El bit redundante llamado bit de paridad se agrega para hacer que el número de bits sea par o impar en caso de paridad par o paridad impar. El receptor cuenta el número de bits (unos) en una trama para agregar el bit de paridad. A esto se le llama verificación de paridad. Si el número de 1 en un fotograma es par, entonces se usa la paridad par agregando el bit '1' con valor cero. De manera similar, si el número de 1 es impar, entonces la paridad impar se usa agregando el bit con valor '1'.

Detección de errores

detección de errores

Por lo tanto, se utiliza para garantizar que la trama / fecha recibida por el receptor desde la fuente no esté dañada. En este tipo de detección de errores, el número de 1 debe ser uniforme en el cuadro recibido. Es muy menos costoso entre todos los tipos de detección de errores.

Verificación de redundancia longitudinal (LRC)

Una vez organizado el conjunto / bloque de bits, se puede utilizar el método LRC para comprobar el bit de paridad en cada trama. Ayuda a enviar el conjunto de bits de paridad junto con los datos originales y verifica la redundancia.

Verificación de redundancia cíclica

Este tipo se utiliza para detectar que los datos / tramas recibidos de la fuente son válidos o no. Se trata de la división binaria de los datos que se deben enviar y utiliza polinomios (para generar divisor). Antes la transmisión , el remitente realiza una operación de división en los datos / bits / trama para calcular el resto.

Verificación de redundancia cíclica

verificación de redundancia cíclica

Durante la transmisión de datos reales del remitente, agrega el resto al final de los datos reales. La combinación de datos reales y el resto se denomina palabra de código. Los datos se transmiten en forma de palabras en clave. En este proceso, si los datos están corruptos, el receptor rechazará los datos; de lo contrario, los aceptará.

¿Qué es el Código Hamming?

El código Hamming se define como un código lineal que se utiliza en el proceso de detección de errores hasta 2 errores intermedios. También es capaz de detectar errores de un solo bit. En este método, el remitente agrega los bits redundantes a los datos / mensajes para codificar los datos. Para realizar la detección y corrección de errores, estos bits redundantes se agregan en ciertas posiciones para el proceso de corrección de errores.

Código Hamming

código de hamming

Historia de los códigos de Hamming

En 1950, Richard W. hamming inventó los códigos de Hamming para detectar y corregir los errores en los datos. Después de la evolución de las computadoras con mayor confiabilidad, introdujo los códigos Hamming para los códigos de corrección de 1 error y más tarde extendió hasta los códigos de detección de 2 errores. Los códigos de Hamming se crean porque la verificación de paridad no puede detectar y corregir errores en los datos. Los códigos de Hamming se insertan en cualquier longitud de bloque de datos entre los datos reales y los bits de redundancia. Desarrolló una serie de algoritmos para trabajar en los problemas de los métodos de corrección de errores y estos códigos se utilizan ampliamente en la memoria ECC.

Proceso de codificación de un mensaje usando código Hamming

El proceso de codificación de un mensaje usando un código de Hamming por parte del remitente incluye 3 pasos.

Paso 1: El primer paso es calcular el número de bits redundantes en un mensaje

  • Por ejemplo, si un mensaje contiene 'n' número de bits y 'p' número de bits redundantes se agregan al mensaje, entonces 'np' indica (n + p + 1) estados diferentes.
  • Donde (n + p) representa la ubicación de un error en cada posición de bit
  • 1 (estado extra) no representa ningún error.
  • Dado que 'p' indica 2 ^ p (2p) estados, que son iguales a (n + p + 1) estados.

Paso 2: Coloque los bits redundantes en la posición exacta / correcta

Los bits 'p' se insertan en las posiciones de bit que son la potencia de 2 como 1, 2, 4, 8, 16, etc. Estas posiciones de bit se indican como p1 (posición 1), p2 (posición 2), p3 (posición 4), etc.

Paso 3: Calcular los valores de bits redundantes

  • Aquí, los bits de paridad se utilizan para calcular los valores de los bits redundantes.
  • Los bits de paridad pueden hacer que el número de 1 en un mensaje sea par o impar.
  • Si el número total de 1 en un mensaje es par, se usa la paridad par
  • Si el número total de unos en un mensaje es impar, se utiliza la paridad impar.

Proceso de descifrado de un mensaje en código Hamming

El proceso de descifrar un mensaje recibido del remitente por el receptor utilizando el código de Hamming incluye los siguientes pasos. Este proceso no es más que un nuevo cálculo para detectar y corregir los errores en un mensaje.

Paso 1: Cuente el no. De bits redundantes

La fórmula para codificar el mensaje usando bits redundantes es,

2p≥ n + p + 1

Paso 2: corregir las posiciones de todos los bits redundantes

'P' no. De bits redundantes se colocan en posiciones de potencia de 2, como 1,2,4,8,16,32, etc.

Paso 3: comprobación de paridad (paridad impar y paridad par)

Los bits de paridad se calculan en función del número de 1 en bits de datos y bits redundantes.

Por ejemplo

La paridad de p1 sería 1, 3, 5, 7, 9, 11,…

La paridad de p2 sería 2, 3, 6, 7, 10, 11,…

La paridad de p3 sería 4-7, 12-15, 20-23,…

Ventajas del código Hamming

La principal ventaja de utilizar un código Hamming es rentable si un flujo de datos contiene errores de un solo bit.

  • Puede proporcionar detección de errores y también indica el bit que contiene un error para su corrección.
  • Los códigos Hamming son muy fáciles y mejores de usar en la memoria de la computadora y en la corrección y detección de errores de un solo bit.

Desventajas del código Hamming

  • Es mejor solo para la corrección y detección de errores de un solo bit. Si hay errores de varios bits, entonces todo puede estar dañado.
  • El algoritmo del código de Hamming solo puede resolver errores de un solo bit.

Aplicaciones de los códigos Hamming

Los códigos Hamming se utilizan en,

  • Informática
  • Telecomunicaciones
  • Compresión de datos
  • Resolver acertijos y códigos turbo
  • Satélites
  • CAM de plasma
  • Alambres blindados
  • Modems
  • Memoria del ordenador
  • Conectores abiertos
  • Sistemas embebidos y procesador

Preguntas frecuentes

1). ¿Puede el código Hamming detectar errores de 2 bits?

Los códigos Hamming pueden detectar y corregir errores de hasta 2 bits en un flujo de datos

2). ¿Cómo arreglas el código de Hamming?

Los códigos Hamming se colocan en cualquier longitud de datos entre los datos reales y los bits redundantes. Estos códigos son lugares con una distancia mínima de 3 bits

3). ¿Qué es el código de paridad?

El código de paridad o el bit de paridad agrega un bit a la trama recibida (los datos contienen unos y ceros) para hacer que el número total de bits (unos) sea par o impar.

4). ¿Cuál es la distancia de Hamming entre los datos?

La distancia de martillo entre los dos flujos de datos diferentes de igual longitud es el número de unos.

La distancia de martillo entre dos cadenas de datos de igual longitud se puede calcular mediante la operación XOR.

Por ejemplo, a = 11011001

b=10011101

La distancia de Hamming se puede calcular como,

11011001 ⊕ 10011101 = 01000100 (el número de 1 bits son 2)

La distancia de Hamming indica el número de 1 en el flujo de datos resultante

Entonces, d (11011001, 10011101) = 2

De manera similar, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). ¿El código Hamming es cíclico?

Sí, los códigos de Hamming son equivalentes a los códigos cíclicos que se pueden utilizar como códigos de detección de errores.

Por lo tanto, se trata de corrección y detección de errores, tipos de detección de errores, códigos de hamming , el proceso de cifrar y descifrar el mensaje utilizando códigos de Hamming, aplicaciones de códigos de Hamming, ventajas y desventajas de los códigos de Hamming. Aquí tienes una pregunta: '¿Cuáles son las aplicaciones de la detección y corrección de errores?'