UNIVERSIDAD NACIONAL DE QUILMES

CARRERA DE COMPOSICION CON MEDIOS ELECTROACUSTICOS

COMPUTACION APLICADA A LA MUSICA II

Prof. Oscar Pablo Di Liscia

INTRODUCCIÓN AL AUDIO DIGITAL

El siguiente es un resumen sobre Audio Digital basado principalmente en la 2ª Sección del libro Elements of Computer Music (F. R. Moore, Prentice Hall Inc., New Jersey, 1990). Se han omitido numerosos datos que no servían al propósito de este curso y, a la vez, se han agregado otros que provienen de diversas fuentes.

Para entender los procesos empleados en la generación y procesamiento de sonido digital se puede utilizar el recurso de pensarlos en términos de velocidades. Al estudiar MIDI hemos visto cómo la computadora o diversos dispositivos pueden enviar órdenes de disparo y control a otros dispositivos que generan y/o procesan señales digitales. La velocidad de envío de esas órdenes no puede superar, en el caso de MIDI, los 31.250 bits por segundo y, considerando que cada comando MIDI tiene de un byte a 3 bytes, podemos decir, realizando un promedio de 16 bits p/seg. (2 bytes) que se pueden enviar aproximadamente unas 2000 ( |(31.250/16)|=1953) órdenes MIDI por segundo. No hemos dicho nada, sin embargo, acerca de cómo trabajan los dispositivos de software o hardware que generan y/o procesan señales digitales y, aunque 2000 acciones por segundo es una cifra de ejecución impresionante, lejos del alcance de cualquier intérprete humano, en términos de velocidad de computación y de velocidad requerida para procesar audio digital de buena calidad es una cifra bien pequeña.

Una señal digital es una representación en código binario de una señal acústica. Esta representación posibilita la realizacion de diversos procesos sobre ella y, a la vez, almacenarla en la memoria de un dispositivo digital. Al conjunto de procedimientos para el procesamiento de la señal digital se lo suele denominar DSP (Digital Signal Processing). Las señales digitales pueden obtenerse mediante procedimientos específicos (Síntesis Digital), o bien transformando una señal acústica o una señal analógica en una señal digital.

DIGITALIZACIÓN DE SONIDO

Consiste en la codificación de la señal analógica en una secuencia numérica. El procedimiento más usual se llama Pulse Code Modulation (PCM) y consiste en reemplazar una señal por una secuencia de bits que representan su forma de onda. Una de las ventajas de este método es que la señal codificada (digital) sólo tiene dos valores posibles: 0 y 1. Para reconstruir una señal, entonces, un mecanismo decodificador sólo tiene que ser capaz de reconocer la diferencia entre dos valores y, como consecuencia, es menos sensible al error. La conversión de señal analógica a digital se denomina sampling (muestreo o sampleo) y se realiza por medio de un dispositivo especial denominado Analog to Digital Converter (ADC o conversor analógico a digital). El proceso inverso se realiza por medio del Digital to Analog Converter (DAC o conversor digital analógico).

MUESTREO O SAMPLING

A través de este proceso la señal analógica se transforma en una señal digital, o sea, en una secuencia de números que representan la amplitud instantánea de cada punto de la forma de onda. Como consecuencia de esto, la señal digital maneja valores temporales discretos (esto es, que no tienen la continuidad característica de la señal analógica) determinados por la relación entre la cantidad de muestras y la unidad de tiempo. La llamada Frecuencia de muestreo (simbolizada de aquí en adelante con la letra R) indica cuantos valores de amplitud por segundo se toman. Una frecuencia de muestreo de 22.500Hz indica que se toman 22.500 muestras por segundo. Al lapso que separa una muestra de otra, igual al inverso de la frecuencia de muestreo (1/SR), se lo denomina intervalo de muestreo y se representa habitualmente con la letra T mayúscula. La resolución en bits indica el rango de las muestras (el rango en el que se mueven los valores de amplitud). Una señal de 8 bits usa 2^8=256 valores de amplitud. La frecuencia de muestreo y la resolución en bits influyen en la posible calidad de sonido de la señal digital, luego veremos esto más detalladamente.

