diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como...

44
Diseño y análisis de filtros en procesamiento de audio Marta Ruiz Costa-jussà Helenca Duxans Barrobés PID_00188065

Upload: doanxuyen

Post on 27-May-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

Diseño y análisisde filtros enprocesamiento deaudio Marta Ruiz Costa-jussàHelenca Duxans Barrobés PID_00188065

Page 2: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 Diseño y análisis de filtros en procesamiento de audio

Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia deReconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España de Creative Commons. Podéis copiarlos, distribuirlosy transmitirlos públicamente siempre que citéis el autor y la fuente (FUOC. Fundación para la Universitat Oberta de Catalunya),no hagáis de ellos un uso comercial y ni obra derivada. La licencia completa se puede consultar en http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es

Page 3: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 Diseño y análisis de filtros en procesamiento de audio

Índice

Introducción............................................................................................... 5

Objetivos....................................................................................................... 6

1. Concepto y tipos de filtros. ¿Por qué se debe aprender

cómo funciona un filtro?................................................................ 7

2. Conceptos básicos para el diseño de filtros digitales............... 11

2.1. Caracterización de un filtro: respuesta impulsional y función

de transferencia ........................................................................... 11

2.2. Especificación de la entrada-salida de un filtro: ecuaciones en

diferencias finitas ........................................................................ 15

3. Filtros reales: plantilla de especificación de un filtro............. 19

4. Diseño de filtros digitales............................................................... 22

4.1. Diseño de filtros FIR ................................................................... 22

4.1.1. Método de ventanas ...................................................... 22

4.1.2. Método de Parks-McClellan ........................................... 26

4.2. Diseño de filtros IIR .................................................................... 29

4.2.1. Transformación bilineal ................................................. 30

4.2.2. Diseño de filtros analógicos: breve resumen ................. 31

4.2.3. Transformación bilineal y teoría de filtros analógicos ... 33

5. De la teoría a la práctica................................................................. 35

5.1. La elección de un filtro FIR o IIR. ¿Cuándo debemos utilizar

uno u otro? ................................................................................. 35

5.2. Caso práctico: diseño de un filtro desde cero con Audacity y

con Matlab .................................................................................. 36

5.2.1. Caso 1. Filtrado de una señal de audio utilizando

Audacity ......................................................................... 36

5.2.2. Caso 2. Filtrado de una señal de audio utilizando

Matlab ............................................................................ 36

Anexo............................................................................................................ 39

Page 4: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar
Page 5: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 5 Diseño y análisis de filtros en procesamiento de audio

Introducción

El objetivo principal de este módulo es explicar la teoría�básica�de�diseño�de

filtros�digitales�y�analógicos. Concretamente, se pretende dar al estudiante

la capacidad de aprender a utilizar cualquier software de diseño de filtros y

que así pueda diseñar sus propios filtros dadas unas especificaciones concre-

tas. Asimismo, se combina la teoría y la práctica del diseño�de�filtros� con el

estudio de diferentes utilidades de los filtros digitales y analógicos en el área

de procesamiento de la señal de audio.

El proceso de diseño de un filtro digital engloba básicamente tres etapas: las

especificaciones de las propiedades que queremos que verifique el filtro, la

determinación�de�los�coeficientes de un sistema causal que se aproxime a

las especificaciones queridas y, finalmente, la realización�del�sistema.

Page 6: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 6 Diseño y análisis de filtros en procesamiento de audio

Objetivos

Concretamente, al acabar de trabajar este módulo, el estudiante debe:

1. Conocer, saber diseñar e interpretar la respuesta impulsional que caracte-

riza un filtro.

2. Conocer los parámetros de diseño de un filtro: banda de paso y de atenua-

ción, entre otros.

3. Diferenciar entre filtrado analógico y digital.

4. Conocer diferentes métodos para diseñar los filtros digitales y analógicos.

5. Tener la capacidad, dada una aplicación que requiera filtrado digital, para

elegir el tipo de filtros digitales (FIR/IIR) más adecuado según las especifi-

caciones en módulo y fase del sistema.

Page 7: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 7 Diseño y análisis de filtros en procesamiento de audio

1. Concepto y tipos de filtros. ¿Por qué se debeaprender cómo funciona un filtro?

Un filtro, genéricamente hablando, es un sistema que discrimina parte del

objeto que procesa, según uno o más atributos. Por ejemplo, un filtro de aire

deja pasar el aire pero impide el paso a las partículas de polvo presentes en el

aire. Un filtro en procesamiento de señal es un concepto muy amplio, dado

que puede ser cualquier sistema que trate la señal. Nos centraremos en los

sistemas o filtros que, dada cualquier señal, permiten el paso de un conjunto

determinado de frecuencias y atenúan o eliminan el resto.

Partiendo de la misma definición de filtro, podemos definir los tipos clásicos

de filtro siguientes:

• Un filtro paso�bajo permite el paso de las frecuencias bajas y atenúa las

frecuencias altas.

Ejemplo

Por ejemplo, una pared hace de filtro paso bajo cuando oímos la música que viene deotra habitación. Dado que las frecuencias altas (es decir, los sonidos agudos) tienden areflejarse sobre cualquier superficie rígida (por ejemplo, las paredes), en nuestra habita-ción estas frecuencias llegan atenuadas y solo oímos las frecuencias bajas o graves de lamúsica original. Por lo tanto, la señal original (la música) ha sido filtrada paso bajo.

• Un filtro paso�alto permite el paso de frecuencias altas y atenúa las fre-

cuencias bajas. Se pueden utilizar para hacer que las frecuencias altas de

una señal de audio vayan a unos altavoces para sonidos agudos.

• Un filtro paso�banda permite el paso de frecuencias de una determinada

banda de frecuencias, eliminando las frecuencias bajas y altas. Encontra-

mos filtros paso banda en la transmisión y recepción de la señal, para eli-

minar el contenido frecuencial que no se encuentra en la banda de la señal

que se ha de transmitir.

• Un filtro de banda�eliminada es complementario al filtro paso banda por-

que elimina las frecuencias de una determinada banda de frecuencias y

deja pasar las frecuencias que hay fuera de esta banda. Se utilizan frecuen-

temente en ecualizadores.

La figura 1 muestra un ejemplo ideal de cada uno de estos filtros:

Nota

Un ecualizador procesa seña-les de audio y es capaz de mo-dificar la amplitud de las fre-cuencias, entre otras caracte-rísticas. En la práctica, se utili-za para adaptar el sonido a lasnecesidades del oyente.

Page 8: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 8 Diseño y análisis de filtros en procesamiento de audio

Representación frecuencial de algunos filtros ideales

Figura 1. Representación frecuencial de los filtros ideales siguientes: a) paso bajo; b) paso alto; c) debanda eliminada; d) paso banda. Los filtros son simétricos respecto al eje de ordenadas.

La figura 1 muestra el módulo de los filtros ideales. Respecto a la fase, un filtro ideal tienela fase lineal. Esto significa que la fase de la respuesta del filtro es una función lineal dela frecuencia. Por lo tanto, la señal filtrada no tiene distorsión de fase.

El concepto de fase lineal y no lineal aparece explicado con detalle en la página 428 ysiguientes del libro Señales y sistemas, de A. V. Oppenheim y A. S. Willsky.

Sin ser conscientes, en el día a día, constantemente topamos con filtros acús-

ticos, tanto si son analógicos (tratan señales de variable continua, como por

ejemplo t) como digitales (tratan señales de variable discreta, como por ejem-

plo n o, dicho de otro modo, listas de números ordenados). Por ejemplo, cuan-

do hablamos por teléfono, las frecuencias de la señal que se transmite se filtran

