Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol...

62
Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol [email protected]

Transcript of Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol...

Page 1: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Técnicas de Detección y Corrección de Errores

Profesora María Elena [email protected]

Page 2: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Técnicas de Detección y Corrección de Errores

• Los canales inalámbricos proporcionan los índices de error que suelenen torno a 10-2.

• Estas altas tasas de error son el multipath fading que caracterizan a los canales de radio móvil.

• Existen dos aproximaciones para poder tratar este problema:– Corrección de Error Hacia Adelante (Forward Error

Correction, FEC).– Requerimiento de Repetición Automática (Automatic

Repeat Request, ARQ).

Page 3: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Deteccion vs Correccion

• Existen tecnicas para detectar errores y otras para corregir errores.

Page 4: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.
Page 5: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Redundancia

• Para detectar o corregir errores se necesita agregar cierta redundancia a los bits de información.

Page 6: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC

• Códigos de bloques.– Lineales

• cíclicos

• Códigos convolucionales.

Page 7: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• 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.

Códigos para la detección de errores

Page 8: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Codificación por Bloques

Page 9: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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

Page 10: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Detección de Errores

Page 11: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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 = minij [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.

Page 12: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• Las siguientes consideraciones se deben tener en el diseño de un código:– Dado k y r, nos gustaría el valor más grande de dmin.– El codificador debería ser sencillo requiriendo un mínimo de

memoria y tiempo de procesamiento.– Nos gustaría un pequeño número de extra bits r, para reducir el

ancho de banda.– Nos gustaría una gran número de extra bits r para reducir la

tasa de error.

• Note que los dos últimos objetivos están en conflicto y deben negociarse.

Principios de la detección de errores

Page 13: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Principios de la detección de errores

• 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.

Page 14: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Bit de Paridad

• Sumar un bit al final de un bloque de data.

• De forma tal que, el carácter tiene:– Un número par de

unos (paridad par).– Un número impar de

unos (paridad impar).

• Ventajas:– Simple

• Desventajas:– Un número par de errores

no se pueden detectar.

• Ejemplos (paridad par):– Data = 1110011– Transmite (A)= 11100111– Llega = 11100101– Calculo en el receptor (B) =

11100100– |Distancia A-B| = 2

Page 15: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Chequeo Cíclico Redundante (CRC)

• Para un bloque de k bits, el transmisor genera una secuencia de r bits.

• El transmisor transmite una secuencia de k+r bits, la cual es exactamente divisible por un número.

• La secuencia de r bits se llama secuencia de chequeo de trama (frame check sequence, FCS).

• Lógica aritmética– T = trama de (r+k)

bits, r <k– M= mensaje de k

bits.– F = secuencia FCS

de r bits.– P = divisor con un

patrón predeterminado.

– Tienen r+1 bits.

Page 16: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• 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).

• Dividir 2rM entre P:

2rM/P= Q + R/P

• Usemos 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.

• Entonces, dividir 2rM entre P y usar el resto como el FCS.

Chequeo Cíclico Redundante (CRC)

Page 17: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Chequeo Cíclico Redundante (CRC)

• Se puede demostrar que los siguientes errores son detectables:– Errores de un bit– Errores de dos bits siempre que P tiene 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.

Page 18: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

CRC: Representación Polinomial/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.

Page 19: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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.

Page 20: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Representación Digital

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

Page 21: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Corrección de Errores

Page 22: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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.

Page 23: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.
Page 24: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• La distancia mínima para una palabra código que consiste de w1,w2, …ws donde s = 2n .dmin = minij [d(wi,wj)]

• 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

FEC: Principios

Page 25: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Ejemplo

• k=2 y n=5• Suponga que se

recibe 00100.• El cual es un código

inválido.• La distancia de

Hamming a cada código válido es:

Bloque de datos

Palabra Código

00 00000

01 00111

10 11001

11 11110

Distancia mínima

Page 26: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Ejemplo

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

Page 27: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Principios

• Las siguientes consideraciones se deben tener en el diseño de un código de bloque:– Dado n y k, nos gustaría el valor más grande de dmin.– El codificador debería ser sencillo requiriendo un

mínimo de memoria y tiempo de procesamiento.– Nos gustaría un pequeño número de extra bits (n-k),

para reducir el ancho de banda.– Nos gustaría una gran número de extra bits (n-k) para

reducir la tasa de error.• Note que los dos últimos objetivos están en

conflicto y deben negociarse.

Page 28: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Código de Hamming

• Diseñado para corregir errores de bit simples. • Familia de bloques de corrección de error (n,k) con los siguientes

parámetros:– Longitud del bloque: n = 2m – 1– Número de bits de dato: k = 2m – m – 1– Número de bits de chequeo: n – k = m

– Distancia mínima: dmin = 3

• El proceso de codificación/descodificación tiene la misma estructura del FEC.

