TEMA 5 TÉCNICAS DE PROTECCIÓN FRENTE A ERRORES (CODIFICACIÓN DE CANAL) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 1 / 99



Documentos relacionados
TEMA 5 TÉCNICAS DE PROTECCIÓN FRENTE A ERRORES (CÓDIGOS CONVOLUCIONALES) Códigos convolucionales. Introducción de la redundancia mediante filtrado

Comunicaciones Digitales - Ejercicios Tema 3

Sistemas de Numeración Operaciones - Códigos

Unidad Didáctica. Códigos Binarios

Tema 1: Sistemas de comunicación digital. Transmisión digital (I.T.T. Telemática)

Tema I. Sistemas Numéricos y Códigos Binarios

Clases 8 y 9: Detección de una señal con ruido. Eytan Modiano. Departamento de aeronáutica y astronáutica

Existen una serie de criterios a tomar en cuenta sobre la información que genera el usuario:

Tema 2. La Información y su representación

QUIERES COMPROBAR CÓMO LAS REDES DETECTAN Y CORRIGEN ERRORES?

Representación de la Información

Polinomios: Definición: Se llama polinomio en "x" de grado "n" a una expresión del tipo

ELECTRÓNICA DIGITAL TEMA 1

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5.

Matemáticas 2º BTO Aplicadas a las Ciencias Sociales

1º) Siempre que se pueda, hay que sacar factor común: :a b ± a c ± a d ± = a (b ± c ± d ± ):

Conceptos y Terminologías en la Transmisión de Datos. Representaciones de Señales.

Tema 1. SISTEMAS DE NUMERACION

TRANSMISION DIGITAL. PCM, Modulación por Codificación de Pulsos

Polinomios y Fracciones Algebraicas

Procesamiento Digital de Imágenes. Compresión de imágenes

Tema 2 : Códigos Binarios

POLINOMIOS. División. Regla de Ruffini.

La suma se realiza miembro a miembro. La suma de polinomios goza de las mismas propiedades que la suma de números. Ejemplo:

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

Comunicaciones Digitales - Ejercicios Tema 6

1. Producto escalar, métrica y norma asociada

Códigos para detección y corrección de errores en comunicaciones digitales

Introducción a los Sistemas Digitales

5.5.- Ruido en comunicaciones

Polinomios y fracciones algebraicas

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

EIE SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos

Práctica 5: Modulaciones digitales

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

Sistemas de numeración

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

Sistemas de Numeración

La división A/B de dos números A (a3a2a1a0) y B (b3b2b1b0) de 4 bits, calculando el cociente Q (q3q2q1q0) y el resto R (r3r2r1r0), puede realizarse

Factorización de polinomios

Laboratorio de Señales y Comunicaciones (LSC) 3 er curso, Ingeniería de Telecomunicación. Curso (1 sesión)

TEMA 2 REPRESENTACIÓN BINARIA

TEMA 2. Sistemas y Códigos de Numeración

Introducción general a la compresión de datos multimedia

Estructuras algebraicas

18. Camino de datos y unidad de control

ARITMÉTICA Y CODIFICACIÓN

Ejemplo: Resolvemos Sin solución. O siempre es positiva o siempre es negativa. Damos un valor cualquiera Siempre + D(f) =

Tema IV. Unidad aritmético lógica

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

Jhon Jairo Padilla Aguilar, PhD.

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Dominios de factorización única

x

CAPÍTULO III. FUNCIONES

Teoría de Información y Codificación Ejercicios adicionales (corresponden a la segunda mitad de la materia)

Introducción a Códigos

Sistemas de numeración

1. Ecuaciones no lineales

by Tim Tran:


Polinomios y fracciones algebraicas

ELECTRÓNICA DIGITAL. Una señal es la variación de una magnitud que permite transmitir información. Las señales pueden ser de dos tipos:

Capítulo 12: Indexación y asociación

Tema: Codificación de canal

3.1 DEFINICIÓN. Figura Nº 1. Vector

OBJETIVOS CONTENIDOS PROCEDIMIENTOS

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

1 Espacios y subespacios vectoriales.

Aritmética finita y análisis de error

Definición Sea K un cuerpo. Un polinomio en x, con coeficientes en K es toda expresión del tipo

1. SISTEMAS DIGITALES

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

1 CÓDIGOS CORRECTORES

TEMA 2: Representación de la Información en las computadoras

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

EL GRADO Y LOS ELEMENTOS QUE FORMAN UN POLINOMIO

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Aritmética binaria

1 v 1 v 2. = u 1v 1 + u 2 v u n v n. v n. y v = u u = u u u2 n.

TEMA 4: Introducción al Control Estadístico de Procesos

Figura 1.12 Señalización analógica y digital de datos analógicos y digitales.

Álgebras de Boole. Juan Medina Molina. 25 de noviembre de 2003

Sistemas de Telecomunicación

Anexo 1: Demostraciones

Programación Lineal Entera

Tema 3: Nivel Enlace.

En cada pregunta, elija una de las 4 opciones.

1. División de polinomios por monomios

T6. CIRCUITOS ARITMÉTICOS

TALLER DE MATEMÁTICAS NOTAS. Toda expresión algebraica del tipo. a n x n + a n 1 x n a 1 x + a 0. es un polinomio de grado n, si a n 0.

ARQUITECTURA DE LAS COMPUTADORAS PRACTICA

Teoría de la Comunicación