a 4 kHz (si se trata de una línea analógica, el filtrado es analógico), y esto es

una limitación muy fuerte comparada con lo que el oído humano es capaz de

oír (hasta 20 kHz). Por este motivo, escuchar un CD de música por la línea

telefónica no es tan agradable como escucharlo directamente. La grabación

del CD de música se filtra a 22 kHz para asegurar que se mantiene todo lo que

el oído humano puede oír.

Page 9: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 9 Diseño y análisis de filtros en procesamiento de audio

Los músicos electrónicos casi siempre utilizan filtros digitales en cada pieza de

música que crean; por ejemplo, para hacer reverberación digital.

La reverberación es solo un pequeño ejemplo de las capacidades de los filtros

digitales. Debemos ser conscientes de que un filtro digital es capaz de mani-

pular el espectro de un sonido, como veremos en el módulo 6, de efectos de

audio. Un objetivo de esta asignatura es ayudar a los estudiantes a tener una

idea sobre las herramientas necesarias para diseñar filtros personalizados.

Existe bastante software disponible para el diseño de filtros digitales (en la

asignatura utilizaremos Matlab y Octave). Ahora bien, para utilizar el software

es esencial el conocimiento teórico de cómo funcionan los filtros digitales.

Incluso en aplicaciones estándar, el uso eficaz de un programa de diseño de

filtros requiere una comprensión de los parámetros de diseño, que al mismo

tiempo requiere una cierta comprensión de la teoría de filtros.

Ejemplo

Veamos el efecto de filtrar un sonido paso bajo. Tenemos el sonido de un canario. Lafigura siguiente representa la forma de onda en el tiempo y en frecuencia.

Sonido de canario

Figura 2. Sonido de canario

Si filtramos1 con un paso bajo a 2 kHz, tenemos las señales siguientes:

Sonido de canario filtrado

Figura 3. Sonido de canario filtrado

Reverberación

El concepto de reverberaciónse estudia en el módulo de in-troducción a la acústica. Breve-mente, la reverberación es elfenómeno acústico por el cualun receptor (oyente) recibe almismo tiempo el sonido direc-to que emite un emisor (fuen-te acústica) y las reflexiones deeste sonido producidas por lasala donde están el emisor y elreceptor, lo que mejora la cali-dad del sonido y crea una sen-sación de calidez en el oyente.

(1)Para pasar de una figura a otra,utilizamos la transformada discretade Fourier.

Page 10: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 10 Diseño y análisis de filtros en procesamiento de audio

Observad que ahora el sonido del canario se ha suavizado.

Como hemos visto en el apartado “Conversión A/D y D/A: entorno analógico y entornodigital” del módulo 1, en la naturaleza encontramos señales analógicas, como es el casode la voz humana; por ello, si las queremos manipular con ordenadores hay que conver-tirlas en digitales –este proceso se denomina conversión analógico-digital (A/D). A conti-nuación, una vez se ha manipulado la señal digital, por ejemplo filtrándola, esta señal sedebe volver a convertir en señal analógica –este paso se denomina conversión digital-analó-gico (D/A). Por lo tanto, podemos decir que hay muchos filtros digitales que trabajan enun entorno analógico convirtiendo las señales analógicas en digitales y, después de lamanipulación con el ordenador, volviéndolas a convertir en analógicas.

Page 11: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 11 Diseño y análisis de filtros en procesamiento de audio

2. Conceptos básicos para el diseño de filtros digitales

Un filtro�digital�clásico se puede definir como un sistema que modifica una

señal digital de manera que deja pasar un determinado intervalo de frecuen-

cias y atenúa otras con el objetivo de obtener una salida con unas caracterís-

ticas determinadas. Los filtros “clásicos” trabajan en el espacio frecuencial y

las plantillas se diseñan en este espacio.

Nota

Una señal discreta es una señal muestreada pero no cuantificada y una señal digital esuna señal muestreada y cuantificada. Por ejemplo, una señal discreta es x = [0,1 0,4 0,9]y la misma señal digital es xd = [0 0 1] (con un paso de cuantificación de 1).

Concretamente, estudiaremos los filtros digitales realizables. Por esta razón,

estos sistemas tienen que verificar ciertas propiedades: la linealidad, la inva-

riancia en el tiempo, la causalidad y la estabilidad.

2.1. Caracterización de un filtro: respuesta impulsional y

función de transferencia

Como hemos dicho (y como hemos visto en las asignaturas de Señales y siste-

mas I y II), en el dominio temporal la respuesta impulsional relaciona la en-

trada y la salida de un sistema lineal e invariante en el tiempo (SLIT).

Si hablamos de sistemas digitales, que es el dominio que trataremos más (es

decir, filtros digitales), la salida es la suma de convolución entre la entrada

y la respuesta impulsional .

Esta relación la vemos representada en la ecuación y figura siguientes:

Ved también

Hemos visto la definición desistema en el apartado “Defini-ción de sistema” del módulo"Conceptos de señales y siste-mas".

Lectura recomendada

Encontraréis más informa-ción sobre la suma de convo-lución en las páginas 77 a 90del libro Señales y sistemas,de A. V. Oppenheim y A. S.Willsky.

Page 12: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 12 Diseño y análisis de filtros en procesamiento de audio

Relación genérica de entrada y salida de unsistema digital con entrada y salida

Figura 4. Relación genérica de entrada y salida de un sistema

digital con entrada y salida

La principal ventaja de un filtro lineal e invariante, de ahora adelante SLTI

(sistema lineal e invariante en el tiempo o linear time invariant system), es que

se puede caracterizar por la respuesta�impulsional en el dominio del tiempo

y por la función de transferencia en el dominio Z. Solo los filtros SLTI verifi-

can la propiedad de superposición�(propiedad�de�linealidad): así, podemos

asegurar que, con un filtro SLTI, el filtrado de una suma de señales de audio

se puede obtener como la suma de cada señal filtrada por separado. Por otro

lado, las propiedades de causalidad y estabilidad permiten que el filtro sea rea-

lizable. Por lo tanto, los filtros representados en la figura 1 son filtros ideales

o norealizables, puesto que la respuesta impulsional es no causal e inestable.

Así, en el dominio Z, la función de transferencia relaciona la entrada y la

salida de un sistema LTI. Por lo tanto, la función de transferencia es la trans-

formada Z de la respuesta impulsional:

Finalmente, en el dominio frecuencial, que es una particularización del do-

minio Z, la respuesta frecuencial es la transformada de Fourier de secuencias

discretas (TFSD) de la respuesta impulsional:

Referencias

En cuanto a la transformadaZ y a la transformada discretade Fourier, podéis ver el apar-tado “Transformación del do-minio temporal al dominiofrecuencial” del módulo 1.Encontraréis más informa-ción sobre módulo y faseen las páginas 427 a 430del libro Señales y sistemas,de A. V. Oppenheim y A. S.Willsky.

En el caso de los filtros, la respuesta impulsional y la función de transferencia

que tienen determinan los conceptos siguientes:

• La ganancia (G(f)) se define como la amplificación de la señal de salida

respecto a la entrada. Si esta amplificación es negativa, hablamos de ate-

nuación:

Recordad

Estamos utilizando la variablepara indicar frecuencia discre-ta, y equivale, por lo tanto, ala frecuencia analógica nor-malizada por la frecuencia demuestreo.

Page 13: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 13 Diseño y análisis de filtros en procesamiento de audio

• La respuesta en amplitud de un filtro se define como el módulo de la res-

puesta frecuencial del filtro:

Así, la respuesta en amplitud de un filtro ideal es 1 en la banda de paso

y 0 en la banda atenuada.

• La respuesta en fase de un filtro se define como la fase de la respuesta

impulsional:

