Efectos de sonido

Filtrado y ecualización

Filtros

Generalidades

El filtrado de señales es un proceso tan antiguo como las telecomunicaciones eléctricas. A menudo es necesario tratar una señal como muestra la figura: la señal disponible (rojo) contiene dos ondas (naranja y azul) que hay que separar. La razón concreta puede ser que la onda naranja es un ruido de alta frecuencia que se ha sumado a la señal azul (útil) de baja frecuencia; o que la onda azul es un ruido de baja frecuencia que se ha sumado a la señal naranja; o que la onda naranja es una portadora y la onda azul la señal moduladora... En cualquier caso, la separación de señales se basa en que tienen frecuencias distintas. Para pasar de la onda roja a la naranja habrá que eliminar las componentes de baja frecuencia y para obtener la onda azul habrá que eliminar las altas frecuencias.

filtrat

El filtrado, en general, es un tratamiento de la señal que afecta a su espectro de frecuencias amplificando algunas y atenuando otras. No sólo se ocupa de la separación de señales; en campos concretos de la multimedia los filtros tienen funciones de carácter más creativo: muchos efectos de sonido, de imagen o de vídeo son también filtros.

Curvas de respuesta de un filtro

Aplicado a una onda senoidal, la salida de un filtro es también una onda senoidal de la misma frecuencia. La comparación entre la entrada y la salida muestra dos diferencias: la ganancia G y el desfase Φ.

Entrada = A·sin(2·π·f)

Salida = A·G·sin(2·π·f + Φ)

La utilidad de un filtro está en que ambas diferencias son función de la frecuencia f. La figura siguiente muestra un ejemplo de comportamiento de un filtro: para una frecuencia dada (onda roja superior) la salida (onda azul) tiene una ganancia G1<1 y un desfase Φ1>0, para otra frecuencia mayor (onda roja inferior) la ganancia en la salida es G2>1 y el desfase Φ2>0.

guany i fase

El efecto de un filtro se describe mediante dos curvas de respuesta: la de ganancia y la de fase. Muy a menudo (especialmente en audio) el eje de abcisas es logarítmico. La curva de ganancia es la más utilizada. En ella, el eje de ordenadas suele estar graduado en dB.

corba guany

Cuando hay que expresar intervalos de frecuencia en una escala logarítmica, se llama década a la distancia entre las frecuencias f y 10·f y octava la distancia entre f y 2·f. El espectro usual de audio (de 20 a 20000 Hz) cubre tres décadas y aproximadamente diez octavas. La curva de ganancia del ejemplo indica que el filtro amplifica en 6 dB las frecuencias comprendidas entre 20 y 200 Hz (una década), que amplifica en 12 dB las frecuencias próximas a 1000 Hz en 12 dB. A partir de 1 kHz, conforme aumenta la frecuencia, el filtro amplifica menos. Para frecuencias mayores de unos 2 kHz, el filtro atenúa.

El desfase suele expresarse en unidades π en el intervalo [–π,π]. La figura siguiente expresa una curva de desfase ejemplo.

corba fase

Filtros de audio

En el contexto del procesamiento del sonido, un filtro es un dispositivo que, normalmente, trabaja sobre un canal de audio. Para trabajar con audio estereofónico o multicanal, el filtrado se replica para cada canal. Las aplicaciones son diversas:

Los filtros tienen dos efectos importantes sobre el sonido: modifican la distribución espectral de la potencia y alteran la fase de las componentes senoidales de las ondas. Si la ganancia y el desfase varía en el rango de las frecuencias audibles, el oído percibirá un cambio de tono y, en el caso de señales estereofónicas, un cambio en la localización espacial de las fuentes que componen el panorama.

Un filtro afecta a la forma de las ondas que procesa. La figura muestra una onda sintética (en rojo) cuyo espectro consta de cuatro componentes (en naranja). Un proceso de filtrado que altere la amplitud y fase de las componentes (azul claro) proporcionará una onda resultante (azul obscuro) muy distinta de la original, tanto a la vista como al oído.

filtrat

Combinación de filtros

Los filtros más comunes son lineales y, en consecuencia pueden combinarse aplicándolos en serie sin que importe el orden. La curva de respuesta de los filtros se suma.

Implementación de los filtros digitales

El diseño de los filtros (y el cálculo de los coeficientes) exige conocimientos profundos de matemáticas y constituyen un apartado importante de la teoría de la señal. Generalmente, el proceso de diseño concluye en una función de transferencia que se escribe como

