Sunteți pe pagina 1din 62

Facultad de Ingeniería de Sistemas y

Electrónica

ESCUELA DE INGENIERÍA TELECOMUNICACIONES

SISTEMAS Y TRANSMISIÓN DE DATOS

PERIODO 2018
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
CODIFICACIÓN DE UNA FUENTE

SUMARIO

1. CÓDIGOS DE REED-MÜLLER
2. CÓDIGOS LINEALES Y CÍCLICOS
3. IMPLEMENTACIÓN DE UN CODIFICADOR SISTEMÁTICO.

BIBLIOGRAFIA
Bibliografía base:
• Thomas Cover and Joy A. Thomas, "Elements of Information Theory". De
John Willey & Sons.
• Shu Lin & Daniel Costello. "Error Control Coding". Ed. Prentice Hall.
Bibliografía complementaria:
• GIL ÁLVAREZ, P. Teoría matemática de la información.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


PRESENTADO POR:

JOSE EDUARDO TORRES VEGA


Coronel EP ( R )
Diplomado en Ciencia y Tecnología
Ingeniero Electrónico CIP
Maestro en Administración
PADE-ESAN en Logística
Diplomado en Seguridad y Salud Ocupacional
Docente Universitario a nivel pre grado y post grado
Consultoría y Asesoría en el Diseño, Implantación y Control
de Servicios de Telecomunicaciones y Telemática
Estudios Teóricos de Radiaciones No Ionizantes
Consultoría en Temas de Seguridad Integral

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CODIGO DE RED MULLER

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


 LOS CÓDIGOS REED-MULLER SON UNA FAMILIA DE CÓDIGOS LINEALES DE CORRECCIÓN
DE ERRORES UTILIZADOS EN LAS COMUNICACIONES

 PERTENECEN A LAS CLASES DE CÓDIGOS LOCALMENTE TESTABLES Y DECODIFICABLES.

 LOS CASOS ESPECIALES DE LOS CÓDIGOS DE REED-MULLER INCLUYEN EL CÓDIGO DE


WALSH-HADAMARD Y EL CÓDIGO DE REED-SOLOMON.

 LOS CÓDIGOS REED-MULLER SE ENUMERAN COMO RM (r,m), DONDE r ES EL ORDEN

DEL CÓDIGO, 0 ≤ r ≤ m , y m DETERMINA LA LONGITUD DEL BLOQUE N = 2 m . LOS


CÓDIGOS RM ESTÁN RELACIONADOS CON LAS FUNCIONES BINARIAS EN EL CAMPO GF-

CAMPO FINITO O DE GALOIS (2 m ) SOBRE LOS ELEMENTOS {0, 1}.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
CODIGO LINEALES Y CÍCLICOS

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


Técnicas de
detección y
correción de
errores

Detección Corrección

Código
Códigos de bloques Códigos de bloques
Convolucionales

Lineales Lineales

Código de
Código de Paridad Cíclicos Cíclicos
Hamming

Chequeo Ciclico Chequeo Ciclico


Redundante (CRC) Redundante (CRC)
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
La tasa de información de un (n, M)-código q-ario se define por:

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CÓDIGOS PARA LA DETECCIÓN DE ERRORES
• Cada bloque de k bits es codificado con un bloque de (k+r) bits
denominado palabra código (codeword).
• La palabra código es la que se transmite.
• En el receptor varias cosas pueden pasar:
• Si no hay errores, la salida de decodificador es igual al código original.
• Para ciertos errores, el decodificador puede detectar y corregir los
mismos.
• Para ciertos patrones de errores, el decodificador puede detectar el
error pero no corregirlo.
• Para ciertos errores el decodificador no puede detectar el error y
produce una señal de salida que difiere de la original.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CÓDIGOS POR BLOQUES LINEALES

• CASI TODOS LOS CÓDIGOS DE BLOQUE UTILIZADO HOY EN DÍA PERTENECEN A UN SUBGRUPO LLAMADO
BLOQUE DE CÓDIGOS LINEALES.

• UN CÓDIGO DE BLOQUE LINEAL ES UN CÓDIGO EN EL QUE EL OR EXCLUSIVO (ADICIÓN MÓDULO-2) DE DOS