• El orden de un filtro es el número de coeficientes que tiene un filtro y

coincide con el máximo retardo (en términos de muestras) que se utiliza

o de la señal de entrada o de salida anteriores para calcular .

Por otra parte, el orden de un filtro se puede definir como el orden de

la respuesta impulsional. Y, a la vez, el orden de un polinomio se define

como el valor más alto del exponente del mismo polinomio.

En el caso de una función racional, el orden se define como el máximo

entre el orden del polinomio del numerador y el del denominador.

Así, por ejemplo, un filtro definido por la ecuación siguiente tiene orden 3:

• La banda de paso de un filtro es el rango de frecuencias que el filtro deja

pasar de la entrada a la salida con una atenuación, por ejemplo, más pe-

queña de 3 dB, o ganancia (este valor se toma por conven-

ción y puede variar dependiendo de las especificaciones del sistema). Y la

banda atenuada es la complementaria. Por extensión, las frecuencias de

paso y de atenuación definen el rango de banda de paso y atenuada. En el

caso de un filtro ideal, la frecuencia de paso y atenuación coinciden en la

frecuencia de corte. Veamos la figura siguiente:Banda de paso y atenuada en un filtro paso bajo ideal

Figura 5. Banda de paso y atenuada en un filtro paso bajo ideal

Definiciones

Un decibelio (dB) se puede definir como una medida logarítmica de potencia en relacióncon una potencia patrón. Básicamente, dicho de otro modo, es una unidad no dimen-

Nota

La f no va en hercios. Recordadque es la frecuencia analógicanormalizada y se puede decirque ).

Page 14: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 14 Diseño y análisis de filtros en procesamiento de audio

sional que representa la relación entre una señal de interés y una señal de referencia. UndB se basa en un logaritmo de base 10 del cociente entre las dos magnitudes.

La frecuencia�de�corte de un filtro es la frecuencia a partir de la cual la señal de salidase atenúa significativamente. Normalmente, se considera que la señal de entrada se debeatenuar un valor de 3 dB (o 3 dB si hablábamos de ganancia). La relación entre gananciay atenuación viene dada por .

La respuesta frecuencial se caracteriza por su módulo y fase :

. En un caso genérico, si tenemos la señal en frecuencia de

entrada y el filtro anterior, entonces el módulo y la fase de la señal de

salida ( ) son los siguientes:

El módulo determina la ganancia del filtro (recordad la definición de

ganancia) y la fase determina el retardo del filtro. Una propiedad muy

importante relacionada con la fase de la respuesta del filtro es el retardo de

grupo:

El retardo de grupo evalúa la señal de salida respecto al de entrada en muestras

para cada frecuencia. Por lo tanto, se evalúa el retardo global que experimenta

una señal. Si el retardo de grupo es constante, quiere decir que la fase es lineal

(retarda todas las frecuencias del mismo modo). En caso de que el retardo

de grupo sea diferente según la frecuencia, se produce una distorsión en el

espectro de la señal.

Si el módulo�es�constante ( ) y la fase�es�lineal�en�frecuencia ( ), tene-

mos la relación entrada-salida siguiente:

Al mismo tiempo vemos que la señal de salida en el tiempo es la señal de

entrada retardada m y multiplicada por (aplicando propiedades de la TFSD).

En estas condiciones específicas, se verifica que la señal�de�entrada�no�cambia

de�forma.

Ausencia de cambio de forma

El hecho de que la señal de entrada no cambie de forma significa que todas las frecuenciasque conforman la señal se retardan del mismo modo. Recordemos que esto significa queel retardo de grupo es constante y la fase es lineal.

Page 15: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 15 Diseño y análisis de filtros en procesamiento de audio

Ejemplo

Veamos un caso particular. Si tomamos la señal discreta de entrada y lapasamos por el filtro a la salida tenemos:

donde es el retardo de fase. Comprobemos que para que se verifique debe ser

constante y debe ser lineal. La figura siguiente muestra un ejemplo de la influenciade un filtro en amplitud y retardo sobre una señal sinusoidal:

Seno a la entrada y salida del filtro

Figura 6. Seno a la entrada del filtro, es decir, antes de aplicar un filtro (rojo). Seno a la salida del filtro, es decir,después de aplicar el filtro (azul). La salida queda ligeramente atenuada y retardada. El eje X son muestras y el eje Y,amplitud.

Esta propiedad de mantener la señal de entrada sin distorsión (sin que la se-

ñal cambie de forma) nos puede interesar mucho en la práctica. Ahora bien,

hemos de tener presente que para que un sistema causal con respuesta impul-

sional real y función de transferencia racional tenga fase�lineal, la respues-

ta�impulsional�debe�ser�simétrica�o�antisimétrica�(respecto�a�su�muestra

central)�y�finita.

2.2. Especificación de la entrada-salida de un filtro: ecuaciones

en diferencias finitas

Referencia bibliográfica

Podéis ver la demostraciónde esto en:J.�G.�Proakis;�D.�G.�Manola-kis (2007). Tratamiento digi-tal de señales. Madrid: Pear-son Prentice Hall.

Una manera directa para describir la relación entrada-salida2 de un filtro causal

es mediante una ecuación�en�diferencias�finitas.

(2)Para ver gráficamente la relaciónentrada-salida de un filtro causal,podéis ver la figura 7 en este mis-mo apartado.

Page 16: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 16 Diseño y análisis de filtros en procesamiento de audio

Esta ecuación es una fórmula para calcular la muestra n de salida, que depende

de muestras de entrada presentes y pasadas (en el dominio del tiempo). Una

ecuación genérica en diferencias finitas se puede escribir como sigue:

que, compactada en sumatorios, se escribe:

donde es la señal discreta de entrada y es la señal de salida, y las cons-

tantes ( ) y ( ) son el número de coeficientes

del filtro.

Si analizamos estas ecuaciones en el dominio Z, obtendremos la función de

transferencia:

Sabemos que:

Entonces:

Por lo tanto:

Informacióncomplementaria

Encontraréis más informa-ción en lo referente a lasecuaciones en diferencias fi-nitas en las páginas 120 a124 del libro Señales y siste-mas, de A. V. Oppenheim yA. S. Willsky.

La función de transferencia se puede reformular en términos de las raíces de

los polinomios numerador y denominador de la manera siguiente:Nota

Podéis mirar el vídeo “Raícesde un polinomio”.

Page 17: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 17 Diseño y análisis de filtros en procesamiento de audio

donde son los ceros (porque cuando , la función transferencia vale

cero) y son los polos (porque cuando , la función transferencia es

infinita). Recordemos que los polos se representan en el plano Z con una cruz

y los ceros, con un círculo, tal como se ve representado en la figura siguiente:

Recordeu

El diagrama de polos y ceros loobtenemos a partir del H(z).

Ejemplo de diagrama de polos y ceros

Figura 7. Ejemplo de diagrama de polos y ceros

Condiciones que debe verificar una función de transferencia para que seacausal y estable

Analicemos qué condiciones debe verificar una función de transferencia para que seacausal y estable.

La estabilidad se garantiza si, y solo si, pertenece a la región de convergencia (parasistemas LTI causales).

La causalidad se garantiza si, y solo si, pertenece a la región de convergencia yH(z), expresada como una razón de polinomios en z, verifica que el orden del numeradorno es mayor que el orden del denominador.

La única manera de verificar estos dos criterios es que el módulo del polo sea más pequeñoque 1.

La definición de un filtro en ecuación en diferencias finitas nos permite hacer

claramente una distinción entre dos tipos de filtros:

• Filtros�no�recurrentes: son aquellos en los que los coeficientes son cero

y, por lo tanto, solo dependen de la señal de entrada. La respuesta impul-

