Escolar Documentos
Profissional Documentos
Cultura Documentos
Ctedra: Computacin para Ingenieros Universidad Nacional de Lomas de Zamora Facultad de Ingeniera
Introduccin
Un cdigo es un conjunto de smbolos usados para representar letras, nmeros, palabras, conceptos u otros smbolos. Ejemplos: cdigo morse, emoticones, etc. En un nmero codificado, las cifras representan algo, y slo podremos saber su significado si conocemos el cdigo que las gener. Los objetivos de este tema son:
Describir las distintas maneras en que los sistemas digitales codifican informacin usando el sistema binario. Describir tcnicas para aadir informacin redundante a estos cdigos binarios de forma que sea posible detectar u corregir errores que se puedan producir
Cdigos Binarios
Difcil comprensin para el humano, pero lenguaje natural en circuitos
Representacin fcil y eficiente en circuitos elctricos, mecnicos o hidrulicos Representacin fcil y eficiente en medios de almacenamiento pticos y magnticos
Definiciones
Capacidad de un cdigo Nmero de valores distintos en el cdigo Depende del nmero de dgitos en el cdigo Cdigo de 3 bits tiene capacidad 23 = 8 Utilizacin de un cdigo Nmero de valores distintos definidos como vlidos en el cdigo Utilizacin del cdigo puede ser menor que la capacidad. Existencia de palabras no vlidas. Distancia entre 2 palabras de un cdigo Nmero de smbolos de una palabra que deben modificarse para obtener la otra. Distancia mnima de un cdigo Mnima distancia entre 2 palabras vlidas cualesquiera de un cdigo. Cdigo adyacente Todas las palabras tienen distancia 1 con sus vecinos
Cdigos ponderados
Son aquellos donde las palabras del cdigo son generadas por un polinomio cuyos dgitos tienen una ponderacin establecida
El cdigo BCD Binary Coded Decimal es uno de los cdigos ponderados ms usados. En el cada cifra decimal se representa por 4 bits. Con cuatro dgitos se pueden representar 24 = 16 combinaciones, pero slo necesitamos 10, por lo que hay muchos cdigos BCD posibles. La capacidad del cdigo es 16 pero la utilizacin de su capacidad es 5/8 Existen diferentes tipos de BCD, dependiendo de las ponderaciones de cada bit.
La versin ms usada del cdigo BCD es la 8421 tambin llamada BCD Natural (es el ms parecido al binario puro) Cada dgito decimal se representa por medio de un cdigo binario de cuatro bits Este cdigo es ponderado: la designacin 8421 indica los pesos binarios de cada uno de los cuatro bits
0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Decimal 0 1 2 3 4 5 6 7 8 9
BCD 7421 0000 0001 0010 0011 0100 0101 0110 1000 o 0111 1001 1010
BCD 4321 0000 0001 0010 0100 o 0011 1000 o 0101 1001 o 0110 1010 o 0111 1100 o 1011 1101 1110
Cdigos autocomplementados
Cdigos en que el complemento disminuido de una palabra tambin es una palabra vlida. En binario, el complemento a 1 se obtiene invirtiendo cada uno de los bits originales Son especialmente tiles para realizar restas Simplifican circuitos de complementacin Los ms utilizados son:
7 15 14 12 8
Cdigos Autocomplementados
Decimal
0 1 2 3 4 5 6 7 8 9
Exceso 3
0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
BCD 2421
0000 0001 0010 0011 0100 1011 1100 1101 1110 1111
Cdigos Adyacentes
Llamados tambin cdigos cclicos o cdigos reflejados Los nmeros sucesivos difieren slo en 1 bit Son especialmente tiles en:
Cdigos adyacentes
Decimal
0 1 2 3 4 5 6 7 8 9
Cdigo Gray
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
Reflejado Exceso 3
0010 0110 0111 0101 0100 1100 1101 1111 1110 1010
Cdigo Gray
til para sistemas fsicos con transiciones mecnicas Mucho ruido y elevado consumo de potencia Determinar posicin y velocidad de ejes (rotary encoder)
Aplicacin comn
Gray de 1 bit Los dos valores posibles son 0 y 1 Gray de 2 bits Copiar el Gray de 1 bit dos veces, la segunda en forma invertida Anteponer un 0 a la formacin original y un 1 a la parte reflejada
Los cdigos anteriores son de largo fijo Todos los smbolos se representan usando el mismo nmero de bits
Propiedad prefijo
Para que un cdigo de largo variable est completamente definido, debe cumplirse la propiedad prefijo. Si a1a2...ak es una palabra vlida del cdigo, entonces no puede existir otra palabra vlida definida como a1a2...aj, para j < k
Construir el rbol de decodificacin Agregar cada smbolo a una hoja del rbol Identificar los 2 nodos de ms baja frecuencia que no poseen predecesores y construir el nodo predecesor
Rotular los arcos del grafo Asignar un 0 a uno de los arcos que salen del nodo raz y un 1 al otro arco Repetir recursivamente hasta haber cubierto todos los nodos
Asignar a cada nodo la secuencia de 0s y 1s correspondientes al camino desde la raz al nodo en cuestin
A B C D E
Este cdigo cumple con la propiedad prefijo Largo promedio de un smbolo 2.25 bits
Dato A B C D E Frecuencia 0,35 0,25 0,15 0,15 0,10 Cdigo 00 01 10 110 111
Puede invertir los bits de datos Bit Error Rate (BER): Tasa de errores en la transmisin
Deben existir palabras no vlidas en el cdigo La inversin no deseada de un bit genera una palabra no vlida
Distancia mnima de un cdigo debe ser mayor que n n: nmero de errores a detectar Inversin de hasta n bits da palabra no vlida
Cdigos de paridad Agregar un bit a la palabra para verificar si nmero de bits en 1 es par o impar.
Cdigos de paridad
Puede ser par o impar Agregar un bit a palabras transmitidas para asegurar que el nmero de 1s sea par o impar Transmisor y receptor se ponen de acuerdo Duplica la cantidad de palabras del cdigo Igual nmero de palabras vlidas e invlidas Cdigo de paridad asegura una distancia mnima de 2
Cdigos de paridad
Cdigos de paridad
1 Paridad
1001010 Dato
Palabras como 01001010 y 10001010 son invlidas en el cdigo. Nmero de 1s es impar. Cdigo slo detecta nmero impar de errores
Mantienen un nmero constante m de bits en 1 en las palabras del cdigo Ms usados: cdigos pentdicos (5 bits)
Cdigos de 7 bits
Cada nmero binario de n bits corresponde a un polinomio M(x) 101001 => x5+ x3+1 CRC divide polinomio M(x) de n bits por un polinomio generador G(x) de orden r < n (r bits) El cociente de la divisin es Q(x) El resto de la divisin es R(x) Se cumple que M(x)*xr/G(x) = Q(x) R(X)/G(x)
Se transmite mensaje de (n+r) bits formado por M(x) seguido de R(x) T(x) = M(x)*xr+R(x)
Ejemplo de CRC
El mensaje M de 12 bits es 110100110111 M(x) = x11+x10+x8+x5+x4+x2+x+1 Polinomio generador G(x) = x5+x4+x2+1 Dividir 11010011011100000 por 110101 Resto de la divisin R(x) = 10001 Palabra transmitida es 11010011011110001
Ejemplo de CRC
Divisin mediante restas independientes sin prstamo Alinear MSB con 1er bit en 1 Realizar XOR entre los bits Repetir hasta obtener el resto de la divisin Fcil de implementar con desplazamientos y XORs
11010011011100000 110101 111011100000 110101 1110100000 110101 11110000 110101 100100 110101 10001
Ejemplo de CRC
Supongamos que un error de transmisin modifica 3 bits sucesivos El dato recibido es 11011101011110001 El resto de divisin por G(x) es distinto de 0: Error!
Supongamos que un error de transmisin modifica 7 bits sucesivos El dato recibido es 11111100111110001 El resto de divisin por G(x) es 0: Error no detectado!
Un CRC de r bits detecta una cadena de error en bits consecutivos de largo menor a r Existen combinaciones de errores no detectables. Pueden obtenerse del anlisis matemtico. Los polinomios usados en CRC se encuentran estandarizados para aplicaciones especficas
CRC-1 (x+1): bit de paridad CRC-5-USB (x5+x2+1): USB token packets CRC-16-CCITT (x16 + x12 + x5 + 1): (X.25, Bluetooth)
La paridad permite detectar pero no corregir errores. La correccin requiere insercin de ms bits redundantes. Distancia mnima al menos 3. Muy usados para respaldo de informacin.
Cdigo corrector de errores de n bits m bits corresponden al dato k=n-m son la informacin redundante Se debe cumplir M 1 = C + D, CD
M C D
M: distancia mnima del cdigo D: nmero de errores a detectar C: nmero de errores a corregir
1 0 0 2 0 1 3 01 21 4 01 32 5 0, 1 2 4, 3 2 6 0, 1 2 5, 4 3
Cdigo de Hamming
pi en las posiciones que son potencias de 2 di en las posiciones restantes Un dato de 4 bits d1d2d3d4 requerir 3 bits de validacin p1p2p4
1 p1 2 p2 3 d1 4 p3 5 d2 6 d3 7 d4
Posicin Bit
Cada bit de validacin verifica paridad de un subconjunto de bits del dato Estas posiciones estn dadas por:
Posicin 1 (p1): 1, 3, 5, 7, 9, 11, 13, ... Posicin 2 (p2): 2, 3, 6, 7, 10, 11, 14, 15, ... Posicin 4 (p4): 4, 5, 6, 7, 12, 13, 14, 15, ... Posicin 8 (p8): 8, 9, 10, 11, 12, 13, 14, 15, 24, ...
Bit de validacin se escoge para formar paridad par sobre bits verificados
Calcular los bits de comprobacin Cj Cada bit verifica paridad para el subconjunto asociado a la posicin j (tabla anterior)
c1 = b7 b5 b3 b1 c2 = b7 b6 b3 b2 c4 = b7 b6 b5 b4
El valor decimal equivalente a c4c2c1 indicar la posicin donde hubo un error Si no hubo error, c4c2c1 ser 000
1 p1 1
2 p2 1
3 d3 0
4 p4 0
5 d5 1
6 d6 1
7 d7 0
c4 = p4 d5 d6 d7 = 0 1 0 0 = 1 c2 = p2 d3 d6 d7 = 1 0 0 0 = 1 c1 = p1 d3 d5 d b7 = 1 0 1 0 = 0
El error est en el bit c4c2c1 = 110 Receptor puede invertir bit 6 y corregir el error
Cdigo Hamming(7, 4)
Cdigo Hamming (7, 4) es el ms usado En conjunto con BCD 8421 Este cdigo puede corregir cualquier error en un bit, y detectar todos los errores de 2 bits Probabilidad de 2 errores es bajsima Cdigo Hamming(7, 4) es eficaz pero ineficiente Agrega 3 bits de paridad por cada 4 bits de datos
Transmisin de bloques
Transmitir bloques de datos El dato tiene bit de paridad (paridad horizontal) El bloque incluye palabra de validacin (paridad vertical) Error en un bit modifica ambas paridades Error puede ser identificado y corregido Eficiente para grandes cantidades de datos Disminuye los bits redundantes en cada dato Permite detectar mltiples errores Aunque no corregirlos
Transmisin de bloques
Cdigos alfanumricos
Permiten transmisin de informacin para equipos complejos de procesamiento de datos Letras, nmeros, smbolos y seales de control Los ms comunes son ASCII y Unicode UNICODE Utiliza 16 bits => 65536 smbolos diferentes Incluye casi todos los alfabetos conocidos An quedan cdigos libres Posibilidad de programacin internacional
Cdigos alfanumricos
Cdigo ASCII es el ms usado hoy en da American Standard Code for Information Interchange Codifica utilizando 7 bits (128 dgitos diferentes) Un octavo bit se utiliza como bit de paridad ASCII Extendido (8 bits) Permite representar 256 smbolos Engorroso e incompatible entre lenguajes No hay estndar definido
U n i c o d e
C d i g o s A S C I I