fbpx
Wikipedia

Códigos lineales

En teoría de la codificación, un código lineal es un código de corrección de errores para los que cualquier combinación lineal de palabras de código es también una palabra de código. Los códigos lineales son tradicionalmente divididos en bloques de códigos y códigos convolucionales, aunque los códigos turbos pueden ser vistos como un híbrido de estos dos tipos. Los códigos lineales permiten algoritmos de codificación y decodificación más eficiente que otros códigos (cf. síndrome de decodificación).

Los códigos lineales se utilizan en la corrección de errores hacia adelante y se aplican en los métodos de transmisión de símbolos (por ejemplo, los bits) en un canal de comunicaciones, de manera que, si se producen errores en la comunicación, algunos errores pueden ser corregidos o detectados por el receptor de un bloque de mensaje. Las palabras de código en un código de bloque lineal son bloques de símbolos que son codificados usando más símbolos que el valor original para ser enviadas. Un código lineal de longitud n transmite bloques que contienen n símbolos. Por ejemplo, la [7, 4,3] código de Hamming es un código binario lineal que representa los mensajes de 4-bits utilizando palabras de código de 7-bits. Dos palabras de código distintas difieren en por lo menos tres bits. Como consecuencia de ello, hasta dos errores por palabra de código pueden ser detectados y un solo error puede ser corregido. Este código contiene 24=16 palabras de código.

Definición y parámetros

Un código lineal de longitud n y rango k es un subespacio lineal C con dimensión k del espacio vectorial   donde   es el campo finito con q elementos. Tal código se denomina un código q-ario. Si q = 2 o q = 3, el código se describe como un código binario, o un código ternario respectivamente. Los vectores en C se llaman palabras de código. El tamaño de un código es el número de palabras de código y es igual a qk.

El peso de una palabra de código es el número de sus elementos que son distintos de cero y la distancia entre dos palabras de código es la distancia de Hamming entre ellos, es decir, el número de elementos en los que difieren. La distancia d de un código lineal es el peso mínimo de sus palabras de código distintas de cero, o de forma equivalente, la distancia mínima entre palabras de código diferentes. Un código lineal de longitud n, la dimensión k, y la distancia d se denomina [n,k,d] código.

Observación: Queremos dar a   la base estándar habitual, ya que cada coordenada representa un "bit", que se transmite a través de un " canal con ruido ", con alguna pequeña probabilidad de transmisión de errores (un canal binario simétrico). Si se utiliza alguna otra base, este modelo no puede ser utilizada y la métrica de Hamming no mide el número de errores en la transmisión, que es lo que se quiere.

Propiedades

Como un subespacio lineal de  , todo el código de C (que puede ser muy grande) puede ser representado como el espacio de un conjunto minimal de palabras de código (conocida como una base en álgebra lineal). La base de estas palabras de código a menudo se ubica en las filas de una matriz G conocidas como una matriz de generación para el código C. Cuando G tiene la forma de la matriz bloque  , donde   es una matriz identidad de   y A es alguna matriz de  , entonces decimos G está en forma estándar.

Una matriz H que es representada como una función lineal   cuyo núcleo es C se denomina matriz de comprobación de C (o a veces una matriz de comprobación de paridad). Equivalentemente, H es una matriz cuyo espacio nulo es C. Si C es un código con una matriz de generación G en forma estándar, G = (Ik | A), entonces H = (−At | In − k) es una matriz de comprobación para C. El código generado por H es llamado código dual de C.

La linealidad garantiza que la distancia de Hamming mínima d entre una palabra de código c0 y cualquiera de las otras palabras de código c ≠ c0 es independiente de c0. Esto se deduce de la propiedad de que la diferencia c − c0 de dos palabras de código en C es también una palabra de código (es decir, un elemento del subespacio C), y la propiedad de que d(c, c0) = d(c − c0, 0). Estas propiedades implican que

 

En otras palabras, con el fin de encontrar la distancia mínima entre las palabras de código de un código lineal, uno sólo necesita conocer a las palabras de código distinto de cero. La palabra de código distinto de cero con el peso más pequeño tiene entonces la distancia mínima para la palabra de código cero, y por lo tanto determina la distancia mínima del código.