sional del filtro tiene un número finito de muestras diferentes de cero y,

por ello, reciben el nombre de filtros�FIR (respuesta impulsional finita o

finite impulse response).

• Filtros�recurrentes: son aquellos en los que la respuesta impulsional tiene

un número infinito de muestras diferentes de cero, y reciben el nombre de

Ved también

En cuanto a la transformada Z,podéis ver el apartado “Trans-formación del dominio tempo-ral al dominio frecuencial” delmódulo 1.

Page 18: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 18 Diseño y análisis de filtros en procesamiento de audio

filtros�IIR (respuesta impulsional infinita o infinite impulse response). Esto

se sabe porque los coeficientes ak y bk son diferentes de cero.

Finalmente, y como hemos visto en las definiciones del primer apartado de

este módulo, el orden de un filtro se define como el máximo entre M y P (que

son el orden del polinomio numerador y denominador, respectivamente).

Ejemplo

Para ejemplificar algunos de los conceptos que hemos definido, utilizaremos un filtro FIRmuy sencillo definido por la ecuación de entrada-salida siguiente:

donde es la señal discreta de entrada e es la señal discreta de salida.

La señal de salida es el resultado de hacer la convolución entre la señal de entrada y larespuesta impulsional y se puede expresar como sigue:

Si aplicamos la transformada Z de la expresión anterior, obtendremos la función de trans-ferencia del filtro:

En este caso, los coeficientes de la respuesta impulsional son . Dado quesolo se utiliza un retardo de una muestra, el filtro es de orden 1. La respuesta impulsionaltiene un número finito de muestras diferentes de cero; por lo tanto, podemos afirmarque se trata de un filtro FIR.

Este filtro se puede programar fácilmente en Matlab u Octave de la manera siguiente:

1. Definimos la señal de entrada: .

2. Definimos los coeficientes de la respuesta impulsional: .

3. Inicializamos la suma de convolución: .

4. Definimos el orden del filtro: .

5. Definimos la longitud de la señal de entrada: .

6. Escribimos el código de la suma de convolución:

for n = 1:Ny(n) = h*[x(n);v]; % producto escalar de dos vectores : vector fila*vector columnav=[x(n)];

Obtenemos la señal de salida: .

Orden de un filtro

El orden de un filtro determinala complejidad de implemen-tación del propio filtro. Cuantomayor es el orden, más recur-sos computacionales se necesi-tan.

Page 19: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 19 Diseño y análisis de filtros en procesamiento de audio

3. Filtros reales: plantilla de especificación de unfiltro

Como hemos dicho, los filtros representados en la figura 1 son filtros ideales

o no�realizables puesto que la respuesta impulsional es no causal. A la hora

de especificar las características, a un filtro real o realizable se permite una

relajación de las especificaciones teóricas requeridas (esto lo denominamos

margen de tolerancia o relajación). Por ello, en la práctica, antes de diseñar un

filtro, lo primero que necesitamos es la plantilla�de�especificaciones3, que

básicamente determina cómo queremos que sea el filtro y qué margen de to-

lerancia o relajación4 aceptamos.

El filtro real se diseña de modo que la función de transferencia corresponda

a la siguiente ecuación:

La figura 8 muestra una plantilla de especificación correspondiente a la fun-

ción real H(f) y la correspondiente atenuación de un filtro paso bajo:

Plantilla de especificación correspondiente al módulo (izquierda) y la atenuación (derecha) delfiltro paso bajo

Figura 8. Plantilla de especificación correspondiente al módulo (izquierda) y la atenuación (derecha) del filtro paso bajo

Nomenclatura

• : frecuencia de paso (hasta esta frecuencia el filtro deja pasar la señal).

• : frecuencia de atenuación (a partir de esta frecuencia el filtro atenúa la señal).

• : tolerancia de paso en módulo, que es la relajación en módulo que permitimosen la banda de paso.

• : tolerancia de atenuación en módulo, que es la relajación en módulo que permi-timos en la banda de atenuación.

(3)Dentro de las especificacionesencontramos frecuencia de corte yfrecuencia de paso, entre otras.

(4)Por relajación de las especifica-ciones teóricas requeridas entende-mos el hecho de permitir un mar-gen de variación en las especifica-ciones.

Page 20: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 20 Diseño y análisis de filtros en procesamiento de audio

• : tolerancia de paso en atenuación, que es la relajación en atenuaciónque permitimos en la banda de paso.

• : tolerancia de atenuación en atenuación, que es la relajación en atenuación quepermitimos en la banda de atenuación.

Podemos definir la atenuación a partir de la función de transferencia:

Observad que en la banda izquierda de la figura 8 se permite:

• Una tolerancia en torno al valor del módulo ( ).

• Una tolerancia sobre el valor de la banda atenuada ( ).

• Una banda de paso entre la frecuencia de paso y la frecuencia atenuada

( ).

Observad que en la banda derecha de la figura 8 se permite:

• Una tolerancia en torno al valor de la banda de paso ( ).

• Una tolerancia sobre el valor de la banda atenuada ( ).

• Una banda de paso entre la banda de paso y la banda atenuada ( ).

Cuanto más restrictivos seamos a la hora de definir las tolerancias, más costoso

resultará implementar el filtro en cuestión.

Generalmente, el valor máximo de la función H(f) es 1. A sabiendas de la re-

lación entre la atenuación y la función de transferencia, encontraremos la re-

lación entre las especificaciones de la atenuación y las especificaciones de la

función de transferencia. Así, si tomamos , obtenemos que:

Page 21: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 21 Diseño y análisis de filtros en procesamiento de audio

Un filtro es un sistema�lineal e invariante; por ello, se puede caracte-

rizar con lo que conocemos como respuesta�impulsional.

La respuesta impulsional relaciona la entrada y la salida de un sistema

lineal e invariante en el tiempo.

Antes de diseñar un filtro, lo primero que necesitamos es la plantilla�de

especificaciones, que básicamente determina cómo queremos que sea

el filtro: paso bajo, paso alto y la frecuencia de corte y de atenuación,

entre otros parámetros.

Page 22: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 22 Diseño y análisis de filtros en procesamiento de audio

4. Diseño de filtros digitales

En este apartado nos centraremos en el diseño de filtros digitales, que básica-

mente se subdividen en dos tipos: filtros FIR e IIR. Los primeros tienen una

respuesta impulsional finita y los segundos se caracterizan por el hecho de te-

ner una respuesta impulsional infinita. Dentro del subapartado de filtros IIR

haremos un repaso muy breve del diseño de filtros analógicos que se necesitan

para el diseño de filtros IIR.

4.1. Diseño de filtros FIR

Ya hemos visto que un filtro FIR realizable, además de ser lineal, invariante,

causal y estable, se caracteriza por el hecho de tener una respuesta impulsional

de longitud finita L, y la salida que tiene solo depende de valores de la entrada,

nunca de la salida. En caso de querer tener fase lineal5, la respuesta impulsional

debe ser simétrica o asimétrica.

La estructura directa genérica de un filtro FIR (conocida también como estruc-

tura transversal) se corresponde con la figura 9. Vemos que un filtro FIR solo

usa muestras retardadas de la señal de entrada:

Estructura directa de un filtro FIR de orden M

Figura 9. Estructura directa de un filtro FIR de orden M. Los triángulos se corresponden con multiplicadores y loselementos z-1, con retardadores de una muestra. Observad que .

Existen diferentes métodos para implementar filtros FIR. En esta asignatura

veremos con detalle el método de ventanas y el método de Parks-McClellan.

El primero se caracteriza por la simplicidad y el segundo, porque se utiliza

frecuentemente en la práctica (de hecho, es el tipo de filtro que logra unas

determinadas especificaciones con un orden más pequeño). Los dos están im-

