Códigos BCH

Anuncio
Códigos BCH
Abstract.- In this paper I present the importance of BCH codes. When we reach
objectives such as protection against the noise and the efficient use of the
communication channel, is evidently the use of treating the information in a especial
way. The structure of design of corrective codes of errors has the purpose to build
codes with redundancy reasonable and quick decoding.
Introducción
[2] Para hablar de los códigos BCH, se debe tener, idea de lo que son los códigos cíclicos,
para la corrección de errores, los cuales forman hoy parte de nuestra vida cotidiana.
[5] El álgebra lineal y los polinomios sobre cuerpos finitos proporcionan los primeros
métodos sistemáticos para el diseño y uso de códigos en la corrección de errores. La teoría
elemental de extensiones de cuerpos finitos permite desarrollar posteriormente los códigos
de Reed-Solomon y BCH, su implementación en numerosos procesos estandarizados hace
de ellos la clase de códigos más importante en cuanto a sus aplicaciones. El uso, de
paquetes de cálculo matemático permite la simulación de los algoritmos básicos en los
procesos de codificación y descodificación.
Como resultado de los problemas físicos que ocasionan el ruido, los errores tienden a
presentarse como ráfagas, mas que aisladamente. El hecho de que los errores se presenten
como ráfagas tiene ciertas ventajas y desventajas con respecto a los errores aislados, de un
solo BIT. Por el lado de las ventajas, los datos del ordenador siempre se envían en bloques
de bits, la desventaja de la ocurrencia de los errores en ráfaga es que son mucho más
difíciles de detectar y corregir que los errores aislados y, también, son más difíciles de
modelar analíticamente.
Códigos BCH
[4]- Estos códigos fueron descubiertos por Hocquenghem en 1.959 y también por Bose y RayChaudhuh en 1.960. De las iniciales de sus nombres es de donde viene el nombre que se les da a
estos códigos.
[2]- Son una generalización de los códigos Hamming que permiten la corrección de
múltiples errores. estos son una potente clase de códigos cíclicos que proporcionan una
gran selección de bloques de longitud, índice de código, tamaño de alfabeto y capacidad de
corrección de error.
- El código BCH es uno de los más importantes clases de códigos de bloques lineales. En
este código, los datos se dividen en bloques de k bits de información: cada bloque
representa cualquiera de los dos a la k de distintos mensajes.
El codificador añade (n-k) bits y construye un bloque de n bits de longitud, que se conocen
como bits de código. Estos (n-k) bits añadidos son conocidos como bits redundantes, bits
1
de paridad o bits de chequeo y no se usan para transmitir información. Este código es
conocido como del tipo (n-k). La razón (n-K)/K dentro de un bloque se le conoce como la
redundancia del código, y la razón de los bits de datos al número total de bits, k/, se le
conoce como la razón de código.
La codificación de bloque es usada en la mayoría de los sistemas celulares del mundo. E
AMPS (Adcance Mobile Pone Service) en Estados unidos, la longitud de palabra para el
canal de forwading signaling es de 40 bits de longitud. Cada palabra codificada de 40 bits,
contiene 28 bits de datos y 12 bits de chequeo, y forma un (40, 28, 5) código BCH Aquí la
distancia entre palabras código es de cinco. En el canal de reverse control la palabra se
forma codificando 35 bits de datos en una palabra de código BCH de (48, 36) que también
tienen una distancia de cinco (48, 36, 5). En ambos canales el bit de más a la izquierda se
designa como el más significativo.
[3]- Los más comunes son los llamados BCH primitivos los cuales tienen:
 Longitud del bloque: n=2m –1 ( m mayor o igual a 3)
 Numero de bits del mensaje: kn-mt
 Distancia mínima  2t+1
 Cada código BCH es un código corrector de t errores. Los códigos Hamming