La distancia d de un código lineal C también es igual al número mínimo de columnas linealmente dependientes de la matriz de comprobación H. Demostración: Dado  , que es equivalente a  , donde   es la   columna  . Si se eliminan los elementos con  , los   con   son linealmente dependientes. Por lo tanto   es al menos el número mínimo de columnas linealmente dependientes. Por otra parte, considerando el conjunto mínimo de columnas linealmente dependientes   donde   es el conjunto de índice de columna. .Consideremos ahora el vector   tal que   . Notar que   porque  . Por lo tanto tenemos  , que es el número mínimo de columnas linealmente dependientes  . Por tanto, la propiedad queda demostrada.

Ejemplo: códigos de Hamming

Como la primera clase de códigos lineales desarrollados para el propósito de corrección de errores, los códigos de Hamming han sido ampliamente utilizados en los sistemas de comunicación digitales. Para cualquier entero positivo  , existe un   código de Hamming. Desde  , el código Hamming puede corregir errores de 1-bit.

Ejemplo: El código de bloque lineal con la siguiente matriz de generación y la matriz de comprobación de paridad es un   código de Hamming.

   :  

Ejemplo: códigos de Hadamard

El código Hadamard es un   código lineal y es capaz de corregir muchos errores. El código Hadamard podría ser construido columna por columna: la   columna son los bits de la representación binaria del número entero  , como se muestra en el siguiente ejemplo. El código Hadamard tiene la distancia mínima de   y por lo tanto se pueden corregir   errores.

Ejemplo: el código de bloque lineal con la siguiente matriz generadora es un   código Hadamard:  .

El código Hadamard es un caso especial de código Reed-Muller Si tomamos la primera columna (la columna todo ceros) de  , obtenemos un código simple  , que es el código dual del código de Hamming.

Algoritmo de vecino más cercano

El parámetro d está estrechamente relacionado con la capacidad de corrección de errores del código. El siguiente construcción / algoritmo ilustra este (llamado el algoritmo de decodificación del vecino más cercano):

Entrada: un "vector recibido" v en  .

Salida: una palabra de código w en C cercano a v.

  • Enumerar los elementos de la bola (Hamming) de radio t alrededor de la palabra recibida v, denota Bt(v).
    • Para cada w de Bt(v), compruebe si w esta en C. Si es así, devuelva w como la solución!
  • Falla cuando la enumeración se completa y no se ha encontrado solución.

Nota: El "fallo" no se devuelve a menos que t > (d − 1)/2. Decimos que un C es una corrección lineal de t-errores si hay como máximo una palabra de código de Bt(v), para cada v en  .

Notación Popular

Los códigos, en general, son denotados a menudo con la letra C, y un código de longitud n y de rango k (es decir, que tiene n palabras de código en su base y k filas en su matriz generadora) se conocen en general como un código (nk). Los códigos de bloque lineales se designan con frecuencia como códigos [nkd], donde d se refiere a la distancia de Hamming mínima del código entre dos palabras de código.

Observación. La notación [nkd] no se deben confundir con la notación (nMd) usada para denotar un código no lineal de longitud n, tamaño M (es decir, con palabras de código M), y distancia mínima de Hamming d.

Límite de Singleton

Lema (límite de Singleton): Cada código lineal C denotado [n, k, d] satisface que  .

Un código C cuyos parámetros satisfacer k + d = n +1 se conoce como distancia máxima separable o MDS (por sus siglas en inglés). Estos códigos, cuando existen, son de alguna manera lo mejor posible.

Si C1 y C2 son dos códigos de longitud n y si hay una permutación p en el grupo simétrico Sn para los que (c1,...,cn) está en C1 si y sólo si (cp(1),...,cp(n)) está en C2, entonces se dice que C1 y C2 son una permutación equivalente. En general, si hay una matriz monomial de   llamada   que envía C1 isomórficamente a C2 entonces decimos que C1 y C2 son equivalentes.

Lema: Cualquier código lineal es una permutación equivalente a un código que está en forma estándar.

Ejemplos