plementados en Matlab y Octave y veremos su utilización.

4.1.1. Método de ventanas

Una manera directa de hacer que la respuesta ideal sea finita es limitando

una respuesta infinita. Así, si por ejemplo tenemos una respuesta impulsional

ideal que, en el tiempo, es una función sinc (contiene infinitas muestras) y

la multiplicamos por una función que tiene un número limitado de muestras

(5)Recordad que hemos dicho queun filtro de fase lineal significa queno distorsiona la forma de la ondade la señal original.

Lectura sugerida

Encontraréis explicado elconcepto de simetría en lapágina 13 del libro Señales ysistemas, de A. V. Oppenheimy A. S. Willsky.

Page 23: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 23 Diseño y análisis de filtros en procesamiento de audio

diferentes de cero, obtendremos una respuesta impulsional finita centrada en

su origen para garantizar la simetría (observad que, para hacer el filtro causal,

hemos de desplazar la ventana):

En esta ecuación, es la respuesta impulsional del filtro ideal y es la

función que actúa de ventana (en inglés, window). Fijémonos en que en el

dominio transformado esta multiplicación temporal es una convolución.

Otros tipos de ventanas que se utilizan en este método para limitar la función

sinc que pertenece al filtro ideal son la triangular, Barlett, Blackman, Hanning,

Hamming y Kaiser, y cada ventana tiene unas propiedades diferentes.

Matlab permite el uso de todas estas ventanas. Podéis ver cómo son con las órdenessiguientes:

L=64 % define la longitud de la ventana

wvtool(blackman(L)) % dibuja la ventana de Blackman en tiempo y en frecuencia

wvtool(hamming(L)) % dibuja la ventana de Hamming en tiempo y en frecuencia

wvtool(kaiser(L)) % dibuja la ventana de Kaiser en tiempo y en frecuencia

wvtool(kaiser(L),blackman(L),hamming(L)) % permite comparar diferentes tiposde ventanas

Respuesta en frecuencia de diferentes tipos de ventanas: Kaiser, Blackman y Hamming

Figura 10. Respuesta en frecuencia de diferentes tipos de ventanas: Kaiser, Blackman y Hamming

Cada ventana presenta unas prestaciones diferentes. Por ejemplo, una ventana

rectangular presenta una banda de paso más amplia, pero la atenuación en la

banda eliminada es más pequeña. Tal como se ve en la figura 10, la amplitud

del lóbulo principal es grande y la diferencia entre lóbulo principal y secun-

dario, pequeña. Este comportamiento es totalmente opuesto en una ventana

triangular. Así, pues, según las especificaciones de diseño, nos decidiremos por

una ventana en concreto.

Ventanas simétricas

Observad que las ventanas sonsimétricas; esto significa quetenemos fase lineal y que el re-tardo de grupo es constante.

Page 24: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 24 Diseño y análisis de filtros en procesamiento de audio

Comprobad los diferentes comportamientos de las ventanas siguiendo el

ejemplo siguiente.

Así, a continuación ponemos un ejemplo concreto para ver cómo funciona

este método. Utilizaremos la ventana rectangular, que es la más simple de las

ventanas, y una ventana más elaborada, la de Hanning.

Ejemplo

En este ejemplo mostramos el filtrado (o, en este caso, el denominado enventanado) deuna señal sinusoidal con un filtro de ventana rectangular y ventana de Hanning en eldominio temporal y en el dominio de la frecuencia calculado en Matlab:

n=512 % número de muestras de la fftm=128 % número de muestras de la ventanah = hanning(m);sr = ceros(size(1:n));sh = ceros(size(1:n));f = pi / 3; % frecuencia de la señal sinusoidal

for i = 1:m ; sr(i) = sin(f * i) ; endfor i = 1:m ; sh(i) = h(i) * sin(f * i) ; end

plot(sr);plot(sh);

A continuación mostramos el enventanado de la señal sinusoidal con un filtro de ventanarectangular y ventana de Hanning en el dominio temporal, respectivamente, en términosde amplitud y muestras temporales:

Figura 11. Enventanado en el dominio temporal de una señal sinusoidal con una ventana rectangular y una deHanning, respectivamente. La figura muestra amplitud en términos de muestras temporales.

ar=abs(fft(sr));ah=abs(fft(sh));

plot(ar(1:n/2))plot(20 * log10(ar(1:n/2)))plot(20 * log10(ah(1:n/2)))

A continuación mostramos el enventanado de la señal sinusoidal con un filtro de ventanarectangular y ventana de Hanning en el dominio frecuencial, respectivamente, en dB ymuestras frecuenciales:

Page 25: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 25 Diseño y análisis de filtros en procesamiento de audio

Figura 12. Enventanado en el dominio frecuencial de una señal sinusoidal con una ventana rectangular y una deHanning, respectivamente. La figura muestra dB en términos de muestras frecuenciales.

A partir de estas imágenes, observad que la frecuencia central de los filtros es la misma.Por otro lado, vemos que la frecuencia de corte a 3 dB aproximadamente no coincide enlos dos filtros. La frecuencia de corte a 3 dB es aquella frecuencia en la que la atenuaciónes mayor de 3 dB respecto a la atenuación mínima (la de la frecuencia central).

Finalmente, la amplitud del lóbulo principal y el máximo pico de los lóbulos lateralespermite determinar la resolución y sensibilidad de un filtro, respectivamente. Denomi-namos lóbulos a los “picos” del filtro. El lóbulo principal es el pico del filtro donde laseñal tiene menos atenuación. Los lóbulos laterales son todos los demás picos del filtrodonde la señal tiene más atenuación.

El hecho de que la anchura del lóbulo principal sea más pequeña en el caso de la ventanarectangular que en la de Hanning quiere decir que hay una mayor resolución. Es decir,una discriminación más grande entre la frecuencia central y las frecuencias más cercanasa la central. Por otro lado, el hecho de que la relación lóbulo principal-lóbulo lateral seamás grande en el caso de la ventana de Hanning que en la rectangular provoca que estaventana tenga más sensibilidad. Esto permite una mayor atenuación de las frecuenciasno deseadas (que están a una distancia mayor de la que ocupa el lóbulo principal).

Con el método de ventanas tenemos una manera sencilla y entendible de ela-

borar filtros. Ahora bien, el principal inconveniente del método es que se ob-

serva un comportamiento oscilatorio entre la banda de paso y la banda ate-

nuada y no permite controlar la separación entre las dos bandas.

Ejemplo

La siguiente figura muestra gráficamente la ecuación de construcción de un filtro por elmétodo de ventanas (utilizando una ventana rectangular):

Referencia bibliográfica

Julián�Quiroga�Sepúlveda(2009) Diseño de filtros FIR:Método de ventanas. Procesa-miento digital de señales. Pon-tificia Universidad Javieriana.

Page 26: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 26 Diseño y análisis de filtros en procesamiento de audio

Figura 13. Construcción de un filtro FIR utilizando el método de ventanas

4.1.2. Método de Parks-McClellan

El algoritmo de Parks-McClellan se basa en aproximaciones polinómicas. Este

método presenta un comportamiento de rizado constante6 en las bandas de

paso y atenuada.

No entraremos en detalle en cómo se realizan los cálculos para obtener el filtro,

puesto que para ello tenemos herramientas como la FDAtool de Matlab.

(6)Se denomina rizado cuando laforma de onda tiene picos y valles.Rizado constante quiere decir quelos picos y los valles siempre tienenel mismo valor.

Referencia bibliográfica

Podréis profundizar sobre laFDAtool de Matlab en la pá-gina web de Mathworks.

FDAtool de Matlab

