En teoría de codificación , especialmente en telecomunicaciones , un código autosincronizante es un código decodificable de forma única en el que el flujo de símbolos formado por una porción de una palabra de código , o por la porción superpuesta de dos palabras de código adyacentes cualesquiera, no es una palabra de código válida. [1] Dicho de otro modo, un conjunto de cadenas (denominadas "palabras de código") sobre un alfabeto se denomina código autosincronizante si para cada cadena obtenida mediante la concatenación de dos palabras de código, la subcadena que comienza en el segundo símbolo y termina en el penúltimo símbolo no contiene ninguna palabra de código como subcadena. Todo código autosincronizante es un código de prefijo , pero no todos los códigos de prefijo son autosincronizantes.
Otros términos para el código autosincronizante son código sincronizado [2] o, ambiguamente, código sin comas . [3] Un código autosincronizante permite la estructuración adecuada de las palabras de código transmitidas siempre que no se produzcan errores no corregidos en el flujo de símbolos ; no se requiere sincronización externa . Los códigos autosincronizantes también permiten la recuperación de errores no corregidos en el flujo; con la mayoría de los códigos de prefijo, un error no corregido en un solo bit puede propagar errores más allá en el flujo y hacer que los datos subsiguientes se corrompan .
La importancia de los códigos de autosincronización no se limita a la transmisión de datos . La autosincronización también facilita algunos casos de recuperación de datos , por ejemplo, de un texto codificado digitalmente .
Ejemplos
- UTF-8 se sincroniza automáticamente porque el byte inicial (
11xxxxxx) y los bytes subsiguientes (10xxxxxx) de un punto de código multibyte tienen patrones de bits diferentes. - Control de enlace de datos de alto nivel (HDLC)
- Procedimientos avanzados de control de comunicación de datos (ADCCP)
- Codificación de Fibonacci
Contraejemplos:
- El código de prefijo {00, 11} no se sincroniza automáticamente; mientras que 0, 1, 01 y 10 no son códigos, 00 y 11 sí lo son.
- El código de prefijo { ab , ba } no se sincroniza automáticamente porque abab contiene ba .
- El código de prefijo b ∗ a (usando la estrella de Kleene ) no se sincroniza automáticamente (aunque cualquier palabra de código nueva simplemente comience después de a ) porque la palabra de código ba contiene la palabra de código a .
Véase también
- Deslizamiento de bits
- Código de coma
- Relleno de bytes de sobrecarga constante
- secuencia de dynkin
- Principio de Kraus
- Principio de Kruskal
- Instrucciones superpuestas
- El método lambda de Pollard
- Señal de reloj automático
- Código de bloque de sincronización automática
Referencias
- ^ "Código de autosincronización – Glosario".
- ^ Berstel, Jean; Perrin, Dominique; Reutenauer, Christophe (2010). Códigos y autómatas . Enciclopedia de matemáticas y sus aplicaciones. Vol. 129. Cambridge, Reino Unido: Cambridge University Press . pág. 137. ISBN. 978-0-521-88831-8.Zbl 1187.94001 .
- ^ Berstel, Jean; Perrin, Dominique (1985). Teoría de códigos . Matemáticas puras y aplicadas. Vol. 117. Academic Press . pág. 377. Zbl 0587.68066.
Lectura adicional
- "código de sincronización automática". Norma federal 1037C: Telecomunicaciones: Glosario de términos de telecomunicaciones . Administración de Servicios Generales . 1996-08-06. Archivado desde el original el 2022-01-22.
- Norma militar 188