Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo entender el código Hamming?

¿Cómo entender el código Hamming?

Código Hamming 1. El concepto de código Hamming El código Hamming es un código que puede corregir un error de un bit. Utiliza k bits de información y agrega r bits redundantes para formar una palabra de código de n=k r bits, y luego usa r factores de corrección generados por r relaciones de supervisión para distinguir palabras de código sin errores y sin errores en n diferentes. posiciones. Debe satisfacer la siguiente relación: 2^rgt; =n 1 o 2^rgt; =k r 1. La eficiencia de codificación del código Hamming es: R=k/(k r) donde k es el número de bits de información y r es el Se agregaron bits redundantes. Número de dígitos 2. Método 1 para generar y recibir código Hamming: 1) Generación de código Hamming. Ejemplo 1. Conocido: El código de información es: "0010". La relación de supervisión del código Hamming es: S2 = a2 a4 a5 a6S1 = a1 a3 a5 a6S0 = a0 a3 a4 a6. Solución: 1) Según la relación de supervisión, el código redundante es a2a1a0. 2) El código Hamming sintetizado por el código redundante y el código de información es: "0010a2a1a0". Supongamos S2=S1=S0=0, de la relación de supervisión: a2=a4 a5 a6=1a1=a3 a5 a6=0a0=a3 a4 a6=1 Por lo tanto, la palabra clave del código Hamming es: "0010101" 2) Código Hamming tomar el control. Ejemplo 2. Se sabe que la relación de supervisión del código Hamming es: S2=a2 a4 a5 a6S1=a1 a3 a5 a6S0=a0 a3 a4 a6. La palabra clave recibida es: "0011101" (n=7). código del remitente. Solución: 1) S2S1S0=011 se calcula a partir de la relación de supervisión del código Hamming 2) La siguiente tabla de relaciones de posición del código de error se puede construir a partir de la relación de supervisión: S2S1S0000001010100011101110111 La posición del código de error es correcta a0a1a2a3a4a5a63) El error se encuentra buscando. la tabla de S2S1S0=011 La posición del código es a3 4) Corrección de errores: invierta el bit a3 de la palabra de código para obtener la palabra de código correcta: "0 0 1 0 1 0 1" 5) Elimine el código redundante a2a1a0 para obtener el. código de información del remitente: "0010" Método 2: (No es necesario buscar tablas, conveniente para la programación) 1) Generación de códigos Hamming (método de generación secuencial). Ejemplo 3. Se sabe que el código de información es: " 1 1 0 0 1 1 0 0 " (k = 8). Solución: 1) Inserte los códigos redundantes A, B, C,... en el código de información en orden y obtenga las palabras de código del código Hamming: "A B 1 C 1 0 0 D 1 1 0 0" bits de código: 1 2 3 4 5 6 7 8 9 10 11 12 Entre ellos, A, B, C y D se insertan en los 2k bits (k = 0, 1, 2, 3). Los bits de código son 1, 2, 4 y 8 respectivamente. 2) Los bits de código lineal de los códigos redundantes A, B, C y D son: (equivalente a la relación de supervisión) A-gt; , 7, 9, 11; B-gt; 2, 3, 6, 7, 10, 11; C-gt; =4 2 1 ; 12=8 4) D-gt; 8, 9, 10, 11, 12. 3) Utilice la comprobación par del valor del bit del código lineal como valor del código redundante (asumiendo el valor inicial). del código redundante es 0): A =∑(0,1,1,0,1,0)=1B=∑(0,1,0,0,1,0)=0C=∑(0,1, 0,0,0) =1D= ∑ (0, 1, 1, 0, 0) =04) El código Hamming es: "1 0 1 1 1 0 0 0 1 1 0 0" 2) Recepción del código Hamming. Ejemplo 4. Se sabe que la palabra clave recibida es: "1 0 0 1 1 0 0 0 1 1 0 0" (k=8).

Solución: 1) Asuma el valor inicial del acumulador de errores (err) = 02) para encontrar la suma de verificación par del código redundante y acumule en err según el bit de código: A = ∑ (1, 0, 1, 0 , 1, 0)=1 err=err 20=1B=∑(0,0,0,0,1,0)=1 err=err 21=3C=∑(1,1,0,0,0) = 0 err= err 0 =3D=∑(0, 1, 1, 0, 0) =0 err=err 0 =3 De err≠0, podemos saber que hay un error en la palabra clave recibida 3) El error. La posición de la palabra clave es el acumulador de errores (err). El valor es 3. 4) Corrección de errores: invierta el valor del tercer bit de la palabra clave para obtener la palabra clave correcta: "1 0 1 1 1 0 0 0 1 1 0. 0" 5) Eliminar el código redundante ubicado en 2k bits Código de información obtenida: "1 1 0 0 1 1 0 0"