PALABRAS DE CÓDIGO VÁLIDAS CREA OTRA PALABRA DE CÓDIGO VÁLIDA.

 UN CÓDIGO LINEAL ES UN CÓDIGO DE CORRECCIÓN DE ERRORES PARA LOS QUE CUALQUIER COMBINACIÓN
LINEAL DE PALABRAS DE CÓDIGO ES TAMBIÉN UNA PALABRA DE CÓDIGO.

 LOS CÓDIGOS LINEALES SON TRADICIONALMENTE DIVIDIDOS EN BLOQUES DE CÓDIGOS Y CÓDIGOS


CONVOLUCIONALES Y SE UTILIZAN EN LA CORRECCIÓN DE ERRORES HACIA ADELANTE Y SE APLICAN EN LOS
MÉTODOS DE TRANSMISIÓN DE SÍMBOLOS EN UN CANAL DE COMUNICACIONES, DE MANERA QUE, SI SE
PRODUCEN ERRORES EN LA COMUNICACIÓN, ALGUNOS ERRORES PUEDEN SER CORREGIDOS O DETECTADOS
POR EL RECEPTOR DE UN BLOQUE DE MENSAJE.

 LAS PALABRAS DE CÓDIGO EN UN CÓDIGO DE BLOQUE LINEAL SON BLOQUES DE SÍMBOLOS QUE SON
CODIFICADOS USANDO MÁS SÍMBOLOS QUE EL VALOR ORIGINAL PARA SER ENVIADAS. UN CÓDIGO LINEAL
DE LONGITUD N TRANSMITE BLOQUES QUE CONTIENEN N SÍMBOLOS

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


 POR EJEMPLO, LA [7, 4,3] CÓDIGO DE HAMMING ES UN CÓDIGO BINARIO LINEAL QUE
REPRESENTA LOS MENSAJES DE 4-BITS UTILIZANDO PALABRAS DE CÓDIGO DE 7-BITS. DOS
PALABRAS DE CÓDIGO DISTINTAS DIFIEREN EN POR LO MENOS TRES BITS. COMO CONSECUENCIA
DE ELLO, HASTA DOS ERRORES POR PALABRA DE CÓDIGO PUEDEN SER DETECTADOS Y UN SOLO
ERROR PUEDE SER CORREGIDO. ESTE CÓDIGO CONTIENE 24=16 PALABRAS DE CÓDIGO.

DETECCIÓN DE ERRORES:

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


PRINCIPIOS DE LA DETECCIÓN DE ERRORES

• El algoritmo suma r bits al bloque de datos de m bits.


• Los k bits en la señal original se transmiten en la palabra código de (k+r)
bits.
• La distancia de Hamming, d(v1,v2) se define como el número de bits en los
cuales v1 y v2 difieren.
• La distancia mínima para una palabra código que consiste de w1,w2, …ws
donde s = 2n .
dmin = minij [d(wi,wj)]
• Por ejemplo, si v1 = 011011 y v2 = 110001 d(v1,v2) = 3
• La función de la forma vc = f(vd) donde vd es un vector de data de m bits y
vc la palabra código.
• El radio de redundancia (ie redundancia) es r/k.
• La tasa del código es k/(k+r) y mide la cantidad adicional de ancho de banda
que se necesita.
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
• Las siguientes consideraciones se deben tener en el diseño de un código:
• Dado k y r, se requiere el valor más grande de dmin.
• El codificador debe ser sencillo requiriendo un mínimo de memoria y
tiempo de procesamiento.
• Se requiere un pequeño número de extra bits r, para reducir el ancho de
banda.
• Se requiere una gran número de extra bits r para reducir la tasa de error.
• Para detectar d errores se requiere una distancia de d+1. Por ejemplo, bit de
paridad.
• Para corregir d errores, se requiere una distancia de 2d+1.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


BIT DE PARIDAD

• Sumar un bit al final de un • Ventajas:


bloque de data. • Simple
• De forma tal que, el carácter • Desventajas:
tiene: • Un número par de errores no se
• Un número par de unos (paridad pueden detectar.
par).
• Ejemplos (paridad par):
• Un número impar de unos (paridad
impar). • Data = 1110011
• Transmite (A)= 11100111
• Llega = 11100101
• Calculo en el receptor (B) =
11100100
• |Distancia A-B| = 2

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CHEQUEO CÍCLICO REDUNDANTE (CRC)

