Articulo de referencia

Código de corrección de errores en ráfaga

En la teoría de la codificación , los códigos de corrección de errores en ráfagas emplean métodos para corregir errores en ráfagas , que son errores que ocurren en muchos bits c...

En la teoría de la codificación , los códigos de corrección de errores en ráfagas emplean métodos para corregir errores en ráfagas , que son errores que ocurren en muchos bits consecutivos en lugar de ocurrir en bits de forma independiente entre sí.

Se han diseñado numerosos códigos para corregir errores aleatorios . Sin embargo, en ocasiones, los canales pueden introducir errores localizados en intervalos cortos. Estos errores se producen en ráfagas (denominadas errores de ráfaga ) porque afectan a muchos bits consecutivos. Se pueden encontrar numerosos ejemplos de errores de ráfaga en soportes de almacenamiento. Estos errores pueden deberse a daños físicos, como arañazos en un disco o un rayo en el caso de canales inalámbricos. No son independientes; tienden a concentrarse espacialmente. Si un bit presenta un error, es probable que los bits adyacentes también estén dañados. Los métodos utilizados para corregir errores aleatorios resultan ineficientes para corregir errores de ráfaga.

Definiciones

Una ráfaga de longitud 5

Una ráfaga de longitud [ 1 ]

Di una palabra clavedo{\displaystyle C}se transmite y se recibe comoY=do+mi.{\displaystyle Y=C+E.}Luego, el vector de errormi{\displaystyle E}se denomina ráfaga de longitud{\displaystyle \ell }si los componentes no nulos demi{\displaystyle E}están confinados a{\displaystyle \ell }componentes consecutivos. Por ejemplo,mi=(010000110){\displaystyle E=(0{\textbf {1000011}}0)}es una explosión de longitud=7.{\displaystyle \ell =7.}

Si bien esta definición es suficiente para describir qué es un error de ráfaga, la mayoría de las herramientas desarrolladas para la corrección de este tipo de errores se basan en códigos cíclicos. Esto nos lleva a nuestra siguiente definición.

Una ráfaga cíclica de longitud [ 1 ]

Un vector de errormi{\displaystyle E}se denomina error de ráfaga cíclica de longitud{\displaystyle \ell }si sus componentes no nulos se limitan a{\displaystyle \ell }componentes cíclicamente consecutivos. Por ejemplo, el vector de error considerado anteriormentemi=(010000110){\displaystyle E=(010000110)}, es una ráfaga cíclica de longitud=5{\displaystyle \ell =5}, puesto que consideramos el error comenzando en la posición6{\displaystyle 6}y terminando en la posición1{\displaystyle 1}. Observe que los índices son0{\displaystyle 0}-basado, es decir, el primer elemento está en la posición0{\displaystyle 0}.

En el resto de este artículo, utilizaremos el término ráfaga para referirnos a una ráfaga cíclica, a menos que se indique lo contrario.

Descripción de la ráfaga

A menudo es útil tener una definición compacta de un error de ráfaga, que abarque no solo su duración, sino también el patrón y la ubicación de dicho error. Definimos una descripción de ráfaga como una tupla.(PAG,L){\displaystyle (P,L)}dóndePAG{\displaystyle P}es el patrón del error (es decir, la cadena de símbolos que comienza con la primera entrada distinta de cero en el patrón de error y termina con el último símbolo distinto de cero), yL{\displaystyle L}es la ubicación, en la palabra clave, donde se puede encontrar la ráfaga. [ 1 ]

