Sei sulla pagina 1di 19

0.4 Cdigos de caracteres.

10.4.1 Cdigo Decimal Codificado en Binario (BCD). Sirve para representar los dgitos decimales del 0 al 9 y es un ejemplo de un cdigo ponderado, es decir, cada posicin de bit en el cdigo tiene un valor o peso numrico fijo asociado a ella. Este cdigo asigna una representacin binaria sin signo de 4 bits a cada dgito entre 0 y 9, no usndose las palabras del cdigo entre 1010 y 1111. La conversin entre las representaciones BCD y decimal se puede llevar a cabo simplemente sustituyendo 4 dgitos BCD por cada dgito decimal y viceversa. Sin embargo, en la prctica se suelen agrupar dos dgitos BCD en un byte de 8 bits, que por tanto puede representar cualquier valor comprendido entre 0 y 99. Ejemplo 3. Codificar el nmero N = (9750)10 en BCD.

Despus se concatenan los cdigos individuales para obtener N = (1001011101010000) El cdigo BCD se puede utilizar en operaciones aritmticas. La suma es la ms importante de estas operaciones, ya que las otras tres se pueden llevar a cabo utilizando la suma. Para sumar dos nmeros en formato BCD se siguen los siguientes pasos:

Se suman utilizando las reglas de la suma binaria. Si una suma de cuatro bits es igual o menor que 9, es un nmero BCD vlido. Si una suma de 4 bits es mayor que 9, o si se genera un acarreo en el grupo de 4 bits, el resultado no es vlido. En este caso, se suma 6 (0110) al grupo de 4 bits para saltar as los 6 estados no vlidos y pasar al cdigo BCD. Si se genera un acarreo al sumar 6, ste se suma al grupo de 4 bits siguiente.

10.4.2 Cdigo ASCII. Es el cdigo de caracteres ms utilizado en las aplicaciones de cmputo. Por sus siglas en ingles se llama Cdigo estndar americano para intercambio de informacin. En general, una cadena de bits puede representar cualquier carcter, numrico o no. Dado que la mayora de los procesadores de datos incluyen texto, los caracteres que se usan mas frecuentemente forman parte de un alfabeto, que se representa en el computador con una cadena de bits particular. En este cdigo, cada carcter se representa con una cadena de 7 bits. Este cdigo codifica 128 caracteres diferentes, incluyendo maysculas y minsculas, nmeros, algunos signos de puntuacin, y una serie de caracteres de control. Cada una de las palabras del cdigo ASCII suele almacenar en un byte, que incluye un bit de paridad extra que se usa para deteccin de errores. 10.4.3 Cdigo Gray. Un cdigo cclico se puede definir como cualquier cdigo en el que, para cualquier palabra de cdigo, un corrimiento circular produce otra palabra del cdigo. El cdigo Gray es uno de los tipos ms comunes de cdigos cclicos y tiene la caracterstica de que las palabras de cdigo para dos nmeros consecutivos difieren slo en un bit. Es decir, la distancia entre las

dos palabras de cdigo es 1. En general la distancia entre dos palabras de cdigo binario es igual al nmero de bits en que difieren las dos palabras. Para la conversin de cdigo binario a cdigo gray se siguen los siguientes pasos: El bit ms significativo en el cdigo gray, es el mismo de cdigo binario. Yendo de izquierda a derecha, sumar cada par adyacente de los bits en cdigo binario para obtener el siguiente bit en cdigo gray. Se descartan los acarreos. Para convertir de cdigo gray a binario, se siguen los pasos siguientes: El bit ms significativo en cdigo binario, es el mismo que el correspondiente bit en cdigo gray. A cada bit del cdigo binario generado, se le suma el bit en cdigo gray de la siguiente posicin adyacente. Se descartan los acarreos.

Ejemplo 4. Defina un cdigo Gray para codificar los nmeros decimales del 0 al 15. Solucin. Se necesitan cuatro bits para representar todos los nmeros, y podemos construir el cdigo necesario asignando al bit i de la palabra de cdigo el valor 0 s los bits i e i 1 del nmero binario correspondientes son iguales, y 1 en caso contrario.

El bit ms significativo del nmero siempre se debe comparar con 0 al utilizar esta tcnica. El cdigo resultante es:

Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

10.5 Cdigo de deteccin de errores.

Un proceso de comunicacin puede tener lugar en diversas formas: por ejemplo al hacer una llamada telefnica, al enviar un telegrama, al usar un lenguaje de signos. En tales casos, el proceso involucra el flujo de informacin a travs de un medio, el cual va del remitente al receptor. El medio que lleva la informacin puede ir de la mmica al habla, o la electricidad al agua, o una secuencia de dgitos

