Você está na página 1de 10

Sistemas Digitales

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

Ejemplos: cdigo morse, emoticones, etc.

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

Usos comunes de codificacin


z 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

Circuitos elctricos, mecnicos o hidrulicos Medios de almacenamiento pticos y magnticos

Definiciones
z

Definiciones
z

Capacidad de un cdigo
z
z

Nmero de valores distintos en el cdigo


Depende del nmero de dgitos en el cdigo z Cdigo de 3 bits tiene capacidad 23 = 8
z

Distancia entre 2 palabras de un cdigo


z

Utilizacin de un cdigo
z z

Distancia mnima de un cdigo


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

Existencia de palabras no vlidas

2011 Mario Medina C.

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 autocomplementados Cdigos adyacentes z Cdigo Gray

Cdigos ponderados ms usados Cada cifra decimal se representa por 4 bits


z z

Existen diferentes tipos de BCD, dependiendo de las ponderaciones de cada bit

Capacidad del cdigo: 16 Utilizacin del cdigo: 5/8

Cdigos ponderados
z

Cdigos ponderados BCD


z

BCD 8421 (Similar a binario puro)


z z

Existen otros cdigos BCD


z 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

Ej: 610 en BCD 2421 puede ser 1100 o 0110

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

Es necesario definir normas particulares

Se prefiere 1100: dgitos 0 a 4 comienzan con 0

Permite operaciones aritmticas de gran tamao

Ejemplo de cdigos BCD


z

Cdigos autocomplementados
BCD 4321 0000
0001 0010

Representacin del nmero 25


z z z

Decimal 0 1
2 3 4 5 6 7 8 9

BCD 7421 0000


0001 0010 0011 0100

Cdigos en que el complemento disminuido de una palabra tambin es una palabra vlida
z

En binario
z

11001 0010 0101 0010 1001

0100 0011 0101 1000


1001 0110 1010 0111 1011 1100 1101

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

Especialmente tiles para realizar restas


z

0101
0110 1000

En BCD 4321
z

Ms utilizados
z z

1001 1010

Se prefiere que dgitos 0 a 4 empiecen con 0

1110

2011 Mario Medina C.

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

BCD 2421 0000


0001 0010

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

Demostrar que el resultado est correcto


z El

complemento a 9 de 90710 es 999-907 = 09210

1011 1100

1111

Transiciones en cdigos BCD


z

Cdigos adyacentes
Llamados tambin cdigos cclicos o cdigos reflejados z Nmeros sucesivos difieren slo en 1 bit z Especialmente tiles en:
z
z z

BCD 8421: cambiar de 710 a 810


z z

Cambiar de 01112 a 10002 Qu pasa si los 4 bits no cambian simultneamente?


0111 1111 1011 1001 1000 7 15 11 9 8 Vlido Invlido Invlido Vlido Vlido

Conversin anloga-digital Control de mquinas-herramientas Cdigo Gray Reflejado exceso 3

Los ms utilizados son


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

Reflejado Ex. 3 0010

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

2011 Mario Medina C.

Sistemas Digitales

Codificador de posicin rotatorio


z

Conversin binario a Gray


z

Aplicacin comn: determinar posicin y velocidad de ejes (rotary encoder)


z

Con cdigo Gray todas las posiciones son adyacentes

Definiendo la operacin XOR


00 = 0 01= 1 1 0 = 1 1 1 = 0

Ejemplo: pasar 11002 a Gray


g0 = b0 b1 = 0 0 = 0 g1 = b1 b2 = 0 1 = 1 g2 = b2 b3 = 1 1 = 0 g3 = b3 b4 = 1 0 = 1
z

La relacin para pasar de binario a Gray es


g i = b i b i+ 1

Entonces, 11002 es 1010Gray

Conversin Gray a binario


z

Generacin cdigo Gray


z z

Regla de conversin:
b MSB = g MSB b i = b i+ 1 g i
z z

Ejemplo: Transformar el dato 1101Gray a binario


z z 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

Se copia el bit ms significativo Se usa XOR para calcular bits siguientes

Entonces, 1101Gray es 10012

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

Generacin cdigo Gray


0 1 00 01 11 10 000 001 011 010 110 111 101 100 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

Cdigo Gray y cdigo reflejado exceso 3


z

Cdigo Gray es cclico y adyacente


z z

Cdigo Gray Cdigo reflejado exceso 3


z

Distancia 1 entre dgitos 0 al 9 Distancia 3 entre el 9 y el 0

Cdigo reflejado exceso 3 es cclico, adyacente y circular