Por ejemplo, la descripción de la ráfaga del patrón de error.mi=(010000110){\displaystyle E=(010000110)}esD=(1000011,1){\displaystyle D=(1000011,1)}Nótese que dicha descripción no es única, porqueD=(11001,6){\displaystyle D'=(11001,6)}describe el mismo error de ráfaga. En general, si el número de componentes distintos de cero enmi{\displaystyle E}esw{\displaystyle w}, entoncesmi{\displaystyle E}tendráw{\displaystyle w}diferentes descripciones de ráfaga, cada una comenzando en una entrada distinta de cero demi{\displaystyle E}Para remediar los problemas que surgen de la ambigüedad de las descripciones de ráfagas con el teorema que se presenta a continuación, sin embargo, antes de hacerlo necesitamos una definición.

Definición. El número de símbolos en un patrón de error determinado.y,{\displaystyle y,}se denota porlminortegramoth(y).{\displaystyle \mathrm {longitud} (y).}

Teorema (Unicidad de las descripciones de ráfagas) Supongamos quemi{\displaystyle E}es un vector de error de longitudnorte{\displaystyle n}con dos descripciones de ráfaga(PAG1,L1){\displaystyle (P_{1},L_{1})}y(PAG2,L2){\displaystyle (P_{2},L_{2})}. Silminortegramoth(PAG1)+lminortegramoth(PAG2)norte+1,{\displaystyle \mathrm {length} (P_{1})+\mathrm {length} (P_{2})\leqslant n+1,}entonces las dos descripciones son idénticas, es decir, sus componentes son equivalentes. [ 2 ]

Prueba

Dejarw{\displaystyle w}sea ​​el peso de Hamming (o el número de entradas distintas de cero) demi{\displaystyle E}. Entoncesmi{\displaystyle E}tiene exactamentew{\displaystyle w}descripciones de errores. Paraw=0,1,{\displaystyle w=0,1,}No hay nada que probar. Por lo tanto, asumimos quew2{\displaystyle w\geqslant 2}y que las descripciones no son idénticas. Observamos que cada entrada distinta de cero demi{\displaystyle E}aparecerá en el patrón y, por lo tanto, los componentes demi{\displaystyle E}Los elementos no incluidos en el patrón formarán una secuencia cíclica de ceros, que comienza después de la última entrada distinta de cero y continúa justo antes de la primera entrada distinta de cero del patrón. Llamamos al conjunto de índices correspondientes a esta secuencia la secuencia de ceros. Observamos inmediatamente que cada descripción de ráfaga tiene asociada una secuencia de ceros y que cada secuencia de ceros es disjunta. Dado que tenemosw{\displaystyle w}cero carreras, y cada una es disjunta, tenemos un total denortew{\displaystyle nw}elementos distintos en todas las secuencias de ceros. Por otro lado tenemos:nortew=número de ceros en mi(nortelminortegramoth(PAG1))+(nortelminortegramoth(PAG2))=2norte(lminortegramoth(PAG1)+lminortegramoth(PAG2))2norte(norte+1)lminortegramoth(PAG1)+lminortegramoth(PAG2)norte+1=norte1{\displaystyle {\begin{aligned}nw={\text{número de ceros en }}E&\geqslant (n-\mathrm {longitud} (P_{1}))+(n-\mathrm {longitud} (P_{2}))\\&=2n-\left(\mathrm {longitud} (P_{1})+\mathrm {longitud} (P_{2})\right)\\&\geqslant 2n-(n+1)&&\mathrm {longitud} (P_{1})+\mathrm {longitud} (P_{2})\leqslant n+1\\&=n-1\end{aligned}}} Esto contradicew2.{\displaystyle w\geqslant 2.}Por lo tanto, las descripciones de los errores en ráfaga son idénticas.

Un corolario del teorema anterior es que no podemos tener dos descripciones distintas de ráfagas para ráfagas de longitud12(norte+1).{\displaystyle {\tfrac {1}{2}}(n+1).}

Códigos cíclicos para la corrección de errores en ráfagas

Los códigos cíclicos se definen de la siguiente manera: piense en elq{\displaystyle q}símbolos como elementos enFq{\displaystyle \mathbb {F} _{q}}Ahora podemos pensar en las palabras como polinomios sobreFq,{\displaystyle \mathbb {F} _{q},}donde los símbolos individuales de una palabra corresponden a los diferentes coeficientes del polinomio. Para definir un código cíclico, elegimos un polinomio fijo, llamado polinomio generador . Las palabras clave de este código cíclico son todos los polinomios divisibles por este polinomio generador.

Las palabras clave son polinomios de gradonorte1{\displaystyle \leqslant n-1}. Supongamos que el polinomio generadorgramo(incógnita){\displaystyle g(x)}tiene títulor{\displaystyle r}Polinomios de gradonorte1{\displaystyle \leqslant n-1}que sean divisibles porgramo(incógnita){\displaystyle g(x)}resultado de multiplicargramo(incógnita){\displaystyle g(x)}por polinomios de gradonorte1r{\displaystyle \leqslant n-1-r}. Tenemosqnorter{\displaystyle q^{nr}}tales polinomios. Cada uno de ellos corresponde a una palabra clave. Por lo tanto,k=norter{\displaystyle k=nr}para códigos cíclicos.

Los códigos cíclicos pueden detectar todas las ráfagas de longitud hasta=nortek=r{\displaystyle \ell =nk=r}Veremos más adelante que la capacidad de detección de errores en ráfaga de cualquier(norte,k){\displaystyle (n,k)}El código está delimitado desde arriba pornortek{\displaystyle \ell \leqslant nk}Los códigos cíclicos se consideran óptimos para la detección de errores en ráfaga, ya que cumplen con este límite superior:

Teorema (Capacidad de corrección de ráfagas cíclicas) Todo código cíclico con polinomio generador de grador{\displaystyle r}puede detectar todas las ráfagas de longitudr.{\displaystyle \leqslant r.}

Prueba

Necesitamos demostrar que si agregas una ráfaga de longitudr{\displaystyle \leqslant r}a una palabra clave (es decir, a un polinomio que sea divisible porgramo(incógnita){\displaystyle g(x)}), entonces el resultado no será una palabra clave (es decir, el polinomio correspondiente no es divisible porgramo(incógnita){\displaystyle g(x)}). Basta con demostrar que no hay explosión de longitudr{\displaystyle \leqslant r}es divisible porgramo(incógnita){\displaystyle g(x)}Tal explosión tiene la formaincógnitaib(incógnita){\displaystyle x^{i}b(x)}, dóndegrados(b(incógnita))<r.{\displaystyle \deg(b(x))<r.}Por lo tanto,b(incógnita){\displaystyle b(x)}no es divisible porgramo(incógnita){\displaystyle g(x)}(porque este último tiene grador{\displaystyle r}).gramo(incógnita){\displaystyle g(x)}no es divisible porincógnita{\displaystyle x}(De lo contrario, todas las palabras clave comenzarían con0{\displaystyle 0}). Por lo tanto,incógnitai{\displaystyle x^{i}}no es divisible porgramo(incógnita){\displaystyle g(x)}también.

La demostración anterior sugiere un algoritmo simple para la detección/corrección de errores en ráfagas en códigos cíclicos: dada una palabra transmitida (es decir, un polinomio de gradonorte1{\displaystyle \leqslant n-1}), calcula el resto de esta palabra cuando se divide porgramo(incógnita){\displaystyle g(x)}. Si el resto es cero (es decir, si la palabra es divisible porgramo(incógnita){\displaystyle g(x)}), entonces es una palabra clave válida. De lo contrario, reporte un error. Para corregir este error, reste este resto de la palabra transmitida. El resultado de la resta será divisible porgramo(incógnita){\displaystyle g(x)}(es decir, será una palabra clave válida).

Por el límite superior en la detección de errores en ráfaga (nortek=r{\displaystyle \ell \leqslant nk=r}), sabemos que un código cíclico no puede detectar todas las ráfagas de longitud>r{\displaystyle \ell >r}Sin embargo, los códigos cíclicos pueden detectar la mayoría de las ráfagas de longitud>r{\displaystyle >r}. La razón es que la detección falla solo cuando la ráfaga es divisible porgramo(incógnita){\displaystyle g(x)}. Sobre alfabetos binarios, existen22{\displaystyle 2^{\ell -2}}ráfagas de longitud{\displaystyle \ell }De esos, solo22r{\displaystyle 2^{\ell -2-r}}son divisibles porgramo(incógnita){\displaystyle g(x)}Por lo tanto, la probabilidad de fallo de detección es muy pequeña (2r{\displaystyle 2^{-r}}) suponiendo una distribución uniforme sobre todas las ráfagas de longitud{\displaystyle \ell }.

A continuación, analizaremos un teorema fundamental sobre códigos cíclicos que ayudará a diseñar códigos eficientes de corrección de errores en ráfagas, clasificando las ráfagas en diferentes clases laterales.

Teorema ( clases laterales distintas ) Un código linealdo{\displaystyle C}es un{\displaystyle \ell }-código de corrección de errores de ráfaga si y solo si todos los errores de ráfaga de longitud{\displaystyle \leqslant \ell }yacen en distintos grupos dedo{\displaystyle C}.

Prueba

Dejarmi1,mi2{\displaystyle \mathbf {e} _{1},\mathbf {e} _{2}}ser errores de ráfaga distintos de longitud{\displaystyle \leqslant \ell }que se encuentran en el mismo conjunto lateral de códigodo{\displaystyle C}. Entoncesdo=mi1mi2{\displaystyle \mathbf {c} =\mathbf {e} _{1}-\mathbf {e} _{2}}es una palabra clave. Por lo tanto, si recibimosmi1,{\displaystyle \mathbf {e} _{1},}podemos decodificarlo de cualquier manera0{\displaystyle \mathbf {0} }odo{\displaystyle \mathbf {c} }. Por el contrario, si todos los errores de ráfagami1{\displaystyle \mathbf {e} _{1}}ymi2{\displaystyle \mathbf {e} _{2}}Si no se encuentran en la misma clase lateral, entonces cada error de ráfaga se determina por su síndrome. El error puede corregirse a través de su síndrome. Por lo tanto, un código linealdo{\displaystyle C}es un{\displaystyle \ell }-código de corrección de errores de ráfaga si y solo si todos los errores de ráfaga de longitud{\displaystyle \leqslant \ell }yacen en distintos grupos dedo{\displaystyle C}.

Teorema (Clasificación de código de error de ráfaga) Seado{\displaystyle C}ser lineal{\displaystyle \ell }-código de corrección de errores de ráfaga. Entonces no hay ráfaga distinta de cero de longitud2{\displaystyle \leqslant 2\ell }puede ser una palabra clave.

Prueba

Dejardo{\displaystyle c}ser una palabra clave con una ráfaga de longitud2{\displaystyle \leqslant 2\ell }Por lo tanto, tiene el patrón(0,1,,v,1,0){\displaystyle (0,1,u,v,1,0)}, dónde{\displaystyle u}yv{\displaystyle v}son palabras de longitud1.{\displaystyle \leqslant \ell -1.}Por lo tanto, las palabrasw=(0,1,,0,0,0){\displaystyle w=(0,1,u,0,0,0)}ydow=(0,0,0,v,1,0){\displaystyle cw=(0,0,0,v,1,0)}son dos ráfagas de longitud{\displaystyle \leqslant \ell }Para los códigos lineales binarios, pertenecen a la misma clase lateral. Esto contradice el Teorema de Clases Laterales Distintas, por lo tanto, no hay ráfaga no nula de longitud2{\displaystyle \leqslant 2\ell }puede ser una palabra clave.

límites de corrección de errores en ráfaga

Límites superiores en la detección y corrección de errores en ráfaga

Por límite superior, nos referimos a un límite en nuestra capacidad de detección de errores que nunca podemos superar. Supongamos que queremos diseñar un(norte,k){\displaystyle (n,k)}código que puede detectar todos los errores de ráfaga de longitud.{\displaystyle \leqslant \ell .}Una pregunta natural que cabe plantearse es: dadonorte{\displaystyle n}yk{\displaystyle k}¿Cuál es el máximo?{\displaystyle \ell }¿Qué es lo que nunca podremos superar? En otras palabras, ¿cuál es el límite superior de la longitud?{\displaystyle \ell }de ráfagas que podemos detectar usando cualquier(norte,k){\displaystyle (n,k)}¿Código? El siguiente teorema proporciona una respuesta a esta pregunta.

Teorema (Capacidad de detección de errores en ráfaga) La capacidad de detección de errores en ráfaga de cualquier(norte,k){\displaystyle (n,k)}El código esnortek.{\displaystyle \ell \leqslant nk.}

Prueba

Primero observamos que un código puede detectar todas las ráfagas de longitud{\displaystyle \leqslant \ell }si y solo si no hay dos palabras clave que difieran en una ráfaga de longitud{\displaystyle \leqslant \ell }Supongamos que tenemos dos palabras clave.do1{\displaystyle \mathbf {c} _{1}}ydo2{\displaystyle \mathbf {c} _{2}}que se diferencian por una explosiónb{\displaystyle \mathbf {b} }de longitud{\displaystyle \leqslant \ell }Al recibirdo1{\displaystyle \mathbf {c} _{1}}, no podemos saber si la palabra transmitida es realmentedo1{\displaystyle \mathbf {c} _{1}}sin errores de transmisión, o si esdo2{\displaystyle \mathbf {c} _{2}}con un error de ráfagab{\displaystyle \mathbf {b} }que ocurrió durante la transmisión. Ahora, supongamos que cada dos palabras clave difieren en más de una ráfaga de longitud..{\displaystyle \ell .}Incluso si la palabra clave transmitidado1{\displaystyle \mathbf {c} _{1}}es alcanzado por una ráfagab{\displaystyle \mathbf {b} }de longitud{\displaystyle \ell }, no va a cambiar a otra palabra clave válida. Al recibirlo, podemos decir que esto esdo1{\displaystyle \mathbf {c} _{1}}con una explosiónb.{\displaystyle \mathbf {b} .}Según la observación anterior, sabemos que no hay dos palabras clave que puedan compartir la primeranorte{\displaystyle n-\ell }símbolos. La razón es que, aunque difieren en todos los demás{\displaystyle \ell }símbolos, seguirán siendo diferentes por una explosión de longitud.{\displaystyle \ell .}Por lo tanto, el número de palabras claveqk{\displaystyle q^{k}}Satisfaceqkqnorte.{\displaystyle q^{k}\leqslant q^{n-\ell }.}Aplicarregistroq{\displaystyle \log _{q}}a ambos lados y reorganizando, podemos ver quenortek{\displaystyle \ell \leqslant n-k}.

Ahora repetimos la misma pregunta pero para la corrección de errores: dadonorte{\displaystyle n}yk{\displaystyle k}¿Cuál es el límite superior de la longitud?{\displaystyle \ell }de ráfagas que podemos corregir usando cualquier(norte,k){\displaystyle (n,k)}¿Código? El siguiente teorema proporciona una respuesta preliminar a esta pregunta:

Teorema (Capacidad de corrección de errores en ráfagas) La capacidad de corrección de errores en ráfagas de cualquier(norte,k){\displaystyle (n,k)}El código satisfacenortekregistroq(norte)+2{\displaystyle \ell \leqslant n-k-\log _{q}(n-\ell )+2}

Prueba

Primero observamos que un código puede corregir todas las ráfagas de longitud{\displaystyle \leqslant \ell }si y solo si no hay dos palabras clave que difieran en la suma de dos ráfagas de longitud.{\displaystyle \leqslant \ell .}Supongamos que dos palabras clavedo1{\displaystyle \mathbf {c} _{1}}ydo2{\displaystyle \mathbf {c} _{2}}difieren por ráfagasb1{\displaystyle \mathbf {b} _{1}}yb2{\displaystyle \mathbf {b} _{2}}de longitud{\displaystyle \leqslant \ell }cada uno. Al recibirdo1{\displaystyle \mathbf {c} _{1}}alcanzado por una explosiónb1{\displaystyle \mathbf {b} _{1}}, podríamos interpretar eso como si fuerado2{\displaystyle \mathbf {c} _{2}}alcanzado por una explosiónb2{\displaystyle -\mathbf {b} _{2}}No podemos saber si la palabra transmitida esdo1{\displaystyle \mathbf {c} _{1}}odo2{\displaystyle \mathbf {c} _{2}}Ahora bien, supongamos que cada par de palabras clave difieren en más de dos ráfagas de longitud{\displaystyle \ell }. Incluso si la palabra clave transmitidado1{\displaystyle \mathbf {c} _{1}}es golpeado por una ráfaga de longitud{\displaystyle \ell }, no se parecerá a otra palabra clave que ha sido golpeada por otra ráfaga. Para cada palabra clavedo,{\displaystyle \mathbf {c} ,}dejarB(do){\displaystyle B(\mathbf {c} )}denotan el conjunto de todas las palabras que difieren dedo{\displaystyle \mathbf {c} }por una explosión de longitud.{\displaystyle \leqslant \ell .}Observa queB(do){\displaystyle B(\mathbf {c} )}incluyedo{\displaystyle \mathbf {c} }por sí mismo. Por la observación anterior, sabemos que para dos palabras clave diferentesdoi{\displaystyle \mathbf {c} _{i}}ydoj,B(doi){\displaystyle \mathbf {c} _{j},B(\mathbf {c} _{i})}yB(doj){\displaystyle B(\mathbf {c} _{j})}son disjuntos. Tenemosqk{\displaystyle q^{k}}palabras clave. Por lo tanto, podemos decir queqk|B(do)|qnorte{\displaystyle q^{k}|B(\mathbf {c} )|\leqslant q^{n}}Además, tenemos(norte)q2|B(do)|{\displaystyle (n-\ell )q^{\ell -2}\leqslant |B(\mathbf {c} )|}. Sustituyendo la última desigualdad en la primera, y luego tomando la baseq{\displaystyle q}Aplicando logaritmos y reordenando, obtenemos el teorema anterior.

Un resultado más contundente lo proporciona la cota de Rieger:

Teorema (cota de Rieger) Si{\displaystyle \ell }es la capacidad de corrección de errores en ráfaga de un(norte,k){\displaystyle (n,k)}código de bloque lineal, entonces2nortek{\displaystyle 2\ell \leqslant n-k}.

Prueba

Cualquier código lineal que pueda corregir cualquier patrón de ráfaga de longitud{\displaystyle \leqslant \ell }no puede tener una ráfaga de longitud2{\displaystyle \leqslant 2\ell }como palabra clave. Si tuviera una ráfaga de longitud2{\displaystyle \leqslant 2\ell }como palabra clave, luego una ráfaga de longitud{\displaystyle \ell }podría cambiar la palabra clave a un patrón de ráfaga de longitud{\displaystyle \ell }, que también podría obtenerse haciendo un error de ráfaga de longitud{\displaystyle \ell }en todas las palabras clave cero. Si los vectores no son cero en el primero2{\displaystyle 2\ell }símbolos, entonces los vectores deben ser de diferentes subconjuntos de una matriz de modo que su diferencia no sea una palabra clave de ráfagas de longitud2{\displaystyle 2\ell }. Asegurando esta condición, el número de tales subconjuntos es al menos igual al número de vectores. Por lo tanto, el número de subconjuntos sería al menosq2{\displaystyle q^{2\ell }}Por lo tanto, tenemos al menos2{\displaystyle 2\ell }símbolos distintos, de lo contrario, la diferencia de dos de esos polinomios sería una palabra clave que es una suma de dos ráfagas de longitud.{\displaystyle \leqslant \ell .}Por lo tanto, esto demuestra la cota de Rieger.

Definición. Un código lineal de corrección de errores en ráfagas que alcanza la cota de Rieger mencionada anteriormente se denomina código óptimo de corrección de errores en ráfagas.

Límites adicionales en la corrección de errores en ráfagas

Existe más de un límite superior para la tasa de codificación alcanzable de los códigos de bloque lineales para la corrección de ráfagas de fase múltiple (MPBC). Uno de estos límites está restringido a una longitud máxima de ráfaga cíclica corregible dentro de cada subbloque, o equivalentemente, a una restricción sobre la longitud o brecha mínima libre de errores dentro de cada ráfaga de fase. Este límite, cuando se reduce al caso especial de un límite para la corrección de ráfaga única, es el límite de Abramson (un corolario del límite de Hamming para la corrección de errores de ráfaga) cuando la longitud de la ráfaga cíclica es menor que la mitad de la longitud del bloque. [ 3 ]

Teorema (número de ráfagas) Para112(norte+1),{\displaystyle 1\leqslant \ell \leqslant {\tfrac {1}{2}}(n+1),}sobre un alfabeto binario, haynorte21+1{\displaystyle n2^{\ell -1}+1}vectores de longitudnorte{\displaystyle n}que son ráfagas de longitud{\displaystyle \leqslant \ell }. [ 1 ]

Prueba

Dado que la duración de la ráfaga es12(norte+1),{\displaystyle \leqslant {\tfrac {1}{2}}(n+1),}Existe una descripción de ráfaga única asociada a la ráfaga. La ráfaga puede comenzar en cualquiera de losnorte{\displaystyle n}posiciones del patrón. Cada patrón comienza con1{\displaystyle 1}y contienen una longitud de{\displaystyle \ell }Podemos pensar en ello como el conjunto de todas las cadenas que comienzan con1{\displaystyle 1}y tienen longitud{\displaystyle \ell }. Por lo tanto, hay un total de21{\displaystyle 2^{\ell -1}}posibles patrones de este tipo, y un total denorte21{\displaystyle n2^{\ell -1}}ráfagas de longitud.{\displaystyle \leqslant \ell .}Si incluimos la ráfaga de ceros, tenemosnorte21+1{\displaystyle n2^{\ell -1}+1}vectores que representan ráfagas de longitud.{\displaystyle \leqslant \ell .}

Teorema (Límite en el número de palabras clave) Si112(norte+1),{\displaystyle 1\leqslant \ell \leqslant {\tfrac {1}{2}}(n+1),}un binario{\displaystyle \ell }-el código de corrección de errores de ráfaga tiene como máximo2norte/(norte21+1){\displaystyle 2^{n}/(n2^{\ell -1}+1)}palabras clave.

Prueba

Desde12(norte+1){\displaystyle \ell \leqslant {\tfrac {1}{2}}(n+1)}, sabemos que haynorte21+1{\displaystyle n2^{\ell -1}+1}ráfagas de longitud{\displaystyle \leqslant \ell }Cada palabra clave tienenorte21+1{\displaystyle n2^{\ell -1}+1}palabras (incluida ella misma) que difieren de sí misma por una explosión de longitud{\displaystyle \leqslant \ell }Digamos que el código tieneMETRO{\displaystyle M}palabras clave únicas, ya que todas ellas son de distancia2{\displaystyle \geqslant 2\ell }del otro, obtenemos que hayMETRO{\displaystyle M}conjuntos disjuntos de21+1{\displaystyle 2^{\ell -1}+1}palabras. Hay como máximo2norte{\displaystyle 2^{n}}palabras diferentes, lo que resulta en la desigualdadMETRO(norte21+1)2norte{\displaystyle M(n2^{\ell -1}+1)\leqslant 2^{n}}lo cual implicaMETRO2norte/(norte21+1).{\displaystyle M\leqslant 2^{n}/(n2^{\ell -1}+1).}

Teorema (Límites de Abramson) Si112(norte+1){\displaystyle 1\leqslant \ell \leqslant {\tfrac {1}{2}}(n+1)}es un lineal binario(norte,k),{\displaystyle (n,k),\ell }-código de corrección de errores en ráfaga, su longitud de bloque debe cumplir:norte2nortek+11.{\displaystyle n\leqslant 2^{n-k-\ell +1}-1.}

Prueba

Para un lineal(norte,k){\displaystyle (n,k)}código, hay2k{\displaystyle 2^{k}}palabras clave. Por nuestro resultado anterior, sabemos que 2k2nortenorte21+1.{\displaystyle 2^{k}\leqslant {\frac {2^{n}}{n2^{\ell -1}+1}}.} Aislamientonorte{\displaystyle n}, obtenemosnorte2nortek+12+1{\displaystyle n\leqslant 2^{n-k-\ell +1}-2^{-\ell +1}}. Desde1{\displaystyle \ell \geqslant 1}ynorte{\displaystyle n}debe ser un número entero, tenemosnorte2nortek+11{\displaystyle n\leqslant 2^{n-k-\ell +1}-1}.

Observación.r=nortek{\displaystyle r=n-k}se denomina redundancia del código y en una formulación alternativa para los límites de Abramson esrregistro2(norte+1)+1.{\displaystyle r\geqslant \lceil \log _{2}(n+1)\rceil +\ell -1.}

Códigos de incendios

Fuentes: [ 3 ] [ 4 ] [ 5 ]

Si bien los códigos cíclicos en general son herramientas poderosas para detectar errores de ráfaga, ahora consideramos una familia de códigos cíclicos binarios llamados Códigos de Fuego, que poseen buenas capacidades de corrección de errores de ráfaga única. Por ráfaga única, digamos de longitud{\displaystyle \ell }, queremos decir que todos los errores que posee una palabra clave recibida se encuentran dentro de un intervalo fijo de{\displaystyle \ell }dígitos.

Dejarpag(incógnita){\displaystyle p(x)}sea ​​un polinomio irreducible de gradometro{\displaystyle m}encimaF2{\displaystyle \mathbb {F} _{2}}y dejarpag{\displaystyle p}ser el período depag(incógnita){\displaystyle p(x)}. El período depag(incógnita){\displaystyle p(x)}y, de hecho, de cualquier polinomio, se define como el menor entero positivo.r{\displaystyle r}de tal manera quepag(incógnita)|incógnitar1.{\displaystyle p(x)|x^{r}-1.}Dejar{\displaystyle \ell }sea ​​un número entero positivo que satisfagametro{\displaystyle \ell \leqslant m}y21{\displaystyle 2\ell -1}no divisible porpag{\displaystyle p}, dóndemetro{\displaystyle m}ypag{\displaystyle p}son el grado y el período depag(incógnita){\displaystyle p(x)}, respectivamente. Defina el Código de IncendiosGRAMO{\displaystyle G}mediante el siguiente polinomio generador : gramo(incógnita)=(incógnita21+1)pag(incógnita).{\displaystyle g(x)=\left(x^{2\ell -1}+1\right)p(x).}

Demostraremos queGRAMO{\displaystyle G}es un{\displaystyle \ell }-código corrector de errores de ráfaga.

Lema 1 mcd(pag(incógnita),incógnita21+1)=1.{\displaystyle \gcd \left(p(x),x^{2\ell -1}+1\right)=1.}

Prueba

Dejard(incógnita){\displaystyle d(x)}Sea el máximo común divisor de los dos polinomios. Dado quepag(incógnita){\displaystyle p(x)}es irreductible,grados(d(incógnita))=0{\displaystyle \deg(d(x))=0}ogrados(pag(incógnita)){\displaystyle \deg(p(x))}. Asumirgrados(d(incógnita))0,{\displaystyle \deg(d(x))\neq 0,}entoncespag(incógnita)=dod(incógnita){\displaystyle p(x)=cd(x)}por alguna constantedo{\displaystyle c}. Pero,(1/do)pag(incógnita){\displaystyle (1/c)p(x)}es un divisor deincógnita21+1{\displaystyle x^{2\ell -1}+1}desded(incógnita){\displaystyle d(x)}es un divisor deincógnita21+1{\displaystyle x^{2\ell -1}+1}. Pero esto contradice nuestra suposición de quepag(incógnita){\displaystyle p(x)}no divideincógnita21+1.{\displaystyle x^{2\ell -1}+1.}De este modo,grados(d(incógnita))=0,{\displaystyle \deg(d(x))=0,}demostrando el lema.

Lema 2 Sipag(incógnita){\displaystyle p(x)}es un polinomio de períodopag{\displaystyle p}, entoncespag(incógnita)|incógnitak1{\displaystyle p(x)|x^{k}-1}si y solo sipag|k.{\displaystyle p|k.}

Prueba

Sipag|k{\displaystyle p|k}, entoncesincógnitak1=(incógnitapag1)(1+incógnitapag+incógnita2pag++incógnitak/pag){\displaystyle x^{k}-1=(x^{p}-1)(1+x^{p}+x^{2p}+\dots +x^{k/p})}. De este modo,pag(incógnita)|incógnitak1.{\displaystyle p(x)|x^{k}-1.}

Ahora supongamos que...pag(incógnita)|incógnitak1{\displaystyle p(x)|x^{k}-1}. Entonces,kpag{\displaystyle k\geqslant p}. Demostramos quek{\displaystyle k}es divisible porpag{\displaystyle p}por inducción en k{\displaystyle k}El caso basek=pag{\displaystyle k=p}sigue. Por lo tanto, supongamos k>pag{\displaystyle k>p}Sabemos que pag(incógnita){\displaystyle p(x)}divide ambos (ya que tiene período)pag{\displaystyle p})incógnitapag1=(incógnita1)(1+incógnita++incógnitapag1)yincógnitak1=(incógnita1)(1+incógnita++incógnitak1).{\displaystyle x^{p}-1=(x-1)\left(1+x+\dots +x^{p-1}\right)\quad {\text{and}}\quad x^{k}-1=(x-1)\left(1+x+\dots +x^{k-1}\right).}Pero pag(incógnita){\displaystyle p(x)}es irreductible, por lo tanto debe dividir ambos(1+incógnita++incógnitapag1){\displaystyle (1+x+\dots +x^{p-1})}y(1+incógnita++incógnitak1){\displaystyle (1+x+\dots +x^{k-1})}; por lo tanto, también divide la diferencia de los dos últimos polinomios,incógnitapag(1+incógnita++incógnitapagk1){\displaystyle x^{p}(1+x+\dots +x^{p-k-1})}Entonces, se deduce que pag(incógnita){\displaystyle p(x)}divide(1+incógnita++incógnitapagk1){\displaystyle (1+x+\cdots +x^{p-k-1})}. Finalmente, también divide:incógnitakpag1=(incógnita1)(1+incógnita++incógnitapagk1){\displaystyle x^{k-p}-1=(x-1)(1+x+\dots +x^{p-k-1})}. Por la hipótesis de inducción,pag|kpag{\displaystyle p|k-p}, entonces pag|k{\displaystyle p|k}.