binarios y puede ser tan intangible como cualquier cosa mediante la cual una mente humana puede afectar a otra. En cualquier caso, un proceso de comunicacin involucra un flujo de informacin a travs de un sistema.
Un sistema de comunicacin ideal se puede representar por tres partes esenciales a saber:

Transmisor, remitente o fuente Canal o medio de almacenamiento Receptor

En la prctica, un canal de comunicacin est sujeto a una a diversidad de perturbaciones que resultan en una distorsin del mensaje que se est trasmitiendo. Cualquier alteracin de estas se llama ruido. La forma en la cual el ruido puede aparecer depende del canal. Por ejemplo, en una conversacin entre dos personas, el canal puede estar sujeto a ruidos, tales como el viento, un carro que pasa, otras voces. En cualquier caso, se trata de minimizar las prdidas debidas al ruido y recuperar de una manera ptima el mensaje original cuando se ha contaminado por la presencia del ruido.
Un dispositivo que se puede usar para mejorar la eficiencia del canal de comunicacin es un codificador que transforma el mensaje que llega de tal manera que se puede detectar la presencia del ruido en el mensaje transformado. El uso de un codificador requiere que se use un decodificador para transformar el mensaje codificado a su forma original que el receptor pueda entender.

Es posible no slo detectar la distorsin debida al ruido si no tambin corregir el mensaje al usar un codificador apropiado y mostrar la presencia del ruido en el canal. El modelo sera as:

Esta parte se ocupa de los canales de comunicacin que manejan smbolos de un conjunto especifico llamado alfabeto del lenguaje de comunicacin. Cualquier elemento del alfabeto se llamar un smbolo, letra o carcter. Una secuencia finita de caracteres se llama mensaje o palabra. La longitud de una palabra x que se denota L(x) es el nmero de smbolos de la palabra. Cuando los mensajes originalmente expresados en un lenguaje, se transforman en un mensaje en otros lenguajes, de una manera que sea comprensible para ambos, el transmisor y el receptor, de modo que estos mensajes se puedan transformar sin ambigedades al regreso, entonces se puede decir que estos mensajes estn codificados. El proceso de codificacin de o enciframiento es un procedimiento para asociar palabras de un lenguaje, con ciertas palabras de otro lenguaje de una manera uno a uno. De igual manera el proceso de decodificacin o desciframiento, o es la operacin inversa, o alguna otra transformacin uno a uno. En la mayora de las aplicaciones el canal de comunicacin est limitado a un alfabeto valuado de manera binaria cuyas seales se pueden denotar como 0 y 1. Un canal as se llama canal binario. Cualquier cdigo de n bits s e puede considerar como un subconjunto de todas las posibles cadenas de n bits.

Las cadenas incluidas en este subconjunto particular se denominan palabras cdigo, mientras las cadenas que no estn incluidas se denominan palabras que no son del cdigo. Un cdigo se dice que es un cdigo de deteccin de errores si tiene la propiedad de que ciertos tipos de errores pueden transformar palabras del cdigo en palabras que no son del cdigo. Suponiendo que se utilizan slo palabras del cdigo para la transmisin de datos, cualquier error introducido durante la transmisin se pondr de manifiesto inmediatamente puesto que cambiar palabras del cdigo en palabras que no son del cdigo. Es decir, si la cadena recibida es una palabra del cdigo, los datos son correctos; si no es una palabra del cdigo, los datos deben ser errneos

Ejemplo 5.
Codifique el alfabeto de 8 smbolos denotados con el conjunto [A, B, C,...H]. Cada una de las letras se puede representar con una secuencia de tres dgitos binarios. Un cdigo posible es el siguiente:

Smbolo A B C D E F G H

Cdigo original 000 001 010 011 100 101 110 111

Si en este ejemplo se cambia un mensaje transportado por un canal, debido a alteraciones o ruido, entonces el receptor cometer un error indetectable e incorregible porque cualquiera intercambio de 0 y 1 en una secuencia de cdigo en especial resulta en una secuencia de cdigos diferentes. Por ejemplo si la secuencia 000 para A se cambia por ruido a 100 entonces se identificar como 100, entonces, se decodificar como E. Se modificar ahora el cdigo al aadirle el dgito extra o redundante a cada secuencia de 3 bits como se muestra en la siguiente tabla:

Smbolo A B C D E F G H

Cdigo original Cdigo 000 001 010 011 100 101 110 111

