Este documento describe diferentes tipos de códigos correctores de errores como códigos BCH, Reed-Solomon y convolucionales. Los códigos BCH pueden corregir múltiples errores y tienen parámetros como longitud de bloque, tamaño de mensaje y distancia mínima. Los códigos Reed-Solomon son una clase de códigos BCH capaces de corregir grandes ráfagas de errores. Los códigos convolucionales generan bits de redundancia de forma continua y permiten la corrección continua de errores representados como una tupla.
2. Los códigos BCH fueron construidos por A.
Hocquenghem, R. C. Bose y A. K. Ray
Chaudhuri en los años 1959 y 1960, estos
codigos cíclicos tienen la particularidad de
corregir múltiples errores.
Longitud de
Bloque 𝑛 = 2 𝑚
− 1, 𝑑𝑜𝑛𝑑𝑒 𝑚 ≥ 3
Tamaño del
mensaje
𝑘 ≥ 𝑛 − 𝑚𝑡
Distancia
mínima
𝑑 𝑚𝑖𝑛 ≥ 2𝑡 + 1
Bits de paridad 𝑛 − 𝑘
Errores a
corregir
𝑡
3. Las formulas descritas anteriormente se
aplican para un par de enteros positivos (n,k).
Característ
icas
• Corrige combinaciones de
menos de t o menos errores.
• Permite gran flexibilidad en
la elección de los siguientes
parámetros.
• Longitud de bloque y tasa
del código.
4. El código BCH definido sobre el cuerpo 𝐺𝐹 𝑞 de longitud 𝑛 y
distancia mínima de diseño 𝛿 es el mayor código cíclico entre
cuyos ceros hay 𝛿 − 1 potencias consecutivas de la forma:
Con 𝛼 una n-esima raíz primitiva en 𝐺𝐹(𝑞 𝑚
) de la unidad
(siendo m el orden multiplicativo de q modulo n). El polinomio
generador de este código es:
O lo que es lo mismo, el polinomio Mónico de menor grado que
admite como raíces a las n-esimas raíces primitivas
anteriormente descritas.
5. Los códigos Reed-Solomon son una clase dentro de los
códigos BCH no binarios capaces de corregir grandes
ráfagas de errores y símbolos borrados, convenientes para
construir otros códigos.
(código RS). Un código Reed-Solomon (RS) sobre el cuerpo
𝐹𝑞 es un código BCH de longitud 𝑞 − 1.
Por tanto la longitud de un código RS es el numero de
elementos no nulos del cuerpo de base, naturalmente q ≠
2 es de decir los códigos RS no son binarios.
Para su construcción se toma la raíz primitiva (𝑞 − 1)-
enésima de la unidad es cualquier elemento primitivo, 𝛼,
del cuerpo 𝐹𝑞. El polinomio mínimo de 𝛼 𝑖 sobre 𝐹𝑞 𝑥 𝑒𝑠 𝑥 −
𝛼 𝑖 . Así el polinomio generador de un código RS de
distancia (de diseño) 2𝑡 + 1 es:
6. Donde normalmente se elige 𝑏 =
0 𝑜 𝑏 = 1
Característ
icas
• La data es procesada en trozos de m bits,
llamados símbolos.
• Códigos RS (n,k), Longitud de símbolo de m
bits por símbolo.
• Longitud de bloque de 𝑛 = 2 𝑚
− 1
símbolos= 𝑚(2 𝑚 − 1) bits.
• Longitud de data de k símbolos.
• Tamaño del código de chequeo 𝑛 − 𝑘 = 2𝑡
símbolos = 𝑚(2𝑡) bits.
• Distancia mínima 𝑑 𝑚𝑖𝑛 = 2𝑡 + 1 simbolos.
7. Normas
Sea t = 1 y m = 2.
Denotemos los símbolos 0,1,2,3 que se pueden escribir en
forma binaria como
0=00, 1=01, 2=10 y 3=11.
El código tiene los siguientes parámetros:
𝑛 = 22 − 1 = 3 𝑠𝑖𝑚𝑏𝑜𝑙𝑜𝑠 = 6 𝑏𝑖𝑡𝑠.
𝑛 − 𝑘 = 2 𝑠𝑖𝑚𝑏𝑜𝑙𝑜𝑠 = 4 𝑏𝑖𝑡𝑠.
Ejemp
lo
Este código puede corregir una ráfaga de errores que se
expande en un símbolo de 2 bits.
8. Son códigos lineales con memoria, pero aun así en su
linealidad su estructura matemática es distinta a los códigos
bloque algebraicos no es tan simple. La generación de
redundancia se realiza de manera mas general la secuencia de
código es la respuesta de un sistema lineal e invariante en el
tiempo a la secuencia completa de símbolos del mensaje.
Códigos Convoluciones
Un codificador convolucional 𝐶 𝑛, 𝑘 , con alfabeto de
codificación 𝐹𝑞, es una maquina de estados finita con entradas
𝑢 ∈ 𝐹𝑞
𝑘 y salidas 𝑥 ∈ 𝐹𝑞
𝑛, en la que cada instante de tiempo 𝑡 =
0,1, … , 𝑡 ∈ 𝑍+ .
9. • Generan bit redundantes continuamente.
• Chequeo y corrección de errores realizados
continuamente.
• Código representado como (𝑛, 𝑘, 𝐾).
• El proceso de entrada procesa k bits en un
determinado tiempo.
• La salida produce n bits por cada k bits de
entrada.
• 𝑘 = 𝑓𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑖𝑜𝑛.
• k y n generalmente muy pequeños.
• La salida de n bits del código (𝑛, 𝑘, 𝐾) depende de:
• Bloque en curso de k bits de entrada.
• Los 𝑘 − 1 bloques previos de 𝑘 bits de entrada.
• La tasa de un código convolucional es
𝑘
𝑛
.
Característ
icas
10. Codificació
n:
Existen varias maneras de representar gráficamente un
codificador convencional:
-Árbol de código.
-Enramado (trellis).
-Diagrama de Estado.
Descodificaci
ón: • Compara la secuencia recibida con todas
las posibles secuencias transmitidas.
• El algoritmo elige el camino a traves del
diagrama de enramado cuya posible
secuencia transmitida difiere en el menor
número de sitios.
• Una vez una camino válido es
seleccionado como el camino correcto, el
decodificador puede recuperar la data de
entrada de los bits del código de salida.
Código de
Viterbi
Notas del editor
Directa: El programa O sub Programa se llama a si mismo
Indirecta: El programa llama a otro Sub-Programa y este a su ves en algún momento llama al primero.