Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceptos generales
Cdigos
Prof. Mario Medina mariomedina@udec.cl
Cdigo: conjunto de smbolos usados para representar letras, nmeros, palabras, conceptos u otros smbolos.
z
En un nmero codificado, las cifras representan algo, y slo podremos saber su significado si conocemos el cdigo que las gener
Mario Medina
Conceptos generales
z
Cdigos binarios
Difcil comprensin para el humano, pero lenguaje natural en circuitos z Representacin fcil y eficiente en
z
z z
Transmisin de informacin fcil y rpida Compresin para optimizar el espacio de almacenamiento Expresar adecuadamente los datos para su procesamiento Deteccin y correccin de errores
Definiciones
z
Definiciones
z
Capacidad de un cdigo
z
z
Utilizacin de un cdigo
z z
Nmero de smbolos de una palabra que deben modificarse para obtener la otra Mnima distancia entre 2 palabras vlidas cualesquiera de un cdigo Todas las palabras tienen distancia 1 con sus vecinos
Nmero de valores distintos definidos como vlidos en el cdigo Utilizacin del cdigo puede ser menor que la capacidad
z
Cdigo adyacente
z
Sistemas Digitales
Tipos de cdigos
z z z
Cdigos ponderados
Palabras del cdigo son generadas por un polinomio cuyos dgitos tienen una ponderacin establecida z Binary Coded Decimal (BCD)
z
z z
Cdigos ponderados
z
Cdigos BCD
Cdigos ponderados
z
Secuencias 1010 a 1111 no son vlidas Usa 4 bits para representar un dgito decimal
Dec
0 1
2 3 4
BCD 2421, BCD 1224, BCD 7421, BCD 6321, etc. En algunos, un decimal no tiene representacin nica
z
BCD 8421
0000 0001 0010
0011 0100
Dec
5
6 7 8 9
BCD 8421
0101
0110 0111 1000 1001
z z
BCD 8421 asegura representacin nica Cdigos BCD son vlidos para nmeros enteros y fraccionarios
z
Cdigos autocomplementados
BCD 4321 0000
0001 0010
Decimal 0 1
2 3 4 5 6 7 8 9
Cdigos en que el complemento disminuido de una palabra tambin es una palabra vlida
z
En binario
z
En binario, el complemento a 1 se obtiene invirtiendo cada uno de los bits originales Simplifican circuitos de complementacin Exceso 3: cdigo BCD 8421 + 3 BCD 2421
En BCD 7421
z
z z
0101
0110 1000
En BCD 4321
z
Ms utilizados
z z
1001 1010
1110
Sistemas Digitales
Cdigos autocomplementados
Decimal 0 1
2 3 4 5 6 7 8 9
Cdigos autocomplementados
z
Ejercicio:
z
Exceso 3 0011
0100 0101 0110 0111
Representar el numero 90710 en BCD exceso-3 y usar complemento a 1 para encontrar el complemento a la base disminuida del nmero (complemento a 9).
90710 = 1100 0011 1010Exc3 = 09210 en complemento a 9 0011 1100 0101Exc 3
0011 0100
1011 1100 1101 1110
1000
1001 1010
1011 1100
1111
Cdigos adyacentes
Llamados tambin cdigos cclicos o cdigos reflejados z Nmeros sucesivos difieren slo en 1 bit z Especialmente tiles en:
z
z z
Cdigos adyacentes
Decimal 0 1 2 3 4 5 6 7 8 9 Codigo Gray 0000
0001 0011 0010 0110 0111 0101 0100 1100 1101
Cdigo Gray
0110 0111 0101 0100 1100 1101 1111 1110 1010
Cdigo adyacente no ponderado Digitos decimales consecutivos difieren en un solo bit z Simplifica la transicin entre estados
z z
z
til para sistemas fsicos con transiciones mecnicas Mucho ruido y elevado consumo de potencia
Sistemas Digitales
Regla de conversin:
b MSB = g MSB b i = b i+ 1 g i
z z
Gray de 1 bit
z
Los dos valores posibles son 0 y 1 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 Repetir lo anterior con cdigo Gray de n-1 bits
b3 = g3=1 b2 = b3 g2 = 0 b1 = b2 g1 = 0 b0 = b1 g0 = 1
Gray de 2 bits
z z
Gray de n bits
z
Sistemas Digitales
Propiedad prefijo
z
Para que un cdigo de largo variable est completamente definido, debe cumplirse la
propiedad prefijo
si a1a2ak es una palabra vlida del cdigo, entonces no puede existir otra palabra vlida definida como a1a2aj, para j < k
Cdigo Huffman
z
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
z
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
Dada la siguiente frecuencia de smbolos Dato A B C D E Frecuencia 0.35 0.25 0.15 0.15 0.10
1 (0.25) 1 E (0.1)
Dato A B C D E
Sistemas Digitales
Puede invertir los bits de datos Bit Error Rate (BER): Tasa de errores en la transmisin
z z
de cdigos detectores
Cdigos de paridad
Agregar un bit a la palabra para verificar si nmero de bits en 1 es par o impar Tambin llamados m de n Mantiene un nmero constante de bits en 1
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
z z
Cdigos de paridad
z
Puede ser par o impar Agregar un bit a palabras transmitidas para asegurar que el nmero de 1s sea par o impar
z
Cdigo de paridad
z
Duplica la cantidad de palabras del cdigo z Igual nmero de palabras vlidas e invlidas z Cdigo de paridad asegura una distancia mnima de 2
Sistemas Digitales
50-43210 01-00001
01-00010 01-00100 01-01000 01-10000 10-00001 10-00010 10-00100 10-01000 10-10000
10-86420 01-00001
10-00001 01-00010 10-00010 01-00100 10-00100 01-01000 10-01000 01-10000 10-10000
Cdigos de 7 bits
z z
CRC divide polinomio M(x) de n bits por un polinomio generador G(x) de orden r < n (r bits)
z z z
T(x) = M(x)*xr+R(x)
El cuociente 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)
O, no son detectables
Ejemplo de CRC
z z
Ejemplo de CRC
z
M(x) =
x11+x10+x8+x5+x4+x2+x+1
11010011011100000 110101 111011100000 110101 Completar mensaje a n+r bits 1110100000 Alinear MSB con 1er bit en 1 110101 Realizar XOR entre los bits 11110000 Repetir hasta obtener el 110101 resto de la divisin 100100 Fcil de implementar con 110101 desplazamientos y XORs 10001
Sistemas Digitales
Ejemplo de CRC
z
Un CRC de r bits detecta una cadena de error en bits consecutivos de largo menor a r
z z
Existen combinaciones de errores no detectables z Pueden obtenerse del anlisis matemtico 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 z CRC-16-CCITT (x16 + x12 + x5 + 1): (X.25, Bluetooth) z CRC-32 (x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+ x5+x4+x2+x+1) (Ethernet, gzip, SATA, MPG)
z z
Cdigo Hamming
z
z z
Bit de validacin se escoge para formar paridad par sobre bits verificados
Sistemas Digitales
El bit de paridad de la posicin 2k comprueba los bits en las posiciones que tengan al bit k en su representacin binaria
Binario Posicin 1 2 3 4 5 6 7 8 9 10 11 12 X X X X x X X X X X
P1
X
P2
X X
P4
P8
P1 P2 2 1 P4 2 2 P8 2 3
20
1 2 4 8
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
Cada bit verifica paridad para el subconjunto asociado a la posicin j (tabla anterior)
c1 = b7 b5 b3 b1 c2 = b7 b6 b3 b2 z c4 = b7 b6 b5 b4
z z
X X X X X X X X X
z z
El error est en el bit c4c2c1 = 110 Receptor puede invertir bit 6 y corregir el error
z z
c4 = b4 b5 b6 b7 = 0 1 0 0 = 1 c2 = b2 b3 b6 b7 = 1 0 0 0 = 1 z c1 = b1 b3 b5 b7 = 1 0 1 0 = 0
1 p1 1
2 p2 1
3 d1 0
4 p4 0
5 d2 1
6 d3 1
7 d4 0
Cdigo Hamming(7, 4)
z
Transmisin de bloques
z
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 Agrega 3 bits de paridad por cada 4 bits de datos
Dato tiene bit de paridad (paridad horizontal) Bloque incluye palabra de validacin (paridad vertical) Error puede ser identificado y corregido Eficiente para grandes cantidades de datos Disminuye los bits redundantes en cada dato Permite detectar mltiples errores
z
Aunque no corregirlos
Sistemas Digitales
Transmisin de bloques
z
Cdigos alfanumricos
z
z z z
Permiten transmisin de informacin para equipos complejos de procesamiento de datos Letras, nmeros, smbolos y seales de control Ms comunes con ASCII y Unicode UNICODE (utf-8) z Utiliza 32 bits => 232 smbolos diferentes z Incluye casi todos los alfabetos conocidos z An quedan cdigos libres z Posibilidad de programacin internacional
error
Cdigos alfanumricos
z
z z z
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 z No hay estndar definido
z z
Cdigo de Barras
z
Digit 0 1 2 3 4
59
10