redundante 0000 0011 0101 0110 1001 1010 1100 1111

Este dgito de ms se escoge para que sea 1 si la suma de los tres dgitos del cdigo original es impar; si no sucede as, se escoge para que sea 0. Un error sencillo en una secuencia de cdigo en particular produce otra secuencia que no pertenece al cdigo. Por ejemplo, la secuencia de cdigo 0000 para A se podra transformar por el ruido en cualquiera de las secuencias 0001, 0010, 0100, 1000. Ninguna de estas secuencias resultantes aparece en el cdigo y de inmediato se detecta un error. As la redundancia en el cdigo permite detectar un error de un dgito por secuencia de cdigo. Obsrvese que la secuencia 0001 se puede producir por un error de un solo dgito de las secuencias para A, B, C, o E, por consiguiente, no es posible corregir el error. Al introducir redundancias adicionales, es posible tanto detectar como corregir uno o ms errores por secuencia de cdigos.

Se tendrn en cuenta las siguientes definiciones: Un error en un dato binario se define como un valor incorrecto en uno ms bits. Un ERROR SIMPLE es un valor incorrecto en un solo bit. Un ERROR MULTIPLE se refiere a la existencia de uno o ms bits incorrectos.

Sean I y J palabras de informacin binaria de n bits. El peso de I, w(I), se define como el nmero de bits de I igual a 1.
La DISTANCIA entre I Y J que se designa por d(I, J), es igual al nmero de bits en que difieren I y J.

Ejemplo 6.

S I=(01101100) y J= (11000100) w(I)=4, w(J)=3, d(I, J)=3 La tarea bsica en la transmisin de informacin es eliminar la probabilidad de recibir una palabra diferente a la enviada. Esto se hace de la siguiente forma:

Se elige un entero n > m y una funcin uno a uno e: Bm Bn.La funcin e es la funcin de codificacin. Si a Bm, entonces e(a) Bn, es la palabra codificada que representa a a. Los ceros y unos adicionales pueden proporcionar el medio para detectar o corregir los errores producidos en el canal de transmisin as:

En general se pueden presentar errores en la transmisin. La palabra codificada ha sido trasmitida con k o menores errores si x y xt difieren en al menos una pero no ms de k posiciones. S e: Bm Bn es una funcin de codificacin, se dice que detecta k o menos errores si al trasmitir x= e(b) con k o menos errores, entonces xt no es una palabra codificada. Ejemplo 7. (cdigo de verificacin de paridad) La siguiente funcin de codificacin e: Bm Bm+1 es el cdigo de verificacin de paridad.

Hay que observar que bm+1 es cero si y solo si el nmero de unos en b es par. Lo anterior implica que cada palabra calificada e(b) tiene peso par. Un solo error en la transmisin de la palabra codificada cambia la palabra recibida por una palabra de peso impar y por lo tanto es posible detectarla. De la misma forma se puede detectar cualquier nmero impar de errores.

Ejemplo 8. Sea en el ejemplo anterior m = 3, Entonces:


e(000) = 0000

e(001) = 0011 e(010) = 0101 e(011) = 0110 e(100) = 1001 e(101) = 1010 e(110) = 1100 e(111) = 1111

Suponga ahora que b = 111, entonces x = e(111) = 1111. Si el canal de transmisin transmite x como xt = 1101 sabemos que ha ocurrido un nmero impar de errores. Se define la distancia mnima de una funcin de codificacin e: Bm Bn como la mnima distancia entre todas las distintas parejas de palabras codificadas.

Ejemplo 9.

Considere la siguiente funcin de codificacin: e(00) = 00000 e(10) = 00111 Se puede verificar que la distancia mnima e(01) = 01110 es dos. e(11) = 11111

10.5.1 Teorema. Una funcin de codificacin e: B m Bn puede detectar K menos errores si y slo si su distancia mnima es al menos K + 1.

Demostracin. Suponga que la distancia mnima entre dos palabras codificadas es al menos K + 1. Sea b Bm, y sea x = e(b) B
n

la palabra codificada que representa a b.

Entonces x es transmitida y recibida como xt1. Si xt fuera una palabra codificada diferente de x, entonces d(x, xe) K + 1 de modo que x sera transmitida con K menos errores, entonces xt no puede ser una palabra codificada. Esto significa que e puede detectar K menos errores. El recproco se deja como ejercicio.

Ejemplo 10.
Considere la funcin de codificacin e: B3 B8 definida por: e(000) = 00000000 e(001) = 10111000 e(010) = 00101101 e(011) = 10010101 e(100) = 10100100 Cuntos errores detectar e? e(101) = 10001001 e(110) = 00011100 e(111) = 00110001