Esta herramienta proporciona una interfaz para diseñar y analizar filtros rápidamente. LaFDAtool permite diseñar filtros FIR e IIR con determinadas especificaciones. Asimismo,la herramienta permite analizar las características de un filtro en concreto.

Para utilizar la FDAtool tenéis que entrar en Matlab y escribir fdatool en la línea de órdenes–es decir, a continuación del signo (>>)–. Después os aparecerá la ventana siguiente:

Lectura sugerida

Leed el artículo “Compara-ción de filtros FIR de fase li-neal, por Método Óptimo yde Ventanas”.

Page 27: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 27 Diseño y análisis de filtros en procesamiento de audio

Figura 14. Herramienta FDAtool de Matlab

Diseñamos un filtro paso bajo FIR con las especificaciones siguientes:

• Método: Parks-McClellan (observad que Matlab lo denomina Least-squares, que es lomismo que equiripple):– Design Method → FIR → Least-squares

– Hay que tener seleccionado Response Type → Low pass

• Frecuencia de paso 8 kHz, frecuencia de atenuación a 6 dB (Fstop a fdatool) 8.8 kHz:– Frequency Specifications → Units → Hz”

– Entonces, Fpass 8000 y Fstop 8000

Si especificamos orden 5 (Order → Specify order --< 5), obtenemos el siguiente filtro:

Page 28: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 28 Diseño y análisis de filtros en procesamiento de audio

Figura 15. Pantalla de especificaciones

¿Consideráis que es el filtro que queremos?

No lo es, ya que las frecuencias de 8 kHz están atenuadas 6 dB; por lo tanto, tenemosque subir el orden del filtro.

Nuestras especificaciones son muy exigentes; por lo tanto, necesitamos órdenes más al-tos:

Figura 16. Filtro creado

Actividad

Con las mismas especificaciones que en el ejemplo anterior, comprobad qué orden nece-sitáis si en lugar de utilizar el método de Parks-McClellan (especificación 1 del ejemplo)utilizáis el método de ventanas con una ventana de Cauer.

Page 29: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 29 Diseño y análisis de filtros en procesamiento de audio

Un filtro�FIR tiene una respuesta impulsional de longitud finita. Asi-

mismo, la respuesta en frecuencia tiene fase lineal siempre que se cum-

plan las condiciones de simetría. El hecho de que la fase�sea�lineal im-

plica que el filtro no�distorsione�la�salida�a�la�banda�de�paso. Esta

característica de no-distorsión suele ser el principal motivo para utilizar

filtros FIR.

4.2. Diseño de filtros IIR

Los filtros�IIR se diferencian de los filtros FIR en que tienen una respuesta

impulsional infinita y la señal de salida filtrada depende de valores anteriores

de la entrada y de la salida. Esto quiere decir que la respuesta frecuencial no

es de fase lineal porque no se cumplen las condiciones de simetría.

La principal ventaja de estos filtros es que se pueden lograr unas determinadas

especificaciones de atenuación y frecuencias de paso o atenuadas con un orden

inferior al orden que requiere un filtro FIR. La estructura directa de un filtro

IIR se representa en la figura siguiente:

Estructura directa de un filtro IIR de orden

Figura 17. Estructura directa de un filtro IIR de orden . Observad que.

Page 30: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 30 Diseño y análisis de filtros en procesamiento de audio

En el diseño de filtros IIR se determinan los coeficientes y de manera

que verifiquen unas determinadas especificaciones. Ahora bien, no hay una

teoría específica para diseñar filtros digitales IIR, sino que se utiliza la teoría de

filtros analógicos. El motivo principal por el que se utiliza la teoría de filtros

analógicos en digital es porque la teoría de filtros analógicos está muy desa-

rrollada, estudiada y experimentada. Por lo tanto, vale la pena aprovecharla

para filtros digitales.

La teoría de filtros analógicos para el diseño de filtros digitales se basa en rea-

lizar una transformación de variable. Hay diferentes procedimientos para ha-

cer esta transformación. En estos apuntes revisaremos el método por transfor-

mación bilineal. Una vez efectuada la transformación bilineal, ya se pueden

utilizar las aproximaciones analógicas clásicas, como Butterworth, Txebyxev,

Inverso de Txebyxev o Cauer.

En resumen, para diseñar un filtro IIR digital lo que hacemos es diseñarlo en

analógico y transformar este filtro de analógico a digital.

4.2.1. Transformación bilineal

Ved también

Veremos brevemente la teo-ría de los filtros analógicos enel apartado “Diseño de filtrosanalógicos: breve resumen” deeste mismo módulo.

La transformación se aplica a la función de transferencia de un filtro analógico

y el resultado que se obtiene es la función de transferencia de un filtro

discreto H(z).

Lectura recomendada

Encontraréis información sobre la transformada de Laplace en la página 654 y siguientesdel libro Señales y sistemas, de A. V. Oppenheim y A. S. Willsky.

Recordad que hemos visto la transformada Z en el apartado “Transformación del dominiotemporal al dominio frecuencial” del módulo 1.

Esta transformación ha de verificar las siguientes condiciones:

1. Garantiza una relación punto a punto entre el plano z y el plano s.

2. Para asociar la frecuencia entre los dos planos, la circunferencia de radio

unidad del plano z se transforma en el eje imaginario del plano s.

Ved también

Recordad el apartado “Conver-sión A/D y D/A: entorno analó-gico y entorno digital” del mó-dulo 1.

3. Para asegurar la estabilidad, todo punto situado en el interior de la circunfe-

rencia de radio unidad en z se relaciona con un punto del semiplano izquierdo

de s.

La transformación bilineal cumple estos requisitos:

Nota

Los filtros analógicos son esta-bles si, y solo si, los polos de lafunción de transferencia tienenparte real negativa, como vere-mos a la próxima sección.

Page 31: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 31 Diseño y análisis de filtros en procesamiento de audio

Ejemplo

Verificamos que un punto z situado sobre la circunferencia de radio unidad tiene comoimagen en s un punto con parte real nula (por lo tanto, se sitúa sobre el eje imaginario):

De aquí podemos extraer que la pulsación del dominio analógico ( ) queda relacionadacon la pulsación ( ) del dominio discreto por la expresión siguiente:

Esta relación se utiliza para adaptar las especificaciones digitales, tal como veremos acontinuación.

Actividad

Comprobad que un punto cualquiera con módulo r <1 verifica la condición 3.

Una vez definida la transformación bilineal, ya podemos diseñar el filtro IIR.

4.2.2. Diseño de filtros analógicos: breve resumen

Un filtro analógico se puede definir como un sistema que manipula una se-

ñal continua (es decir, analógica) de manera que deja pasar un determinado

intervalo de frecuencias y atenúa otras.

En muchos aspectos presentan muchas analogías con los filtros digitales. En

particular, los filtros LTI analógicos se caracterizan por la respuesta impulsional

que tienen (en este caso es continua en el tiempo). En lugar de utilizar ecua-

ciones en diferencias finitas, los filtros analógicos relacionan su entrada-salida

con una ecuación diferencial. En lugar de utilizar la transformada Z para cal-

cular la función de transferencia, se emplea la transformada de Laplace.

Los filtros analógicos mantienen las propiedades que hemos visto en la sec-

ción 1.3. Ya sabemos que para que una función de transferencia caracterice

un sistema, este sistema tiene que ser LTI. La función de transferencia para un

filtro analógico es el cociente entre la transformada de Laplace de la señal de

salida y la transformada de Laplace de la señal de entrada:

Como ya hemos dicho, la relación de entrada-salida utiliza ecuaciones dife-

renciales:

Lectura recomendada