El proceso de muestreo se realiza conceptualmente en tres etapas:

1)La señal analógica es procesada por un filtro pasa-bajos que elimina cualquier componente espectral de frecuencia mayor a la mitad de la frecuencia de muestreo (R/2). Esto se establece en el Teorema de Muestreo :

Para representar digitalmente una señal que contiene componentes de frecuencia hasta X Hz, es necesario usar una Frecuencia de muestreo de, al menos, 2X muestras por segundo.

R/2, o la mitad de la frecuencia de muestreo se denomina a veces frecuencia de Nyquist, en recuerdo de H. Nyquist, el creador del teorema). Dicho de otra manera, si se desea muestrear una señal que tiene componentes hasta 20.000Hz, hay que usar, al menos, una frecuencia de muestreo igual a 40.000Hz.

2)Se mide la amplitud instantánea del diseño resultante a intervalos de tiempo iguales (1/SR=T).

3)El cuantizador convierte cada medición en un valor numérico.

La forma más simple de entender el teorema de muestreo es considerar que, finalmente, una vibración consiste en un movimiento de ida y vuelta. Para representar a ese movimiento una señal digital necesita un valor para la "ida" y otro para la "vuelta", luego la señal digital deberá contener al menos dos números por cada ciclo de cada componente de la señal que se ingrese.

Si la señal muestreada contiene componentes cuyas frecuencias exceden la mitad de R, el proceso de muestreo no representará correctamente algunas frecuencias, dando lugar a un fenómeno denominado aliasing. Antes de comprender este proceso veremos cómo la señal analógica se reconstruye a partir de la digital.

El primer paso consiste en que el DAC emite un voltaje proporcional al número de cada muestra. En este proceso, debido a pequeños lapsos diferentes en la operación de los circuitos, se producen algunas variaciones de voltaje erróneas (que no corresponden a la señal digital) llamadas glitches, que deben ser eliminadas por medio de un dispositivo especial (deglitcher). Finalmente un filtro pasa-bajos (con frecuencia de corte igual a R/2) es usado nuevamente con el propósito de "suavizar" las transiciones de un valor de voltaje a otro.

ALIASING

La figura (1) muestra tres sinusoides a diferentes frecuencias, muestreadas a la misma frecuencia. La primera tiene una frecuencia inferior a R/2, la segunda tiene una frecuencia igual, y la última tiene una frecuencia superior. Los tres casos se denominan, respectivamente: sobremuestreado (más de dos muestras por período); muestreado críticamennte (dos muestras por período) y submuestreado (menos de dos muestras por período). Se puede apreciar, en el tercer caso, el efecto de aliasing, al producirse en realidad un componente (marcado con línea de puntos) que no corresponde con el original(de aquí la denominación de"alias").

La frecuencia de un componente alias fr se puede calcular a partir de la frecuencia original del componente, f y la frecuencia de muestreo R en base a la siguiente fórmula:

fr = f - ( int (2 f / R)) R (int significa "la parte entera de")

Los efectos del aliasing pueden clasificarse en tres tipos:

1)Distorsión de la amplitud real de los componentes: los componentes falsos (alias) pueden coincidir con los reales, modificando su amplitud y, por lo tanto la forma de onda total.

2)Batidos y distorsión no-lineal: los componentes falsos pueden ubicarse en frecuencias cercanas a las de los reales, produciendo batidos y distorsiones.

3)Frecuencias inferiores con movimientos divergentes ("heterodyning"): en los casos en los que la señal tenga componentes submuestreados con glissandos, se producirán componentes falsos con glissandos en el sentido contrario.

