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

En los sistemas digitales, los datos transmitidos para la comunicación pueden corromperse debido al ruido externo y otras fallas físicas. Si los datos transmitidos no coinciden con los datos de entrada proporcionados, esto se denomina "error". Los errores de datos pueden eliminar datos vitales en los sistemas digitales. La transferencia de datos será 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 reemplaza por el bit '0' o viceversa, 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, analizamos la corrección y detección de errores y el código de Hamming.


Índice de Contenido
  1. ¿Qué es la detección y corrección de errores?
    1. Tipos de códigos de detección de errores
  2. ¿Qué es el código Hamming?
    1. Historia de los códigos de Hamming
    2. Proceso de codificación de un mensaje usando el código Hamming
    3. Proceso de descifrado de un mensaje en código Hamming
    4. Ventajas del Código Hamming
    5. Desventajas del código de Hamming
    6. Aplicaciones de los códigos de Hamming
    7. preguntas frecuentes

¿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 lo tanto, es importante encontrar y corregir errores. Algunos métodos de detección y corrección de errores se utilizan para detectar y corregir errores para lograr 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 errores transmitidos del emisor/emisor al receptor en sistemas digitales. Los códigos de redundancia se agregan a los datos durante la transmisión para encontrar errores. Estos se denominan códigos de detección de errores.

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

Corrección de errores hacia atrás

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

Corrección de errores de reenvío

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 un número 'm' de bits de datos y un número 'r' 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 utilizando 3 tipos de códigos de detección de errores. Estos son la verificación de paridad, la verificación de redundancia cíclica (CRC) y la 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 impar. El receptor cuenta el número de bits (1) en una trama para sumar el bit de paridad. Esto se llama verificación de paridad. Si el número de 1 en un marco es par, entonces se usa la paridad par agregando el bit '1' con el valor cero. De manera similar, si el número de 1 es impar, entonces se usa la paridad impar agregando el bit de valor '1'.

detección de errores

Por lo tanto, se utiliza para garantizar que el cuadro/fecha recibido por el receptor de la fuente no se corrompa. En este tipo de detección de errores, el número de 1 debe ser par en la trama recibida. Es el más barato entre todos los tipos de detección de errores.

Comprobación de redundancia longitudinal (LRC)

Cuando se organiza 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 si el dato/trama recibido de la fuente es válido o no. Implica la división binaria de los datos que deben enviarse y utiliza polinomios (para generar un divisor). Antes de la transmisión, el transmisor 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

Al transmitir los datos reales del remitente, agrega el resto al final de los datos reales. La combinación de los datos reales y el resto se denomina palabra clave. Los datos se transmiten en forma de palabras clave. En este proceso, si los datos están dañados, el receptor los rechazará, de lo contrario, los aceptará.

¿Qué es el código Hamming?

El código Hamming se define como un código lineal utilizado 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 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
codigo hamming

Historia de los códigos de Hamming

En 1950, Richard W. Hamming inventó los códigos de Hamming para detectar y corregir errores en los datos. Después de la evolución de las computadoras con mayor confiabilidad, introdujo los códigos de Hamming para los códigos de corrección de errores 1 y luego los extendió hasta los códigos de detección de errores 2. 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 Hamming se insertan en cualquier longitud de bloque de datos entre los datos reales y los bits de redundancia. Desarrolló un conjunto 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 el código Hamming

El proceso de codificación de un mensaje mediante un código hamming por parte del remitente consta de 3 pasos.

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

  • Por ejemplo, si un mensaje contiene un número 'n' de bits y se agrega un número 'p' de bits redundantes 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 adicional) representa ningún error.
  • Dado que 'p' indica 2^p (2p) estados, que son iguales a (n+p+1) estados.

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

Los bits 'p' se insertan en posiciones de bits 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 valores de bits redundantes

  • Aquí, los bits de paridad se utilizan para calcular los valores de 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, entonces se usa la paridad par.
  • Si el número total de 1 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 Hamming consta de los siguientes pasos. Este proceso no es más que un recálculo para detectar y corregir errores en un mensaje.

Etapa 1: Contar el número de bits redundantes

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

2p≥ norte + pag + 1

2do paso: corregir las posiciones de todos los bits redundantes

El número 'p' de bits redundantes se coloca en potencia de 2 posiciones de bits 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 usar un código Hamming es que vale la pena si un flujo de datos contiene errores de un solo bit.

  • Puede proporcionar detección de errores y también indica qué bit contiene un error que debe corregirse.
  • 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 de Hamming

  • Es mejor para la corrección y detección de errores de un solo bit solamente. En el caso de errores de varios bits, el ensamblaje puede estar dañado.
  • El algoritmo de código de Hamming solo puede resolver errores de un solo bit.

Aplicaciones de los códigos de Hamming

Los códigos de Hamming se utilizan en,

  • Informática
  • telecomunicaciones
  • Compresión de datos
  • Resuelve acertijos y códigos turbo.
  • Satélites
  • CAM de plasma
  • alambres blindados
  • módems
  • memoria del ordenador
  • Conectores abiertos
  • Sistemas integrados 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 se arregla 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 bit de paridad agrega un bit a la trama recibida (los datos contienen 1 y 0) para hacer que el número total de bits (1) sea par o impar.

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

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

La distancia de Hamming 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 (número de bit 1 es igual a 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 de Hamming es cíclico?

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

Entonces es la 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 usando códigos Hamming, aplicaciones de códigos Hamming, ventajas y desventajas de códigos Hamming. Aquí hay una pregunta para usted: "¿Cuáles son las aplicaciones de detección y corrección de errores?"

Si quieres conocer otros artículos parecidos a Qué es el código Hamming: historia, funcionamiento y sus aplicaciones puedes visitar la categoría Generalidades.

¡Más Contenido!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir