SlideShare una empresa de Scribd logo
1 de 69
Tema 4:
Codificación de canal
Dr. José Ramón Cerquides Bueno
Teoría de la Señal y Comunicaciones
Universidad de Sevilla
Transmisión Digital
Dr. J.R. Cerquides Universidad de Sevilla 2
Organización
• Introducción
• Ejemplo
• Esquema y definiciones
• Códigos de bloque
• Códigos convolucionales
• Codificación avanzada
• Conclusiones
• Referencias
Dr. J.R. Cerquides Universidad de Sevilla 3
Introducción
• El Teorema de Codificación de Canal (Shannon)
establece que:
Es posible enviar (con el código adecuado) con una
probabilidad de error arbitrariamente pequeña si y solo
si H(S)·Rs ≤ C·Rc
• En este tema vamos a abordar el diseño de
codificadores que nos permitan aproximarnos a la
capacidad de canal.
Dr. J.R. Cerquides Universidad de Sevilla 4
Ejemplo
• Canal binario simétrico con p=0.15
C = 0,39 bits/uso de canal
• Intentamos mejorar transmitiendo cada símbolo 3
veces y decidiendo por mayoría, con la intención de
obtener una capacidad 0,39·3 = 1,17 bits.
Símbolo 1  Transmitimos 1,1,1
Símbolo 0  Transmitimos 0,0,0
• La nueva probabilidad de error será:
3p2(1-pe)+p3=0,0607
que corresponde a una capacidad
C = 0,6696 bits < 1,17
¿Por qué?
Dr. J.R. Cerquides Universidad de Sevilla 5
Ejemplo
• La capacidad sería 3C = 1,17 bits si los símbolos de
entrada al canal fuesen equiprobables:
X = 000,001,010,011,100,101,110,111
pero nosotros sólo hemos empleado dos símbolos
posibles de entrada:
X= 000,111.
• Al reducir la entropía a la entrada no puede
alcanzarse la capacidad de canal.
ESQUEMA DE CODIFICADOR Y
DECODIFICADOR PARA UN CANAL DMC
DEFINICIONES
(n,k) Descripción usada para referirse al código
k Tamaño de las palabras del alfabeto de entrada o
Longitud de las palabras de entrada
n Tamaño de las palabras código o
Longitud del código
R=k/n Tasa de transmisión (o tasa de código)
r=n-k Redundancia
Esquema y definiciones
Dr. J.R. Cerquides Universidad de Sevilla 6
Definiciones (continuación)
Dr. J.R. Cerquides Universidad de Sevilla 7
• Alfabeto de entrada: B
Compuesto por las 2k posibles combinaciones
de bits a la entrada.
• Palabra código: c
Cada una de las 2k posibles combinaciones
de n bits a la salida del codificador
• Diccionario de códigos: C
Conjunto de todas las palabras código
• Distancia mínima de un código:
Un código es capaz de corregir hasta erroresmin 1 / 2d
Ejemplo revisitado
Dr. J.R. Cerquides Universidad de Sevilla 8
• Canal BSC con p=0,15
• Vamos a diseñar un codificador con n=3k, R=1/3,
para diferentes valores de k.
• Elegimos las 2k palabras código de n bits que más se
diferencien entre sí. Por ejemplo, para k=2, podrían
ser:
• En la decodificación elegimos como palabra código
correcta aquella que presente mayor similitud con
alguna de ellas.
Ejemplo revisitado
Dr. J.R. Cerquides Universidad de Sevilla 9
• A cada una de las 2k palabras código les corresponde
un conjunto de 2n/2k = 22k símbolos recibidos.
• Por ejemplo para el vector todo ceros:
• La pe de la palabra código será ahora:
pe=1-((1-p)6+6·p(1-p)5+9·p2(1-p)4 )=0.1178
resultado un tanto SORPRENDENTE pues la
probabilidad de error en la transmisión de 2 bits de
información es menor que en 1 !!!
Resultado para diferentes valores de n
• La gráfica muestra la
evolución de la pe de
una palabra código a
medida que n aumenta.
• Si n=1500  pe≈ 3·10-3,
k=500  pe,bit ≈ 6·10-6
• Relación entre C y
R=0.3333
• Para p=0.13 (C=0.4426) la
caída es más rápida
• Para p=0.17 (C=0.3423) la
caída es muy lenta
• Para p=0.19 (C=0.2985) la
pe sube cuando n
aumenta.
Dr. J.R. Cerquides Universidad de Sevilla 10
Más definiciones
• Probabilidad de error de una palabra código:
• Probabilidad de error media de un código:
• Probabilidad de error máxima de un código:
• Podemos realizar una transmisión fiable a una tasa R si
• existe una secuencia de códigos (n, ⌈nR⌉) (donde ⌈nR⌉ denota el entero más
pequeño que es mayor que nR) tal que la probabilidad de error máxima,
pe(máx, n), tiende a cero cuando n tiende a infinito.
• Formalmente, si para todo ε > 0 existe una secuencia de códigos (n, ⌈nR⌉) y
un valor n0 para el que Pe(máx, n) < ε cuando n > n0.
Dr. J.R. Cerquides Universidad de Sevilla 11
Retos
• En realidad querríamos encontrar una FORMA
SISTEMÁTICA de construir códigos para los que:
• La codificación sea sencilla y de bajo coste computacional
• La decodificación sea sencilla y de bajo coste computacional
• La pe decaiga lo más rápidamente posible a medida que aumenta n
• Los decodificadores pueden ser:
• Soft (o blandos) si hacen uso de la señal a la salida del
demodulador, antes del detector.
• Hard (o duros) si hacen uso de la señal a la salida del
detector.
Dr. J.R. Cerquides Universidad de Sevilla 12
Los decodificadores blandos utilizan distancias euclídeas,
mientras que los duros utilizan distancias de Hamming
• Sistema binario BPSK, B={0,1}, C={00,11} (repetición)
• Símbolos {-1,+1} 
Comparación decodificador blando y duro
• Decodificador HARD
• dmin=2  corrige hasta 0
errores y detecta hasta 1
• pe,palabra=p2+2·p·(1-p) ≈ 2p
• Decodificador SOFT
• No detecta ni corrige errores.
Dr. J.R. Cerquides Universidad de Sevilla 13
Bit 1
Bit 2
11
00
1
1
-1
-1
Bit 1
Bit 2
11
00
1
1
-1
-1
0 0
2 2s bE E
p Q Q
N N
0 0
2 2s b
e
E E
p Q Q
N N
0 0
2
2 2s bE E
p Q Q
N N
Ganancia de codificación
• Diferencia entre la relación SNR necesaria para
alcanzar cierta BER con y sin sistema de codificación.
• En el caso anterior:
• BER sin codificador
• BER con decodificador HARD
• Ganancia de codificación (BER = 10-6) Tabla Q(x)
Dr. J.R. Cerquides Universidad de Sevilla 14
6
0 0 sin cod
2
10 11,3b bE E
Q
N N
6
HARD
0 0 HARD
2 10 24 3,26b bE E
Q G dB
N N
Sin codificador Codificador HARD Codificador SOFT
0
2 bE
Q
N 0
2 bE
Q
N