Un corolario del Lema 2 es que dado quepag(incógnita)=incógnitapag1{\displaystyle p(x)=x^{p}-1}tiene períodopag{\displaystyle p}, entoncespag(incógnita){\displaystyle p(x)}divideincógnitak1{\displaystyle x^{k}-1}si y solo sipag|k{\displaystyle p|k}.

Teorema : El Código de Incendios es{\displaystyle \ell }-corrección de errores en ráfaga [ 4 ] [ 5 ]

Si podemos demostrar que todas las ráfagas de longitud{\displaystyle \ell }Si ocurren con menor frecuencia en diferentes clases laterales , podemos utilizarlas como líderes de clases laterales que forman patrones de error corregibles. La razón es simple: sabemos que cada clase lateral tiene una decodificación de síndrome única asociada, y si todas las ráfagas de diferente longitud ocurren en diferentes clases laterales, entonces todas tienen síndromes únicos, lo que facilita la corrección de errores.

Demostración del teorema

Dejar incógnitaia(incógnita){\displaystyle x^{i}a(x)}yincógnitajb(incógnita){\displaystyle x^{j}b(x)}sean polinomios con grados 11{\displaystyle \ell _{1}-1}y21{\displaystyle \ell _{2}-1}, que representan ráfagas de longitud1{\displaystyle \ell _{1}}y 2{\displaystyle \ell _{2}}respectivamente con1,2.{\displaystyle \ell _{1},\ell _{2}\leqslant \ell .}Los números enterosi,j{\displaystyle i,j}representan las posiciones iniciales de las ráfagas y son menores que la longitud del bloque del código. Por contradicción, supongamos que incógnitaia(incógnita){\displaystyle x^{i}a(x)}yincógnitajb(incógnita){\displaystyle x^{j}b(x)}están en el mismo coset. Entonces,v(incógnita)=incógnitaia(incógnita)+incógnitajb(incógnita){\displaystyle v(x)=x^{i}a(x)+x^{j}b(x)}es una palabra clave válida (ya que ambos términos están en la misma clase lateral). Sin pérdida de generalidad , elijaij{\displaystyle i\leqslant j}Por el teorema de la división podemos escribir:ji=gramo(21)+r,{\displaystyle j-i=g(2\ell -1)+r,}para números enterosgramo{\displaystyle g}yr,0r<21{\displaystyle r,0\leqslant r<2\ell -1}. Reescribimos el polinomiov(incógnita){\displaystyle v(x)}como sigue: v(incógnita)=incógnitaia(incógnita)+incógnitai+gramo(21)+r=incógnitaia(incógnita)+incógnitai+gramo(21)+r+2incógnitai+rb(incógnita)=incógnitai(a(incógnita)+incógnitabb(incógnita))+incógnitai+rb(incógnita)(incógnitagramo(21)+1){\displaystyle v(x)=x^{i}a(x)+x^{i+g(2\ell -1)+r}=x^{i}a(x)+x^{i+g(2\ell -1)+r}+2x^{i+r}b(x)=x^{i}\left(a(x)+x^{b}b(x)\right)+x^{i+r}b(x)\left(x^{g(2\ell -1)}+1\right)}

