stringtranslate.com

Código de Berger

En telecomunicaciones , un código Berger es un código de detección de errores unidireccionales , llamado así por su inventor, JM Berger. Los códigos Berger pueden detectar todos los errores unidireccionales. Los errores unidireccionales son errores que solo convierten unos en ceros o solo ceros en unos, como en los canales asimétricos. Los bits de verificación de los códigos Berger se calculan contando todos los ceros en la palabra de información y expresando ese número en binario natural. Si la palabra de información consta de bits, entonces el código Berger necesita "bits de verificación", lo que da un código Berger de longitud k + n. (En otras palabras, los bits de verificación son suficientes para verificar hasta bits de información). Los códigos Berger pueden detectar cualquier número de errores de inversión de bits de uno a cero, siempre que no se produzcan errores de cero a uno en la misma palabra de código. De manera similar, los códigos Berger pueden detectar cualquier número de errores de inversión de bits de cero a uno, siempre que no se produzcan errores de inversión de bits de uno a cero en la misma palabra de código. Los códigos Berger no pueden corregir ningún error.

Al igual que todos los códigos de detección de errores unidireccionales, los códigos de Berger también se pueden utilizar en circuitos insensibles al retardo .

Detección de errores unidireccionales

Como se indicó anteriormente, los códigos de Berger detectan cualquier cantidad de errores unidireccionales. Para una palabra de código dada , si los únicos errores que han ocurrido son que algunos (o todos) los bits con valor 1 han cambiado al valor 0, entonces esta transformación será detectada por la implementación del código de Berger. Para entender por qué, considere que existen tres casos de este tipo:

  1. Algunos bits 1 en la parte de información de la palabra código han cambiado a 0.
  2. Algunos bits 1 en la porción de verificación (o redundante ) de la palabra de código han cambiado a 0.
  3. Algunos bits 1 en las partes de información y verificación han cambiado a 0.

En el caso 1, la cantidad de bits con valor 0 en la sección de información aumentará, por definición del error. Por lo tanto, nuestro código de verificación de Berger será menor que el recuento real de bits 0 de los datos y, por lo tanto, la verificación fallará.

En el caso 2, la cantidad de bits con valor 0 en la sección de información se ha mantenido igual, pero el valor de los datos de verificación ha cambiado. Como sabemos que algunos 1 se convirtieron en 0, pero ningún 0 se convirtió en 1 (así es como definimos el modelo de error en este caso), el valor binario codificado de los datos de verificación disminuirá (por ejemplo, del binario 1011 a 1010, o a 1001, o 0011). Como los datos de información se han mantenido iguales, tienen la misma cantidad de ceros que antes, y eso ya no coincidirá con el valor de verificación mutado.

Para el caso 3, donde los bits han cambiado tanto en la sección de información como en la de verificación, observe que la cantidad de ceros en la sección de información ha aumentado , como se describe para el caso 1, y el valor binario almacenado en la parte de verificación ha disminuido , como se describe para el caso 2. Por lo tanto, no hay posibilidad de que los dos terminen mutando de tal manera que se conviertan en una palabra de código válida diferente.

Se puede realizar un análisis similar, y es perfectamente válido, en el caso en que los únicos errores que se produzcan sean que algunos bits con valor 0 pasen a 1. Por lo tanto, si todos los errores que se producen en una palabra de código específica se producen en la misma dirección, estos errores se detectarán. Para la siguiente palabra de código que se transmita (por ejemplo), los errores pueden ir en la dirección opuesta y se detectarán igualmente, siempre que vayan todos en la misma dirección.

Los errores unidireccionales son comunes en determinadas situaciones. Por ejemplo, en la memoria flash , los bits se pueden programar con mayor facilidad a 0 que a 1.

Referencias