0
2 bE
Q
N
6
SOFT
0 0 SOFT
2
10 11,3 0b bE E
Q G dB
N N
• Sistema binario BPSK, B={00,01,10,11}, C={000,011,101,110}
• Sin codificador
• Para BER = 10-6 
Otro ejemplo
Dr. J.R. Cerquides Universidad de Sevilla 15
-1
0
1
-1
0
1
-1
-0.5
0
0.5
1
101
000
110011
Bit 1
Bit 2
Bit 3
0 0
2 2s bE E
BER Q Q
N N
6
0 0 sin cod
2
10 11,3b bE E
Q
N N
BER y Ganancia de codificación
• Decodificador HARD
• Para BER = 10-6
• GHARD = -2,14dB
• Decodificador SOFT
• Para BER = 10-6
• GSOFT = 1 dB
Dr. J.R. Cerquides Universidad de Sevilla 16
,
0 0
3 2
2 4
3 3
3
s b
s b
e s
E E
E E
p Q Q
N N
0 0
4 4
3 3
3 3
b bE E
BER Q Q
N N
,
0 0
3 2
4 8
3 3
3
s b
s b
e s
E E
E E
p Q Q
N N
0
82
3
3 3
bE
BER Q
N
6
0 0
4
3 10 18,52
3
b b
HARD
E E
Q
N N
6
0 0
8
2 10 8,95
3
b b
SOFT
E E
Q
N N
La ganancia del decodificador SOFT es siempre mayor que
la del decodificador HARD
Comparación decodificadores
Dr. J.R. Cerquides Universidad de Sevilla 17
-1
0
1
-1
0
1
-1
-0.5
0
0.5
1
101
000
110011
Bit 1
Bit 2
Bit 3
-1
0
1
-1
0
1
-1
-0.5
0
0.5
1
101
000
110011
Bit 1
Bit 2
Bit 3
Decodificador HARD Decodificador SOFT
Ancho de banda ocupado
• Al utilizar un codificador de tasa R, o bien:
• El ancho de banda se incrementa en un factor 1/R
• O bien la velocidad de información se reduce en un factor R
Dr. J.R. Cerquides Universidad de Sevilla 18
Donde antes transmitíamos k símbolos/s
ahora transmitimos n=k/r símbolos/s
SUBE EL BW NECESARIO
Si seguimos transmitiendo a la misma velocidad
sólo k de cada n son información
SE REDUCE LA TASA BINARIA
DE INFORMACIÓN
Códigos de bloque
• Los códigos de bloque estructuran los datos en
BLOQUES de longitud FIJA a los que añaden
REDUNDANCIA.
• Todos los ejemplos vistos son códigos de bloque.
• Nos van a interesar especialmente los códigos de
bloque LINEALES y, entre ellos, los códigos
CÍCLICOS.
• Vamos a necesitar conceptos de campos de Galois
(GF) (Galois Field).
Dr. J.R. Cerquides Universidad de Sevilla 19
k
DATOS
n-k
REDUNDANCIA
Campos de Galois
• Cuerpo finito, campo finito o campo de
Galois (Évariste Galois) es un CUERPO que contiene
un número finito de elementos.
• EJEMPLO: GF(2)
a+b = (a+b)2
a·b = (a·b)2
• EJEMPLO: GF(3)
a+b = (a+b)3
a·b = (a·b)3
Dr. J.R. Cerquides Universidad de Sevilla 20
+ 0 1 2
0 0 1 2
1 1 2 0
2 2 0 1
× 0 1 2
0 0 0 0
1 0 1 2
2 0 2 1
+ 0 1
0 0 1
1 1 0
× 0 1
0 0 0
1 0 1
Códigos bloque lineales
• Un código bloque es lineal (n,k) si es un s.e.v. de
dimensión k de GF(2n).
• PROPIEDADES:
• Cualquier combinación lineal de palabras código es palabra
código.
• La palabra 0 pertenece al código
• La dmin de un código lineal coincide con el menor número
de 1’s en una palabra código (excepto la 0)
• Todas las palabras código poseen otra a distancia dmin
Dr. J.R. Cerquides Universidad de Sevilla 21
Las k palabras código forman un s.e.v.
EJEMPLO
• k = 2, n=6
Dr. J.R. Cerquides Universidad de Sevilla 22
La
palabra 0
pertenece
al código
dmin = 4
011011
+110110
101101
Generación de un código lineal
• Para generar un código lineal basta con una MATRIZ
GENERADORA G que contenga k vectores linealmente
independientes  c = b· G
• EJEMPLO: Código (5,2)
• Cualquier matriz que contenga una base (n-k vectores) del
complemento ortogonal a G es una MATRIZ DE
COMPROBACIÓN DE PARIDAD, H.
c· HT = 0 pues G· HT = 0 y HT· c = 0 pues H· GT = 0
• EJEMPLO:
• Además, H es una matriz generadora de un código (n,n-k)
Dr. J.R. Cerquides Universidad de Sevilla 23
0 0 1 1 1
1 1 1 0 0
G
0 0 0 0 0 0 0
0 1 1 1 1 0 0
1 0 0 0 1 1 1
1 1 1 1 0 1 1
b c
b c
b c
b c
1 1 0 0 0
0 1 1 1 0
0 0 0 1 1
H
1
1 1 0 0 0 01
0 1 1 1 0 00
0 0 0 1 1 01
1
Códigos SISTEMÁTICOS
• Los procesos de codificación y decodificación se
simplifican si el código es SISTEMÁTICO (los
primeros k bits de la palabra código coinciden con la
palabra a codificar).
• Para que ocurra G debe tomar una forma especial:
G = [Ik | P]  H = [PT | In-k]
• EJEMPLO:
Dr. J.R. Cerquides Universidad de Sevilla 24
1 0 1 0 1
0 1 0 1 1
G
1 0 1 0 0
0 1 0 1 0
1 1 0 0 1
H
Síndrome
• El síndrome es r· HT, que será 0 si r es una palabra código.
• Si r = c+e entonces r· HT = e· HT
• Como el síndrome depende del error, podemos elaborar una
tabla para cada síndrome, consignando el patrón de error
asociado (el que menos errores contenga).
• EJEMPLO:
• Los síndromes 111 y 101 corresponden a más de un error.
Existen dos posibilidades: reportar la palabra recibida como
errónea o realizar la decodificación con más de un error.
• Un código es PERFECTO si en la tabla no queda ningún
síndrome por asignar.
Dr. J.R. Cerquides Universidad de Sevilla 25
1 0 0
1 1 0
0 1 0
0 1 1
0 0 1
T
H
0 0 0 0 1 0 0 1
0 0 0 1 0 0 1 1
0 0 1 0 0 0 1 0
0 1 0 0 0 1 1 0
1 0 0 0 0 1 0 0
Error Síndrome
Capacidad correctora (cota de Hamming)
• Un código binario de longitud n con capacidad de
corregir (t) errores debe tener una redundancia (r)
r = n-k ≥ log2 V(n,t)
• V(n,t) es la esfera de Hamming de radio t (número
de vectores que están a distancia ≤ t)
• EJEMPLO: ¿Es posible corregir 3 errores en un
código con (12,5)?
r = 7 ≥ log2 299 = 8,22  NO
• La igualdad r = log2 V(n,t)  CÓDIGO PERFECTO.
Dr. J.R. Cerquides Universidad de Sevilla 26
0
,
t
j
n
V n t
j
3
0
12
12,3 1 12 66 220 299
j
V
j
Códigos PERFECTOS
• Sólo existen 4 códigos perfectos:
• Trivial: n=k, r=0, t=0
• Repetición: n impar, k=1, t=(n-1)/2
• Golay: n=23, k=11, t=3
• Hamming: n=2r-1, k=n-r, t=1
• EJEMPLO: Código de Hamming (r=3  n=7, k=4)
sistemático
Dr. J.R. Cerquides Universidad de Sevilla 27
0 1 1 1 1 0 0
1 0 1 1 0 1 0
1 1 0 1 0 0 1
H
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
G
Todas las
combinaciones
restantes
EJEMPLO
• Si c = [0 1 0 0 1]  c(x) = x+x4
xc(x) = x2+x5 = 1· (x5+1) + (x2+1)  [1 0 1 0 0]
• Para generar un código cíclico se parte de un
polinomio GENERADOR g(x) de grado r=n-k.
• Las palabras código se obtienen multiplicando b(x)
por g(x) (código NO SISTEMÁTICO).
• EJEMPLO:
g(x) = 1+x2+x3+x4  r=4. Si k=3, n=7
b = [0 1 1]  b(x)=x+x2
c(x)=g(x)b(x) = x+x3+x4+x5+x2+x4+x5+x6
c(x) = x+x2+x3+x6  c = [0 1 1 1 0 0 1]
Dr. J.R. Cerquides Universidad de Sevilla 29
Cociente Resto
Método SISTEMÁTICO
• Existe una forma de obtención alternativa que da
lugar a un código SISTEMÁTICO (aunque la
redundancia precede a los datos).
• El procedimiento es:
• Obtener d(x) = (b(x)· xr)g(x)
• Construir c(x) = b(x)· xr + d(x)
• EJEMPLO:
g(x) = 1+x2+x3+x4
b = [0 1 1]  b(x)=x+x2
d(x) = (x5+x6)g(x) = x3+1
c(x)=b(x)· xr + d(x)=1+x3+x5+x6  c = [1 0 0 1 0 1 1]
Dr. J.R. Cerquides Universidad de Sevilla 30
DatosRedundancia
Así trabaja MATLAB
EJEMPLO
• g(x) = 1+x2+x4  r=4, k=2, n=6
• Obtener todas las palabras código.
• DETALLES:
• Cualquier palabra código rotada es otra palabra código.
• En este caso se obtiene un código SISTEMÁTICO.
• La matriz generadora sería:
Dr. J.R. Cerquides Universidad de Sevilla 31
Entrada b(x) c(x) Salida
00 0 0 000000
01 x x+x3+x5 010101
10 1 1+x2+x4 101010
11 1+x 1+x+x2+x3+x4+x5 111111
1 0 1 0 1 0
0 1 0 1 0 1
G
Decodificación de un código cíclico
• Para calcular el síndrome s(x) basta obtener el resto
de la división entre la palabra recibida y el
polinomio generador g(x).
• Si el polinomio recibido es r(x)=c(x)+e(x),
s(x)=(r(x))g(x)=(c(x)+e(x))g(x)=(e(x))g(x)
• EJEMPLO:
g(x) = 1+x2+x3+x4
b = [0 1 1]  c = [0 1 1 1 0 0 1]
Si r = [0 1 1 1 0 0 0]  r(x) = x+x2+x3
s(x)=x+x2+x3  e(x)=x6  c’ = [0 1 1 0 0 1]
Dr. J.R. Cerquides Universidad de Sevilla 32
Es necesario disponer de una
tabla de síndromes, aunque
existen otras alternativas
Tabla de síndromes para códigos cíclicos
Dr. J.R. Cerquides Universidad de Sevilla 33
Error e(x) s(x) Síndrome
1000000 1 1 1000
0100000 x x 0100
0010000 x2 x2 0010
0001000 x3 x3 0001
0000100 x4 1+x2+x3 1011
0000010 x5 1+x+x2 1110
0000001 x6 x+x2+x3 0111
Si el último bit del
síndrome es 1, al
desplazar (multiplicar
por x) habrá que
recalcular el residuo.
Error e(x) s(x) Síndrome
0001000 x3 x3 0001
0000100 x4 1+x2+x3 1011
0000001 x6 x+x2+x3 0111
Esta propiedad acorta
la tabla y los tiempos
de búsqueda.
Códigos BCH y RS
• Algunas de las familias de códigos cíclicos más famosos son los
códigos BCH (Bose Chaudhuri Hocquenghem) o RS (Reed
Solomon).
• Códigos BCH
• Más conveniente para errores independientes.
• Parámetros:
• Longitud del bloque: n=2m-1 m>=3
• Bits de información: k≥n-m· t
• Distancia mínima: d≥2· t+1
• Códigos RS
• Variante del BCH, operando con símbolos no binarios.
• Más apropiada para ráfagas de errores
• Parámetros:
• Bits por símbolo: m
• Longitud del bloque: n=2m-1 símbolos
• Símbolos de información: k=n-2t símbolos
• Capacidad correctora: t símbolos
• Distancia mínima: d≥(2· t+1) símbolos
Dr. J.R. Cerquides Universidad de Sevilla 34
Ejemplo de diseño y uso BCH (MATLAB)
• m=4, t=1  n=15, k=15-4· t=11
 Código (15,11)
• Hay otras alternativas:
bchnumerr(15)
• Generación del polinomio:
bchgenpoly(15,11)
g(x) = 1 + x3 + x4
• Codificación de los datos:
bchenc(gf([01010101010],1),15,11)
c=[01010101010 0100]
• Introducción de un error:
r=c;r(1)=1
r=[11010101010 0100]
• Decodificación:
[d,num]=bchdec(r,15,11)
d=[01010101010 0100]
• m=4, t=2  n=15, k=15-4· t=7
 Código (15,7)