Encontraréis información so-bre la transformada de Lapla-ce en la página 654 y siguien-tes del libro Señales y siste-mas, de A. V. Oppenheim yA. S. Willsky.

Page 32: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 32 Diseño y análisis de filtros en procesamiento de audio

Si hacemos la transformada inversa de , necesitamos utilizar la transfor-

mada de Laplace siguiente:

Veamos cuáles son los requisitos para que el filtro analógico sea causal y es-

table:

• La causalidad se verifica porque los valores són 0 debido a (la fun-

ción escalón es cero para valores inferiores a 0, y 1 para valores superiores

a 0).

• La estabilidad se verifica si:

Por lo tanto, hemos de garantizar que . Además, observad que para que el

filtro sea real, las exponenciales complejas deben aparecer en polos conjugados

(de este modo las partes imaginarias se anulan entre sí).

A continuación veremos algunos parámetros que son útiles a la hora de diseñar

un filtro analógico:

• Constante de selectividad (es decir, el cociente, la frecuencia de atenuación

y la frecuencia de paso).

• Relación atenuación y función frecuencial (ahora utilizaremos F como fre-

cuencia analógica):

Las plantillas de atenuación de los filtros se definen exactamente como en el

apartado 1.3. La figura siguiente muestra unos ejemplos de los filtros analógi-

cos principales (para una frecuencia de paso de 0,5):

Page 33: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 33 Diseño y análisis de filtros en procesamiento de audio

Figura 18. Función de transferencia de diferentes tipos de filtros analógicos paso bajo: Butterworth, Txebyxev, inverso deTxebyxev y Cauer

Las respuestas más comunes de filtros analógicos paso bajo son las que se

muestran en la figura. Butterworth asegura una respuesta máximamente plana

en la banda de paso y una tasa adecuada de atenuación en la banda atenua-

da. Por ello, el filtro de Butterworth es adecuado para aplicaciones dentro del

procesamiento de audio.

El filtro de Txebyxev da una atenuación mucho más pronunciada, pero la am-

plitud no constante de la banda de paso lo hace inadecuado para los sistemas

de audio.

El filtro de tipo elíptico o de Cauer es un filtro complejo pero que resulta muy

adecuado en la práctica porque, dadas unas especificaciones, las cumple con

el mínimo orden posible. Asimismo, si queremos una respuesta plana en la

banda de paso, se puede obtener aumentando ligeramente el orden mínimo.

Ahora bien, si pensamos en aplicar filtros analógicos dentro de entornos di-

gitales, se debe tener en cuenta que la transformación bilineal provoca una

fuerte distorsión de fase.

4.2.3. Transformación bilineal y teoría de filtros analógicos

Para hacer el diseño de un filtro IIR seguimos el procedimiento siguiente:

Page 34: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 34 Diseño y análisis de filtros en procesamiento de audio

• Debemos obtener las especificaciones del filtro analógico a partir de las

especificaciones del filtro digital IIR.

– Los límites de atenuación αa y αp se mantienen.

– Transformamos los límites frecuenciales y en y mediante

la relación que hemos obtenido en (ec. 3).

• A partir de las especificaciones analógicas, diseñamos el filtro analógico

utilizando alguna técnica analógica (es decir, Butterworth, Txebyxev, in-

verso de Txebyxev o Cauer).

• Teniendo y aplicando la transformación bilineal, obtenemos la fun-

ción de transferencia del filtro digital IIR H(z):

Así, si tenemos un filtro pao bajo, como por ejemplo , el filtro di-

gital después de aplicar la transformación bilineal sería el siguiente:

Ejemplo

Extraídos de Internet, encontramos ejemplos de filtros analógicos hechos en Matlab co-mo los que encontraréis en el anexo:

butter_ana_ex.m

txeby_ana_ex.m

Un filtro�IIR presenta una respuesta impulsional infinita, lo cual impli-

ca que no tienen una fase lineal y pueden ser estables o inestables.

Nota

La FDAtool de Matlab realizala transformación bilineal inter-namente, de modo que el di-señador no la tiene que hacerexplícitamente.

Page 35: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 35 Diseño y análisis de filtros en procesamiento de audio

5. De la teoría a la práctica

En este apartado desarrollaremos un par de conceptos prácticos de filtros. Por

un lado, veremos criterios para elegir un filtro FIR o un IIR. Por otro lado,

veremos cómo hemos de diseñar un filtro desde cero.

5.1. La elección de un filtro FIR o IIR. ¿Cuándo debemos utilizar

uno u otro?

Después de ver los principales aspectos teóricos de los filtros, ahora nos cen-

traremos en aspectos más prácticos.

Respecto a las ventajas de utilizar este tipo de filtros, vemos que los filtros FIR

pueden tener fase lineal, lo que permite mantener la forma de la señal. Ahora

bien, en procesamiento de audio, en general, no es necesario tener una fase

lineal o mantener la señal de onda.

Asimismo, los filtros FIR son siempre estables.

Por otro lado, los filtros IIR suelen ser de orden pequeño (por lo tanto, menos

coste computacional).

En cuanto a los inconvenientes principales, vemos que los filtros FIR son de

orden grande y los filtros IIR son de fase no lineal, y se debe controlar la ines-

tabilidad, porque si son inestables no son realizables.

Hay que tener en cuenta que en un filtrado audio, cuando está bien hecho,

no tenemos por qué percibir si hemos filtrado con un filtro FIR o IIR.

Finalmente, a�la�hora�de�elegir�un�filtro�FIR�o�IIR�en�la�práctica,�preferen-

temente�utilizaremos�el�filtro�de�Parks-McClellan�si�queremos�un�filtrado

FIR,�y�el�filtro�de�Cauer�si�queremos�un�filtrado�IIR. Las otras aproximacio-

nes, ventanas en el caso FIR y Butterworth o Txebyxev en el caso IIR, requieren

un orden mayor para cumplir las mismas especificaciones, tal como hemos

visto con la herramienta FDAtool de Matlab.

Nota

El oído humano, genéricamen-te hablando, no es extrema-mente sensible a la distorsiónde fase. En cambio, la fase esmás importante en imagen pa-ra la sensibilidad del ojo.

Page 36: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 36 Diseño y análisis de filtros en procesamiento de audio

5.2. Caso práctico: diseño de un filtro desde cero con Audacity y

con Matlab

5.2.1. Caso 1. Filtrado de una señal de audio utilizando Audacity

Audacity es un programa libre y de código abierto que permite grabar y editar

sonidos. En esta asignatura lo utilizaremos en diferentes módulos.

Así, como ejemplo de aplicación abriremos Audacity y elegiremos una canción

que tengamos en formato .MP3, por ejemplo. Para ello, haced clic en Abrir

y buscad la canción que os apetezca editar. Una vez abierta, seleccionad con

el ratón el fragmento que queréis editar. Después, haced clic en Efecto y a Fil-

troFFT. Especificad el filtro que queréis probar y haced clic en Aplica.

Figura 19. Visualización de Audacity haciendo filtrado

5.2.2. Caso 2. Filtrado de una señal de audio utilizando Matlab

Matlab permite jugar con más parámetros que Audacity.

Para empezar, leeremos el fichero de sonido en formato .wav, que es el formato

de sonido que lee Matlab por defecto.

Page 37: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 37 Diseño y análisis de filtros en procesamiento de audio

