Parece que combina dos conceptos: códigos de corrección de errores y bits de paridad .
Con respecto a los códigos de corrección de errores , siempre que sus palabras de código estén al menos a una distancia de separación de 3, puede corregir cualquier error de un solo bit. No importa qué bit esté dañado.
Ver aquí: ¿Cómo funciona la corrección de errores?
- ¿Qué estructuras de datos / algoritmos de coincidencia usa vimdiff?
- ¿Cómo puede el comercio algorítmico o de patrones generar ganancias cuando la teoría de eficiencia del mercado (de forma débil) argumenta que la información de precios pasada es irrelevante?
- ¿Cuáles son las listas vinculadas en Java y qué las hace mejores que las matrices normales?
- ¿Qué tipo de algoritmos se utilizan en DSP (plataforma del lado de la demanda)?
- ¿Cuál sería el impacto económico de un algoritmo de compresión tan eficiente como el representado en Silicon Valley?
Como ejemplo, supongamos que desea enviar un valor de 2 bits. Esto significa que tiene 4 valores posibles que puede enviar:
00
01
10
11
Para obtener un código de corrección de errores válido, necesitamos convertir estos valores en palabras de código que al menos estén a una distancia de separación de 3. Existen múltiples formas de generar estas palabras de código. Aquí hay un código que hice simplemente a través de prueba y error:
00 = 11010
01 = 00000
10 = 01111
11 = 10101
Entonces, lo que esto significa es que, en la RAM, si alguna vez desea escribir el valor 00 , en su lugar lo codificaría como 11010 y lo escribiría en la RAM. Luego, cuando lees 11010 de RAM, lo decodificas a 00 .
El concepto de bits de paridad ni siquiera entra en juego con estas palabras de código; Las palabras de código que generé no tienen bits de paridad. Los bits de paridad son simplemente una forma fácil de hacer que sus palabras de código separen 3 distancias .
Una manera fácil de generar bits de paridad es a través del código de hamming. Esencialmente, los códigos de Hamming hacen algunos XOR de ciertos bits para garantizar que tenga un código de distancia de Hamming 3, y los bits que se agregan también le permiten identificar la ubicación del error de un solo bit con una lógica mínima.
Por ejemplo, para nuestro código de 2 bits, con un código de hamming, generaríamos las siguientes palabras de código:
00 (datos), 000 (paridad) = 00000
01 (datos), 011 (paridad) = 00111
10 (datos), 101 (paridad) = 11001
11 (datos), 110 (paridad) = 11110
Esta es una versión condensada de un código de hamming (7, 4) con los bits de paridad en los puntos canónicos. Obviamente, también es un código de distancia de hamming 3. Por supuesto, podríamos intercalar estos bits de paridad como queramos. Puede pegar los bits de paridad al final:
00 (datos), 000 (paridad) = 00000
01 (datos), 011 (paridad) = 01011
10 (datos), 101 (paridad) = 10101
11 (datos), 110 (paridad) = 11110
Este también es un código de distancia de hamming 3, lo que significa que todavía podemos hacer la corrección de errores de un solo bit.
En resumen, cuando se trata de la corrección de errores de un solo bit, lo único que importa es que las palabras de código están bloqueando la distancia 3. Los bits de paridad no importan ni más ni menos que los bits de datos; simplemente se usan para garantizar que la palabra de código se interrumpa 3.