• En el receptor el resultado de la comparación (XOR de la señal recibida y otra de la calculada) es realizada.

• El resultado se conoce como palabra síndrome.

Page 29: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Código de Hamming

• La palabra síndrome tiene un rango de 2(n-

k) – 1.• 0 indica no error entonces no se cuenta.• Como un error puede ocurrir en los k bits

de data o (n-k) bit de chequeo:• 2(n-k) - 1 >= k+(n-k) = n• Esto nos permite calcular el número de

bits de chequeo.

Page 30: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Código de Hamming

• Codificación: k bits de datos + (n -k) bits de chequeo.• Decodificación: compara los (n-k) bits recibido con los (n -k) bits

calculados bits usando XOR.• Los (n-k) bits resultantes se llaman palabra síndrome.• El rango del síndrome esta entre 0 y 2(n-k)-1.• El síndrome indica:

– Si contiene solo 0s, no se han detectados errores.– Si el síndrome contiene un solo bit en 1 entonces un error ha ocurrido

en uno de los bits de chequeo. Por lo tanto, no se requiere corrección.– Si el síndrome contiene más de un bit en 1, entonces el valor numérico

del síndrome indica la posición de un bit de data en error. El bit en error es invertido para su corrección.

Page 31: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Código de Hamming-EjemploBloque de datos = 00111001

Page 32: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

FEC: Código de Hamming-Ejemplo

Bit con error

Page 33: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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).

Page 34: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• 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.

Códigos Cíclicos

Page 35: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• 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

Códigos Cíclicos

Page 36: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• 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)

Códigos Cíclicos

Page 37: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

• 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.

Códigos Cíclicos

Page 38: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Cíclicos

• 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)

Page 39: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Cíclicos: Ejemplo

• Código (7,4), es decir, n=7, k=4, n-k =3.• P(X) = X3+X2+1 ó 1101.• Para que un código se capaz de corregir errores

simples:• n<= (2n-k-1)• Ya que n=7 = 23-1=7 este código es capaz de

corregir un error.• Ver tabla (a) a continuación, note que la

distancia mínima es 3, entonces se confirma lo anterior de acuerdo lo que se muestro anteriormente.

Page 40: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Cíclicos: Ejemplo

Page 41: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Cíclicos: Ejemplo

• 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.

• Así se obtiene la tabla (b) en la lámina anterior.

110E(X)=X6

Page 42: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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

siguientes parámetros• Longitud del bloque y tasa del código

Page 43: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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:– Longitud del símbolo: m bits por símbolo– Longitud del bloque: n = 2m – 1 símbolos = m(2m – 1)

bits– Longitud de la data: k símbolos– Tamaño del código de chequeo: n – k = 2t símbolos =

m(2t) bits– Distancia mínima: dmin = 2t + 1 símbolos

Page 44: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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

Page 45: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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.

Page 46: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.
Page 47: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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.

Page 48: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

un-1,un-2

Codificación

Page 49: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Convolucionales: Codificación

• Existen varias maneras de representar gráficamente un codificador convencional:– Árbol de código.– Enramado (trellis).– Diagrama de Estado.

Page 50: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Convolucionales : 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:– Compara la secuencia recibida con todas las posibles

secuencias transmitidas.– El algoritmo elige el camino a través 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.

Page 51: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Diagrama de Enramado del Codificador en la Figura Previa

Page 52: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

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.

Page 53: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Convolucionales : Descodificación

• El algoritmo opera de la siguiente manera:• El algoritmo procede en pasos o niveles, j.• M<=j<=L, M= K-1 (memoria del codificador, L es la long

de la secuencia del mensaje entrante.• En cada nodo del enramado se comparan las dos

trayectorias (path) que entran al nodo.• Se retiene la trayectoria con menor métrica.• Estas trayectorias se llaman sobrevivientes o activas.

Page 54: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos convolucionales : Descodificación

• Paso por paso el algoritmo opera de la siguiente manera:

• 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.

Page 55: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Convolucionales : Descodificación

• 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.

Page 56: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Códigos Convolucionales : Descodificación

• 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.

Page 57: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.
Page 58: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Otro Ejemplo

Page 59: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

n = 2, k=1, K=3Tasa del código 1/2

Secuencia enviada 0000000…Secuencia recibida 0100010000…

Dmin (00,01) = 1Dmin (11,01) = 1

11

00

10

01

(Dmin (00,00) = 0)+1 =1(Dmin (11,00) = 2)+1=3(dmin(10,00)=1)+1=2(dmin(01,00)=1)+1=2

Page 60: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.
Page 61: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Decodificación incorrecta de la

secuencia de puros ceros

recibidas

Secuencia enviada 0000000…Secuencia recibida 1100010000…

Page 62: Técnicas de Detección y Corrección de Errores Profesora María Elena Villapol mvillap@strix.ciens.ucv.ve.

Revisar este Link

• http://www.brianjoseph.com/viterbi/workshop.htm