[Y,Fs]=wavread(&#8216;file.wav&#8217;)

Si queremos comprobar que el sonido se ha codificado correctamente, lo te-

nemos que escuchar de la manera siguiente:

sound(Y,Fs)

Ahora diseñamos un filtro como queramos, utilizando la herramienta FDA-

tool. En este punto se trata que penséis qué especificaciones queréis. Por poner

un ejemplo, nosotros definiremos el filtro siguiente:

Figura 20. Filtrado con Matlab utilizando la FDAtool

A continuación, hacemos FileGenerate M-File y lo ponemos en la línea de ór-

denes.

Fs = 44100; % Sampling Frequency

Fpass = 4000; % Passband Frequency

Fstop = 6000; % Stopband Frequency

Apass = 1; % Passband Ripple (dB)

Astop = 80; % Stopband Attenuation (dB)

match = 'both'; % Band to match exactly

% Construct an FDESIGN object and call its ELLIP method

h = fdesign.lowpass(Fpass, Fstop, Apass, Astop, Fs);

Hd = design(h, 'ellip', 'MatchExactly', match);

Lectura de la línea decódigo

Y es el sonido codificado demanera digital, con frecuenciade muestreo Fs.El fichero file.wav puede sercualquiera que tengáis envuestro ordenador.

Page 38: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 38 Diseño y análisis de filtros en procesamiento de audio

Para utilizar este filtro lo que hacemos es:

X=filter(Hd,Y)

Escuchamos la nueva señal filtrada:

sound(X, 44100)

Page 39: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 39 Diseño y análisis de filtros en procesamiento de audio

Anexo

Filtro�de�Butterworth:�butter_ana_ex.m

%% Ejemplo de filtro paso bajo de Butterworth analógico

clear all;

fp=20e3;wp= 2*pi*fp;

Ap=0.5;

fs=90e3;ws= 2*pi*fs;

As=50;

% Cálculo de e2

e2 = 10^(0.1*Ap)-1;

% Orden del filtro

n = log(sqrt((10^(0.1*As)-1)/e2))/log(fs/fp);

n = ceil(n);

% Frecuencia de corte

wc = wp/(e2^(1/(2*n)));

% Parámetros para calcular los polos del filtro

k=1:n;

alpha = (2*k-1)*pi/(2*n);

% Determinación de los polos en el prototipo

pk = -sin(alpha) +j*cos(alpha);

[B,A]=zp2tf([],pk,1);

[B1,A1] = lp2lp(B,A,wc);

N=500;

wf=2*pi*100e3;

W=0:wf/N:wf;

H=freqs(B1,A1,W);

subplot(1,2,1); plot(W/(2*pi),20*log10(abs(H)));grid;

ylabel(['|H(w)|']);

xlabel(['Frecuencia (Hz)']);

subplot(1,2,2); plot(W/(2*pi),20*log10(abs(H)));grid;

Dirección web

Podéis consultar la páginade la Escuela de Ingenierosde la Universidad de Navarra(TECNUM)

Page 40: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 40 Diseño y análisis de filtros en procesamiento de audio

ylabel(['|H(w)|']);

xlabel(['Frecuencia (Hz)']);

axis([0 1.1*fp -Ap-0.1 0.1]);

print -depsc2 butter_ej

pause;close;

% Retardo de grupo

dW=W(2)-W(1);

phase=unwrap(angle(H));

dphase = -diff(phase)/dW;

plot(W(1:length(W)-1)/(2*pi),dphase);grid;

ylabel(['Retardo de grupo (s)']);

xlabel(['Frecuencia (Hz)']);

print -depsc2 butter_groupdelay_ej

pause;close;

Txebychef:�txeby_ana_ex.m

%% Ejemplo de filtro paso bajo de Txebyxev-I analógico

clear all;

fp=20e3;wp=2*pi*fp;

Ap=0.5;

fs=90e3;ws=2*pi*fs;

As=50;

% Cálculo de e2

e2 = 10^(0.1*Ap)-1;

% Orden del filtro

n = acosh(sqrt((10^(0.1*As)-1)/e2))/acosh(fs/fp);

n = ceil(n);

% Parámetros para calcular los polos y ceros del filtro

theta = (1/n)*asinh(1/sqrt(e2));

k=1:n;

alpha = (2*k-1)*pi/(2*n);

% Determinación de los polos en el prototipo

pk = -sinh(theta)*sin(alpha) +j*cosh(theta)*cos(alpha);

[B,A]=zp2tf([],pk,1);

Page 41: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 41 Diseño y análisis de filtros en procesamiento de audio

% Ajustar ganancia para que |H(0)|=1

if rem(n,2)==0

K=A(length(A))*(1/sqrt(1+e2));

else

K=A(length(A));

end

[B1,A1] = lp2lp(K*B,A,wp);

N=500;

wf=2*pi*100e3;

W=0:wf/N:wf;

H=freqs(B1,A1,W);

subplot(1,2,1); plot(W/(2*pi),20*log10(abs(H)));grid;

ylabel(['|H(w)|']);

xlabel(['Frecuencia (Hz)']);

subplot(1,2,2); plot(W/(2*pi),20*log10(abs(H)));grid;

ylabel(['|H(w)|']);

xlabel(['Frecuencia (Hz)']);

axis([0 1*fp -Ap-0.1 0.1]);

print -depsc2 cheb1_ej

pause;close;

%% Calcular el retardo de grupo

dW=W(2)-W(1);

phase=unwrap(angle(H));

dphase = -diff(phase)/dW;

plot(W(1:length(W)-1)/(2*pi),dphase);grid;

ylabel(['Retardo de grupo (s)']);

xlabel(['Frecuencia (Hz)']);

print -depsc2 cheb1_groupdelay_ej

pause;close;

plot(pk,'x');axis([-1.1 0 -1.1 1.1]);axis equal;

Código�de�la�función�de�Matlab�easyspec.m

function [s,f]=easyspec(x,fs)

%EASYSPEC Easy plot of spectrum estimate

% S=EASYSPEC(X) will return a spectrum vector of

% X. [S,F]=EASYSPEC(X,FS) will also return a frequency

% axis in F, while the sample frequency is given in FS.

% EASYSPEC(X) and EASYSPEC(X,FS), will plot the spectrum

Page 42: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 42 Diseño y análisis de filtros en procesamiento de audio

% and return the S vector in Matlab's "ans".

% Notes:

% 1. Spectrum values are in dB.

% 2. The frequency domain goes from DC to the Nyquist

% frequency. The "mirror part" of the spectrum is omitted.

% 3. The sample segments, from which the spectrum is

% calculated are picked by random. The function might

% return significantly different results each time it's

% called to if X isn't stationary.

% 4. EASYSPEC uses a hanning window and zero-pads by a

% factor of 4. The spectrum vector will look smooth.

% Eli Billauer, 17.1.01 (Explicitly not copyrighted).

% This function is released to the public domain; Any use is allowed.

if nargin==0

error('No input vector given');

end

if (nargin==1)

fs=2;

end

NFFT=16384; NWIN=NFFT/4;

LOOP=100;

win=hanning(NWIN)';

x=x(:)'*(17.127/NFFT/sqrt(LOOP));

n=length(x);

maxshift=n-NWIN;

if (n<2*NWIN)

error(['Input vector should be at least of length '...

num2str(2*NWIN)]);

end

s=zeros(1,NFFT);

for i=1:LOOP

zuz=floor(rand*maxshift);

s=s+abs(fft([win.*x(1+zuz:NWIN+zuz) zeros(1,NFFT-NWIN)])).^2;

end

s=10*log10(s(1:NFFT/2));

f=linspace(0,fs/2,NFFT/2);

Page 43: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar

CC-BY-NC-ND • PID_00188065 43 Diseño y análisis de filtros en procesamiento de audio

if nargout==0

hold off;

plot(f,s);

ylabel('Espectro');

xlabel('Frecuencia');

grid on; zoom on;

end

Page 44: Diseño y análisis de filtros en procesamiento de audio · pular el espectro de un sonido, como veremos en el módulo 6, de efectos de audio. Un objetivo de esta asignatura es ayudar