TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
Comunicaciones
1. COMUNICACIONES II CODIGOS DE BLOQUES LINEALES CODIGOS CONVOLUCIONALES Equipo 4: BECERRA JESUS MACHADO REGULO G-003-N
2. INTRODUCCION La codificación del canal consiste en 'mapear' (añadir redundancia) la secuencia de datos entrante en una secuencia de entrada al canal y realizar el 'mapeo' inverso a la salida del canal en una secuencia de datos tal que los efectos del ruido estén minimizados. La introducción de redundancia en la codificación del canal tiene como finalidad mejorar la fiabilidad de la transmisión. Antes de continuar le refrescaremos algunos conceptos necesarios para un mejor entendimiento de los llamados códigos y algunas de sus diferencias existentes entre ellos.
3.
4. TASA RESIDUAL DE ERROR: Se define como la relación entre el número de bits erróneos no detectados sobre el total de bits emitidos. Mide la capacidad de detectar errores.
5. PESO DE HAMMING: El peso de Hamming W(c) de una palabra de código c se define como el número de bits de esa palabra diferentes de cero.
6. DISTANCIA DE HAMMING: Es la distancia entre dos palabras de código de igual longitud y se define como el número de bits (posición a posición) en los que se diferencian las dos palabras. También es necesario hacer una diferenciación entre los distintos tipos de códigos:
7. CÓDIGOS SISTEMÁTICOS: aquellos códigos en los que la palabra de información aparece de forma explícita en la palabra codificada.
8. CÓDIGOS NO SISTEMÁTICOS: aquellos códigos en los que la palabra de información no aparece de forma explícita en la palabra codificada.
9. CÓDIGOS DE BLOQUE: (tienen el mismo significado que en el caso de la codificación de la fuente) aquellos códigos en los que todas las palabras tienen la misma longitud y la codificación se hace de forma estática.
10. CÓDIGOS LINEALES: aquellos en los que cualquier combinación lineal de palabras de código válida (por ejemplo la suma módulo 2) produce otra palabra válida.
11.
12. Código bloque lineal A un código bloque de longitud n y 2k palabras código se le llama código lineal (n,k) si y sólo si sus 2k palabras código forman un subespacio k-dimensional del espacio vectorial de las n-tuplas De hecho, un código binario es lineal si y sólo si la suma de módulo 2 de dos palabras código es también una palabra código
13. Representacion matricial de códigos bloques Dado que un código lineal (n,k) C es un subespacio k-dimensional del espacio de vectores Vn de las n-tuplas binarias, es posible encontrar k palabras código linealmente independientes, g0, g1,..., gk-1 en C, de tal forma que cada palabra código v en C es una combinación lineal de esas k palabras código: v = u0 g0 + u1 g1 + ... + uk-1 gk-1 Donde ui= 0 ó 1 para i mayor igual que cero y menor que k. Ahora vamos a colocar estas k palabras códigos linealmente independientes como las filas de una matriz k x n:
16. Síndrome de descodificación y detección de errores. Consideramos un código lineal (n,k) con su matriz generadora G y su matriz de comprobación de paridad H. Sea v una palabra código que se transmite en un canal ruidoso, y r es el vector recibido a la salida del canal.Debido a que el canal es ruidoso, r puede ser distinto de v
17. El vector suma de r y v es e; e es una n-tupla tal que ei=1 si ri es distinto de vi y ei=0 si ri=vi. A esta n-tupla se le llama vector de error. Los 1's que aparecen en e son errores de transmisión producidos porque el canal es ruidoso. El receptor recibe r que es la suma de la palabra código transmitida y el vector de error. Cuando recibe r, el decodificador debe determinar si contiene errores de transmisión. Si se detectan errores, el decodificador intentará corregirlos (FEC) o pedirá una retransmisión (ARQ) Cuando se recibe r, el decodificador calcula la siguiente (n-k)-tupla: s = r HT = ( s0, s1,..., sn-k-1 ), esta n-tupla es el sindrome de r.
18. Códigos cíclicos Los códigos cíclicos también se llaman CRC (Códigos de Redundancia Cíclica) o códigos polinomios. Su uso está muy extendido porque pueden implementarse en hardware. Estos códigos se basan en el uso de un polinomio generador G(X) de grado r, y en el principio de que n bits de datos binarios se pueden considerar como los coeficientes de un polinomio de orden n-1. Por ejemplo, los datos 10111 pueden tratarse como el polinomio x4 + x2 + x1 + x0 A estos bits de datos se le añaden r bits de redundancia de forma que el polinomio resultante sea divisible por el polinomio generador, sin generar resto. El receptor verificará si el polinomio recibido es divisible por G(X). Si no lo es, habrá un error en la transmisión.
19. CODIGOS CONVOLUCIONALES Se diferecian de los códigos de bloque en su forma estructural y las propiedades para corregir errores. Los códigos de bloque suelen tener limitada la capacidad de corrección de errores alrededor de 1 o 2 símbolos erróneos por palabra de código. Estos códigos son buenos para utilizar en canales con baja probabilidad de error. Los códigos convolucionales son adecuados para usar sobre canales con mucho ruido (alta probabilidad de error). Los códigos convolucionales son códigos lineales, donde la suma de dos palabras de código cualesquiera también es una palabra de código. Y al contrario que con los códigos lineales, se prefieren los códigos no sistemáticos. El sistema tiene memoria: la codificación actual depende de los datos que se envían ahora y que se enviaron en el pasado. Un código convolucional queda especificado por tres parámetros (n,k,m): n es el número de bits de la palabra codificada k es el número de bits de la palabra de datos m es la memoria del código o longitud restringida
20. Ejemplos - Código (2,1,3) - la palabra codificada tiene 2 bits de longitud - la entrada son bloques de 1 bit - la salida depende de los dos bloques anteriores y del actual - Código (4,2,3) - la palabra codificada tiene 4 bits de longitud - la entrada son bloques de 2 bit - la salida depende de los dos bloques anteriores y del ac
21. - Proceso de codificación El proceso de codificación de estos códigos se realiza utilizando un dispositivo lógico en el codificador. Ejemplo: Codificador convolucional (4,3,5)
22. La palabra codificada se obtendría como el resultado de realizar una serie de operaciones lógicas entre determinados bits que están almacenados en los registros intermedios. Ejemplo: Codificador convolucional (2,1,3)
23. - El conmutador con las dos entradas hace el papel de un registro de desplazamiento de dos estados. - El código convolucional es generado introduciendo un bit de datos y dando una revolución completa al conmutador. - Inicialmente se supone que los registros intermedios contienen ceros. En este ejemplo la palabra codificada se obtiene como resultado de sumas módulo-2 entre los bits indicados que están almacenados en los registros intermedios. Las secuencias de salida para el código anteriormente descrito: Como ejemplo del funcionamiento de este codificador, supongamos que se quiere enviar la secuencia de bits 0101 (donde los bits más a la derecha son los más antiguos). El proceso de codficación es el siguiente: - Se introduce el primer bit de la secuencia en el codificador:
24. Como ejemplo del funcionamiento de este codificador, supongamos que se quiere enviar la secuencia de bits 0101 (donde los bits más a la derecha son los más antiguos). El proceso de codficación es el siguiente: - Se introduce el primer bit de la secuencia en el codificador: - Se introduce el segundo bit de la secuencia en el codificador:
25. - Se introduce el tercer bit de la secuencia en el codificador: - Se introduce el cuarto bit de la secuencia en el codificador: Al final del proceso de codificación obtenemos que la secuencia codificada es 01 01 01 11.