z z z

Distancia 1 entre dgitos 0 al 9 Distancia 1 entre 9 y 0 Se obtiene sumando 3 a cdigo Gray

2011 Mario Medina C.

Sistemas Digitales

Cdigos de largo variable


z

Propiedad prefijo
z

Cdigos anteriores son de largo fijo


z

Todos los smbolos se representan usando el mismo nmero de bits


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

Asigna largo de representacin en funcin de la frecuencia del smbolo


Secuencias ms cortas corresponden a smbolos ms frecuentes z Reduce largo promedio de mensajes
z

Construccin de un cdigo Huffman


z

Construccin de un cdigo Huffman


z

Construir el rbol de decodificacin


z z

Rotular los arcos del grafo


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

Frecuencia ser suma de frecuencias de los dos nodos

Repetir hasta que quede slo un nodo sin predecesor

Asignar a cada nodo la secuencia de 0s y 1s correspondientes al camino desde la raz al nodo en cuestin

Ejemplo cdigo Huffman


z

Ejemplo cdigo Huffman


Este cdigo cumple con la propiedad prefijo z Largo promedio de un smbolo: 2.25 bits
z

Dada la siguiente frecuencia de smbolos Dato A B C D E Frecuencia 0.35 0.25 0.15 0.15 0.10

Se genera el siguiente rbol


0 (0.6) 1 (0.4)

0 0 1 C (0.15) A (0.35) B (0.25) 0 D (0.15)

1 (0.25) 1 E (0.1)

Dato A B C D E

Frecuencia Cdigo 0.35 00 0.25 01 0.15 10 0.15 110 0.10 111

2011 Mario Medina C.

Sistemas Digitales

Ejemplo cdigo Huffman


Smbolo Frecuencia A B C D E F G 0,15 0,30 0,20 0,05 0,15 0,05 0,10 Cdigo 010 00 10 1110 011 1111 110

Cdigos detectores de errores


z

Ruido aditivo en los medios de transmisin


z z

Puede invertir los bits de datos Bit Error Rate (BER): Tasa de errores en la transmisin
z z

Normalmente del orden de 10-9 Depende de la tasa de transmisin y potencia de la seal

Cdigos detectores de errores


z

Cdigos detectores de errores


z Tipos
z
z

Se desea detectar errores y pedir la retransmisin de datos errneos


z

de cdigos detectores

Deben existir palabras no vlidas en el cdigo


z

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

Inversin no deseada de un bit genera palabra no vlida


z z z

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 peso constante


z z

CRC (Cyclic Redundancy Check)

Cdigos de paridad
z z

Cdigos de paridad
z

Paridad: cardinalidad de los 1s en una palabra


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

Expresar el binario 1001010 en un cdigo de paridad par


1 Paridad 1001010 Dato

Transmisor y receptor se ponen de acuerdo

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

Palabras como 01001010 y 10001010 son invlidas en el cdigo


z z

Nmero de 1s es impar Cdigo slo detecta nmero impar de errores

2011 Mario Medina C.

Sistemas Digitales

Cdigos de peso constante


Mantienen un nmero constante m de bits en 1 en las palabras del cdigo z Ms usados: cdigos pentdicos (5 bits)
z
z z

Cdigos de peso constante


Decimal 0 1 2 3 4 5 6 7 8 9 2 de 5 00011
00101 00110 01010 01100

BCD 63210 00110


00011 00101 01001 01010 01100 10001 10010 10100 11000

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

Walking code 2 de 5 BCD 63210 Qui-binario (10-86420) Bi-quinario (50-43210)

Cdigos de 7 bits
z z

10100 11000 01001 10001 10010

Cyclic Redundancy Check (CRC)


z

Cyclic Redundancy Check (CRC)


z

Nmero binario de n bits corresponde a un polinomio M(x)


z

101001 => x5+ x3+1


z

Se transmite mensaje de (n+r) bits formado por M(x) seguido de R(x)


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 receptor divide la palabra codificada por el mismo polinomio G(x)


z z

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)

Resto es 0: no hubo errores


z

O, no son detectables

Resto es distinto de 0: error en la transmisin

Ejemplo de CRC
z z

Ejemplo de CRC
z

Mensajes M de 12 bits es 110100110111


z

M(x) =

x11+x10+x8+x5+x4+x2+x+1

Polinomio generador G(x) = x5+x4+x2+1 z Dividir 11010011011100000 por 110101


z z

Divisin mediante restas independientes sin prstamo


z z z z z

