Ir al contenido

PGD | §1.6 – Digitalización en general

< §1.5 – Representación de magnitudes digitales

La codificación de texto recientemente analizada es un proceso relativamente simple, pues los mensajes ya forman un conjunto finito desde el principio. En cambio, cuando es necesario obtener una representación digital de una magnitud continua, deberemos establecer, tal como hemos visto, una “precisión razonable” que nos lleve del dominio analógico y sus potencialmente infinitos valores al dominio digital y una cantidad limitada de “mensajes”.

Con estas ideas en mente, diremos que:

Digitalizar es el procedimiento que me permite expresar o convertir una magnitud continua (análoga) en digital[1].

En general, las magnitudes de interés práctico no suelen ser cantidades estáticas, sino más bien variables (con respecto a una “variable independiente”, la más de las veces el tiempo o el espacio). Es decir, no se trata de representar digitalmente un sólo valor, sino de hacerlo con todo un conjunto de ellos. En esencia, digitalizar esas magnitudes es un proceso en dos etapas:

  • La que nos permite restringir la infinidad de sus valores respecto de esa variable independiente, conocido como muestreo;
  • La que nos permite limitar sus posibles valores, llamada cuantificación.

Por último se aplica algún tipo de codificación a los datos así obtenidos. Analizaremos cada una de esas etapas.

Muestreo

En la práctica se presentan casos como el siguiente. Supongamos que una estación meteorológica debe registrar durante varios días las condiciones de navegabilidad de un río, para luego analizar esos datos. Para fijar ideas, vamos a asumir que se debe medir el nivel del agua en un determinado puerto a lo largo de una semana. Sabemos que la magnitud a medir es continua; entonces, en teoría esperaríamos obtener una gráfica como la que sigue.

water height
Posible gráfica de la altura del agua en función del tiempo en un puerto hipotético.

Para obtener una gráfica como ésta, es preciso disponer de algún instrumento de medición continua que simultáneamente trace la curva (a la manera de un sismógrafo, por ejemplo). Sin embargo, si lo que queremos analizar son los niveles del agua en los distintos momentos del día, observamos que son infinitos. No podemos analizar infinitos datos. ¿Podremos arreglarnos con menos?

Sabemos ya que es posible elegir un conjunto limitado de datos que nos den la información buscada dentro de una precisión razonable. En efecto, si a las 10 de la mañana del día 1 la altura del agua era de 8 metros, ¿es razonable esperar que a las 10:05 la altura sea muy diferente? Nuestra experiencia nos dice que en general no; los cambios no suelen ser tan bruscos. Acordemos, entonces, que para esperar un cambio sensible en el nivel del agua debemos dejar pasar cierto tiempo, pongamos media hora. Esto producirá una serie de mediciones como sugiere el diagrama siguiente:

water height sampled
Muestras de la altura del agua tomadas a intervalos de media hora.

Como en el día hay 48 medias horas, éste será el número de mediciones que necesitamos —en lugar de las teóricamente infinitas. Daremos un nombre a este proceso:

Se denomina muestreo a la operación de medir la magnitud de interés en diferentes momentos a lo largo de un cierto período. Cada una de las mediciones será una muestra de esa magnitud[2][3]

HoraMedición
12:008,65 m
12:308,81 m
13:009,15 m
¿Qué significado práctico tiene la medida de la altura del agua tomada cada media hora? Imaginemos tres mediciones consecutivas del mismo día, por ejemplo las realizadas a las 12:00, 12:30 y 13:00 horas, según el cuadro siguiente.

Si se planteara la cuestión de establecer qué altura tenía el agua, por ejemplo, a las 12:25, ¿cuál de estos tres valores elegiría? ¿Y a las 12:48?

En el primer caso, dado que las 12:25 está más cercana a las 12:30 que a las 12:00, tomaría esa altura como la correspondiente a esa hora. En el segundo caso, las 12:48 está más cerca de las 13:00; luego tomaría esta última medición como la altura que le corresponde.

En este punto podemos pensar “bien, es lógico tomar como nivel del agua en un instante cualquiera la arrojada por la medición en el momento más cercano, pero la altura real que existía entonces no la sabemos con certeza pues no hay mediciones en ese momento específico”. Esto es cierto, pero decidimos de antemano que medir cada media hora era suficiente; esto nos obliga a adoptar un criterio para asignar una medición a los instantes entre mediciones consecutivas. En este caso, hemos aplicado implícitamente un criterio de cercanía para elegir la medición correspondiente.

