Você está na página 1de 54

Codificacin de informacin en binario

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

Usos comunes de codificacin


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

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.

El cdigo BCD 8421

0000 0001 0010

0 1 2 3 4 5 6 7 8 9 No vlido No vlido No vlido No vlido No vlido No vlido

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

Cdigos ponderados - BCD


Existen otras versiones de cdigos BCD. BCD 2421, BCD 1224, BCD 7421, BCD 6321, etc. En algunos, un decimal no tiene representacin nica. Ej: 610 en BCD 2421 puede ser 1100 o 0110 Es necesario definir normas particulares El cdigo BCD 8421 asegura representacin nica. Los cdigos BCD son vlidos para nmeros enteros y fraccionarios Permiten operaciones aritmticas de gran tamao

Ejemplo de cdigos BDC


Representacin del nmero 25 En binario 11001

En BCD 7421 0010 0101 En BCD 4321 0010 1001

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:

Exceso 3: cdigo BCD 8421 + 3 BCD 2421

Transiciones en cdigos BCD


BCD 8421: cambiar de 710 a 810 Cambiar de 01112 a 10002 Qu pasa si los 4 bits no cambian simultneamente?

0111 1111 1110 1100 1000

7 15 14 12 8

Vlido Invlido Invlido Invlido Vlido

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:

Conversin anloga-digital Control de mquinas-herramientas Los ms utilizados son:

Cdigo Gray Reflejado exceso 3

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

Cdigo adyacente no ponderado Simplifica la transicin entre estados

til para sistemas fsicos con transiciones mecnicas Mucho ruido y elevado consumo de potencia Determinar posicin y velocidad de ejes (rotary encoder)

Aplicacin comn

Codificador de posicin rotatorio


Usando cdigo Gray todas las posiciones son adyacentes

Conversin binario a Gray


Definiendo la operacin XOR

Ejemplo: pasar 11002 a Gray

00 = 0 0 1 = 1 1 0 = 1 11 = 0 La relacin para pasar de binario a Gray es g i = bi bi +1

g0 = b0 b1 = 0 0 = 0 g1 = b1 b2 = 0 1 = 1 g2 = b2 b3 = 1 1 = 0 g3 = b3 b4 = 1 0 = 1 Entonces, 11002 es 1010 Gray

Conversin de Gray a Binario

Regla de conversin: b BMS = g BMS b i = b i+1 g i 2

Ejemplo: Transformar el dato 1101Gray a binario b3 = g3=1 b2 = b3 g2 = 0 b1 = b2 g1 = 0 b0 = b1 g0 = 1

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

Entonces, 1101Gray es 10012

Generacin del Cdigo Gray

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

Gray de n bits. Repetir lo anterior con cdigo Gray de n-1 bits

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 Cdigo reflejado exceso 3

Cdigo Gray reflejado exceso 3

Cdigo Gray es cclico y adyacente


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

Cdigo reflejado exceso 3 es cclico, adyacente y circular


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

Se obtiene sumando 3 a cdigo Gray

Cdigos de largo variable


Los cdigos anteriores son de largo fijo Todos los smbolos se representan usando el mismo nmero de bits

Cdigo Huffman Asigna largo de representacin en funcin de la frecuencia del smbolo

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

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

Construccin de un cdigo Huffman

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

Frecuencia ser suma de frecuencias de los dos nodos

Repetir hasta que quede slo un nodo sin predecesor

Construccin de un cdigo Huffman

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

Ejemplo de cdigo de Huffman

Dada la siguiente frecuencia de smbolos


Dato Frecuencia

Se genera el siguiente rbol

A B C D E

0,35 0,25 0,15 0,15 0.10

Ejemplo de cdigo de Huffman

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

Cdigos detectores de errores

Ruido aditivo en los medios de transmisin


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

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

Cdigos detectores de Errores

Se desea detectar errores y pedir la retransmisin de datos errneos


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 detectores de errores

Tipos de cdigos detectores

Cdigos de paridad Agregar un bit a la palabra para verificar si nmero de bits en 1 es par o impar.

Cdigos de peso constante Tambin llamados m de n Mantiene un nmero constante de bits en 1

CRC (Cyclic Redundancy Check)

Cdigos de paridad

Paridad: cardinalidad de los 1s en una palabra

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

Expresar el binario 1001010 en un cdigo de paridad par

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

Cdigos de peso constante

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

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

Cdigos de 7 bits

Cdigos de peso constante


Decimal 0 1 2 3 4 5 6 7 8 9 2 de 5 00011 00101 00110 01010 01100 10100 11000 10001 10001 10010 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

Cyclic Redundancy Check

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)

Cyclic Redundancy Check

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

El receptor divide la palabra codificada por el mismo polinomio G(x)

Resto es 0: no hubo errores O no son detectables Resto es distinto de 0 error en la transmisin

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!

Cyclic Redundancy check (CRC)

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)

Cdigos correctores de errores

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 Hamming Transmisin de bloques

Cdigos correctores de errores

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

Cdigo que detecta y corrige un error


di : bits del dato original pi : bits redundantes

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

Generacin del Cdigo de Hamming

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

Verificacin del Cdigo de Hamming

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

Ejemplo del cdigo de Hamming

Enviar BCD 0110 codificado en Hamming Calcular bits de paridad p1p2p4 p1 = d3 d5 d7 = 0 1 0 = 1 p2 = d3 d6 d7 = 0 1 0 = 1 p4 = d5 d6 d7 = 0 1 1 = 0


Posicin Bit Hamming

1 p1 1

2 p2 1

3 d3 0

4 p4 0

5 d5 1

6 d6 1

7 d7 0

Ejemplo Cdigo Hamming

El dato recibido es 1100100 Calcular bits de comprobacin c4c2c1


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

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

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

Você também pode gostar