• Generación del polinomio:
bchgenpoly(15,7)
g(x) = 1 + x+x2 + x4 + x8
• Codificación de los datos:
bchenc(gf([0101010],1),15,7)
c=[0101010 00011010]
• Introducción de dos errores:
r=c;r(1)=1;r(2)=0;
r=[1001010 00011010]
• Decodificación:
[d,num]=bchdec(r,15,7)
d=[0101010]
• Introducción de tres errores:
r=c;r(1)=1;r(2)=0;r(3)=1;
• Decodificación:
[d,num]=bchdec(r,15,7)
d=[1011110]
Dr. J.R. Cerquides Universidad de Sevilla 35
Campos de Galois y códigos RS
• Para generar un GF(2m) es necesario encontrar un polinomio
binario PRIMITIVO pm(x) que verifique:
• pm(x) es IRREDUCIBLE o PRIMO (no factorizable)
• El menor n para que pm(x) divida a xn+1 es 2m-1
• EJEMPLO:
• Para m=2  n=3, p2(x) = x2+x+1, pues x3+1 = p2(x)(x+1)
• Una vez tenemos pm(x) podemos generar el GF. Sus elementos
serán 0,α0, α1, α2… αn-1, definidos como en el ejemplo.
• EJEMPLO:
• Para m=3  n=7, p3(x) = x3+x+1
Dr. J.R. Cerquides Universidad de Sevilla 36
Elemento Polinomio Código Elemento Polinomio Código
0 0 000 (0) α3 α+1 011 (3)
α0 1 001 (1) α4 α2+α 110 (6)
α1 α 010 (2) α5 α2+α+1 111 (7)
α2 α2 100 (4) α6 α2+1 101 (5)
Ejemplo de diseño y uso RS (MATLAB)
• m=3 bits/símbolo  GF(23) {n=7, k=5, t=1} símbolos
• Generación del polinomio: [g,t]=rsgenpoly(7,5)
g(x)=x2+α4x+α3
• Codificación de los datos: rsenc(gf([0 0 0 0 3],3),7,5)
• b = [0 0 0 0 3] = [000 000 000 000 011]  b(x) = α3 = α+1. Para que sea
sistemático: (xn-k·b(x))g(x) nos da la redundancia 
c = [0 0 0 0 3 1 5] = [000 000 000 000 011 001 101]
• Introducción de un error de símbolo (un bit):r=c;r(1)=4;
• Decodificación: d=rsdec(r,7,5)
d = [0 0 0 0 3]
• Introducción de un error de símbolo (3 bits):r=c;r(1)=7;
• Decodificación: d=rsdec(r,7,5)
d = [0 0 0 0 3]
• Introducción de un error en dos símbolos:r=c;r(1)=4;r(2)=1;
• Decodificación: d=rsdec(r,7,5)
d = [4 1 0 0 5]
Dr. J.R. Cerquides Universidad de Sevilla 37
3 2 7 6
3 2 2
2 4 3 2 4 3
( ) 1 1
x x
c x x x
x x x x
Modificando códigos
• A partir de un código se pueden derivar versiones
modificadas. Esto permite generar códigos…
• AUMENTADOS: (n,k)(n,k+1) r↓
• EXPURGADOS: (n,k)(n,k+1) r↑
• EXTENDIDOS: (n,k)  (n+1,k) r↑
• PERFORADOS. (n,k)  (n-1,k) r↓
• ALARGADOS: (n,k)  (n+1,k+1), r =
• ACORTADOS: (n,k)  (n-1,k-1) r=
Dr. J.R. Cerquides Universidad de Sevilla 38
Implementación de codificadores. Ejemplo
• Es posible implementar los codificadores:
• Software (DSPs, μC, μP…)
• Hardware (FPGA, VHDL…)
• EJEMPLO: Producto b(x)g(x)
• Polinomio generador: g(x) = x3 + x + 1
• Mensaje: b = [0 1 0 1]  b(x) = x2 + 1
• c(x) = g(x)b(x) = x5 + x2 + x + 1  c = [0 1 0 0 1 1 1]
Dr. J.R. Cerquides Universidad de Sevilla 39
EJEMPLO (cont.)
Dr. J.R. Cerquides Universidad de Sevilla 40
Implementación de codificadores
• EJEMPLO: (xn-kb(x))g(x)
• Polinomio generador: g(x) = x3 + x + 1
• Mensaje: b = [0 1 0 1]  b(x) = x2 + 1
• r(x) = (xn-kb(x))g(x)
• c(x) = xn-kb(x)+(xn-kb(x))g(x) = x5 + x3 + x2  c = [0 1 0 1 1 0 0]
Dr. J.R. Cerquides Universidad de Sevilla 41
EJEMPLO (cont.)
Dr. J.R. Cerquides Universidad de Sevilla 42
Resto = x2
Prestaciones de los códigos bloque
• Procedimiento a seguir:
• Determinar dmin:
• Menor número de 1’s de una palabra código distinta de 0
• Calcular Pe,s y BER:
1/k·Pe,s ≤ BER ≤ Pe,s
• Obtener la ganancia de codificación
• El procedimiento es habitualmente muy complejo,
especialmente para valores de n elevados y requiere
simulación.
Dr. J.R. Cerquides Universidad de Sevilla 43
,
0
1 1
t
n ii
e s
i
n
P p p
i
Simulaciones
Dr. J.R. Cerquides Universidad de Sevilla 44
BER obtenida por distintos códigos BCH para un canal con
pe = 0,0563  C = 0,6874
Tasa máxima dada
una BER
● Hamming (7,4)
○ BCH (15,k)
▼BCH(31,k)
□ BCH(63,k)
► BCH(127,k)
·-· BCH (255,k)
--- BCH (511,k)
▬ BCH (1023,k)
Simulaciones
Dr. J.R. Cerquides Universidad de Sevilla 45
BER obtenida por distintos códigos BCH para un canal con
modulación BPSK, en función de la SNR
·-· BCH (63,30)
··· BCH (127,64)
--- BCH (255,131)
·-· BCH (511,259)
▬ BCH (1023,513)
Aplicaciones de los códigos de bloque
• Almacenamiento de
datos: CD, DAT,
DVD…
• En CD se utilizan dos
versiones acortadas de
un (255,251): uno interno
(32,28) y uno externo
(28,24). En conjunto
pueden corregir ráfagas
de hasta 4000 bits
erróneos (2,5 mm).
• En DVD el
procedimiento es
semejante, con código
interno (208,192) y
externo (182,172).
Dr. J.R. Cerquides Universidad de Sevilla 46
Aplicaciones de los códigos de bloque (II)
• Códigos de barras:
• PDF-417, MaxiCode,
Datamatrix, QR y
Aztec usan códigos
Reed-Solomon a
diferentes niveles.
Dr. J.R. Cerquides Universidad de Sevilla 47
Aplicaciones de los códigos de bloque (III)
• Comunicaciones:
• G-709 (interfaz para
transporte óptico)
emplea un código
RS (255,239).
• DVB-T, C, S utiliza
un código RS
(204,188) resultado
de acortar el anterior
(255,239).
• Las imágenes
enviadas por el
Voyager utilizan
codificación RS.
Dr. J.R. Cerquides Universidad de Sevilla 48
Conclusiones
• A los códigos BCH/RS les cuesta acercarse a la
capacidad del canal, y necesitarían valores de n muy
elevados  retardos, complejidad.
• Son códigos competitivos para R≈ 1 y tamaños
pequeños (n<1000).
• Los algoritmos de decodificación sólo son correctos
siempre que el número de errores no exceda de la
capacidad correctora del código.
• Los códigos BCH son más adecuados para errores
aislados/dispersos
• Los códigos RS son más adecuados para errores en
ráfaga.
Dr. J.R. Cerquides Universidad de Sevilla 49
Codificación convolucional
• A diferencia de los códigos bloque, los codificadores
convolucionales involucran un sistema con memoria.
• EJEMPLO: (D hace las veces de retardo ==z-1)
Dr. J.R. Cerquides Universidad de Sevilla 50
0 0 0 0
0 03
1 03 2
1 3
1
1
C l B l B l B l
C D D D B D
C D D D D B D
Notación matricial
• Agrupando los términos en matrices:
• EJEMPLO:
• Definiciones:
• Mt = memoria total del código = número de retardos
• K = restricción de longitud = máxima longitud de la
respuesta impulsional = 1 + máxima potencia de D
• En los ejemplos anteriores: Mt = 3 y 2, K = 4 y 2
Dr. J.R. Cerquides Universidad de Sevilla 51
0 1 0 3 3 2
1 1C D C D B D D D D D D
D D DC B G
G(D) = Matriz
generadora del
código
1
1 1
D D D
D
D
G
Diagrama de estados
• Puede representarse un diagrama de estados para el
codificador.
Dr. J.R. Cerquides Universidad de Sevilla 52
Trellis del codificador
Dr. J.R. Cerquides Universidad de Sevilla 53
Bits de flushing
• En ocasiones, cuando la transmisión es en ráfagas,
además de especificar el estado inicial, conviene
especificar también el estado final, para aumentar la
capacidad correctora.
• Para ello se añaden bits 0 de “flushing” que lleven al
codificador nuevamente al estado inicial ψ0.
• EJEMPLO:
Dr. J.R. Cerquides Universidad de Sevilla 54
3 bits de flushing llevan al codificador al estado ψ0
Decodificación por Viterbi
• El decodificador funciona igual que en el MLSD pero
tomando distancia de Hamming en lugar de
probabilidades para evaluar los pesos de cada rama.
• EJEMPLO:
n=2, k=1, Mt = 2, K=3
Dr. J.R. Cerquides Universidad de Sevilla 55
2 2
1 1D D D DG
Ejemplo de decodificación (dura)
• Estado inicial y final (flushing): ψ0 = 00
• Secuencia de entrada: 110101
• Secuencia codificada: 1110100001000111
• Secuencia recibida: 1010100101010111
Dr. J.R. Cerquides Universidad de Sevilla 56
ψ0 ψ0
ψ1
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ2
ψ0
10 10 10 01 01 01 01 11
1
1
2
2
3
1
3
3
4
4
4
21
3
4
4
3
5
2
2
4
2
3
3
2
4
4
4
2
4
4
4
3
5
3
3
4
2
4
3
4
4
6
3
1 1 0 1 0 1 Flushing
Códigos catastróficos
• Si existe algún bucle que pueda generar una
secuencia de 0’s indefinida a la salida sin ser el bucle
ψ0  ψ0 decimos que el código es CATASTRÓFICO.
• El problema es que, si un error nos llevase a esa
situación, una secuencia de 00’s continuada no nos
devuelve a ψ0 sino que nos mantiene en el bucle
erróneo.
• EJEMPLO:
Dr. J.R. Cerquides Universidad de Sevilla 57
Códigos perforados (punctured codes)
• En ocasiones, para reducir la redundancia, se
“perfora” la salida del código, eliminando bits de
salida según un patrón específico.
• La perforación realizada se indica mediante una
matriz P
• EJEMPLO: Se perfora un código de tasa r=1/2 con un
patrón de perforación P = [1 1 0; 1 0 1]. Nueva tasa r=3/4
Dr. J.R. Cerquides Universidad de Sevilla 58
1 0 1
1 1 0
0 0 1
P


   