Dentro de las aplicaciones gráficas, tenemos un caso similar en el control de calidad que se realiza durante el proceso de impresión: la medición de una magnitud de interés, por ejemplo la densidad de sólido, a lo largo de la tirada[4]. En este caso, para independizarse de la velocidad de impresión, suelen tomarse muestras cada cierto número de impresiones (pliegos por ejemplo). Aunque cada medida se la relacione con el número de impresiones hasta ese momento, este muestreo es temporal, ya que las muestras se toman a intervalos regulares en el tiempo. ¿Cada cuántas impresiones se tomarán las muestras? Aquí serán las exigencias de calidad, la variabilidad del equipo impresor, la experiencia del operador de la máquina y la tecnología con la que se cuente para mantener bajo control ese parámetro las que sugieran un intervalo de muestreo apropiado.

Cuantificación

El proceso de muestreo nos ha dado como resultado un conjunto de mediciones, que dentro de una precisión razonable nos da información suficiente para conocer el comportamiento de la magnitud muestreada en un periodo determinado. Sin embargo, el problema está resuelto parcialmente: si bien el muestreo nos evita considerar los infinitos instantes del tiempo para sólo analizar una cantidad finita de muestras, la muestra en sí es todavía una magnitud continua, y como tal capaz de tomar un número infinito de valores. Utilizando el mismo ejemplo, entre una altura de 8 metros y otra de 8,5 metros existen infinitas alturas posibles.

Las observaciones hechas en el capítulo precedente nos han preparado para tratar esta cuestión. Sabemos que a pesar de tener infinitos valores, la magnitud en cuestión nos interesa sólo dentro de una “precisión razonable”, que una vez establecida nos permitirá elegir un conjunto discreto de valores. En el ejemplo del nivel del agua, podemos acordar que esa precisión es de 10 cm; por otro lado, la naturaleza misma de esa magnitud nos permite poner ciertos límites, digamos que siempre será mayor que 7 metros pero no superará los 9 metros; entonces los valores posibles serán

7,1 m; 7,2 m; 7,3 m; …; …; 8,8 m; 8,9 m; 9,0 m.

Dado que dentro de un rango de 2 metros (de 7 a 9 m) se consideran valores consecutivos con una diferencia de 0,1 m entre sí, resulta que esta lista tiene 2/0,1 = 20 diferentes mediciones posibles; cualquier valor que tome nuestra magnitud, dentro de la precisión propuesta, tiene que estar en esta lista[5].

water height quantizationSi una medición arrojara 8.0 m, no habría problema: ese valor ya está en la lista. Supongamos ahora que una muestra tiene el valor 8,18 m. Este valor no está en la lista. Si debemos limitarnos a uno de esos 20 valores, ¿cuál elegiremos? Razonando igual que antes, el valor 8,2 m sería el más cercano. Luego, donde el instrumento de medida nos dice 8,18 m, debemos tomar 8,2 m. Hemos cometido así un error de 2 cm; si previamente decidimos que conocer la altura del agua con una precisión de 10 cm era suficiente, entonces ese error no afecta las decisiones que tomemos utilizando el valor así asignado. En otras palabras: cualquiera sea la decisión que tomemos en función de esa medición (por ejemplo, si el río es o no navegable en ese momento) no cambiará por considerar que el nivel es 8,18 m o es 8,2 m. Luego la información transmitida a los fines prácticos es la misma. Este proceso es más común de lo que parece: cuando medimos una longitud con una regla graduada, buscamos coincidencia entre esa longitud y las marcas en la regla. Si no hay coincidencia absoluta, automáticamente buscamos la marca más cercana, y esa será la longitud tomada. Hemos resignado así algo de precisión, a cambio de poder expresar la medida mediante un número entero (o con una cantidad fija de decimales), implícitamente aceptando una “precisión razonable”.

Hemos así convertido un valor particular de una magnitud continua en uno digital con el mismo contenido de información. Daremos un nombre a este proceso:

Reemplazar los valores que puede tomar una magnitud continua por un conjunto limitado de unidades discretas de manera de conservar la información necesaria (dentro de una cierta precisión) se denomina cuantificación.

Las unidades discretas elegidas se llaman niveles de cuantificación[6]

water height thresholdSiguiendo con el mismo ejemplo, si ahora la medición arroja 8,14 metros, el mismo criterio nos indica que debemos asignar a esta muestra el valor 8,1 m, que es el más cercano. En este proceso reconocemos que, implícitamente, se ha utilizado el valor de 8,15 m para separar las mediciones que les corresponden a dos niveles de cuantificación consecutivos, 8,1 y 8,2 m. Cuando la cuantificación es uniforme, como en este caso, estos umbrales de decisión se encontrarán en el punto medio entre niveles de cuantificación adyacentes.