La distancia mnima de e es 3. Por tanto, el cdigo detectara K o menos errores si y slo si su distancia mnima es al menos K + 1. Como la distancia mnima es 3, se tiene que 3 K + 1, o K 2,

As, el cdigo detectar 2 o menos errores. En cursos mas avanzados se vern procedimientos para generar ciertos cdigos

llamados

cdigos

de

grupo.

10.5.2 Decodificacin y correccin de errores. Considrese una funcin de codificacin e: Bm Bn. Una vez la palabra x = e(b) Bn con b Bm, es recibida como la palabra xt, surge el problema de identificar la palabra b que era el mensaje original. Una funcin sobre d: Bn Bm es una funcin de codificacin asociada a e s d(xt) = b Bm. Si el canal de transmisin no tiene unido, entonces b = b. La funcin de decodificacin debe ser sobre, para que cada palabra recibida pueda decodificarse para obtener una palabra de Bm. Esta funcin decodifica en forma adecuada las palabras recibidas de manera correcta, pero la decodificacin de las palabras recibidas en forma inadecuada puede o no ser correcta. Una funcin e de codificacin y una funcin d de decodificacin corrige k o menos errores si siempre que x = e(b) se trasmite en forma correcta, o k o menos errores, y se recibe xt, entonces d (xt) = b. as xt se decodifica como el mensaje correcto b. Se puede demostrar que se corrigen k o menores errores s y slo s la distancia mnima de e es al menos 2k+1.

Ejemplo 11.
Considrese la funcin de codificacin definida como e: Bm B3m definida como e(b) = b1 b2bmb1 b2bmb1 b2bm donde b= b1 b2bm.

O sea: E(000)= 000000000 E(001)= 001001001

E(010)= 010010010 E(011)= 011011011 E(101)= 101101101 E(110)= 110110110 E(100)= 100100100 E(111)= 111111111 Si, por ejemplo, se supone b = 011 y que el canal de transmisin recibe 011111011. Esta no es una palabra codificada, por lo que se ha detectado un error. As es posible detectar un error simple y dos errores arbitrarios cualesquiera. Cmo se corregira? Considere la funcin de decodificacin d: B3m Bm tal que

y1y2ymym+1y2my2m+1y3m,

donde

d(y)=

z1 z2zm

Es decir la funcin de decodificacin d examina el i-simo dgito en cada uno de los tres bloques trasmitidos. Se elige el dgito que aparece al menos dos veces en estos tres bloques como el i-esimo dgito decodificado. As si m = 3 y b = 011 y el canal comete un error y se recibe xt=011111011,entonces, como los primeros dgitos en dos de los tres bloques son cero, el primer dgito se codifica como cero.

De manera anloga el segundo dgito se decodifica como uno, ya que los tres segundos dgitos en los tres bloques son unos.
Por ultimo, el tercer dgito tambin se decodifica como uno, por una razn anloga, por tanto d(xt)=011. Es decir, este cdigo corrige cualquier error simple. Hay cdigos que permiten simultneamente detectar y corregir errores; para ello basta usar un cdigo con una distancia mnima de 2x + y + 1, que permite corregir hasta x errores de un solo bit y detectar hasta y errores adicionales 10.6 Cdigos de Hamming.

Es un mtodo general propuesto por R. W Hamming usando una distancia mnima m. Con este mtodo, por cada entero m existe un cdigo de hamming de 2m-1 bits que contiene m bits de paridad y 2m-1-m bits de informacin. En este cdigo, los bits de paridad y los bits de paridad se encuentran entremezclados de la siguiente forma: Si se numeran las posiciones de los bits desde 1 hasta 2m-1, los bits en la posicin 2k, donde , son los bits de paridad y los bits restantes son bits de informacin. El valor de cada bit de paridad se escoge de modo que el total de unos en un nmero especfico de bits sea par, y estos grupos se escogen de tal forma que ningn bit de informacin se cubra con la misma combinacin de bits de paridad. Es lo anterior lo que proporciona al cdigo su capacidad de correccin. Para cada bit de paridad en la posicin 2k, su grupo de bits de informacin correspondiente incluye todos esos bits de informacin correspondiente cuya representacin binaria tenga un uno en la posicin 2k. La siguiente tabla muestra los grupos de paridad para un cdigo de hamming de 7 bits o sea de la forma 2m-1 con m = 3. En este ejemplo, los bits de informacin son 4 y los bits de paridad son 3. Los bits de informacin