Cada fila indica cómo se
perfora una salida: 0 indica
que el bit se elimina
El nº de columnas indica el período de repetición del patrón
Ejemplo de decodificación con perforado
• Estado inicial y final (flushing): ψ0 = 00
• Secuencia de entrada: 110101, P=[10;11]
• Secuencia codificada: 11 X0 10 X0 01 X0 01 X1
• Secuencia recibida: 10 X0 10 X1 01 X1 01 X1
Dr. J.R. Cerquides Universidad de Sevilla 59
ψ0 ψ0
ψ1
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ1
ψ3
ψ2
ψ0
ψ2
ψ0
10 X0 10 X1 01 X1 01 X1
1
1
1
2
2
1
2
2
3
3
4
21
3
3
2
2
3
1
2
3
2
2
2
2
4
3
3
2
4
3
2
2
3
2
3
3
2
3
2
3
4
4
2
1 1 0 0 0 1 Flushing
Prestaciones de los códigos convolucionales
• Los mejores códigos se obtienen
experimentalmente.
• Es difícil determinar sus
prestaciones de forma analítica.
Se suele recurrir a simulación.
• Aunque los ejemplos se han
utilizado decodificadores
“hard” se obtienen mejores
prestaciones con
decodificadores “soft”. Esto
añade poca complejidad al
Viterbi, pues basta sustituir
distancias de Hamming por
distancias euclídeas.
• La complejidad del
decodificador crece
exponencialmente con la
memoria, por lo que se suelen
utilizar secuencias cortas.
Dr. J.R. Cerquides Universidad de Sevilla 60
● BCHs r ≈ ½, n=7..1023
○ Convolucionales r=1/2, K=6..12
Aplicaciones de los códigos convolucionales
• Concatenados con
códigos de bloque,
por ejemplo en
DVB-S, DVB-C,
DVB-T o en GSM,
con r variable.
• Radioenlaces y
comunicaciones vía
satélite.
• Bucle de abonado:
ADSL2+ y SHDSL.
Dr. J.R. Cerquides Universidad de Sevilla 61
Codificación avanzada
• Los problemas que encontramos en la utilización de
los codificadores propuestos son fundamentalmente
los siguientes:
• BCH y RS: El problema es el elevado número de palabras
que no son capaces de corregir los algoritmos eficientes de
decodificación (Berlekamp-Massey).
• EJEMPLOS:
• Código BCH (15,11)(Hamming): t=1
• Código BCH (15,7): t=2
• Código BCH (63,45): t=3
Dr. J.R. Cerquides Universidad de Sevilla 62
11
15
2 1 15Palabras decodificables
1
Total palabras posibles 2
Perfecto
7
15
2 1 15 105Palabras decodificables
0,47
Total palabras posibles 2
45
63
2 1 63 1953 39711Palabras decodificables
0,16
Total palabras posibles 2
Codificación avanzada (II)
• Códigos convolucionales
• La complejidad y la memoria requeridas por el decodificador
de Viterbi aumenta exponencialmente con la longitud de los
códigos y el número de estados.
• Existen otros tipos de decodificadores cuyo coste de
decodificación es lineal. Esto da lugar a los “códigos
turbo” y los códigos LDPC (low density parity
check).
• Aunque son subóptimos en distancia mínima, al
poder incrementar la longitud sin problemas,
permiten aproximarse a la capacidad de canal.
• Debido a la complejidad los algoritmos quedan fuera
del ámbito de la asignatura.
Dr. J.R. Cerquides Universidad de Sevilla 63
Simulaciones
Dr. J.R. Cerquides Universidad de Sevilla 64
Prestaciones
turbocódigos
(decodif. “soft”)
Prestaciones
códigos
convolucionales
(decodif. “soft”)
Simulaciones
Dr. J.R. Cerquides Universidad de Sevilla 65
Prestaciones
LDPC
“soft” ──
“hard” - - -
Prestaciones
códigos
convolucionales
“soft” ──
“hard” - - -
Simulaciones
Dr. J.R. Cerquides Universidad de Sevilla 66
● BCHs r ≈ ½, n=7..1023
x Conv. r=1/2, K=6..12
○ LDPC r=1/2, n=100…20000
Aplicaciones de turbocódigos
• Telefonía móvil: UMTS,
HSPA, EV-DO y LTE.
• MediaFLO, un sistema
terrestre de distribución de
televisión.
• Canal de retorno vía satélite:
DVB-RCS
• Mars Reconnaissance
Orbiter (NASA).
• IEEE 802.16 (WiMAX)
Dr. J.R. Cerquides Universidad de Sevilla 67
Aplicaciones códigos LDPC
• G.hn/G.9960 (networking
over power lines, phone
lines and coaxial cable)
• 802.3an (10 Giga-bit/s
Ethernet over Twisted pair)
• CMMB(China Multimedia
Mobile Broadcasting)
• DVB-S2 / DVB-T2 / DVB-
C2 (2nd Generation)
• DMB-T/H
• WiMAX
• IEEE 802.11n-2009 (Wi-Fi
standard)
Dr. J.R. Cerquides Universidad de Sevilla 68
Conclusiones
• Las técnicas de codificación permiten mejorar las
prestaciones de los canales para aproximarse al
límite de Shannon o capacidad de canal.
• Hemos comenzado presentado los fundamentos de
la codificación.
• Hemos analizado los codificadores y decodificadores
de bloque lineales, para pasar luego a los códigos
cíclicos (RS y BCH fundamentalmente).
• Introdujimos los códigos convolucionales y la técnica
de decodificación por Viterbi.
• Finalmente hemos visto técnicas de codificación
avanzada: turbo códigos y códigos LDPC.
Dr. J.R. Cerquides Universidad de Sevilla 69
Referencias
• Comunicaciones digitales,
• Antonio Artés, Fernando Pérez, cap. 9.2.3 y 10 completo.
• Communication Systems, 4th ed.
• Simon Haykin, John Wiley & Sons, 2000.
• Capítulo 10.
• Digital Communications, 4th ed.
• John G. Proakis, McGraw-Hill, 2001.
• Capítulos 7 y 8
• Digital Communications
• Sklar
• Capítulos 6 y 7
Dr. J.R. Cerquides Universidad de Sevilla 70

Más contenido relacionado

La actualidad más candente

Lecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdLecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdnica2009
 
Tema 2 teoría de la información y capacidad de canal
Tema 2   teoría de la información y capacidad de canalTema 2   teoría de la información y capacidad de canal
Tema 2 teoría de la información y capacidad de canalJosé Ramón Cerquides Bueno
 
Códigos de línea
Códigos de líneaCódigos de línea
Códigos de líneaOscar Llanos
 
Tecnicas de acceso multiple
Tecnicas de acceso multipleTecnicas de acceso multiple
Tecnicas de acceso multipleDavid Rojas
 
Utp pds_s3y4_señales, secuencias y muestreo
 Utp pds_s3y4_señales, secuencias y muestreo Utp pds_s3y4_señales, secuencias y muestreo
Utp pds_s3y4_señales, secuencias y muestreojcbenitezp
 
Sistemas de Telecomunicaciones cap 3-2 (ss)
Sistemas de Telecomunicaciones cap 3-2 (ss)Sistemas de Telecomunicaciones cap 3-2 (ss)
Sistemas de Telecomunicaciones cap 3-2 (ss)Francisco Apablaza
 
4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempoEdison Coimbra G.
 
Capítulo II - Microondas - Análisis de redes de microondas
Capítulo II - Microondas - Análisis de redes de microondasCapítulo II - Microondas - Análisis de redes de microondas
Capítulo II - Microondas - Análisis de redes de microondasAndy Juan Sarango Veliz
 
Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...
Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...
Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...nica2009
 
Lecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binariaLecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binarianica2009
 
Codigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIICodigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIIAndy Juan Sarango Veliz
 

La actualidad más candente (20)

Lecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdLecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psd
 
CodificacióN De Canal
CodificacióN De CanalCodificacióN De Canal
CodificacióN De Canal
 
codificacion de linea
codificacion de lineacodificacion de linea
codificacion de linea
 
Tema 2 teoría de la información y capacidad de canal
Tema 2   teoría de la información y capacidad de canalTema 2   teoría de la información y capacidad de canal
Tema 2 teoría de la información y capacidad de canal
 
4.5 transmision paso_banda
4.5 transmision paso_banda4.5 transmision paso_banda
4.5 transmision paso_banda
 
PCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones IIIPCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones III
 
Códigos de línea
Códigos de líneaCódigos de línea
Códigos de línea
 
Tecnicas de acceso multiple
Tecnicas de acceso multipleTecnicas de acceso multiple
Tecnicas de acceso multiple
 
Codificación de línea
Codificación de líneaCodificación de línea
Codificación de línea
 
Códigos
Códigos Códigos
Códigos
 
Utp pds_s3y4_señales, secuencias y muestreo
 Utp pds_s3y4_señales, secuencias y muestreo Utp pds_s3y4_señales, secuencias y muestreo
Utp pds_s3y4_señales, secuencias y muestreo
 
Sistemas de Telecomunicaciones cap 3-2 (ss)
Sistemas de Telecomunicaciones cap 3-2 (ss)Sistemas de Telecomunicaciones cap 3-2 (ss)
Sistemas de Telecomunicaciones cap 3-2 (ss)
 
4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo
 
Modulación pcm
Modulación pcmModulación pcm
Modulación pcm
 
Codigos de linea.pdfcódiga
Codigos de linea.pdfcódigaCodigos de linea.pdfcódiga
Codigos de linea.pdfcódiga
 
Capítulo II - Microondas - Análisis de redes de microondas
Capítulo II - Microondas - Análisis de redes de microondasCapítulo II - Microondas - Análisis de redes de microondas
Capítulo II - Microondas - Análisis de redes de microondas
 
Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...
Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...
Lecture 21 detección de códigos de redundancia cíclicos. probabilidad de erro...
 
Lecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binariaLecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binaria
 
Codigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIICodigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones III
 
Filtros activos en general
Filtros activos en generalFiltros activos en general
Filtros activos en general
 

Similar a Codificación de canal: códigos de bloque y convolucionales

Investigación Códigos INF 164
Investigación Códigos INF 164Investigación Códigos INF 164
Investigación Códigos INF 164EdualSarmiento
 
Programacion portafolio
Programacion portafolioProgramacion portafolio
Programacion portafolioalvarisnky
 
Common Scrambling Algorithm al descubierto
Common Scrambling Algorithm  al descubiertoCommon Scrambling Algorithm  al descubierto
Common Scrambling Algorithm al descubiertoronroneo
 
tema-5-codificacion-de-datos.ppt
tema-5-codificacion-de-datos.ppttema-5-codificacion-de-datos.ppt
tema-5-codificacion-de-datos.pptJeremyNeira
 
tema-5-codificacion-de-datos (1).ppt
tema-5-codificacion-de-datos (1).ppttema-5-codificacion-de-datos (1).ppt
tema-5-codificacion-de-datos (1).pptSandraVVelasco
 
Sistemas de Telecomunicaciones cap 2
Sistemas de Telecomunicaciones cap 2Sistemas de Telecomunicaciones cap 2
Sistemas de Telecomunicaciones cap 2Francisco Apablaza
 
Diseño Logico T3 V2.pdf
Diseño Logico T3 V2.pdfDiseño Logico T3 V2.pdf
Diseño Logico T3 V2.pdfIstharDAvila
 
PRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptx
PRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptxPRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptx
PRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptxjuliocalvo18
 
Digital
DigitalDigital
Digitaltoni
 
Digital E
Digital EDigital E
Digital Etoni
 
Algebra de boole
Algebra de booleAlgebra de boole
Algebra de boolesuperone314
 
1 presentacion final digitalizacion aplicacion real
1 presentacion final digitalizacion aplicacion real1 presentacion final digitalizacion aplicacion real
1 presentacion final digitalizacion aplicacion realJarvey Gonzalez
 
Deteccion Y Control De
Deteccion Y Control DeDeteccion Y Control De
Deteccion Y Control Deguestc9b52b
 

Similar a Codificación de canal: códigos de bloque y convolucionales (20)

Investigación Códigos INF 164
Investigación Códigos INF 164Investigación Códigos INF 164
Investigación Códigos INF 164
 
Comunicaciones
ComunicacionesComunicaciones
Comunicaciones
 
Presentacion grupo-2-inf-164
Presentacion grupo-2-inf-164Presentacion grupo-2-inf-164
Presentacion grupo-2-inf-164
 
Parte 3
Parte 3Parte 3
Parte 3
 
Programacion portafolio
Programacion portafolioProgramacion portafolio
Programacion portafolio
 
T6 CÓDIGOS BINARIOS
T6 CÓDIGOS BINARIOST6 CÓDIGOS BINARIOS
T6 CÓDIGOS BINARIOS
 
Common Scrambling Algorithm al descubierto
Common Scrambling Algorithm  al descubiertoCommon Scrambling Algorithm  al descubierto
Common Scrambling Algorithm al descubierto
 