correctores de un error pueden ser descritos como códigos BCH.
[1] Tasa de Bit Erróneo para códigos Hamming Golay y BCH
[4] Formas de corrección de Errores
Hemos visto anteriormente que los códigos de Hamming corrigen los errores de peso menor o igual
que uno. Podemos modificar los códigos de Hamming para corregir dos errores, pero para eso
tenemos que aumentar la distancia mínima. Esto lo podemos hacer de dos formas:
2
1. Aumentando la longitud de las palabras.
En este caso corregir un error en una palabra de longitud cinco o corregir dos errores en una
palabra de longitud diez es más o menos equivalente y no introduce mejoras sustanciales en
el código.
2.
Separando más las palabras del código.
Este método será el que utilizaremos, y para conseguirlo eliminaremos palabras del código, con
lo que obtendremos un subcódigo de un código de Hamming con una distancia mínima mayor,
lo que nos permitirá corregir hasta errores de peso dos.
Desarrollo de BCH
[4] Para poder desarrollar la teoría de estos códigos se debe utilizar algunas propiedades de
un cierto tipo de matrices, "las matrices de Vandermonde".Tamaño (n*n).
Estos códigos serán subcódigos de los códigos de Hamming. Para ello eliminaremos palabras de
los códigos de Hamming con el objetivo de obtener un nuevo código con una distancia mínima
mayor.
La forma de eliminar palabras será añadiendo nuevas condiciones al código, o lo que es lo mimo
añadir nuevas filas a la matriz de control. Estas nuevas filas que añadiremos no serán
combinaciones lineales de las filas de la matriz de control, ya que no estaríamos, haciendo nada.
Matemáticamente estaremos añadiendo nuevas ecuaciones implícitas al código, con lo cual
reduciremos su dimensión, y como consecuencia el número de palabras del código.
Las nuevas filas que añadiremos serán una función no lineal de las filas de la matriz de
control. Al utilizar funciones no lineales tenernos un cierto control sobre la distancia
mínima, ya que esta variará según la función que estemos utilizando.
Conclusiones
[4]- Los errores que detecta y corrige el código BCH (k, t) tienen síndromes distintos. Podemos
utilizar el algoritmo de los síndromes que vimos en los códigos lineales para corregir errores. Estos
códigos son lineales, ya que son subcódígos de los códigos de Hamming, que son lineales, y además
los hemos definido como aquellos códigos que tienen una determinada matriz de control, matriz del
subespacio incidente a un subespacio vectorial que será el código BCH(K, t).
-Como los códigos BCH(K, t) son t-perfectos, es decir corrigen todos los errores de peso
menor o igual que i, tendremos que su distancia mínima será mayor o igual que 2. t + 1.
dmin > 2.t + 1
- El código BCH(K, t) detecta y corrige todos los errores de peso menor o igual que t. Todos los
errores que detecta y corrige el código BCH(K, t) están determinados de forma única.
[5]- Un buen código es aquel en el que los codewords(mensajes válidos que lo forman los
mensajes) están tan separados que la probabilidad de que los errores conviertan al
codeword deseado en otro codeword es muy pequeña.
Según esto, la detección de errores se limita a responder a la pregunta: "¿Es el mensaje
recibido un codeword o no ?" Si es un codeword, uno supone que no hay errores, de esta
3
manera la probabilidad de no detectar un error es la probabilidad de que los posibles errores
conviertan un codeword en otro.
Cuando se detecta un error existen dos métodos para corregirlo:
1. El receptor rechaza el mensaje recibido y solicita al transmisor que retransmita el
mensaje.
2. El receptor corrige el error al encontrar el codeword válido más próximo al mensaje
recibido. Este procedimiento se llama forward error correction (FEC).
Bibliografía
[1]http://www.gr.ssr.upm.es/rcii/listatps.htm
[2]http://info.pue.udlap.mx/~lgojeda/apuntes/sistcom/codigos.htm
[3]http://www.ma.usb.ve/coordinacion/Programas.htm
[4] http://sis.ucsm.edu.pe/sistemas/cursos/Cripto/Cripto/Tcodigos.ps
[5] www.mac-cie.uva.es/~cureemm/codigos
4
Descargar