procesamiento de audio (modulo 2)

Upload: jmcastillo-lima

Post on 09-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    1/44

    Diseo y anlisis

    de filtros enprocesamiento de

    audioMarta Ruiz Costa-jussHelenca Duxans BarrobsPID_00188065

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    2/44

    CC-BY-NC-ND PID_00188065 Diseo y anlisis de filtros en procesamiento de audio

    Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario a una licencia deReconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa de Creative Commons. Podis copiarlos, distribuirlosy transmitirlos pblicamente siempre que citis el autor y la fuente (FUOC. Fundacin para la Universitat Oberta de Catalunya),no hagis 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

    http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    3/44

    CC-BY-NC-ND PID_00188065 Diseo y anlisis de filtros en procesamiento de audio

    ndice

    Introduccin............................................................................................... 5

    Objetivos....................................................................................................... 61. Concepto y tipos de filtros. Por qu se debe aprender

    cmo funciona un filtro?................................................................ 72. Conceptos bsicos para el diseo de filtros digitales............... 11

    2.1. Caracterizacin de un filtro: respuesta impulsional y funcin

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

    2.2. Especificacin de la entrada-salida de un filtro: ecuaciones en

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

    3. Filtros reales: plantilla de especificacin de un filtro............. 19

    4. Diseo de filtros digitales............................................................... 22

    4.1. Diseo de filtros FIR ................................................................... 22

    4.1.1. Mtodo de ventanas ...................................................... 22

    4.1.2. Mtodo de Parks-McClellan ........................................... 264.2. Diseo de filtros IIR .................................................................... 29

    4.2.1. Transformacin bilineal ................................................. 30

    4.2.2. Diseo de filtros analgicos: breve resumen ................. 31

    4.2.3. Transformacin bilineal y teora de filtros analgicos ... 33

    5. De la teora a la prctica................................................................. 35

    5.1. La eleccin de un filtro FIR o IIR. Cundo debemos utilizar

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

    5.2. Caso prctico: diseo de un filtro desde cero con Audacity y

    con Matlab .................................................................................. 365.2.1. Caso 1. Filtrado de una seal de audio utilizando

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

    5.2.2. Caso 2. Filtrado de una seal de audio utilizando

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

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

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    4/44

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    5/44

    CC-BY-NC-ND PID_00188065 5 Diseo y anlisis de filtros en procesamiento de audio

    Introduccin

    El objetivo principal de este mdulo es explicar la teora bsica de diseo defiltros digitales y analgicos. Concretamente, se pretende dar al estudiante

    la capacidad de aprender a utilizar cualquier softwarede diseo de filtros y

    que as pueda disear sus propios filtros dadas unas especificaciones concre-

    tas. Asimismo, se combina la teora y la prctica del diseo de filtros con el

    estudio de diferentes utilidades de los filtros digitales y analgicos en el rea

    de procesamiento de la seal de audio.

    El proceso de diseo de un filtro digital engloba bsicamente tres etapas: las

    especificacionesde las propiedades que queremos que verifique el filtro, la

    determinacin de los coeficientesde un sistema causal que se aproxime a

    las especificaciones queridas y, finalmente, la realizacin del sistema.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    6/44

    CC-BY-NC-ND PID_00188065 6 Diseo y anlisis de filtros en procesamiento de audio

    Objetivos

    Concretamente, al acabar de trabajar este mdulo, el estudiante debe:

    1. Conocer, saber disear e interpretar la respuesta impulsional que caracte-

    riza un filtro.

    2. Conocer los parmetros de diseo de un filtro: banda de paso y de atenua-

    cin, entre otros.

    3. Diferenciar entre filtrado analgico y digital.

    4. Conocer diferentes mtodos para disear los filtros digitales y analgicos.

    5. Tener la capacidad, dada una aplicacin que requiera filtrado digital, para

    elegir el tipo de filtros digitales (FIR/IIR) ms adecuado segn las especifi-

    caciones en mdulo y fase del sistema.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    7/44

    CC-BY-NC-ND PID_00188065 7 Diseo y anlisis de filtros en procesamiento de audio

    1. Concepto y tipos de filtros. Por qu se debeaprender cmo funciona un filtro?

    Un filtro, genricamente hablando, es un sistema que discrimina parte del

    objeto que procesa, segn uno o ms atributos. Por ejemplo, un filtro de aire

    deja pasar el aire pero impide el paso a las partculas de polvo presentes en el

    aire. Un filtro en procesamiento de seal es un concepto muy amplio, dado

    que puede ser cualquier sistema que trate la seal. Nos centraremos en los

    sistemas o filtros que, dada cualquier seal, permiten el paso de un conjunto

    determinado de frecuencias y atenan o eliminan el resto.

    Partiendo de la misma definicin de filtro, podemos definir los tipos clsicos

    de filtro siguientes:

    Un filtro paso bajopermite el paso de las frecuencias bajas y atena las

    frecuencias altas.

    Ejemplo

    Por ejemplo, una pared hace de filtro paso bajo cuando omos la msica que viene deotra habitacin. Dado que las frecuencias altas (es decir, los sonidos agudos) tienden areflejarse sobre cualquier superficie rgida (por ejemplo, las paredes), en nuestra habita-cin estas frecuencias llegan atenuadas y solo omos las frecuencias bajas o graves de lamsica original. Por lo tanto, la seal original (la msica) ha sido filtrada paso bajo.

    Un filtro paso altopermite el paso de frecuencias altas y atena las fre-

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

    una seal de audio vayan a unos altavoces para sonidos agudos.

    Un filtro paso bandapermite el paso de frecuencias de una determinada

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

    mos filtros paso banda en la transmisin y recepcin de la seal, para eli-

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

    que se ha de transmitir.

    Un filtro de banda eliminadaes 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 sea-les de audio y es capaz de mo-dificar la amplitud de las fre-cuencias, entre otras caracte-rsticas. En la prctica, se utili-za para adaptar el sonido a lasnecesidades del oyente.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    8/44

    CC-BY-NC-ND PID_00188065 8 Diseo y anlisis de filtros en procesamiento de audio

    Representacin frecuencial de algunos filtros ideales

    Figura 1. Representacin frecuencial de los filtros ideales siguientes: a)paso bajo; b)paso alto; c)debanda eliminada; d)paso banda. Los filtros son simtricos respecto al eje de ordenadas.

    La figura 1 muestra el mdulo 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 funcin lineal dela frecuencia. Por lo tanto, la seal filtrada no tiene distorsin de fase.

    El concepto de fase lineal y no lineal aparece explicado con detalle en la pgina 428 ysiguientes del libro Seales y sistemas, de A. V. Oppenheim y A. S. Willsky.

    Sin ser conscientes, en el da a da, constantemente topamos con filtros acs-

    ticos, tanto si son analgicos(tratan seales de variable continua, como por

    ejemplo t) como digitales(tratan seales de variable discreta, como por ejem-

    plo no, dicho de otro modo, listas de nmeros ordenados). Por ejemplo, cuan-

    do hablamos por telfono, las frecuencias de la seal que se transmite se filtran

    a 4 kHz (si se trata de una lnea analgica, el filtrado es analgico), y esto es

    una limitacin muy fuerte comparada con lo que el odo humano es capaz de

    or (hasta 20 kHz). Por este motivo, escuchar un CD de msica por la lnea

    telefnica no es tan agradable como escucharlo directamente. La grabacindel CD de msica se filtra a 22 kHz para asegurar que se mantiene todo lo que

    el odo humano puede or.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    9/44

    CC-BY-NC-ND PID_00188065 9 Diseo y anlisis de filtros en procesamiento de audio

    Los msicos electrnicos casi siempre utilizan filtros digitales en cada pieza de

    msica que crean; por ejemplo, para hacer reverberacin digital.

    La reverberacin es solo un pequeo 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 mdulo 6, de efectos deaudio. Un objetivo de esta asignatura es ayudar a los estudiantes a tener una

    idea sobre las herramientas necesarias para disear filtros personalizados.

    Existe bastante software disponible para el diseo de filtros digitales (en la

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

    es esencial el conocimiento terico de cmo funcionan los filtros digitales.

    Incluso en aplicaciones estndar, el uso eficaz de un programa de diseo de

    filtros requiere una comprensin de los parmetros de diseo, que al mismo

    tiempo requiere una cierta comprensin de la teora 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 filtramos1con un paso bajo a 2 kHz, tenemos las seales siguientes:

    Sonido de canariofiltrado

    Figura 3. Sonido de canario filtrado

    Reverberacin

    El concepto de reverberacinse estudia en el mdulo de in-troduccin a la acstica. Breve-mente, la reverberacin es elfenmeno acstico por el cual

    un receptor (oyente) recibe almismo tiempo el sonido direc-to que emite un emisor (fuen-te acstica) y las reflexiones deeste sonido producidas por lasala donde estn el emisor y elreceptor, lo que mejora la cali-dad del sonido y crea una sen-sacin de calidez en el oyente.

    (1)Para pasar de una figura a otra,

    utilizamos la transformada discretade Fourier.

    http://localhost/var/www/apps/conversion/img/canari.mp3http://localhost/var/www/apps/conversion/img/canari2.mp3http://localhost/var/www/apps/conversion/img/canari2.mp3http://localhost/var/www/apps/conversion/img/canari.mp3
  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    10/44

    CC-BY-NC-ND PID_00188065 10 Diseo y anlisis de filtros en procesamiento de audio

    Observad que ahora el sonido del canario se ha suavizado.

    Como hemos visto en el apartado Conversin A/D y D/A: entorno analgico y entornodigital del mdulo 1, en la naturaleza encontramos seales analgicas, 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 conversin analgico-digital(A/D). A conti-nuacin, una vez se ha manipulado la seal digital, por ejemplo filtrndola, esta seal se

    debe volver a convertir en seal analgica este paso se denomina conversin digital-anal-gico(D/A). Por lo tanto, podemos decir que hay muchos filtros digitales que trabajan enun entorno analgico convirtiendo las seales analgicas en digitales y, despus de lamanipulacin con el ordenador, volvindolas a convertir en analgicas.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    11/44

    CC-BY-NC-ND PID_00188065 11 Diseo y anlisis de filtros en procesamiento de audio

    2. Conceptos bsicos para el diseo de filtros digitales

    Un filtro digital clsicose puede definir como un sistema que modifica unaseal digital de manera que deja pasar un determinado intervalo de frecuen-

    cias y atena otras con el objetivo de obtener una salida con unas caracters-

    ticas determinadas. Los filtros clsicos trabajan en el espacio frecuencial y

    las plantillas se disean en este espacio.

    Nota

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

    Concretamente, estudiaremos los filtros digitales realizables. Por esta razn,

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

    riancia en el tiempo, la causalidad y la estabilidad.

    2.1. Caracterizacin de un filtro: respuesta impulsional y

    funcin de transferencia

    Como hemos dicho (y como hemos visto en las asignaturas de Seales 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 ms (es

    decir, filtros digitales), la salida es la suma de convolucin entre la entrada

    y la respuesta impulsional .

    Esta relacin la vemos representada en la ecuacin y figura siguientes:

    Ved tambin

    Hemos visto la definicin desistema en el apartado Defini-cin de sistema del mdulo"Conceptos de seales y siste-mas".

    Lectura recomendada

    Encontraris ms informa-cin sobre la suma de convo-lucin en las pginas 77 a 90del libro Seales y sistemas,de A. V. Oppenheim y A. S.Willsky.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    12/44

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    13/44

    CC-BY-NC-ND PID_00188065 13 Diseo y anlisis de filtros en procesamiento de audio

    La respuesta en amplitud de un filtro se define como el mdulo 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 nmero de coeficientes que tiene un filtro y

    coincide con el mximo retardo (en trminos de muestras) que se utiliza

    o de la seal de entrada o de salida anteriores para calcular .

    Por otra parte, el orden de un filtro se puede definir como el orden dela respuesta impulsional. Y, a la vez, el orden de un polinomio se define

    como el valor ms alto del exponente del mismo polinomio.

    En el caso de una funcin racional, el orden se define como el mximo

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

    As, por ejemplo, un filtro definido por la ecuacin 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 atenuacin, por ejemplo, ms pe-

    quea de 3 dB, o ganancia (este valor se toma por conven-

    cin y puede variar dependiendo de las especificaciones del sistema). Y la

    banda atenuada es la complementaria. Por extensin, las frecuencias de

    paso y de atenuacin definen el rango de banda de paso y atenuada. En el

    caso de un filtro ideal, la frecuencia de paso y atenuacin 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 logartmica de potencia en relacincon una potencia patrn. Bsicamente, dicho de otro modo, es una unidad no dimen-

    Nota

    La fno va en hercios. Recordadque es la frecuencia analgicanormalizada y se puede decirque ).

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    14/44

    CC-BY-NC-ND PID_00188065 14 Diseo y anlisis de filtros en procesamiento de audio

    sional que representa la relacin entre una seal de inters y una seal de referencia. UndB se basa en un logaritmo de base 10 del cociente entre las dos magnitudes.

    La frecuencia de cortede un filtro es la frecuencia a partir de la cual la seal de salidase atena significativamente. Normalmente, se considera que la seal de entrada se debeatenuar un valor de 3 dB (o 3 dB si hablbamos de ganancia). La relacin entre ganancia

    y atenuacin viene dada por .

    La respuesta frecuencial se caracteriza por su mdulo y fase :

    . En un caso genrico, si tenemos la seal en frecuencia de

    entrada y el filtro anterior, entonces el mdulo y la fase de la seal de

    salida ( ) son los siguientes:

    El mdulo determina la ganancia del filtro (recordad la definicin 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 evala la seal de salida respecto al de entrada en muestras

    para cada frecuencia. Por lo tanto, se evala el retardo global que experimentauna seal. 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 segn la frecuencia, se produce una distorsin en el

    espectro de la seal.

    Si el mdulo es constante( ) y la fase es lineal en frecuencia( ), tene-

    mos la relacin entrada-salida siguiente:

    Al mismo tiempo vemos que la seal de salida en el tiempo es la seal de

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

    En estas condiciones especficas, se verifica que la seal de entrada no cambia

    de forma.

    Ausencia de cambio de forma

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

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    15/44

    CC-BY-NC-ND PID_00188065 15 Diseo y anlisis de filtros en procesamiento de audio

    Ejemplo

    Veamos un caso particular. Si tomamos la seal discreta de entrada y la

    pasamos 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 seal 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,despus de aplicar el filtro (azul). La salida queda ligeramente atenuada y retardada. El eje Xson muestras y el eje Y,amplitud.

    Esta propiedad de mantener la seal de entrada sin distorsin (sin que la se-

    al cambie de forma) nos puede interesar mucho en la prctica. Ahora bien,

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

    sional real y funcin de transferencia racional tenga fase lineal, la respues-

    ta impulsional debe ser simtrica o antisimtrica (respecto a su muestra

    central) y finita.

    2.2. Especificacin de la entrada-salida de un filtro: ecuaciones

    en diferencias finitas

    Referencia bibliogrfica

    Podis ver la demostracinde esto en:

    J. G. Proakis; D. G. Manola-kis(2007). Tratamiento digi-tal de seales. Madrid: Pear-

    son Prentice Hall.

    Una manera directa para describir la relacin entrada-salida2de un filtro causal

    es mediante una ecuacin en diferencias finitas.

    (2)Para ver grficamente la relacin

    entrada-salida de un filtro causal,podis ver la figura 7 en este mis-mo apartado.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    16/44

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    17/44

    CC-BY-NC-ND PID_00188065 17 Diseo y anlisis de filtros en procesamiento de audio

    donde son los ceros (porque cuando , la funcin transferencia valecero) y son los polos (porque cuando , la funcin transferencia es

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

    y los ceros, con un crculo, 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 funcin de transferencia para que seacausal y estable

    Analicemos qu condiciones debe verificar una funcin de transferencia para que seacausal y estable.

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

    La causalidad se garantiza si, y solo si, pertenece a la regin de convergencia y

    H(z), expresada como una razn 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 mdulo del polo sea ms pequeoque 1.

    La definicin de un filtro en ecuacin en diferencias finitas nos permite hacer

    claramente una distincin 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 seal de entrada. La respuesta impul-

    sional del filtro tiene un nmero 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 nmero infinito de muestras diferentes de cero, y reciben el nombre de

    Ved tambin

    En cuanto a la transformada Z,podis ver el apartado Trans-formacin del dominio tempo-ral al dominio frecuencial delmdulo 1.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    18/44

    CC-BY-NC-ND PID_00188065 18 Diseo y anlisis de filtros en procesamiento de audio

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

    se sabe porque los coeficientes aky bkson diferentes de cero.

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

    este mdulo, el ordende un filtro se define como el mximo entreMy 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 ecuacin de entrada-salida siguiente:

    donde es la seal discreta de entrada e es la seal discreta de salida.

    La seal de salida es el resultado de hacer la convolucin entre la seal de entrada y larespuesta impulsional y se puede expresar como sigue:

    Si aplicamos la transformada Z de la expresin anterior, obtendremos la funcin 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 nmero finito de muestras diferentes de cero; por lo tanto, podemos afirmarque se trata de un filtro FIR.

    Este filtro se puede programar fcilmente en Matlab u Octave de la manera siguiente:

    1.Definimos la seal de entrada: .

    2.Definimos los coeficientes de la respuesta impulsional: .

    3.Inicializamos la suma de convolucin: .

    4.Definimos el orden del filtro: .

    5.Definimos la longitud de la seal de entrada: .

    6.Escribimos el cdigo de la suma de convolucin:

    for n = 1:N

    y(n) = h*[x(n);v]; % producto escalar de dos vectores

    : vector fila*vector columna

    v=[x(n)];

    Obtenemos la seal de salida: .

    Orden de un filtro

    El orden de un filtro determinala complejidad de implemen-tacin del propio filtro. Cuantomayor es el orden, ms recur-sos computacionales se necesi-tan.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    19/44

    CC-BY-NC-ND PID_00188065 19 Diseo y anlisis de filtros en procesamiento de audio

    3. Filtros reales: plantilla de especificacin de unfiltro

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

    o no realizablespuesto que la respuesta impulsional es no causal. A la hora

    de especificar las caractersticas, a un filtro realo realizablese permite una

    relajacin de las especificaciones tericas requeridas (esto lo denominamos

    margen de toleranciao relajacin). Por ello, en la prctica, antes de disear un

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

    bsicamente determina cmo queremos que sea el filtro y qu margen de to-

    lerancia o relajacin4aceptamos.

    El filtro realse disea de modo que la funcin de transferencia corresponda

    a la siguiente ecuacin:

    La figura 8 muestra una plantilla de especificacin correspondiente a la fun-

    cin realH(f) y la correspondiente atenuacin de un filtro paso bajo:

    Plantilla de especificacin correspondiente al mdulo (izquierda) y la atenuacin (derecha) delfiltro paso bajo

    Figura 8. Plantilla de especificacin correspondiente al mdulo (izquierda) y la atenuacin (derecha) del filtro paso bajo

    Nomenclatura

    : frecuencia de paso (hasta esta frecuencia el filtro deja pasar la seal).

    : frecuencia de atenuacin (a partir de esta frecuencia el filtro atena la seal).

    : tolerancia de paso en mdulo, que es la relajacin en mdulo que permitimosen la banda de paso.

    : tolerancia de atenuacin en mdulo, que es la relajacin en mdulo que permi-timos en la banda de atenuacin.

    (3)Dentro de las especificaciones

    encontramos frecuencia de corte yfrecuencia de paso, entre otras.

    (4)Por relajacin de las especifica-

    ciones tericas requeridas entende-mos el hecho de permitir un mar-gen de variacin en las especifica-ciones.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    20/44

    CC-BY-NC-ND PID_00188065 20 Diseo y anlisis de filtros en procesamiento de audio

    : tolerancia de paso en atenuacin, que es la relajacin en atenuacinque permitimos en la banda de paso.

    : tolerancia de atenuacin en atenuacin, que es la relajacin en atenuacin quepermitimos en la banda de atenuacin.

    Podemos definir la atenuacin a partir de la funcin de transferencia:

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

    Una tolerancia en torno al valor del mdulo ( ).

    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 ms restrictivos seamos a la hora de definir las tolerancias, ms costoso

    resultar implementar el filtro en cuestin.

    Generalmente, el valor mximo de la funcinH(f) es 1. A sabiendas de la re-

    lacin entre la atenuacin y la funcin de transferencia, encontraremos la re-

    lacin entre las especificaciones de la atenuacin y las especificaciones de la

    funcin de transferencia. As, si tomamos , obtenemos que:

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    21/44

    CC-BY-NC-ND PID_00188065 21 Diseo y anlisis de filtros en procesamiento de audio

    Un filtro es un sistema lineale 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 disear un filtro, lo primero que necesitamos es la plantilla de

    especificaciones, que bsicamente determina cmo queremos que sea

    el filtro: paso bajo, paso alto y la frecuencia de corte y de atenuacin,

    entre otros parmetros.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    22/44

    CC-BY-NC-ND PID_00188065 22 Diseo y anlisis de filtros en procesamiento de audio

    4. Diseo de filtros digitales

    En este apartado nos centraremos en el diseo de filtros digitales, que bsica-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 diseo de filtros analgicos que se necesitan

    para el diseo de filtros IIR.

    4.1. Diseo de filtros FIR

    Ya hemos visto que un filtro FIR realizable, adems de ser lineal, invariante,

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

    de longitud finitaL, 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 simtrica o asimtrica.

    La estructura directa genrica de un filtro FIR (conocida tambin como estruc-

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

    usa muestras retardadas de la seal de entrada:

    Estructura directa de un filtro FIR de orden M

    Figura 9. Estructura directa de un filtro FIR de orden M. Los tringulos se corresponden con multiplicadores y los

    elementos z-1, con retardadores de una muestra. Observad que .

    Existen diferentes mtodos para implementar filtros FIR. En esta asignaturaveremos con detalle el mtodo de ventanas y el mtodo de Parks-McClellan.

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

    frecuentemente en la prctica (de hecho, es el tipo de filtro que logra unas

    determinadas especificaciones con un orden ms pequeo). Los dos estn im-

    plementados en Matlab y Octave y veremos su utilizacin.

    4.1.1. Mtodo 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 impulsionalideal que, en el tiempo, es una funcin sinc (contiene infinitas muestras) y

    la multiplicamos por una funcin que tiene un nmero limitado de muestras

    (5)Recordad que hemos dicho que

    un filtro de fase lineal significa queno distorsiona la forma de la ondade la seal original.

    Lectura sugerida

    Encontraris explicado elconcepto de simetra en lapgina 13 del libro Seales ysistemas, de A. V. Oppenheimy A. S. Willsky.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    23/44

    CC-BY-NC-ND PID_00188065 23 Diseo y anlisis de filtros en procesamiento de audio

    diferentes de cero, obtendremos una respuesta impulsional finita centrada en

    su origen para garantizar la simetra (observad que, para hacer el filtro causal,

    hemos de desplazar la ventana):

    En esta ecuacin, es la respuesta impulsional del filtro ideal y es la

    funcin que acta de ventana (en ingls, window). Fijmonos en que en el

    dominio transformado esta multiplicacin temporal es una convolucin.

    Otros tipos de ventanas que se utilizan en este mtodo para limitar la funcin

    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. Podis ver cmo 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 ms amplia, pero la atenuacin en la

    banda eliminada es ms pequea. Tal como se ve en la figura 10, la amplitud

    del lbulo principal es grande y la diferencia entre lbulo principal y secun-

    dario, pequea. Este comportamiento es totalmente opuesto en una ventana

    triangular. As, pues, segn las especificaciones de diseo, nos decidiremos por

    una ventana en concreto.

    Ventanas simtricas

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

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    24/44

    CC-BY-NC-ND PID_00188065 24 Diseo y anlisis de filtros en procesamiento de audio

    Comprobad los diferentes comportamientos de las ventanas siguiendo el

    ejemplo siguiente.

    As, a continuacin ponemos un ejemplo concreto para ver cmo funciona

    este mtodo. Utilizaremos la ventana rectangular, que es la ms simple de las

    ventanas, y una ventana ms elaborada, la de Hanning.

    Ejemplo

    En este ejemplo mostramos el filtrado (o, en este caso, el denominado enventanado) deuna seal 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 % nmero de muestras de la fft

    m=128 % nmero de muestras de la ventana

    h = hanning(m);

    sr = ceros(size(1:n));

    sh = ceros(size(1:n));

    f = pi / 3; % frecuencia de la seal sinusoidal

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

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

    plot(sr);

    plot(sh);

    A continuacin mostramos el enventanado de la seal sinusoidal con un filtro de ventanarectangular y ventana de Hanning en el dominio temporal, respectivamente, en trminosde amplitud y muestras temporales:

    Figura 11. Enventanado en el dominio temporal de una seal sinusoidal con una ventana rectangular y una deHanning, respectivamente. La figura muestra amplitud en trminos 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 continuacin mostramos el enventanado de la seal sinusoidal con un filtro de ventanarectangular y ventana de Hanning en el dominio frecuencial, respectivamente, en dB ymuestras frecuenciales:

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    25/44

    CC-BY-NC-ND PID_00188065 25 Diseo y anlisis de filtros en procesamiento de audio

    Figura 12. Enventanado en el dominio frecuencial de una seal sinusoidal con una ventana rectangular y una deHanning, respectivamente. La figura muestra dB en trminos de muestras frecuenciales.

    A partir de estas imgenes, 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 atenuacines mayor de 3 dB respecto a la atenuacin mnima (la de la frecuencia central).

    Finalmente, la amplitud del lbulo principal y el mximo pico de los lbulos lateralespermite determinar la resolucin y sensibilidad de un filtro, respectivamente. Denomi-namos lbulosa los picos del filtro. El lbulo principal es el pico del filtro donde la

    seal tiene menos atenuacin. Los lbulos laterales son todos los dems picos del filtrodonde la seal tiene ms atenuacin.

    El hecho de que la anchura del lbulo principal sea ms pequea en el caso de la ventanarectangular que en la de Hanning quiere decir que hay una mayor resolucin. Es decir,una discriminacin ms grande entre la frecuencia central y las frecuencias ms cercanasa la central. Por otro lado, el hecho de que la relacin lbulo principal-lbulo lateral seams grande en el caso de la ventana de Hanning que en la rectangular provoca que estaventana tenga ms sensibilidad. Esto permite una mayor atenuacin de las frecuenciasno deseadas (que estn a una distancia mayor de la que ocupa el lbulo principal).

    Con el mtodo de ventanas tenemos una manera sencilla y entendible de ela-

    borar filtros. Ahora bien, el principal inconveniente del mtodo es que se ob-

    serva un comportamiento oscilatorio entre la banda de paso y la banda ate-nuada y no permite controlar la separacin entre las dos bandas.

    Ejemplo

    La siguiente figura muestra grficamente la ecuacin de construccin de un filtro por elmtodo de ventanas (utilizando una ventana rectangular):

    Referencia bibliogrfica

    Julin Quiroga Seplveda

    (2009)Diseo de filtros FIR:Mtodo de ventanas. Procesa-miento digital de seales. Pon-tificia Universidad Javieriana.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    26/44

    CC-BY-NC-ND PID_00188065 26 Diseo y anlisis de filtros en procesamiento de audio

    Figura 13. Construccin de un filtro FIR utilizando el mtodo de ventanas

    4.1.2. Mtodo de Parks-McClellan

    El algoritmo de Parks-McClellan se basa en aproximaciones polinmicas. Este

    mtodo presenta un comportamiento de rizado constante6en las bandas de

    paso y atenuada.

    No entraremos en detalle en cmo se realizan los clculos para obtener el filtro,

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

    (6)Se denomina rizado cuando la

    forma de onda tiene picos y valles.Rizado constante quiere decir quelos picos y los valles siempre tienenel mismo valor.

    Referencia bibliogrfica

    Podris profundizar sobre laFDAtool de Matlab en la p-gina web de Mathworks.

    FDAtool de Matlab

    Esta herramienta proporciona una interfaz para disear y analizar filtros rpidamente. LaFDAtool permite disear filtros FIR e IIR con determinadas especificaciones. Asimismo,la herramienta permite analizar las caractersticas de un filtro en concreto.

    Para utilizar la FDAtool tenis que entrar en Matlab y escribir fdatoolen la lnea de rdeneses decir, a continuacin del signo (>>). Despus os aparecer la ventana siguiente:

    Lectura sugerida

    Leed el artculo Compara-cin de filtros FIR de fase li-neal, por Mtodo ptimo yde Ventanas.

    http://www.mathworks.com/products/signal/demos.html?file=/products/demos/shipping/signal/introfdatooldemo.htmlhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://ewh.ieee.org/sb/argentina/comahue/ed2/trabajos/rate06_05.pdfhttp://www.mathworks.com/products/signal/demos.html?file=/products/demos/shipping/signal/introfdatooldemo.html
  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    27/44

    CC-BY-NC-ND PID_00188065 27 Diseo y anlisis de filtros en procesamiento de audio

    Figura 14. Herramienta FDAtool de Matlab

    Diseamos un filtro paso bajo FIR con las especificaciones siguientes:

    Mtodo: Parks-McClellan (observad que Matlab lo denominaLeast-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 atenuacin 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:

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    28/44

    CC-BY-NC-ND PID_00188065 28 Diseo y anlisis de filtros en procesamiento de audio

    Figura 15. Pantalla de especificaciones

    Consideris que es el filtro que queremos?

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

    Nuestras especificaciones son muy exigentes; por lo tanto, necesitamos rdenes ms al-tos:

    Figura 16. Filtro creado

    Actividad

    Con las mismas especificaciones que en el ejemplo anterior, comprobad qu orden nece-sitis si en lugar de utilizar el mtodo de Parks-McClellan (especificacin 1 del ejemplo)utilizis el mtodo de ventanas con una ventana de Cauer.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    29/44

    CC-BY-NC-ND PID_00188065 29 Diseo y anlisis de filtros en procesamiento de audio

    Un filtro FIRtiene una respuesta impulsional de longitud finita. Asi-

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

    plan las condiciones de simetra. El hecho de que la fase sea linealim-

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

    caracterstica de no-distorsin suele ser el principal motivo para utilizarfiltros FIR.

    4.2. Diseo de filtros IIR

    Los filtros IIRse diferencian de los filtros FIR en que tienen una respuesta

    impulsional infinita y la seal 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 simetra.

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

    especificaciones de atenuacin 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

    .

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    30/44

    CC-BY-NC-ND PID_00188065 30 Diseo y anlisis de filtros en procesamiento de audio

    En el diseo de filtros IIR se determinan los coeficientes y de manera

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

    teora especfica para disear filtros digitales IIR, sino que se utiliza la teora de

    filtros analgicos. El motivo principal por el que se utiliza la teora de filtros

    analgicos en digital es porque la teora de filtros analgicos est muy desa-

    rrollada, estudiada y experimentada. Por lo tanto, vale la pena aprovecharlapara filtros digitales.

    La teora de filtros analgicos para el diseo de filtros digitales se basa en rea-

    lizar una transformacin de variable. Hay diferentes procedimientos para ha-

    cer esta transformacin. En estos apuntes revisaremos el mtodo por transfor-

    macin bilineal. Una vez efectuada la transformacin bilineal, ya se pueden

    utilizar las aproximaciones analgicas clsicas, como Butterworth, Txebyxev,

    Inverso de Txebyxev o Cauer.

    En resumen, para disear un filtro IIR digital lo que hacemos es disearlo en

    analgico y transformar este filtro de analgico a digital.

    4.2.1. Transformacin bilineal

    Ved tambin

    Veremos brevemente la teo-ra de los filtros analgicos enel apartado Diseo de filtrosanalgicos: breve resumen deeste mismo mdulo.

    La transformacin se aplica a la funcin de transferencia de un filtro analgico

    y el resultado que se obtiene es la funcin de transferencia de un filtro

    discretoH(z).

    Lectura recomendada

    Encontraris informacin sobre la transformada de Laplace en la pgina 654 y siguientesdel libro Seales y sistemas, de A. V. Oppenheim y A. S. Willsky.

    Recordad que hemos visto la transformada Z en el apartado Transformacin del dominiotemporal al dominio frecuencial del mdulo 1.

    Esta transformacin ha de verificar las siguientes condiciones:

    1.Garantiza una relacin 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 tambin

    Recordad el apartado Conver-sin 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 transformacin bilineal cumple estos requisitos:

    Nota

    Los filtros analgicos son esta-bles si, y solo si, los polos de lafuncin de transferencia tienenparte real negativa, como vere-mos a la prxima seccin.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    31/44

    CC-BY-NC-ND PID_00188065 31 Diseo y anlisis de filtros en procesamiento de audio

    Ejemplo

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

    De aqu podemos extraer que la pulsacin del dominio analgico ( ) queda relacionadacon la pulsacin ( ) del dominio discreto por la expresin siguiente:

    Esta relacin se utiliza para adaptar las especificaciones digitales, tal como veremos acontinuacin.

    Actividad

    Comprobad que un punto cualquiera con mdulo r

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    32/44

    CC-BY-NC-ND PID_00188065 32 Diseo y anlisis de filtros en procesamiento de audio

    Si hacemos la transformada inversa de , necesitamos utilizar la transfor-mada de Laplace siguiente:

    Veamos cules son los requisitos para que el filtro analgico sea causal y es-

    table:

    La causalidad se verifica porque los valores sn 0 debido a (la fun-

    cin escaln 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 . Adems, 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 continuacin veremos algunos parmetros que son tiles a la hora de disear

    un filtro analgico:

    Constante de selectividad (es decir, el cociente, la frecuencia de atenuacin

    y la frecuencia de paso).

    Relacin atenuacin y funcin frecuencial (ahora utilizaremosFcomo fre-

    cuencia analgica):

    Las plantillas de atenuacin de los filtros se definen exactamente como en el

    apartado 1.3. La figura siguiente muestra unos ejemplos de los filtros analgi-

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

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    33/44

    CC-BY-NC-ND PID_00188065 33 Diseo y anlisis de filtros en procesamiento de audio

    Figura 18. Funcin de transferencia de diferentes tipos de filtros analgicos paso bajo: Butterworth, Txebyxev, inverso deTxebyxev y Cauer

    Las respuestas ms comunes de filtros analgicos paso bajo son las que se

    muestran en la figura. Butterworth asegura una respuesta mximamente plana

    en la banda de paso y una tasa adecuada de atenuacin 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 atenuacin mucho ms pronunciada, pero la am-

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

    de audio.

    El filtro de tipo elptico o de Cauer es un filtro complejo pero que resulta muyadecuado en la prctica porque, dadas unas especificaciones, las cumple con

    el mnimo orden posible. Asimismo, si queremos una respuesta plana en la

    banda de paso, se puede obtener aumentando ligeramente el orden mnimo.

    Ahora bien, si pensamos en aplicar filtros analgicos dentro de entornos di-

    gitales, se debe tener en cuenta que la transformacin bilineal provoca una

    fuerte distorsin de fase.

    4.2.3. Transformacin bilineal y teora de filtros analgicos

    Para hacer el diseo de un filtro IIR seguimos el procedimiento siguiente:

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    34/44

    CC-BY-NC-ND PID_00188065 34 Diseo y anlisis de filtros en procesamiento de audio

    Debemos obtener las especificaciones del filtro analgico a partir de las

    especificaciones del filtro digital IIR.

    Los lmites de atenuacin ay pse mantienen.

    Transformamos los lmites frecuenciales y en y mediante

    la relacin que hemos obtenido en (ec. 3).

    A partir de las especificaciones analgicas, diseamos el filtro analgico

    utilizando alguna tcnica analgica (es decir, Butterworth, Txebyxev, in-

    verso de Txebyxev o Cauer).

    Teniendo y aplicando la transformacin bilineal, obtenemos la fun-

    cin de transferencia del filtro digital IIRH(z):

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

    gital despus de aplicar la transformacin bilineal sera el siguiente:

    Ejemplo

    Extrados de Internet, encontramos ejemplos de filtros analgicos hechos en Matlab co-mo los que encontraris en el anexo:

    butter_ana_ex.m

    txeby_ana_ex.m

    Un filtro IIRpresenta 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 transformacin bilineal inter-namente, de modo que el di-seador no la tiene que hacerexplcitamente.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    35/44

    CC-BY-NC-ND PID_00188065 35 Diseo y anlisis de filtros en procesamiento de audio

    5. De la teora a la prctica

    En este apartado desarrollaremos un par de conceptos prcticos de filtros. Porun lado, veremos criterios para elegir un filtro FIR o un IIR. Por otro lado,

    veremos cmo hemos de disear un filtro desde cero.

    5.1. La eleccin de un filtro FIR o IIR. Cundo debemos utilizar

    uno u otro?

    Despus de ver los principales aspectos tericos de los filtros, ahora nos cen-

    traremos en aspectos ms prcticos.

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

    pueden tener fase lineal, lo que permite mantener la forma de la seal. Ahora

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

    lineal o mantener la seal de onda.

    Asimismo, los filtros FIR son siempre estables.

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

    coste computacional).

    En cuanto a los inconvenientesprincipales, 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 prctica, 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 odo humano, genricamen-te hablando, no es extrema-mente sensible a la distorsinde fase. En cambio, la fase esms importante en imagen pa-ra la sensibilidad del ojo.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    36/44

    CC-BY-NC-ND PID_00188065 36 Diseo y anlisis de filtros en procesamiento de audio

    5.2. Caso prctico: diseo de un filtro desde cero con Audacity y

    con Matlab

    5.2.1. Caso 1. Filtrado de una seal de audio utilizando Audacity

    Audacity es un programa libre y de cdigo abierto que permite grabar y editar

    sonidos. En esta asignatura lo utilizaremos en diferentes mdulos.

    As, como ejemplo de aplicacin abriremos Audacity y elegiremos una cancin

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

    y buscad la cancin que os apetezca editar. Una vez abierta, seleccionad con

    el ratn el fragmento que queris editar. Despus, haced clic enEfectoy aFil-

    troFFT. Especificad el filtro que queris probar y haced clic enAplica.

    Figura 19. Visualizacin de Audacity haciendo filtrado

    5.2.2. Caso 2. Filtrado de una seal de audio utilizando Matlab

    Matlab permite jugar con ms parmetros que Audacity.

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

    de sonido que lee Matlab por defecto.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    37/44

    CC-BY-NC-ND PID_00188065 37 Diseo y anlisis de filtros en procesamiento de audio

    [Y,Fs]=wavread(file.wav)

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

    nemos que escuchar de la manera siguiente:

    sound(Y,Fs)

    Ahora diseamos un filtro como queramos, utilizando la herramienta FDA-

    tool. En este punto se trata que pensis qu especificaciones queris. Por poner

    un ejemplo, nosotros definiremos el filtro siguiente:

    Figura 20. Filtrado con Matlab utilizando la FDAtool

    A continuacin, hacemosFileGenerate M-Filey lo ponemos en la lnea 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 lnea decdigo

    Yes el sonido codificado demanera digital, con frecuenciade muestreo Fs.

    El fichero file.wavpuede ser

    cualquiera que tengis envuestro ordenador.

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    38/44

    CC-BY-NC-ND PID_00188065 38 Diseo y anlisis de filtros en procesamiento de audio

    Para utilizar este filtro lo que hacemos es:

    X=filter(Hd,Y)

    Escuchamos la nueva seal filtrada:

    sound(X, 44100)

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    39/44

    CC-BY-NC-ND PID_00188065 39 Diseo y anlisis de filtros en procesamiento de audio

    Anexo

    Filtro de Butterworth: butter_ana_ex.m

    %% Ejemplo de filtro paso bajo de Butterworth analgico

    clear all;

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

    Ap=0.5;

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

    As=50;

    % Clculo 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)));

    % Parmetros para calcular los polos del filtro

    k=1:n;

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

    % Determinacin 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;

    Direccin web

    Podis consultar la pginade la Escuela de Ingenierosde la Universidad de Navarra(TECNUM)

    http://www.tecnun.es/asignaturas/tratamiento%20digital/tds5.htmlhttp://www.tecnun.es/asignaturas/tratamiento%20digital/tds5.html
  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    40/44

    CC-BY-NC-ND PID_00188065 40 Diseo y anlisis 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 analgico

    clear all;

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

    Ap=0.5;

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

    As=50;

    % Clculo 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);

    % Parmetros 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);

    % Determinacin de los polos en el prototipo

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

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

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    41/44

    CC-BY-NC-ND PID_00188065 41 Diseo y anlisis 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;

    Cdigo de la funcin 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

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    42/44

    CC-BY-NC-ND PID_00188065 42 Diseo y anlisis 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

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    43/44

    CC-BY-NC-ND PID_00188065 43 Diseo y anlisis de filtros en procesamiento de audio

    if nargout==0

    hold off;

    plot(f,s);

    ylabel('Espectro');

    xlabel('Frecuencia');

    grid on; zoom on;

    end

  • 7/22/2019 Procesamiento de Audio (Modulo 2)

    44/44