Informática Básica: Representación de la información

ANÁLISIS Y SIMULACIÓN DE LA CAPA FÍSICA DEL ESTÁNDAR DVB-T2

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Matrices equivalentes. El método de Gauss

Transcripción:

TEMA 5 TÉCNICAS DE PROTECCIÓN FRENTE A ERRORES (CODIFICACIÓN DE CANAL) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 1 / 99

Índice Introducción y definiciones Códigos bloque lineales Códigos convolucionales Códigos de rejilla Códigos BCH y códigos RS Protección frente a ruido impulsivo: intercalado y concatenación de códigos Esquemas avanzados de codificación Turbo codificación Códigos LDPC MMC (UC3M) Comunicaciones Digitales Codificación de Canal 2 / 99

Introducción Los sistemas de comunicaciones comenten errores Objetivo de un sistema de comunicaciones BER < Calidad Alternativas para reducción de los errores Aumentar la energía de la señal Limitaciones: Econónicas, físicas, legales, interferencias, Teorema de codificación de canales con ruido (Shannon) Introducción de bits de redundancia Tasa de codificación: R (bits de datos/bits transmitidos) Capacidad del canal: C (bits/uso) Posibilidad de reducción de la BER de forma arbitraria R < C MMC (UC3M) Comunicaciones Digitales Codificación de Canal 3 / 99

Capacidad de canal - Canales digitales Modelo de canal discreto sin memoria (DMC) Entrada y salida: variables aleatorias X e Y Probabilidades de transición p Y X (y j x i ) Capacidad de canal C = máx I(X, Y) bits/uso p X (x i ) Ejemplo: Canal binario simétrico (BER=ε) 1 ε x 0 ε ε x 1 1 ε C = 1 H b (ε) bits/uso y 0 y 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 4 / 99

Entropía binaria H b (p) Entropía de una va binaria con p X (x 0 ) = p y p X (x 1 ) = 1 p Entropia binaria Hb(p) H b (p) = p log 2 (p) (1 p) log 2 (1 p) 1 09 08 07 06 05 04 03 02 01 0 0 01 02 03 04 05 06 07 08 09 Probabilidad p 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 5 / 99

Capacidad de canal - Canal gausiano Capacidad sobre canal gausiano en las siguientes condiciones: Potencia transmitida: P watt Potencia de ruido: P N watt Ancho de banda: B Hz C = 1 n log M = 1 ( 2 log 1 + P ) P N B N o P N = B 2 df = N ob C = 1 ( 2 log 1 + P ) bits/uso N o B C = B log (1 + SNR) bits/s MMC (UC3M) Comunicaciones Digitales Codificación de Canal 6 / 99

Cotas Capacidad en función de B lím C = P log B N 2 (e) = 1,44 o Sistema de comunicaciones práctico R b < B log (1 + SNR) bits/s Tasa binaria (eficiencia) espectral: η = R b B bits/s/hz Energía media por bit - E b = P R b Relación E b /N 0 = SNR η Cuando η 0 η < log (1 + SNR), SNR > 2 η 1, E b N o P N o ( ) η < log 1 + η Eb N o E b > 2η 1 N o η = ln2 = 0,693 1,6 db MMC (UC3M) Comunicaciones Digitales Codificación de Canal 7 / 99

Tasa binaria (eficiencia) espectral frente a E b /N 0 η = R b 10 1 B 1 1,592 0 5 10 15 20 10 1 E b N o db MMC (UC3M) Comunicaciones Digitales Codificación de Canal 8 / 99

Relación señal a ruido normalizada Cota inferior para SNR SNR > 2 η 1 Definición de SNR normalizada SNR norm = Cota inferior sobre SNR norm SNR 2 η 1 SNR norm > 1 (0 db) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 9 / 99

Tipos de códigos Capacidad del código Códigos de detección de errores Códigos de corrección de errores Mecanismo de introducción de la redundancia Códigos bloque Bloques de k bits se codifican de forma independiente Concepto clave: distancia entre palabras código Códigos convolucionales Codificación continua mediante filtrado digital Estadístico para la decisión Salida dura: decodificación a partir de los bits decididos ˆB[l] Salida blanda: decodificación a partir de la salida del demodulador q[n] Mejores prestaciones pero mayor complejidad Borrado de bits: se marcan los bits/símbolos dudosos MMC (UC3M) Comunicaciones Digitales Codificación de Canal 10 / 99

Ganancia de codificación Definición: diferencia en decibelios entre las relaciones E b /N 0 necesarias para alcanzar una determinada BER sin codificar y utilizando la codificación Permite comparar las prestaciones de distintos códigos Depende de la BER (o de E b /N 0 ) Puede ser positiva a partir de un cierto valor de E b /N 0 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 11 / 99

Códigos bloque - Definiciones Codificación independiente de bloques de k bits Conversión en bloques de n bits Tasa R = k/n Definiciones para los bloques de bits Información: b i = [b i [0], b i [1],, b i [k 1]], i = 0, 1,, 2 k 1 Codificados: c i = [c i [0], c i [1],, c i [n 1]], i = 0, 1,, 2 k 1 Codificación: b i c i Diccionario del código: mensaje palabra código Peso de una palabra código w(c i ) Número de unos de la palabra Distancia de Hamming entre dos palabras código d H (c i, c j ) Número de bits diferentes entre ambas palabras Distancia mínima del código: d min Mínima distancia de Hamming entre dos palabras código distintas MMC (UC3M) Comunicaciones Digitales Codificación de Canal 12 / 99

