Download - Codigos Convolucionales y Hamming
1
Códigos Básicos de Detección y
Corrección de Errores
Por Daniel Quintana C.
2
Códigos de Bloque• Conceptos Básicos
información paridad
k
n
n-k
Código(n,k)
Rc = k / n
Se adhieren conel objeto de detectar
o corregir errores
3
• La capacidad de un código de detectar o corregir errores depende de la distancia de códigodistancia de código
Códigos de Bloque
101101100101111
d = 4
• EL peso de un códigopeso de un código está dado por el número de elementos distintos de cero de la palabra de código.
“Distancia mínima”
Parámetros importantes de un código: Rc, distancia y peso
4
• Propiedades:
• Linealidad: 1C1 + 2C2 es palabra de código
debe contener al elemento cero.
• Sistemático: los bits de paridad se añaden al final
de los bits de información.
• Cíclico: es palabra código
también lo es
Códigos de Bloque] ,......, , [0 2 1C C C Cn n
] , ,..., , [1 0 3 2 n n nC C C C C
5
• Las técnicas de codificación y decodificación hacen uso de las construcciones matemáticas conocidas como Campos Finitos Campos Finitos
• Para cualquier número p, existe un campo finito que contiene p elementos: GF(p)GF(p)
• Extensión del campo de GF(p) • En la práctica: caso binario: GF(2)
Códigos de Bloque
)( mpGF)2( mGF
},...,,,1,0{)2( 222 mmGF
6
• Ejemplos de Códigos
• Código Hamming: fue el primer CCE. Existe el binario y el no-binario. El binario tiene la propiedad que:
• Código Hadamard: seleccionando las filas de la matriz Hadamard como palabras.
Códigos de Bloque
)12,12(),( mkn mm
mmin
NN
NN
d 2;2
1100
0110
0011
0000
7
• Código Golay: es un código binario lineal (23,12). Posee dmin=7 capacidad de corregir 3 errores
• Código Cíclico: Se puede generar a partir de un polinomio generador g(p) de grado n-k:
Un mensaje polinomial x(p) puede ser definido como:
Códigos de Bloque
1...)( 11
1
pgpgppg knkn
kn
011
1 ...)( xpxpxpx nk
8
La palabra código resultante será:
c(p)=g(p)·x(p); c(p) de grado menor que n
Códigos de Bloque
1)( 11
22
3 pgpgppgEDpCpBpAppx 1234)(
...)( 7 Appc
A B C D E
k n
9
• Código BCH: es el más importante de todos dado que existe para un amplio rango de tasas, logrando una ganancia de código significativa y pudiendo ser implementado aún en altas velocidades.
El nº de errores que puede corregir:
Se puede generalizar para crear clases de códigos códigos no-binariosno-binarios, que usan m bits por símbolo de código.
Códigos de Bloque
3;2 1 mn m
2
12
m
t
10
• Código Reed Solomon: Es un código no-binario que es capaz de corregir errores que se presentan en ráfagas.
El nº de símbolos de paridad que deben ser usados para corregir E errores es: n-k = 2E
dmin= 2E+1
Códigos de Bloque
12 mn
11
• Conceptos Básicos
Códigos Convolucionales
Secuencia de información
Secuencia de
Inform. codificadaEncoder
• Mapeo altamente estructurado.• Puede lograr mayor ganancia de Código que los códigos de bloque.
12
Códigos Convolucionales
k bits de
datos
N etapask kk1 11
+ ++
1 2 n
• Codificación
N:= restricción de longitud (poder y complejidad) Rc = k / n
(n,k)
13
• Representación
• Matriz generadora: semi-infinita dado que la entrada es semi-infinita.
• Polinomio Generador: n vectores de dimensión 2k (uno para cada sumador) indican la conexión del encodificador a ése módulo.
• Tabla Lógica: muestra las salidas y el estado del encoder par la secuencia de entrada presente.
Códigos Convolucionales
14
• Diagrama de estados:
0 1
2 3
Códigos Convolucionales
Los estados del encoder y las posibles transiciones
15
Códigos Convolucionales
• Diagrama de Árbol:
B C
d ee
A
df
16
• Diagrama Trellis:
B
d e
A
f
Códigos Convolucionales
Es la representación compacta del árbol
17
• Decodificación
Códigos Convolucionales
ABCDE Encoder ABCDEDecoder
Tx Rxk
Estimar la información de entrada al encoder con el mínimo nº de errores
Estimar el camino a travésdel trellis que siguió el
encoder
18
• Algoritmo de Viterbi:
Códigos Convolucionales
B
d e
A
f
1 V(S 0,0)=0 , i=1
2 Se calculan las medidas para lasrutas que entran a cada nodo
3 73 V(SA,1) = 3
4 Se borran las ramas que no sobreviven
19
Códigos Convolucionales• Algoritmo de Viterbi:
1 V(S 0,0)=0 , i=1
2 Se calculan las medidas para lasrutas que entran a cada nodo
d e
A3
3 V(SA,1) = 3
4 Se borran las ramas que no sobreviven
5 si i < L+ m i = i + 1
y vuelve a 2
20
• Una vez que todos los valores de los nodos se han calculado, se ha definido una única ruta de regreso y que corresponde a la salida decodificada.
• Cuando se implementa decodificación de decisión dura, la métrica es la distancia Hamming. Si la decodificación es de decisión suave se utiliza la distancia Euclidiana
Códigos Convolucionales
21
• Decodificación secuencial de Fano:
Busca la ruta más probable examinando una a la vez.
Se incrementa la métrica de c/rama según la probabilidad de recibir la señal en esa rama, además de una constante que se agrega a cada rama.
constante la métrica para el camino correcto se incrementa en el promedio y las incorrectas se decrementan.
Códigos Convolucionales
22
Comparando la métrica de la ruta observada con algún umbral, el algoritmo detecta y descarta rutas.
Comparación: Tasa de error similar a la de Viterbi
desventajas: retardo significativamente mayor
ventaja: requiere menos almacenaje
Códigos Convolucionales
23
• Algoritmo de Stack:
Códigos Convolucionales
Ruta 1Ruta 2Ruta 3
V(ruta1)>V(ruta2)>V(ruta3)
Ruta 1-1Ruta 1-2Ruta 1-3Ruta 1-4Ruta 1-5Ruta 1-6
B C
edfd e
A
3 67
Se reordenan según la métrica y se descartan lasque estén por debajo de alguna porción de la métricade la ruta top.
24
• Comparación con Viterbi: pocos cálculos de métricas, pero alto trabajo computacional en el reordenamiento de los stacks después de cada iteración.
• Con Fano: Computacional% más simple, dado que no se necesita recalcular la misma ruta. Por otra parte, requiere de más almacenaje que el algoritmo de Fano.
Códigos Convolucionales
25
• Decodificación Realimetada:
– La decisión dura de si es un 1 o un 0 depende si la ruta de la mínima distancia Hamming, que comienza en la etapa j y termina en la etapa j+m, contiene un 0 o un 1en la rama que sale de la etapa j.
– Después de la decisión, solo la parte del árbol que sigue del bit seleccionado (de la etapa j) se mantiene y el resto se descarta. Se extiende en una rama la parte sobreviviente y se repite.
Códigos Convolucionales
+ ++1 2 n
j j+m B C
d ee
A
df
j
j+m
26
• Preguntas:
• ¿Como elegir m ?– N< m < 2N
• ¿Retardo?– Menor que Viterbi que es usualmente de 5N
Códigos Convolucionales
27
Referencias
• “Wireless Communications” T.Rappaport
• “Digital Communications” John G. Proakis
• http://hideki.iis.u-tokyo.ac.jp/~robert/codes.html
28
Fi n