Introducción al filtrado digital Emilia Gómez Gutiérrez Síntesi i Processament del So I Departament de Sonologia Escola Superior de Musica de Catalunya Curso 2009-2010 emilia.gomez@esmuc.cat 2 de noviembre de 2009 Índice 1. Introducción 2. Los 2.1. 2.2. 2.3. 2.4. 2.5. 2 filtros Generalidades . . . . . . . . . . . . . . . . . . . . . . . . Respuesta impulsional, frecuencial y de fase de un filtro Teoría de filtros . . . . . . . . . . . . . . . . . . . . . . . Tipos de filtros . . . . . . . . . . . . . . . . . . . . . . . Ancho de banda y factor de calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 3 3 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 6 7 7 7 4. Ejemplos de filtros FIR 4.1. Filtro paso bajo de primer orden . . . . . . . . . . . . . . . . . . 4.2. Filtro paso alto FIR de primer orden . . . . . . . . . . . . . . . . 4.3. Filtro paso de banda FIR de segundo orden . . . . . . . . . . . . 7 7 9 9 3. Introducción a los filtros digitales 3.1. Funcionamiento de base . . . . . 3.2. Los filtros en ecuaciones . . . . . 3.2.1. Filtros FIR . . . . . . . . 3.2.2. Filtros IIR . . . . . . . . 3.2.3. FIR vs IIR . . . . . . . . 3.2.4. El orden de un filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Ejemplos de filtros IIR 10 5.1. Filtro paso bajo IIR de primer orden . . . . . . . . . . . . . . . . 10 5.2. Filtro paso alto IIR de primer orden . . . . . . . . . . . . . . . . 12 6. Los comb filters o filtros en peine 12 7. Filtros pasa-todo (allpass filters) 13 8. Bibliografía 14 1 1. Introducción Veremos una breve introducción al filtrado y a los filtros digitales, que serán esenciales para la síntesis substractiva y para muchos efectos y transformaciones sonoras. 2. 2.1. Los filtros Generalidades En su definición más general, un filtro se puede definir como todo procesado que altera la naturaleza de una señal sonora de una forma o de otra. Un filtro es un proceso computacional o algoritmo mediante el cual una señal digital (secuencia de muestras) es transformada en una segunda secuencia de muestras o señal digital de salida. Los filtros se utilizan mucho en todos los ámbitos del procesado de señal, más o menos musicales, y son una componente esencial en toda cadena de comunicación. Constituyen la base del procesado de señal, que puede aplicarse a señales de todo tipo (sonidos, imágenes, vídeo, vibraciones sísmicas, etc). En el dominio de las señales de audio, definiremos un filtro específicamente como un objeto que altera el espectro o el contenido frecuencial de una señal. De ahí su importancia fundamental en la música electroacústica. Los filtros se utilizan de forma práctica en todo tipo de situaciones musicales, ya sea para la modificación radical de una señal sintética o para situar espectralmente una grabación de música instrumental. 2.2. Respuesta impulsional, frecuencial y de fase de un filtro La respuesta impulsional es la reacción de un filtro a un impulso que se envía a su entrada. La respuesta impulsional caracteriza a un filtro en el dominio temporal. Podemos pensar, por ejemplo, en la respuesta impulsional de una sala de conciertos que podemos generar si damos un golpe seco en la sala. Al trabajar en el dominio digital, dicha respuesta impulsional estará discretizada en el tiempo y por tanto definida por una serie de muestras: h[n] La transformada de Fourier de una respuesta impulsional de un filtro corresponde a su función de transferencia o representación frecuencial, que caracteriza al filtro en el dominio frecuencial. Dicha caracterización se realiza a través de su espectro de amplitud y de su espectro de fase. H(f ) Amplitud : |H(f )| F ase :< H(f ) Por naturaleza, un filtro no puede ser a la vez preciso en el dominio temporal y frecuencial. De hecho, un filtro con una transición rápida (por ejemplo, con una banda pasante estrecha) presenta una respuesta impulsional larga (el impulso 2 resona mucho tiempo). Por el contrario, una banda pasante ancha corresponde a una respuesta impulsional corta. Sea una señal digital de entrada x[n] que procesamos con un filtro para generar una señal de salida y[n]. El espectro de la señal de salida Y (f ) se obtiene multiplicando el espectro de entrada X(f ) por la respuesta frecuencial del filtro H(f ), es decir: Y (f ) = X(f ) · H(f ) Ésto equivale a la operación de convolución (representada con un "*") entre las señales en el dominio temporal: y[n] = x[n] ∗ h[n] Los filtros tienen también un efecto importante en la fase de las señales. El filtrado en sí mismo es una aplicación de los retardos (modificando la fase de la señal), lo que explica su comportamiento en el dominio temporal y su implantación digital. 2.3. Teoría de filtros La teoría de filtros tiene una componente matemática compleja que hace que se aleje de la experiencia humana. La ecuación de un filtro, por ejemplo, no está relacionada necesariamente con sus cualidades sonoras. En los textos técnicos, los filtros se describen mediante una herramienta matemática denominada transformada z. La transformada z relaciona los efectos de retardos de muestras en una imagen de dos dimensiones de la representación frecuencial (H(f)) que se demonima el plano complejo z. Los polos en dicho plano representan los picos de resonancia o puntos que hacen que la respuesta frecuencial se haga infinita. Los ceros representan los puntos de amplitud nula de la respuesta frecuencial. Por ejemplo, un filtro de 2 polos tiene 2 picos de resonancia. La transformada z es un concepto esencial para el diseño de filtros, ya que proporciona una relación matemática entre las características del filtro que queremos diseñar y los parámetros de implementación del mismo. Sin embargo, la complejidad matemática de la transformada z sólo está indirectamente relacionada con los parámetros que tienen significación perceptual. Nosotros adoptaremos una forma más intuitiva de abordar el estudio de filtros digitales que presenta el libro (Roads 1996). En ella, partiremos de los diagramas de bloques de los filtros y estudiaremos casos sencillos analizando la salida de los filtros a una serie simple de entradas. 2.4. Tipos de filtros Los filtros más corrientes son los filtros paso bajo (Low Pass, LP), paso alto (High Pass, HP), paso de banda (Band Pass, BP) y los filtros rechazo de banda (o paso no banda) (Band Reject, Band stop o Notch). En la figura 1 se representan estos 4 tipos de filtros mediante su respuesta en frecuencia o espectro de amplitud. Cada punto de la respuesta en frecuencia nos indica la atenuación a la que se someterá una señal a una frecuencia determinada. 3 Figura 1: Tipos de filtros Los filtros paso bajo (LP) dejan pasar las frecuencias que están por debajo de una determinada frecuencia. Los filtros paso alto (HP) dejan pasar las frecuencias que están por encima de una determinada frecuencia. Estos dos tipos de filtros están definidos por su frecuencia de corte, que es la frecuencia a la cual la amplitud de la señal se reduce a 0.707 ( √12 ) de su valor máximo, es decir, sufre 3 dB de atenuación. Los filtros paso banda (BP) dejan pasar las frecuencias que están situadas en una determinada banda de frecuencia, es decir, entre dos determinadas frecuencias. Los filtros rechazo de banda (BR) dejan pasar todas las frecuencias excepto las que están situadas en una determinada banda de frecuencia, es decir, entre dos determinadas frecuencias f1 y f2 . Estas frecuencias son las frecuencias a las que la amplitud de la señal se reduce a 0.707 ( √12 ) de su valor máximo, es decir, sufre 3 dB de atenuación. Estos dos tipos de filtros están definidos por su frecuencia central y su ancho de banda, que sería la diferencia entre las frecuencias de corte inferior y superior. Como se ilustra en la figura 1, las transiciones entre la banda pasante y la banda de corte no son generalmente limpias en los filtros reales. Existe, por tanto, una banda de transición entre la zona donde teóricamente todo pasa y la zona donde teóricamente nada pasa. Los filtros pueden combinarse en serie o en paralelo para obtener respuestas frecuenciales más complejas. 4 2.5. Ancho de banda y factor de calidad En un filtro ideal, toda componente espectral que se sitúe más allá de la frecuencia de corte debería, en principio, ser eliminada completamente. En realidad, no podemos implementar este tipo de filtros con los métodos que veremos. Por lo tanto, tenemos que establecer la rigidez o rapidez del corte, expresado en dB por octava. El factor de calidad Q de un filtro BP o BR permite regular la rapidez o la pendiente de la campana que se representa en la figura 2. Figura 2: Factor de calidad Q El factor de calidad Q corresponde a un cociente entre la frecuencia central del filtro y el ancho de banda a los puntos con 3 dB de atenuación: Q= fcentral (fC2 − fC1 ) (1) La figura 2 representa un filtro BP en el que hacemos variar el factor de calidad manteniendo fija la frecuencia central. La amplitud máxima o ganancia de un filtro BP o BR también es importante. El control de bandas múltiples, por ejemplo, y la ganancia de cada una de ellas, permitirá fabricar módulos ecualizadores o filtros gráficos. 3. 3.1. Introducción a los filtros digitales Funcionamiento de base El funcionamiento de base de un filtro digital es relativamente simple. Distinguimos de hecho dos tipos de funcionamiento, que se ilustran en la figura 3. Figura 3: Diagrama de bloques de los dos tipos de filtros digitales: (a) FIR y (b) IIR (a) retardamos ligeramente una copia de la señal de entrada (de uno o varios períodos de muestreo) y combinamos la señal de entrada retrasada 5 con la nueva señal de entrada. Los filtros digitales basados en este funcionamiento se dice que son de respuesta impulsional finita o FIR (Finite Impulse Response). (b) retardamos una copia de la señal de salida, la cuál combinamos con la nueva señal de entrada. Los filtros digitales basados en este funcionamiento se dice que son de respuesta impulsional infinita o IIR (Infinite Impulse Response). También se les denomina filtros recursivos o con feedback. 3.2. Los filtros en ecuaciones Podemos describir los filtros mediante una ecuación que relaciona una señal de entrada con una señal de salida en el dominio digital. De ésta manera, la salida del filtro se especifica como una resultado de sumas, restas y multiplicaciones de muestras de entrada actuales y anteriores. Dichas ecuaciones se denominan técnicamente ecuaciones lineales en diferencias. Lineales significa que si la entrada de un filtro es la suma de dos funciones escaladas, la salida del filtro es igual a la suma escalada de las salidas del filtro para cada una de dichas funciones. 3.2.1. Filtros FIR En el caso de un filtro con respuesta impulsional finita (FIR), una muestra de la salida se puede definir como una combinación linear de muestras de la entrada presentes y pasadas. Podemos expresar esta relación con una ecuación del tipo: y[n] = a0 · x[n] + a1 · x[n − 1] + a2 · x[n − 2] + ... + aN · x[n − N ] (2) Esta ecuación expresa que la muestra actual de la salida y[n] es igual a la suma de las muestras de la entrada actual x[n] multiplicada por el factor a0 y de la muestra anterior x[n − 1] multiplicada por el factor a1 , y de todas las muestras anteriores hasta el instante [n − M ] multiplicadas por su respectivo factor. Los factores ai son los coeficientes del filtro. Modificando estos coeficientes podremos variar de forma drástica las características del filtro. La serie de coeficientes a0 , a1 , ... constituye la respuesta impulsional del filtro. De hecho, podemos verificar que la respuesta del filtro a la señal impulso (digital): x = {1, 0, 0, 0, 0, 0, 0, ...} (3) y = {a0 , a1 , a2 , a3 , ..., aN , 0, 0, 0, ...} (4) es la señal de salida: lo cual explica la denominación de filtro a respuesta impulsional finita. 6 3.2.2. Filtros IIR Los filtros con respuesta impulsional infinita (IIR) se distinguen de los filtros FIR por la presencia de una recursividad: la señal de salida del filtro se reinyecta a la entrada del mismo, constituyendo un circuito recursivo o con feedback. Este método permite implementar filtros con respuesta más compleja y con menos datos. Como inyectamos constantemente energía en el circuito, la respuesta impulsional tiene una duración potencial infinita, y de ahí le viene el nombre. La ecuación típica de un filtro IIR se expresa de la siguiente manera: y[n] = a0 · x[n] + a1 · x[n − 1] + a2 · x[n − 2] + ... + aN · x[n − N ]+ −b1 · y[n − 1] − b2 · y[n − 2] − b3 · y[n − 3] − ... − bM · y[n − M ] (5) Esta ecuación expresa que la salida es función de N+1 muestras de la entrada (actual y N anteriores), así como de M muestras anteriores de salida. 3.2.3. FIR vs IIR Los filtros FIR ofrecen en general una respuesta de fase más lineal y no entran jamás en oscilación (es decir, no se vuelven inestables), ya que no poseen realimentación. Por otro lado, requieren un gran número de términos en sus ecuaciones y eso les hace más costosos en cuanto a cálculo o carga computacional. Un filtro FIR con un corte muy abrupto (es decir, que tenga una banda de transición muy corta) puede requerir hasta centenas de retardos. En cuanto a los filtros IIR, son muy eficaces y pueden proporcionar pendientes de corte muy pronunciadas. Por otro lado, al poseer características de realimentación (o feedback), tienen tendencia a entrar en oscilación y en resonancia. 3.2.4. El orden de un filtro El número de muestras anteriores a la actual que se utilizan en un filtro para generar una muestra de salida corresponde al orden del filtro. Un filtro de primer orden utiliza una sola muestra precedente. De esta forma, un filtro recursivo de segundo orden se expresaría con la ecuación siguiente: y[n] = a0 · x[n] + a1 · x[n − 1] + a2 · x[n − 2] − b1 · y[n − 1] − b2 · y[n − 2] (6) Este filtro utiliza dos muestras anteriores de entrada y dos muestras anteriores de la salida. Es la forma que tendría un filtro paso de banda que se utiliza bastante, denominado biquad (de bicuadrático). Mientras mayor sea el orden de un filtro (cuantas más retardos se utilicen en el circuito), el corte del filtro será más abrupto. 4. 4.1. Ejemplos de filtros FIR Filtro paso bajo de primer orden Para construir un filtro paso bajo FIR simple (que atenuará las frecuencias altas de una señal de entrada), sólo hace falta efectuar la media de los valores de 7 la muestra actual y la muestra precedente, como ilustra el diagrama de bloques de la figura 4. Figura 4: Diagrama de bloques de un filtro LP FIR El funcionamiento de este filtro se puede expresar mediante la ecuación siguiente: y[n] = 0,5 · x[n] + 0,5 · x[n − 1] (7) Se puede entender intuitivamente el efecto paso bajo de esta operación, ya que al efectuar la media atenuamos las variaciones bruscas de la señal, lo que origina un suavizado de la señal de entrada. Este filtro es un ejemplo del filtro de tipo (moving average) (promedio móvil). Veamos cuál sería la respuesta de este filtro a diferentes señales de entrada. Consideremos primero una señal constante: x = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...} (8) De la ecuación, deducimos que la señal de salida sería: y = {0,5, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...} (9) Por lo tanto, después de un transitorio corto (la primera muestra que vale 0.5), la señal de salida es igual a la señal de entrada: una señal constante de amplitud 1. Para una señal constante, que tiene una frecuencia nula, verificamos que las bajas frecuencias no se atenúan en el filtrado. Consideremos ahora una señal que oscila entre −1 y +1 a la frecuencia de Nyquist (la frecuencia máxima): x = {+1, −1, +1, −1, +1, −1, +1, −1, +1, −1, ...} (10) En este caso, la señal de salida se atenúa muy rápidamente como podríamos preveer: y = {0,5, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...} (11) Podemos observar la respuesta en frecuencia del filtro en la figura 5. La ganancia, en función de la frecuencia, viene dada por: 8 A(f ) = cos( π·f ) fs (12) Figura 5: Respuesta en frecuencia de un filtro LP FIR La frecuencia de corte vale f4s (un cuarto de la frecuencia de muestreo). La simplicidad del filtro se paga con una banda de transición ancha. 4.2. Filtro paso alto FIR de primer orden La estructura de un filtro paso alto FIR elemental es muy similar a la del filtro paso bajo FIR que acabamos de ver, pero en vez de sumar dos muestras consecutivas, las restamos: y[n] = 0,5 · x[n] − 0,5 · x[n − 1] (13) El efecto paso alto se explica fácilmente: al restar dos muestras sucesivas atenuamos la señal en los puntos en los que varía lentamente (bajas frecuencias) y acentuamos allí donde la señal varía rápidamente (altas frecuencias). La ganancia en función de la frecuencia viene dada por: π·f ) (14) fs El diagrama de bloques de este filtro está representado en la figura 6, así como su función de transferencia en la figura 7. A(f ) = sin( 4.3. Filtro paso de banda FIR de segundo orden La ecuación de un de un filtro paso de banda (BP) simple no recursivo de segundo orden es la siguiente: y[n] = 0,5 · x[n] − 0,5 · x[n − 2] (15) Este filtro es de segundo orden, ya que utiliza un retardo de dos períodos de muestreo como máximo (para obtener x[n − 2]). La ganancia del filtro en función de la frecuencia viene dada por la siguiente ecuación: 9 Figura 6: Diagrama de bloques de un filtro simple HP FIR Figura 7: Respuesta en frecuencia de un filtro simple HP FIR A(f ) = sin( 2·π·f ) fs (16) lo cual corresponde a un filtro paso de banda de frecuencia central f4s Si en vez de restar sumáramos las muestras x[n] y x[n − 2], obtendríamos un filtro rechazo de banda de frecuencia central f4s . 5. 5.1. Ejemplos de filtros IIR Filtro paso bajo IIR de primer orden Un filtro LP recursivo de primer orden simple efectúa la media de la muestra actual de entrada y de la muestra de salida anterior, como ilustra el diagrama de la figura 8 y la fórmula siguiente: 10 y[n] = 0,5 · x[n] + 0,5 · y[n − 1] (17) La respuesta en frecuencia (sobre la figura 9) tiene una forma diferente a la del filtro LP no recursivo. Este filtro se denomina ETA (Exponential Time Average). Figura 8: Diagrama de bloques de un filtro simple LP IIR Figura 9: Respuesta en frecuencia de un filtro simple LP IIR Para verificar el concepto de respuesta impulsional infinita, reemplazemos y[n − 1] por su expresión deducida de la misma ecuación: y[n] = 0,5 · x[n] + 0,5 · (0,5 · x[n − 1] + 0,5 · y[n − 2]) y[n] = 0,5 · x[n] + 0,5 · (0,5 · x[n − 1] + 0,5 · (0,5 · x[n − 2] + 0,5 · y[n − 3])) y[n] = 0,5 · x[n] + 0,5 · (0,5 · x[n − 1] + 0,5 · (0,5 · x[n − 2] + 0,5 · (0,5 · x[n − 3] + 0,5 · y[n − 4]))) etc... (18) Finalmente podemos observar que este filtro es una versión del filtro FIR (no recursivo) siguiente: y[n] = 0,5 · x[n] + 0,25 · x[n − 1] + 0,125 · x[n − 2] + 0,0625 · x[n − 3] + ... (19) 11 La ecuación comprende teóricamente un número infinito de términos. La respuesta impulsional es, por tanto, teóricamente infinita, lo que explica el nombre que se le da a este tipo de filtros. La forma general de un filtro IIR de primer orden es: y[n] = a · x[n] + b · y[n − 1] (20) Una variación de los coeficientes de reinyección (coeficiente b en este ejemplo) permitirá controlar la frecuencia de corte del filtro. Cuando b crece, la frecuencia de corte baja. 5.2. Filtro paso alto IIR de primer orden Como para los filtros FIR, una resta en vez de una suma nos genera un filtro HP en vez de LP: y[n] = a · x[n] − b · y[n − 1] 6. (21) Los comb filters o filtros en peine Los filtros en peine (comb filters) son un tipo particular de filtros que crean una serie de picos y de valles en el espectro de la señal. Estos picos y valles se sitúan a una distancia frecuencial igual. Los filtros en peine pueden ser de tipo FIR o IIR. La estructura del filtro en peine FIR, que se representa en el esquema de bloques de la figura 10, es similar al filtro BP FIR. Su ecuación es: y[n] = x[n] + x[n − D] (22) Figura 10: Diagrama de bloques de un comb filter D indica un retardo medido en número de muestras. Para valores de retardo muy pequeños, el efecto del filtro es despreciable (a 48 KHz, un retardo de una muestra corresponde a 0.0208 ms). Cuando D aumenta, aparecen picos y valles en la respuesta frecuencia, que están cada vez más próximos a medida que el retardo aumenta. Estos picos y valles provienen de la anulación y la suma de fase de dos señales (original y retrasada). El primer pico se sitúa en la frecuencia: f0 = 12 fs D (23) donde D es el retardo en muestras y fs la frecuencia de muestreo. Los picos sucesivos se encuentran en las frecuencias 2 · f0 , 3 · f0 , .... La figura 11 muestra la respuesta frecuencial de un filtro comb con un retardo de 10 muestras, equivalente a 0,227 ms a 44100 Hz. A esta frecuencia de muestreo, el primer pico se encuentra en la frecuencia 4410 Hz. Figura 11: Respuesta en frecuencia de un filtro comb La ecuación siguiente: y[n] = x[n] − x[n − D] (24) describe un filtro comb sustractivo. Los filtros comb IIR incluyen una recursión, que se expresa en la ecuación siguiente: y[n] = a · x[n] + b · y[n − D] (25) Con una implantación de este tipo podemos obtener curvas de atenuación mucho más finas. 7. Filtros pasa-todo (allpass filters) Un filtro pasa todo es un procesador peculiar, ya que deja pasar todas las frecuencias sin cambio alguno de amplitud, tal y como su nombre indica. Por tanto, tiene una respuesta frecuencial de amplitud constante en todo el rango de frecuencias audio. Respecto a la respuesta de fase, dicho filtro aplica un cambio de fase a la señal de entrada. Es decir, retrasa diferentes regiones de frecuencia con diferentes valores de retardo. Éste tipo de retardo dependiente de la frecuencia se denomina dispersión. Los efectos audibles de un filtro pasa todo se manifiestan sobre todo en los períodos de transición como son el ataque y decaimiento, cuando la señal se colorea mediante un cambio de fase que depende de la frecuencia. 13 La ecuación siguiente describe un filtro pasa todo simple con una respuesta frecuencial constante (desde 0 a f2s ) que retrasa varias frecuencias con diferentes valores de retardo. Cuando el retardo en muestras D es grande, el filtro genera una serie de ecos que decaen, un efecto que se utiliza en los allpass reverberators. y[n] = (−g · x[n]) + x[n − D] + (g · y[n − D]) Éste filtro pasa todo corresponde a un filtro comb IIR con realimentación (controlada por la constante g) en un circuito que también alimenta parte de la señal de entrada hacia la salida con una ganancia −g. Dicha sustracción cancela el efecto espectral del filtro comb mientras que preserva el echo y las características de retardo. Los usos musicales de éste tipo de filtros son variados. El uso más aplicado sería utilizar éstos filtros para contrarrestar el efecto de fase de otros filtros. Por ejemplo, algunas empresas de audio fabricaban filtros pasa todo que compensaban la distorsión de fase inherente a los grabadores digitales primitivos. Otra aplicación se encuentra en algunos sintetizadores, donde un filtro pasa todos puede cretar un retardo de fase variable en el tiempo y en la frecuencia para enriquecer sonidos estáticos. Un ejemplo sería el efecto çhorus", una combinación de retardo y cambio de fase. La aplicación más importante de éste tipo de filtros se encuentra en los efectos de reverberación, como veremos en los temas siguientes. 8. Bibliografía 1. Roads, C. "The Computer Music Tutorial", MIT Press, 1996. pp. 396-440. 2. Smith, J. O. Ïntroduction to digital filters with audio applications", http://ccrmawww.stanford.edu/˜ jos/filters/ 14