Codificación

Conceptualmente, el proceso de digitalización está concluido, pero en la práctica se impone asignar una representación o código a cada uno de los posibles niveles de cuantificación, para permitir su almacenamiento y eventual proceso posterior. Según las ideas precedentes, podemos saber cuánta información contiene cada muestra a partir de la variedad del conjunto de todos los posibles niveles.

En nuestro ejemplo, dicha variedad V es 20; para hallar la información medida en bits debemos encontrar un número n tal que 2n = V = 20. El lector hallará fácilmente que n debe estar entre 4 y 5, pues 24 = 16 es menor a 20, mientras que 25 = 32 es mayor a 20. Como debemos emplear un número entero de bits, concluimos que cada muestra requerirá 5 bits de información[7].

¿Qué secuencia de 5 dígitos (formada por ceros y unos) corresponderá a cada valor? Sabemos que pueden elegirse muchas formas distintas; una de ellas, quizás la más natural, es numerar los niveles de 0 a 19 y asignarles a cada una el número binario correspondiente. La tabla siguiente muestra la codificación así obtenida:

Nivel de cuantificaciónNúmero de mensaje asignadoCódigo
7,1 m000000
7,2 m100001
7,3 m200010
. . .. . .. . .
8,9 m1810010
9,0 m1910011

Por último, ¿cuánta información en total deberé procesar? Tenemos 5 bits por cada muestra, 48 muestras en el día, durante un período de 7 días; por lo tanto la información total es

5 bits/muestra x 48 muestras/día x 7 días = 1680 bits.

En la práctica, existen dispositivos como las memorias y los discos rígidos que tienen la capacidad de almacenar conjuntos de bits. Este cálculo, si correspondiera a un proyecto real, nos dice cuánta memoria deberá emplear el sistema de cómputo para conservar esta información.

En otros contextos interesa saber con qué velocidad se crearán las muestras; en nuestro ejemplo, eso ocurre a una tasa igual a 5 bits/muestra x 48 muestras/día, lo que nos da 240 bits/día. Este número se denomina tasa de información, tasa de bits o bitrate, y es de particular interés cuando por la naturaleza de la magnitud digitalizada las muestras se generan a mucha velocidad, como por ejemplo en las aplicaciones de audio y video, donde se alcanzan tasas que van de los centenares de miles hasta varios millones de bits por segundo.

Los sistemas de cómputo actuales permiten operar sobre grupos de varios bits simultáneamente. El mínimo común denominador de todos los sistemas actuales (y muchos de los sistemas del pasado) trabaja con grupos de 8 bits, denominados bytes. Esta unidad es de uso muy difundido para la medición de volúmenes de almacenamiento, así como sus múltiplos más comunes: el kilobyte, el megabyte y el gigabyte. Si bien los prefijos kilo, mega y giga representan mil, un millón y mil millones respectivamente —mil veces el prefijo anterior—, en el caso de emplearse con bits o bytes la relación entre ellos no es 1000 sino 1024[8]. De esta forma se definen:

MúltiploSímbolo Equivalencia en megabytesEquivalencia en kilobytesEquivalencia en bytes
1 kilobyte1 kB=1.024 bytes
1 megabyte1 MB=1.024 kilobytes1.048.576 bytes
1 gigabyte1 GB=1.024 megabytes1.048.576 kilobytes1.073.741.824 bytes

Las razones de esta particular definición tienen que ver con el diseño práctico de las memorias antes mencionadas.

Imaginemos una memoria capaz de almacenar 1000 bytes como un conjunto de 1000 unidades llamadas registros de 1 byte cada uno. Si quiero seleccionar uno de esos registros (para leer su contenido o escribir nuevos datos en él) debo indicar a cuál me refiero entre esos mil. Para averiguar el número de bits que corresponden a esa variedad tenemos que hallar un número n tal que 2n = 1000. Observando que es

29 = 512 < 1000 < 210 = 1024,

nos vemos obligados a utilizar 10 bits, ya que 9 son insuficientes; pero esos 10 bits en realidad permiten una variedad de 1024, luego es más ventajoso ampliar esa memoria hasta los 1024 registros. Esto indica la conveniencia de definir un kilobyte como equivalente a 1024 bytes en lugar de 1000. El mismo análisis se aplica a los otros múltiplos. Como ventaja adicional, con esta definición una memoria de 1 kilobyte requiere 10 bits para seleccionar uno de sus registros, mientras que una de 1 megabyte requerirá 20 bits, una de 1 terabyte 30 bits, etc., existiendo una relación de 10 bits entre múltiplos.