Nótese que en la segunda manipulación, introdujimos el término 2incógnitai+rb(incógnita){\displaystyle 2x^{i+r}b(x)}. Se nos permite hacerlo, ya que los códigos de incendios operan en F2{\displaystyle \mathbb {F} _{2}}. Según nuestra suposición,v(incógnita){\displaystyle v(x)}es una palabra clave válida y, por lo tanto, debe ser un múltiplo degramo(incógnita){\displaystyle g(x)}. Como se mencionó anteriormente, dado que los factores degramo(incógnita){\displaystyle g(x)}son relativamente importantes,v(incógnita){\displaystyle v(x)}tiene que ser divisible porincógnita21+1{\displaystyle x^{2\ell -1}+1}. Observando detenidamente la última expresión derivada parav(incógnita){\displaystyle v(x)}observamos queincógnitagramo(21)+1{\displaystyle x^{g(2\ell -1)}+1}es divisible porincógnita21+1{\displaystyle x^{2\ell -1}+1}(por el corolario del Lema 2). Por lo tanto,a(incógnita)+incógnitabb(incógnita){\displaystyle a(x)+x^{b}b(x)}es divisible porincógnita21+1{\displaystyle x^{2\ell -1}+1}o es0{\displaystyle 0}. Aplicando nuevamente el teorema de la división, vemos que existe un polinomiod(incógnita){\displaystyle d(x)}con títuloδ{\displaystyle \delta }de tal manera que: a(incógnita)+incógnitabb(incógnita)=d(incógnita)(incógnita21+1){\displaystyle a(x)+x^{b}b(x)=d(x)(x^{2\ell -1}+1)}