Codificador Multiplexor.pptx
 Codificador Multiplexor.pptx Codificador Multiplexor.pptx
Codificador Multiplexor.pptx
 
tema-5-codificacion-de-datos.ppt
tema-5-codificacion-de-datos.ppttema-5-codificacion-de-datos.ppt
tema-5-codificacion-de-datos.ppt
 
tema-5-codificacion-de-datos (1).ppt
tema-5-codificacion-de-datos (1).ppttema-5-codificacion-de-datos (1).ppt
tema-5-codificacion-de-datos (1).ppt
 
Sistemas de Telecomunicaciones cap 2
Sistemas de Telecomunicaciones cap 2Sistemas de Telecomunicaciones cap 2
Sistemas de Telecomunicaciones cap 2
 
Diseño Logico T3 V2.pdf
Diseño Logico T3 V2.pdfDiseño Logico T3 V2.pdf
Diseño Logico T3 V2.pdf
 
PRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptx
PRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptxPRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptx
PRESENTACIÓN DE INGENIERÍA ELECTRONICA UNIDAD DIDÁCTICA MULTIMEDIA N°5.pptx
 
Digital
DigitalDigital
Digital
 
Digital E
Digital EDigital E
Digital E
 
Algebra de boole
Algebra de booleAlgebra de boole
Algebra de boole
 
Codificadores para electrónica digital
Codificadores para electrónica digitalCodificadores para electrónica digital
Codificadores para electrónica digital
 
1 presentacion final digitalizacion aplicacion real
1 presentacion final digitalizacion aplicacion real1 presentacion final digitalizacion aplicacion real
1 presentacion final digitalizacion aplicacion real
 
IT 514M TELECOMUNICACIONES II Examen final
IT 514M TELECOMUNICACIONES II Examen finalIT 514M TELECOMUNICACIONES II Examen final
IT 514M TELECOMUNICACIONES II Examen final
 
Deteccion Y Control De
Deteccion Y Control DeDeteccion Y Control De
Deteccion Y Control De
 

Más de José Ramón Cerquides Bueno

Desarrollo de una herramienta para la medida de calidad de vídeo
Desarrollo de una herramienta para la medida de calidad de vídeoDesarrollo de una herramienta para la medida de calidad de vídeo
Desarrollo de una herramienta para la medida de calidad de vídeoJosé Ramón Cerquides Bueno
 
Sistema de seguimiento de la acción en eventos deportivos
Sistema de seguimiento de la acción en eventos deportivosSistema de seguimiento de la acción en eventos deportivos
Sistema de seguimiento de la acción en eventos deportivosJosé Ramón Cerquides Bueno
 
Sistema inteligente de Reconocimiento de Anuncios de Televisión
Sistema inteligente de Reconocimiento de Anuncios de TelevisiónSistema inteligente de Reconocimiento de Anuncios de Televisión
Sistema inteligente de Reconocimiento de Anuncios de TelevisiónJosé Ramón Cerquides Bueno
 
Control de polución en smart cities mediante aplicaciones en fiware
Control de polución en smart cities mediante aplicaciones en fiwareControl de polución en smart cities mediante aplicaciones en fiware
Control de polución en smart cities mediante aplicaciones en fiwareJosé Ramón Cerquides Bueno
 
Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...
Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...
Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...José Ramón Cerquides Bueno
 
Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...
Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...
Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...José Ramón Cerquides Bueno
 
Diseño y resolución de prácticas para el laboratorio de televisión 3 d
Diseño y resolución de prácticas para el laboratorio de televisión 3 dDiseño y resolución de prácticas para el laboratorio de televisión 3 d
Diseño y resolución de prácticas para el laboratorio de televisión 3 dJosé Ramón Cerquides Bueno
 
Detección de anuncios de televisión mediante software presentación
Detección de anuncios de televisión mediante software   presentaciónDetección de anuncios de televisión mediante software   presentación
Detección de anuncios de televisión mediante software presentaciónJosé Ramón Cerquides Bueno
 
Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...
Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...
Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...José Ramón Cerquides Bueno
 
Presentacion unidad móvil virtual para eng sobre hsupa
Presentacion unidad móvil virtual para eng sobre hsupaPresentacion unidad móvil virtual para eng sobre hsupa
Presentacion unidad móvil virtual para eng sobre hsupaJosé Ramón Cerquides Bueno
 
Campaña de benchmarking cobertura de telefonía móvil en entornos indoor
Campaña de benchmarking cobertura de telefonía móvil en entornos indoorCampaña de benchmarking cobertura de telefonía móvil en entornos indoor
Campaña de benchmarking cobertura de telefonía móvil en entornos indoorJosé Ramón Cerquides Bueno
 
147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculo
147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculo147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculo
147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculoJosé Ramón Cerquides Bueno
 
Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...
Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...
Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...José Ramón Cerquides Bueno
 

Más de José Ramón Cerquides Bueno (20)

Desarrollo de una herramienta para la medida de calidad de vídeo
Desarrollo de una herramienta para la medida de calidad de vídeoDesarrollo de una herramienta para la medida de calidad de vídeo
Desarrollo de una herramienta para la medida de calidad de vídeo
 
Sistema de seguimiento de la acción en eventos deportivos
Sistema de seguimiento de la acción en eventos deportivosSistema de seguimiento de la acción en eventos deportivos
Sistema de seguimiento de la acción en eventos deportivos
 
Medidas de calidad en vídeo
Medidas de calidad en vídeoMedidas de calidad en vídeo
Medidas de calidad en vídeo
 
Presentacion hbbtv
Presentacion hbbtvPresentacion hbbtv
Presentacion hbbtv
 
Sira tv
Sira tvSira tv
Sira tv
 
Sistema inteligente de Reconocimiento de Anuncios de Televisión
Sistema inteligente de Reconocimiento de Anuncios de TelevisiónSistema inteligente de Reconocimiento de Anuncios de Televisión
Sistema inteligente de Reconocimiento de Anuncios de Televisión
 
Control de polución en smart cities mediante aplicaciones en fiware
Control de polución en smart cities mediante aplicaciones en fiwareControl de polución en smart cities mediante aplicaciones en fiware
Control de polución en smart cities mediante aplicaciones en fiware
 
Presentacion carmenppt
Presentacion carmenpptPresentacion carmenppt
Presentacion carmenppt
 
Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...
Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...
Sustitución de sistemas st bs propietarios por raspberry pis en la red de pan...
 
Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...
Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...
Análisis y evaluación de las ténicas utilizadas para la transmisión de video ...
 
Presentación pfc susana carrasco perez v2
Presentación pfc susana carrasco perez v2Presentación pfc susana carrasco perez v2
Presentación pfc susana carrasco perez v2
 
Diseño y resolución de prácticas para el laboratorio de televisión 3 d
Diseño y resolución de prácticas para el laboratorio de televisión 3 dDiseño y resolución de prácticas para el laboratorio de televisión 3 d
Diseño y resolución de prácticas para el laboratorio de televisión 3 d
 
Detección de anuncios de televisión mediante software presentación
Detección de anuncios de televisión mediante software   presentaciónDetección de anuncios de televisión mediante software   presentación
Detección de anuncios de televisión mediante software presentación
 
Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...
Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...
Comparación de técnicas de detección de cambios de plano sobre vídeo comprido...
 
Presentacion unidad móvil virtual para eng sobre hsupa
Presentacion unidad móvil virtual para eng sobre hsupaPresentacion unidad móvil virtual para eng sobre hsupa
Presentacion unidad móvil virtual para eng sobre hsupa
 
Campaña de benchmarking cobertura de telefonía móvil en entornos indoor
Campaña de benchmarking cobertura de telefonía móvil en entornos indoorCampaña de benchmarking cobertura de telefonía móvil en entornos indoor
Campaña de benchmarking cobertura de telefonía móvil en entornos indoor
 
Presentacion pfc
Presentacion pfcPresentacion pfc
Presentacion pfc
 
147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculo
147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculo147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculo
147755331 presentacion-sistema-de-mensajeria-electronica-del-centro-de-calculo
 
Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...
Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...
Integración de kits arduinos enlazados mediante xbee para aplicaciones de car...
 
Intensificación
IntensificaciónIntensificación
Intensificación
 