FT en domini freqüències

En esta expresión,

La definición, propiedades y utilidad de la transformada Z son un capítulo importante en la teoría del procesamiento de señales digitales. De sus propiedades se deduce que las muestras s[i] de salida y las muestras e[i] de entrada cumplen que

FT en domini temporal

Esta ecuación proporciona un método de cálculo para obtener la muestra de salida s[i] tan pronto está disponible la muestra de entrada e[i]:

quoficients

Los filtros son muy fáciles de programar cuando conoces los coeficientes aiy bi. Los coeficientes dependen del método de diseño, de los parámetros que se definan para el filtro y de la frecuencia de muestreo. En C, un filtro con n = m = 2 se codifica así:

void filtro(float * VectorE, float * VectorS, // entrada y salida
            ...          // parámetros del filtro
             long NF)    // número de muestras
{
    // Define los coeficientes
    float b0 =  ...

    // Aplica los coeficientes
    VectorS[0] = (b0/a0)*VectorE[0];
    VectorS[1] = (b0/a0)*VectorE[1] + (b1/a0)*VectorE[0] - (b2/a0)*VectorS[0];
    for (long f = 2; f < NF; f++){
        VectorS[f] = (b0/a0)*VectorE[f] + (b1/a0)*VectorE[f-1] + (b2/a0)*VectorE[f-2] 
                   - (a1/a0)*VectorS[f-1] - (a2/a0)*VectorS[f-2];
    }
}

Filtros analógicos y digitales

Una técnica muy utilizada para obtener la función de transferencia H(z) de un filtro digital consiste en partir de un diseño analógico, sintetizable mediante resistencias, capacitancias e inductancias. Hay, por lo menos, dos ventajas:

Ecualización

En las DAW, la ecualización, o control de las características tímbricas del sonido, se lleva a cabo mediante un conjunto de filtros clásicos conocidos por los técnicos de sonido. En las DAW se encuentran diversos tipos clásicos de filtro analógico llevados al cálculo digital.

Filtros pasa-bajos y pasa-altos

Los filtros pasa-bajos se diseñan para atenuar las frecuencias superiores a f0, llamada frecuencia de corte, sin afectar al resto. Por ejemplo, la curva de respuesta en frecuencia de un filtro puede tener el aspecto siguiente:

passabaixos

    

Para frecuencias inferiores a la de corte, la curva se mantiene en el valor de 0 dB. Alrededor de la frecuencia de corte está la zona de transición (sombreada), en la que la curva inicia el descenso conforme sube la frecuencia. En la misma frecuencia de corte la atenuación es de 3 dB: la potencia en esa frecuencia se reduce a la mitad. A partir de la zona de transición, la curva se aproxima a una asíntota cuya pendiente (o slope) se mide en dB/octava.

En general, un filtro pasabanda tiene dos parámetros fundamentales: la frecuencia de corte y la pendiente asintótica. Variando la frecuencia, las curvas obtenidas son estas:

LP(f)

La pendiente asintótica está relacionada con una propiedad matemática del filtro llamada orden. Para un orden n dado, la pendiente será de 6·n dB/octava. La figura siguiente muestra las respuestas para filtros pasabajos de 6, 12, 18 y 24 dB/octava para una frecuencia dada

LP(grade)

Hay un tercer parámetro de diseño, poco utilizado en audio, llamado Q, que determina la forma de la zona de transición alrededor de la frecuencia de corte, entre el intervalo de ganancia 0 dB y el intervalo cuya pendiente se aproxima mucho a la asíntota. Las curvas anteriores se obtienen con el valor habitual Q = 1/√2≈0.7; los valores superiores de Q dan una ganancia mayor que 0 dB para algunas frecuencias de la zona de transición y los valores menores ensanchan la zona de transición, como muestra la figura

LP(Q)

Los filtros pasa-altos son simétricos de los anteriores y atenúan las frecuencias inferiores a la de corte sin afectar a las demás. La respuesta de un filtro pasa-altos de segundo orden es esta:

passa altos

Utilidad

El filtro pasabajos de segundo orden con sus tres parámetros puede codificarse así:.