Entonces podemos escribir: δ+21=grados(d(incógnita)(incógnita21+1))=grados(a(incógnita)+incógnitabb(incógnita))=grados(incógnitabb(incógnita))grados(a(incógnita))=11<21=b+21{\displaystyle {\begin{aligned}\delta +2\ell -1&=\deg \left(d(x)\left(x^{2\ell -1}+1\right)\right)\\&=\deg \left(a(x)+x^{b}b(x)\right)\\&=\deg \left(x^{b}b(x)\right)&&\deg(a(x))=\ell _{1}-1<2\ell -1\\&=b+\ell _{2}-1\end{aligned}}}

Igualando el grado de ambos lados, obtenemos b=22+δ.{\displaystyle b=2\ell -\ell _{2}+\delta .}Desde 1,2{\displaystyle \ell _{1},\ell _{2}\leqslant \ell }podemos concluir b+δ,{\displaystyle b\geqslant \ell +\delta ,}lo cual implica b>1{\displaystyle b>\ell -1}y b>δ{\displaystyle b>\delta }. Observe que en la expansión: a(incógnita)+incógnitabb(incógnita)=1+a1incógnita+a2incógnita2++incógnita11+incógnitab(1+b1incógnita+b2incógnita2++incógnita21).{\displaystyle a(x)+x^{b}b(x)=1+a_{1}x+a_{2}x^{2}+\dots +x^{\ell _{1}-1}+x^{b}\left(1+b_{1}x+b_{2}x^{2}+\dots +x^{\ell _{2}-1}\right).} El término incógnitab{\displaystyle x^{b}}aparece, pero desde δ<b<21{\displaystyle \delta <b<2\ell -1}, la expresión resultanted(incógnita)(incógnita21+1){\displaystyle d(x)(x^{2\ell -1}+1)}no contiene incógnitab{\displaystyle x^{b}}, por lo tantod(incógnita)=0{\displaystyle d(x)=0}y posteriormentea(incógnita)+incógnitabb(incógnita)=0.{\displaystyle a(x)+x^{b}b(x)=0.}Esto requiere que b=0{\displaystyle b=0}, y a(incógnita)=b(incógnita){\displaystyle a(x)=b(x)}. Podemos revisar aún más nuestra división deji{\displaystyle j-i}porgramo(21){\displaystyle g(2\ell -1)}para reflejarb=0,{\displaystyle b=0,}eso esji=gramo(21){\displaystyle j-i=g(2\ell -1)}. Sustituyendo de nuevo env(incógnita){\displaystyle v(x)}nos da, v(incógnita)=incógnitaib(incógnita)(incógnitaj1+1).{\displaystyle v(x)=x^{i}b(x)\left(x^{j-1}+1\right).}

