Sie sind auf Seite 1von 6

“Año del Diálogo y Reconciliación Nacional.


“Universidad Nacional José Faustino Sánchez Carrión.”
Ingeniería Industrial, Sistema e Informática.
Escuela Ingeniería Electrónica

Comunicaciones Digitales,
Alumnos:
 Salas Obispo, Leonardo

Docente:
 Ing. Daniel Delgado Namuche

HUACHO, PERÚ

2018
CÓDIGO POLINOMIAL:
El código polinomial o también códigos de redundancia cíclica es un código de detección de errores
usado frecuentemente en redes digitales y en dispositivos de almacenamiento para detectar
cambios accidentales en los datos. Los bloques de datos ingresados en estos sistemas contiene
un valor de verificación adjunto, basado en el residuo de una división de polinomios; el cálculo es
repetido, y la acción de corrección puede tomarse en contra de los datos presuntamente corruptos
en caso de que el valor de verificación no concuerde. Este código es un tipo de función que recibe
un flujo de datos de cualquier longitud como entrada y devuelve un valor de longitud fija
como salida. El término suele ser usado para designar tanto a la función como a su resultado.
Pueden ser usadas como suma de verificación para detectar la alteración de datos durante
su transmisión o almacenamiento. Las CRC son populares porque su implementación
en hardware binario es simple, son fáciles de analizar matemáticamente y son particularmente
efectivas para errores ocasionados por ruido en los canales de transmisión. La CRC fue inventada y
propuesta por W. Wesley Peterson en un artículo publicado en 1961

 La Integridad de los datos frente a la codificación:


Es útil para detección de errores, pero, en condiciones de seguridad, no podemos confiar
en que el CRC puede verificar plenamente que los datos son los correctos en caso de que se
hayan producido cambios deliberados y no aleatorios.
A menudo se piensa que sí, cuando llega un mensaje, este y su CRC coincide, quiere decir
que el mensaje no ha podido ser alterado durante su transmisión, aunque se haya
transmitido por un canal abierto.

Esta suposición es falsa porque CRC es un mal método de cifrado de datos. De hecho, el CRC
no se trata realmente de un método de cifrado, lo que realmente hace es utilizarse para el
control de integridad de datos, pero en algunos casos se supone que se utilizarán para el
cifrado.

Cuando un CRC se calcula, el mensaje se conserva (no cifrado) y la constante de tamaño CRC
se sitúa hacia el final (es decir, el mensaje puede ser tan fácil como leer antes de la posición
que ocupa el CRC).

Además, la longitud del CRC es por lo general mucho más pequeña que la longitud del
mensaje, es imposible para una relación de 1:1 entre la CRC y el mensaje.
Así, numerosos códigos producirán el mismo CRC.

Por supuesto, estos códigos están diseñados para ser lo suficientemente diferentes como
para variar (y por lo general solo en uno o dos bits). Pequeños cambios en la palabra clave
producirían una gran diferencia entre un CRC y otro; por ese motivo es posible detectar el
error.

ING. DANIEL DELGADO 2


Si la manipulación del mensaje (cambios de los bits) es deliberada, entonces se tomara una
nueva clave, produciendo un falso CRC el cual puede ser calculado para el nuevo mensaje y
sustituir el CRC real en el final del paquete y esta modificación no podrá ser detectada.
La CRC sirve para verificar la integridad, pero no para saber si el mensaje es correcto.
Por el contrario, un medio eficaz para proteger a los mensajes contra la manipulación
intencional es el uso de un código de autenticación de mensajes como HMAC.

 Cálculo de CRC:
La mecánica de la informática con su lenguaje binario produce unas CRC simples. Los bits
representados de entrada son alineados en una fila, y el (n + 1) representa el patrón de bits
del divisor CRC (llamado polinomio) se coloca debajo de la parte izquierda del final de la fila.
Aquí está la primera de ellas para el cálculo de 3 bits de CRC:

Si la entrada que está por encima del extremo izquierdo del divisor es 0, no se hace nada y
se pasa el divisor a la derecha de uno en uno. Si la entrada que está por encima de la
izquierda del divisor es 1, el divisor es Or exclusiva en la entrada (en otras palabras, por
encima de la entrada de cada bit el primer bit conmuta con el divisor). El divisor es entonces
desplazado hacia la derecha, y el proceso se repite hasta que el divisor llega a la derecha,
en la parte final de la fila de entrada. Aquí está el último cálculo:

Desde la izquierda se divide por cero todos los bits de entrada, cuando este proceso termina
el único bits en la fila de entrada que puede ser distinto de cero es n bits más a la derecha,
en la parte final de la fila. Estos n bits son el resto de la división, y será también el valor de
la función CRC (es el CRC escogido a menos que la especificación de algún proceso posterior
lo cambie).

 Matemática del CRC:


Este apartado se refiere al análisis matemático de este proceso de división, como pone de
manifiesto la manera de elegir un divisor que garantiza la detección de errores buenas
propiedades. En este análisis, los dígitos de las cadenas de bits son considerados como los
coeficientes de un polinomio en algunos variables x/coeficientes, que son elementos del
campo finito binario en lugar de los números decimales. Este «polinomio» forma unas
cadenas de bits que pueden observarse como elementos de un anillo. Un anillo es, hablando
en términos generales, un conjunto de elementos. Es decir, como los números que pueden
ser operados por una operación semejante pero no idéntica a la de la suma y además alguna