void lowpass(float * VectorE, float * VectorS, 
             float f0, // frecuencia de corte
             float Q,  // factor Q
             float SR, // frecuencia de muestreo
             long NF)
{
   // Parámetros intermedios
    float w0 = 2.0 * pi * f0 / SR;
    float alpha = sin(w0)/(2*Q);

    // Calcula coeficientes
    float b0 =  (1 - cos(w0))/2;
    float b1 =   1 - cos(w0);
    float b2 =  (1 - cos(w0))/2;
    float a0 =   1 + alpha;
    float a1 =  -2 * cos(w0);
    float a2 =   1 - alpha;

    // Aplica los coeficientes
    VectorS[0] = (b0/a0)*VectorE[0];
    VectorS[1] = (b0/a0)*VectorE[1] + (b1/a0)*VectorE[0] - (b2/a0)*VectorS[0];
    for (long f = 2; f < NF; f++){
        VectorS[f] = (b0/a0)*VectorE[f] + (b1/a0)*VectorE[f-1] + (b2/a0)*VectorE[f-2] 
                   - (a1/a0)*VectorS[f-1] - (a2/a0)*VectorS[f-2];
    }
}

Para el filtro pasaaltos, sólo cambia el cálculo de los coeficientes

    float b0 =  (1 + cos(w0))/2;
    float b1 = -(1 + cos(w0));
    float b2 =  (1 + cos(w0))/2;
    float a0 =   1 + alpha;
    float a1 =  -2 * cos(w0);
    float a2 =   1 - alpha;

Filtros shelving

Un filtro low-shelving o low-shelf permite aplicar a una ganancia G a frecuencias menores que una f0 dada. La figura siguiente muestra una curva de respuesta típica:

corba

En la zona de transición (sombreada) alrededor de f0, la curva alcanza una pen

diente característica. Los parámetros del filtro son la frecuencia f0 , la ganancia G aplicada y la pendiente slope. Variando la ganancia (que puede ser negativa) se obtienen las curvas siguientes:

corba

y variando la frecuencia se obtienen estas curvas (para +18 y –18 dB de ganancia):

corba

Hay un tercer parámetro, generalmente denominado Q, relacionado con la pendiende de la curva en la frecuencia de referencia (la línea slope). Variando este parámetro, se obtienen las curvas de la figura:

corba

Una posible implementación del filtro es esta:

void lowshelving(float * VectorE, float * VectorS,
                 float G,  // Ganancia (en dB) 
                 float f0, // frecuencia de corte
                 float S,  // pendiente (slope)
                 float SR, // frecuencia de muestreo
                 long NF)
{
   // Parámetros intermedios
    A = pow (10, G/40);
    w0 = 2.0 * PI * f0 / SR;
    alpha = sin(w0)/(2 * sqrt( (A + 1/A)*(1/S - 1) + 2 )) ;

   // Calcula coeficientes
    b0 =    A*( (A+1) - (A-1)*cos(w0) + 2*sqrt(A)*alpha ) ;
    b1 =  2*A*( (A-1) - (A+1)*cos(w0)                   ) ;
    b2 =    A*( (A+1) - (A-1)*cos(w0) - 2*sqrt(A)*alpha ) ;
    a0 =        (A+1) + (A-1)*cos(w0) + 2*sqrt(A)*alpha   ;
    a1 =   -2*( (A-1) + (A+1)*cos(w0)                   ) ;
    a2 =        (A+1) + (A-1)*cos(w0) - 2*sqrt(A)*alpha   ;

    // Aplica a las entradas

    VectorS[0] = (b0/a0)*VectorE[0];
    VectorS[1] = (b0/a0)*VectorE[1] + (b1/a0)*VectorE[0] + (b2/a0)*VectorS[0];

    for (long f = 2; f < NombreDeFrames; f++){
        VectorS[f] = (b0/a0)*VectorE[f] + (b1/a0)*VectorE[f-1] + (b2/a0)*VectorE[f-2]
                                        - (a1/a0)*VectorS[f-1] - (a2/a0)*VectorS[f-2];
}

Relación entre factor Q y Slope

Utilidad

Filtros de banda

Un filtro de banda (o peak filter, filtro de pico), actúa amplificando o atenuando las frecuencias próximas a la frecuencia de resonancia f0. Tienen una curva de respuesta en forma de campana, como muestra la figura siguiente. Un filtro de banda tiene tres parámetros: la frecuencia f0, la ganancia G y el factor Q relacionado con la anchura W de la campana, como muestra la figura:

corba peak

La ganancia G determina la altura de la campana. G puede ser negativa. Variando la ganancia y manteniendo los otros dos parámetros constantes, se obtiene la familia de curvas de la figura:

peak ganancia

Modificando la frecuencia f0 cambia el centro de la campana:

peak frecuencia

La anchura W de la campana se puede expresar (en octavas) como banda pasante (si G>1) o banda de rechazo (si G<1) como la distancia f2–f1 entre las frecuencias en las que la amplificación o atenuación es G/2 dB. Sin embargo, es más frecuente hablar del factor Q, que se define como Q =f0/B. Cuando mayor es el factor Q, más estrecha es la campana.

factor Q

Los valores comunes de Q varían entre 0.2 y 10. 

El filtro de banda con los tres parámetros ajustables puede codificarse así:

void filtrobanda(float * VectorE, float * VectorS,
                 float f0, // frecuencia de resonancia
                 float G,  // ganancia (en dB)
                 float Q,  // factor Q
                 long SR,  // frecuencia de muestreo
                 long NF)
{

// Calcula parámetros intermedios
 
    float A = pow (10, G/40);
    float w0 = 2.0 * Pi * f0 / SR;
    float alpha = sin(w0)/(2*Q) ; 

// Calcula coeficientes

    float b0 =  1 + alpha * A;
    float b1 = -2 * cos(w0);
    float b2 =  1 - alpha * A;
    float a0 =  1 + alpha / A;
    float a1 = -2 * cos(w0);
    float a2 =  1 - alpha / A;

// Aplica a las entradas

    VectorS[0] = (b0/a0)*VectorE[0];
    VectorS[1] = (b0/a0)*VectorE[1] + (b1/a0)*VectorE[0] - (b2/a0)*VectorS[0];

    for (long f = 2; f < NF; f++){
        VectorS[f] = (b0/a0)*VectorE[f] + (b1/a0)*VectorE[f-1] + (b2/a0)*VectorE[f-2] 
                                        - (a1/a0)*VectorS[f-1] - (a2/a0)*VectorS[f-2];
    }
}

Utilidad

Ecualización en una DAW

Referentes analógicos

En la práctica, la ecualización es un proceso de cambio del espectro de la señal de audio con un propósito dado. El ingeniero de sonido, mientras escucha la señal, piensa en cómo desearía que sonara y aplica filtros de tipo y parámetros apropiados para conseguirlo. Para eso, (1) descompone mentalmente el espectro de audio en bandas, y (2) a cada banda le aplica un tratamiento. El diseño del ecualizador se hace, pues, a dos niveles: (1) cuántas bandas se pueden definir y (2) con qué filtros se puede tratar el espectro en cada banda.

Una solución clásica es el filtro paramétrico: en cada banda dispone de un filtro de pico con los tres parámetros ajustables: la frecuencia f0, la ganancia G y el factor Q. En la figura siguiente se muestra un ecualizador analógico de cuatro bandas. Cada banda se controla mediante un filtro de pico dispone de tres mandos dispuestos en una pareja de botones del mismo color frontal: en cada pareja el mando de ganancia de la izquierda recorre desde –15 a +15 dB, y a la derecha los dos los mandos concéntricos permiten ajustar la frecuencia (anillo exterior) y el factor Q (anillo interior).


También es corriente disponer de un filtro pasaaltos para la zona de graves y un filtro pasabajos para la zona de agudos específicas.

Otras ilustraciones: Ecualizadores paramétricos y semiparamétricos en la Wikipedia. Ejemplos de ecualizadores paramétricos y ecualizadores semiparamétricos.

Ejemplos digitales

El módulo de ecualización de pista de Cubase Essential 4 combina cuatro secciones de filtrado, denominadas eq 1 a eq 4, y sus mandos aparecen en la interfaz gráfica organizadas de izquierda a derecha junto con una representación gráfica de la curva de respuesta total. En cada sección se pueden instanciar un filtro de banda paramétrico con mandos de ganancia, frecuencia y factor Q; además, las secciones eq 1 y eq 4 situadas en los extremos ofrecen dos opciones adicionales. La sección eq 1, ubicada a la izquierda en la interfaz, está claramente orientada al control de la zona grave del espectro y, además del filtro paramétrico, permite instanciar un filtro Low Shelf o un pasaaltos. La sección eq 4, a la derecha, es simétrica de eq 1 y permite instanciar un filtro High Shelf o un pasabajos. En cada caso, la interfaz muestra los mandos apropiados.

Equ Cubase

Un módulo de ecualización parecido está presente en los sistemas Pro Tools LE. La interfaz muestra las siete secciones de la herramienta:

Equ III Pro Tools

Filtros especiales

Filtros notch

Curva, implementación y utilidad

Filtros pasabanda

Curva, implementación y utilidad

Filtros all-pass

Detección de envolvente