Desdegrados(b(incógnita))=21<{\displaystyle \deg(b(x))=\ell _{2}-1<\ell }, tenemosgrados(b(incógnita))<grados(pag(incógnita))=metro{\displaystyle \deg(b(x))<\deg(p(x))=m}. Peropag(incógnita){\displaystyle p(x)}es irreductible, por lo tanto b(incógnita){\displaystyle b(x)}ypag(incógnita){\displaystyle p(x)}debe ser relativamente primo. Dado quev(incógnita){\displaystyle v(x)}es una palabra clave,incógnitaj1+1{\displaystyle x^{j-1}+1}debe ser divisible porpag(incógnita){\displaystyle p(x)}, ya que no puede ser divisible porincógnita21+1{\displaystyle x^{2\ell -1}+1}. Por lo tanto,ji{\displaystyle j-i}debe ser un múltiplo depag{\displaystyle p}. Pero también debe ser un múltiplo de21{\displaystyle 2\ell -1}, lo que implica que debe ser un múltiplo denorte=lcm(21,pag){\displaystyle n={\text{lcm}}(2\ell -1,p)}pero esa es precisamente la longitud del bloque del código. Por lo tanto,ji{\displaystyle j-i}no puede ser un múltiplo denorte{\displaystyle n}ya que ambos son menores quenorte{\displaystyle n}. Por lo tanto, nuestra suposición dev(incógnita){\displaystyle v(x)}ser una palabra clave es incorrecto y por lo tantoincógnitaia(incógnita){\displaystyle x^{i}a(x)}yincógnitajb(incógnita){\displaystyle x^{j}b(x)}se encuentran en diferentes grupos, con síndromes únicos y, por lo tanto, corregibles.

Ejemplo: Código de incendio con corrección de errores de ráfaga de 5

Con la teoría presentada en la sección anterior, considere la construcción de un 5{\displaystyle 5}Código de incendios con corrección de errores en ráfagas. Recuerde que para construir un código de incendios, necesitamos un polinomio irreducible.pag(incógnita){\displaystyle p(x)}, un número entero{\displaystyle \ell }, que representa la capacidad de corrección de errores en ráfaga de nuestro código, y necesitamos satisfacer la propiedad de que 21{\displaystyle 2\ell -1}no es divisible por el período depag(incógnita){\displaystyle p(x)}. Teniendo en cuenta estos requisitos, considere el polinomio irreduciblepag(incógnita)=1+incógnita2+incógnita5{\displaystyle p(x)=1+x^{2}+x^{5}}y dejar=5{\displaystyle \ell =5}. Desdepag(incógnita){\displaystyle p(x)}es un polinomio primitivo, su período es251=31{\displaystyle 2^{5}-1=31}. Confirmamos que21=9{\displaystyle 2\ell -1=9}no es divisible por31{\displaystyle 31}. De este modo, gramo(incógnita)=(incógnita9+1)(1+incógnita2+incógnita5)=1+incógnita2+incógnita5+incógnita9+incógnita11+incógnita14{\displaystyle g(x)=(x^{9}+1)\left(1+x^{2}+x^{5}\right)=1+x^{2}+x^{5}+x^{9}+x^{11}+x^{14}} es un generador de códigos de incendios. Podemos calcular la longitud del bloque del código evaluando el mínimo común múltiplo depag{\displaystyle p}y21{\displaystyle 2\ell -1}. En otras palabras,norte=lcm(9,31)=279{\displaystyle n={\text{lcm}}(9,31)=279}. Por lo tanto, el Código de Fuego anterior es un código cíclico capaz de corregir cualquier ráfaga de longitud5{\displaystyle 5}o menos.

Códigos binarios de Reed-Solomon

Ciertas familias de códigos, como Reed-Solomon , operan con tamaños de alfabeto mayores que el binario. Esta propiedad otorga a dichos códigos potentes capacidades de corrección de errores en ráfagas. Consideremos un código que opera enF2metro{\displaystyle \mathbb {F} _{2^{m}}}Cada símbolo del alfabeto puede ser representado pormetro{\displaystyle m}bits. Sido{\displaystyle C}es un(norte,k){\displaystyle (n,k)}El código Reed-Solomon ha terminado.F2metro{\displaystyle \mathbb {F} _{2^{m}}}, podemos pensar endo{\displaystyle C}como un[metronorte,metrok]2{\displaystyle [mn,mk]_{2}}código sobreF2{\displaystyle \mathbb {F} _{2}}.

La razón por la que dichos códigos son potentes para la corrección de errores en ráfaga es que cada símbolo está representado pormetro{\displaystyle m}bits, y en general, es irrelevante cuántos de esosmetro{\displaystyle m}Los bits son erróneos; ya sea un solo bit o todos ellos.metro{\displaystyle m}Los bits contienen errores, pero desde la perspectiva de la decodificación, sigue siendo un error de un solo símbolo. En otras palabras, dado que los errores en ráfaga tienden a ocurrir en grupos, existe una alta probabilidad de que varios errores binarios contribuyan a un error de un solo símbolo.

Observe que una explosión de(metro+1){\displaystyle (m+1)}Los errores pueden afectar como máximo2{\displaystyle 2}símbolos y una explosión de2metro+1{\displaystyle 2m+1}puede afectar como máximo3{\displaystyle 3}símbolos. Luego, una explosión detmetro+1{\displaystyle tm+1}puede afectar como máximot+1{\displaystyle t+1}símbolos; esto implica que unt{\displaystyle t}-El código corrector de errores de símbolos puede corregir una ráfaga de longitud como máximo(t1)metro+1{\displaystyle (t-1)m+1}.

En general, unt{\displaystyle t}-corrección de errores en el código Reed-SolomonF2metro{\displaystyle \mathbb {F} _{2^{m}}}puede corregir cualquier combinación de t1+(l+metro2)/metro{\displaystyle {\frac {t}{1+\lfloor (l+m-2)/m\rfloor }}} o menos ráfagas de longitudl{\displaystyle l}, además de poder corregirt{\displaystyle t}-errores aleatorios en el peor de los casos.

Un ejemplo de código RS binario