Estos efectos pueden minimizarse cuando la amplitud de los alias es muy pequeña. No obstante, es importante tener en cuenta al teorema de Nyquist antes de muestrear, porque luego es muy difícil eliminar los componentes falsos. Ya que hay algunos métodos de síntesis (FM, por ejemplo) que producen espectros de banda-no limitada (es decir, de ancho de banda teóricamente infinito), algún grado de aliasing es inevitable, pero se puede disimular y minimizar sus efectos.

CUANTIZACIÓN

La finalidad de la cuantización es determinar dentro de cuáles rangos de amplitud disponibles (regiones) cae el valor de cada muestra. Por ejemplo, supongamos que las muestras son valores de voltaje que se manejan en un rango total de +-E volts, para un rango total de 2E volts. Para asociar un valor de N bits con cada voltaje muestreado v dentro de este rango, el cuantizador debe ubicar el rango total dentro de 2N regiones. Un método de asignación común consiste en dividir la amplitud total en 2N regiones, cada una de 2E/2N volts. Cada región puede ser entonces asociada pon un valor preciso de amplitud máximo y mínimo y un código de N-bits único. El cuantizador asigna cualquier valor de amplitud que cae dentro de una de esas regiones al número binario asociado con esa región. A este método se lo denomina cuantización lineal. Por ejemplo, una señal de +-10 volts puede cuantizarse en valores de 4 bits como se muestra en la figura (2).

Figura 2:

Cuantización lineal de una señal de un rango de -+10 volts en 4 bits. Si el nivel del voltaje de una muestra cae entre el valor mínimo y máximo de una región , el código binario asociado con esa región se genera. Cada región tiene igual tamaño (1.25 volts, en este ejemplo)

region

voltaje min.

voltaje max.

código binario

1

-10

-8.75

0000

2

-8.75

-7.5

0001

3

-7.5

-6.25

0010

4

-6.25

-5

0011

5

-5

-3.75

0100

6

-3.75

-2.5

0101

7

-2.5

-1.25

0110

8

-1.25

0

0111

9

0

1.25

1000

10

1.25

2.5

1001

11

2.5

3.75

1010

12

3.75

5

1011

13

5

6.25

1100

14

6.25

7.5

1101

15

7.5

8.75

1110

16

8.75

10

1111

Alguna información se pierde en este proceso de cuantización, porque cualquier valor entre algún mínimo y máximo será asignado a un único código binario. En efecto, si el DAC produce un voltage asociado con el punto medio de cada región, por ejemplo, es evidente que un pequeño error ocurrirá al generar la señal digital. A este tipo de error se lo denomina error de cuantización.

La mayoría de las veces este error es aleatorio y la dimensión máxima posible es de la mitad de la dimensión de cada región. A causa de que el error de cuantización es a veces positivo, a veces negativo, algunas veces pequeño y otras más grande (dentro de sus límites) se lo puede pensar como equivalente a un pequeño monto de ruido ("blanco") que se agrega a la señal durante el proceso de digitalización. Si comparamos la amplitud de la señal con la amplitud de este error de cuantización, podemos derivar una proporción entre ambas, que se denomina SQNR (signal-to-quantization-error-noise-ratio) que es similar a la SNR (signal to noise ratio) de la señal analógica.

La fórmula para determinarlo en dB es:

SQNR (dB) = 20 log10 2n, o sea, aproximadamente 6N

Esta fórmula establece que cada bit de precisión en el proceso de muestreo le agrega 6dB a la SQNR a una señal que tiene la amplitud máxima usando un proceso de cuantización lineal. El standard para audio digital de buena calidad es de 16 bits, que da una SQNR teórica de aproximadamente 96 dB. Nótese, sin embargo, que este valor surge de comparar el error con una señal de amplitud máxima, señales de menor amplitud tendrán una SQNR menor. Por consiguiente, cuanto menor es la amplitud de la señal, más posibilidades tiene de ser degradada por el error de cuantización. De manera más general, la SQNR de cualquier señal en la cuantización lineal se da por la fórmula:

SQNR (dB) = 6N + S