Para volúmenes de información aún mayores, comunes en los actuales discos rígidos y servidores de archivos, se emplean otros múltiplos, a saber: el terabyte (= 1024 gigabytes), el petabyte (= 1024 terabytes) y el exabyte (= 1024 petabytes)[9].

 

Actividades para el capítulo §1.6

  1. En la actividad 3 del §1.4 se proponía buscar la variedad de la altura que puede tener una persona. Retomando este problema, diseñe una estrategia de digitalización de la altura de una persona a lo largo de su vida. Ello exigirá determinar: 1) cada cuántos ¿meses? ¿días? ¿años? habrá que tomar las muestras; 2) utilizar la variedad hallada entonces para determinar la cantidad de bits necesarios por muestra; 3) definir una codificación apropiada para esa información.
  2. En el ejemplo sobre la digitalización de audio en un CD comercial, podemos reducir la cantidad de información necesaria para almacenar el sonido si nos limitamos a una calidad telefónica, es decir, un mínimo necesario para que la voz humana pueda entenderse. Calcule la nueva tasa de bits (bitrate) si se hacen los siguientes cambios: 1) la frecuencia de muestreo se baja de 44.100 a 10.000 muestras por segundo; 2) se utiliza un solo canal de audio (monoaural) en lugar de dos; 3) se cuantifica a 8 bits en lugar de 16 bits. Por último, compare la diferencia con el valor hallado en el ejemplo de 1.411.200 bits/seg.
§2.1 – Muestreo de una de imagen >

1 En la jerga tecnológica este proceso se denomina conversión A/D (analógico a digital) o también ADC (analog to digital conversion); recíprocamente, la operación opuesta se conoce como conversión D/A (digital a analógico) o DAC (digital to analog conversion).
2 No hemos incluido en esta definición la necesidad de que las muestras estén tomadas a intervalos regulares (como parece sugerir el ejemplo), pues en la práctica esta condición no es esencial, aunque de hecho es la situación más común. Si se cumple, se dice que el muestreo es uniforme.
3 Las magnitudes pueden variar en el espacio, además de variar en el tiempo. En el ejemplo previo el muestreo es temporal; las mediciones del nivel del agua a la misma hora pero tomadas con intervalos de 10 km a lo largo del mismo río, representarían un muestreo espacial, en este caso también uniforme.
4 Esta magnitud no es estrictamente variable con continuidad, puesto que entre un pliego y el siguiente no hay “intermedios”; sin embargo, cuando los elementos a analizar son numerosos y están ordenados, se los trata como continuos y podemos así hablar de muestreo.
5 Está claro que si elegimos una “precisión razonable”, el instrumento empleado debe tener como mínimo dicha precisión; de lo contrario es el instrumento el que impone el límite. Lo importante, y que en definitiva hace posible la digitalización en la práctica, es que el límite de precisión siempre existe, sea por la técnica de medición empleada, sea por la exactitud con la que se empleará la información resultante.
6 Como en el caso del muestreo, el ejemplo parece sugerir que la diferencia entre dos niveles de cuantificación consecutivos es constante, en cuyo caso la cuantificación es uniforme, y se demuestra que es la mejor estrategia siempre que no se conozca a priori cómo puede variar la magnitud cuantificada. Cuando se cuenta con esa información, en cambio, es ventajoso emplear diferentes métodos de cuantificación no uniforme.
7 Si esto fuera un caso real de análisis, la necesidad de utilizar códigos de 5 bits sugeriría la conveniencia de ampliar el conjunto de niveles de cuantificación a 32, es decir, 12 niveles más. Esto redundaría en una ampliación del rango a medir (por ejemplo entre 6,5 m y 9,6 m) en lugar del original de 7 a 9 m; otra opción sería disminuir la distancia entre niveles de cuantificación a 6,25 cm en lugar de los 10 cm originales; finalmente, es concebible una combinación de ambas cosas.
8 Una excepción son los fabricantes de discos rígidos, quienes sí usan 1000 en lugar de 1024. Esto hace que un disco rotulado como de 100 GB por el fabricante sea reportado por el sistema operativo del equipo que lo utilice como de 100.000.000.000 bytes, es decir (según la tabla de equivalencias precedente) 100.000.000.000 / 1.073.741.824 = 93,13 GB.
9 Para tener una idea de la magnitud de estos valores, se estima entre 100 y 200 petabytes la información contenida en todos los medios impresos del mundo, mientras que alrededor de 5 exabytes serían equivalentes a la información contenida en todas las palabras pronunciadas por la raza humana en todas las épocas.