Estimador óptimo - Salida dura Observación condicionada a la transmisión de c i r = c i + e, e = [e[0], e[1],, e[n 1]] Modelo probabilístico del patrón de error (BER = ε) { p E (e[j]) = ε e[j] (1 ε) 1 e[j] ε, e[j] = 1 = 1 ε, e[j] = 0 Verosimilitud n 1 p r c (r c i ) = ε r[j] c i[j] (1 ε) 1 (r[j] c i[j]) j=0 Estimador de máxima verosimilitud (ML) ĉ i = arg mín c i d H (r, c i ) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 13 / 99

Capacidades de detección y corrección con salida dura Distancia mínima del código: d min Capacidad de detección: d = d min 1 errores Capacidad de corrección: dmin 1 t = errores 2 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 14 / 99

Estimador óptimo - Salida blanda Constelación: M símbolos (m = log 2 (M) bits/símbolo Secuencia de símbolos para una palabra código c i A i = [A i [0], A i [1],, A i [n 1]], n = n m Modelo de la observación condicionada a c i q = A i + e, e = [e[0], e[1],, e[n 1]] Modelo probabilístico del error: f E (e[j]) = N(0, σ 2 z ) Verosimilitud: f q A (q A i ) = N(A i, σ 2 z ) Estimador de máxima verosimilitud ĉ = arg mín i d e (q, A i ) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 15 / 99

Códigos bloque lineales Código C(k, n) Base del código: k palabras código linealmente independientes {g 0, g 1,, g k 1 } g i = [g i [0], g i [1],, g i [n 1]] Palabra código: combinación lineal de las k bases c i = b i [0] g 0 + b i [1] g 1 + + b i [k 1] g k 1 Propiedades c 0 = 0 = [0, 0,, 0] pertenece al código Todos los elementos de la base pertenencen al código Toda combinación lineal de palabras código C(k, n) Todas las palabra tienen a otra palabra a distancia d min d min = mín c i c 0 w(c i ) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 16 / 99

Matriz generadora del código Agrupación de la base en una matriz k n g 0 g 0 [0] g 0 [1] g 0 [n 1] g 1 G = = g 1 [0] g 1 [1] g 1 [n 1] g k 1 [0] g k 1 [1] g k 1 [n 1] g k 1 Obtención de las palabras código c i = b i G Códigos sistemáticos: el mensaje b i forma parte de c i c i = [b i p i ] G = [I k P] c i = [p i b i ] G = [P I k ] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 17 / 99

Matriz generadora del código - Ejemplo Código C(2, 5) Palabras código G = [ 0 1 1 1 0 1 0 1 0 1 ] b i c i 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 Código sistemático Distancia mínima del código: d min = 3 Detecta 2 errores Corrige 1 error MMC (UC3M) Comunicaciones Digitales Codificación de Canal 18 / 99

Matriz de chequeo de paridad Matriz (n k) n: complemento ortogonal de G Códigos sistemáticos G H T = 0 matriz de k (n k) ceros G = [I k P] H = [P T I n k ] G = [P I k ] H = [I n k P T ] Identificación de palabras código c i H T = b i G H T = 0 vector de n k ceros Decodificación mediante síndrome Modelo de transmisión: r = c i + e (e: patrón de error) Síndrome s = r H T = (c i + e) H T = e H T Decodificación: Tabla de síndromes MMC (UC3M) Comunicaciones Digitales Codificación de Canal 19 / 99

Matriz de chequeo de paridad - Ejemplo [ ] 0 1 1 1 0 0 G = 1 0 1 0 1 H = 0 1 0 0 1 0 0 1 0 1 1 0 1 1 Tabla de síndromes e s 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1? 1 1 0? 1 1 1 110 e 1 = 11000, e 2 = 00011, e 3 = 10110, e 4 = 01101 Posibilidad: elegir uno de los dos patrones de dos errores MMC (UC3M) Comunicaciones Digitales Codificación de Canal 20 / 99

Ventaja de trabajar con G y H Número de palabras del código: 2 k k = 2, n = 5: 4 palabras k = 247, n = 255: 2 247 2,26 10 74 palabras Número de síndromes posibles k = 2, n = 5 (t = 1): 8 síndromes k = 247, n = 255 (t = 1): 256 síndromes MMC (UC3M) Comunicaciones Digitales Codificación de Canal 21 / 99

Método de eliminación - Ejemplo Sustitución de filas por combinaciones lineales de otras 1 a fila: 1 a +2 a filas 2 a fila: 1 a fila Código C(2, 5) [ ] 1 1 0 1 1 G = 0 1 1 1 0 Palabras código b i 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 Mismas palabras códigos / distintas asignaciones La misma matriz H es válida para generar la tabla de síndromes MMC (UC3M) Comunicaciones Digitales Codificación de Canal 22 / 99 c i

Límite de Hamming Número de síndromes con redundancia r = n k: 2 n k = 2 r Límite de Hamming para corregir t errores t ( ) n r log 2 V(n, t), V(n, t) = j V(n, t): Esfera de Hamming de radio t Interpretación con número de síndromes disponibles ( ) ( ) ( ) 0 n n + + + 2 r 0 1 t Igualdad: Códigos perfectos MMC (UC3M) Comunicaciones Digitales Codificación de Canal 23 / 99 j=0

Códigos perfectos Códigos de repetición (decisión por mayoría) n impar, k = 1, t = (n 1)/2 Códigos de Hamming n = 2 m 1, k = 2 m m 1, t = 1 Matriz de chequeo: en las columnas aparecen todas las posibles combinaciones binarias de (n k) bits, excepto la todo ceros Ejemplo: Código Hamming (4,7) Código de Golay n = 23, k = 11, t = 3 H = 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 24 / 99

Prestaciones - Decodificación dura Probabilidad de error de bit (BER): ε Se comenten errores cuando se excede la capacidad de corrección del código Código de corrección de t errores n ( ) n P e = ε j (1 ε) n j j j=t+1 Codigos que corrigen todos los patrones de t errores y a patrones de t + 1 errores [( ) ] n n ( ) n P e = a ε t+1 (1 ε) n t 1 + ε j (1 ε) n j t + 1 j Codificación tipo Gray o pseudo-gray BER 1 k P e j=t+2 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 25 / 99

Prestaciones - Decodificación blanda Probabilidad de error ( ) dmin e P e c Q 2 N 0 /2 dmin: e mínima distancia euclídea entre las secuencias de símbolos correspondientes a dos palabras código diferentes c: máximo número de palabras de distancia mínima de una dada Modulaciones binarias d e (c i, c j ) = d(a 0, a 1 ) d H (c i, c j ) ( ) d(a 0, a 1 ) P e c Q 2 dmin N 0 /2 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 26 / 99

Códigos cíclicos Códigos bloque lineales Definición: si c i = [c i [0], c i [1],, c i [n 1]] C(k, n), entonces c i = [c i [1],, c i [n 1], c i [0]] C(k, n) Caracterización mediante un polinomio generador g(x) Codificación: multiplicación por el polinomio Decodificación: división por el polinomio Implementación mediante registros de desplazamiento MMC (UC3M) Comunicaciones Digitales Codificación de Canal 27 / 99

Codificación/Decodificación Representaciones polinónicas Polinomio generador: g(x), grado n k Polinomio de chequeo: h(x), tal que g(x) h(x) = x n 1 Palabras mensaje: b(x), grado k 1 Palabras código y recibida: c(x), r(x), grado n 1 Síndrome: s(x), grado n k 1 Codificación Decodificación c(x) = b(x) g(x) mod x n 1 s(x) = r(x) h(x) mod x n 1 r(x) = a(x) g(x) + s(x) División por g(x) y quedarse con el resto MMC (UC3M) Comunicaciones Digitales Codificación de Canal 28 / 99

Ejemplo: código C(4, 7) Polinomio generador: g(x) = x 3 + x + 1 Mensaje: b = [0 1 0 1] b(x) = x 2 + 1 Palabra código c(x) = (x 2 + 1) (x 3 + x + 1) = x 5 + x 2 + x + 1 c = [0 1 0 0 1 1 1] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 29 / 99

Codificación mediante registros de desplazamiento n registros Ramas con sumadores: indicadas por el polinomio Se introduce el mensaje bit a bit La palabra codificada corresponde a los bits en los registros al final del proceso MMC (UC3M) Comunicaciones Digitales Codificación de Canal 30 / 99

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 Codificación de Canal 31 / 99

Códigos de Hamming Existen implementaciones cíclicas Algunos ejemplos: m = 3 (n = 7, k = 4): g(x) = x 3 + x + 1 m = 4 (n = 15, k = 11): g(x) = x 4 + x + 1 m = 5 (n = 31, k = 26): g(x) = x 5 + x2 + 1 m = 6 (n = 63, k = 57): g(x) = x 6 + x + 1 m = 7 (n = 127, k = 120): g(x) = x 7 + x 3 + 1 m = 8 (n = 255, k = 247): g(x) = x 8 + x 4 + x 3 + x 2 + 1 m = 9 (n = 511, k = 502): g(x) = x 9 + x 4 + 1 m = 10 (n = 1023, k = 1013): g(x) = x 10 + x 3 + 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 32 / 99

Códigos Golay k = 12, n = 23, t = 3 (d min = 7) Código cíclico g 1 (x) = x 11 + x 10 + x 6 + x 5 + x 4 + x 2 + 1 g 2 (x) = x 11 + x 9 + x 7 + x 4 + x 3 + x 2 + x + 1 Polinomios de chequeo de paridad h 1 (x) = x 12 + x 11 + x 10 + x 9 + x 8 + x 5 + x 2 + 1 h 2 (x) = x 12 + x 10 + x 7 + x 4 + x 3 + x 2 + x + 1 Código de Golay extendido Añade un bit de paridad Tasa 1/2 (facilidad de implementación) Capacidad de corregir el 19 % de patrones de 4 errores MMC (UC3M) Comunicaciones Digitales Codificación de Canal 33 / 99

Códigos cíclicos sistemáticos Definición de la palabra código c(x) = b(x) x n k + d(x) ( ) b(x) x n k d(x) = resto de g(x) Ejemplo: b(x) x 3 = x 5 + x 3 x 5 + x 3 = x 2 (x 3 + x + 1) + x 2 d(x) = x 2 c(x) = x 5 + x 3 + x 2 c = [0 1 0 1 1 0 0] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 34 / 99

División con registros de desplazamiento n k registros Ramas con sumadores: indicadas por g(x) Se introduce bit a bit b(x) x n k El resto es el contenido final de los registros MMC (UC3M) Comunicaciones Digitales Codificación de Canal 35 / 99

Ejemplo b = [0101] [0 1 0 1 0 0 0] 0 0 0 0 0 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 36 / 99

Ejemplo b = [0101] [0 1 0 1 0 0 0] 1 1 0 0 0 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 36 / 99

Ejemplo b = [0101] [0 1 0 1 0 0 0] 0 0 1 0 0 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 36 / 99

Ejemplo b = [0101] [0 1 0 1 0 0 0] 1 1 0 0 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 36 / 99

Ejemplo b = [0101] [0 1 0 1 0 0 0] 0 1 0 1 0 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 36 / 99

Ejemplo b = [0101] [0 1 0 1 0 0 0] 0 0 1 0 0 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 36 / 99

Ejemplo b = [0101] [0 1 0 1 0 0 0] 0 0 0 0 1 Resto: d(x) = x 2 (igual que antes) Reducción de iteraciones: colocar en los registros los datos correspondientes a las k primeras iteraciones MMC (UC3M) Comunicaciones Digitales Codificación de Canal 36 / 99

Decodificador códigos sistemáticos Tomar la parte sistemática y volverla a codificar: d (x) Definición del síndrome s(x) = d(x) d (x) Generación de tabla de síndromes para decodificación MMC (UC3M) Comunicaciones Digitales Codificación de Canal 37 / 99

Limitaciones de los códigos bloque Tamaño de la tabla de síndromes - Crecimiento exponencial Ejemplo: n = 23, t = 1: 23 entradas Ejemplo: n = 23, t = 2: 276 entradas Ejemplo: n = 23, t = 3: 2047 entradas Prestaciones relacionadas con la distancia mínima Su cálculo requiere conocer las palabras del código No hay aproximaciones constructivas para obtener una d min MMC (UC3M) Comunicaciones Digitales Codificación de Canal 38 / 99

TEMA 5 TÉCNICAS DE PROTECCIÓN FRENTE A ERRORES (CÓDIGOS CONVOLUCIONALES) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 39 / 99

Códigos convolucionales Introducción de la redundancia mediante filtrado Introducción de memoria Tasa R = k/n: Banco de filtros con k entradas n salidas B (0) [l] D D D C (0) [l] C (1) [l] Notación: Entradas: B (i) [l], con i = 0, 1,, k 1 Salidas: C (j) [l], con j = 0, 1,, n 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 40 / 99

Representaciones Esquemática B (0) [l] D D D C (0) [l] C (1) [l] Relación entrada salidas C (0) [l] = B (0) [l] + B (0) [l 1] + B (0) [l 3] C (1) [l] = B (0) [l] + B (0) [l 1] + B (0) [l 2] + B (0) [l 3] Notación mediante polinomios en D B (i) (D) = l B (i) [l] D l Propiedad B (i) [l d] B (i) (D) D d MMC (UC3M) Comunicaciones Digitales Codificación de Canal 41 / 99

Representaciones (II) Notación mediante polinomios en D C (0) (D) = B (0) (D) { 1 + D + D 3} C (1) (D) = B (0) (D) { 1 + D + D 2 + D 3} Notación matricial (polinomios): C(D) 1 n = B(D) 1 k G(D) k n Matriz generadora de tamaño k n Elemento fila i columna j: contribución a la salida j-ésima de la entrada i-ésima Ejemplos Ejemplo anterior (A): k = 1, n = 2 G(D) = [ 1 + D + D 3, 1 + D + D 2 + D 3] 1 2 Otro ejemplo (B): k = 2, G(D) = [ 1 + D D D D 1 D MMC (UC3M) Comunicaciones Digitales Codificación de Canal 42 / 99 ] 2 3

Paso a representación esqumática - Ejemplo B G(D) = [ 1 + D D D D 1 D ] 2 3 Número de entradas: k = 2 Número de salidas: n = 3 B (0) [l] B (1) [l] D D C (0) [l] C (1) [l] C (2) [l] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 43 / 99

Parámetros de interés Memoria total del código: M t Número total de unidades de retardo (memorias) k 1 M t = i=0 M (i) Memoria de la entrada i-ésima: M (i) = máx grado(g i,j (D)) j Longitud de restricción: K Máxima longitud de la respuesta al impulso del codificador (máximo número de instantes de tiempo en los que un bit afecta a la salida del codificador) K = 1 + máx grado(g i,j (D)) i,j En general las prestaciones aumentan con K MMC (UC3M) Comunicaciones Digitales Codificación de Canal 44 / 99

Códigos sistemáticos Matriz de generación G(D) = [I k P(D)] Las entradas se copian en algunas de las salidas Ejemplo (C) G(D) = [ 1, 1 + D + D 2] C (0) [l] B (0) [l] D D C (1) [l] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 45 / 99

Diagrama de rejilla Definición del estado Contenido de las memorias del codificador ψ[l] = [B (0) [l 1],, B (0) [l M (0) ],, B (k 1) [l 1],, B (k 1) [l M (k 1) ]] Etiquetado de la rejilla Bits a la entrada del codificador Bits a la salida del codificador B (0) [l], B (1) [l], B (k 1) [l] C(0) [l], C (1) [l], C (n 1) [l] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 46 / 99

Ejemplo - Convolucional D Estado: ψ[l] = [ B (0) [l 1], B (0) [l 2] ] Estados: ψ 0 = [0, 0], ψ 1 = [1, 0], ψ 2 = [0, 1], ψ 3 = [1, 1] B (0) [l] D D C (0) [l] C (1) [l] ψ 3 ψ 2 ψ 1 ψ 0 0 10 1 00 1 01 0 11 1 10 0 01 1 11 ψ[n] 0 00 ψ[n + 1] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 47 / 99

Ejemplo - Convolucional E Estado: ψ[l] = [ B (0) [l 1], B (0) [l 2] ] Estados: ψ 0 = [0, 0], ψ 1 = [1, 0], ψ 2 = [0, 1], ψ 3 = [1, 1] B (0) [l] D D C (0) [l] C (1) [l] ψ 3 ψ 2 ψ 1 ψ 0 0 11 1 00 1 10 0 01 1 11 0 10 1 01 ψ[n] 0 00 ψ[n + 1] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 48 / 99

Secuencia de bits - Camino a través de la rejilla Secuencia de datos: B (0) [l] = [11010] Estado inicial: ψ 0 (Se fija con el envío de una cabecera de bits) ψ 3 ψ 2 ψ 1 ψ 0 0 11 1 10 0 10 1 00 0 01 1 11 1 01 0 11 1 10 0 10 1 00 0 01 1 11 1 01 0 11 1 10 0 10 1 00 0 01 1 11 1 01 ψ[0] 0 00 ψ[1] 0 00 ψ[2] 0 00 ψ[3] 0 00 ψ[4] 0 00 ψ[5] 0 11 1 10 0 10 1 00 0 01 1 11 1 01 0 11 1 10 0 10 1 00 0 01 1 11 1 01 Secuencia codificada: C[k] = [11 10 10 00 01] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 49 / 99

Decodificación - Algoritmo de Viterbi Recuperación de la secuencia más verosímil Estados inicial/final Cabecera de referencia (habitualmente ceros bit flushing ) Salida dura: observación de bits decididos Secuencia con el menor número de bits codificados distintos a la observación Métrica de rama: distancia de Hamming con la observación Salida dura: observación de q[n] Secuencia cuyos símbolos asociados están a la menor distancia euclídea de la observación Métrica de rama: q[n] A[n] 2 Hay que tener en cuenta la constelación que se utiliza para hacer la conversión de las etiquetas de la rejilla básica a símbolos de la constelación (A[n]) Mejores prestaciones que con salida blanda MMC (UC3M) Comunicaciones Digitales Codificación de Canal 50 / 99

Métricas de rama - Salida dura Secuencia recibida: R[k] = [11 10 10 00 01] ψ[n] ψ[n + 1] ψ 0 ψ 1 ψ 2 ψ 3 0 00 1 11 0 01 1 10 0 11 1 00 0 10 1 01 ψ[0] ψ[1] ψ[2] ψ[3] ψ[4] ψ[5] ψ 0 ψ 1 ψ 2 ψ 3 2 0 1 1 0 2 1 1 1 1 2 0 1 1 0 2 1 1 2 0 1 1 0 2 0 2 1 1 2 0 1 1 1 1 0 2 1 1 2 0 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 51 / 99

Métricas acumuladas en cada estado (Viterbi) ψ[1] ψ[2] ψ[3] ψ[4] ψ[5] ψ 3 0 2/3 3/4 3/2 ψ 2 2 0/5 3/4 0/0 ψ 1 0 3 3/4 0/5 4/3 ψ 0 2 3 3/4 2/3 4/3 Si no hay errores: camino con métrica acumulada nula MMC (UC3M) Comunicaciones Digitales Codificación de Canal 52 / 99

Métricas de rama - Salida blanda [ ] [ Secuencia recibida: q[n] = 1,1 0,9 1,1 0,8 ] [ 0,75 0,6 ] [ 1,2 1,1 ] [ ] 0,7 1,2 ψ 3 ψ 2 ψ 1 ψ 0 0,02 3,62 3,62 8,02 4,42 0,02 ψ 3 ψ 2 ψ 1 ψ 0 4,42 0 11 1 10 0 10 1 00 0 01 1 11 1 01 ψ[n] 0 00 ψ[n + 1] 3,25 0,05 0,05 4,45 7,65 3,25 7,65 2,62 0,22 0,22 3,22 5,62 2,62 5,62 ψ[0] 8,02 ψ[1] 4,45 ψ[2] 3,22 ψ[3] 0,05 ψ[4] 4,93 ψ[5] 01 1 00 +1 1 9,25 4,85 4,85 0,05 4,45 9,25 4,45 11 +1 10 2,93 7,73 7,73 4,93 0,13 2,93 0,13 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 53 / 99

Métricas acumuladas en cada estado (Viterbi) ψ[1] ψ[2] ψ[3] ψ[4] ψ[5] ψ 3 0,07 5,69/11,49 10,14/15,74 10,27/8,07 ψ 2 7,67 0,29/16,89 10,54/15,34 17,87/0,47 ψ 1 0,02 11,27 10,89/15,09 0,34/19,54 15,47/12,47 ψ 0 8,02 12,47 10,29/15,69 9,54/10,34 13,47/14,47 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 54 / 99

Prestaciones Salida dura n z ( ) n z Pe c ε i (1 ε) n z i i i=t D H min : mínima distancia de Hamming entre salidas para secuencias distintas z: longitud del evento erróneo de distancia mínima t = D H min 1 2 (capacidad de corrección sobre n z bits) ε: probabilidad de error de bit del sistema (BER) Salida blanda ( ) D e min P e c Q 2 N 0 /2 D e min : mínima distancia euclídea entre salidas para secuencias distintas MMC (UC3M) Comunicaciones Digitales Codificación de Canal 55 / 99

Calculo de D H min Comparación con la secuencia de todo ceros ψ 3 ψ 2 ψ 1 ψ 0 0 11 1 10 0 10 1 00 0 01 1 11 1 01 ψ 3 ψ 2 ψ[n] 0 00 ψ[n + 1] 1 1 3 3 1 1 0 4 4 D H min = 5 ψ 1 2 2 2 3 z = 3 ψ 0 5 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 56 / 99

TEMA 5 TÉCNICAS DE PROTECCIÓN FRENTE A ERRORES (CÓDIGOS DE REJILLA (TCM)) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 57 / 99

Códigos de rejilla Conocidos también como códigos TCM Trellis Coded Modulation Diseño conjunto de códigos convolucionales y del codificador del transmisor Uso eficiente del ancho de banda de un canal La redundancia se introduce aumentando el orden de la constelación Orden de la constelación acorde al tamaño de la salida codificada Posibilidad de tasas relativamente altas mediante las transiciones paralelo MMC (UC3M) Comunicaciones Digitales Codificación de Canal 58 / 99

Códigos de rejilla - Definiciones k np k n p p Constelación n = n p + n np Convolucional k np, n np n np bits/símbolo k entradas k p transiciones paralelo (sin proteger) k np transiciones no paralelo (protegidas) n salidas n p = k p transiciones paralelo (sin proteger) n np transiciones no paralelo (protegidas) Constelación: 2 n símbolos (n = n p + n np bits/símbolo) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 59 / 99

Códigos de rejilla - Asignación de bits Reglas de diseño: reglas de Ungerboeck Asignación para minimizar la probabilidad de error División de la constelación + asignación de bits División de la constelación en subconstelaciones División sucesiva aumentando la distancia mínima Símbolos por subconstelación: 2 np Número de subconstelaciones: 2 nnp Asignación de bits Transiciones paralelo: selección de un símbolo dentro de la subconstelación Protección física sobre la constelación (Gray) Transiciones no paralelo: selección de una subconstelación Protección mediante código convolucional Máxima distancia: ramas que salen de o llegan a un mismo estado Equiprobabilidad en la asignación de símbolos MMC (UC3M) Comunicaciones Digitales Codificación de Canal 60 / 99

Ejemplo: k p = 1, k np = 1, n np = 2, 8-PSK Código de tasa 2/3 Una transición en paralelo Convolucional de tasa 1/2 (Convolucional Ejemplo D) Convolucional 1/2 Constelación 3 bits/símbolo ψ 3 ψ 2 ψ 1 ψ 0 0 11 1 10 Constelación con 3 bits por símbolo: 8 símbolos 8-PSK 0 10 1 00 0 01 1 11 1 01 ψ[n] 0 00 ψ[n + 1] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 61 / 99

Ejemplo: División de la constelación B 0 B 1 C 0 C 1 C 2 C 3 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 62 / 99

Ejemplo: Asignación de las transiciones no paralelo ψ 3 1 C 2 1 ψ 2 C 3 C 0 1 1 ψ 1 ψ 0 C 1 C 3 1 C 2 C 1 1 1 1 C 0 ψ[n] ψ[n + 1] MMC (UC3M) Comunicaciones Digitales Codificación de Canal 63 / 99

Asignación (convolucional D) ψ 3 ψ 2 ψ 1 ψ 0 0 11 1 10 0 10 1 00 0 01 1 11 1 01 ψ 3 ψ 2 ψ 1 ψ 0 C 1 C 3 C 3 C 0 C 2 C 1 C 2 ψ[n] 0 00 ψ[n + 1] C ψ[n] 0 ψ[n + 1] 1 10 0 00 1 01 0 11 0 11 0 01 1 00 0 10 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 64 / 99

Prestaciones Distancia mínima del código - La mínima de: Distancia mínima paralelo Ejemplo anterior (constelación normalizada): d p = 2 Mínima distancia entre puntos de las subconstelaciones Distancia mínima no paralelo Distancia del convolucional medida sobre las subconstelaciones Ejemplo anterior d np = d 2 (C 0, C 1 ) + d 2 (C 0, C 2 ) + d 2 (C 0, C 1 ) = 2,14 Ganancia de codificación Comparación con la constelación equivalente sin codificar (misma velocidad de transmisión efectiva) Ejemplo anterior: 4-PSK G = ESC b Eb TCM ( d TCM min ) 2 ( d SC min ) 2 = 2 (3 db) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 65 / 99

TEMA 5 TÉCNICAS DE PROTECCIÓN FRENTE A ERRORES (CÓDIGOS BCH) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 66 / 99

Campos finitos (Campos de Galois) Definición de campo Conjunto de elementos sobre el que es posible definir dos operaciones, suma (resta) y producto (división, excepto por el elemento nulo), y dos elementos distinguidos, elemento nulo (0), elemento unidad (1), que cumplen las siguientes propiedades: Asociativa Conmutativa Distributiva Campo finito Número finito, q, de elementos del campo: Orden q, GF(q) Orden primo: p n con p primo y n entero Construcción: Polinomio irreducible de grado n y coeficientes en GF(p) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 67 / 99

Campos finitos GF(2 m ) Modelo para grupos de m bits (m-tuplas) Representaciones de los miembros del campo Polinomios en α de grado m 1 Tupla 000 0 001 1 010 α 011 α + 1 Polinomio Tupla Polinomio 100 α 2 101 α 2 + 1 110 α 2 + α 111 α 2 + α + 1 Potencia de α (α j, para j =, 0, 1,, m 2) Restricción sobre α m para el producto (consistencia) Polinomio generador Coeficientes binarios (p = 2) Ejemplo: p(x) = x 3 + x + 1 Restricción: α 3 = α + 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 68 / 99

Definiciones Polinomio irreducible Polinomio que no se puede factorizar Polinomio primitivo p(x) de grado m es primitivo si el menor entero n para el que p(x) divide a x n 1 es n = 2 m 1 Polinomio minimal de α i Polinomio de menor grado con α i como raíz (polinomio con coeficientes binarios) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 69 / 99

Polinomio generador Polinomio irreducible Polinomio primitivo Polinomio de grado m α es una raíz del polinomio restricción sobre α m p(α) = α 3 + α + 1 = 0 α 3 = α + 1 Polinomio primitivo restricción de periodicidad p(x) divide a x n 1 (con n = 2 m 1) α n = 1 = α 0 Periodicidad exponencial de período n Elementos del campo Resto del cociente con p(α) (polinomio) Ejemplo: α 3 + α 2 + α + 1 = (α + 1) + α 2 + α + 1 = α 2 α 3 + α 2 + α + 1 = (α 3 + α + 1) 1 + α 2 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 70 / 99

Adjudicación de α j a una tupla Utilización de la restricción del polinomio generador α j Polinomio Tupla α = 0 0 000 α 0 = 1 1 001 α 1 α 010 α 2 α 2 100 α 3 α + 1 011 α 4 α (α 3 ) = α 2 + α 110 α 5 α 3 + α 2 = α 2 + α + 1 111 α 6 α 3 + α 2 + α = α + 1 + α 2 + α = α 2 + 1 101 α 7 α 3 + α = α + 1 + α = 1 Periodicidad de período n = 2 m 1: α n = α 0 ( α k = α k %n) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 71 / 99

Polinomios minimales - Cosets ciclotómicos Coset ciclotómico Conjunto que agrupa a las raices que comparten los polinomios minimales Exponentes de las raices agrupadas en el coset C i {i, 2i, 2 2 i,, 2 z i 1 i} z i : mínimo valor que cumple α 2zii = α i Raíces Polinomio minimal 0 x C 0 = 1 x + 1 C 1 = {α, α 2, α 4 } x 3 + x + 1 C 3 = {α 3, α 6, α 5 } x 3 + x 2 + 1 Raíces de x n 1: α 0 (1),α, α 2,, α n 1 x 7 1 = (x 1) (x α) (x α 6 ) Producto de los polinomios minimales de los cosets x 7 1 = (x + 1) (x 3 + x + 1) (x 3 + x 2 + 1) MMC (UC3M) Comunicaciones Digitales Codificación de Canal 72 / 99

Formación de los cosets (ejemplo) Coset C 0 C 0 = {1}, 1 2 = 1 Coset C 1 C 1 = { α, α 2, α 4}, α 8 = α Coset C 2 : α 2 ya está incluido en C 1 Coset C 3 C 3 = { α 3, α 6, α 12 = α 5}, α 24 = α 3 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 73 / 99

Formación de los polinomios binarios Agrupamiento de raíces distintas a todas las de un coset p(x) = (x α) (x α 2 ) = x 2 (α + α 2 ) x + α 3 Polinomio con coeficientes no binarios Polinomio minimal de C 1 p 1 (x) =(x α) (x α 2 ) (x α 4 ) =(x 2 (α + α 2 ) x + α 3 ) (x α 4 ) =x 3 (α + α 2 + α 4 ) x 2 + (α 3 + α 5 + α 6 ) x α 7 =x 3 + (α + α 2 + α 2 + α) x 2 + (α + 1 + α 2 + α + 1 + α 2 + 1) x 1 =x 3 + x + 1 MMC (UC3M) Comunicaciones Digitales Codificación de Canal 74 / 99

Códigos BCH Acrónimo de Bose, Chaudhuri y Hocquenghem Códigos versátiles y constructivos Cualquier distancia mínima Cualquier longitud de código impar (n impar) Permite el diseño de códigos no binarios Casos particulares interesantes Hamming Golay Reed Solomon (no binario) Algoritmo eficiente de decodificación Principio básico para su diseño Teorema BCH MMC (UC3M) Comunicaciones Digitales Codificación de Canal 75 / 99

Teorema BCH (simplificado) - Diseño de códigos BCH Un código cíclico C(k, n) con un polinimio generador g(x) que tiene δ 1 raíces consecutivas en un campo GF(2 m ), con el menor m tal que 2 m 1 sea múltiplo de n, es un código cíclico que garantiza un distancia mínima δ d min δ Código con capacidad de corrección de t errores Distancia mínima d min 2 t + 1 Buscar un entero m tal que n = 2 m 1 (o n divisor de 2 m 1) Agrupar d min 1 raíces consecutivas en GF(2 m ) Obtención del polinomio generador g(x) Utilización de los polinomios minimales coeficientes binarios Tamaño del código: grado(g(x))=n k MMC (UC3M) Comunicaciones Digitales Codificación de Canal 76 / 99