ELECTRONICA DIGITAL UNIDAD 1 ELECTRONICA DIGITAL CAPITULO I. SISTEMA NUMERICOS, CODIGOS DIGITALES

Anuncio
ELECTRONICA DIGITAL UNIDAD 1
2010
ELECTRONICA DIGITAL
CAPITULO I. SISTEMA NUMERICOS, CODIGOS DIGITALES
1.1- SISTEMA DECIMAL, BINARIO, OCTAL Y HEXADECIMAL.
1.2- OPERACIONES ARITMETRICAS BASICAS.
1.3- SUSTRACCION MEDIANTE COMPLEMENTOS.
1.4- CODIGOS NUMERICOS.
1.5- CONVERSION ENTRE LOS DIFERENTES CODIGOS NUMERICOS.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
1
ELECTRONICA DIGITAL UNIDAD 1
2010
1.1- SISTEMA DECIMAL, BINARIO, OCTAL Y HEXADECIMAL.
SISTEMA DECIMAL
El sistema decimal es un sistema de numeración posicional en el que las
cantidades se representan utilizando como base el número diez, por lo que se
compone de diez cifras diferentes: cero (0); uno (1); dos (2); tres (3); cuatro (4);
cinco (5); seis (6); siete (7); ocho (8) y nueve (9). Este conjunto de símbolos se
denomina números árabes, y es de origen indú.
Es el sistema de numeración usado habitualmente en todo el mundo (excepto
ciertas culturas) y en todas las áreas que requieren de un sistema de numeración.
Sin embargo hay ciertas técnicas, como por ejemplo en la informática, donde se
utilizan sistemas de numeración adaptados al método de trabajo como el binario o
el hexadecimal. También pueden existir en algunos idiomas vestigios del uso de
otros sistemas de numeración, como el quinario, el duodecimal y el vigesimal.
Según los antropólogos, el origen del sistema decimal está en los diez dedos que
tenemos los humanos en las manos, los cuales siempre nos han servido de base
para contar.
¿Cómo trabaja o funciona el sistema decimal?
Observando el gráfico
Un número en el Sistema Decimal se divide en cifras con diferente peso.
Las unidades tienen peso 1, las decenas peso 10, las centenas peso 100, los
miles peso 1000, etc.
Cada peso tiene asociado una potencia de 10. En el caso de las unidades la
potencia de diez es 100, en el caso de los miles o millares la potencia de diez es
103 .Entonces para formar el número 3427:
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
2
ELECTRONICA DIGITAL UNIDAD 1
2010
Sistema decimal en el idioma español
Lo más usual en español es utilizar un punto como separador de millares, un
subíndice 1 como separador de millones, un subíndice 2 como separador de
billones, 3 de trillones, etc., y una coma coma, alta ( ' ) o baja ( , ) como separador
decimal. Algunas veces, mediante un espacio, agrupándolos cada tres dígitos,
contando desde las unidades.
Fracciones
Algunas fracciones muy simples, como 1/3, tienen infinitas cifras decimales. Por
eso, algunos han propuesto la adopción del sistema duodecimal, en el que 1/3
tiene una representación más sencilla.
1/2 = 0,5
1/3 = 0,3333...
1/4 = 0,25
1/5 = 0,2
1/6 = 0,1666...
1/7 = 0,142857142857...
Tabla de multiplicar
Búsqueda de números primos
En base 10, un número primo sólo puede acabar en 1, 3, 7 o 9.
Las 7 posibilidades restantes generan siempre números compuestos:
* Los acabados en 2, 4, 6, 8 y 0 son múltiplos de 2,
* Los acabados en 5 y 0 son múltiplos de 5.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
3
ELECTRONICA DIGITAL UNIDAD 1
2010
SISTEMA BINARIO
El sistema binario, en matemáticas e informática, es un sistema de numeración en
el que los números se representan utilizando solamente las cifras cero y uno (0 y
1). Es el que se utiliza en las computadoras, pues trabajan internamente con dos
niveles de voltaje, por lo que su sistema de numeración natural es el sistema
binario (encendido 1, apagado 0).
Representación
Un número binario puede ser representado por cualquier secuencia de bits (dígitos
binarios), que suelen representar cualquier mecanismo capaz de estar en dos
estados mutuamente excluyentes. Las siguientes secuencias de símbolos podrían
ser interpretadas como el mismo valor numérico binario:
1
|
x
y
0
o
n
1
|
x
y
0
o
n
0
o
n
1
|
x
y
1
|
x
y
0
o
n
1
|
x
y
0
o
n
El valor numérico representado en cada caso depende del valor asignado a cada
símbolo. En una computadora, los valores numéricos pueden representar dos
voltajes diferentes; también pueden indicar polaridades magnéticas sobre un disco
magnético. Un "positivo", "sí", o "sobre el estado" no es necesariamente el
equivalente al valor numérico de uno; esto depende de la nomenclatura usada.
De acuerdo con la representación más habitual, que es usando números árabes,
los números binarios comúnmente son escritos usando los símbolos 0 y 1. Los
números binarios se escriben a menudo con subíndices, prefijos o sufijos para
indicar su base. Las notaciones siguientes son equivalentes:







100101 binario (declaración explícita de formato)
100101b (un sufijo que indica formato binario)
100101B (un sufijo que indica formato binario)
bin 100101 (un prefijo que indica formato binario)
1001012 (un subíndice que indica base 2 (binaria) notación)
%100101 (un prefijo que indica formato binario)
0b100101 (un prefijo que indica formato binario, común en lenguajes de
programación)
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
4
ELECTRONICA DIGITAL UNIDAD 1
2010
SISTEMA OCTAL
El sistema numérico en base 8 se llama octal y utiliza los dígitos 0 a 7.
Por ejemplo, el número binario para 74 (en decimal) es 1001010 (en binario), lo
agruparíamos como 1 / 001 / 010, de tal forma que obtengamos una serie de
números en binario de 3 dígitos cada uno (para fragmentar el número se comienza
desde el primero por la derecha y se parte de 3 en 3), después obtenemos el
número en decimal de cada uno de los números en binario obtenidos: 1=1, 001=1
y 010=2. De modo que el número decimal 74 en octal es 112.
Hay que hacer notar que antes de poder pasar un número a octal es necesario
pasar por el binario. Para llegar al resultado de 74 en octal se sigue esta serie:
decimal -> binario -> octal.
En informática, a veces se utiliza la numeración octal en vez de la hexadecimal.
Tiene la ventaja de que no requiere utilizar otros símbolos diferentes de los dígitos.
Sin embargo, para trabajar con bytes o conjuntos de ellos, asumiendo que un byte
es una palabra de 8 bits, suele ser más cómodo el sistema hexadecimal, por
cuanto todo byte así definido es completamente representable por dos dígitos
hexadecimales.
Es posible que la numeración octal se usara en el pasado en lugar del decimal,
por ejemplo, para contar los espacios interdigitales o los dedos distintos de los
pulgares.
Tabla de multiplicación octal
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
5
ELECTRONICA DIGITAL UNIDAD 1
2010
SISTEMA HEXADECIMAL
El sistema de numeración más utilizado actualmente en computación es el
hexadecimal o base 16, el cual consta de 16 dígitos símbolos 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, A, B, C, D, E y F . El sistema hexadecimal un sistema de numeración
vinculado a la informática, ya que los ordenadores interpretan los lenguajes de
programación en bytes, que están compuestos de ocho dígitos. A medida de que
los ordenadores y los programas aumentan su capacidad de procesamiento,
funcionan con múltiplos de ocho, como 16 o 32. Por este motivo, el sistema
hexadecimal, de 16 dígitos, es un estándar en la informática.
Como nuestro sistema de numeración sólo dispone de diez dígitos, debemos
incluir seis letras para completar el sistema.
Estas letras y su valor en decimal son: A = 10, B = 11, C = 12, D = 13, E = 14 y F =
15. El sistema hexadecimal es posicional y por ello el valor numérico asociado a
cada signo depende de su posición en el número, y es proporcional a las
diferentes potencias de la base del sistema que en este caso es 16.
Veamos un ejemplo numérico
Por ejemplo: 3E0A16 = 3×163 + E×162 + 0×161 + A×160 = 3×4096 + 14×256 + 0×16 + 10×1 = 15882.
Tabla de multiplicar hexadecimal
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
6
ELECTRONICA DIGITAL UNIDAD 1
2010
1.2- OPERACIONES ARITMETRICAS BASICAS.
Operaciones con números binarios
Suma de números binarios
Las posibles combinaciones al sumar dos bits son:
*0+0=0
*0+1=1
*1+0=1
* 1 + 1 = 0 al sumar 1+1 siempre nos llevamos 1 a la siguiente operación
(acarreo).Ejemplo
10011000
+ 00010101
———————————
10101101
Se puede convertir la operación binaria en una operación decimal, resolver la
decimal, y después transformar el resultado en un (número) binario. Operamos
como en el sistema decimal: comenzamos a sumar desde la derecha, en nuestro
ejemplo, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado y llevamos 1
(este "1" se llama acarreo o arrastre). A continuación se suma el acarreo a la
siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas la columnas
(exactamente como en decimal).
Resta de números binarios
El algoritmo de la resta en sistema binario es el mismo que en el sistema decimal.
Pero conviene repasar la operación de restar en decimal para comprender la
operación binaria, que es más sencilla. Los términos que intervienen en la resta se
llaman minuendo, sustraendo y diferencia.
Las restas básicas 0 - 0, 1 - 0 y 1 - 1 son evidentes:
*0-0=0
*1-0=1
*1-1=0
* 0 - 1 = 1 (se transforma en 10 - 1 = 1) (en sistema decimal equivale a 2 - 1 = 1)
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
7
ELECTRONICA DIGITAL UNIDAD 1
2010
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad
prestada de la posición siguiente: 0 - 1 = 1 y me llevo 1, lo que equivale a decir en
el sistema decimal, 2 - 1 = 1.
Ejemplos
10001
-01010
——————
00111
11011001
-10101011
—————————
00101110
En sistema decimal sería: 17 - 10 = 7 y 217 - 171 = 46.
Para simplificar las restas y reducir la posibilidad de cometer errores hay varios
métodos:
* Dividir los números largos en grupos. En el siguiente ejemplo, vemos cómo se
divide una resta larga en tres restas cortas:
100110011101
-010101110010
—————————————
010000101011
=
1001
-0101
—————
0100
1001
-0111
—————
0010
1101
-0010
—————
1011
* Utilizando el complemento a dos (C2). La resta de dos números binarios
puede obtenerse sumando al minuendo el «complemento a dos» del sustraendo.
Ejemplo
La siguiente resta, 91 - 46 = 45, en binario es:
1011011
-0101110
————————
0101101
el C2 de 0101110 es 1010010
1011011
+1010010
————————
10101101
En el resultado nos sobra un bit, que se desborda por la izquierda. Pero, como el
número resultante no puede ser más largo que el minuendo, el bit sobrante se
desprecia.
Producto de números binarios
El algoritmo del producto en binario es igual que en números decimales; aunque
se lleva a cabo con más sencillez, ya que el 0 multiplicado por cualquier número
da 0, y el 1 es el elemento neutro del producto.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
8
ELECTRONICA DIGITAL UNIDAD 1
2010
Por ejemplo, multipliquemos 10110 por 1001:
10110
1001
—————————
10110
00000
00000
10110
—————————
11000110
En sistemas electrónicos, donde suelen usarse números mayores, se utiliza el
método llamado algoritmo de Booth.
11101111
111011
__________
11101111
11101111
00000000
11101111
11101111
11101111
______________
11011100010101
División de números binarios
La división en binario es similar a la decimal; la única diferencia es que a la hora
de hacer las restas, dentro de la división, éstas deben ser realizadas en binario.
Ejemplo
Dividir 100010010 (274) entre 1101 (13):
100010010 |1101
——————
-0000
010101
———————
10001
-1101
———————
00100
- 0000
———————
10000
- 1101
———————
00011
- 0000
———————
01110
- 1101
———————
00001
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
9
ELECTRONICA DIGITAL UNIDAD 1
2010
Sistema Octal
Para el sistema octal utilizamos los símbolos {0,1,2,3,4,5,6,7} y por la
característica de los sistemas posicionales con conocer las operaciones de adición
y multiplicación para estos valores se puede calcular el de los demás con un
algoritmo similar al de base 10 o de base 2.
A partir de este punto, los números están en base 8.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
10
ELECTRONICA DIGITAL UNIDAD 1
2010
Tabla de multiplicación octa
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
11
ELECTRONICA DIGITAL UNIDAD 1
2010
SISTEMA HEXADECIMAL
Suma hexadecimal. Se debe restar o dividir la semisuma de cada columna,
cuando la misma exceda la base del sistema, y colocar en la columna inmediata
del lado izquierdo, el valor del acarreo tantas veces se haya superado la base del
sistema. Cada unidad que se acarree equivale a dieciséis unidades de la columna
anterior.
Ejemplo: Dado los números binarios:
Multiplicación hexadecimal:
Ej: Multiplicar A. 67D3416 y B. 1216
División hexadecimal
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
12
ELECTRONICA DIGITAL UNIDAD 1
2010
1.3- SUSTRACCION MEDIANTE COMPLEMENTOS.
Complementos
Los complementos se utilizan para operaciones de sustracción y manipulaciones
lógicas. Para un sistema base r existen dos complementos: el complemento de r y
complemento de (r-1). En el caso de los números binarios seria complemento de
dos y complemento de uno respectivamente. El complemento 1 es útil en
manipulaciones lógicas y el complemento 2 se utiliza en operaciones aritméticas.
Complemento de 2 de Números Binarios Signados.
Para un número positivo N base r con parte entera de n dígitos su complemento r
de N es:
Si se observa detenidamente se puede notar que el complemento de 2 se puede
obtener dejando intactos los 0 menos significativos y el primer 1 menos
significativo y cambiando todos los demás 1 por 0 y los 0 por 1.
Complemento de 1 de Números Binarios Signados.
Para un número positivo N base r con parte entera de n dígitos y parte fraccionaria
de m dígitos su complemento (r-1) de N es
Analizando el resultado del complemento de 1 se observa que es muy sencillo
determinarlo, únicamente se tienen que sustituir los 0 por 1 y los 1 por 0.
Sustracción con Complementos de 2
Al realizar una resta comúnmente se utiliza el método de préstamo de la posición
mas alta cuando el minuendo es menor que el sustraendo. Sin embargo en un
sistema digital resulta más eficiente el método de sustracción por complementos.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
13
ELECTRONICA DIGITAL UNIDAD 1
2010
El procedimiento de sustracción utilizando el complemento de 2 para dos números
positivos (M –N) es:
Sumar M al complemento 2 de N
Verificar resultado. ¿Existe acarreo final?
Si: El resultado de M – N es el resultado que se obtuvo en la suma del paso 1
No: El resultado de M – N es el complemento 2 del resultado que se obtuvo de la
suma en el paso 1 anteponiendo el signo negativo.
Ejemplos: Sustracción con Complementos de 2
Sustracción con Complementos de 1
El procedimiento de sustracción utilizando el complemento de 1 para dos números
positivos (M –N) es:
Sumar M al complemento 1 de N
Verificar resultado. ¿Existe acarreo final?
Si: Agregar 1 al dígito menos significativo que se obtuvo en la suma del paso 1 y
ese es el resultado de M – N.
No: El resultado de M – N es el complemento 1 del resultado que se obtuvo de la
suma en el paso 1 anteponiendo el signo negativo.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
14
ELECTRONICA DIGITAL UNIDAD 1
2010
Ejemplos: Sustracción con Complementos de 1
1.4- CODIGOS NUMERICOS.
Los códigos numéricos sirven para representar números con fines de
procesamiento y almacenamiento. Los números de punto fijo y de punto flotante
son ejemplos de estos códigos.
Números de punto fijo. Se utilizan para representar tanto enteros con signo
como fracciones con signo. En ambos casos se usan los mismos sistemas de
magnitud y signos de complemento a dos o de complemento a uno para
representar los valores con signo. Los enteros de punto fijo tienen un punto binario
implícito a la derecha del bit menos significativo; las fracciones de punto fijo tienen
un punto binario implícito entre el bit de signo y el bit más significativo.
Ejemplo 1.
Dar dos posibles interpretaciones del número de punto fijo de ocho bits 01101010
usando el sistema de complemento a dos.
Como el bit de signo es 0, el número representa el entero positivo 1101010, o
bien la fracción positiva 0.1101010.
Ejemplo 2.
Dar dos posibles interpretaciones del número de punto fijo de 8 bits 11101010,
usando el sistema de complemento a dos.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
15
ELECTRONICA DIGITAL UNIDAD 1
2010
El bit del signo es 1, por tanto el número representa a -0010110, o bien 0.0010110.
Representaciones con exceso o sesgadas. Una representación con exceso K de
un código C se forma sumando el valor K a cada palabra del código C. Las
representaciones con exceso se utilizan a menudo para representar los
exponentes de los números de punto flotante.
La representación con exceso 8 de la tabla siguiente, se obtiene al sumar (1000)2
al código de 4 bits.
Código con exceso 8
Números de punto flotante. Un número de punto flotante es un número N que se
escribe como, N = M ´ rE donde M, la mantisa, es un número de punto fijo que
contiene los dígitos significativos de N y E, el exponente o característica, es un
entero de punto fijo.
Al deducir la representación de un número de punto flotante, la mantisa y la
característica se codifican por separado. La base es implícita y no se incluye en la
representación.
La mantisa, muchas veces, se codifica con magnitud y signo, por lo general como
una fracción
Códigos de caracteres
Decimal Codificado en Binario (BCD). Sirve para representar los dígitos
decimales del 0 al 9 y es un ejemplo de un código ponderado, es decir, cada
posición de bit en el código tiene un valor o peso numérico fijo asociado a ella.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
16
ELECTRONICA DIGITAL UNIDAD 1
2010
Este código asigna una representación binaria sin signo de 4 bits a cada dígito
entre 0 y 9, no usándose las palabras del código entre 1010 y 1111.
La conversión entre las representaciones BCD y decimal se puede llevar a cabo
simplemente sustituyendo 4 dígitos BCD por cada dígito decimal y viceversa. Sin
embargo, en la práctica se suelen agrupar dos dígitos BCD en un byte de 8 bits,
que por tanto puede representar cualquier valor comprendido entre 0 y 99.
Ejemplo 3.
Codificar el número N = (9750)10 en BCD.
Después se concatenan los códigos individuales para obtener
N = (1001011101010000)
El código BCD se puede utilizar en operaciones aritméticas. La suma es la más
importante de estas operaciones, ya que las otras tres se pueden llevar a cabo
utilizando la suma. Para sumar dos números 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 número BCD
válido.
 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 válido. En este caso, se suma 6 (0110) al
grupo de 4 bits para saltar así los 6 estados no válidos y pasar al código
BCD. Si se genera un acarreo al sumar 6, éste se suma al grupo de 4 bits
siguiente.
Código ASCII. Es el código de caracteres más utilizado en las aplicaciones de
cómputo. Por sus siglas en ingles se llama Código estándar americano para
intercambio de información.
En general, una cadena de bits puede representar cualquier carácter, numérico o
no. Dado que la mayoría 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 código, cada carácter se representa con una cadena de 7 bits. Este
código codifica 128 caracteres diferentes, incluyendo mayúsculas y minúsculas,
números, algunos signos de puntuación, y una serie de caracteres de control.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
17
ELECTRONICA DIGITAL UNIDAD 1
2010
Cada una de las palabras del código ASCII suele almacenar en un byte, que
incluye un bit de paridad extra que se usa para detección de errores.
Código Gray. Un código cíclico se puede definir como cualquier código en el que,
para cualquier palabra de código, un corrimiento circular produce otra palabra del
código. El código Gray es uno de los tipos más comunes de códigos cíclicos y
tiene la característica de que las palabras de código para dos números
consecutivos difieren sólo en un bit. Es decir, la distancia entre las dos palabras de
código es 1. En general la distancia entre dos palabras de código binario es igual
al número de bits en que difieren las dos palabras.
Para la conversión de código binario a código gray se siguen los siguientes pasos:
 El bit más significativo en el código gray, es el mismo de código binario.
 Yendo de izquierda a derecha, sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código gray. Se descartan los
acarreos.
Para convertir de código gray a binario, se siguen los pasos siguientes:
 El bit más significativo en código binario, es el mismo que el
correspondiente bit en código gray.
 A cada bit del código binario generado, se le suma el bit en código gray de
la siguiente posición adyacente. Se descartan los acarreos.
Ejemplo 4.
Defina un código Gray para codificar los números decimales del 0 al 15.
Solución.
Se necesitan cuatro bits para representar todos los números, y podemos construir
el código necesario asignando al bit i de la palabra de código el valor 0 sí los bits i
e i + 1 del número binario correspondientes son iguales, y 1 en caso contrario.El
bit más significativo del número siempre se debe comparar con 0 al utilizar esta
técnica. El código resultante es:
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
18
ELECTRONICA DIGITAL UNIDAD 1
2010
Código de detección de errores.
Un proceso de comunicación puede tener lugar en diversas formas: por ejemplo al
hacer una llamada telefónica, al enviar un telegrama, al usar un lenguaje de
signos. En tales casos, el proceso involucra el flujo de información a través de un
medio, el cual va del remitente al receptor. El medio que lleva la información
puede ir de la mímica al habla, o la electricidad al agua, o una secuencia de
dígitos 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
comunicación involucra un flujo de información a través de un sistema.
Un sistema de comunicación ideal se puede representar por tres partes esenciales
a saber:
o Transmisor, remitente o fuente
o Canal o medio de almacenamiento
o Receptor
En la práctica, un canal de comunicación está sujeto a una a diversidad de
perturbaciones que resultan en una distorsión del mensaje que se está
trasmitiendo. Cualquier alteración de estas se llama ruido. La forma en la cual el
ruido puede aparecer depende del canal.
Por ejemplo, en una conversación 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 pérdidas debidas al ruido y recuperar de una manera
óptima el mensaje original cuando se ha contaminado por la presencia del ruido.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
19
ELECTRONICA DIGITAL UNIDAD 1
2010
Un dispositivo que se puede usar para mejorar la eficiencia del canal de
comunicación 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 sólo detectar la distorsión debida al ruido si no también corregir el
mensaje al usar un codificador apropiado y mostrar la presencia del ruido en el
canal. El modelo sería así:
Esta parte se ocupa de los canales de comunicación que manejan símbolos de un
conjunto especifico llamado alfabeto del lenguaje de comunicación. Cualquier
elemento del alfabeto se llamará un símbolo, letra o carácter. Una secuencia finita
de caracteres se llama mensaje o palabra.
La longitud de una palabra x que se denota L(x) es el número de símbolos 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 ambigüedades al regreso, entonces se puede decir que estos mensajes están
codificados.
El proceso de codificación 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 decodificación o desciframiento, o es la
operación inversa, o alguna otra transformación uno a uno.
En la mayoría de las aplicaciones el canal de comunicación está limitado a un
alfabeto valuado de manera binaria cuyas señales se pueden denotar como 0 y 1.
Un canal así se llama canal binario.
Cualquier código de n bits s e puede considerar como un subconjunto de todas las
posibles cadenas de n bits.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
20
ELECTRONICA DIGITAL UNIDAD 1
2010
Las cadenas incluidas en este subconjunto particular se denominan palabras
código, mientras las cadenas que no están incluidas se denominan palabras que
no son del código.
Un código se dice que es un código de detección de errores si tiene la propiedad
de que ciertos tipos de errores pueden transformar palabras del código en
palabras que no son del código.
Suponiendo que se utilizan sólo palabras del código para la transmisión de datos,
cualquier error introducido durante la transmisión se pondrá de manifiesto
inmediatamente puesto que cambiará palabras del código en palabras que no son
del código. Es decir, si la cadena recibida es una palabra del código, los datos son
correctos; si no es una palabra del código, los datos deben ser erróneos
Ejemplo 5.
Codifique el alfabeto de 8 símbolos denotados con el conjunto [A, B, C,...H].
Cada una de las letras se puede representar con una secuencia de tres dígitos
binarios. Un código posible es el siguiente:
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 código
en especial resulta en una secuencia de códigos 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 código al añadirle el dígito extra o redundante a cada
secuencia de 3 bits como se muestra en la siguiente tabla:
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
21
ELECTRONICA DIGITAL UNIDAD 1
2010
Este dígito de más se escoge para que sea 1 si la suma de los tres dígitos del
código original es impar; si no sucede así, se escoge para que sea 0.
Un error sencillo en una secuencia de código en particular produce otra secuencia
que no pertenece al código. Por ejemplo, la secuencia de código 0000 para A se
podría transformar por el ruido en cualquiera de las secuencias 0001, 0010, 0100,
1000.
Ninguna de estas secuencias resultantes aparece en el código y de inmediato se
detecta un error. Así la redundancia en el código permite detectar un error de un
dígito por secuencia de código.
Obsérvese que la secuencia 0001 se puede producir por un error de un solo dígito
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 más errores por secuencia de códigos.
Se tendrán en cuenta las siguientes definiciones:
Un error en un dato binario se define como un valor incorrecto en uno más bits.
Un ERROR SIMPLE es un valor incorrecto en un solo bit.
Un ERROR MULTIPLE se refiere a la existencia de uno o más bits incorrectos.
Sean I y J palabras de información binaria de n bits. El peso de I, w(I), se define
como el número de bits de I igual a 1.
La DISTANCIA entre I Y J que se designa por d(I, J), es igual al número 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 básica en la transmisión de información es eliminar la probabilidad de
recibir una palabra diferente a la enviada.
Esto se hace de la siguiente forma:
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
22
ELECTRONICA DIGITAL UNIDAD 1
2010
Se elige un entero n > m y una función uno a uno e: Bm ®Bn.La función e es la
función de codificación. 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 transmisión así:
En general se pueden presentar errores en la transmisión. La palabra codificada
ha sido trasmitida con k o menores errores si x y xt difieren en al menos una pero
no más de k posiciones.
Sí e: Bm ®Bn es una función de codificación, 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. (código de verificación de paridad)
La siguiente función de codificación e: Bm ®Bm+1 es el código de verificación de
paridad.
Hay que observar que bm+1 es cero si y solo si el número de unos en b es par.
Lo anterior implica que cada palabra calificada e(b) tiene peso par. Un solo error
en la transmisión 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 número 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
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
23
ELECTRONICA DIGITAL UNIDAD 1
2010
e(101) = 1010
e(110) = 1100
e(111) = 1111
Suponga ahora que b = 111, entonces x = e(111) = 1111. Si el canal de
transmisión transmite x como xt = 1101 sabemos que ha ocurrido un número impar
de errores. Se define la distancia mínima de una función de codificación e: Bm ®
Bn como la mínima distancia entre todas las distintas parejas de palabras
codificadas.
Ejemplo 9.
Considere la siguiente función de codificación
e(00) = 0000
e(10) = 00111 Se puede verificar que la distancia mínima
e(01) = 01110 es dos
e(11) = 11111
10.5.1 Teorema. Una función de codificación e: B m ®Bn puede detectar K ó
menos errores si y sólo si su distancia mínima es al menos K + 1.
Demostración. Suponga que la distancia mínima 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 sería transmitida con K ó menos
errores, entonces xt no puede ser una palabra codificada. Esto significa que e
puede detectar K ó menos errores.
Ejemplo 10.
Considere la función de codificación e: B3 ®B8 definida por:
e(000) = 00000000
e(101) = 10001001
e(001) = 10111000
e(110) = 00011100
e(010) = 00101101
e(111) = 00110001
e(011) = 10010101
e(100) = 10100100
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
24
ELECTRONICA DIGITAL UNIDAD 1
2010
¿ Cuántos errores detectará e?
La distancia mínima de e es 3. Por tanto, el código detectara K o menos errores si
y sólo si su distancia mínima es al menos K + 1.
Como la distancia mínima es 3, se tiene que 3 ³ K + 1, o K £ 2,
Así, el código detectará 2 o menos errores. En cursos mas avanzados se verán
procedimientos para generar ciertos códigos llamados códigos de grupo.
Decodificación y corrección de errores. Considérese una función de
codificación 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 función sobre d: Bn ® Bm es una función de codificación asociada a e sí d(xt)
= b’ Î Bm. Si el canal de transmisión no tiene unido, entonces b’ = b.
La función de decodificación debe ser sobre, para que cada palabra recibida
pueda decodificarse para obtener una palabra de Bm. Esta función decodifica en
forma adecuada las palabras recibidas de manera correcta, pero la decodificación
de las palabras recibidas en forma inadecuada puede o no ser correcta.
Una función e de codificación y una función d de decodificación 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 sólo sí la distancia
mínima de e es al menos 2k+1. Ejemplo 11.
Considérese la función de codificación definida como e: Bm® B3m definida como
e(b) = b1 b2…bmb1 b2…bmb1 b2…bm donde b= b1 b2…bm. O sea:
E(000)= 000000000
E(001)= 001001001
E(010)= 010010010
E(011)= 011011011
E(101)= 101101101
E(110)= 110110110
E(100)= 100100100
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
25
ELECTRONICA DIGITAL UNIDAD 1
2010
E(111)= 111111111
Si, por ejemplo, se supone b = 011 y que el canal de transmisión 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.
¿Cómo se corregiría?
Considere la función de decodificación d: B3m ® Bm tal que
Y = y1y2…ymym+1y2my2m+1…y3m, donde d(y)= z1 z2…zm
Es decir la función de decodificación d examina el i-ésimo dígito en cada uno de
los tres bloques trasmitidos.
Se elige el dígito que aparece al menos dos veces en estos tres bloques como el iesimo dígito decodificado.
Así si m = 3 y b = 011 y el canal comete un error y se recibe
xt=011111011,entonces, como los primeros dígitos en dos de los tres bloques son
cero, el primer dígito se codifica como cero.
De manera análoga el segundo dígito se decodifica como uno, ya que los tres
segundos dígitos en los tres bloques son unos.
Por ultimo, el tercer dígito también se decodifica como uno, por una razón
análoga, por tanto d(xt)=011. Es decir, este código corrige cualquier error simple.
Hay códigos que permiten simultáneamente detectar y corregir errores; para ello
basta usar un código con una distancia mínima de 2x + y + 1, que permite corregir
hasta x errores de un solo bit y detectar hasta y errores adicionales
Códigos de Hamming.
Es un método general propuesto por R. W Hamming usando una distancia mínima
m. Con este método, por cada entero m existe un código de hamming de 2m-1 bits
que contiene m bits de paridad y 2m-1-m bits de información. En este código, 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
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
26
ELECTRONICA DIGITAL UNIDAD 1
2010
posición 2k, donde , son los bits de paridad y los bits restantes son bits de
información.
El valor de cada bit de paridad se escoge de modo que el total de unos en un
número específico de bits sea par, y estos grupos se escogen de tal forma que
ningún bit de información se cubra con la misma combinación de bits de paridad.
Es lo anterior lo que proporciona al código su capacidad de corrección.
Para cada bit de paridad en la posición 2k, su grupo de bits de información
correspondiente incluye todos esos bits de información correspondiente cuya
representación binaria tenga un uno en la posición 2k. La siguiente tabla muestra
los grupos de paridad para un código de hamming de 7 bits o sea de la forma 2m1 con m = 3. En este ejemplo, los bits de información son 4 y los bits de paridad
son 3. Los bits de información están en las posiciones 7, 6, 5 ,3. Los bits de
paridad están en las posiciones 1, 2, 4.
En la tabla anterior, el grupo de paridad del bit de paridad situado en la posición 4
son los bits de información situados en las posiciones 7, 6, 5 que contienen unos
en la posición 2k o sea 4 cuando k = 2.
El grupo de paridad del bit de paridad situado en la posición 2 son los bits de
información situados en las posiciones 7, 6, 3 que contienen unos en la posición
2k o sea 2 cuando k = 1.
El grupo de paridad del bit de paridad situado en la posición 1 son los bits de
información situados en las posiciones 7, 5, 3 que contienen unos en la posición
2k o sea 1 cuando K = 0.
Como 111 es la representación binaria de 7, el bit de información en la posición 7
se usa para calcular el valor de los tres bits de paridad. Similarmente, el bit de
información en la posición 6 se usa para calcular el valor de los bits de paridad en
las posiciones 4 y 2; el bit de información en la posición 5 se usa se usa para
calcular el valor de los bits de paridad en las posiciones 4 y 1. Finalmente, el bit de
información en la posición 3 se usa para calcular el valor de los bits de paridad en
las posiciones 2 y 1.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
27
ELECTRONICA DIGITAL UNIDAD 1
2010
De acuerdo con estos grupos de paridad, el valor del bit de paridad de la posición
1 tiene que elegirse de modo que el número de unos en las posiciones 7, 5, 3, 1
sea par, mientras el bit de paridad en la posición 2 hace el número de unos par 7,
6, 3, 2 y el valor del bit de paridad en la posición cuatro hace el número de unos
par en las posiciones 7, 6, 5, 4.
Es fácil observar que, en estas condiciones, la distancia mínima es 3, o sea que
tienen que haber al menos tres cambios de un bit para convertir una palabra de
código en otra.
Para probar que un cambio de un bit siempre genera una palabra que no
pertenece al código, hay que observar que un cambio de un bit en una palabra del
código afecta al menos un bit de paridad.
Por otra parte, un cambio de dos bits en una palabra del código 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 código siempre hay un grupo de paridad que no incluye ambas posiciones. En
otras palabras, como dos bits cualquiera deben estar en distintas posiciones, sus
números binarios deben diferir al menos en un bit, así que siempre hay al menos
un grupo de paridad con un solo bit cambiado, lo cuál da lugar a una palabra que
no pertenece al código con al menos un valor de paridad incorrecto.
Ejemplo 12.
Supóngase que se transmite una palabra de código y se recibe una palabra que
no pertenece al código y que es 1110101 . Cuál fue la palabra correcta
transmitida?
Posiciones de los bits.
En la tabla anterior se puede observar lo siguiente:
Cuando se cuenta el número de unos que hay en los bits, 7, 6, 5, 4 de la palabra
del código recibida, se encuentra que este número es impar. De forma similar, se
encuentra que los bits 7, 6, 3, 2 contienen un número0 impar de unos. Por tanto
hay un error en los bits de paridad 4 y 2. Como la suma de los números en esas
posiciones es 6, se sabe que el error se ha producido en el bit de posición 6 y por
tanto la palabra transmitida fue 1010101.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
28
ELECTRONICA DIGITAL UNIDAD 1
2010
1.5- CONVERSION ENTRE LOS DIFERENTES CODIGOS NUMERICOS.
Conversión entre binario y decimal
Decimal a binario
Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a
dividir entre 2, y así sucesivamente. Ordenados los restos, del último al primero,
éste será el número binario que buscamos.
Ejemplo
Transformar el número decimal 131 en binario. El método es muy simple:
131
65
32
16
8
4
2
1
dividido
dividido
dividido
dividido
dividido
dividido
dividido
dividido
entre 2 da 65
entre 2 da 32
entre 2 da 16
entre 2 da 8
entre 2 da 4
entre 2 da 2
entre 2 da 1
entre 2 da 0
-> Ordenamos
y el resto es igual a 1
y el resto es igual a 1
y el resto es igual a 0
y el resto es igual a 0
y el resto es igual a 0
y el resto es igual a 0
y el resto es igual a 0
y el resto es igual a 1
los restos, del último al primero: 10000011
en sistema binario, 131 se escribe 10000011
Ejemplo
Transformar el número decimal 100 en binario.
Otra forma de conversión consiste en un método parecido a la factorización en
números primos. Es relativamente fácil dividir cualquier número entre 2. Este
método consiste también en divisiones sucesivas. Dependiendo de si el número es
par o impar, colocaremos un cero o un uno en la columna de la derecha. Si es
impar, le restaremos uno y seguiremos dividiendo entre dos, hasta llegar a 1.
Después sólo nos queda tomar el último resultado de la columna izquierda (que
siempre será 1) y todos los de la columna de la derecha y ordenar los dígitos de
abajo a arriba.
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
29
ELECTRONICA DIGITAL UNIDAD 1
2010
Ejemplo
100|0
50|0
25|1
12|0
6|0
3|1
1|1
--> 1, 25-1=24 y seguimos dividiendo por 2
-->
(100)10 = (1100100)2
Decimal (con decimales) a binario
Para transformar un número del sistema decimal al sistema binario:
1. Se inicia por el lado izquierdo, multiplicando cada número por 2 (si la parte
entera es mayor que 1 en binario será 1, y en caso contrario es 0).
2. En caso de ser 1, en la siguiente multiplicación se utilizan sólo los decimales.
3. Después de realizar cada multiplicación, se colocan los números obtenidos en
el orden de su obtención.
4. Algunos números se transforman en dígitos periódicos, por ejemplo: el 0,1.
Ejemplo
0,3125 (decimal)
Proceso:
0,3125 x 2 = 0,625
0,625 x 2 = 1,25
0,25
x 2 = 0,5
0,5
x 2 = 1
En orden: 0101
0,1 x 2 =
0,2 x 2 =
0,4 x 2 =
0,8 x 2 =
0,6 x 2 =
0,2 x 2 =
0,4 x 2 =
0,8 x 2 =
0,6 x 2 =
En orden:
=> 0,0101 (binario).
=>
=>
=>
=>
->
0
1
0
1
0,0101 (binario)
0,2 ==> 0
0,4 ==> 0
0,8 ==> 0
1,6 ==> 1
1,2 ==> 1
0,4 ==> 0 <--se repiten las cuatro cifras, periódicamente
0,8 ==> 0 <1,6 ==> 1 <1,2 ==> 1 <- ...
0 0011 0011 ...
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
30
ELECTRONICA DIGITAL UNIDAD 1
2010
Binario a decimal
Para realizar la conversión de binario a decimal, realice lo siguiente:
1. Inicie por el lado izquierdo del número en binario, cada número multiplíquelo
por 2 y elévelo a la potencia consecutiva (comenzando por la potencia 6).
2. Después de realizar cada una de las multiplicaciones, sume todas y el número
resultante será el equivalente al sistema decimal.
Ejemplos:
* (Los números de arriba indican la potencia a la que hay que elevar 2)
También se puede optar por utilizar los valores que presenta cada posición del
número binario a ser transformado, comenzando de derecha a izquierda, y
sumando los valores de las posiciones que tienen un 1.
Ejemplo
«El número binario 1010010 corresponde en decimal al 82» se puede representar
de la siguiente manera:
entonces se suman los números 64, 16 y 2:
Binario a decimal (con decimal binario)
1. Inicie por el lado izquierdo, cada número multiplíquelo por 2 y elévelo a la
potencia consecutiva a la inversa (comenzando por la potencia -1).
2.Después de realizar cada una de las multiplicaciones, sume todas y el número
resultante será el equivalente al sistema decimal.
Ejemplos
* 0,101001 (binario) = 0,640625(decimal). Proceso:
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
31
ELECTRONICA DIGITAL UNIDAD 1
2010
1*(2) elevado a (-1)=0,5
0*(2) elevado a (-2)=0
1*(2) elevado a (-3)=0,125
0*(2) elevado a (-4)=0
0*(2) elevado a (-5)=0
1*(2) elevado a (-6)=0,015625
La suma es: 0,640625
* 0.110111 (binario) = 0,859375(decimal). Proceso:
1*(2) elevado a (-1)=0,5
1*(2) elevado a (-2)=0,25
0*(2) elevado a (-3)=0
1*(2) elevado a (-4)=0,0625
1*(2) elevado a (-5)=0,03125
1*(2) elevado a (-6)=0,015625
La suma es: 0,859375
Conversión entre binario y octal
Binario a octal
Para realizar la conversión de binario a octal, realice lo siguiente:
1) Agrupe la cantidad binaria en grupos de 3 en 3 iniciando por el lado derecho. Si
al terminar de agrupar no completa 3 dígitos, entonces agregue ceros a la
izquierda.
2) Posteriormente vea el valor que corresponde de acuerdo a la tabla:
Número en binario 000
001
010
011
100
101
110
111
Número en octal
1
2
3
4
5
6
7
0
3) La cantidad correspondiente en octal se agrupa de izquierda a derecha.
Ejemplos
* 110111 (binario) = 67 (octal). Proceso:
111 = 7
110 = 6
Agrupe de izquierda a derecha: 67
* 11001111 (binario) = 317 (octal). Proceso:
111 = 7
001 = 1
11 entonces agregue un cero, con lo que se obtiene 011 = 3
Agrupe de izquierda a derecha: 317
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
32
ELECTRONICA DIGITAL UNIDAD 1
2010
* 1000011 (binario) = 103 (octal). Proceso:
011 = 3
000 = 0
1 entonces agregue 001 = 1
Agrupe de izquierda a derecha: 103
Octal a binario
Cada dígito octal se lo convierte en su binario equivalente de 3 bits y se juntan en
el mismo orden.
Ejemplo
247 (octal) = 010100111 (binario). El 2 en binario es 10, pero en binario de 3 bits es Oc(2) = B(010);
el Oc(4) = B(100) y el Oc(7) = (111), luego el número en binario será 010100111.
Conversión entre binario y hexadecimal
Binario a hexadecimal
Para realizar la conversión de binario a hexadecimal, realice lo siguiente:
1) Agrupe la cantidad binaria en grupos de 4 en 4 iniciando por el lado derecho. Si
al terminar de agrupar no completa 4 dígitos, entonces agregue ceros a la
izquierda.
2) Posteriormente vea el valor que corresponde de acuerdo a la tabla:
Número en binario 0000 0001 0010 0011 0100 0101 0110 0111 1000
1001 1010 1011 1100 1101 1110 1111
Número en hexadecimal 0
9
A
B
C
1
D
2
E
3
F
4
5
6
7
8
3) La cantidad correspondiente en hexadecimal se agrupa de derecha a izquierda.
Ejemplos
* 110111010 (binario) = 1BA (hexadecimal). Proceso:
1010 = A
1011 = B
1 entonces agregue 0001 = 1
Agrupe de derecha a izquierda: 1BA
* 11011110101 (binario) = 6F5 (hexadecimal). Proceso:
0101 = 5
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
33
ELECTRONICA DIGITAL UNIDAD 1
2010
1111 = F
110 entonces agregue 0110 = 6
Agrupe de derecha a izquierda: 6F5
Hexadecimal a binario
Ídem que para pasar de octal a binario, sólo que se remplaza por el equivalente de
4 bits, como de octal a binario.
Tabla de conversión entre decimal, binario, hexadecimal, octal, BCD, Exceso 3 y
Código Gray o Reflejado
ELABORADO POR: JUAN DE LA CRUZ MARTINEZ
34
Descargar