Codificación de corrección de errores: código Hamming
Código Hamming: puede detectar errores de doble bit y corregir errores de un solo bit.
Proceso de trabajo
- Confirme el número de dígitos del código de verificación r
- Determinar la ubicación de la suma de verificación y los datos.
- Encuentra el valor del código de verificación.
- Detectar y corregir errores
01 Confirmar el número de dígitos del código de verificación r
Desigualdad de Hamming: 2 r ≥ k + r + 1 k es el bit de información, r es el bit de información redundante\text{Desigualdad de Hamming:} 2^r \geq k + r + 1 \\ k es el bit de información, r es bits de información redundantesDesigualdad de Hamming: 2r≥k+r+1k es el bit de información , r es el bit de información redundante
Principio :
Hay un total de r bits de bits de información redundantes 2 r 2^r2r combinaciones, excepto 1 cuya información de identificación es correcta, hay2 r − 1 2^r-12r−1 combinación para identificar2 r − 1 2^r - 12r−1 error de posición. Entonces debería haber un número de combinaciones de errores de identificación >= el número total de bits transmitidos, es decir,2 r − 1 ≥ k + r 2^r - 1 \geq k + r2r−1≥k+r
02 Determinar la ubicación del código de verificación y los datos.
Supongamos datos D = 101101 D = 101101D=1 0 1 1 0 1
Entonces según la desigualdad de Hamming, r = 4 r = 4r=4
Sean los dígitos de control de izquierda a derecha P 1 , P 2 , P 3 , P 4 P_1, P_2, P_3, P_4PAG1、PAG2、PAG3、PAG4, los datos de izquierda a derecha son D 1 , D 2 , D 3 , D 4 , D 5 , D 6 D_1, D_2, D_3, D_4, D_5, D_6D1、D2、D3、D4、D5、D6
Los dígitos de control se colocan en varias potencias de 2 y los bits de datos se completan con los bits vacíos de izquierda a derecha.
Ubicación | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
código | P 1 P_1PAG1 | P 2 P_2PAG2 | D 1 D_1D1 | P3P_3PAG3 | D 2 D_2D2 | D 3 D_3D3 | D 4 D_4D4 | P 4 P_4PAG4 | D 5 D_5D5 | D 6 D_6D6 |
valor actual | 1 | 0 | 1 | 1 | 0 | 1 |
03 Encuentra el valor del código de verificación.
Cada dígito de control se completa en una posición potencia de 2, por lo que su "representación binaria de posición" tiene solo un 1, que se establece en la posición r-ésima desde la derecha. Este dígito de control verifica los datos cuyo bit r desde la derecha de la "representación binaria de posición" es 1.
Por ejemplo: P 1 P_1PAG1En la representación binaria posicional, 1 está en el primer dígito desde la derecha, luego verifica todos los datos cuyo primer dígito desde la derecha en la "representación binaria posicional" es 1, es decir, el 3.º, 5.º, 7.º, 9.º. .3, 5, 7, 9 puntos3 , 5 , 7 , 9... bits,P 2 P_2PAG2Marque el 3, 6, 7, 10... 3, 6, 7, 10 \ldots3 、6 、7 、1 0... bits,P 3 P_3PAG3Marque el 5, 6, 7... 5, 6, 7 \ldots5 , 6 , 7... bits,P 4 P_4PAG4Comprueba los puntos 9, 10... 9, 10 \ldots9 、1 0... un poco.
El bit de paridad debe hacer que los datos en todas las posiciones de paridad XOR consigo mismos sean 0 (puede entenderse como paridad par).
P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 ⊕ D 5 = 0 ⟹ P 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 0 = 0 ⟹ P 1 = 0 P 2 ⊕ D 1 ⊕ D 3 ⊕ D 4 ⊕ D 6 = 0 ⟹ P 2 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0 ⟹ P 2 = 0 P 3 ⊕ D 2 ⊕ D 3 ⊕ D 4 = 0 ⟹ P 3 ⊕ 0 ⊕ 1 ⊕ 1 = 0 ⟹ P 3 = 0 P 4 ⊕ D 5 ⊕ D 6 = 0 ⟹ P 4 ⊕ 0 ⊕ 1 = 0 ⟹ P 4 = 1 \begin{aligned} & P_1 \oplus D_1 \oplus D_2 \oplus D_4 \oplus D5 = 0 & \implica & P_1 \oplus 1 \oplus 0 \oplus 1 \oplus 0 = 0 & \implica P_1 = 0 \\ & P_2 \oplus D_1 \oplus D_3 \oplus D_4 \oplus D6 = 0 & \implica & P_2 \oplus 1 \oplus 1 \oplus 1 \ oplus 1 = 0 & \implica P_2 = 0 \\ & P_3 \oplus D_2 \oplus D_3 \oplus D_4 = 0 & \implica & P_3 \oplus 0 \oplus 1 \oplus 1 = 0 & \implica P_3 = 0 \\ & P_4 \oplus D_5 \oplus D_6 = 0 & \implica & P_4 \oplus 0 \oplusPAG1⊕D1⊕D2⊕D4⊕D 5=0PAG2⊕D1⊕D3⊕D4⊕D6 _=0PAG3⊕D2⊕D3⊕D4=0PAG4⊕D5⊕D6=0⟹⟹⟹⟹PAG1⊕1⊕0⊕1⊕0=0PAG2⊕1⊕1⊕1⊕1=0PAG3⊕0⊕1⊕1=0PAG4⊕0⊕1=0⟹PAG1=0⟹PAG2=0⟹PAG3=0⟹PAG4=1
Complete el valor del dígito de control resultante
Ubicación | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
representación binaria | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
código | P 1 P_1PAG1 | P 2 P_2PAG2 | D 1 D_1D1 | P3P_3PAG3 | D 2 D_2D2 | D 3 D_3D3 | D 4 D_4D4 | P 4 P_4PAG4 | D 5 D_5D5 | D 6 D_6D6 |
valor actual | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
Es decir, los datos transmitidos son 0010 0111 01
04 Detección y corrección de errores
Supongamos que el quinto bit durante la transmisión es D 2 D_2D2Ocurrió un error, el resultado recibido fue 0010 1 111 01
Realice el cálculo XOR de acuerdo con el método del valor de verificación
P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 ⊕ D 5 = 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1 P 2 ⊕ D 1 ⊕ D 3 ⊕ D 4 ⊕ D 6 = 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0 P 3 ⊕ D 2 ⊕ D 3 ⊕ D 4 = 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1 P 4 ⊕ D 5 ⊕ D 6 = 1 ⊕ 0 ⊕ 1 = 0 \ comenzar {alineado} & P_1 \oplus D_1 \oplus D_2 \oplus D_4 \oplus D5 & = & 0 \oplus 1 \oplus 1 \oplus 1 \oplus 0 & = 1 & \\ & P_2 \oplus D_1 \oplus D_3 \oplus D_4 \oplus D6 & = & 0 \oplus 1 \oplus 1 \oplus 1 \oplus 1 & = 0 \\ & P_3 \oplus D_2 \oplus D_3 \oplus D_4 & = & 0 \oplus 1 \oplus 1 \oplus 1 & = 1 \\ & P_4 \oplus D_5\oplus D_6 & = & 1 \oplus 0 \oplus 1 & = 0 \end{alineado}PAG1⊕D1⊕D2⊕D4⊕D 5PAG2⊕D1⊕D3⊕D4⊕D6 _PAG3⊕D2⊕D3⊕D4PAG4⊕D5⊕D6====0⊕1⊕1⊕1⊕00⊕1⊕1⊕1⊕10⊕1⊕1⊕11⊕0⊕1=1=0=1=0
El resultado de ordenar de abajo hacia arriba es 0101, que corresponde al decimal 5, es decir, el quinto bit está mal, simplemente cámbielo de 1 a 0.
Nota: Se pueden detectar errores de un solo bit y de doble bit, pero solo se pueden corregir errores de un solo bit. Si ocurre un error de doble bit, el resultado de la verificación del código Hamming solo puede indicar un error, es decir, el resultado de la verificación no es todo 0, pero la posición correspondiente no es necesariamente incorrecta. En este caso, el código Hamming por defecto es un único -bit error y se corrige. , habrá corrección de errores y problemas de error.
Principio : Cuando una determinada salida XOR de detección de error de bit de verificación es 1, significa que la posición de la "representación binaria de posición" del bit de error debe ser 1. Si la salida XOR es 0, significa que la posición de la "posición La representación binaria" del bit de error debe ser 1. La posición es 0. Luego, los resultados de la verificación ordenados de abajo hacia arriba representan exactamente la "representación binaria de posición" del bit de error.
Mi comprensión personal. Si hay algún error o si lo comprende mejor, corríjame.
Lo anterior son notas de estudio personales, enlace de video de estudio Estación B-Examen de ingreso de posgrado de Wangdao-Red informática