ING. DANIEL DELGADO 3


otra operación semejante a la multiplicación. Estas operaciones poseen muchas de las
propiedades de la aritmética: conmutativa, asociativa, y distributiva.

 Especificación de un CRC:
El CRC se utiliza como una detección de errores de código, el cual tiene una serie de
aplicaciones usadas cuando se implementa mediante normas, convirtiéndolo así en un
sistema práctico.
 Estas son algunas de las aplicaciones:

- Se usa un patrón de prefijos de bit para comprobar su autenticidad. Esto es útil cuando
la trama podría tener errores en los bits de delante de un mensaje, una alteración que,
de otro modo dejaría sin cambios al CRC. A veces un envío agrega n bits (n es el tamaño
de la CRC) al mensaje que se debe controlar ya que se cogería un polinomio que no sería
el correcto para la división. Esto tiene la conveniencia de que el CRC del mensaje original
con el CRC adjunto es exactamente cero, por lo que el CRC se puede comprobar
simplemente por la división polinómica y comparando con el resto cero. A veces se
realiza una implementación del CRC con OR exclusivos en el resto de la división
polinómica.
- Orden de los bits: En ocasiones, el orden en el que se envían las tramas de datos no
corresponden exactamente con la posición que tendrán los bits en la división
polinómica; es decir, que puede que el primer bit enviado sea el de más peso o
viceversa. Este convenio tiene sentido cuando las tramas a enviar se envían por puertos
series ya que el CRC es comprobado por el hardware de cada máquina, y cada uno
tendrá un convenio conjunto de lectura y posicionamiento de paquetes para el envío a
la capa siguiente.
- Omisión del orden del bit de más peso del polinomio divisor: algunos escritores
proponen omitir esto, puesto que el bit mayor peso es siempre 1, y ya que el bit CRC
debe ser definido por un (n + 1) bits del divisor, es innecesario mencionar el divisor
mayor peso en el mensaje y en el CRC.

ING. DANIEL DELGADO 4


CÓDIGO ARBOL:
Un código de árbol es producido por un codificador con memoria, a este grupo pertenecen los
códigos convolucionales, los cuales tienen como característica que a cada bit de una secuencia se le
aplica una operación binaria especifica.

En teoría de la información, un código convolucional es un tipo de código de detección de


errores donde:

1. Cada símbolo de m bits de información se transforma, al ser codificado, en un símbolo


de n bits, donde m/n es la tasa del código (n ≥ m)
2. La transformación es función de los k símbolos anteriores, donde k es la longitud del código
Los códigos convolucionales son códigos lineales al igual que los códigos bloque (como los códigos
de Hamming, por ejemplo) y, por tanto, se utilizan para proteger la información añadiendo
redundancia a la misma, de manera que las palabras del código tengan la distancia mínima
necesaria.

Sin embargo, a diferencia de los códigos bloque, las palabras de un código convolucional se generan
no sólo a partir de los dígitos de información actuales sino también con la información anterior en
el tiempo. Es decir, un codificador convolucional es un sistema con memoria y, en consecuencia,
lleva asociada una cadena de Markov aunque ésta no es visible en la salida pero sí la condiciona.

CODIFICACIÓN:
Existen varios métodos de codificación de códigos convolucionales, aunque una de las más usuales
es la basada en registros de desplazamiento conectados con sumadores base 2 en los que se realiza
la codificación. Por cada bit que entre en el codificador se obtienen n bits.

DECODIFICACIÓN:
La decodificación de un código convolucional consiste en escoger la secuencia más probable entre
todas las posibles. Existen diversos algoritmos que permiten la decodificación de este tipo de
códigos y la decodificación óptima se consigue mediante el algoritmo de Viterbi.

APLICACIONES:

Los códigos de árbol se utilizan generalmente como códigos de canal para corregir los errores de los
canales ruidosos, ya sean debidos a limitaciones de potencia (típica en los canales digitales banda
base) como a limitaciones en banda (propia de los canales digitales paso banda). En algunas
aplicaciones, los códigos de árbol se utilizan concatenados con otro código (como Reed-Solomon,
por ejemplo) de manera que éste es el código exterior y el código árbol es el código interior al canal.
Dicha combinación de códigos se prefiere, para obtener mayor capacidad de corrección de errores,
frente a la utilización de un código árbol con mayor distancia libre, en aras a la simplicidad del
decodificador

ING. DANIEL DELGADO 5


En recepción, el demodulador utilizará el algoritmo de Viterbi con decodificación blanda para hallar
el camino más probable en el diagrama de Trellis, y así, obtener los bits de información iniciales. Se
ha demostrado que la modulación TCM consigue una ganancia neta de código (definida como el
cuadrado del cociente entre las distancias mínimas con y sin codificación convolucional) que varía
de 3 a 6 dB según la longitud limitada L del codificador. Dicha ganancia se traduce en una reducción
de la probabilidad de error de bit.

ING. DANIEL DELGADO 6

Das könnte Ihnen auch gefallen