Tema: Codificación de canal Adriana Dapena Janeiro (adriana@udc.es) Facultad de Informática Universidade da Coruña Campus de Elviña s/n 15071. A Coruña Codificación de canal.- Adriana Dapena p. 1
Objetivos Describir distintos tipos de codificación de canal Códigos bloque lineales. Estudiar sus prestaciones. Hard Decision Decoder (HDD) Soft Decision Decoder (SDD) Codificación de canal.- Adriana Dapena p. 2
Bibliografía recomendada A. Goldsmith, Wireless Communications, Cambridge University Press, 2005. http://wsl.stanford.edu/andrea/wireless/ B. Sklar, Digital Communications, Prentice Hall, 2004. Codificación de canal.- Adriana Dapena p. 3
Aspectos generales Modelo del sistema de comunicación. Ganancia del decodificador. Codificación de canal.- Adriana Dapena p. 4
Sistema de comunicación Un codificador de canal transforma k bits de información en n bits. La velocidad de datos es, por tanto, k n R b. El entrelazado permite mitigar el efecto del desvanecimiento introducido por algunos canales. Codificación de canal.- Adriana Dapena p. 5
Ganancia del codificador La ganancia del codificador expresa la reducción de SNR necesaria para alcanzar una determinada probabilidad de error. Codificación de canal.- Adriana Dapena p. 6
Códigos bloques lineales Conceptos generales. Código cíclico. Código bloque lineal sistemático. Criterio HDD. Criterio SDD. Canales con desvanecimiento. Codificación de canal.- Adriana Dapena p. 7
Códigos bloques lineales Un código bloque binario (n, k) transforma palabras de k bits y otras de n bits. Al transmitir por un canal a R s símbolos por segundos, se obtiene una velocidad de bit R b = R c R s donde R c = k n es la velocidad del código. El código es lineal si las palabras códigos se calculan con transformaciones lineales: Si c i,c j son palabras del código, entonces c i + c j también lo es (+ suma módulo 2). La palabra toda cero c 1 está en el código. Codificación de canal.- Adriana Dapena p. 8
Códigos bloques lineales (cont.)... La distancia hamming d(c i,c j ) = d ij es el número de elementos en los que difieren. El peso de una palabra es el número de 1 s que contiene (distancia a la palabra toda ceros). La distancia hamming mínima es d min = min i 1 d 1i. Codificación de canal.- Adriana Dapena p. 9
Código cíclico Es una subclase de los códigos bloque lineales, en los cuales cada palabra código se obtiene desplazando cíclicamente otra. Por ejemplo, 000, 100, 001, 010. Para un código (n, k) se define el polinomio generador g(x) = g 0 + g 1 X +... + g n k X n k, g i {0, 1} Los k bits de información y los n del código se representan por vectores d(x) = d 0 + d 1 X +... + d k 1 X k 1 c(x) = d(x)g(x) = c 0 + c 1 X +... + c n 1 X n 1 Se cumple c(x) g(x) = q(x). Por tanto, para una palabra recibida r(x) = c(x) + e(x), r(x) g(x) es el error e(x). Codificación de canal.- Adriana Dapena p. 10
Ejemplo 1:... Se desea codificar la secuencia d = [1 0 0 1] utilizando un código cíclico (7, 4) con vector generador g = [1 1 0 1]. El polinomio generador es g(x) = X 3 + X 2 + 1. d(x) = X 3 + 1 y X 3 d(x) = X 6 + X 3. La secuencia codificada es C(X) = X 6 + X 3 + X + 1 (c = [1 0 0 1 0 1 1]). Codificación de canal.- Adriana Dapena p. 11
Código Hamming... Inventado por Richard Hamming en los años cuarenta. Actualmente se conoce como código Hamming (7,4) donde 7 es el número de bits de la palabra de entrada y 4 el de los bits de paridad (salida de 11 bits). La palabra de salida se contruye como sigue: Los bits en las posiciones potencia de dos (1,2,4,8,16,32,...) son de paridad. Posición 1: salta 1 pos., suma 1 pos., salta 1 pos., suma 1 pos,... Posición 2: suma 1 pos., salta 2, suma 2 pos., salta 2 pos,... Posición n: suma n-1 pos., salta n pos., suma n-1 pos, salta n pos.,.. Los bits en las otras posiciones son de datos. Codificación de canal.- Adriana Dapena p. 12
Código bloque lineal sistemático Sea d i = [d i1,..., d ik ] una secuencia de datos, c i = [c i1,..., c in ] la secuencia codificada. En un código lineal sistemático, c i = d i G donde la matriz generadora tiene la forma G = [I k k P k (n k) ] = 1 0... 0 p 11 p 12... p 1(n k) 0 1... 0 p 21 p 22... p 2(n k) 0 0... 1 p k1 p k2... p k(n k) Por tanto, c i = d i G = [d i c p ] siendo c p los n k bits de paridad. Codificación de canal.- Adriana Dapena p. 13
Código bloque lineal sistemático (cont.) La matriz control de paridad se define H = [P T I (n k) (n k) ] de forma que GH T = 0 k (n k) y c i H T = d i GH T = 0 n k. Para detectar errores se calcula el síndrome de la palabra recibida s = rh T. Se cumple que s = (c + e)h T = eh T por tanto para corregir los errores se elige la palabra error ê con menor peso, ĉ i = r + ê. La distancia mínima de estos códigos cumple dmin n k + 1. Codificación de canal.- Adriana Dapena p. 14
Ejemplo 2:... Sea un código bloque lineal sistemático (7, 4) con matriz de paridad P 4 3 = 1 1 0 1 0 1 0 0 1 0 1 0 Ante la entrada d i = [1 1 0 1] produce la salida c i = [1 1 0 1 0 0 1]. Codificación de canal.- Adriana Dapena p. 15
Ejemplo 3:... Sea un código bloque lineal sistemático (4, 2) con matriz generadora G 2 4 = [ 1 0 1 0 0 1 1 1 La distancia mínima es dmin = 2 < n k + 1 = 3. Si se transmite la palabra c = [0 0 1 1] y se recibe r = [1 1 1 1], el sistema detecta el error ya que el síndrome s = [1 0] es distinto de cero. Sin embargo, no es capaz de corregirlo ya que hay varios patrones con peso 1. ] Codificación de canal.- Adriana Dapena p. 16
Decodificador con decisiones duras (HDD) El decodificador MV utiliza la regla Seleccionar c j si p(r c j ) p(r c i ) i = 1,..., 2 k, i j El criterio puede ser implementado utilizando la distancia hamming Seleccionar c j si d(r,c j ) d(r,c i ) i = 1,..., 2 k, i j Puede detectar dmin 1 errores y corregir t = dmin 1 2 Ejemplo:... Codificación de canal.- Adriana Dapena p. 17
Probabilidad de error de un HDD La probabilidad de error está acotada por la probabilidad de que ocurran más de t errores. En canales AWGN, Pe n j=t+1 ( n j ) p j (1 p) n j donde p es la probabilidad de que ocurra un error en un bit. 2Ec Para una modulación BPSK, p = Q( N 0 ) con E c = k n E b. Codificación de canal.- Adriana Dapena p. 18
Probabilidad de error de un HDD (cont.) Para SNR altas, Pe(1) (2 k 1) dmin j=t+1 ( dmin j ) p j (1 p) dmin j Puede demostrarse que cuando el ruido es blanco gaussiano y la modulación es BPSK, Pe(2) 2 k j=2 [4p(1 p)] dmin/2 = (2 k 1)[4p(1 p)] dmin/2 Codificación de canal.- Adriana Dapena p. 19
Ejemplo 4... Calcularemos la probabilidad de error de un código bloque lineal (5, 2) con dmin = 3, considerando que se utiliza una modulación BPSK con E b /N 0 = 10dB. En unidades naturales E b /N 0 = 10. Por tanto, Ec/N 0 = 4. La probabilidad de error es p = Q( 8) = 2.34 10 3. Para este valor de p, dmin = 3, t = 0.5(dmin 1) = 1 y k = 2, se obtiene Pe(1) 4.92 10 5 y P b Pe(1) k = 4.92 10 5 2 = 2.46 10 5 Por otro lado, Pe(2) = 2.7 10 3. La probabilidad de error sin codificar es P b = Q( 20) = 3.87 10 6. Codificación de canal.- Adriana Dapena p. 20
Decodificador con decisiones blandas (SDD) Utiliza información adicional para reducir la probabilidad de error. En una modulación BPSK, se demodula como "0" cuando r j = E c + n j y como "1" cuando r j = E c + n j. En SDD para cada palabra recibida de n bits, se calcula la métrica C(r,c i ) = n (2c ij 1)r j j=1 Si c ij = 0 2c ij 1 = 1 y si c ij = 1 2c ij 1 = 1. Criterio: Seleccionar c j max C(r,c j ) Ejemplo 3 (cont.):... Codificación de canal.- Adriana Dapena p. 21
Probabilidad de error de SDD... Para un canal AWGN, la métrica C(r,c i ) sigue una gaussiana de media ne c (1 (1 2w i /n)) y varianza nn 0 /2. La probabilidad viene dada por Pe(c i ) = Q ( ) nec (1 (1 2w i /n)) N 0 donde w i es el peso de la i-ésima palabra código. Por tanto, = Q( 2R c γ b w i ) Pe 2 k i=2 Pe(c i ) = 2 k i=2 Q( 2R c γ b w i ) < e γ br c dmin+kln2 Codificación de canal.- Adriana Dapena p. 22
Comparación de rendimiento Codificación de canal.- Adriana Dapena p. 23
Canales con desvanecimiento Codificación de canal.- Adriana Dapena p. 24
Canales con desvanecimiento (cont.) El entrelazador tiene d filas y n columnas. La entrada se hace por filas y la salida por columnas. Los bits de una misma palabra están separados por d 1 bits. El entrelazador compensa el desvanecimiento del canal cuando dt s > T c siendo T s el período de símbolo y T c el tiempo de coherencia del canal. Ejemplo: si se transmite a una velocidad R b = 30kbps (T s = 3.3 10 5 seg) por un canal con T c = 12.5mseg, la profundidad del entrelazador debería ser d > T c /T s = 375. El retraso será el asociado a transmitir toda la tabla dnt s = 62.5mseg. Codificación de canal.- Adriana Dapena p. 25