estn en las posiciones 7, 6, 5 ,3. Los bits de paridad estn en las posiciones 1, 2, 4. POSICIN DE LOS BITS

X X X

X X

X X

X X X X X

En la tabla anterior, el grupo de paridad del bit de paridad situado en la posicin 4 son los bits de informacin situados en las posiciones 7, 6, 5 que contienen unos en la posicin 2k o sea 4 cuando k = 2. El grupo de paridad del bit de paridad situado en la posicin 2 son los bits de informacin situados en las posiciones 7, 6, 3 que contienen unos en la posicin 2k o sea 2 cuando k = 1. El grupo de paridad del bit de paridad situado en la posicin 1 son los bits de informacin situados en las posiciones 7, 5, 3 que contienen unos en la posicin 2k o sea 1 cuando K = 0. Como 111 es la representacin binaria de 7, el bit de informacin en la posicin 7 se usa para calcular el valor de los tres bits de paridad. Similarmente, el bit de informacin en la posicin 6 se usa para calcular el valor de los bits de paridad en las posiciones 4 y 2; el bit de informacin en la posicin 5 se usa se usa para calcular el valor de los bits de paridad en las posiciones 4 y 1. Finalmente, el bit de informacin en la posicin 3 se usa para calcular el valor de los bits de paridad en las posiciones 2 y 1. De acuerdo con estos grupos de paridad, el valor del bit de paridad de la posicin 1 tiene que elegirse de modo que el nmero de unos en las posiciones 7, 5, 3, 1 sea par, mientras el bit de paridad en la posicin 2 hace el nmero de unos par 7, 6, 3, 2 y el valor del bit de paridad en la posicin cuatro hace el nmero de unos par en las posiciones 7, 6, 5, 4.

Es fcil observar que, en estas condiciones, la distancia mnima es 3, o sea que tienen que haber al menos tres cambios de un bit para convertir una palabra de cdigo en otra. Para probar que un cambio de un bit siempre genera una palabra que no pertenece al cdigo, hay que observar que un cambio de un bit en una palabra del cdigo afecta al menos un bit de paridad. Por otra parte, un cambio de dos bits en una palabra del cdigo no cambia el valor del bit de paridad si ambos bits pertenecen al mismo grupo de paridad. Sin embargo ello no es posible ya que para dos posiciones cualquiera de una palabra del cdigo siempre hay un grupo de paridad que no incluye ambas posiciones. En otras palabras, como dos bits cualquiera deben estar en distintas posiciones, sus nmeros binarios deben diferir al menos en un bit, as que siempre hay al menos un grupo de paridad con un solo bit cambiado, lo cul da lugar a una palabra que no pertenece al cdigo con al menos un valor de paridad incorrecto.

Ejemplo 12. Supngase que se transmite una palabra de cdigo y se recibe una palabra que no pertenece al cdigo y que es 1110101 . Cul fue la palabra correcta transmitida? Posiciones de los bits.

76 5 1 1

4 1

3 0

2 1

1 0 1

En la tabla anterior se puede observar lo siguiente: Cuando se cuenta el nmero de unos que hay en los bits, 7, 6, 5, 4 de la palabra del cdigo recibida, se encuentra que este nmero es impar. De forma similar, se encuentra que los bits 7, 6, 3, 2 contienen un nmero0

impar de unos. Por tanto hay un error en los bits de paridad 4 y 2. Como la suma de los nmeros en esas posiciones es 6, se sabe que el error se ha producido en el bit de posicin 6 y por tanto la palabra transmitida fue 1010101.

EJERCICIOS CAPTULO 10 1) codifique los siguientes nmeros en los cdigos BCD y exceso 3 a) 39 b) 1950 c) 94704

2) Defina un cdigo de 4 bits para la representacin de dgitos decimales, con la propiedad de que las palabras de cdigo para dos dgitos cualquiera cuya diferencia sea uno, difieran slo en una posicin de bits, y que esto tambin se cumpla para los dgitos 0 y 9.

3) Determinar la distancia entre X y Y en: a) X = 1100010 y Y = 1010001 b) X = 0100110 y Y = 0110010 c) X = 00111001, y Y = 10101001 4) Determine la distancia mnima de la funcin de decodificacin e= (000)= 00000000 e= (001)= 01110010 e= (010)= 10011100 e= (011)= 01110001 e= (100)= 01100101 e= (101)= 10110000 e= (111)= 00001111 Cuantos errores detectar e?

Cuantos errores corregir e?

Potrebbero piacerti anche