Algunos ejemplos de códigos lineales incluyen:

  • códigos de repetición
  • códigos de paridad
  • códigos cíclicos
  • códigos de Hamming
  • Código de Golay, tanto la versión binaria como la ternaria
  • Códigos polinómicos, de los cuales los códigos BCH son un ejemplo
  • Códigos Reed-Solomon
  • Códigos de Reed-Muller
  • códigos Goppa
  • Los códigos de control de paridad de baja densidad
  • códigos Expander
  • Los códigos de control de paridad multidimensionales

Véase también

  • métodos de decodificación
  •   Datos: Q1752667

códigos, lineales, teoría, codificación, código, lineal, código, corrección, errores, para, cualquier, combinación, lineal, palabras, código, también, palabra, código, códigos, lineales, tradicionalmente, divididos, bloques, códigos, códigos, convolucionales, . En teoria de la codificacion un codigo lineal es un codigo de correccion de errores para los que cualquier combinacion lineal de palabras de codigo es tambien una palabra de codigo Los codigos lineales son tradicionalmente divididos en bloques de codigos y codigos convolucionales aunque los codigos turbos pueden ser vistos como un hibrido de estos dos tipos Los codigos lineales permiten algoritmos de codificacion y decodificacion mas eficiente que otros codigos cf sindrome de decodificacion Los codigos lineales se utilizan en la correccion de errores hacia adelante y se aplican en los metodos de transmision de simbolos por ejemplo los bits en un canal de comunicaciones de manera que si se producen errores en la comunicacion algunos errores pueden ser corregidos o detectados por el receptor de un bloque de mensaje Las palabras de codigo en un codigo de bloque lineal son bloques de simbolos que son codificados usando mas simbolos que el valor original para ser enviadas Un codigo lineal de longitud n transmite bloques que contienen n simbolos Por ejemplo la 7 4 3 codigo de Hamming es un codigo binario lineal que representa los mensajes de 4 bits utilizando palabras de codigo de 7 bits Dos palabras de codigo distintas difieren en por lo menos tres bits Como consecuencia de ello hasta dos errores por palabra de codigo pueden ser detectados y un solo error puede ser corregido Este codigo contiene 24 16 palabras de codigo Indice 1 Definicion y parametros 2 Propiedades 3 Ejemplo codigos de Hamming 4 Ejemplo codigos de Hadamard 5 Algoritmo de vecino mas cercano 6 Notacion Popular 7 Limite de Singleton 8 Ejemplos 9 Vease tambienDefinicion y parametros EditarUn codigo lineal de longitud n y rango k es un subespacio lineal C con dimension k del espacio vectorial F q n displaystyle mathbb F q n donde F q displaystyle mathbb F q es el campo finito con q elementos Tal codigo se denomina un codigo q ario Si q 2 o q 3 el codigo se describe como un codigo binario o un codigo ternario respectivamente Los vectores en C se llaman palabras de codigo El tamano de un codigo es el numero de palabras de codigo y es igual a qk El peso de una palabra de codigo es el numero de sus elementos que son distintos de cero y la distancia entre dos palabras de codigo es la distancia de Hamming entre ellos es decir el numero de elementos en los que difieren La distancia d de un codigo lineal es el peso minimo de sus palabras de codigo distintas de cero o de forma equivalente la distancia minima entre palabras de codigo diferentes Un codigo lineal de longitud n la dimension k y la distancia d se denomina n k d codigo Observacion Queremos dar a F q n displaystyle mathbb F q n la base estandar habitual ya que cada coordenada representa un bit que se transmite a traves de un canal con ruido con alguna pequena probabilidad de transmision de errores un canal binario simetrico Si se utiliza alguna otra base este modelo no puede ser utilizada y la metrica de Hamming no mide el numero de errores en la transmision que es lo que se quiere Propiedades EditarComo un subespacio lineal de F q n displaystyle mathbb F q n todo el codigo de C que puede ser muy grande puede ser representado como el espacio de un conjunto minimal de palabras de codigo conocida como una base en algebra lineal La base de estas palabras de codigo a menudo se ubica en las filas de una matriz G conocidas como una matriz de generacion para el codigo C Cuando G tiene la forma de la matriz bloque G I k A displaystyle G I k A donde I k displaystyle I k es una matriz identidad de k k displaystyle k times k y A es alguna matriz de k n k displaystyle k times n k entonces decimos G esta en forma estandar Una matriz H que es representada como una funcion lineal ϕ F q n F q n k displaystyle phi mathbb F q n to mathbb F q n k cuyo nucleo es C se denomina matriz de comprobacion de C o a veces una matriz de comprobacion de paridad Equivalentemente H es una matriz cuyo espacio nulo es C Si C es un codigo con una matriz de generacion G en forma estandar G Ik A entonces H At In k es una matriz de comprobacion para C El codigo generado por H es llamado codigo dual de C La linealidad garantiza que la distancia de Hamming minima d entre una palabra de codigo c0 y cualquiera de las otras palabras de codigo c c0 es independiente de c0 Esto se deduce de la propiedad de que la diferencia c c0 de dos palabras de codigo en C es tambien una palabra de codigo es decir un elemento del subespacio C y la propiedad de que d c c0 d c c0 0 Estas propiedades implican que min c C c c 0 d c c 0 min c C c c 0 d c c 0 0 min c C c 0 d c 0 d displaystyle min c in C c neq c 0 d c c 0 min c in C c neq c 0 d c c 0 0 min c in C c neq 0 d c 0 d En otras palabras con el fin de encontrar la distancia minima entre las palabras de codigo de un codigo lineal uno solo necesita conocer a las palabras de codigo distinto de cero La palabra de codigo distinto de cero con el peso mas pequeno tiene entonces la distancia minima para la palabra de codigo cero y por lo tanto determina la distancia minima del codigo La distancia d de un codigo lineal C tambien es igual al numero minimo de columnas linealmente dependientes de la matriz de comprobacion H Demostracion Dado H c T 0 displaystyle boldsymbol H cdot boldsymbol c T boldsymbol 0 que es equivalente a i 1 n c i H i 0 displaystyle sum i 1 n c i cdot boldsymbol H i boldsymbol 0 donde H i displaystyle boldsymbol H i es la i t h displaystyle i th columna H displaystyle boldsymbol H Si se eliminan los elementos con c i 0 displaystyle c i 0 los H i displaystyle boldsymbol H i con c i 0 displaystyle c i neq 0 son linealmente dependientes Por lo tanto d displaystyle d es al menos el numero minimo de columnas linealmente dependientes Por otra parte considerando el conjunto minimo de columnas linealmente dependientes H j j S displaystyle boldsymbol H j j in S donde S displaystyle S es el conjunto de indice de columna i 1 n c i H i j S c j H j j S c j H j 0 displaystyle sum i 1 n c i cdot boldsymbol H i sum j in S c j cdot boldsymbol H j sum j notin S c j cdot boldsymbol H j boldsymbol 0 Consideremos ahora el vector c displaystyle boldsymbol c tal que c j 0 displaystyle c j 0 si j S displaystyle j notin S Notar que c C displaystyle boldsymbol c in C porque H c T 0 displaystyle boldsymbol H cdot boldsymbol c T boldsymbol 0 Por lo tanto tenemos d w t c displaystyle d leq wt boldsymbol c que es el numero minimo de columnas linealmente dependientes H displaystyle boldsymbol H Por tanto la propiedad queda demostrada Ejemplo codigos de Hamming EditarArticulo principal Codigo de Hamming Como la primera clase de codigos lineales desarrollados para el proposito de correccion de errores los codigos de Hamming han sido ampliamente utilizados en los sistemas de comunicacion digitales Para cualquier entero positivo r 2 displaystyle r geq 2 existe un 2 r 1 2 r r 1 3 2 displaystyle 2 r 1 2 r r 1 3 2 codigo de Hamming Desde d 3 displaystyle d 3 el codigo Hamming puede corregir errores de 1 bit Ejemplo El codigo de bloque lineal con la siguiente matriz de generacion y la matriz de comprobacion de paridad es un 7 4 3 2 displaystyle 7 4 3 2 codigo de Hamming G 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 displaystyle boldsymbol G begin pmatrix 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 end pmatrix H 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 displaystyle boldsymbol H begin pmatrix 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 end pmatrix Ejemplo codigos de Hadamard EditarArticulo principal Codigo de Hadamard El codigo Hadamard es un 2 r r 2 r 1 2 displaystyle 2 r r 2 r 1 2 codigo lineal y es capaz de corregir muchos errores El codigo Hadamard podria ser construido columna por columna la i t h displaystyle i th columna son los bits de la representacion binaria del numero entero i displaystyle i como se muestra en el siguiente ejemplo El codigo Hadamard tiene la distancia minima de 2 r 1 displaystyle 2 r 1 y por lo tanto se pueden corregir 2 r 2 1 displaystyle 2 r 2 1 errores Ejemplo el codigo de bloque lineal con la siguiente matriz generadora es un 8 3 4 2 displaystyle 8 3 4 2 codigo Hadamard G H a d 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 displaystyle boldsymbol G Had begin pmatrix 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 end pmatrix El codigo Hadamard es un caso especial de codigo Reed Muller Si tomamos la primera columna la columna todo ceros de G H a d displaystyle boldsymbol G Had obtenemos un codigo simple 7 3 4 2 displaystyle 7 3 4 2 que es el codigo dual del codigo de Hamming Algoritmo de vecino mas cercano EditarEl parametro d esta estrechamente relacionado con la capacidad de correccion de errores del codigo El siguiente construccion algoritmo ilustra este llamado el algoritmo de decodificacion del vecino mas cercano Entrada un vector recibido v en F q n displaystyle mathbb F q n Salida una palabra de codigo w en C cercano a v Enumerar los elementos de la bola Hamming de radio t alrededor de la palabra recibida v denota Bt v Para cada w de Bt v compruebe si w esta en C Si es asi devuelva w como la solucion Falla cuando la enumeracion se completa y no se ha encontrado solucion Nota El fallo no se devuelve a menos que t gt d 1 2 Decimos que un C es una correccion lineal de t errores si hay como maximo una palabra de codigo de Bt v para cada v en F q n displaystyle mathbb F q n Notacion Popular EditarLos codigos en general son denotados a menudo con la letra C y un codigo de longitud n y de rango k es decir que tiene n palabras de codigo en su base y k filas en su matriz generadora se conocen en general como un codigo n k Los codigos de bloque lineales se designan con frecuencia como codigos n k d donde d se refiere a la distancia de Hamming minima del codigo entre dos palabras de codigo Observacion La notacion n k d no se deben confundir con la notacion n M d usada para denotar un codigo no lineal de longitud n tamano M es decir con palabras de codigo M y distancia minima de Hamming d Limite de Singleton EditarLema limite de Singleton Cada codigo lineal C denotado n k d satisface que k d n 1 displaystyle k d leq n 1 Un codigo C cuyos parametros satisfacer k d n 1 se conoce como distancia maxima separable o MDS por sus siglas en ingles Estos codigos cuando existen son de alguna manera lo mejor posible Si C1 y C2 son dos codigos de longitud n y si hay una permutacion p en el grupo simetrico Sn para los que c1 cn esta en C1 si y solo si cp 1 cp n esta en C2 entonces se dice que C1 y C2 son una permutacion equivalente En general si hay una matriz monomial de n n displaystyle n times n llamada M F q n F q n displaystyle M colon mathbb F q n to mathbb F q n que envia C1 isomorficamente a C2 entonces decimos que C1 y C2 son equivalentes Lema Cualquier codigo lineal es una permutacion equivalente a un codigo que esta en forma estandar Ejemplos EditarAlgunos ejemplos de codigos lineales incluyen codigos de repeticion codigos de paridad codigos ciclicos codigos de Hamming Codigo de Golay tanto la version binaria como la ternaria Codigos polinomicos de los cuales los codigos BCH son un ejemplo Codigos Reed Solomon Codigos de Reed Muller codigos Goppa Los codigos de control de paridad de baja densidad codigos Expander Los codigos de control de paridad multidimensionalesVease tambien Editarmetodos de decodificacion Datos Q1752667Obtenido de https es wikipedia org w index php title Codigos lineales amp oldid 117485094, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos