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 ℓ [ 1 ]
Di una palabra clavese transmite y se recibe comoLuego, el vector de errorse denomina ráfaga de longitudsi los componentes no nulos deestán confinados acomponentes consecutivos. Por ejemplo,es una explosión de longitud
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 errorse denomina error de ráfaga cíclica de longitudsi sus componentes no nulos se limitan acomponentes cíclicamente consecutivos. Por ejemplo, el vector de error considerado anteriormente, es una ráfaga cíclica de longitud, puesto que consideramos el error comenzando en la posicióny terminando en la posición. Observe que los índices son-basado, es decir, el primer elemento está en la posición.
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.dóndees 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), yes 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.esNótese que dicha descripción no es única, porquedescribe el mismo error de ráfaga. En general, si el número de componentes distintos de cero enes, entoncestendrádiferentes descripciones de ráfaga, cada una comenzando en una entrada distinta de cero dePara 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.se denota por
Teorema (Unicidad de las descripciones de ráfagas) — Supongamos quees un vector de error de longitudcon dos descripciones de ráfagay. Sientonces las dos descripciones son idénticas, es decir, sus componentes son equivalentes. [ 2 ]
Dejarsea el peso de Hamming (o el número de entradas distintas de cero) de. Entoncestiene exactamentedescripciones de errores. ParaNo hay nada que probar. Por lo tanto, asumimos quey que las descripciones no son idénticas. Observamos que cada entrada distinta de cero deaparecerá en el patrón y, por lo tanto, los componentes deLos 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 tenemoscero carreras, y cada una es disjunta, tenemos un total deelementos distintos en todas las secuencias de ceros. Por otro lado tenemos: Esto contradicePor 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 longitud
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 elsímbolos como elementos enAhora podemos pensar en las palabras como polinomios sobredonde 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 grado. Supongamos que el polinomio generadortiene títuloPolinomios de gradoque sean divisibles porresultado de multiplicarpor polinomios de grado. Tenemostales polinomios. Cada uno de ellos corresponde a una palabra clave. Por lo tanto,para códigos cíclicos.
Los códigos cíclicos pueden detectar todas las ráfagas de longitud hastaVeremos más adelante que la capacidad de detección de errores en ráfaga de cualquierEl código está delimitado desde arriba porLos 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 gradopuede detectar todas las ráfagas de longitud
Necesitamos demostrar que si agregas una ráfaga de longituda una palabra clave (es decir, a un polinomio que sea divisible por), entonces el resultado no será una palabra clave (es decir, el polinomio correspondiente no es divisible por). Basta con demostrar que no hay explosión de longitudes divisible porTal explosión tiene la forma, dóndePor lo tanto,no es divisible por(porque este último tiene grado).no es divisible por(De lo contrario, todas las palabras clave comenzarían con). Por lo tanto,no es divisible portambié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 grado), calcula el resto de esta palabra cuando se divide por. Si el resto es cero (es decir, si la palabra es divisible por), 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 por(es decir, será una palabra clave válida).
Por el límite superior en la detección de errores en ráfaga (), sabemos que un código cíclico no puede detectar todas las ráfagas de longitudSin embargo, los códigos cíclicos pueden detectar la mayoría de las ráfagas de longitud. La razón es que la detección falla solo cuando la ráfaga es divisible por. Sobre alfabetos binarios, existenráfagas de longitudDe esos, soloson divisibles porPor lo tanto, la probabilidad de fallo de detección es muy pequeña () suponiendo una distribución uniforme sobre todas las ráfagas de longitud.
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 lineales un-código de corrección de errores de ráfaga si y solo si todos los errores de ráfaga de longitudyacen en distintos grupos de.
Dejarser errores de ráfaga distintos de longitudque se encuentran en el mismo conjunto lateral de código. Entonceses una palabra clave. Por lo tanto, si recibimospodemos decodificarlo de cualquier manerao. Por el contrario, si todos los errores de ráfagaySi 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 lineales un-código de corrección de errores de ráfaga si y solo si todos los errores de ráfaga de longitudyacen en distintos grupos de.
Teorema (Clasificación de código de error de ráfaga) — Seaser lineal-código de corrección de errores de ráfaga. Entonces no hay ráfaga distinta de cero de longitudpuede ser una palabra clave.
Dejarser una palabra clave con una ráfaga de longitudPor lo tanto, tiene el patrón, dóndeyson palabras de longitudPor lo tanto, las palabrasyson dos ráfagas de longitudPara 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 longitudpuede 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 uncódigo que puede detectar todos los errores de ráfaga de longitudUna pregunta natural que cabe plantearse es: dadoy¿Cuál es el máximo?¿Qué es lo que nunca podremos superar? En otras palabras, ¿cuál es el límite superior de la longitud?de ráfagas que podemos detectar usando cualquier¿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 cualquierEl código es
Primero observamos que un código puede detectar todas las ráfagas de longitudsi y solo si no hay dos palabras clave que difieran en una ráfaga de longitudSupongamos que tenemos dos palabras clave.yque se diferencian por una explosiónde longitudAl recibir, no podemos saber si la palabra transmitida es realmentesin errores de transmisión, o si escon un error de ráfagaque ocurrió durante la transmisión. Ahora, supongamos que cada dos palabras clave difieren en más de una ráfaga de longitud.Incluso si la palabra clave transmitidaes alcanzado por una ráfagade longitud, no va a cambiar a otra palabra clave válida. Al recibirlo, podemos decir que esto escon una explosiónSegún la observación anterior, sabemos que no hay dos palabras clave que puedan compartir la primerasímbolos. La razón es que, aunque difieren en todos los demássímbolos, seguirán siendo diferentes por una explosión de longitudPor lo tanto, el número de palabras claveSatisfaceAplicara ambos lados y reorganizando, podemos ver que.
Ahora repetimos la misma pregunta pero para la corrección de errores: dadoy¿Cuál es el límite superior de la longitud?de ráfagas que podemos corregir usando cualquier¿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 cualquierEl código satisface
Primero observamos que un código puede corregir todas las ráfagas de longitudsi y solo si no hay dos palabras clave que difieran en la suma de dos ráfagas de longitudSupongamos que dos palabras claveydifieren por ráfagasyde longitudcada uno. Al recibiralcanzado por una explosión, podríamos interpretar eso como si fueraalcanzado por una explosiónNo podemos saber si la palabra transmitida esoAhora bien, supongamos que cada par de palabras clave difieren en más de dos ráfagas de longitud. Incluso si la palabra clave transmitidaes golpeado por una ráfaga de longitud, no se parecerá a otra palabra clave que ha sido golpeada por otra ráfaga. Para cada palabra clavedejardenotan el conjunto de todas las palabras que difieren depor una explosión de longitudObserva queincluyepor sí mismo. Por la observación anterior, sabemos que para dos palabras clave diferentesyyson disjuntos. Tenemospalabras clave. Por lo tanto, podemos decir queAdemás, tenemos. Sustituyendo la última desigualdad en la primera, y luego tomando la baseAplicando logaritmos y reordenando, obtenemos el teorema anterior.
Un resultado más contundente lo proporciona la cota de Rieger:
Teorema (cota de Rieger) — Sies la capacidad de corrección de errores en ráfaga de uncódigo de bloque lineal, entonces.
Cualquier código lineal que pueda corregir cualquier patrón de ráfaga de longitudno puede tener una ráfaga de longitudcomo palabra clave. Si tuviera una ráfaga de longitudcomo palabra clave, luego una ráfaga de longitudpodría cambiar la palabra clave a un patrón de ráfaga de longitud, que también podría obtenerse haciendo un error de ráfaga de longituden todas las palabras clave cero. Si los vectores no son cero en el primerosí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 longitud. 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 menosPor lo tanto, tenemos al menossí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 longitudPor 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) — Parasobre un alfabeto binario, hayvectores de longitudque son ráfagas de longitud. [ 1 ]
Dado que la duración de la ráfaga esExiste una descripción de ráfaga única asociada a la ráfaga. La ráfaga puede comenzar en cualquiera de losposiciones del patrón. Cada patrón comienza cony contienen una longitud dePodemos pensar en ello como el conjunto de todas las cadenas que comienzan cony tienen longitud. Por lo tanto, hay un total deposibles patrones de este tipo, y un total deráfagas de longitudSi incluimos la ráfaga de ceros, tenemosvectores que representan ráfagas de longitud
Teorema (Límite en el número de palabras clave) — Siun binario-el código de corrección de errores de ráfaga tiene como máximopalabras clave.
Desde, sabemos que hayráfagas de longitudCada palabra clave tienepalabras (incluida ella misma) que difieren de sí misma por una explosión de longitudDigamos que el código tienepalabras clave únicas, ya que todas ellas son de distanciadel otro, obtenemos que hayconjuntos disjuntos depalabras. Hay como máximopalabras diferentes, lo que resulta en la desigualdadlo cual implica
Teorema (Límites de Abramson) — Sies un lineal binario-código de corrección de errores en ráfaga, su longitud de bloque debe cumplir:
Para un linealcódigo, haypalabras clave. Por nuestro resultado anterior, sabemos que Aislamiento, obtenemos. Desdeydebe ser un número entero, tenemos.
Observación.se denomina redundancia del código y en una formulación alternativa para los límites de Abramson es
Códigos de incendios
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, queremos decir que todos los errores que posee una palabra clave recibida se encuentran dentro de un intervalo fijo dedígitos.
Dejarsea un polinomio irreducible de gradoencimay dejarser el período de. El período dey, de hecho, de cualquier polinomio, se define como el menor entero positivo.de tal manera queDejarsea un número entero positivo que satisfagayno divisible por, dóndeyson el grado y el período de, respectivamente. Defina el Código de Incendiosmediante el siguiente polinomio generador :
Demostraremos quees un-código corrector de errores de ráfaga.
Lema 1 —
DejarSea el máximo común divisor de los dos polinomios. Dado quees irreductible,o. Asumirentoncespor alguna constante. Pero,es un divisor dedesdees un divisor de. Pero esto contradice nuestra suposición de queno divideDe este modo,demostrando el lema.
Lema 2 — Sies un polinomio de período, entoncessi y solo si
Si, entonces. De este modo,
Ahora supongamos que.... Entonces,. Demostramos quees divisible porpor inducción en El caso basesigue. Por lo tanto, supongamos Sabemos que divide ambos (ya que tiene período))Pero es irreductible, por lo tanto debe dividir ambosy; por lo tanto, también divide la diferencia de los dos últimos polinomios,Entonces, se deduce que divide. Finalmente, también divide:. Por la hipótesis de inducción,, entonces .
Un corolario del Lema 2 es que dado quetiene período, entoncesdividesi y solo si.
Si podemos demostrar que todas las ráfagas de longitudSi 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 ysean polinomios con grados y, que representan ráfagas de longitudy respectivamente conLos números enterosrepresentan las posiciones iniciales de las ráfagas y son menores que la longitud del bloque del código. Por contradicción, supongamos que yestán en el mismo coset. Entonces,es una palabra clave válida (ya que ambos términos están en la misma clase lateral). Sin pérdida de generalidad , elijaPor el teorema de la división podemos escribir:para números enterosy. Reescribimos el polinomiocomo sigue:
Nótese que en la segunda manipulación, introdujimos el término . Se nos permite hacerlo, ya que los códigos de incendios operan en . Según nuestra suposición,es una palabra clave válida y, por lo tanto, debe ser un múltiplo de. Como se mencionó anteriormente, dado que los factores deson relativamente importantes,tiene que ser divisible por. Observando detenidamente la última expresión derivada paraobservamos quees divisible por(por el corolario del Lema 2). Por lo tanto,es divisible poro es. Aplicando nuevamente el teorema de la división, vemos que existe un polinomiocon títulode tal manera que:
Entonces podemos escribir:
Igualando el grado de ambos lados, obtenemos Desde podemos concluir lo cual implica y . Observe que en la expansión: El término aparece, pero desde , la expresión resultanteno contiene , por lo tantoy posteriormenteEsto requiere que , y . Podemos revisar aún más nuestra división deporpara reflejareso es. Sustituyendo de nuevo ennos da,
Desde, tenemos. Peroes irreductible, por lo tanto ydebe ser relativamente primo. Dado quees una palabra clave,debe ser divisible por, ya que no puede ser divisible por. Por lo tanto,debe ser un múltiplo de. Pero también debe ser un múltiplo de, lo que implica que debe ser un múltiplo depero esa es precisamente la longitud del bloque del código. Por lo tanto,no puede ser un múltiplo deya que ambos son menores que. Por lo tanto, nuestra suposición deser una palabra clave es incorrecto y por lo tantoyse 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 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., un número entero, que representa la capacidad de corrección de errores en ráfaga de nuestro código, y necesitamos satisfacer la propiedad de que no es divisible por el período de. Teniendo en cuenta estos requisitos, considere el polinomio irreducibley dejar. Desdees un polinomio primitivo, su período es. Confirmamos queno es divisible por. De este modo, 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 dey. En otras palabras,. Por lo tanto, el Código de Fuego anterior es un código cíclico capaz de corregir cualquier ráfaga de longitudo 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 enCada símbolo del alfabeto puede ser representado porbits. Sies unEl código Reed-Solomon ha terminado., podemos pensar encomo uncódigo sobre.
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 porbits, y en general, es irrelevante cuántos de esosLos bits son erróneos; ya sea un solo bit o todos ellos.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 deLos errores pueden afectar como máximosímbolos y una explosión depuede afectar como máximosímbolos. Luego, una explosión depuede afectar como máximosímbolos; esto implica que un-El código corrector de errores de símbolos puede corregir una ráfaga de longitud como máximo.
En general, un-corrección de errores en el código Reed-Solomonpuede corregir cualquier combinación de o menos ráfagas de longitud, además de poder corregir-errores aleatorios en el peor de los casos.
Un ejemplo de código RS binario
Dejarser unCódigo RS sobreEste código fue empleado por la NASA en su nave espacial Cassini-Huygens . [ 6 ] Es capaz de corregirerrores de símbolos. Ahora construimos un código RS binario.deCada símbolo se escribirá utilizandobits. Por lo tanto, el código binario RS tendrácomo sus parámetros. Es capaz de corregir cualquier ráfaga única de longitud.
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

Teorema : Si la capacidad de corrección de errores en ráfaga de algún código esluego la capacidad de corrección de errores en ráfaga de su-el entrelazado de vías es
Supongamos que tenemos uncódigo que puede corregir todas las ráfagas de longitudEl entrelazado puede proporcionarnos unacódigo que puede corregir todas las ráfagas de longitudpara cualquier dado. Si queremos codificar un mensaje de longitud arbitraria usando entrelazado, primero lo dividimos en bloques de longitud. Escribimos elentradas de cada bloque en unmatriz utilizando orden de filas. Luego, codificamos cada fila utilizando elcódigo. Lo que obtendremos es unmatriz. Ahora, esta matriz se lee y se transmite en orden de columnas. El truco es que si se produce una ráfaga de longituden la palabra transmitida, entonces cada fila contendrá aproximadamenteerrores consecutivos (Más específicamente, cada fila contendrá una ráfaga de longitud al menosy como máximo). Sientoncesy elEl código puede corregir cada fila. Por lo tanto, el intercaladoEl código puede corregir la ráfaga de longitud. Por el contrario, sientonces al menos una fila contendrá más deerrores consecutivos y elEl código podría no corregirlos. Por lo tanto, la capacidad de corrección de errores del entrelazadoEl código es exactamenteLa eficiencia BEC del código entrelazado permanece igual que la del original.código. Esto es cierto porque:
intercalador de bloques
La siguiente figura muestra un intercalador de 4 por 3.

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 dematriz. Generalmente,es la longitud de la palabra clave.
Capacidad del entrelazador de bloques : Para unintercalador de bloques y ráfaga de longitudEl límite superior en el número de errores esEsto es obvio por el hecho de que estamos leyendo la salida columna por columna y el número de filas es. Por el teorema anterior para la capacidad de corrección de errores hastaLa longitud máxima de ráfaga permitida esPara la duración de ráfaga de, el decodificador puede fallar.
Eficiencia del entrelazador de bloques (): 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 formularcomo
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.sea el número de líneas de retardo ysea el número de símbolos introducidos por cada línea de retardo. Por lo tanto, la separación entre entradas consecutivas =símbolos. Sea la longitud de la palabra clave.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 longitudocurrir. Dado que la separación entre símbolos consecutivos esEl número de errores que puede contener la salida desentrelazada esSegún el teorema anterior, para una capacidad de corrección de errores de hasta, la longitud máxima de ráfaga permitida esPara la duración de ráfaga deEl decodificador puede fallar.


Eficiencia del entrelazador cruzado (): 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
Por lo tanto, podemos formularcomo sigue:
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 deo 4bytes 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 dóndeyson bytes de los canales izquierdo y derecho delmuestra del marco.
Inicialmente, los bytes se permutan para formar nuevos marcos representados pordónderepresentar-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.. Esto es de corrección de dos errores, siendo de distancia mínima 5. Esto agrega 4 bytes de redundancia,formando un nuevo marco: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 resultadoFinalmente, 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 deerrores yborrados tales que[ 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).y 1000 muestras por minuto a BER =Muestras de error indetectables (clics): menos de una cada 750 horas a BER =y despreciable en BER =.
Véase también
Referencias
- 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 ].
- ↑ McEliece, RJ (2004). The Theory of Information and Coding ( Edición para estudiantes). Cambridge University Press. ISBN 978-0-521-83185-7.
- 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.
- 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.
- 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.
- ↑ "Cassini: ¿Qué tipo de corrección de errores?" . quest.arc.nasa.gov . 1999. Archivado del original el 27-06-2012.
- 1 2 3 Códigos de control de errores algebraicos (otoño de 2012) – Materiales de la Universidad de Stanford
- ↑ 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.
- Teoría de la codificación
- Detección y corrección de errores
- Errores informáticos