En la teoría de la codificación , los códigos de bloques constituyen una familia amplia e importante de códigos correctores de errores que codifican datos en bloques. Existen numerosos ejemplos de códigos de bloques, muchos de los cuales tienen una amplia gama de aplicaciones prácticas. La definición abstracta de los códigos de bloques resulta conceptualmente útil, ya que permite a teóricos de la codificación, matemáticos e informáticos estudiar las limitaciones de todos los códigos de bloques de forma unificada. Dichas limitaciones suelen adoptar la forma de límites que relacionan diferentes parámetros del código de bloques entre sí, como su tasa y su capacidad para detectar y corregir errores.
Ejemplos de códigos de bloques son los códigos de Reed-Solomon , Hamming , Hadamard , Expander , Golay , Reed-Muller y Polar . Estos ejemplos también pertenecen a la clase de códigos lineales , por lo que se denominan códigos de bloques lineales . En particular, estos códigos se conocen como códigos de bloques algebraicos o cíclicos, ya que pueden generarse mediante polinomios booleanos.
Los códigos de bloques algebraicos se decodifican normalmente mediante decodificadores algebraicos.
El término código de bloque también puede referirse a cualquier código corrector de errores que actúe sobre un bloque debits de datos de entrada para producirbits de datos de salidaEn consecuencia, el codificador de bloques es un dispositivo sin memoria . Según esta definición, códigos como los códigos turbo , los códigos convolucionales terminados y otros códigos decodificables iterativamente (códigos tipo turbo) también se considerarían códigos de bloques. Un codificador convolucional no terminado sería un ejemplo de código no de bloques (sin marco), que tiene memoria y se clasifica como código de árbol .
Este artículo trata sobre los "códigos de bloques algebraicos".
El código del bloque y sus parámetros
Los códigos de corrección de errores se utilizan para transmitir datos digitales de forma fiable a través de canales de comunicación inestables y con ruido . Cuando un emisor desea transmitir un flujo de datos, posiblemente muy largo, mediante un código de bloques, divide el flujo en fragmentos de tamaño fijo. Cada fragmento se denomina mensaje , y el procedimiento del código de bloques codifica cada mensaje individualmente en una palabra clave, también llamada bloque . A continuación, el emisor transmite todos los bloques al receptor, quien puede utilizar un mecanismo de decodificación para recuperar (con suerte) los mensajes originales a partir de los bloques recibidos, que podrían estar dañados. El rendimiento y el éxito de la transmisión dependen de los parámetros del canal y del código de bloques.
Formalmente, un código de bloque es una asignación inyectiva.
- .
Aquí,es un conjunto finito y no vacío yyson números enteros. El significado y la importancia de estos tres parámetros y otros parámetros relacionados con el código se describen a continuación.
El alfabeto Σ
El flujo de datos que se va a codificar se modela como una cadena sobre algún alfabeto.El tamañodel alfabeto se escribe a menudo como. Si, entonces el código de bloque se llama código de bloque binario . En muchas aplicaciones es útil considerarser una potencia principal y para identificarcon el campo finito.
La longitud del mensaje k
Los mensajes son elementosde, es decir, cadenas de longitud. Por lo tanto, el númeroSe denomina longitud o dimensión del mensaje de un código de bloque.
La longitud del bloque n
La longitud del bloquede un código de bloque es el número de símbolos en un bloque. Por lo tanto, los elementosdeson cadenas de longitudy corresponden a bloques que pueden ser recibidos por el receptor. Por lo tanto, también se les llama palabras recibidas. Sipara algún mensaje, entoncesse llama la palabra clave de.
La tasa R
La tasa de un código de bloque se define como la relación entre la longitud de su mensaje y la longitud de su bloque:
- .
Una tasa alta significa que la cantidad de mensaje real por bloque transmitido es alta. En este sentido, la tasa mide la velocidad de transmisión y la cantidadmide la sobrecarga que se produce debido a la codificación con el código de bloque. Es un hecho teórico de la información simple que la tasa no puede excederya que los datos no se pueden comprimir sin pérdidas en general. Formalmente, esto se deduce del hecho de que el códigoes un mapa inyectivo.
La distancia d
La distancia o distancia mínima d de un código de bloque es el número mínimo de posiciones en las que difieren dos palabras clave distintas cualesquiera, y la distancia relativaes la fracciónFormalmente, para palabras recibidas, dejardenota la distancia de Hamming entrey, es decir, el número de posiciones en las queydifieren. Entonces la distancia mínimadel códigose define como
- .
Dado que cualquier código debe ser inyectivo , dos palabras clave cualesquiera discreparán en al menos una posición, por lo que la distancia de cualquier código es al menosAdemás, la distancia es igual al peso mínimo para los códigos de bloques lineales porque:
- .
Una mayor distancia permite una mayor corrección y detección de errores. Por ejemplo, si solo consideramos los errores que pueden cambiar los símbolos de la palabra clave enviada, pero nunca borrarlos ni agregarlos, entonces el número de errores es el número de posiciones en las que la palabra clave enviada y la palabra recibida difieren. Un código con distancia d permite al receptor detectar hastaerrores de transmisión desde que se cambióLas posiciones de una palabra clave nunca pueden generar accidentalmente otra palabra clave. Además, si no más deSi se producen errores de transmisión, el receptor puede decodificar de forma única la palabra recibida en una palabra clave. Esto se debe a que cada palabra recibida tiene como máximo una palabra clave a distancia.Si más de .En caso de errores de transmisión, el receptor generalmente no puede decodificar de forma unívoca la palabra recibida, ya que puede haber varias palabras clave posibles. Una forma de que el receptor gestione esta situación es mediante la decodificación por lista , en la que el decodificador genera una lista con todas las palabras clave dentro de un radio determinado.
notación popular
La notacióndescribe un código de bloques sobre un alfabetode tamaño, con una longitud de bloquelongitud del mensajey distancia. Si el código de bloque es un código de bloque lineal, entonces los corchetes en la notaciónse utilizan para representar ese hecho. Para códigos binarios con, a veces se omite el índice. Para códigos separables de distancia máxima , la distancia siempre es, pero a veces la distancia precisa no se conoce, no es trivial de probar o afirmar, o no es necesaria. En tales casos, la-Puede que falte algún componente.
A veces, especialmente para códigos que no son de bloques, la notaciónse utiliza para códigos que contienenpalabras clave de longitud. Para códigos de bloque con mensajes de longitudsobre un alfabeto de tamaño, este número sería.
Ejemplos
Como se mencionó anteriormente, existe una gran cantidad de códigos correctores de errores que en realidad son códigos de bloques. El primer código corrector de errores fue el código Hamming(7,4) , desarrollado por Richard W. Hamming en 1950. Este código transforma un mensaje que consta de 4 bits en una palabra clave de 7 bits agregando 3 bits de paridad. Por lo tanto, este código es un código de bloques. Resulta que también es un código lineal y que tiene una distancia de 3. En la notación abreviada anterior, esto significa que el código Hamming(7,4) es uncódigo.
Los códigos Reed-Solomon son una familia de códigos.códigos conyser una potencia principal . Los códigos de rango son una familia decódigos con. Los códigos de Hadamard son una familia decódigos cony.
Propiedades de detección y corrección de errores
Una palabra clavepodría considerarse como un punto en el-espacio dimensionaly el códigoes el subconjunto de. Un códigotiene distanciasignifica que, no hay otra palabra clave en la bola de Hamming centrada encon radio, que se define como la colección de-palabras de dimensión cuya distancia de Hamming ano es más que. Similarmente,con distancia (mínima)tiene las siguientes propiedades:
- puede detectarerrores : Porque una palabra clavees la única palabra clave en la bola de Hamming centrada en sí misma con radio, ningún patrón de error deo menos errores podrían cambiar una palabra clave por otra. Cuando el receptor detecta que el vector recibido no es una palabra clave deLos errores se detectan (pero no hay garantía de que se corrijan).
- puede corregirerrores. Porque es una palabra clavees la única palabra clave en la bola de Hamming centrada en sí misma con radio, las dos bolas de Hamming centradas en dos palabras clave diferentes respectivamente con ambos radiosno se superponen entre sí. Por lo tanto, si consideramos la corrección de errores como encontrar la palabra clave más cercana a la palabra recibida, siempre y cuando el número de errores no sea más de, solo hay una palabra clave en la bola de jamón centrada encon radioPor lo tanto, todos los errores podrían corregirse.
- Para decodificar en presencia de más deSe pueden utilizar errores, decodificación de listas o decodificación de máxima verosimilitud .
- puede corregirborrados . Por borrado se entiende que se conoce la posición del símbolo borrado. La corrección podría lograrse mediante-decodificación de paso : EnAl pasar la posición borrada se llena con elSe lleva a cabo la corrección de símbolos y errores. Debe haber una pasada en la que el número de errores no sea mayor quey por lo tanto, las borraduras podrían corregirse.
Límites inferior y superior de los códigos de bloque


