TEMA 5
TECNICAS DE PROTECCION FRENTE A ERRORES(CODIFICACION DE CANAL)
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 1 / 38
Indice
Introduccion y definicionesCodigos bloque linealesCodigos convolucionalesCodigos de rejillaCodigos BCH y codigos RSProteccion frente a ruido impulsivo: intercalado yconcatenacion de codigosEsquemas avanzados de codificacion
Turbo codificacionCodigos LDPC
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 2 / 38
Introduccion
Los sistemas de comunicaciones comenten erroresObjetivo de un sistema de comunicaciones
BER < CalidadAlternativas para reduccion de los errores
Aumentar la energıa de la senalLimitaciones: Econonicas, fısicas, legales, interferencias, ...
Teorema de codificacion de canales con ruido (Shannon)Introduccion de bits de redundanciaTasa de codificacion: R (bits de datos/bits transmitidos)Capacidad del canal: C (bits/uso)Posibilidad de reduccion de la BER de forma arbitraria
R < C
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 3 / 38
Capacidad de canal - Canales digitales
Modelo de canal discreto sin memoria (DMC)Entrada y salida: variables aleatorias X e YProbabilidades de transicion pY|X(yj|xi)
Capacidad de canal
C = maxpX(xi)
I(X, Y) bits/uso
Ejemplo: Canal binario simetrico (BER=!)
!
!""""""""""""
"""""""""#$$$$$$$$$$$$
$$$$$$$$$%""""""""""""
!
!
!
!x0
x1
y0
y11! !
1! !
!
!
C = 1! Hb(!) bits/uso
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 4 / 38
Entropıa binaria Hb(p)
Entropıa de una v.a. binaria con pX(x0) = p y pX(x1) = 1! p
Hb(p) = !p · log2(p)! (1! p) log2(1! p)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.10.20.30.40.50.60.70.80.91
.
...................................................................................................
.
..................................................................
.
.....................................................
..............................................
....................................
................................
...........................
. .......................... . ........................ . ....................... . ....................... . ........................ . .......................... ...........................
..
..............................
.....................
.................
........................................
.....
......................................
...............
.
..................................................................
.
...................................................................................................
Probabilidad p
Ent
ropi
abi
naria
Hb(
p)
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 5 / 38
Capacidad de canal - Canal gausiano
Capacidad sobre canal gausiano en las siguientescondiciones:
Potencia transmitida: P watt.Potencia de ruido: PN watt.Ancho de banda: B Hz
C =1n
log M =12
log!
1 +P
PN
"
PN =
# B
!B
No
2df = NoB
C =12
· log!
1 +P
NoB
"bits/uso
C = B · log (1 + SNR) bits/s
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 6 / 38
Cotas
Capacidad en funcion de B
lımB"#
C =PNo
log2(e) = 1,44 · PNo
Sistema de comunicaciones practico
Rb < B · log (1 + SNR) bits/s
Tasa binaria (eficiencia) espectral: " = RbB bits/s/Hz
Energıa media por bit - Eb = PRb
Relacion Eb/N0 = SNR!
" < log (1 + SNR) , " < log!
1 + " · Eb
No
"
SNR > 2! ! 1,Eb
No>
2! ! 1"
Cuando " " 0 EbNo
= ln2 = 0,693 # !1,6 dBMMC (UC3M) Comunicaciones Digitales Codificacion de Canal 7 / 38
Tasa binaria (eficiencia) espectral frente a Eb/N0
!
&
........................................................................................................................................................ .......... ........ .............
............... ......... ........... ............. ........ .......... ........... ............ ............ .............. ............... ............ .............. ................ ............. .............. ................ ............. ............... ................ .............. ............... ................ ............................................101
10!1
1
0 5 10 15 20 EbNo
dB
" = RbB
!1,592
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
.....
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 8 / 38
Relacion senal a ruido normalizada
Cota inferior para SNR
SNR > 2! ! 1
Definicion de SNR normalizada
SNRnorm =SNR
2! ! 1
Cota inferior sobre SNRnorm
SNRnorm > 1 (0 dB)
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 9 / 38
Tipos de codigos
Capacidad del codigoCodigos de deteccion de erroresCodigos de correccion de errores
Mecanismo de introduccion de la redundanciaCodigos bloque
Bloques de k bits se codifican de forma independienteConcepto clave: distancia entre palabras codigo
Codigos convolucionalesCodificacion continua mediante filtrado digital
Estadıstico para la decisionSalida dura: decodificacion a partir de los bits decididos B[#]Salida blanda: decodificacion a partir de la salida deldemodulador q[n]
Mejores prestaciones pero mayor complejidadBorrado de bits: se “marcan” los bits/sımbolos dudosos
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 10 / 38
Ganancia de codificacion
Definicion: diferencia en decibelios entre las relacionesEb/N0 necesarias para alcanzar una determinada BER sincodificar y utilizando la codificacionPermite comparar las prestaciones de distintos codigosDepende de la BER (o de Eb/N0)Puede ser positiva a partir de un cierto valor de Eb/N0
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 11 / 38
Codigos bloque - Definiciones
Codificacion independiente de bloques de k bitsConversion en bloques de n bits " Tasa R = k/n
Definiciones para los bloques de bitsInformacion: bi = [bi[0], bi[1], · · · , bi[k! 1]], i = 0, 1, · · · , 2k ! 1Codificados: ci = [ci[0], ci[1], · · · , ci[n! 1]], i = 0, 1, · · · , 2k ! 1Codificacion: bi " ciDiccionario del codigo: mensaje " palabra codigo
Peso de una palabra codigo w(ci)Numero de unos de la palabra
Distancia de Hamming entre dos palabras codigo dH(ci, cj)Numero de bits diferentes entre ambas palabras
Distancia mınima del codigo: dmin
Mınima distancia de Hamming entre dos palabras codigodistintas
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 12 / 38
Estimador optimo - Salida dura
Observacion condicionada a la transmision de ci
r = ci + e, e = [e[0], e[1], · · · , e[n! 1]]
Modelo probabilıstico del patron de error (BER = !)
pE(e[j]) = !e[j] · (1! !)1!e[j] =
$!, e[j] = 11! !, e[j] = 0
Verosimilitud
pr|c(r|ci) =n!1%
j=0
!r[j]!ci[j] · (1! !)1!(r[j]!ci[j])
Estimador de maxima verosimilitud (ML)
ci = arg mınci
dH(r, ci)
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 13 / 38
Capacidades de deteccion y correccion con salida dura
Distancia mınima del codigo: dmin
Capacidad de deteccion: d = dmin ! 1 erroresCapacidad de correccion:
t =&
dmin ! 12
'errores
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 14 / 38
Estimador optimo - Salida blanda
Constelacion: M sımbolos (m = log2(M) bits/sımboloSecuencia de sımbolos para una palabra codigo
ci " Ai = [Ai[0], Ai[1], · · · , Ai[n$ ! 1]], n$ =nm
Modelo de la observacion condicionada a ci
q = Ai + e, e = [e[0], e[1], · · · , e[n$ ! 1]]
Modelo probabilıstico del error: fE(e[j]) = N(0, "2z )
Verosimilitud: fq|A(q|Ai) = N(Ai, "2z )
Estimador de maxima verosimilitud
c = arg mıni
de(q, Ai)
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 15 / 38
Codigos bloque lineales
Codigo C(k, n)
Base del codigo: k palabras codigo linealmenteindependientes
{g0, g1, · · · , gk!1}gi = [gi[0], gi[1], · · · , gi[n! 1]]
Palabra codigo: combinacion lineal de las k bases
ci = bi[0] · g0 + bi[1] · g1 + · · · + bi[k ! 1] · gk!1
Propiedadesc0 = 0 = [0, 0, · · · , 0] pertenece al codigoTodos los elementos de la base pertenencen al codigoToda combinacion lineal de palabras codigo $ C(k, n)Todas las palabra tienen a otra palabra a distancia dmindmin = mın
ci %=c0w(ci)
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 16 / 38
Matriz generadora del codigo
Agrupacion de la base en una matriz k % n
G =
(
)))*
g0g1...
gk!1
+
,,,-=
(
)))*
g0[0] g0[1] · · · g0[n! 1]g1[0] g1[1] · · · g1[n! 1]
...... . . . ...
gk!1[0] gk!1[1] · · · gk!1[n! 1]
+
,,,-
Obtencion de las palabras codigo
ci = bi · G
Codigos sistematicos: el mensaje bi forma parte de ci
ci = [bi|pi] " G = [Ik|P]
ci = [pi|bi] " G = [P|Ik]
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 17 / 38
Matriz generadora del codigo - Ejemplo
Codigo C(2, 5)
G =
.0 1 1 1 01 0 1 0 1
/
Palabras codigobi ci
0 0 0 0 0 0 00 1 1 0 1 0 11 0 0 1 1 1 01 1 1 1 0 1 1
Codigo sistematico
Distancia mınima del codigo: dmin = 3Detecta 2 erroresCorrige 1 error
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 18 / 38
Matriz generadora del codigo - Ejemplo
Codigo C(2, 5)
G =
.0 1 1 1 01 0 1 0 1
/
Palabras codigobi ci
0 0 0 0 0 0 00 1 1 0 1 0 11 0 0 1 1 1 01 1 1 1 0 1 1
Codigo sistematicoDistancia mınima del codigo: dmin = 3
Detecta 2 erroresCorrige 1 error
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 18 / 38
Matriz de chequeo de paridad
Matriz (n! k)% n: complemento ortogonal de G
G · HT = 0 matriz de k % (n! k) ceros
Codigos sistematicos
G = [Ik|P] " H = [PT |In!k]
G = [P|Ik] " H = [In!k|PT ]
Identificacion de palabras codigo
ci · HT = bi · G · HT = 0 vector de n! k ceros
Decodificacion mediante sındromeModelo de transmision: r = ci + e (e: patron de error)Sındrome
s = r · HT = (ci + e) · HT = e · HT
Decodificacion: Tabla de sındromesMMC (UC3M) Comunicaciones Digitales Codificacion de Canal 19 / 38
Matriz de chequeo de paridad - Ejemplo
G =
.0 1 11 0 1
00001 00 1
/" H =
(
*1 0 00 1 00 0 1
000000
0 11 01 1
+
-
Tabla de sındromese s
0 0 0 0 0 0 0 01 0 0 0 0 1 0 00 1 0 0 0 0 1 00 0 1 0 0 0 0 10 0 0 1 0 0 1 10 0 0 0 1 1 0 1
¿? 1 1 0¿? 1 1 1
110 " e1 = 11000, e2 = 00011, e3 = 10110, e4 = 01101Posibilidad: elegir uno de los dos patrones de dos errores
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 20 / 38
Matriz de chequeo de paridad - Ejemplo
G =
.0 1 11 0 1
00001 00 1
/" H =
(
*1 0 00 1 00 0 1
000000
0 11 01 1
+
-
Tabla de sındromese s
0 0 0 0 0 0 0 01 0 0 0 0 1 0 00 1 0 0 0 0 1 00 0 1 0 0 0 0 10 0 0 1 0 0 1 10 0 0 0 1 1 0 1
¿? 1 1 0¿? 1 1 1
110 " e1 = 11000, e2 = 00011, e3 = 10110, e4 = 01101Posibilidad: elegir uno de los dos patrones de dos errores
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 20 / 38
Matriz de chequeo de paridad - Ejemplo
G =
.0 1 11 0 1
00001 00 1
/" H =
(
*1 0 00 1 00 0 1
000000
0 11 01 1
+
-
Tabla de sındromese s
0 0 0 0 0 0 0 01 0 0 0 0 1 0 00 1 0 0 0 0 1 00 0 1 0 0 0 0 10 0 0 1 0 0 1 10 0 0 0 1 1 0 1
¿? 1 1 0¿? 1 1 1
110 " e1 = 11000, e2 = 00011, e3 = 10110, e4 = 01101Posibilidad: elegir uno de los dos patrones de dos errores
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 20 / 38
Ventaja de trabajar con G y H
Numero de palabras del codigo: 2k
k = 2, n = 5: 4 palabrask = 247, n = 255: 2247 # 2,26 · 1074 palabras
Numero de sındromes posiblesk = 2, n = 5 (t = 1): 8 sındromesk = 247, n = 255 (t = 1): 256 sındromes
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 21 / 38
Metodo de eliminacion - Ejemplo
Sustitucion de filas por combinaciones lineales de otras1a fila: 1a+2a filas2a fila: 1a fila
Codigo C(2, 5)
G =
.1 1 0 1 10 1 1 1 0
/
Palabras codigobi ci
0 0 0 0 0 0 00 1 0 1 1 1 01 0 1 1 0 1 11 1 1 0 1 0 1
Mismas palabras codigos / distintas asignacionesLa misma matriz H es valida para generar la tabla desındromes
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 22 / 38
Lımite de Hamming
Numero de sındromes con redundancia r = n! k:
2n!k = 2r
Lımite de Hamming para corregir t errores
r & log2 V(n, t), V(n, t) =t1
j=0
!nj
"
V(n, t): Esfera de Hamming de radio tInterpretacion con numero de sındromes disponibles
!00
"+
!n1
"+ · · · +
!nt
"' 2r
Igualdad: Codigos perfectosMMC (UC3M) Comunicaciones Digitales Codificacion de Canal 23 / 38
Codigos perfectos
Codigos de repeticion (decision por mayorıa)n impar, k = 1, t = (n! 1)/2
Codigos de Hammingn = 2m ! 1, k = 2m ! m! 1, t = 1Matriz de chequeo: en las columnas aparecen todas lasposibles combinaciones binarias de (n! k) bits, excepto latodo ceros
Ejemplo: Codigo Hamming (4,7)
H =
(
*1 0 0 0 1 1 10 1 0 1 0 1 10 0 1 1 1 0 1
+
-
Codigo de Golayn = 23, k = 11, t = 3
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 24 / 38
Prestaciones - Decodificacion dura
Probabilidad de error de bit (BER): !Se comenten errores cuando se excede la capacidad decorreccion del codigoCodigo de correccion de t errores
Pe =n1
j=t+1
!nj
"· !j · (1! !)n!j
Codigos que corrigen todos los patrones de t errores y apatrones de t + 1 errores
Pe =
.!n
t + 1
"! a
/·!t+1 · (1!!)n!t!1 +
n1
j=t+2
!nj
"·!j · (1!!)n!j
Codificacion tipo Gray o pseudo-Gray
BER # 1k
Pe
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 25 / 38
Prestaciones - Decodificacion blanda
Probabilidad de error
Pe # c · Q
2de
min
23
N0/2
4
demin: mınima distancia euclıdea entre las secuencias de
sımbolos correspondientes a dos palabras codigodiferentesc: maximo numero de palabras de distancia mınima de unadada
Modulaciones binarias
de(ci, cj) = d(a0, a1)5
dH(ci, cj)
Pe # c · Q
2d(a0, a1)23
N0/2
3dmin
4
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 26 / 38
Codigos cıclicos
Codigos bloque linealesDefinicion: si ci = [ci[0], ci[1], · · · , ci[n! 1]] $ C(k, n),entonces c$i = [ci[1], · · · , ci[n! 1], ci[0]] $ C(k, n)
Caracterizacion mediante un polinomio generador g(x)Codificacion: multiplicacion por el polinomioDecodificacion: division por el polinomioImplementacion mediante registros de desplazamiento
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 27 / 38
Codificacion/Decodificacion
Representaciones polinonicasPolinomio generador: g(x), grado n! kPolinomio de chequeo: h(x), tal que g(x)% h(x) = xn ! 1Palabras mensaje: b(x), grado k ! 1Palabras codigo y recibida: c(x), r(x), grado n! 1Sındrome: s(x), grado n! k ! 1
Codificacion
c(x) = b(x)% g(x) mod xn ! 1
Decodificacion
s(x) = r(x)% h(x) mod xn ! 1
r(x) = a(x)% g(x) + s(x)
Division por g(x) y quedarse con el restoMMC (UC3M) Comunicaciones Digitales Codificacion de Canal 28 / 38
Ejemplo: codigo C(4, 7)
Polinomio generador: g(x) = x3 + x + 1Mensaje: b = [0 1 0 1]" b(x) = x2 + 1Palabra codigo
c(x) = (x2 + 1)% (x3 + x + 1) = x5 + x2 + x + 1
c = [0 1 0 0 1 1 1]
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 29 / 38
Codificacion mediante registros de desplazamiento
n registrosRamas con sumadores: indicadas por el polinomioSe introduce el mensaje bit a bitLa palabra codificada corresponde a los bits en losregistros al final del proceso
! ! "'! ! ! "'! ! ! !
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 30 / 38
Ejemplo b = [0101]
[0 1 0 1]
! 0 ! #'! 0 ! 0 ! #'! 0 ! 0 ! 0 ! 0
[0 1 0 1]
! 1 ! #'! 1 ! 0 ! #'! 1 ! 0 ! 0 ! 0
[0 1 0 1]
! 0 ! #'! 1 ! 1 ! #'! 0 ! 1 ! 0 ! 0
[0 1 0 1]
! 1 ! #'! 1 ! 1 ! #'! 0 ! 0 ! 1 ! 0
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 31 / 38
Codigos de Hamming
Existen implementaciones cıclicasAlgunos ejemplos:
m = 3 (n = 7, k = 4): g(x) = x3 + x + 1m = 4 (n = 15, k = 11): g(x) = x4 + x + 1m = 5 (n = 31, k = 26): g(x) = x5 + x2 + 1m = 6 (n = 63, k = 57): g(x) = x6 + x + 1m = 7 (n = 127, k = 120): g(x) = x7 + x3 + 1m = 8 (n = 255, k = 247): g(x) = x8 + x4 + x3 + x2 + 1m = 9 (n = 511, k = 502): g(x) = x9 + x4 + 1m = 10 (n = 1023, k = 1013): g(x) = x10 + x3 + 1
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 32 / 38
Codigos Golay
k = 12, n = 23, t = 3 (dmin = 7)Codigo cıclico
g1(x) = x11 + x10 + x6 + x5 + x4 + x2 + 1g2(x) = x11 + x9 + x7 + x4 + x3 + x2 + x + 1
Polinomios de chequeo de paridadh1(x) = x12 + x11 + x10 + x9 + x8 + x5 + x2 + 1h2(x) = x12 + x10 + x7 + x4 + x3 + x2 + x + 1
Codigo de Golay extendidoAnade un bit de paridadTasa 1/2 (facilidad de implementacion)Capacidad de corregir el 19 % de patrones de 4 errores
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 33 / 38
Codigos cıclicos sistematicos
Definicion de la palabra codigo
c(x) = b(x)% xn!k + d(x)
d(x) = resto de!
b(x)% xn!k
g(x)
"
Ejemplo: b(x)% x3 = x5 + x3
x5 + x3 = x2 % (x3 + x + 1) + x2 " d(x) = x2
c(x) = x5 + x3 + x2 " c = [0 1 0 1 1 0 0]
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 34 / 38
Division con registros de desplazamiento
n! k registrosRamas con sumadores: indicadas por g(x)Se introduce bit a bit b(x)% xn!k
El resto es el contenido final de los registros
!$%&''! !$%&''
! ! !
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 35 / 38
Ejemplo b = [0101]
[0 1 0 1 0 0 0]
!$%&''0 ! 0 !$%&''! 0 ! 0 !0
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 36 / 38
Ejemplo b = [0101]
[0 1 0 1 0 0 0]
!$%&''1 ! 1 !$%&''! 0 ! 0 !0
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 36 / 38
Ejemplo b = [0101]
[0 1 0 1 0 0 0]
!$%&''0 ! 0 !$%&''! 1 ! 0 !0
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 36 / 38
Ejemplo b = [0101]
[0 1 0 1 0 0 0]
!$%&''1 ! 1 !$%&''! 0 ! 1 !0
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 36 / 38
Ejemplo b = [0101]
[0 1 0 1 0 0 0]
!$%&''0 ! 1 !$%&''! 0 ! 0 !1
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 36 / 38
Ejemplo b = [0101]
[0 1 0 1 0 0 0]
!$%&''0 ! 0 !$%&''! 1 ! 0 !0
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 36 / 38
Ejemplo b = [0101]
[0 1 0 1 0 0 0]
!$%&''0 ! 0 !$%&''! 0 ! 1 !0
Resto: d(x) = x2 (igual que antes)Reduccion de iteraciones: colocar en los registros los datoscorrespondientes a las k primeras iteraciones
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 36 / 38
Decodificador codigos sistematicos
Tomar la parte sistematica y volverla a codificar: d$(x)Definicion del sındrome
s(x) = d(x)! d$(x)
Generacion de tabla de sındromes para decodificacion
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 37 / 38
Limitaciones de los codigos bloque
Tamano de la tabla de sındromes - Crecimientoexponencial
Ejemplo: n = 23, t = 1: 23 entradasEjemplo: n = 23, t = 2: 276 entradasEjemplo: n = 23, t = 3: 2047 entradas
Prestaciones relacionadas con la distancia mınimaSu calculo requiere conocer las palabras del codigoNo hay aproximaciones constructivas para obtener una dmin
MMC (UC3M) Comunicaciones Digitales Codificacion de Canal 38 / 38