Capitulo 4.- Convertidor Analógico Digital
4.2 Proceso de Digitalización
4.2.3. Codificación
La codificación es el proceso de representar de forma biunívoca cada uno de los estados de salida (finitos) del cuantificador por un símbolo elegido de un alfabeto finito. Cuando el alfabeto consta sólo de las cifras 1 o 0, y la posición de cada cifra dentro de un número se corresponde con una potencia entera de 2, se habla de códigos binarios (bits)180.
179 Ma os Faú dez )a uy, T ata ie to digital de oz e i age y apli a ió a la ulti edia , Edito ial Marcombo, 2000. Pág. 43
180Ra ó Pallas A e y, Ad uisi ió y Dist i u ió de “eñales , Edito ial Ma o o, . Pág.
0 Q 2Q 3Q 4Q 5Q 1 2 3 4 5 6 Estado de salida (a) x +Q/2 - Q/2 x (b)
53
4.2.3.1. Códigos binarios unipolares
Los códigos binarios unipolares se utilizan para representar cantidades unipolares, es decir con un signo predefinido. Los más comunes son le binario natural, el NBCD y el Gray181.
Código binario natural. En este código cada bit corresponde a una potencia sucesiva de 2, de acuerdo con su posición en el número.
(11)
Donde . es el bit más significativo (MSB) y es el bit menos significativo (LSB). Por ejemplo,
Códigos BCD. Decimal codificado en binario, en los códigos BCD los bits se agrupan de cuatro en cuatro, de manera que cada grupo representa una cifra de la cantidad expresada en código decimal. Cuando el peso de cada bit dentro de un grupo es el mismo que en el código binario natural, es decir, 8-4-2-1 de izquierda a derecha, se habla de código NBCD (BCD Natural). Otros pesos empleados son 2-4-2-1, 5-4-2-1 y 5-3-1-1 equivalentes a una cifra de 0 a 9. Un ejemplo de NBCD se muestra a continuación:
Código Gray. De un número al siguiente en código binario natural, la mitad de las veces cambia más de 1 bit. Hay códigos donde de un número al siguiente siempre cambia sólo un bit y se denominan códigos de distancia unidad. Si del mayor al menor número también cambia un solo bit, se dice que el código es cíclico. El código Gray, o binario reflejado es un código de distancia unidad y cíclico, cada posición no corresponde a una potencia de 2.
Códigos complementarios. Estos códigos consisten en la inversión bit a bit(o complemento lógico) de los números de otro código. En la Tabla 4se presenta el código binario (natural) complementario y el código NBDC complementario.
Numero Binario Binario NBCD NBCD Gray
181 Ramón Pallas Ae y, Ad uisi ió y Dist i u ió de “eñales , Edito ial Ma o o, . Pág. -187
Numero en código decimal
Numero en código decimal
Código binario natural
Código binario natural Numero en código
decimal
54
Decimal Natural complementario complementario
0 0000 1111 0000 1111 0000 1 0001 1110 0001 1110 0001 2 0010 1101 0010 1101 0011 3 0011 1100 0011 1100 0010 4 0100 1011 0100 1011 0110 5 0101 1010 0101 1010 0111 6 0110 1001 0110 1001 0101 7 0111 1000 0111 1000 0100 8 1000 0111 1000 0111 1100 9 1001 0110 1001 0110 1101 10 1010 0101 (1 0000) (0 1111) 1111 11 1011 0100 (1 0001) (0 1110) 1110 12 1100 0011 (1 0010) (0 1101) 1010 13 1101 0010 (1 0011) (0 1100) 1011 14 1110 0001 (1 0100) (0 1011) 1001 15 1111 0000 (1 0101) (0 1010) 1000
Tabla 4.- Palabras (o “números”) de 4 bits en diversos códigos unipolares182
4.2.3.2. Códigos binarios bipolares
La representación digital de cantidades que puedan tomar valores positivos o negativos exige tener en cuenta su signo ( ), una forma de hacerlo es mediante un bit adicional, por ejemplo que ocupe la posición más a la izquierda en el número binario. En la Tabla 6 se muestra en ejemplo de estos códigos183.
Código binario con complemento a dos. El complemento a dos de un número binario se define como aquel número que sumado al original da resultado 0 (para un número concreto de bits). Las cantidades positivas se representan como en binario natural añadiendo un bit 0 a la izquierda. Las cantidades negativas se representan haciendo el complemento a 1 de cada bit del número binario que representa la cantidad positiva, y sumando 1. Como algoritmo para representar una cantidad negativa – mediante bits en código binario con complemento a dos, se puede emplear la relación
La Tabla 5 muestra un ejemplo: Representación de un número con 4 bits en
código binario con complemento a uno Representación de un número con 4 bits en código binario con complemento a dos
0111
0111 1000 Numero binario en positivo
Complemento a 1
182Ra ó Pallas A e y, Ad uisi ió y Dist i u ió de “eñales , Edito ial Ma o o, . Pág. -187 183Ra ó Pallas A e y, Ad uisi ió y Dist i u ió de “eñales , Editorial Marcombo, 1993. Pág. 187-190
55 Tabla 5. Representación de un número con 4 bits en código binario con complemento184
Una ventaja de este código es que permite hacer restas simplemente a base de sumar los números positivos y negativos. Por ello es un sistema de codificación que emplean muchos .
Código binario con complemento a uno. En este código las cantidades positivas se representan como en binario natural, y las cantidades negativas se representan haciendo el complemento a uno de cada bit de la palabra que representa la cantidad positiva.
Código binario decalado (offser binary). El código binario decalado es similar al código binario con complemento a dos, pues sólo cambia el bit de mayor peso (MSB), que ahora es 1 para las cantidades positivas y 0 para las negativas. La cantidad “cero” se considera positiva. Es un código muy fácil de realizar, y por ello es uno de los favoritos en CAD que acepten entradas bipolares. El algoritmo para pasar un número de bits de binario natural a binario decalado es . Así, por ejemplo, para la representación de es , y la representación de
es
Código binario con signo añadido. En este código, también llamado binario simétrico, las cantidades positivas se representan como en binario natural y se las precede de un 0. Las cantidades negativas se representan igual pero se las precede de un 1. La cantidad “cero” puede representar indistintamente con un 1 o un 0 a la izquierda. Se utiliza poco por que dificulta las operaciones aritméticas.
Fracción decimal Complemento a
dos Complemento a uno Binario decalado Signo añadido
+ 127/128 01111111 0111111 11111111 11111111 + 96/128 01100000 0110000 11100000 11100000 + 64/128 01000000 0100000 11000000 11000000 + 32/128 00100000 0010000 10100000 10100000 0 00000000 0000000 10000000 10000000 1111111 00000000 - 32/128 11100000 1101111 01100000 00100000 - 64/128 11000000 1011111 01000000 01000000 - 96/128 10100000 1001111 00100000 01100000 - 127/128 10000001 1000000 00000001 01111111 - 128/128 10000000 - 00000000 -
Tabla 6.- Algunos códigos bipolares cuando se emplean 8 bits185
184Ra ó Pallas A e y, Ad uisi ió y Dist i u ió de “eñales , Edito ial Ma o o, . Pág. -190 185Ra ó Pallas A e y, Ad uisi ió y Dist i u ió de “eñales , Edito ial Ma o o, . Pág. -190
56