DejarGRAMO{\displaystyle G}ser un[255,223,33]{\displaystyle [255,223,33]}Código RS sobreF28{\displaystyle \mathbb {F} _{2^{8}}}Este código fue empleado por la NASA en su nave espacial Cassini-Huygens . [ 6 ] Es capaz de corregir33/2=16{\displaystyle \lfloor 33/2\rfloor =16}errores de símbolos. Ahora construimos un código RS binario.GRAMO{\displaystyle G'}deGRAMO{\displaystyle G}Cada símbolo se escribirá utilizandoregistro2(255)=8{\displaystyle \lceil \log _{2}(255)\rceil =8}bits. Por lo tanto, el código binario RS tendrá[2040,1784,33]2{\displaystyle [2040,1784,33]_{2}}como sus parámetros. Es capaz de corregir cualquier ráfaga única de longitudl=121{\displaystyle l=121}.

Códigos intercalados

El entrelazado se utiliza para convertir códigos convolucionales de correctores de errores aleatorios a correctores de errores en ráfagas. La idea básica detrás del uso de códigos entrelazados es mezclar los símbolos en el transmisor. Esto produce una aleatorización de las ráfagas de errores recibidos que se encuentran muy próximas entre sí, lo que permite aplicar el análisis para un canal aleatorio. Por lo tanto, la función principal del entrelazador en el transmisor es alterar la secuencia de símbolos de entrada. En el receptor, el desentrelazador modifica la secuencia recibida para recuperar la secuencia original sin alterar en el transmisor.

Capacidad de corrección de errores en ráfaga del entrelazador

Ilustración del orden por filas y columnas.

Teorema : Si la capacidad de corrección de errores en ráfaga de algún código es,{\displaystyle \ell ,}luego la capacidad de corrección de errores en ráfaga de suλ{\displaystyle \lambda }-el entrelazado de vías esλ.{\displaystyle \lambda \ell .}

Prueba

Supongamos que tenemos un(norte,k){\displaystyle (n,k)}código que puede corregir todas las ráfagas de longitud.{\displaystyle \leqslant \ell .}El entrelazado puede proporcionarnos una(λnorte,λk){\displaystyle (\lambda n,\lambda k)}código que puede corregir todas las ráfagas de longitudλ,{\displaystyle \leqslant \lambda \ell ,}para cualquier dadoλ{\displaystyle \lambda }. Si queremos codificar un mensaje de longitud arbitraria usando entrelazado, primero lo dividimos en bloques de longitudλk{\displaystyle \lambda k}. Escribimos elλk{\displaystyle \lambda k}entradas de cada bloque en unλ×k{\displaystyle \lambda \times k}matriz utilizando orden de filas. Luego, codificamos cada fila utilizando el(norte,k){\displaystyle (n,k)}código. Lo que obtendremos es unλ×norte{\displaystyle \lambda \times n}matriz. Ahora, esta matriz se lee y se transmite en orden de columnas. El truco es que si se produce una ráfaga de longitudh{\displaystyle h}en la palabra transmitida, entonces cada fila contendrá aproximadamentehλ{\displaystyle {\tfrac {h}{\lambda }}}errores consecutivos (Más específicamente, cada fila contendrá una ráfaga de longitud al menoshλ{\displaystyle \lfloor {\tfrac {h}{\lambda }}\rfloor }y como máximohλ{\displaystyle \lceil {\tfrac {h}{\lambda }}\rceil }). Sihλ,{\displaystyle h\leqslant \lambda \ell ,}entonceshλ{\displaystyle {\tfrac {h}{\lambda }}\leqslant \ell }y el(norte,k){\displaystyle (n,k)}El código puede corregir cada fila. Por lo tanto, el intercalado(λnorte,λk){\displaystyle (\lambda n,\lambda k)}El código puede corregir la ráfaga de longitudh{\displaystyle h}. Por el contrario, sih>λ,{\displaystyle h>\lambda \ell ,}entonces al menos una fila contendrá más dehλ{\displaystyle {\tfrac {h}{\lambda }}}errores consecutivos y el(norte,k){\displaystyle (n,k)}El código podría no corregirlos. Por lo tanto, la capacidad de corrección de errores del entrelazado(λnorte,λk){\displaystyle (\lambda n,\lambda k)}El código es exactamenteλ.{\displaystyle \lambda \ell .}La eficiencia BEC del código entrelazado permanece igual que la del original.(norte,k){\displaystyle (n,k)}código. Esto es cierto porque: 2λλnorteλk=2nortek{\displaystyle {\frac {2\lambda \ell }{\lambda n-\lambda k}}={\frac {2\ell }{n-k}}}

intercalador de bloques

La siguiente figura muestra un intercalador de 4 por 3.

Un ejemplo de entrelazador de bloques

El entrelazador anterior se llama entrelazador de bloques . Aquí, los símbolos de entrada se escriben secuencialmente en las filas y los símbolos de salida se obtienen leyendo las columnas secuencialmente. Por lo tanto, tiene la forma deMETRO×norte{\displaystyle M\times N}matriz. Generalmente,norte{\displaystyle N}es la longitud de la palabra clave.

Capacidad del entrelazador de bloques : Para unMETRO×norte{\displaystyle M\times N}intercalador de bloques y ráfaga de longitud,{\displaystyle \ell ,}El límite superior en el número de errores esMETRO.{\displaystyle {\tfrac {\ell }{M}}.}Esto es obvio por el hecho de que estamos leyendo la salida columna por columna y el número de filas esMETRO{\displaystyle M}. Por el teorema anterior para la capacidad de corrección de errores hastat,{\displaystyle t,}La longitud máxima de ráfaga permitida esMETROt.{\displaystyle Mt.}Para la duración de ráfaga deMETROt+1{\displaystyle Mt+1}, el decodificador puede fallar.

Eficiencia del entrelazador de bloques (γ{\displaystyle \gamma }): Se encuentra tomando la relación de la longitud de la ráfaga donde el decodificador puede fallar a la memoria del entrelazador. Por lo tanto, podemos formularγ{\displaystyle \gamma }como γ=METROt+1METROnortetnorte.{\displaystyle \gamma ={\frac {Mt+1}{MN}}\approx {\frac {t}{N}}.}

Desventajas del entrelazador de bloques  : Como se observa en la figura, las columnas se leen secuencialmente, por lo que el receptor solo puede interpretar una fila después de recibir el mensaje completo. Además, el receptor requiere una cantidad considerable de memoria para almacenar los símbolos recibidos y el mensaje completo. Por lo tanto, estos factores generan dos inconvenientes: la latencia y el almacenamiento (una cantidad considerable de memoria). Estos inconvenientes pueden evitarse utilizando el entrelazador convolucional que se describe a continuación.

Entrelazador convolucional

El entrelazador cruzado es un tipo de sistema multiplexor-demultiplexor. En este sistema, se utilizan líneas de retardo para aumentar progresivamente la longitud. Una línea de retardo es básicamente un circuito electrónico que se utiliza para retrasar la señal durante un cierto período de tiempo.norte{\displaystyle n}sea ​​el número de líneas de retardo yd{\displaystyle d}sea ​​el número de símbolos introducidos por cada línea de retardo. Por lo tanto, la separación entre entradas consecutivas =norted{\displaystyle nd}símbolos. Sea la longitud de la palabra clave.norte.{\displaystyle \leqslant n.}Por lo tanto, cada símbolo en la palabra clave de entrada estará en una línea de retardo distinta. Sea un error de ráfaga de longitud{\displaystyle \ell }ocurrir. Dado que la separación entre símbolos consecutivos esnorted,{\displaystyle nd,}El número de errores que puede contener la salida desentrelazada esnorted+1.{\displaystyle {\tfrac {\ell }{nd+1}}.}Según el teorema anterior, para una capacidad de corrección de errores de hastat{\displaystyle t}, la longitud máxima de ráfaga permitida es(norted+1)(t1).{\displaystyle (nd+1)(t-1).}Para la duración de ráfaga de(norted+1)(t1)+1,{\displaystyle (nd+1)(t-1)+1,}El decodificador puede fallar.

Un ejemplo de entrelazador convolucional
Un ejemplo de desentrelazador

Eficiencia del entrelazador cruzado (γ{\displaystyle \gamma }): Se obtiene tomando la relación entre la longitud de la ráfaga donde el decodificador puede fallar y la memoria del entrelazador. En este caso, la memoria del entrelazador se puede calcular como (0+1+2+3++(norte1))d=norte(norte1)2d.{\displaystyle (0+1+2+3+\cdots +(n-1))d={\frac {n(n-1)}{2}}d.}

Por lo tanto, podemos formularγ{\displaystyle \gamma }como sigue: γ=(norted+1)(t1)+1norte(norte1)2d.{\displaystyle \gamma ={\frac {(nd+1)(t-1)+1}{{\frac {n(n-1)}{2}}d}}.}

Rendimiento del entrelazador cruzado  : Como se muestra en la figura del entrelazador anterior, la salida no es más que los símbolos diagonales generados al final de cada línea de retardo. En este caso, cuando el conmutador del multiplexor de entrada completa aproximadamente la mitad de la conmutación, podemos leer la primera fila en el receptor. Por lo tanto, necesitamos almacenar como máximo la mitad del mensaje en el receptor para leer la primera fila. Esto reduce drásticamente a la mitad el requisito de almacenamiento. Dado que ahora solo se requiere la mitad del mensaje para leer la primera fila, la latencia también se reduce a la mitad, lo que supone una mejora considerable con respecto al entrelazador de bloques. Por lo tanto, la memoria total del entrelazador se divide entre el transmisor y el receptor.

Aplicaciones

disco compacto

Sin códigos de corrección de errores, el audio digital no sería técnicamente factible. [ 7 ] Los códigos Reed-Solomon pueden corregir un símbolo corrupto con un solo bit de error con la misma facilidad que pueden corregir un símbolo con todos los bits erróneos. Esto hace que los códigos RS sean particularmente adecuados para corregir errores en ráfaga. [ 5 ] La aplicación más común de los códigos RS se encuentra, con mucho, en los discos compactos. Además de la corrección de errores básica que proporcionan los códigos RS, un entrelazador cruzado ofrece protección contra errores en ráfaga debidos a arañazos en el disco. [ 3 ]

El sistema actual de audio digital en disco compacto fue desarrollado por NV Philips de los Países Bajos y Sony Corporation de Japón (acuerdo firmado en 1979).

Un disco compacto consta de un  disco aluminizado de 120 mm recubierto con una capa de plástico transparente, con una pista espiral de aproximadamente 5  km de longitud, que se escanea ópticamente mediante un láser de longitud de onda de ~0,8 μm a una velocidad constante de ~1,25  m/s. Para lograr esta velocidad constante, la rotación del disco varía desde ~8 rev/s durante el escaneo en la parte interior de la pista hasta ~3,5 rev/s en la parte exterior. Los hoyos y las llanuras son las depresiones (0,12 μm de profundidad) y los segmentos planos que constituyen los datos binarios a lo largo de la pista (0,6 μm de ancho). [ 8 ]

El proceso de CD se puede abstraer como una secuencia de los siguientes subprocesos:

  • Codificación de canal de la fuente de señales
  • Subprocesos mecánicos de preparación de un disco maestro, producción de discos de usuario y detección de las señales incrustadas en los discos de usuario durante la reproducción: el canal
  • Decodificación de las señales detectadas desde los discos de usuario

El proceso está sujeto a errores de ráfaga y errores aleatorios. [ 7 ] Los errores de ráfaga incluyen aquellos debidos al material del disco (defectos de la película reflectante de aluminio, índice de reflectancia bajo del material del disco transparente), producción del disco (fallas durante la formación y corte del disco, etc.), manipulación del disco (rayas, generalmente delgadas, radiales y ortogonales a la dirección de grabación) y variaciones en el mecanismo de reproducción. Los errores aleatorios incluyen aquellos debidos a la fluctuación de la onda de señal reconstruida e interferencia en la señal. CIRC ( Cross-Interleaved Reed-Solomon code ) es la base para la detección y corrección de errores en el proceso de CD. Corrige ráfagas de errores de hasta 3500 bits en secuencia (2,4  mm de longitud vistos en la superficie del CD) y compensa las ráfagas de errores de hasta 12 000 bits (8,5  mm) que pueden ser causadas por rayones menores.

Codificación: Las ondas sonoras se muestrean y se convierten a formato digital mediante un convertidor A/D. La onda sonora se muestrea para obtener amplitud (a 44,1  kHz o 44.100 pares, uno para cada canal del sonido estéreo). A la amplitud en un instante se le asigna una cadena binaria de longitud 16. Por lo tanto, cada muestra produce dos vectores binarios a partir deF216{\displaystyle \mathbb {F} _{2}^{16}}o 4F28{\displaystyle \mathbb {F} _{2}^{8}}bytes de datos. Cada segundo de sonido grabado resulta en 44 100 × 32 = 1 411 200 bits (176 400 bytes) de datos. [ 5 ] El flujo de datos muestreados de 1,41 Mbit/s pasa a través del sistema de corrección de errores y finalmente se convierte en un flujo de 1,88 Mbit/s.   

La entrada para el codificador consiste en tramas de entrada, cada una de 24 símbolos de 8 bits (12 muestras de 16 bits del convertidor A/D, 6 de cada una de las fuentes de datos (sonido) izquierda y derecha). Una trama puede representarse mediante L1R1L2R2L6R6{\displaystyle L_{1}R_{1}L_{2}R_{2}\ldots L_{6}R_{6}}dóndeLi{\displaystyle L_{i}}yRi{\displaystyle R_{i}}son bytes de los canales izquierdo y derecho delith{\displaystyle i^{th}}muestra del marco.

Inicialmente, los bytes se permutan para formar nuevos marcos representados porL1L3L5R1R3R5L2L4L6R2R4R6{\displaystyle L_{1}L_{3}L_{5}R_{1}R_{3}R_{5}L_{2}L_{4}L_{6}R_{2}R_{4}R_{6}}dóndeLi,Ri{\displaystyle L_{i},R_{i}}representari{\displaystyle i}-muestras izquierda y derecha del fotograma después de 2 fotogramas intermedios.

A continuación, estos 24 símbolos de mensaje se codifican utilizando el código Reed-Solomon C2 (28,24,5), que es un código RS abreviado.F256{\displaystyle \mathbb {F} _{256}}. Esto es de corrección de dos errores, siendo de distancia mínima 5. Esto agrega 4 bytes de redundancia,PAG1PAG2{\displaystyle P_{1}P_{2}}formando un nuevo marco:L1L3L5R1R3R5PAG1PAG2L2L4L6R2R4R6{\displaystyle L_{1}L_{3}L_{5}R_{1}R_{3}R_{5}P_{1}P_{2}L_{2}L_{4}L_{6}R_{2}R_{4}R_{6}}La palabra clave resultante de 28 símbolos se pasa a través de un entrelazador cruzado (28.4), lo que da como resultado 28 símbolos entrelazados. Estos se pasan luego a través del código RS C1 (32,28,5), lo que da como resultado palabras clave de 32 símbolos de salida codificados. Se realiza una reagrupación adicional de los símbolos impares de una palabra clave con los símbolos pares de la siguiente palabra clave para romper cualquier ráfaga corta que aún pueda estar presente después del entrelazado de retardo de 4 tramas anterior. Por lo tanto, por cada 24 símbolos de entrada habrá 32 símbolos de salida que dan como resultadoR=24/32{\displaystyle R=24/32}Finalmente, se agrega un byte de información de control y visualización. [ 5 ] Cada uno de los 33 bytes se convierte a 17 bits mediante EFM (modulación de ocho a catorce) y la adición de 3 bits de fusión. Por lo tanto, la trama de seis muestras resulta en 33 bytes ×  17 bits (561 bits) a los que se agregan 24 bits de sincronización y 3 bits de fusión, lo que da un total de 588 bits.

Decodificación: El reproductor de CD (decodificador CIRC) recibe el flujo de datos de 32 símbolos de salida. Este flujo pasa primero por el decodificador D1. Corresponde a los diseñadores individuales de sistemas de CD decidir los métodos de decodificación y optimizar el rendimiento de su producto. Al tener una distancia mínima de 5, los decodificadores D1 y D2 pueden corregir cada uno una combinación demi{\displaystyle e}errores yF{\displaystyle f}borrados tales que2mi+F<5{\displaystyle 2e+f<5}[ 5 ] En la mayoría de las soluciones de decodificación, D1 está diseñado para corregir un solo error. Y en caso de más de 1 error, este decodificador emite 28 borraduras. El desentrelazador en la etapa subsiguiente distribuye estas borraduras en 28 palabras clave D2. Nuevamente, en la mayoría de las soluciones, D2 está configurado para manejar solo borraduras (una solución más simple y menos costosa). Si se encontraran más de 4 borraduras, D2 emitiría 24 borraduras. Posteriormente, un sistema de ocultación de errores intenta interpolar (a partir de símbolos vecinos) en caso de símbolos no corregibles, lo que falla, los sonidos correspondientes a dichos símbolos erróneos se silencian.

Rendimiento de CIRC: [ 7 ] CIRC oculta errores de ráfaga largos mediante interpolación lineal simple . 2,5  mm de longitud de pista (4000 bits) es la longitud máxima de ráfaga completamente corregible. 7,7  mm de longitud de pista (12 300 bits) es la longitud máxima de ráfaga que se puede interpolar. La tasa de interpolación de muestras es de una cada 10 horas a la tasa de error de bits (BER).=104{\displaystyle =10^{-4}}y 1000 muestras por minuto a BER =103{\displaystyle 10^{-3}}Muestras de error indetectables (clics): menos de una cada 750 horas a BER =103{\displaystyle 10^{-3}}y despreciable en BER =104{\displaystyle 10^{-4}}.

Véase también

Referencias

  1. 1 2 3 4 Fong, WH (2011). "Límites de codificación para códigos de corrección de ráfaga en fase múltiple y de ráfaga única". arXiv : 1104.1408 [ cs.IT ].
  2. McEliece, RJ (2004). The Theory of Information and Coding ( Edición para estudiantes). Cambridge University Press. ISBN  978-0-521-83185-7.
  3. 1 2 3 Ling, San; Xing, Chaoping (2004). Teoría de la codificación: Un primer curso . Cambridge University Press. ISBN 978-0-521-52923-5.
  4. 1 2 Moon, Todd K. (2005). Codificación de corrección de errores: métodos matemáticos y algoritmos . Wiley. ISBN 978-0-471-64800-0.
  5. 1 2 3 4 5 6 Lin, Shu; Costello, Daniel J. (2004). Codificación de control de errores: Fundamentos y aplicaciones (2.ª ed.). Pearson-Prentice Hall. ISBN  978-0-13-017973-9.
  6. "Cassini: ¿Qué tipo de corrección de errores?" . quest.arc.nasa.gov . 1999. Archivado del original el 27-06-2012.
  7. 1 2 3 Códigos de control de errores algebraicos (otoño de 2012) – Materiales de la Universidad de Stanford
  8. McEliece, Robert J. (1977). La teoría de la información y la codificación: un marco matemático para la comunicación . Programa de libros avanzados. Addison-Wesley.