• Para un bloque de k bits, el • Lógica aritmética


transmisor genera una • T=trama (r+k) bits, r < k
• M= mensaje de k bits.
secuencia de r bits. • F=secuencia FCS de r bits.
• El transmisor transmite una • P = divisor con un patrón
predeterminado.
secuencia de k+r bits, la cual • Tienen r+1 bits.
es exactamente divisible por
un número.
• La secuencia de r bits se
llama secuencia de chequeo
de trama (frame check
sequence, FCS).

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


• El objetivo es que T/P no tenga resto.
• Es claro que: T = 2rM + F
• 2rM desplaza el mensaje a la izquierda y lo rellena de ceros
(0).
• Dividiendo 2rM entre P: 2rM/P= Q + R/P
• Utilizando R como el FCS
T = 2rM + R y T/P = 2rM /P+ R/P = Q + (R/P + R/P) = Q
• Así que no hay resto.
• Esto es por la suma modulo 2 basada en la operación OR-
exclusivo:
0  0 = 0 0  1 = 1 1  0 = 1 1  1 = 0.
• Se divide 2rM entre P y se utiliza el resto como el FCS.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


• Se puede demostrar que los siguientes errores son detectables:
• Errores de un bit
• Errores de dos bits siempre que P tenga tres términos en 1.
• Cualquier número de errores impares, si el divisor contiene un factor
x+1.
• Cualquier error en el cual la longitud del error (en ráfaga) es menor que
la longitud del FCS.
• La mayoría de ráfagas largas de error.
 Ejemplo

• M = 1010001101 (10 bits) <-> X9+X7+X3+X2+1


• P = 110101 (6 bits) <-> X5+X4+X2+1
• FCS = ?
• K = 10
• n=6–1=5
• Genere el mensaje a ser transmitido.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


LÓGICA DIGITAL
• CRC puede ser representado usando un circuito con compuertas XOR y un registro
de desplazamiento.
• El circuito es implementado:
• El registro contiene r bits (la long del FCS).
• Hay hasta r compuertas XOR.
• La presencia o ausencia de una compuerta corresponde con la presencia o
ausencia de un termino en el divisor polinomial, P(X), excluyendo el término 1 y
Xr.

P(X)= X5+X4+X2+1

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CORRECCIÓN DE ERRORES

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


FEC: PRINCIPIOS
• El algoritmo FEC suma (n-k) bits al bloque de datos de k bits.
• Los k bits en la señal original se transmiten en la palabra código de n bits.
• La distancia de Hamming, d(v1,v2) se define como el número de bit en los
cuales v1 y v2 difieren.
• Por ejemplo, si v1 = 011011 y v2 = 110001 d(v1,v2) = 3
• La función de la forma vc = f(vd) donde vd es un vector de data de k bits y vc
la palabra código.
• Dentro de un bloque de código (n,k) hay 2K códigos válidos de 2n códigos
posibles.
• El radio de redundancia (ie redundancia) es (n-k)/k.
• La tasa del código es k/n y mide la cantidad adicional de ancho de banda
que se necesita.
• La distancia mínima para una palabra código que consiste de w1,w2, …ws
donde s = 2n .
dmin = minij [d(wi,wj)]
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
• Las siguientes condiciones se cumplen:
• dmin >= 2t+1, el código puede corregir hasta e incluyendo t bits.
• dmin >= 2t puede corregir todos los errores <= t-1 bits y los errores de t
bits pueden ser detectados.
• Otra forma de expresar esta relación es:
• El máximo número de errores corregibles es:
• t=[(dmin-1)/2]
• [x] el más grande de los enteros que no excede x.
• El máximo número de errores que pueden ser detectados es:
• t=dmin-1
 Ejemplo:

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


EJEMPLO

Obsérvese que si ocurren dos errores no se pueden corregir.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CÓDIGOS CÍCLICOS

• Pueden ser codificados y decodificados usando registros (LFSRs).