Resto de la divisin R(x) = 10001 Palabra transmitida es 11010011011110001

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

2011 Mario Medina C.

Sistemas Digitales

Ejemplo de CRC
z

Cyclic Redundancy Check (CRC)


z

Supongamos que un error de transmisin modifica 3 bits sucesivos


z z

Un CRC de r bits detecta una cadena de error en bits consecutivos de largo menor a r
z z

Dato recibido es 11011101011110001 Resto de divisin por G(x) es distinto de 0: Error!

Supongamos que un error de transmisin modifica 7 bits sucesivos


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

Dato recibido es 11111100111110001 Resto de divisin por G(x) es 0: Error no detectado!

Cdigos correctores de errores


z

Cdigos correctores de errores


z

Paridad permite detectar pero no corregir errores


z

Cdigo corrector de errores de n bits


z z z

Correccin requiere insercin de ms bits redundantes


z

m bits corresponden al dato k=n-m son la informacin redundante


Se debe cumplir M 1 = C + D, CD
M: distancia mnima del cdigo D: nmero de errores a detectar z C: nmero de errores a corregir
z z M C D 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

Distancia mnima al menos 3

Muy usados para respaldo de informacin


z z

Cdigo Hamming Transmisin de bloques

Cdigo Hamming
z

Generacin de Cdigo Hamming


z

Cdigo que detecta y corrige un error


z z

z z

pi en las posiciones que son potencias de 2


z

di : bits del dato original pi : bits dedundantes

Cada bit de validacin verifica paridad de un subconjunto de bits del dato


z

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, z Posicin 4 (p4): 4, 5, 6, 7, 12, 13, 14, 15, z Posicin 8 (p8): 8, 9, 10, 11, 12, 13, 14, 15, 24,
z z

Un dato de 4 bits d1d2d3d4 requerir 3 bits de validacin p1p2p4


Posicin Bit 1 p1 2 p2 3 d1 4 p4 5 d2 6 d3 7 d4

di en las posiciones restantes

Bit de validacin se escoge para formar paridad par sobre bits verificados

2011 Mario Medina C.

Sistemas Digitales

Generacin de Cdigo Hamming


z

Verificacin de Cdigo Hamming


z

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

Calcular los bits de comprobacin Cj


z

P1
X

P2
X X

P4

P8

P1 P2 2 1 P4 2 2 P8 2 3

20

1 2 4 8

0001 0010 0100 1000

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

El valor decimal equivalente a c4c2c1 indicar la posicin donde hubo un error


z

Si no hubo error, c4c2c1 ser 000

Ejemplo Cdigo Hamming


z

Ejemplo Cdigo Hamming


z

Enviar BCD 0110 codificado en Hamming


z

Dato recibido es 1100100


z

Calcular bits de paridad p1p2p4


p1 = b3 b5 b7 = 0 1 0 = 1 z p2 = b3 b6 b7 = 0 1 0 = 1 z p4 = b5 b6 b7 = 0 1 1 = 0
z

Calcular bits de comprobacin c4c2c1


z z

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

Posicin Bit Hamming

1 p1 1

2 p2 1

3 d1 0

4 p4 0

5 d2 1

6 d3 1

7 d4 0

Se debi haber recibido 1100110 Dato transmitido correcto es 0110

Cdigo Hamming(7, 4)
z

Transmisin de bloques
z

Cdigo Hamming(7, 4) es el ms usado


z z z

Transmitir bloques de datos


z 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

Cdigo Hamming(7, 4) es ineficiente


z

Error en un bit modifica ambas paridades


z z z z

Aunque no corregirlos

2011 Mario Medina C.

Sistemas Digitales

Transmisin de bloques
z

Cdigos alfanumricos
z

Transmitir 5 datos usando paridad par vertical y horizontal


Paridad 1 1 0 0 0 0 Dato 01101 00100 10010 01001 11110 01100

Error en la transmisin puede ser corregido


Paridad 0 0 0 1 0 0 Recibido 101101 100100 010010 001011 011110 001100 000010

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

Cdigo ASCII es el ms usado hoy en da


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

UPC (Universal Product Code)


z

Se puede leer de izquierda a derecha o de derecha a izquierda


Izquierdo 0001101 0011001 0010011 0111101 0100011 Derecho 1110010 1100110 1101100 1000010 1011100 Digit 5 6 7 8 9 Izquierdo 0110001 0101111 0111011 0110111 0001011 Derecho 1001110 1010000 1000100 1001000 1110100

Digit 0 1 2 3 4

59

2011 Mario Medina C.

10

Você também pode gostar