Codificación de canal: códigos de bloque y convolucionales

  • 1. Tema 4: Codificación de canal Dr. José Ramón Cerquides Bueno Teoría de la Señal y Comunicaciones Universidad de Sevilla Transmisión Digital
  • 2. Dr. J.R. Cerquides Universidad de Sevilla 2 Organización • Introducción • Ejemplo • Esquema y definiciones • Códigos de bloque • Códigos convolucionales • Codificación avanzada • Conclusiones • Referencias
  • 3. Dr. J.R. Cerquides Universidad de Sevilla 3 Introducción • El Teorema de Codificación de Canal (Shannon) establece que: Es posible enviar (con el código adecuado) con una probabilidad de error arbitrariamente pequeña si y solo si H(S)·Rs ≤ C·Rc • En este tema vamos a abordar el diseño de codificadores que nos permitan aproximarnos a la capacidad de canal.
  • 4. Dr. J.R. Cerquides Universidad de Sevilla 4 Ejemplo • Canal binario simétrico con p=0.15 C = 0,39 bits/uso de canal • Intentamos mejorar transmitiendo cada símbolo 3 veces y decidiendo por mayoría, con la intención de obtener una capacidad 0,39·3 = 1,17 bits. Símbolo 1  Transmitimos 1,1,1 Símbolo 0  Transmitimos 0,0,0 • La nueva probabilidad de error será: 3p2(1-pe)+p3=0,0607 que corresponde a una capacidad C = 0,6696 bits < 1,17 ¿Por qué?
  • 5. Dr. J.R. Cerquides Universidad de Sevilla 5 Ejemplo • La capacidad sería 3C = 1,17 bits si los símbolos de entrada al canal fuesen equiprobables: X = 000,001,010,011,100,101,110,111 pero nosotros sólo hemos empleado dos símbolos posibles de entrada: X= 000,111. • Al reducir la entropía a la entrada no puede alcanzarse la capacidad de canal.
  • 6. ESQUEMA DE CODIFICADOR Y DECODIFICADOR PARA UN CANAL DMC DEFINICIONES (n,k) Descripción usada para referirse al código k Tamaño de las palabras del alfabeto de entrada o Longitud de las palabras de entrada n Tamaño de las palabras código o Longitud del código R=k/n Tasa de transmisión (o tasa de código) r=n-k Redundancia Esquema y definiciones Dr. J.R. Cerquides Universidad de Sevilla 6
  • 7. Definiciones (continuación) Dr. J.R. Cerquides Universidad de Sevilla 7 • Alfabeto de entrada: B Compuesto por las 2k posibles combinaciones de bits a la entrada. • Palabra código: c Cada una de las 2k posibles combinaciones de n bits a la salida del codificador • Diccionario de códigos: C Conjunto de todas las palabras código • Distancia mínima de un código: Un código es capaz de corregir hasta erroresmin 1 / 2d
  • 8. Ejemplo revisitado Dr. J.R. Cerquides Universidad de Sevilla 8 • Canal BSC con p=0,15 • Vamos a diseñar un codificador con n=3k, R=1/3, para diferentes valores de k. • Elegimos las 2k palabras código de n bits que más se diferencien entre sí. Por ejemplo, para k=2, podrían ser: • En la decodificación elegimos como palabra código correcta aquella que presente mayor similitud con alguna de ellas.
  • 9. Ejemplo revisitado Dr. J.R. Cerquides Universidad de Sevilla 9 • A cada una de las 2k palabras código les corresponde un conjunto de 2n/2k = 22k símbolos recibidos. • Por ejemplo para el vector todo ceros: • La pe de la palabra código será ahora: pe=1-((1-p)6+6·p(1-p)5+9·p2(1-p)4 )=0.1178 resultado un tanto SORPRENDENTE pues la probabilidad de error en la transmisión de 2 bits de información es menor que en 1 !!!
  • 10. Resultado para diferentes valores de n • La gráfica muestra la evolución de la pe de una palabra código a medida que n aumenta. • Si n=1500  pe≈ 3·10-3, k=500  pe,bit ≈ 6·10-6 • Relación entre C y R=0.3333 • Para p=0.13 (C=0.4426) la caída es más rápida • Para p=0.17 (C=0.3423) la caída es muy lenta • Para p=0.19 (C=0.2985) la pe sube cuando n aumenta. Dr. J.R. Cerquides Universidad de Sevilla 10
  • 11. Más definiciones • Probabilidad de error de una palabra código: • Probabilidad de error media de un código: • Probabilidad de error máxima de un código: • Podemos realizar una transmisión fiable a una tasa R si • existe una secuencia de códigos (n, ⌈nR⌉) (donde ⌈nR⌉ denota el entero más pequeño que es mayor que nR) tal que la probabilidad de error máxima, pe(máx, n), tiende a cero cuando n tiende a infinito. • Formalmente, si para todo ε > 0 existe una secuencia de códigos (n, ⌈nR⌉) y un valor n0 para el que Pe(máx, n) < ε cuando n > n0. Dr. J.R. Cerquides Universidad de Sevilla 11
  • 12. Retos • En realidad querríamos encontrar una FORMA SISTEMÁTICA de construir códigos para los que: • La codificación sea sencilla y de bajo coste computacional • La decodificación sea sencilla y de bajo coste computacional • La pe decaiga lo más rápidamente posible a medida que aumenta n • Los decodificadores pueden ser: • Soft (o blandos) si hacen uso de la señal a la salida del demodulador, antes del detector. • Hard (o duros) si hacen uso de la señal a la salida del detector. Dr. J.R. Cerquides Universidad de Sevilla 12 Los decodificadores blandos utilizan distancias euclídeas, mientras que los duros utilizan distancias de Hamming
  • 13. • Sistema binario BPSK, B={0,1}, C={00,11} (repetición) • Símbolos {-1,+1}  Comparación decodificador blando y duro • Decodificador HARD • dmin=2  corrige hasta 0 errores y detecta hasta 1 • pe,palabra=p2+2·p·(1-p) ≈ 2p • Decodificador SOFT • No detecta ni corrige errores. Dr. J.R. Cerquides Universidad de Sevilla 13 Bit 1 Bit 2 11 00 1 1 -1 -1 Bit 1 Bit 2 11 00 1 1 -1 -1 0 0 2 2s bE E p Q Q N N 0 0 2 2s b e E E p Q Q N N 0 0 2 2 2s bE E p Q Q N N
  • 14. Ganancia de codificación • Diferencia entre la relación SNR necesaria para alcanzar cierta BER con y sin sistema de codificación. • En el caso anterior: • BER sin codificador • BER con decodificador HARD • Ganancia de codificación (BER = 10-6) Tabla Q(x) Dr. J.R. Cerquides Universidad de Sevilla 14 6 0 0 sin cod 2 10 11,3b bE E Q N N 6 HARD 0 0 HARD 2 10 24 3,26b bE E Q G dB N N Sin codificador Codificador HARD Codificador SOFT 0 2 bE Q N 0 2 bE Q N  0 2 bE Q N 6 SOFT 0 0 SOFT 2 10 11,3 0b bE E Q G dB N N
  • 15. • Sistema binario BPSK, B={00,01,10,11}, C={000,011,101,110} • Sin codificador • Para BER = 10-6  Otro ejemplo Dr. J.R. Cerquides Universidad de Sevilla 15 -1 0 1 -1 0 1 -1 -0.5 0 0.5 1 101 000 110011 Bit 1 Bit 2 Bit 3 0 0 2 2s bE E BER Q Q N N 6 0 0 sin cod 2 10 11,3b bE E Q N N
  • 16. BER y Ganancia de codificación • Decodificador HARD • Para BER = 10-6 • GHARD = -2,14dB • Decodificador SOFT • Para BER = 10-6 • GSOFT = 1 dB Dr. J.R. Cerquides Universidad de Sevilla 16 , 0 0 3 2 2 4 3 3 3 s b s b e s E E E E p Q Q N N 0 0 4 4 3 3 3 3 b bE E BER Q Q N N , 0 0 3 2 4 8 3 3 3 s b s b e s E E E E p Q Q N N 0 82 3 3 3 bE BER Q N 6 0 0 4 3 10 18,52 3 b b HARD E E Q N N 6 0 0 8 2 10 8,95 3 b b SOFT E E Q N N La ganancia del decodificador SOFT es siempre mayor que la del decodificador HARD
  • 17. Comparación decodificadores Dr. J.R. Cerquides Universidad de Sevilla 17 -1 0 1 -1 0 1 -1 -0.5 0 0.5 1 101 000 110011 Bit 1 Bit 2 Bit 3 -1 0 1 -1 0 1 -1 -0.5 0 0.5 1 101 000 110011 Bit 1 Bit 2 Bit 3 Decodificador HARD Decodificador SOFT
  • 18. Ancho de banda ocupado • Al utilizar un codificador de tasa R, o bien: • El ancho de banda se incrementa en un factor 1/R • O bien la velocidad de información se reduce en un factor R Dr. J.R. Cerquides Universidad de Sevilla 18 Donde antes transmitíamos k símbolos/s ahora transmitimos n=k/r símbolos/s SUBE EL BW NECESARIO Si seguimos transmitiendo a la misma velocidad sólo k de cada n son información SE REDUCE LA TASA BINARIA DE INFORMACIÓN
  • 19. Códigos de bloque • Los códigos de bloque estructuran los datos en BLOQUES de longitud FIJA a los que añaden REDUNDANCIA. • Todos los ejemplos vistos son códigos de bloque. • Nos van a interesar especialmente los códigos de bloque LINEALES y, entre ellos, los códigos CÍCLICOS. • Vamos a necesitar conceptos de campos de Galois (GF) (Galois Field). Dr. J.R. Cerquides Universidad de Sevilla 19 k DATOS n-k REDUNDANCIA
  • 20. Campos de Galois • Cuerpo finito, campo finito o campo de Galois (Évariste Galois) es un CUERPO que contiene un número finito de elementos. • EJEMPLO: GF(2) a+b = (a+b)2 a·b = (a·b)2 • EJEMPLO: GF(3) a+b = (a+b)3 a·b = (a·b)3 Dr. J.R. Cerquides Universidad de Sevilla 20 + 0 1 2 0 0 1 2 1 1 2 0 2 2 0 1 × 0 1 2 0 0 0 0 1 0 1 2 2 0 2 1 + 0 1 0 0 1 1 1 0 × 0 1 0 0 0 1 0 1
  • 21. Códigos bloque lineales • Un código bloque es lineal (n,k) si es un s.e.v. de dimensión k de GF(2n). • PROPIEDADES: • Cualquier combinación lineal de palabras código es palabra código. • La palabra 0 pertenece al código • La dmin de un código lineal coincide con el menor número de 1’s en una palabra código (excepto la 0) • Todas las palabras código poseen otra a distancia dmin Dr. J.R. Cerquides Universidad de Sevilla 21 Las k palabras código forman un s.e.v.
  • 22. EJEMPLO • k = 2, n=6 Dr. J.R. Cerquides Universidad de Sevilla 22 La palabra 0 pertenece al código dmin = 4 011011 +110110 101101
  • 23. Generación de un código lineal • Para generar un código lineal basta con una MATRIZ GENERADORA G que contenga k vectores linealmente independientes  c = b· G • EJEMPLO: Código (5,2) • Cualquier matriz que contenga una base (n-k vectores) del complemento ortogonal a G es una MATRIZ DE COMPROBACIÓN DE PARIDAD, H. c· HT = 0 pues G· HT = 0 y HT· c = 0 pues H· GT = 0 • EJEMPLO: • Además, H es una matriz generadora de un código (n,n-k) Dr. J.R. Cerquides Universidad de Sevilla 23 0 0 1 1 1 1 1 1 0 0 G 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 b c b c b c b c 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 H 1 1 1 0 0 0 01 0 1 1 1 0 00 0 0 0 1 1 01 1
  • 24. Códigos SISTEMÁTICOS • Los procesos de codificación y decodificación se simplifican si el código es SISTEMÁTICO (los primeros k bits de la palabra código coinciden con la palabra a codificar). • Para que ocurra G debe tomar una forma especial: G = [Ik | P]  H = [PT | In-k] • EJEMPLO: Dr. J.R. Cerquides Universidad de Sevilla 24 1 0 1 0 1 0 1 0 1 1 G 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 H
  • 25. Síndrome • El síndrome es r· HT, que será 0 si r es una palabra código. • Si r = c+e entonces r· HT = e· HT • Como el síndrome depende del error, podemos elaborar una tabla para cada síndrome, consignando el patrón de error asociado (el que menos errores contenga). • EJEMPLO: • Los síndromes 111 y 101 corresponden a más de un error. Existen dos posibilidades: reportar la palabra recibida como errónea o realizar la decodificación con más de un error. • Un código es PERFECTO si en la tabla no queda ningún síndrome por asignar. Dr. J.R. Cerquides Universidad de Sevilla 25 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 T H 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 Error Síndrome
  • 26. Capacidad correctora (cota de Hamming) • Un código binario de longitud n con capacidad de corregir (t) errores debe tener una redundancia (r) r = n-k ≥ log2 V(n,t) • V(n,t) es la esfera de Hamming de radio t (número de vectores que están a distancia ≤ t) • EJEMPLO: ¿Es posible corregir 3 errores en un código con (12,5)? r = 7 ≥ log2 299 = 8,22  NO • La igualdad r = log2 V(n,t)  CÓDIGO PERFECTO. Dr. J.R. Cerquides Universidad de Sevilla 26 0 , t j n V n t j 3 0 12 12,3 1 12 66 220 299 j V j
  • 27. Códigos PERFECTOS • Sólo existen 4 códigos perfectos: • Trivial: n=k, r=0, t=0 • Repetición: n impar, k=1, t=(n-1)/2 • Golay: n=23, k=11, t=3 • Hamming: n=2r-1, k=n-r, t=1 • EJEMPLO: Código de Hamming (r=3  n=7, k=4) sistemático Dr. J.R. Cerquides Universidad de Sevilla 27 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 H 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 G Todas las combinaciones restantes
  • 28. EJEMPLO • Si c = [0 1 0 0 1]  c(x) = x+x4 xc(x) = x2+x5 = 1· (x5+1) + (x2+1)  [1 0 1 0 0] • Para generar un código cíclico se parte de un polinomio GENERADOR g(x) de grado r=n-k. • Las palabras código se obtienen multiplicando b(x) por g(x) (código NO SISTEMÁTICO). • EJEMPLO: g(x) = 1+x2+x3+x4  r=4. Si k=3, n=7 b = [0 1 1]  b(x)=x+x2 c(x)=g(x)b(x) = x+x3+x4+x5+x2+x4+x5+x6 c(x) = x+x2+x3+x6  c = [0 1 1 1 0 0 1] Dr. J.R. Cerquides Universidad de Sevilla 29 Cociente Resto
  • 29. Método SISTEMÁTICO • Existe una forma de obtención alternativa que da lugar a un código SISTEMÁTICO (aunque la redundancia precede a los datos). • El procedimiento es: • Obtener d(x) = (b(x)· xr)g(x) • Construir c(x) = b(x)· xr + d(x) • EJEMPLO: g(x) = 1+x2+x3+x4 b = [0 1 1]  b(x)=x+x2 d(x) = (x5+x6)g(x) = x3+1 c(x)=b(x)· xr + d(x)=1+x3+x5+x6  c = [1 0 0 1 0 1 1] Dr. J.R. Cerquides Universidad de Sevilla 30 DatosRedundancia Así trabaja MATLAB
  • 30. EJEMPLO • g(x) = 1+x2+x4  r=4, k=2, n=6 • Obtener todas las palabras código. • DETALLES: • Cualquier palabra código rotada es otra palabra código. • En este caso se obtiene un código SISTEMÁTICO. • La matriz generadora sería: Dr. J.R. Cerquides Universidad de Sevilla 31 Entrada b(x) c(x) Salida 00 0 0 000000 01 x x+x3+x5 010101 10 1 1+x2+x4 101010 11 1+x 1+x+x2+x3+x4+x5 111111 1 0 1 0 1 0 0 1 0 1 0 1 G
  • 31. Decodificación de un código cíclico • Para calcular el síndrome s(x) basta obtener el resto de la división entre la palabra recibida y el polinomio generador g(x). • Si el polinomio recibido es r(x)=c(x)+e(x), s(x)=(r(x))g(x)=(c(x)+e(x))g(x)=(e(x))g(x) • EJEMPLO: g(x) = 1+x2+x3+x4 b = [0 1 1]  c = [0 1 1 1 0 0 1] Si r = [0 1 1 1 0 0 0]  r(x) = x+x2+x3 s(x)=x+x2+x3  e(x)=x6  c’ = [0 1 1 0 0 1] Dr. J.R. Cerquides Universidad de Sevilla 32 Es necesario disponer de una tabla de síndromes, aunque existen otras alternativas
  • 32. Tabla de síndromes para códigos cíclicos Dr. J.R. Cerquides Universidad de Sevilla 33 Error e(x) s(x) Síndrome 1000000 1 1 1000 0100000 x x 0100 0010000 x2 x2 0010 0001000 x3 x3 0001 0000100 x4 1+x2+x3 1011 0000010 x5 1+x+x2 1110 0000001 x6 x+x2+x3 0111 Si el último bit del síndrome es 1, al desplazar (multiplicar por x) habrá que recalcular el residuo. Error e(x) s(x) Síndrome 0001000 x3 x3 0001 0000100 x4 1+x2+x3 1011 0000001 x6 x+x2+x3 0111 Esta propiedad acorta la tabla y los tiempos de búsqueda.
  • 33. Códigos BCH y RS • Algunas de las familias de códigos cíclicos más famosos son los códigos BCH (Bose Chaudhuri Hocquenghem) o RS (Reed Solomon). • Códigos BCH • Más conveniente para errores independientes. • Parámetros: • Longitud del bloque: n=2m-1 m>=3 • Bits de información: k≥n-m· t • Distancia mínima: d≥2· t+1 • Códigos RS • Variante del BCH, operando con símbolos no binarios. • Más apropiada para ráfagas de errores • Parámetros: • Bits por símbolo: m • Longitud del bloque: n=2m-1 símbolos • Símbolos de información: k=n-2t símbolos • Capacidad correctora: t símbolos • Distancia mínima: d≥(2· t+1) símbolos Dr. J.R. Cerquides Universidad de Sevilla 34
  • 34. Ejemplo de diseño y uso BCH (MATLAB) • m=4, t=1  n=15, k=15-4· t=11  Código (15,11) • Hay otras alternativas: bchnumerr(15) • Generación del polinomio: bchgenpoly(15,11) g(x) = 1 + x3 + x4 • Codificación de los datos: bchenc(gf([01010101010],1),15,11) c=[01010101010 0100] • Introducción de un error: r=c;r(1)=1 r=[11010101010 0100] • Decodificación: [d,num]=bchdec(r,15,11) d=[01010101010 0100] • m=4, t=2  n=15, k=15-4· t=7  Código (15,7) • Generación del polinomio: bchgenpoly(15,7) g(x) = 1 + x+x2 + x4 + x8 • Codificación de los datos: bchenc(gf([0101010],1),15,7) c=[0101010 00011010] • Introducción de dos errores: r=c;r(1)=1;r(2)=0; r=[1001010 00011010] • Decodificación: [d,num]=bchdec(r,15,7) d=[0101010] • Introducción de tres errores: r=c;r(1)=1;r(2)=0;r(3)=1; • Decodificación: [d,num]=bchdec(r,15,7) d=[1011110] Dr. J.R. Cerquides Universidad de Sevilla 35
  • 35. Campos de Galois y códigos RS • Para generar un GF(2m) es necesario encontrar un polinomio binario PRIMITIVO pm(x) que verifique: • pm(x) es IRREDUCIBLE o PRIMO (no factorizable) • El menor n para que pm(x) divida a xn+1 es 2m-1 • EJEMPLO: • Para m=2  n=3, p2(x) = x2+x+1, pues x3+1 = p2(x)(x+1) • Una vez tenemos pm(x) podemos generar el GF. Sus elementos serán 0,α0, α1, α2… αn-1, definidos como en el ejemplo. • EJEMPLO: • Para m=3  n=7, p3(x) = x3+x+1 Dr. J.R. Cerquides Universidad de Sevilla 36 Elemento Polinomio Código Elemento Polinomio Código 0 0 000 (0) α3 α+1 011 (3) α0 1 001 (1) α4 α2+α 110 (6) α1 α 010 (2) α5 α2+α+1 111 (7) α2 α2 100 (4) α6 α2+1 101 (5)
  • 36. Ejemplo de diseño y uso RS (MATLAB) • m=3 bits/símbolo  GF(23) {n=7, k=5, t=1} símbolos • Generación del polinomio: [g,t]=rsgenpoly(7,5) g(x)=x2+α4x+α3 • Codificación de los datos: rsenc(gf([0 0 0 0 3],3),7,5) • b = [0 0 0 0 3] = [000 000 000 000 011]  b(x) = α3 = α+1. Para que sea sistemático: (xn-k·b(x))g(x) nos da la redundancia  c = [0 0 0 0 3 1 5] = [000 000 000 000 011 001 101] • Introducción de un error de símbolo (un bit):r=c;r(1)=4; • Decodificación: d=rsdec(r,7,5) d = [0 0 0 0 3] • Introducción de un error de símbolo (3 bits):r=c;r(1)=7; • Decodificación: d=rsdec(r,7,5) d = [0 0 0 0 3] • Introducción de un error en dos símbolos:r=c;r(1)=4;r(2)=1; • Decodificación: d=rsdec(r,7,5) d = [4 1 0 0 5] Dr. J.R. Cerquides Universidad de Sevilla 37 3 2 7 6 3 2 2 2 4 3 2 4 3 ( ) 1 1 x x c x x x x x x x
  • 37. Modificando códigos • A partir de un código se pueden derivar versiones modificadas. Esto permite generar códigos… • AUMENTADOS: (n,k)(n,k+1) r↓ • EXPURGADOS: (n,k)(n,k+1) r↑ • EXTENDIDOS: (n,k)  (n+1,k) r↑ • PERFORADOS. (n,k)  (n-1,k) r↓ • ALARGADOS: (n,k)  (n+1,k+1), r = • ACORTADOS: (n,k)  (n-1,k-1) r= Dr. J.R. Cerquides Universidad de Sevilla 38
  • 38. Implementación de codificadores. Ejemplo • Es posible implementar los codificadores: • Software (DSPs, μC, μP…) • Hardware (FPGA, VHDL…) • EJEMPLO: Producto b(x)g(x) • Polinomio generador: g(x) = x3 + x + 1 • Mensaje: b = [0 1 0 1]  b(x) = x2 + 1 • c(x) = g(x)b(x) = x5 + x2 + x + 1  c = [0 1 0 0 1 1 1] Dr. J.R. Cerquides Universidad de Sevilla 39
  • 39. EJEMPLO (cont.) Dr. J.R. Cerquides Universidad de Sevilla 40
  • 40. Implementación de codificadores • EJEMPLO: (xn-kb(x))g(x) • Polinomio generador: g(x) = x3 + x + 1 • Mensaje: b = [0 1 0 1]  b(x) = x2 + 1 • r(x) = (xn-kb(x))g(x) • c(x) = xn-kb(x)+(xn-kb(x))g(x) = x5 + x3 + x2  c = [0 1 0 1 1 0 0] Dr. J.R. Cerquides Universidad de Sevilla 41
  • 41. EJEMPLO (cont.) Dr. J.R. Cerquides Universidad de Sevilla 42 Resto = x2
  • 42. Prestaciones de los códigos bloque • Procedimiento a seguir: • Determinar dmin: • Menor número de 1’s de una palabra código distinta de 0 • Calcular Pe,s y BER: 1/k·Pe,s ≤ BER ≤ Pe,s • Obtener la ganancia de codificación • El procedimiento es habitualmente muy complejo, especialmente para valores de n elevados y requiere simulación. Dr. J.R. Cerquides Universidad de Sevilla 43 , 0 1 1 t n ii e s i n P p p i
  • 43. Simulaciones Dr. J.R. Cerquides Universidad de Sevilla 44 BER obtenida por distintos códigos BCH para un canal con pe = 0,0563  C = 0,6874 Tasa máxima dada una BER ● Hamming (7,4) ○ BCH (15,k) ▼BCH(31,k) □ BCH(63,k) ► BCH(127,k) ·-· BCH (255,k) --- BCH (511,k) ▬ BCH (1023,k)
  • 44. Simulaciones Dr. J.R. Cerquides Universidad de Sevilla 45 BER obtenida por distintos códigos BCH para un canal con modulación BPSK, en función de la SNR ·-· BCH (63,30) ··· BCH (127,64) --- BCH (255,131) ·-· BCH (511,259) ▬ BCH (1023,513)
  • 45. Aplicaciones de los códigos de bloque • Almacenamiento de datos: CD, DAT, DVD… • En CD se utilizan dos versiones acortadas de un (255,251): uno interno (32,28) y uno externo (28,24). En conjunto pueden corregir ráfagas de hasta 4000 bits erróneos (2,5 mm). • En DVD el procedimiento es semejante, con código interno (208,192) y externo (182,172). Dr. J.R. Cerquides Universidad de Sevilla 46
  • 46. Aplicaciones de los códigos de bloque (II) • Códigos de barras: • PDF-417, MaxiCode, Datamatrix, QR y Aztec usan códigos Reed-Solomon a diferentes niveles. Dr. J.R. Cerquides Universidad de Sevilla 47
  • 47. Aplicaciones de los códigos de bloque (III) • Comunicaciones: • G-709 (interfaz para transporte óptico) emplea un código RS (255,239). • DVB-T, C, S utiliza un código RS (204,188) resultado de acortar el anterior (255,239). • Las imágenes enviadas por el Voyager utilizan codificación RS. Dr. J.R. Cerquides Universidad de Sevilla 48
  • 48. Conclusiones • A los códigos BCH/RS les cuesta acercarse a la capacidad del canal, y necesitarían valores de n muy elevados  retardos, complejidad. • Son códigos competitivos para R≈ 1 y tamaños pequeños (n<1000). • Los algoritmos de decodificación sólo son correctos siempre que el número de errores no exceda de la capacidad correctora del código. • Los códigos BCH son más adecuados para errores aislados/dispersos • Los códigos RS son más adecuados para errores en ráfaga. Dr. J.R. Cerquides Universidad de Sevilla 49
  • 49. Codificación convolucional • A diferencia de los códigos bloque, los codificadores convolucionales involucran un sistema con memoria. • EJEMPLO: (D hace las veces de retardo ==z-1) Dr. J.R. Cerquides Universidad de Sevilla 50 0 0 0 0 0 03 1 03 2 1 3 1 1 C l B l B l B l C D D D B D C D D D D B D
  • 50. Notación matricial • Agrupando los términos en matrices: • EJEMPLO: • Definiciones: • Mt = memoria total del código = número de retardos • K = restricción de longitud = máxima longitud de la respuesta impulsional = 1 + máxima potencia de D • En los ejemplos anteriores: Mt = 3 y 2, K = 4 y 2 Dr. J.R. Cerquides Universidad de Sevilla 51 0 1 0 3 3 2 1 1C D C D B D D D D D D D D DC B G G(D) = Matriz generadora del código 1 1 1 D D D D D G
  • 51. Diagrama de estados • Puede representarse un diagrama de estados para el codificador. Dr. J.R. Cerquides Universidad de Sevilla 52
  • 52. Trellis del codificador Dr. J.R. Cerquides Universidad de Sevilla 53
  • 53. Bits de flushing • En ocasiones, cuando la transmisión es en ráfagas, además de especificar el estado inicial, conviene especificar también el estado final, para aumentar la capacidad correctora. • Para ello se añaden bits 0 de “flushing” que lleven al codificador nuevamente al estado inicial ψ0. • EJEMPLO: Dr. J.R. Cerquides Universidad de Sevilla 54 3 bits de flushing llevan al codificador al estado ψ0
  • 54. Decodificación por Viterbi • El decodificador funciona igual que en el MLSD pero tomando distancia de Hamming en lugar de probabilidades para evaluar los pesos de cada rama. • EJEMPLO: n=2, k=1, Mt = 2, K=3 Dr. J.R. Cerquides Universidad de Sevilla 55 2 2 1 1D D D DG
  • 55. Ejemplo de decodificación (dura) • Estado inicial y final (flushing): ψ0 = 00 • Secuencia de entrada: 110101 • Secuencia codificada: 1110100001000111 • Secuencia recibida: 1010100101010111 Dr. J.R. Cerquides Universidad de Sevilla 56 ψ0 ψ0 ψ1 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ2 ψ0 10 10 10 01 01 01 01 11 1 1 2 2 3 1 3 3 4 4 4 21 3 4 4 3 5 2 2 4 2 3 3 2 4 4 4 2 4 4 4 3 5 3 3 4 2 4 3 4 4 6 3 1 1 0 1 0 1 Flushing
  • 56. Códigos catastróficos • Si existe algún bucle que pueda generar una secuencia de 0’s indefinida a la salida sin ser el bucle ψ0  ψ0 decimos que el código es CATASTRÓFICO. • El problema es que, si un error nos llevase a esa situación, una secuencia de 00’s continuada no nos devuelve a ψ0 sino que nos mantiene en el bucle erróneo. • EJEMPLO: Dr. J.R. Cerquides Universidad de Sevilla 57
  • 57. Códigos perforados (punctured codes) • En ocasiones, para reducir la redundancia, se “perfora” la salida del código, eliminando bits de salida según un patrón específico. • La perforación realizada se indica mediante una matriz P • EJEMPLO: Se perfora un código de tasa r=1/2 con un patrón de perforación P = [1 1 0; 1 0 1]. Nueva tasa r=3/4 Dr. J.R. Cerquides Universidad de Sevilla 58 1 0 1 1 1 0 0 0 1 P        Cada fila indica cómo se perfora una salida: 0 indica que el bit se elimina El nº de columnas indica el período de repetición del patrón
  • 58. Ejemplo de decodificación con perforado • Estado inicial y final (flushing): ψ0 = 00 • Secuencia de entrada: 110101, P=[10;11] • Secuencia codificada: 11 X0 10 X0 01 X0 01 X1 • Secuencia recibida: 10 X0 10 X1 01 X1 01 X1 Dr. J.R. Cerquides Universidad de Sevilla 59 ψ0 ψ0 ψ1 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ1 ψ3 ψ2 ψ0 ψ2 ψ0 10 X0 10 X1 01 X1 01 X1 1 1 1 2 2 1 2 2 3 3 4 21 3 3 2 2 3 1 2 3 2 2 2 2 4 3 3 2 4 3 2 2 3 2 3 3 2 3 2 3 4 4 2 1 1 0 0 0 1 Flushing
  • 59. Prestaciones de los códigos convolucionales • Los mejores códigos se obtienen experimentalmente. • Es difícil determinar sus prestaciones de forma analítica. Se suele recurrir a simulación. • Aunque los ejemplos se han utilizado decodificadores “hard” se obtienen mejores prestaciones con decodificadores “soft”. Esto añade poca complejidad al Viterbi, pues basta sustituir distancias de Hamming por distancias euclídeas. • La complejidad del decodificador crece exponencialmente con la memoria, por lo que se suelen utilizar secuencias cortas. Dr. J.R. Cerquides Universidad de Sevilla 60 ● BCHs r ≈ ½, n=7..1023 ○ Convolucionales r=1/2, K=6..12
  • 60. Aplicaciones de los códigos convolucionales • Concatenados con códigos de bloque, por ejemplo en DVB-S, DVB-C, DVB-T o en GSM, con r variable. • Radioenlaces y comunicaciones vía satélite. • Bucle de abonado: ADSL2+ y SHDSL. Dr. J.R. Cerquides Universidad de Sevilla 61
  • 61. Codificación avanzada • Los problemas que encontramos en la utilización de los codificadores propuestos son fundamentalmente los siguientes: • BCH y RS: El problema es el elevado número de palabras que no son capaces de corregir los algoritmos eficientes de decodificación (Berlekamp-Massey). • EJEMPLOS: • Código BCH (15,11)(Hamming): t=1 • Código BCH (15,7): t=2 • Código BCH (63,45): t=3 Dr. J.R. Cerquides Universidad de Sevilla 62 11 15 2 1 15Palabras decodificables 1 Total palabras posibles 2 Perfecto 7 15 2 1 15 105Palabras decodificables 0,47 Total palabras posibles 2 45 63 2 1 63 1953 39711Palabras decodificables 0,16 Total palabras posibles 2
  • 62. Codificación avanzada (II) • Códigos convolucionales • La complejidad y la memoria requeridas por el decodificador de Viterbi aumenta exponencialmente con la longitud de los códigos y el número de estados. • Existen otros tipos de decodificadores cuyo coste de decodificación es lineal. Esto da lugar a los “códigos turbo” y los códigos LDPC (low density parity check). • Aunque son subóptimos en distancia mínima, al poder incrementar la longitud sin problemas, permiten aproximarse a la capacidad de canal. • Debido a la complejidad los algoritmos quedan fuera del ámbito de la asignatura. Dr. J.R. Cerquides Universidad de Sevilla 63
  • 63. Simulaciones Dr. J.R. Cerquides Universidad de Sevilla 64 Prestaciones turbocódigos (decodif. “soft”) Prestaciones códigos convolucionales (decodif. “soft”)
  • 64. Simulaciones Dr. J.R. Cerquides Universidad de Sevilla 65 Prestaciones LDPC “soft” ── “hard” - - - Prestaciones códigos convolucionales “soft” ── “hard” - - -
  • 65. Simulaciones Dr. J.R. Cerquides Universidad de Sevilla 66 ● BCHs r ≈ ½, n=7..1023 x Conv. r=1/2, K=6..12 ○ LDPC r=1/2, n=100…20000
  • 66. Aplicaciones de turbocódigos • Telefonía móvil: UMTS, HSPA, EV-DO y LTE. • MediaFLO, un sistema terrestre de distribución de televisión. • Canal de retorno vía satélite: DVB-RCS • Mars Reconnaissance Orbiter (NASA). • IEEE 802.16 (WiMAX) Dr. J.R. Cerquides Universidad de Sevilla 67
  • 67. Aplicaciones códigos LDPC • G.hn/G.9960 (networking over power lines, phone lines and coaxial cable) • 802.3an (10 Giga-bit/s Ethernet over Twisted pair) • CMMB(China Multimedia Mobile Broadcasting) • DVB-S2 / DVB-T2 / DVB- C2 (2nd Generation) • DMB-T/H • WiMAX • IEEE 802.11n-2009 (Wi-Fi standard) Dr. J.R. Cerquides Universidad de Sevilla 68
  • 68. Conclusiones • Las técnicas de codificación permiten mejorar las prestaciones de los canales para aproximarse al límite de Shannon o capacidad de canal. • Hemos comenzado presentado los fundamentos de la codificación. • Hemos analizado los codificadores y decodificadores de bloque lineales, para pasar luego a los códigos cíclicos (RS y BCH fundamentalmente). • Introdujimos los códigos convolucionales y la técnica de decodificación por Viterbi. • Finalmente hemos visto técnicas de codificación avanzada: turbo códigos y códigos LDPC. Dr. J.R. Cerquides Universidad de Sevilla 69
  • 69. Referencias • Comunicaciones digitales, • Antonio Artés, Fernando Pérez, cap. 9.2.3 y 10 completo. • Communication Systems, 4th ed. • Simon Haykin, John Wiley & Sons, 2000. • Capítulo 10. • Digital Communications, 4th ed. • John G. Proakis, McGraw-Hill, 2001. • Capítulos 7 y 8 • Digital Communications • Sklar • Capítulos 6 y 7 Dr. J.R. Cerquides Universidad de Sevilla 70