Códigos para Control de Errores. Algoritmo de Viterbi Dr. Ing. Nestor Ruben Barraza Departamento de Electrónica Facultad de Ingenierı́a Códigos para Control de Errores. Algoritmo de Viterbi– p. 1 Contenido Concepto de canal ruidoso Códigos para Control de Errores. Algoritmo de Viterbi– p. 2 Contenido Concepto de canal ruidoso Objetivos de la codificación Códigos para Control de Errores. Algoritmo de Viterbi– p. 2 Contenido Concepto de canal ruidoso Objetivos de la codificación Códigos Convolucionales Códigos para Control de Errores. Algoritmo de Viterbi– p. 2 Contenido Concepto de canal ruidoso Objetivos de la codificación Códigos Convolucionales Decodificador de Viterbi Códigos para Control de Errores. Algoritmo de Viterbi– p. 2 Contenido Concepto de canal ruidoso Objetivos de la codificación Códigos Convolucionales Decodificador de Viterbi Conclusiones Códigos para Control de Errores. Algoritmo de Viterbi– p. 2 Canal Ruidoso Códigos para Control de Errores. Algoritmo de Viterbi– p. 3 Canal Ruidoso Teorema de la Codificación del Canal. Shannon (1948) Códigos para Control de Errores. Algoritmo de Viterbi– p. 3 Canal Ruidoso Teorema de la Codificación del Canal. Shannon (1948) Códigos para Control de Errores. Algoritmo de Viterbi– p. 3 Tipos de Codificación Códigos de Bloque Códigos Convolucionales Códigos para Control de Errores. Algoritmo de Viterbi– p. 4 Convolucionales Elias (1955) Corrección de Errores en tiempo real Códigos para Control de Errores. Algoritmo de Viterbi– p. 5 Convolucionales Elias (1955) Corrección de Errores en tiempo real Convierte toda la cadena de bits en una simple palabra de código Códigos para Control de Errores. Algoritmo de Viterbi– p. 5 Convolucionales Elias (1955) Corrección de Errores en tiempo real Convierte toda la cadena de bits en una simple palabra de código El bit codificado depende tambien de bits de entrada pasados Códigos para Control de Errores. Algoritmo de Viterbi– p. 5 Convolucionales Elias (1955) Corrección de Errores en tiempo real Convierte toda la cadena de bits en una simple palabra de código El bit codificado depende tambien de bits de entrada pasados Ampliamente difundido en Comunicaciones. TDMA/GSM, Wireless Códigos para Control de Errores. Algoritmo de Viterbi– p. 5 Convolucionales Elias (1955) Corrección de Errores en tiempo real Convierte toda la cadena de bits en una simple palabra de código El bit codificado depende tambien de bits de entrada pasados Ampliamente difundido en Comunicaciones. TDMA/GSM, Wireless Códigos para Control de Errores. Algoritmo de Viterbi– p. 5 Implementación Registros de Desplazamiento. Feedforward Tasa nk , k bits de entrada, n bits de salida Códigos para Control de Errores. Algoritmo de Viterbi– p. 6 Ecuaciones (1) ci (2) ci i 0 1 2 3 = mi−2 + mi−1 + mi = mi−2 + mi m S1 S2 1 0 0 0 1 0 0 0 1 0 0 0 c1 1 1 1 0 c2 1 0 1 0 Códigos para Control de Errores. Algoritmo de Viterbi– p. 7 Respuesta al impulso g (1) = (1 1 1) g (2) = (1 0 1) (l) ci = K X mi−k g (l) k=0 M (D) = m0 + m1 D + m2 D2 + · · · Códigos para Control de Errores. Algoritmo de Viterbi– p. 8 Función Transferencia (j) G(D) = (j) g0 + (j) g1 D+ (j) g2 D2 + · · · C(D) = M (D) G(D) Códigos para Control de Errores. Algoritmo de Viterbi– p. 9 Implementación Registros de Desplazamiento. Feedback Códigos para Control de Errores. Algoritmo de Viterbi– p. 10 Decodificación Secuencial. 1957 Viterbi. 1967 Máximo a Posteriori. Algoritmo BCJR, 1974 Códigos para Control de Errores. Algoritmo de Viterbi– p. 11 Algoritmo de Viterbi Algoritmo Óptimo de decodificación de Máxima Verosimilitud. ŝ = M AXs (ln p(y/s) Usado para códigos convolucionales o de Trellis Determina el sendero mas probable de acuerdo a los saltos ponderados Códigos para Control de Errores. Algoritmo de Viterbi– p. 12 Hard-Soft decision 1. Hard decision. Distancia de Hamming 2. Soft Decision. Distancia euclidiana con el valor analógico recibido. Ver ”Essentials of Error-Correcting Codes”, Castiñeira and Farrel. par. 6.15 y ejemplo 6.9. Códigos para Control de Errores. Algoritmo de Viterbi– p. 13 Esquemas Códigos para Control de Errores. Algoritmo de Viterbi– p. 14 Hard decision Métrica de ramas: δ(cod,out) δ(11, 11) = 0, δ(01, 10) = 2, δ(00, 01) = 1 Se queda con el lazo con menor métrica Códigos para Control de Errores. Algoritmo de Viterbi– p. 15 Soft decision Ver ”Essentials of Error-Correcting Codes”, Castiñeira and Farrel. Fig. 6.28. Métrica de ramas: δ(cod,out) δ(1,35 − 0,15, −1 − 1) = 6,245 Se queda con el lazo con menor métrica Códigos para Control de Errores. Algoritmo de Viterbi– p. 16 Eficiencia. Simulación Códigos para Control de Errores. Algoritmo de Viterbi– p. 17 Eficiencia. Experimental Códigos para Control de Errores. Algoritmo de Viterbi– p. 18 Conclusiones Baja tasa de BER (Bit Error Rate) Sencillez en la Implementación Decodificación Óptima. ML Códigos para Control de Errores. Algoritmo de Viterbi– p. 19