en donde N es el número de bits por muestra, y S el nivel de la señal con referencia a una escala cuya amplitud máxima equivale a 0 dB, la mitad a -6 dB, etc. Los sonidos suaves son más severamente degradados, pero, a diferencia de la señal analógica, el ruido y la distorsión son más fácilmente controlables y sólo están presentes cuando existe señal (¡A diferencia del "soplido de cinta", el silencio digital es "perfecto"...!)

Otro método de cuantización es usar regiones de dimensiones no-uniformes (las regiones son más pequeñas en la medida en que el voltaje disminuye). A este método se lo denomina cuantización no-lineal.

Aunque los métodos de cuantización no-lineal no serán tratados en detalle, puede decirse que tienen la ventaja de disminuir el error de cuantización en los niveles bajos de amplitud a costa de un pequeño aumento en los niveles altos. Esto es a menudo aceptable en la práctica a causa de la tendencia de la señal fuerte a enmascarar el ruido de cuantización.

Es habitual usar una resolución lineal de 8 a 16 bits. Algunos programas usan estos valores de forma "cruda" (raw) y otros de manera "normalizada", representando números de punto flotante que están en el rango de +1 a -1. De esta última manera se simplifican muchas operaciones matemáticas a realizar en el procesamiento de señales.

ALMACENAMIENTO DE LA SEÑAL DIGITAL

Las señales digitales se almacenan en archivos con un formato característico. Esto permite realizar numerosos procesamientos que van desde la edición y mezcla al agregado de reverberación, filtrado, modulaciones, etc. En adición a esto también pueden generarse señales digitales por medio de programas realizados a tal efecto, usando cualquier tipo de síntesis.

En el caso de las computadoras compatibles IBM el formato más típicamente usado es el Riff Wave pcm (con la extensión .wav), que tiene un header ("encabezamiento") en el que se indican características generales de la señal y del archivo, luego del cual aparecen, simplemente, los valores de amplitud de la señal digital. Todo el software para procesamiento digital en PC compatibles acepta ese formato. El header típico de un archivo RIFF WAVE se detalla a continuación:

4 caracteres ("RIFF")

4 bytes (largo del archivo)

4 caracteres ("WAVE")

4 caracteres ("fmt ")

4 bytes (largo del bloque de data (habitual=16))

2 bytes (etiqueta de formato (01)=pcm)

2 bytes (canales 1=mono, 2=stereo)

4 bytes (frecuencia de muestreo)

4 bytes (bytes promedio por segundo)

2 bytes (alineacion de bloque)

2 bytes (resolucion en bits)

4 caracteres ("data")

4 bytes (cantidad de bytes de audio)

.............. (aquí siguen las muestras de audio)

En el caso de una señal stéreo las muestras de cada canal van intercaladas, esto es: c1,c2,c1,c2,c1,c2,.....etc.

También existen otros formatos, típicos de otro hardware y sistemas operativos, como los archivos *.snd nativos del sistema UNIX; los archivos AIFF, nativos del sistema operativo de las computadoras Macintosh, etc.

Finalmente, es posible usar archivos "crudos" (Raw files), lo que significa que no tienen encabezamiento, y la señal puede estar codificada en números de punto flotante, enteros con signo, etc. con una resolución más alta que la standard (32 bits, por ejemplo). En este caso el usuario debe recordar las características de codificación de la señal y disponer, eventualmente, de programas y hardware que soporten su procesamiento.

Como hemos visto, una mayor frecuencia de muestreo y resolución en bits aumentan la (posible) calidad sonora de una señal digitalizada. Este aumento, sin embargo, produce las siguientes consecuencias:

1)Aumento del tiempo de procesamiento

2)Aumento de la cantidad de memoria de masa requerida para almacenamiento.