- naranja claro en el eje x : códigos triviales no protegidos
- Naranja en el eje Y : códigos de repetición triviales
- naranja oscuro en el conjunto de datos d = 3: códigos de Hamming perfectos clásicos
- rojo oscuro y más grande: el único código Golay binario perfecto
Familia de códigos
se llama familia de códigos , dondees uncódigo con incremento monótono.
La tasa de la familia de códigos C se define como
La distancia relativa de la familia de códigos C se define como
Para explorar la relación entreySe conoce un conjunto de límites inferiores y superiores de los códigos de bloque.
Hamming se dirigió
Singleton
El límite de Singleton es que la suma de la tasa y la distancia relativa de un código de bloque no puede ser mucho mayor que 1:
- .
En otras palabras, cada código de bloque satisface la desigualdad.Los códigos de Reed-Solomon son ejemplos no triviales de códigos que satisfacen la cota unitaria con igualdad .
Plotkin estaba atado
Para,. En otras palabras,.
Para el caso general, se cumplen las siguientes cotas de Plotkin para cualquiercon distancia d :
- Si
- Si
Para cualquier código q -ario con distancia,
Gilbert-Varshamov vinculado
, dónde, es la función de entropía q -aria.
Johnson se dirige
Definir. Dejarsea el número máximo de palabras clave en una bola de Hamming de radio e para cualquier códigode distancia d .
Luego tenemos el Johnson Bound :, si
Elias-Basálygo
Empaquetamientos de esferas y redes
Los códigos de bloques están vinculados al problema del empaquetamiento de esferas , que ha recibido cierta atención a lo largo de los años. En dos dimensiones, es fácil visualizarlo. Imaginemos un puñado de monedas planas sobre una mesa, apretándolas entre sí. El resultado es un patrón hexagonal, similar a un panal de abejas. Sin embargo, los códigos de bloques se basan en más dimensiones, que no se visualizan fácilmente. El potente código Golay, utilizado en las comunicaciones del espacio profundo, emplea 24 dimensiones. Si se utiliza como código binario (que es lo habitual), las dimensiones se refieren a la longitud de la palabra clave, tal como se definió anteriormente.
La teoría de la codificación utiliza el modelo de esfera N- dimensional. Por ejemplo, ¿cuántas monedas caben en un círculo sobre una mesa? En tres dimensiones, ¿cuántas canicas caben en un globo terráqueo? Otros factores influyen en la elección de un código. Por ejemplo, al empaquetar hexágonos dentro de una caja rectangular, quedará espacio vacío en las esquinas. A medida que las dimensiones aumentan, el porcentaje de espacio vacío disminuye. Sin embargo, en ciertas dimensiones, el empaquetado aprovecha todo el espacio, y estos códigos se denominan códigos perfectos. Existen muy pocos de estos códigos.
Otra propiedad es el número de vecinos que puede tener una sola palabra clave. [ 1 ] De nuevo, consideremos las monedas de un centavo como ejemplo. Primero, colocamos las monedas en una cuadrícula rectangular. Cada moneda tendrá 4 vecinos cercanos (y 4 en las esquinas que están más lejos). En un hexágono, cada moneda tendrá 6 vecinos cercanos. Respectivamente, en tres y cuatro dimensiones, el empaquetamiento máximo viene dado por la cuadrícula de 12 caras y la de 24 celdas con 12 y 24 vecinos, respectivamente. Cuando aumentamos las dimensiones, el número de vecinos cercanos aumenta muy rápidamente. En general, el valor viene dado por los números de contacto .
El resultado es que también aumenta el número de maneras en que el ruido puede hacer que el receptor elija un vecino (y, por lo tanto, un error). Esta es una limitación fundamental de los códigos de bloques, y de hecho de todos los códigos. Puede ser más difícil causar un error a un solo vecino, pero el número de vecinos puede ser lo suficientemente grande como para que la probabilidad total de error se vea afectada. [ 1 ]
Véase también
Referencias
- JH van Lint (1992). Introducción a la teoría de la codificación . GTM . Vol. 86 (2.ª ed.). Springer-Verlag. p. 31. ISBN 3-540-54894-7.
- FJ MacWilliams ; NJA Sloane (1977). La teoría de los códigos correctores de errores . North-Holland. pág . 35. ISBN 0-444-85193-3.
- W. Huffman; V. Pless (2003). Fundamentos de los códigos correctores de errores . Cambridge University Press. ISBN 978-0-521-78280-7.
- S. Lin; DJ Jr. Costello (1983). Codificación de control de errores: Fundamentos y aplicaciones . Prentice-Hall. ISBN 0-13-283796-X.
Enlaces externos
- Charan Langton (2001) Conceptos de codificación y codificación por bloques
- Teoría de la codificación