0
Tema 4:Codificación de canalDr. José Ramón Cerquides BuenoTeoría de la Señal y ComunicacionesUniversidad de SevillaTransmi...
Dr. J.R. Cerquides Universidad de Sevilla 2Organización• Introducción• Ejemplo• Esquema y definiciones• Códigos de bloque•...
Dr. J.R. Cerquides Universidad de Sevilla 3Introducción• El Teorema de Codificación de Canal (Shannon)establece que:Es pos...
Dr. J.R. Cerquides Universidad de Sevilla 4Ejemplo• Canal binario simétrico con p=0.15C = 0,39 bits/uso de canal• Intentam...
Dr. J.R. Cerquides Universidad de Sevilla 5Ejemplo• La capacidad sería 3C = 1,17 bits si los símbolos deentrada al canal f...
ESQUEMA DE CODIFICADOR YDECODIFICADOR PARA UN CANAL DMCDEFINICIONES(n,k) Descripción usada para referirse al códigok Tamañ...
Definiciones (continuación)Dr. J.R. Cerquides Universidad de Sevilla 7• Alfabeto de entrada: BCompuesto por las 2k posible...
Ejemplo revisitadoDr. J.R. Cerquides Universidad de Sevilla 8• Canal BSC con p=0,15• Vamos a diseñar un codificador con n=...
Ejemplo revisitadoDr. J.R. Cerquides Universidad de Sevilla 9• A cada una de las 2k palabras código les correspondeun conj...
Resultado para diferentes valores de n• La gráfica muestra laevolución de la pe deuna palabra código amedida que n aumenta...
Más definiciones• Probabilidad de error de una palabra código:• Probabilidad de error media de un código:• Probabilidad de...
Retos• En realidad querríamos encontrar una FORMASISTEMÁTICA de construir códigos para los que:• La codificación sea senci...
• Sistema binario BPSK, B={0,1}, C={00,11} (repetición)• Símbolos {-1,+1} Comparación decodificador blando y duro• Decodi...
Ganancia de codificación• Diferencia entre la relación SNR necesaria paraalcanzar cierta BER con y sin sistema de codifica...
• Sistema binario BPSK, B={00,01,10,11}, C={000,011,101,110}• Sin codificador• Para BER = 10-6 Otro ejemploDr. J.R. Cerqu...
BER y Ganancia de codificación• Decodificador HARD• Para BER = 10-6• GHARD = -2,14dB• Decodificador SOFT• Para BER = 10-6•...
Comparación decodificadoresDr. J.R. Cerquides Universidad de Sevilla 17-101-101-1-0.500.51101000110011Bit 1Bit 2Bit 3-101-...
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...
Códigos de bloque• Los códigos de bloque estructuran los datos enBLOQUES de longitud FIJA a los que añadenREDUNDANCIA.• To...
Campos de Galois• Cuerpo finito, campo finito o campo deGalois (Évariste Galois) es un CUERPO que contieneun número finito...
Códigos bloque lineales• Un código bloque es lineal (n,k) si es un s.e.v. dedimensión k de GF(2n).• PROPIEDADES:• Cualquie...
EJEMPLO• k = 2, n=6Dr. J.R. Cerquides Universidad de Sevilla 22Lapalabra 0perteneceal códigodmin = 4011011+110110101101
Generación de un código lineal• Para generar un código lineal basta con una MATRIZGENERADORA G que contenga k vectores lin...
Códigos SISTEMÁTICOS• Los procesos de codificación y decodificación sesimplifican si el código es SISTEMÁTICO (losprimeros...
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índrom...
Capacidad correctora (cota de Hamming)• Un código binario de longitud n con capacidad decorregir (t) errores debe tener un...
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: ...
EJEMPLO• Si c = [0 1 0 0 1]  c(x) = x+x4xc(x) = x2+x5 = 1· (x5+1) + (x2+1)  [1 0 1 0 0]• Para generar un código cíclico ...
Método SISTEMÁTICO• Existe una forma de obtención alternativa que dalugar a un código SISTEMÁTICO (aunque laredundancia pr...
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...
Decodificación de un código cíclico• Para calcular el síndrome s(x) basta obtener el restode la división entre la palabra ...
Tabla de síndromes para códigos cíclicosDr. J.R. Cerquides Universidad de Sevilla 33Error e(x) s(x) Síndrome1000000 1 1 10...
Códigos BCH y RS• Algunas de las familias de códigos cíclicos más famosos son loscódigos BCH (Bose Chaudhuri Hocquenghem) ...
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)•...
Campos de Galois y códigos RS• Para generar un GF(2m) es necesario encontrar un polinomiobinario PRIMITIVO pm(x) que verif...
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]=r...
Modificando códigos• A partir de un código se pueden derivar versionesmodificadas. Esto permite generar códigos…• AUMENTAD...
Implementación de codificadores. Ejemplo• Es posible implementar los codificadores:• Software (DSPs, μC, μP…)• Hardware (F...
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] ...
EJEMPLO (cont.)Dr. J.R. Cerquides Universidad de Sevilla 42Resto = x2
Prestaciones de los códigos bloque• Procedimiento a seguir:• Determinar dmin:• Menor número de 1’s de una palabra código d...
SimulacionesDr. J.R. Cerquides Universidad de Sevilla 44BER obtenida por distintos códigos BCH para un canal conpe = 0,056...
SimulacionesDr. J.R. Cerquides Universidad de Sevilla 45BER obtenida por distintos códigos BCH para un canal conmodulación...
Aplicaciones de los códigos de bloque• Almacenamiento dedatos: CD, DAT,DVD…• En CD se utilizan dosversiones acortadas deun...
Aplicaciones de los códigos de bloque (II)• Códigos de barras:• PDF-417, MaxiCode,Datamatrix, QR yAztec usan códigosReed-S...
Aplicaciones de los códigos de bloque (III)• Comunicaciones:• G-709 (interfaz paratransporte óptico)emplea un códigoRS (25...
Conclusiones• A los códigos BCH/RS les cuesta acercarse a lacapacidad del canal, y necesitarían valores de n muyelevados ...
Codificación convolucional• A diferencia de los códigos bloque, los codificadoresconvolucionales involucran un sistema con...
Notación matricial• Agrupando los términos en matrices:• EJEMPLO:• Definiciones:• Mt = memoria total del código = número d...
Diagrama de estados• Puede representarse un diagrama de estados para elcodificador.Dr. J.R. Cerquides Universidad de Sevil...
Trellis del codificadorDr. 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, convieneespec...
Decodificación por Viterbi• El decodificador funciona igual que en el MLSD perotomando distancia de Hamming en lugar depro...
Ejemplo de decodificación (dura)• Estado inicial y final (flushing): ψ0 = 00• Secuencia de entrada: 110101• Secuencia codi...
Códigos catastróficos• Si existe algún bucle que pueda generar unasecuencia de 0’s indefinida a la salida sin ser el bucle...
Códigos perforados (punctured codes)• En ocasiones, para reducir la redundancia, se“perfora” la salida del código, elimina...
Ejemplo de decodificación con perforado• Estado inicial y final (flushing): ψ0 = 00• Secuencia de entrada: 110101, P=[10;1...
Prestaciones de los códigos convolucionales• Los mejores códigos se obtienenexperimentalmente.• Es difícil determinar susp...
Aplicaciones de los códigos convolucionales• Concatenados concódigos de bloque,por ejemplo enDVB-S, DVB-C,DVB-T o en GSM,c...
Codificación avanzada• Los problemas que encontramos en la utilización delos codificadores propuestos son fundamentalmente...
Codificación avanzada (II)• Códigos convolucionales• La complejidad y la memoria requeridas por el decodificadorde Viterbi...
SimulacionesDr. J.R. Cerquides Universidad de Sevilla 64Prestacionesturbocódigos(decodif. “soft”)Prestacionescódigosconvol...
SimulacionesDr. J.R. Cerquides Universidad de Sevilla 65PrestacionesLDPC“soft” ──“hard” - - -Prestacionescódigosconvolucio...
SimulacionesDr. J.R. Cerquides Universidad de Sevilla 66● BCHs r ≈ ½, n=7..1023x Conv. r=1/2, K=6..12○ LDPC r=1/2, n=100…2...
Aplicaciones de turbocódigos• Telefonía móvil: UMTS,HSPA, EV-DO y LTE.• MediaFLO, un sistematerrestre de distribución dete...
Aplicaciones códigos LDPC• G.hn/G.9960 (networkingover power lines, phonelines and coaxial cable)• 802.3an (10 Giga-bit/sE...
Conclusiones• Las técnicas de codificación permiten mejorar lasprestaciones de los canales para aproximarse allímite de Sh...
Referencias• Comunicaciones digitales,• Antonio Artés, Fernando Pérez, cap. 9.2.3 y 10 completo.• Communication Systems, 4...
Upcoming SlideShare
Loading in...5
×

Tema 4 codificación de canal

1,244

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,244
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
38
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Tema 4 codificación de canal"

  1. 1. Tema 4:Codificación de canalDr. José Ramón Cerquides BuenoTeoría de la Señal y ComunicacionesUniversidad de SevillaTransmisión Digital
  2. 2. Dr. J.R. Cerquides Universidad de Sevilla 2Organización• Introducción• Ejemplo• Esquema y definiciones• Códigos de bloque• Códigos convolucionales• Codificación avanzada• Conclusiones• Referencias
  3. 3. Dr. J.R. Cerquides Universidad de Sevilla 3Introducción• El Teorema de Codificación de Canal (Shannon)establece que:Es posible enviar (con el código adecuado) con unaprobabilidad de error arbitrariamente pequeña si y solosi H(S)·Rs ≤ C·Rc• En este tema vamos a abordar el diseño decodificadores que nos permitan aproximarnos a lacapacidad de canal.
  4. 4. Dr. J.R. Cerquides Universidad de Sevilla 4Ejemplo• Canal binario simétrico con p=0.15C = 0,39 bits/uso de canal• Intentamos mejorar transmitiendo cada símbolo 3veces y decidiendo por mayoría, con la intención deobtener una capacidad 0,39·3 = 1,17 bits.Símbolo 1  Transmitimos 1,1,1Símbolo 0  Transmitimos 0,0,0• La nueva probabilidad de error será:3p2(1-pe)+p3=0,0607que corresponde a una capacidadC = 0,6696 bits < 1,17¿Por qué?
  5. 5. Dr. J.R. Cerquides Universidad de Sevilla 5Ejemplo• La capacidad sería 3C = 1,17 bits si los símbolos deentrada al canal fuesen equiprobables:X = 000,001,010,011,100,101,110,111pero nosotros sólo hemos empleado dos símbolosposibles de entrada:X= 000,111.• Al reducir la entropía a la entrada no puedealcanzarse la capacidad de canal.
  6. 6. ESQUEMA DE CODIFICADOR YDECODIFICADOR PARA UN CANAL DMCDEFINICIONES(n,k) Descripción usada para referirse al códigok Tamaño de las palabras del alfabeto de entrada oLongitud de las palabras de entradan Tamaño de las palabras código oLongitud del códigoR=k/n Tasa de transmisión (o tasa de código)r=n-k RedundanciaEsquema y definicionesDr. J.R. Cerquides Universidad de Sevilla 6
  7. 7. Definiciones (continuación)Dr. J.R. Cerquides Universidad de Sevilla 7• Alfabeto de entrada: BCompuesto por las 2k posibles combinacionesde bits a la entrada.• Palabra código: cCada una de las 2k posibles combinacionesde n bits a la salida del codificador• Diccionario de códigos: CConjunto 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. 8. Ejemplo revisitadoDr. 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 sediferencien entre sí. Por ejemplo, para k=2, podríanser:• En la decodificación elegimos como palabra códigocorrecta aquella que presente mayor similitud conalguna de ellas.
  9. 9. Ejemplo revisitadoDr. J.R. Cerquides Universidad de Sevilla 9• A cada una de las 2k palabras código les correspondeun 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.1178resultado un tanto SORPRENDENTE pues laprobabilidad de error en la transmisión de 2 bits deinformación es menor que en 1 !!!
  10. 10. Resultado para diferentes valores de n• La gráfica muestra laevolución de la pe deuna palabra código amedida que n aumenta.• Si n=1500  pe≈ 3·10-3,k=500  pe,bit ≈ 6·10-6• Relación entre C yR=0.3333• Para p=0.13 (C=0.4426) lacaída es más rápida• Para p=0.17 (C=0.3423) lacaída es muy lenta• Para p=0.19 (C=0.2985) lape sube cuando naumenta.Dr. J.R. Cerquides Universidad de Sevilla 10
  11. 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áspequeñ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⌉) yun valor n0 para el que Pe(máx, n) < ε cuando n > n0.Dr. J.R. Cerquides Universidad de Sevilla 11
  12. 12. Retos• En realidad querríamos encontrar una FORMASISTEMÁ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 deldemodulador, antes del detector.• Hard (o duros) si hacen uso de la señal a la salida deldetector.Dr. J.R. Cerquides Universidad de Sevilla 12Los decodificadores blandos utilizan distancias euclídeas,mientras que los duros utilizan distancias de Hamming
  13. 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 0errores 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 13Bit 1Bit 2110011-1-1Bit 1Bit 2110011-1-10 02 2s bE Ep Q QN N0 02 2s beE Ep Q QN N0 022 2s bE Ep Q QN N
  14. 14. Ganancia de codificación• Diferencia entre la relación SNR necesaria paraalcanzar 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 1460 0 sin cod210 11,3b bE EQN N6HARD0 0 HARD2 10 24 3,26b bE EQ G dBN NSin codificador Codificador HARD Codificador SOFT02 bEQN 02 bEQN02 bEQN6SOFT0 0 SOFT210 11,3 0b bE EQ G dBN N
  15. 15. • Sistema binario BPSK, B={00,01,10,11}, C={000,011,101,110}• Sin codificador• Para BER = 10-6 Otro ejemploDr. J.R. Cerquides Universidad de Sevilla 15-101-101-1-0.500.51101000110011Bit 1Bit 2Bit 30 02 2s bE EBER Q QN N60 0 sin cod210 11,3b bE EQN N
  16. 16. BER y Ganancia de codificación• Decodificador HARD• Para BER = 10-6• GHARD = -2,14dB• Decodificador SOFT• Para BER = 10-6• GSOFT = 1 dBDr. J.R. Cerquides Universidad de Sevilla 16,0 03 22 43 33s bs be sE EE Ep Q QN N0 04 43 33 3b bE EBER Q QN N,0 03 24 83 33s bs be sE EE Ep Q QN N08233 3bEBER QN60 043 10 18,523b bHARDE EQN N60 082 10 8,953b bSOFTE EQN NLa ganancia del decodificador SOFT es siempre mayor quela del decodificador HARD
  17. 17. Comparación decodificadoresDr. J.R. Cerquides Universidad de Sevilla 17-101-101-1-0.500.51101000110011Bit 1Bit 2Bit 3-101-101-1-0.500.51101000110011Bit 1Bit 2Bit 3Decodificador HARD Decodificador SOFT
  18. 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 RDr. J.R. Cerquides Universidad de Sevilla 18Donde antes transmitíamos k símbolos/sahora transmitimos n=k/r símbolos/sSUBE EL BW NECESARIOSi seguimos transmitiendo a la misma velocidadsólo k de cada n son informaciónSE REDUCE LA TASA BINARIADE INFORMACIÓN
  19. 19. Códigos de bloque• Los códigos de bloque estructuran los datos enBLOQUES de longitud FIJA a los que añadenREDUNDANCIA.• Todos los ejemplos vistos son códigos de bloque.• Nos van a interesar especialmente los códigos debloque LINEALES y, entre ellos, los códigosCÍCLICOS.• Vamos a necesitar conceptos de campos de Galois(GF) (Galois Field).Dr. J.R. Cerquides Universidad de Sevilla 19kDATOSn-kREDUNDANCIA
  20. 20. Campos de Galois• Cuerpo finito, campo finito o campo deGalois (Évariste Galois) es un CUERPO que contieneun número finito de elementos.• EJEMPLO: GF(2)a+b = (a+b)2a·b = (a·b)2• EJEMPLO: GF(3)a+b = (a+b)3a·b = (a·b)3Dr. J.R. Cerquides Universidad de Sevilla 20+ 0 1 20 0 1 21 1 2 02 2 0 1× 0 1 20 0 0 01 0 1 22 0 2 1+ 0 10 0 11 1 0× 0 10 0 01 0 1
  21. 21. Códigos bloque lineales• Un código bloque es lineal (n,k) si es un s.e.v. dedimensión k de GF(2n).• PROPIEDADES:• Cualquier combinación lineal de palabras código es palabracódigo.• La palabra 0 pertenece al código• La dmin de un código lineal coincide con el menor númerode 1’s en una palabra código (excepto la 0)• Todas las palabras código poseen otra a distancia dminDr. J.R. Cerquides Universidad de Sevilla 21Las k palabras código forman un s.e.v.
  22. 22. EJEMPLO• k = 2, n=6Dr. J.R. Cerquides Universidad de Sevilla 22Lapalabra 0perteneceal códigodmin = 4011011+110110101101
  23. 23. Generación de un código lineal• Para generar un código lineal basta con una MATRIZGENERADORA G que contenga k vectores linealmenteindependientes  c = b· G• EJEMPLO: Código (5,2)• Cualquier matriz que contenga una base (n-k vectores) delcomplemento ortogonal a G es una MATRIZ DECOMPROBACIÓ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 230 0 1 1 11 1 1 0 0G0 0 0 0 0 0 00 1 1 1 1 0 01 0 0 0 1 1 11 1 1 1 0 1 1b cb cb cb c1 1 0 0 00 1 1 1 00 0 0 1 1H11 1 0 0 0 010 1 1 1 0 000 0 0 1 1 011
  24. 24. Códigos SISTEMÁTICOS• Los procesos de codificación y decodificación sesimplifican si el código es SISTEMÁTICO (losprimeros k bits de la palabra código coinciden con lapalabra 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 241 0 1 0 10 1 0 1 1G1 0 1 0 00 1 0 1 01 1 0 0 1H
  25. 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 unatabla para cada síndrome, consignando el patrón de errorasociado (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 comoerrónea o realizar la decodificación con más de un error.• Un código es PERFECTO si en la tabla no queda ningúnsíndrome por asignar.Dr. J.R. Cerquides Universidad de Sevilla 251 0 01 1 00 1 00 1 10 0 1TH0 0 0 0 1 0 0 10 0 0 1 0 0 1 10 0 1 0 0 0 1 00 1 0 0 0 1 1 01 0 0 0 0 1 0 0Error Síndrome
  26. 26. Capacidad correctora (cota de Hamming)• Un código binario de longitud n con capacidad decorregir (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úmerode vectores que están a distancia ≤ t)• EJEMPLO: ¿Es posible corregir 3 errores en uncó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 260,tjnV n tj301212,3 1 12 66 220 299jVj
  27. 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áticoDr. J.R. Cerquides Universidad de Sevilla 270 1 1 1 1 0 01 0 1 1 0 1 01 1 0 1 0 0 1H1 0 0 0 0 1 10 1 0 0 1 0 10 0 1 0 1 1 00 0 0 1 1 1 1GTodas lascombinacionesrestantes
  28. 28. EJEMPLO• Si c = [0 1 0 0 1]  c(x) = x+x4xc(x) = x2+x5 = 1· (x5+1) + (x2+1)  [1 0 1 0 0]• Para generar un código cíclico se parte de unpolinomio 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=7b = [0 1 1]  b(x)=x+x2c(x)=g(x)b(x) = x+x3+x4+x5+x2+x4+x5+x6c(x) = x+x2+x3+x6  c = [0 1 1 1 0 0 1]Dr. J.R. Cerquides Universidad de Sevilla 29Cociente Resto
  29. 29. Método SISTEMÁTICO• Existe una forma de obtención alternativa que dalugar a un código SISTEMÁTICO (aunque laredundancia 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+x4b = [0 1 1]  b(x)=x+x2d(x) = (x5+x6)g(x) = x3+1c(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 30DatosRedundanciaAsí trabaja MATLAB
  30. 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 31Entrada b(x) c(x) Salida00 0 0 00000001 x x+x3+x5 01010110 1 1+x2+x4 10101011 1+x 1+x+x2+x3+x4+x5 1111111 0 1 0 1 00 1 0 1 0 1G
  31. 31. Decodificación de un código cíclico• Para calcular el síndrome s(x) basta obtener el restode la división entre la palabra recibida y elpolinomio 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+x4b = [0 1 1]  c = [0 1 1 1 0 0 1]Si r = [0 1 1 1 0 0 0]  r(x) = x+x2+x3s(x)=x+x2+x3  e(x)=x6  c’ = [0 1 1 0 0 1]Dr. J.R. Cerquides Universidad de Sevilla 32Es necesario disponer de unatabla de síndromes, aunqueexisten otras alternativas
  32. 32. Tabla de síndromes para códigos cíclicosDr. J.R. Cerquides Universidad de Sevilla 33Error e(x) s(x) Síndrome1000000 1 1 10000100000 x x 01000010000 x2 x2 00100001000 x3 x3 00010000100 x4 1+x2+x3 10110000010 x5 1+x+x2 11100000001 x6 x+x2+x3 0111Si el último bit delsíndrome es 1, aldesplazar (multiplicarpor x) habrá querecalcular el residuo.Error e(x) s(x) Síndrome0001000 x3 x3 00010000100 x4 1+x2+x3 10110000001 x6 x+x2+x3 0111Esta propiedad acortala tabla y los tiemposde búsqueda.
  33. 33. Códigos BCH y RS• Algunas de las familias de códigos cíclicos más famosos son loscódigos BCH (Bose Chaudhuri Hocquenghem) o RS (ReedSolomon).• 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ímbolosDr. J.R. Cerquides Universidad de Sevilla 34
  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)=1r=[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. 35. Campos de Galois y códigos RS• Para generar un GF(2m) es necesario encontrar un polinomiobinario 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 elementosserán 0,α0, α1, α2… αn-1, definidos como en el ejemplo.• EJEMPLO:• Para m=3  n=7, p3(x) = x3+x+1Dr. J.R. Cerquides Universidad de Sevilla 36Elemento Polinomio Código Elemento Polinomio Código0 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. 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 seasistemá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 373 2 7 63 2 22 4 3 2 4 3( ) 1 1x xc x x xx x x x
  37. 37. Modificando códigos• A partir de un código se pueden derivar versionesmodificadas. 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. 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. 39. EJEMPLO (cont.)Dr. J.R. Cerquides Universidad de Sevilla 40
  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. 41. EJEMPLO (cont.)Dr. J.R. Cerquides Universidad de Sevilla 42Resto = x2
  42. 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 requieresimulación.Dr. J.R. Cerquides Universidad de Sevilla 43,01 1tn iie sinP p pi
  43. 43. SimulacionesDr. J.R. Cerquides Universidad de Sevilla 44BER obtenida por distintos códigos BCH para un canal conpe = 0,0563  C = 0,6874Tasa máxima dadauna 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. 44. SimulacionesDr. J.R. Cerquides Universidad de Sevilla 45BER obtenida por distintos códigos BCH para un canal conmodulación BPSK, en función de la SNR·-· BCH (63,30)··· BCH (127,64)--- BCH (255,131)·-· BCH (511,259)▬ BCH (1023,513)
  45. 45. Aplicaciones de los códigos de bloque• Almacenamiento dedatos: CD, DAT,DVD…• En CD se utilizan dosversiones acortadas deun (255,251): uno interno(32,28) y uno externo(28,24). En conjuntopueden corregir ráfagasde hasta 4000 bitserróneos (2,5 mm).• En DVD elprocedimiento essemejante, con códigointerno (208,192) yexterno (182,172).Dr. J.R. Cerquides Universidad de Sevilla 46
  46. 46. Aplicaciones de los códigos de bloque (II)• Códigos de barras:• PDF-417, MaxiCode,Datamatrix, QR yAztec usan códigosReed-Solomon adiferentes niveles.Dr. J.R. Cerquides Universidad de Sevilla 47
  47. 47. Aplicaciones de los códigos de bloque (III)• Comunicaciones:• G-709 (interfaz paratransporte óptico)emplea un códigoRS (255,239).• DVB-T, C, S utilizaun código RS(204,188) resultadode acortar el anterior(255,239).• Las imágenesenviadas por elVoyager utilizancodificación RS.Dr. J.R. Cerquides Universidad de Sevilla 48
  48. 48. Conclusiones• A los códigos BCH/RS les cuesta acercarse a lacapacidad del canal, y necesitarían valores de n muyelevados  retardos, complejidad.• Son códigos competitivos para R≈ 1 y tamañospequeños (n<1000).• Los algoritmos de decodificación sólo son correctossiempre que el número de errores no exceda de lacapacidad correctora del código.• Los códigos BCH son más adecuados para erroresaislados/dispersos• Los códigos RS son más adecuados para errores enráfaga.Dr. J.R. Cerquides Universidad de Sevilla 49
  49. 49. Codificación convolucional• A diferencia de los códigos bloque, los codificadoresconvolucionales involucran un sistema con memoria.• EJEMPLO: (D hace las veces de retardo ==z-1)Dr. J.R. Cerquides Universidad de Sevilla 500 0 0 00 031 03 21 311C l B l B l B lC D D D B DC D D D D B D
  50. 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 larespuesta impulsional = 1 + máxima potencia de D• En los ejemplos anteriores: Mt = 3 y 2, K = 4 y 2Dr. J.R. Cerquides Universidad de Sevilla 510 1 0 3 3 21 1C D C D B D D D D D DD D DC B GG(D) = Matrizgeneradora delcódigo11 1D D DDDG
  51. 51. Diagrama de estados• Puede representarse un diagrama de estados para elcodificador.Dr. J.R. Cerquides Universidad de Sevilla 52
  52. 52. Trellis del codificadorDr. J.R. Cerquides Universidad de Sevilla 53
  53. 53. Bits de flushing• En ocasiones, cuando la transmisión es en ráfagas,además de especificar el estado inicial, convieneespecificar también el estado final, para aumentar lacapacidad correctora.• Para ello se añaden bits 0 de “flushing” que lleven alcodificador nuevamente al estado inicial ψ0.• EJEMPLO:Dr. J.R. Cerquides Universidad de Sevilla 543 bits de flushing llevan al codificador al estado ψ0
  54. 54. Decodificación por Viterbi• El decodificador funciona igual que en el MLSD perotomando distancia de Hamming en lugar deprobabilidades para evaluar los pesos de cada rama.• EJEMPLO:n=2, k=1, Mt = 2, K=3Dr. J.R. Cerquides Universidad de Sevilla 552 21 1D D D DG
  55. 55. Ejemplo de decodificación (dura)• Estado inicial y final (flushing): ψ0 = 00• Secuencia de entrada: 110101• Secuencia codificada: 1110100001000111• Secuencia recibida: 1010100101010111Dr. 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ψ010 10 10 01 01 01 01 11112231334442134435224233244424443533424344631 1 0 1 0 1 Flushing
  56. 56. Códigos catastróficos• Si existe algún bucle que pueda generar unasecuencia 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 esasituación, una secuencia de 00’s continuada no nosdevuelve a ψ0 sino que nos mantiene en el bucleerróneo.• EJEMPLO:Dr. J.R. Cerquides Universidad de Sevilla 57
  57. 57. Códigos perforados (punctured codes)• En ocasiones, para reducir la redundancia, se“perfora” la salida del código, eliminando bits desalida según un patrón específico.• La perforación realizada se indica mediante unamatriz P• EJEMPLO: Se perfora un código de tasa r=1/2 con unpatrón de perforación P = [1 1 0; 1 0 1]. Nueva tasa r=3/4Dr. J.R. Cerquides Universidad de Sevilla 581 0 11 1 00 0 1P   Cada fila indica cómo seperfora una salida: 0 indicaque el bit se eliminaEl nº de columnas indica el período de repetición del patrón
  58. 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 X1Dr. 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ψ010 X0 10 X1 01 X1 01 X1111221223342133223123222243324322323323234421 1 0 0 0 1 Flushing
  59. 59. Prestaciones de los códigos convolucionales• Los mejores códigos se obtienenexperimentalmente.• Es difícil determinar susprestaciones de forma analítica.Se suele recurrir a simulación.• Aunque los ejemplos se hanutilizado decodificadores“hard” se obtienen mejoresprestaciones condecodificadores “soft”. Estoañade poca complejidad alViterbi, pues basta sustituirdistancias de Hamming pordistancias euclídeas.• La complejidad deldecodificador creceexponencialmente con lamemoria, por lo que se suelenutilizar secuencias cortas.Dr. J.R. Cerquides Universidad de Sevilla 60● BCHs r ≈ ½, n=7..1023○ Convolucionales r=1/2, K=6..12
  60. 60. Aplicaciones de los códigos convolucionales• Concatenados concódigos de bloque,por ejemplo enDVB-S, DVB-C,DVB-T o en GSM,con r variable.• Radioenlaces ycomunicaciones víasatélite.• Bucle de abonado:ADSL2+ y SHDSL.Dr. J.R. Cerquides Universidad de Sevilla 61
  61. 61. Codificación avanzada• Los problemas que encontramos en la utilización delos codificadores propuestos son fundamentalmentelos siguientes:• BCH y RS: El problema es el elevado número de palabrasque no son capaces de corregir los algoritmos eficientes dedecodificació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=3Dr. J.R. Cerquides Universidad de Sevilla 6211152 1 15Palabras decodificables1Total palabras posibles 2Perfecto7152 1 15 105Palabras decodificables0,47Total palabras posibles 245632 1 63 1953 39711Palabras decodificables0,16Total palabras posibles 2
  62. 62. Codificación avanzada (II)• Códigos convolucionales• La complejidad y la memoria requeridas por el decodificadorde Viterbi aumenta exponencialmente con la longitud de loscódigos y el número de estados.• Existen otros tipos de decodificadores cuyo coste dedecodificación es lineal. Esto da lugar a los “códigosturbo” y los códigos LDPC (low density paritycheck).• Aunque son subóptimos en distancia mínima, alpoder incrementar la longitud sin problemas,permiten aproximarse a la capacidad de canal.• Debido a la complejidad los algoritmos quedan fueradel ámbito de la asignatura.Dr. J.R. Cerquides Universidad de Sevilla 63
  63. 63. SimulacionesDr. J.R. Cerquides Universidad de Sevilla 64Prestacionesturbocódigos(decodif. “soft”)Prestacionescódigosconvolucionales(decodif. “soft”)
  64. 64. SimulacionesDr. J.R. Cerquides Universidad de Sevilla 65PrestacionesLDPC“soft” ──“hard” - - -Prestacionescódigosconvolucionales“soft” ──“hard” - - -
  65. 65. SimulacionesDr. J.R. Cerquides Universidad de Sevilla 66● BCHs r ≈ ½, n=7..1023x Conv. r=1/2, K=6..12○ LDPC r=1/2, n=100…20000
  66. 66. Aplicaciones de turbocódigos• Telefonía móvil: UMTS,HSPA, EV-DO y LTE.• MediaFLO, un sistematerrestre de distribución detelevisión.• Canal de retorno vía satélite:DVB-RCS• Mars ReconnaissanceOrbiter (NASA).• IEEE 802.16 (WiMAX)Dr. J.R. Cerquides Universidad de Sevilla 67
  67. 67. Aplicaciones códigos LDPC• G.hn/G.9960 (networkingover power lines, phonelines and coaxial cable)• 802.3an (10 Giga-bit/sEthernet over Twisted pair)• CMMB(China MultimediaMobile Broadcasting)• DVB-S2 / DVB-T2 / DVB-C2 (2nd Generation)• DMB-T/H• WiMAX• IEEE 802.11n-2009 (Wi-Fistandard)Dr. J.R. Cerquides Universidad de Sevilla 68
  68. 68. Conclusiones• Las técnicas de codificación permiten mejorar lasprestaciones de los canales para aproximarse allímite de Shannon o capacidad de canal.• Hemos comenzado presentado los fundamentos dela codificación.• Hemos analizado los codificadores y decodificadoresde bloque lineales, para pasar luego a los códigoscíclicos (RS y BCH fundamentalmente).• Introdujimos los códigos convolucionales y la técnicade decodificación por Viterbi.• Finalmente hemos visto técnicas de codificaciónavanzada: turbo códigos y códigos LDPC.Dr. J.R. Cerquides Universidad de Sevilla 69
  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 7Dr. J.R. Cerquides Universidad de Sevilla 70
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×