Síntesis aditiva

Anuncio
Síntesis aditiva
Emilia Gómez Gutiérrez
Síntesi i Processament del So I
Departament de Sonologia
Escola Superior de Musica de Catalunya
Curso 2009-2010
[email protected]
30 de septiembre de 2009
Índice
1. Introducción
2
2. Síntesis directa o table-lookup synthesis
2.1. Algoritmos de lectura de tablas . . . . . . . . . . . . . . . . . . .
2.2. Problemática de la lectura sin interpolación . . . . . . . . . . . .
2
2
3
3. Síntesis aditiva
3.1. Síntesis aditiva de forma de onda fija . . . .
3.1.1. La fase . . . . . . . . . . . . . . . . .
3.1.2. Crítica . . . . . . . . . . . . . . . . .
3.2. Síntesis aditiva por forma de onda variable
3.2.1. Reducción de datos . . . . . . . . . .
3
4
5
5
5
6
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.
Introducción
En este tema explicaremos dos métodos de síntesis muy sencillos y relacionados entre sí. En primer lugar veremos la síntesis directa o table look-up synthesis,
que es una aplicación directa del teorema de muestreo que hemos visto en el tema anterior. En segundo lugar, estudiaremos el método aditivo de síntesis. La
síntesis aditiva se basa en la suma de formas de ondas elementales para crear
una forma de onda más compleja.
2.
Síntesis directa o table-lookup synthesis
La síntesis directa, que también se denomina “de lectura de tabla” (table
lookup) es una aplicación directa de la teoría de muestreo. Una forma de onda
se almacena en la memoria de un ordenador, y un incremento de la lectura
permite direccionar sucesivamente cada punto de la forma de onda y dirigirlo
hacia los conversores, como muestra la figura 1.
Figura 1: Síntesis por lectura de tabla, table lookup synthesis
2.1.
Algoritmos de lectura de tablas
Para cambiar la altura de la señal obtenida, debemos en principio variar la
velocidad de lectura de la tabla. Por ejemplo, si una tabla de 8192 posiciones
la leemos a una tasa de muestreo de 8192 Hz, obtendremos una frecuencia de 1
Hz. Si la leemos a 16384, la frecuencia será de 2 Hz.
Si la velocidad de muestreo es fija, tenemos que proceder mediante salto de
muestras o repetición de muestras para variar la frecuencia de la señal de salida.
A la base, el algoritmo más elemental de lectura de una tabla de longitud L es
un proceso en dos tiempos que se expresa como sigue:
indexf ase = modL(f aseprecedente + incremento)
salida = amplitud ∗ tabla[indexf ase ]
2
La primera etapa contiene una suma y una operación modulo. El módulo
recorta a la longitud L la suma, en el caso en que dicha suma sea mayor que L.
De esta manera, el índice de la fase es siempre inferior o igual a la longitud de la
tabla. La segunda etapa lee el valor de la tabla situado en la posición indexf ase
y multiplica el valor obtenido por un factor de amplitud. La frecuencia obtenida
depende entonces directamente del valor del incremento.
Sea fs la frecuencia de muestreo y fD la frecuencia deseada. Para obtener diferentes frecuencias, será necesario variar el incremento según la relación
siguiente:
incremento =
fd · L
fs
es decir,
incremento · fs
L
Por ejemplo, si deseamos una frecuencia de 20 Hz y disponemos de una tabla
de 2048 valores con una frecuencia de muestreo de 8192 Hz, el incremento valdrá
20 · 2048/8192 = 5. Por lo tanto, leeremos de la tabla una muestra de cada 5
(posición 0,5,10,15,...). Después de la muestra a la posición 2045, comenzamos
por el principio de la tabla por la posición 2. De hecho, [(2045+5)modulo2048] =
2050 − 2048 = 2.
fd =
2.2.
Problemática de la lectura sin interpolación
Si la frecuencia que se desea corresponde a un incremento no entero, aparecerá un ruido en la lectura. Este sería un caso corriente, y significaría que
la posición real de lectura en la tabla estaría entre dos posiciones. Cuando las
tablas son muy grandes, esta situación no es catastrófica. Pero si el redondeo es
muy pronunciado, obtendremos diversos artefactos en la señal resultante.
La solución a este problema es utilizar un método de lectura con interpolación. Este método es más costoso en tiempo de cálculo, pero da resultados muy
satisfactorios para casi todas las longitudes de tabla. La interpolación implica
utilizar la parte fraccional del incremento para calular el valor preciso de la
muestra misma si es que ésta no está presente en la tabla. Este proceso se lleva
a cabo leyendo dos muestras de la tabla (el correspondiente al valor entero del
incremento y el siguiente) e interpolando entre estos dos valores (ver ejemplo en
la figura 2).
3.
Síntesis aditiva
La síntesis aditiva es uno de los primeros métodos utilizados para la obtención de espectros sonoros ricos que se aproximaran al comportamiento natural
de los sonidos. El análisis acústico de las señales de audio nos enseña que los
sonidos naturales están, de hecho, compuestos de una multitud de componentes
simples, las cuales, en el caso de los sonidos periódicos con una altura determinada, tienen una frecuencia múltiplo de la frecuencia fundamental.
El concepto de síntesis aditiva apareció en la edad media, aplicado a los
órganos que podían comprender un conjunto de tubos para cada altura (acompañamiento por varias quintas y octavas). Más tarde, se empezó a utilizar en
3
Figura 2: table lookup synthesis interpolada
los inicios de la música eléctrica y electrónica (por ejemplo el Telharmonium en
1906 y los órganos Hammond).
3.1.
Síntesis aditiva de forma de onda fija
Según el Teorema de Fourier, cualquier forma de onda puede expresarse
como una suma de señales sinusoidales a diferentes frecuencias. Si dicha forma
de onda es periódica, entonces las frecuencias de las sinusoides son múltiplos
de la frecuencia fundamental. Estas dos afirmaciones son la base de la síntesis
aditiva. Cada muestra de la señal resultante (out[n]) se calcula como una suma
ponderada de las muestras generadas por las diferentes ondas simples (xi [n]),
de la forma siguiente:
out[n] =
N
X
xi [n] =
i=1
N
X
ai · sin(2 · π · fi ·
i=1
n
+ φi )
fs
donde cada función xi [n] es una sinusoide de amplitud ai , frecuencia fi y fase
inicial φi , y fs es la frecuencia de muestreo. Si la señal resultante es periódica,
fi = i · f0 , donde f0 es la frecuencia fundamental.
La figura 3 muestra el resultado de la suma de las componentes de una onda
cuadrada. Esta forma de onda presenta dos características: (1) la amplitud relativa de cada una de los armónicos adicionales decrece con el orden del armónico;
(2) sólo están presentes los armónicos de orden impar.
La figura ilustra las etapas de la suma de armónicos en una serie de formas
de onda en el dominio temporal:
(a) Fundamental sola
(b) Primer y tercer armónico
(c) Suma de los armónicos impares hasta el quinto
(d) Suma de los armónicos impares hasta el noveno
(e) Forma de onda aproximada a la cuatrada obtenida sumando los armónicos impares hasta el 101.
4
3.1.1.
La fase
Aunque la fase (el ángulo de desviación en el instante 0) de cada uno de
los armónicos no es importante para la percepción del timbre del sonido si se
mantiene fija (!), puede tener una gran importancia en cuanto al aspecto visual
de la forma de onda.
La figura 4 ilustra el resultado de la suma de ondas sinusoidales cuya amplitud ha generado la onda cuadrada de la figura 3 (e), excepto que la fase de
partida del quinto armónico es de 90 grados en lugar de 0 grados. La forma de
onda es visualmente muy diferente, aunque el contenido espectral sea el mismo.
3.1.2.
Crítica
La síntesis aditiva a forma de onda fija no es siempre satisfactoria al oido. La
síntesis por adición de parciales fijos es muy limitada, porque no puede darnos
un espectro dinámico, es decir, que varie en el tiempo. La forma de onda, aunque
contenga diferentes armónicos, no se comporta como en los sonidos naturales
donde la forma de onda cambia con el tiempo. Además, las investigaciones sobre
las señales acústicas nos ha enseñado que los sonidos obtienen sus características
distintivas gracias a los períodos de ataque y subida, períodos durante los cuales
el espectro del sonido es muy diferente y varia rápidamente. El problema que se
presenta en la síntesis por forma de onda fija es que las características esenciales
son incontrolables.
3.2.
Síntesis aditiva por forma de onda variable
Para obtener timbres de síntesis más convincentes y ricos, querremos cambiar
al curso del tiempo las características y el número de armónicos presentes en la
señal.
De hecho, hemos podido ver que los sonidos instrumentales presentan esta
propiedad (figura 5 Podemos observar que la fundamental no es el parcial con
mayor amplitud, sino la componente que dura más tiempo).
Estas evoluciones de amplitud y de frecuencia en el tiempo son determinadas
por la física del instrumento. Aunque no intentemos reproducir sonidos instrumentales por síntesis aditiva, querremos probablemente sintetizar sonidos con
sonoridad natural. Entonces tendremos que recrear este tipo de comportamiento.
La envolvente temporal de un sonido es un elemento importante en la definición de un timbre. La figura 6 ilustra la aplicación de una envolvente de
tipo ADSR (Attack-Decay-Sustain-Release) a una señal cuya forma de onda es un diente de sierra. La aplicación de una envolvente es en realidad una
modulación de amplitud (que veremos en temas futuros).
Aunque costosa en tiempo de cálculo, la síntesis aditiva a forma de onda
variable es, en principio, muy general, y nos permite crear familias enteras de
sonidos. Para cada parcial deseado del espectro utilizaremos un generador de
onda sinusoidal en el que podremos controlar de forma independiente la frecuencia y la amplitud. Las salidas de los osciladdores se suman en una sola señal.
La figura 7 ilustra la síntesis aditiva variable con diferentes envolventes para la
frecuencia (F) y la amplitud (A).
Para sintetizar con una fidelidad de las sonoridades naturales, nos hará falta
utilizar un gran número de osciladores. Para una síntesis realista, podremos
5
necesitar más de una treintena de ellos. Este método es, por tanto, muy costoso,
tanto por el tiempo de cálculo como por el número de datos a especificar y el
control de este banco de osciladores.
3.2.1.
Reducción de datos
Para que este método sea práctico, hay que encontrar formas rápidas de
generar o de adquirir los datos necesarios para controlar todos los osciladores.
Para una treintena de osciladores, por ejemplo, tendremos que obtener:
30 envolventes de amplitud
30 envolventes de altura (frecuencia)
30 frecuencias nominales de osciladores
30 amplitudes nominales
30 duraciones
30 tiempos de inicio de envolventes
...
Considerando que cada envolvente puede tener al menos media docena de
puntos, tendremos que especificar para cada evento unos 500 datos. Por lo tanto
es obligado encontrar soluciones de recambio para facilitar esta especificación.
Podremos, por ejemplo, recurrir a procesos matemáticos, a generadores de onda
aleatorios, a análisis espectrales de señales externas, etc.
6
Figura 3: Suma de las componentes de una onda cuadrada
Figura 4: Fase
7
Figura 5: Evolución del espectro de una trompeta, 12 primeros parciales
8
Figura 6: Envolventes
9
Figura 7: Síntesis aditiva
Figura 8: Síntesis aditiva
10
Descargar