El primer caso es fácilmente comprensible si se piensa que el aumento de la frecuencia de muestreo produce una cantidad mayor de muestras por unidad de tiempo. Simplemente para leer una señal muestreada a 44.100 Hz, se requeriran otras tantas acciones por segundo, si consideramos que algunos procesos implican la realización de 10 o más operaciones matemáticas por cada muestra es fácil comprender que determinados procesos de audio digital, o deben ser realizados por Hardware específico (que por su circuitería y diseño puede procesar en tiempo real, a costa también de reducir las posibilidades) o bien por computadoras multi-propósito, cuyas posibilidades de procesamiento por software son casi ilimitadas a costa de no operar en tiempo real.

Para el segundo caso, la cantidad de memoria de masa (en Mb) que se requiere para almacenar un minuto de sonido en stéreo, 16 bits y 44.100 Hz de frecuencia de muestreo:

16 bits= 2 bytes

multiplicamos por 2, porque hay 2 canales= 4 bytes

multiplicamos por 44.100= 176.400 bytes/seg.

multiplicamos por 60= 10.584.000 bytes/min

dividimos por 10242(reducción a Mb)= 10, 093688...Mb/min

FORMAS DE ONDA DIGITALES

Si analizamos la secuencia numérica 0,1,0,-1,0,1,0,-1..., como una señal digital suponemos, a causa de su naturaleza periódica, que corresponde a algún diseño de movimiento periódico. Ya que los movimientos periódicos producen la sensación de altura en el sonido, trataremos de determinar su frecuencia.

La frecuencia de un sonido digitalizado se determina en base a:

f = R / MP

en donde: f= frecuencia ; R=frecuencia de muestreo y MP= cantidad de muestras por período.

Para saber la frecuencia de este sonido, necesitamos saber la frecuencia de muestreo pero, ya que tiene 4 muestras por período, sabemos que esta es igual a R/4 Hz.

Su forma de onda, sin embargo, es un poco menos obvia. Una simple observación de la secuencia podría llevarnos a la observación errónea de que se trata de una onda cuadrada a R/4Hz. Sin embargo, una onda cuadrada "perfecta" es una suma "balanceada" de armónicos impares: sus componentes estarán entonces a R/4Hz; 3R/4Hz; 5R/4Hz; etc. A causa de que un DAC posee un filtro que remueve todos los componentes arriba de R/2 todos los armónicos de nuestra aparente onda cuadrada serán eliminados y quedará, entonces, una sinusoide a R/4Hz. Si suponemos ahora que R=1760Hz, entonces nuestra secuencia numérica representa una sinusoide a 440Hz.

 

Figura 3:

La finalidad de un filtro pasa-bajos (con frecuencia de corte de R/2) en el DAC es interpolar las bruscas transiciones de voltaje que se producirían por la discontinuidad característica de la señal digital.

Raramente se examinan uno por uno los valores de una señal digital, pero es común producirlos y/o analizarlos bajo la forma de gráficos o describirlos matemáticamente.

Una onda sinusoidal de amplitud A, frecuencia f y fase q se describe como función del tiempo contínuo así:

f(t) = A seno(2pi*f*t + q)

La descripción de una señal digital igual es:

f(n) = A seno(2pi*f*n/SR + q) (n es entero)

la única diferencia entre una y otra es que se han reemplazado los valores de tiempo contínuo (t) por valores enteros discretos (n/SR) que corresponden a cada muestra.

Esto posibilita, como ya mencionamos, la realización de un sinnúmero de operaciones, entre las que se cuentan la síntesis de sonido. Una onda cuadrada, por ejemplo, puede generarse de acuerdo con la siguiente fórmula:

                 k=infinito

Sq(n)= S 1/k seno (k (2pi*f*n/SR)) k=impar

                 k=1

Sabemos que, de acuerdo con el teorema de Nyquist, no podemos construir una señal digital correspondiente a una "verdadera" onda cuadrada, ya que esta es un espectro de banda no-limitada, así que debemos substituir la palabra o el símbolo "infinito" de la sumatoria por N, cuyo valor máximo (para evitar aliasing) dependerá de la frecuencia de la fundamental (f) y R, de acuerdo con la siguiente ecuación:

N £ R/2f