• Para un código cíclico, un código válido (c0, c1, …, cn-1), desplazado hacia la
izquierda un bit (cn-1, c0, …, cn-2), es también un código válido.
• La entrada de longitud fija (k) toma y produce un código (n-k).
• Codificación: los k bits de data son usados como entrada para producir un
código de chequeo de (n-k) bits.
• Decodificación: la entrada recibe un stream de bits de longitud n (ie k bits
de data seguidos de (n-k) bits de chequeo).
• Se procesan los bits recibidos para calcular el código síndrome (en la misma
manera que se calcularon los bits de chequeo).
• Si todos los bits del síndrome son cero, no se ha detectado error.
• En caso contrario, se ejecuta procesamiento adicional del síndrome para corregir
el error.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


• Parámetros:
• T = trama de n bits que se transmite.
• D = data de k bits de longitud (los primeros k bits de T).
• P = patrón de (n–k+1) bits predeterminados.
• Q = Cociente.
• C = Resto.
• Representación polinomial: los coeficientes corresponden a los bits en el
número binario. Ejemplo, P(X) = 1 +  I=1n-k-1AiXi + X n-k
• Para que T/P no tenga resto entonces comenzar por: T(X) = Xn-kD(X) + C(X)
• Si se divide Xn-kD(X) entre P(X) el resultado da un cociente y un resto:
Xn-kD(X)/P(X)= Q(X) + C(X)/P(X)
• Si uno o más errores ocurren el bloque recibido tendrá la forma: Z(X) = T(X)
+ E(X)
• E(X) es el polinomio de n bits con un 1 en cada posición de bit que es un
error en Z(X).
• Si se pasa Z(X) por el mismo LFSR se tiene: Z(X)/P(X)= B(X) + S(X)/(P(X)
• S(X) es el síndrome de longitud (n-k) bits.
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
• Se puede demostrar que E(X)/P(X) produce el mismo resto que Z(X)/P(X) es
decir S(X)/P(X).
Z(X)/P(X) = B(X)+S(X)/P(X)
(T(X)+E(X))/P(X) = B(X) + S(X)/P(X)
Q(X)+E(X)/P(X) = B(X) + S(X)/P(X)
E(X)/P(X)=[Q(X)+B(X)]+ S(X)/P(X)
• Entonces S(X) depende solo de los bits de error.
• Así que los bits de error se pueden corregir usando un suma simple:
Z(X) + E(X) = T(X) + E(X) + E(X) = T(X)
• Ejemplo:
o Código (7,4), es decir, n=7, k=4, n-k =3.
o P(X) = X3+X2+1 ó 1101.
o Para que un código se capaz de corregir errores simples: n<= (2n-k-1)
o Ya que n=7 = 23-1=7 este código es capaz de corregir un error.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


ESCUELA DE INGENIERÍA TELECOMUNICACIONES
EJERCICIO

• Para cada patrón de error E(X) calcular el síndrome S(X).


• Proceder como se muestra a continuación para cada patrón de error.

E(X)=X6
110

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CÓDIGO BCH
• Para un par de enteros positivos m y t un código BCH (n,k) tiene los
siguientes parámetros:
• Longitud del bloque: n = 2m – 1
• Número de bits de chequeo: n – k  mt
• Distancia mínima: dmin >= 2t + 1
• Corrige combinaciones de t o menos errores.
• Permite gran flexibilidad en la elección de los parámetros de Longitud del
bloque y tasa del código

CÓDIGO REED-SOLOMON
 Sub clase de lo códigos BCH.
 La data es procesada en trozos de m bits, llamados símbolos.
 Un código RS (n,k) tiene los siguientes parámetros:
o Longitud del símbolo: m bits por símbolo
o Longitud del bloque: n = 2m – 1 símbolos = m(2m – 1) bits
o Longitud de la data: k símbolos
o Tamaño del código de chequeo: n – k = 2t símbolos = m(2t) bits
o Distancia mínima: dmin = 2t + 1 símbolos
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
CÓDIGO REED-SOLOMON: EJEMPLO
• 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:
• n= 22-1 = 3 símbolos = 6 bits
• (n-k) = 2 símbolos = 4 bits
• Este código puede corregir una ráfaga de errores que se expande en un
símbolo de 2 bits

INTERCALAMIENTO DE BLOQUES
 La data es escrita y leída de la memoria en ordenes diferentes.
 Una técnica muy común consiste en almacenar la data para ser transmitida en arreglos
rectangulares en los cuales cada fila consiste de n bits.
 La data es leída por columnas.
 Los bits de datos y bits de chequeo son expandidos y salpicada con los bits de otros bloques.
 En el receptor la data es des intercalada para recuperar el orden original.
 Si errores por ráfagas ocurren, el error es expandido sobre un número de bloques haciendo
posible la corrección.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


ESCUELA DE INGENIERÍA TELECOMUNICACIONES
CÓDIGOS CONVOLUCIONALES

• Generan bit redundantes continuamente.


• Chequeo y corrección de errores realizados continuamente.
• Código representado como (n, k, K).
• El proceso de entrada procesa k bits en un determinado tiempo.
• La salida produce n bits por cada k bits de entrada.
• K = factor de restricción
• k y n generalmente muy pequeños.
• La salida de n bits del código (n,k,K) depende de:
• Bloque en curso de k bits de entrada.
• Los K-1 bloques previos de k bits de entrada.
• La tasa de un código convolucional es k/n.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


un-1,un-2

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CÓDIGOS CONVOLUCIONALES: CODIFICACIÓN
• Existen varias maneras de representar gráficamente un codificador
convencional:
• Árbol de código.
• Enramado (trellis).
• Diagrama de Estado.

DESCODIFICACIÓN
• El código de Viterbi es uno de los más importantes algoritmos de
corrección para los códigos convolucionales.
• Código de Viterbi – algoritmo de corrección:
o Compara la secuencia recibida con todas las posibles secuencias
transmitidas.
o El algoritmo elige el camino a través del diagrama de enramado cuya
posible secuencia transmitida difiere en el menor número de sitios.
o 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.
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
DIAGRAMA DE ENRAMADO DEL CODIFICADOR EN LA FIGURA PREVIA

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


CÓDIGOS CONVOLUCIONALES : DESCODIFICACIÓN

• Existen diversa variaciones del algoritmo de Viterbi.


• Ellas dependen de la métrica usada para medir las deferencias entre las
secuencias recibidas y las secuencias validas.
• Una de las mas comunes es usar la distancia de Hamming.
• El algoritmo opera de la siguiente manera:
o El algoritmo procede en pasos o niveles, j.
o M<=j<=L, M= K-1 (memoria del codificador, L es la long de la
secuencia del mensaje entrante.
o En cada nodo del enramado se comparan las dos trayectorias (path)
que entran al nodo.
o Se retiene la trayectoria con menor métrica.
o Estas trayectorias se llaman sobrevivientes o activas.
 Paso por paso el algoritmo opera de la siguiente manera:

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


• Paso (nivel) 0:
• Se marca como 0 el estado más a la izquierda del enramado.
• Pues en este punto no hay discrepancia.
• Se identifican todas las trayectorias sobrevivientes.
• Se almacenan las trayectorias sobrevivientes y su métrica para cada estado del enramado.
• Paso (nivel) j+1:
• Se calcula la métrica para todas las trayectorias que entran en cada estado del enramado.
• Esto consiste en la suma del la métrica de las ramas entrantes a las métrica de la trayectoria
sobreviviente conectora desde el paso j.
• Se identifican todas las trayectorias sobrevivientes (la trayectoria con la métrica más baja).
• Se almacenan las trayectorias sobrevivientes y su métrica para cada estado del enramado.
• Paso final:
• Continua el calculo hasta que el algoritmo completa su búsqueda hacia delante.
• Si la secuencia recibida es muy grande (casi infinita) el requerimiento de memoria para el algoritmo
pude ser alto.
• Para solventar el problema se establece una ventana de descodificación.
• Esta tiene una longitud b.
• El algoritmo se interrumpe después de b pasos.
• Se toma un decisión con respecto a la mejor trayectoria y se libera al usuario el símbolo asociado con la
primera de rama de esa trayectoria.
• Se mueve la ventana un intervalo de tiempo y se toma una decisión sobre la siguiente trama.

ESCUELA DE INGENIERÍA TELECOMUNICACIONES


ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
ESCUELA DE INGENIERÍA TELECOMUNICACIONES
GRACIAS POR SU ATENCIÓN

ESCUELA DE INGENIERÍA TELECOMUNICACIONES

S-ar putea să vă placă și