

El código Hadamard es un código de corrección de errores que recibe su nombre del matemático francés Jacques Hadamard y se utiliza para la detección y corrección de errores al transmitir mensajes a través de canales muy ruidosos o poco fiables. En 1971, el código se utilizó para transmitir fotos de Marte a la Tierra desde la sonda espacial Mariner 9 de la NASA . [ 1 ] Debido a sus propiedades matemáticas únicas, el código Hadamard no solo es utilizado por ingenieros, sino que también se estudia intensamente en teoría de la codificación , matemáticas e informática teórica . El código Hadamard también se conoce como código Walsh , familia Walsh [ 2 ] y código Walsh-Hadamard [ 3 ] en reconocimiento al matemático estadounidense Joseph Leonard Walsh .
La especificación matemática del código Hadamard es bastante compleja y se describe en Construcciones . Es un ejemplo de un código lineal de longitudsobre un alfabeto binario . Desafortunadamente, este término es algo ambiguo, ya que algunas referencias asumen una longitud de mensaje.mientras que otros asumen una longitud de mensaje deEn este artículo, el primer caso se denomina código de Hadamard, mientras que el segundo se denomina código de Hadamard aumentado .
El código Hadamard es único en el sentido de que cada palabra clave distinta de cero tiene un peso de Hamming de exactamente, lo que implica que la distancia del código también es. En la notación estándar de la teoría de codificación para códigos de bloques , el código de Hadamard es un-código, es decir, es un código lineal sobre un alfabeto binario , tiene longitud de bloque, longitud (o dimensión) del mensajey distancia mínimaLa longitud del bloque es muy grande en comparación con la longitud del mensaje, pero, por otro lado, los errores se pueden corregir incluso en condiciones extremadamente ruidosas.
El código Hadamard aumentado es una versión ligeramente mejorada del código Hadamard; es un-código y por lo tanto tiene una tasa ligeramente mejor mientras mantiene la distancia relativa dey, por lo tanto, es el preferido en aplicaciones prácticas. En teoría de la comunicación, se le llama simplemente código de Hadamard y es el mismo que el código de Reed-Muller de primer orden sobre el alfabeto binario. [ 4 ]
Normalmente, los códigos de Hadamard se basan en la construcción de matrices de Hadamard de Sylvester , pero el término "código de Hadamard" también se usa para referirse a códigos construidos a partir de matrices de Hadamard arbitrarias , que no son necesariamente del tipo Sylvester. En general, dicho código no es lineal. Estos códigos fueron construidos por primera vez por Raj Chandra Bose y Sharadchandra Shankar Shrikhande en 1959. [ 5 ] Si n es el tamaño de la matriz de Hadamard, el código tiene parámetros, lo que significa que es un código binario no necesariamente lineal con 2 n palabras clave de longitud de bloque n y distancia mínima n /2. El esquema de construcción y decodificación que se describe a continuación se aplica para n general , pero la propiedad de linealidad y la identificación con los códigos Reed-Muller requieren que n sea una potencia de 2 y que la matriz de Hadamard sea equivalente a la matriz construida por el método de Sylvester.
El código Hadamard es un código decodificable localmente , que proporciona una forma de recuperar partes del mensaje original con alta probabilidad , mientras que solo se examina una pequeña fracción de la palabra recibida. Esto da lugar a aplicaciones en la teoría de la complejidad computacional y particularmente en el diseño de pruebas verificables probabilísticamente . Dado que la distancia relativa del código Hadamard es 1/2, normalmente solo se puede esperar recuperar como máximo una fracción de error de 1/4. Sin embargo, utilizando la decodificación de listas , es posible calcular una lista corta de posibles mensajes candidatos siempre que haya menos deAlgunos de los bits de la palabra recibida se han corrompido.
En la comunicación de acceso múltiple por división de código (CDMA), el código Hadamard se denomina código Walsh y se utiliza para definir canales de comunicación individuales . En la literatura sobre CDMA, es habitual referirse a las palabras clave como «códigos». Cada usuario utilizará una palabra clave, o «código», diferente para modular su señal. Dado que las palabras clave Walsh son matemáticamente ortogonales , una señal codificada con Walsh aparece como ruido aleatorio para un terminal móvil compatible con CDMA , a menos que dicho terminal utilice la misma palabra clave que la utilizada para codificar la señal entrante . [ 6 ]
Historia
El nombre más común para este código en la literatura es código Hadamard . Sin embargo, en la actualidad, estos códigos de corrección de errores se conocen como códigos Walsh-Hadamard.
Hay una razón para ello:
Jacques Hadamard no inventó el código él mismo, pero definió las matrices de Hadamard alrededor de 1893, mucho antes de que se desarrollara el primer código corrector de errores , el código de Hamming , en la década de 1940.
El código de Hadamard se basa en matrices de Hadamard, y aunque existen muchas matrices de Hadamard diferentes que podrían utilizarse, normalmente solo se utiliza la construcción de matrices de Hadamard de Sylvester para obtener las palabras clave del código de Hadamard.
James Joseph Sylvester desarrolló su construcción de matrices de Hadamard en 1867, lo cual, de hecho, es anterior al trabajo de Hadamard sobre dichas matrices. Por lo tanto, el nombre de código de Hadamard es objeto de controversia y, en ocasiones, se le denomina código de Walsh , en honor al matemático estadounidense Joseph Leonard Walsh .
Durante la misión Mariner 9 de 1971 se utilizó un código Hadamard aumentado para corregir los errores de transmisión de imágenes. Los valores binarios utilizados en esta misión tenían una longitud de 6 bits, que representaban 64 valores de escala de grises .
Debido a las limitaciones en la calidad de la alineación del transmisor en ese momento (debido a problemas con el bucle de seguimiento Doppler), la longitud máxima de datos útiles era de aproximadamente 30 bits. En lugar de usar un código de repetición , se utilizó un código Hadamard [32, 6, 16].
Mediante este esquema se podían corregir errores de hasta 7 bits por palabra de 32 bits. En comparación con un código de 5 repeticiones , las propiedades de corrección de errores de este código Hadamard son mucho mejores, aunque su velocidad es comparable. El algoritmo de decodificación eficiente fue un factor importante en la decisión de utilizar este código.
El circuito utilizado se denominaba "Máquina Verde". Empleaba la transformada rápida de Fourier , que puede triplicar la velocidad de decodificación. Desde la década de 1990, el uso de este código por parte de los programas espaciales prácticamente ha cesado, y la Red del Espacio Profundo de la NASA no admite este sistema de corrección de errores para sus antenas de más de 26 metros.
Construcciones
Si bien todos los códigos de Hadamard se basan en matrices de Hadamard, su construcción difiere sutilmente según el campo científico, el autor y el uso. Los ingenieros, que utilizan los códigos para la transmisión de datos, y los teóricos de la codificación , que analizan las propiedades extremas de los códigos, suelen buscar que la tasa de transmisión sea lo más alta posible, incluso si esto implica que la construcción sea matemáticamente un poco menos elegante.
Por otro lado, para muchas aplicaciones de los códigos de Hadamard en la informática teórica no es tan importante lograr la tasa óptima, por lo que se prefieren construcciones más simples de códigos de Hadamard, ya que se pueden analizar de manera más elegante.
Construcción utilizando productos internos
Cuando se le da un mensaje binariode longitudEl código Hadamard codifica el mensaje en una palabra clave.utilizando una función de codificación Esta función utiliza el producto interno.de dos vectores, que se define de la siguiente manera:
Luego la codificación de Hadamard dese define como la secuencia de todos los productos internos con:
Como se mencionó anteriormente, el código Hadamard aumentado se utiliza en la práctica ya que el código Hadamard en sí mismo es algo ineficiente. Esto se debe a que, si el primer bit dees cero,, entonces el producto interno no contiene información alguna sobrey por lo tanto, es imposible decodificarlo completamente.a partir de esas posiciones de la palabra clave solamente. Por otro lado, cuando la palabra clave está restringida a las posiciones donde, todavía es posible decodificar completamentePor lo tanto, tiene sentido restringir el código de Hadamard a estas posiciones, lo que da lugar a la codificación de Hadamard aumentada de; eso es,.
Construcción mediante una matriz generadora
El código de Hadamard es un código lineal, y todos los códigos lineales pueden generarse mediante una matriz generadora.. Esta es una matriz tal quese aplica a todosdonde el mensajese considera como un vector fila y el producto vector-matriz se entiende en el espacio vectorial sobre el campo finito.. En particular, una forma equivalente de escribir la definición del producto interno para el código de Hadamard surge al usar la matriz generadora cuyas columnas consisten en todas cadenasde longitud, eso es,
dóndees el-ésimo vector binario en orden lexicográfico . Por ejemplo, la matriz generadora para el código Hadamard de dimensiónes:
La matrizes un-matriz y da lugar al operador lineal.
La matriz generadora del código Hadamard aumentado se obtiene restringiendo la matriz.a las columnas cuya primera entrada es uno. Por ejemplo, la matriz generadora para el código Hadamard aumentado de dimensiónes:
Entonceses una aplicación lineal con.
Para general, la matriz generadora del código Hadamard aumentado es una matriz de verificación de paridad para el código Hamming extendido de longitudy dimensiónlo que convierte al código de Hadamard aumentado en el código dual del código de Hamming extendido. Por lo tanto, una forma alternativa de definir el código de Hadamard es en términos de su matriz de verificación de paridad: la matriz de verificación de paridad del código de Hadamard es igual a la matriz generadora del código de Hamming.
Construcción mediante matrices de Hadamard generales
Los códigos de Hadamard se obtienen a partir de una matriz de Hadamard H de n × n . En particular, las 2n palabras clave del código son las filas de H y las filas de −H . Para obtener un código sobre el alfabeto {0,1}, se aplica a los elementos de la matriz la transformación −1 ↦ 1, 1 ↦ 0, o, equivalentemente, x ↦ (1 − x )/2. Que la distancia mínima del código sea n /2 se deduce de la propiedad definitoria de las matrices de Hadamard, a saber, que sus filas son mutuamente ortogonales. Esto implica que dos filas distintas de una matriz de Hadamard difieren exactamente en n /2 posiciones, y, dado que la negación de una fila no afecta a la ortogonalidad, que cualquier fila de H difiere de cualquier fila de −H también en n /2 posiciones, excepto cuando las filas se corresponden, en cuyo caso difieren en n posiciones.
Para obtener el código de Hadamard aumentado anterior con, la matriz de Hadamard elegida H debe ser de tipo Sylvester, lo que da lugar a una longitud de mensaje de.
Distancia
La distancia de un código es la distancia de Hamming mínima entre dos palabras clave distintas cualesquiera, es decir, el número mínimo de posiciones en las que dos palabras clave distintas difieren. Dado que el código de Walsh-Hadamard es un código lineal , la distancia es igual al peso de Hamming mínimo entre todas sus palabras clave no nulas. Todas las palabras clave no nulas del código de Walsh-Hadamard tienen un peso de Hamming exactamente igual a .mediante el siguiente argumento.
Dejarsea un mensaje distinto de cero. Entonces, el siguiente valor es exactamente igual a la fracción de posiciones en la palabra clave que son iguales a uno:
El hecho de que este último valor sea exactamenteSe denomina principio de subsuma aleatoria . Para comprobar que es cierto, supongamos sin pérdida de generalidad que. Luego, cuando se condiciona a los valores de, el evento es equivalente apara algunosDependiendo dey. La probabilidad de queSucede exactamentePor lo tanto, de hecho, todas las palabras clave no nulas del código Hadamard tienen un peso de Hamming relativo.y por lo tanto, su distancia relativa es.
La distancia relativa del código Hadamard aumentado estambién, pero ya no tiene la propiedad de que cada palabra clave distinta de cero tenga exactamente el mismo peso.ya que todosvector ses una palabra clave del código Hadamard aumentado. Esto se debe a que el vectorcodifica aAdemás, siempre quees distinto de cero y no es el vector, el principio de subsuma aleatoria se aplica de nuevo, y el peso relativo dees exactamente.
Decodificabilidad local
Un código decodificable localmente es un código que permite recuperar un solo bit del mensaje original con alta probabilidad, simplemente analizando una pequeña porción de la palabra recibida.
Un código es-consulta decodificable localmente si un bit de mensaje,, se puede recuperar comprobandofragmentos de la palabra recibida. Más formalmente, un código,, es-localmente decodificable, si existe un decodificador probabilístico,, de tal manera que (Nota:representa la distancia de Hamming entre vectoresy) :
,implica que
Teorema 1: El código de Walsh-Hadamard es-decodificable localmente para todos.
Lema 1: Para todas las palabras clave,en un código Walsh-Hadamard,,, dónderepresentar los bits enen puestosyrespectivamente yrepresenta el bit en la posición.
Demostración del lema 1
Dejarser la palabra clave encorrespondiente al mensaje.
Dejarsea la matriz generadora de.
Por definición,. A partir de esto,. Mediante la construcción de,. Por lo tanto, por sustitución,.
Demostración del teorema 1
Para demostrar el teorema 1, construiremos un algoritmo de decodificación y probaremos su corrección.
Algoritmo
Entrada: Palabra recibida
Para cada:
- Elegiruniformemente al azar.
- Elegirde tal manera que, dóndees el-ésimo vector base estándar yes el xor bit a bit dey.
- .
Salida: Mensaje
Prueba de corrección
Para cualquier mensaje,y recibió noticiasde tal manera quedifiere deen como máximofracción de bits,puede ser decodificado con probabilidad al menos.
Por el lema 1,. Desdeyse eligen uniformemente, la probabilidad de quees como máximo. De manera similar, la probabilidad de quees como máximo. Por el límite de unión , la probabilidad de que o bienono coinciden con los bits correspondientes enes como máximo. Si ambosycorresponder a, entonces se aplicará el lema 1 y, por lo tanto, el valor propio dese calculará. Por lo tanto, la probabilidadse decodifica correctamente es al menos. Por lo tanto,y paraser positivo,.
Por lo tanto, el código Walsh-Hadamard esdecodificable localmente para.
Optimalidad
Para k ≤ 7, se ha demostrado que los códigos lineales de Hadamard son óptimos en el sentido de distancia mínima. [ 7 ]
Véase también
- Secuencia de Zadoff-Chu : una mejora con respecto a los códigos de Walsh-Hadamard.
Referencias
- ↑ Malek, Massoud (2006). "Códigos de Hadamard". Teoría de la codificación (PDF) . Archivado del original (PDF) el 9 de enero de 2020.
- ↑ Amadei, M.; Manzoli, Umberto; Merani, Maria Luisa (17 de noviembre de 2002). "Sobre la asignación de códigos Walsh y cuasi-ortogonales en un sistema DS-CDMA multicarrier con múltiples clases de usuarios". Conferencia Global de Telecomunicaciones, 2002. GLOBECOM'02. IEEE . Vol. 1. IEEE . págs. 841–845 . doi : 10.1109/GLOCOM.2002.1188196 . ISBN 0-7803-7632-3.
- ↑ Arora, Sanjeev ; Barak, Boaz (2009). "Sección 19.2.2". Complejidad computacional: un enfoque moderno . Cambridge University Press . ISBN 978-0-521-42426-4.
- ↑ Guruswami, Venkatesan (2009). Decodificación de listas de códigos binarios (PDF) . pág. 3.
- ↑ Bose, Raj Chandra ; Shrikhande, Sharadchandra Shankar (junio de 1959). "Una nota sobre un resultado en la teoría de la construcción de códigos". Information and Control . 2 (2): 183– 194. CiteSeerX 10.1.1.154.2879 . doi : 10.1016/S0019-9958(59)90376-6 .
- ↑ Langton, Charan [en Wikidata] (2002). "Tutorial de CDMA: Guía intuitiva de los principios de las comunicaciones" (PDF) . De lo complejo a lo real. Archivado (PDF) del original el 20 de julio de 2011. Recuperado el 10 de noviembre de 2017 .
- ↑ Jaffe, David B.; Bouyukliev, Iliya. "Códigos lineales binarios óptimos de dimensión como máximo siete" . Archivado del original el 8 de agosto de 2007. Recuperado el 21 de agosto de 2007 .
Lecturas adicionales
- Rudra, Atri. "Código de Hamming y límite de Hamming" (PDF) . Apuntes de clase .
- Rudolph, Dietmar; Rudolph, Matthias (12 de abril de 2011). "46.4. Códigos Hadamard o Walsh". Modulationsverfahren (PDF) (en alemán). Cottbus, Alemania: Universidad Tecnológica de Brandeburgo (BTU). pág. 214. Archivado (PDF) del original el 16 de junio de 2021. Consultado el 14 de junio de 2021 .(xiv+225 páginas)
- Teoría de la codificación
- Detección y corrección de errores