Anda di halaman 1dari 157

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

MEMORIA DESCRIPTIVA

Memoria Descriptiva

Pg. - 11

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Introduccin al Ruido La valoracin que la sociedad ha otorgado a la acstica a lo largo de los siglos ha ido evolucionando, as ha pasado de ser una disciplina presente a ser relegada a un segundo plano. Actualmente, la mayor preocupacin que el mundo ha desarrollado en relacin al problema del ruido y al medio ambiente, ha resucitado la importancia que la acstica merece. Este resurgir ha hecho necesario fomentar la formacin sobre acstica. La acstica, desde los tiempos en que el franciscano padre Mersenne midi la velocidad del sonido (sin disponer de reloj por su voto de pobreza) ha tenido un gran desarrollo paralelo al de tantas otras ciencias fsicas. Pareca que una vez establecida su naturaleza ondulatoria e introducido el anlisis de Fourier poco quedaba ya para averiguar o desarrollar en la misma salvo la pura fenomenologa ms o menos compleja de distintos casos y situaciones. Suceda a la acstica, de alguna forma, algo similar a la mecnica clsica antes del desarrollo de la mecnica cuntica: todo era conocido. Esto llev incluso a que la acstica, que en el siglo XIX estuvo muy presente en la enseanza universitaria en Espaa, desapareciera en el XX. En este sentido es curioso que en la primera Escuela de Ingenieros Industriales de Madrid existiera la especialidad de acstica que pronto desapareci. No se vea una gran utilidad a dicha disciplina comparada con las dems ramas de la ingeniera industrial. Tan slo apareci en el siglo XX la acstica como disciplina universitaria en las escuelas de ingenieros de telecomunicaciones por cuanto que parte de su cometido es la radiodifusin y la televisin que dependen grandemente de un buen dominio del sonido en el momento de la grabacin y de la reproduccin, as como de la transduccin del sonido en seal elctrica o electroacstica. Justamente es en el siglo XX cuando se ha producido el mayor desarrollo de la acstica perceptiva por su relacin con las telecomunicaciones. En las facultades de ciencias la acstica ha estado tambin ausente puesto que no se crea necesaria tanta "especializacin" cuando ya se estudiaban las ondas en general y la acstica no era sino un caso particular de aquella. Sin embargo, recientemente se ha despertado un gran inters por todo aquello relacionado con el medio ambiente. Los habitantes de la Tierra, en el umbral del tercer milenio estn tomando conciencia de lo pequeo y vulnerable que en realidad es nuestro planeta y fruto de esta inquietud surge la preocupacin, entre otros, por la contaminacin qumica de las aguas y del aire, la preocupacin por los residuos, la radioactividad, las ondas electromagnticas y el ruido.

Memoria Descriptiva

Pg. - 12

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Este ltimo aparece con unas caractersticas propias que, podramos decir, le hacen tener una "personalidad propia" dentro de esta familia de la contaminacin: 1. Es ubicuo. Esto es, se genera muy fcilmente all donde el hombre realice cualquier actividad y por ello se encuentra en todas partes. Todos sabemos lo difcil que es encontrar un lugar silencioso. 2. Tiene una gran capacidad de molestar a las personas. Justamente por la sensibilidad humana al sonido (que vara de unas personas a otras) el ruido es fcilmente percibido y afecta a las personas en su conducta, fatiga, nerviosismo y tensin. 3. No mata. O por lo menos no lo hace de una manera directa, rpida y palpable. Si comparamos los posibles efectos del ruido con los de un vertido qumico o una marea negra comprendemos rpidamente que ante los ojos del pblico "no sea tan grave". 4. Esta formado por ondas mecnicas. Esto es quiz la caracterstica que ms hace que el ruido sea una contaminacin peculiar. Al no tratarse de sustancias o de materia, al tener una existencia efmera en lo temporal y al presentar propiedades de onda como interferencias, reflexiones, difracciones, etc. se le hace difcil al pblico en general comprender su fenomenologa. Los remedios "intuitivos" con los que se intenta en muchas ocasiones reducir el ruido resulta que conducen, en numerosas ocasiones, a no reducirlo e incluso aumentarlo. Esta sensibilidad social frente al ruido ha reavivado el inters por la acstica, especialmente en lo relacionado con su percepcin por el hombre. Esto hace que est surgiendo una clara necesidad de profesionales con conocimientos adecuados sobre acstica capaces de medir, valorar, y reducir el ruido. En la industria surge la necesidad de reducir el ruido emitido por las instalaciones y fbricas tanto hacia el exterior como en el interior, cuidando que tanto el entorno como los lugares de trabajo mantengan unos niveles de ruido aceptablemente bajos. Pero tambin surge la necesidad en los fabricantes de mquinas de, cumpliendo por ejemplo con la directiva europea de mquinas, medir y reducir el nivel de emisin sonora de las mismas. Los automviles, como casi todas las mquinas y electrodomsticos se hacen cada vez ms silenciosos. En el caso de los automviles el nivel de emisin debido al motor se ha reducido en los ltimos aos de tal manera que en la actualidad es mayor el ruido originado por la propia rodadura de las ruedas que por el motor. En el caso de los aparatos de climatizacin resulta sorprendente el nivel cada vez ms bajo de nivel sonoro que tienen. Curiosamente en la final del campeonato de ajedrez entre Karpov y Kasparov que jugaron en Sevilla haba debajo de su mesa un equipo de climatizacin de bajo ruido desarrollado y fabricado por Koolair, empresa espaola puntera en combinar el silencio con la climatizacin.

Memoria Descriptiva

Pg. - 13

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Es necesario un gran esfuerzo de investigacin y desarrollo para mantener esta carrera por controlar y reducir el ruido. En este sentido la introduccin de nuevos materiales, el mejor conocimiento de los existentes y el control activo del ruido (que consiste en generar una onda que interfiera destructivamente con el ruido) estn abriendo nuevas posibilidades. El control activo del ruido es ya una realidad para contrarrestar la emisin de transformadores elctricos que emiten por magnetostriccin con la misma frecuencia de la red elctrica (50 60 Hz) o en conductos como los del gas en los que el ruido es producido por las bombas que lo impulsan y de otra forma llegara hasta los usuarios sin prcticamente ninguna atenuacin. Por otra parte las aplicaciones del sonido (sin necesidad de que sea en forma de ruido) son muchas en la industria. Sistemas de snar y de ecografa hasta sistemas de caracterizacin de cavidades, inspeccin de soldaduras, telemetra o transmisin de informacin son algunas de las aplicaciones que tiene el sonido. Todo ello por no hablar del gran desarrollo de la electroacstica. En la construccin surge la necesidad de garantizar no slo unos niveles sonoros sino tambin de caracterizar acsticamente salas de conciertos, auditorios, aulas, etc. Las instalaciones en los edificios, que cada vez son ms complejas, tambin deben tener en cuenta las condiciones sonoras. Esto implica adems la caracterizacin acstica del entorno, la realizacin de mapas de ruido y estudios de inmisiones, etc. Por ejemplo en la comunidad de Madrid es necesario realizar un mapa de ruido previamente a la aprobacin de un plan de urbanizacin. Las administraciones pblicas a su vez necesitan disponer de tcnicos con conocimientos de acstica para poder controlar y garantizar el cumplimiento de la legislacin que cada vez es ms amplia. Adems, desde el momento en que existe legislacin sobre el ruido, los jueces deberan saber algo sobre ello. Esta necesidad de formacin o de conocimiento se resuelve solamente en algunos casos mediante cursos de especializacin y actualizacin. La sociedad, ante todo esto, necesita no slo disponer de los tcnicos y cientficos con suficientes conocimientos, sino de forma ms importante, necesita conocer los principios fundamentales del sonido, necesita cultura cientfica (como en tantos otros casos). Esto es una tarea que va ms all y que requiere que el sonido entre a formar parte de los contenidos educativos bsicos de una forma clara real y experimental. El sonido es algo cotidiano y se pueden hacer numerosos experimentos interesantes con muy poco coste. En este sentido son especialmente provechosos cursos sobre acstica, puesto que sus efectos sobre la sociedad sern a largo plazo, cuando los alumnos de estos profesores puedan moverse con conocimiento por un mundo en el que el ruido ser un parmetro importante de tipo econmico, poltico y de calidad de vida. Generar ese conocimiento bien fundamentado no deja de ser

Memoria Descriptiva

Pg. - 14

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

una responsabilidad de los que profesionalmente se dedican al estudio de las ciencias fsicas.

Esencia del Ruido El ruido, presenta 4 caractersticas que debemos conocer para poder controlarlo: 1. 2. 3. 4. Que sea mas fuerte o mas despacio. Ms agudo o ms grave. Que en el tiempo sea continuo, variable o impulsivo. Por ultimo, la manera como lo percibe el ser humano.

El dB o Decibel es la unidad con que se mide la intensidad de un sonido o ruido. El 0 dB, que corresponde al menor sonido que puede or un ser humano, es tambin llamado umbral de la audicin. La medicin del dB se puede efectuar a travs de un micrfono y un instrumento de lectura que mida la variacin elctrica producida por el micrfono, a este instrumento se le llama decibelmetro. La frecuencia es la velocidad con que se produce el fenmeno acstico, esta se mide en ciclos por segundo llamado tambin Hz o Hertz. Llamamos ruido de baja frecuencia a un ruido ronco como el producido por un bombo musical y que por su intensidad lo podemos percibir por las vibraciones que este produce en nuestro cuerpo, en cambio un sonido estridente es un sonido agudo y basta con taparse los odos para no escucharlo, por ejemplo una flauta o un pito. La intensidad que tiene un ruido en cada frecuencia se mide con un circuito elctrico llamado filtro, as la representacin de estos valores en un grafico se le llama el Espectro del Ruido. Intensidad y Frecuencia

Espectros de los Sonidos generados por un Bombo y una Flauta

Memoria Descriptiva

Pg. - 15

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Comparativamente se dice que el espectro del bombo es de baja frecuencia y mayor intensidad, en cambio la flauta es de alta frecuencia y menor intensidad. Audibilidad

El odo humano necesita diferentes intensidades para distinguir un sonido de baja frecuencia con uno de alta frecuencia con igual audibilidad. Un sonmetro es un decibelmetro al que se le han incorporado las compensaciones del odo humano. El dBA es el valor que entrega este instrumento y que permite predecir los riesgos de dao auditivo, como tambin recomendar o legislar sobre los valores mximos permitidos en las diferentes actividades del ser humano. Tiempo

Memoria Descriptiva

Pg. - 16

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Un ruido, que es variable en el tiempo, es posible cuantificarlo con un solo valor, a este promedio se le llama Leq o nivel continuo equivalente. Niveles de Ruido

Memoria Descriptiva

Pg. - 17

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Introduccin al Control de Ruido El ruido es una de las fuentes de contaminacin ambiental. El control, y en su caso, la reduccin del ruido es un problema tecnolgico de cierta envergadura, por la complejidad temporal, frecuencial y espacial que presenta. El problema social del ruido es de tal importancia que las distintas administraciones han elaborado normativas sobre los niveles mximos de ruido que no pueden ser sobrepasados. En lugar de cancelar completamente el ruido, muchas veces es preferible reducirlo a unos niveles aceptables para la poblacin que los padece. Esto se debe a que la reduccin del ruido tiene un cierto coste econmico. Por tanto, el control del ruido supone un cierto compromiso entre unos niveles que no pueden ser sobrepasados y el coste econmico que supone. El ruido produce molestias, distraccin, perturbacin, e incluso, s la exposicin es muy prolongada, puede producir daos irreversibles en el rgano de la audicin. Entre estos, el efecto ms observado ha sido un cambio permanente del umbral de audicin. La molestia del ruido se manifiesta en la interferencia con el sueo y con la palabra. La distraccin producida por el ruido es claramente manifiesta en el trabajo, sobre todo en el de tipo intelectual, dando lugar a una prdida de productividad, y lo que puede ser ms peligros, a una precariedad de las condiciones de seguridad. El ruido perturba tambin la privacidad en el interior de las viviendas. Los problemas del ruido en el ambiente se han vuelto da a da ms notorios por muchas razones: El incremento en el uso de equipo industrial: 1. Motores 2. Turbinas 3. Transformadores 4. Compresores 5. Ventiladores La gran explosin demogrfica, que hace que los individuos estn cada vez ms cerca de fuentes de ruido: 1. Trfico 2. Fbricas y Plantas El uso de materiales ms ligeros en edificios y construcciones en general, as como en equipo de transporte.

En el ambiente existen dos tipos de ruidos. Uno es a causa de la turbulencia y es totalmente aleatorio. El ruido turbulento distribuye su energa de manera uniforme. Este tipo de ruido es conocido como ruido de banda ancha. Algunos ejemplos de este tipo de ruido son los sonidos de baja frecuencia de los jets y los de una explosin.

Memoria Descriptiva

Pg. - 18

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El otro tipo de ruido, denominado ruido de banda angosta, concentra la mayora de su energa en frecuencias especficas. Este ruido es muy comn en mquinas rotativas o repetitivas, as que se pueden considerar peridicas o muy cerca de serlo. Algunos ejemplos de ruido de banda angosta son los motores de combustin interna de medios de transporte, compresores como fuentes de poder auxiliares y como refrigeradores, bombas, etc. Por tanto, el ruido es siempre un subproducto de la generacin de potencia. Los motores de los coches, de los aviones, de los trenes, y en general, de los sistemas de transporte, producen ruido. Las plantas de produccin elctrica, los transformadores elctricos, los sistemas de calefaccin y de aireacin de los edificios producen ruido. El avance en los sistemas de generacin de energa est asociado con el progreso social y tecnolgico. Paradjicamente, a medida que progresamos social y tecnolgicamente, se incrementa tambin la generacin de ruido. Esta monografa trata de la evolucin de las tcnicas de control para hacer frente a este crecimiento estacionario de la produccin de ruido. De acuerdo a Bernhard (1994), las tcnicas de control del ruido pueden clasificarse en cuatro grandes apartados. A saber: Tcnicas pasivas. Tcnicas pasivas adaptativas. Tcnicas activas. Tcnicas hbridas pasivas-activas.

Los sistemas de control pasivo aprovechan las propiedades absorbentes de algunos materiales y no aaden energa adicional al sistema. Pueden absorber energa o cambiar la impedancia del medio para dificultar la propagacin del campo acstico. Los mtodos pasivos incluyen absorbentes superficiales, silenciadores reactivos, materiales porosos, montajes antivibratorios, resonadores, etc. Las tcnicas pasivas se encuentran en un estado muy maduro, y existen soluciones efectivas a frecuencias medias y altas, con un coste no excesivamente elevado. Los sistemas pasivos adaptativos usan elementos pasivos optimizados en un cierto margen de condiciones. Existen soluciones muy efectivas para problemas de banda estrecha. Algunos ejemplos son el resonador de HeIrnholtz adaptativo, cuyo volumen interior puede variarse de acuerdo a unas condiciones predeterminadas. Tambin se puede aplicar esta solucin a problemas de banda ancha. Por ejemplo, se puede idear un montaje antivibratorio para un motor, cuya rigidez y amortiguamiento se pueden adaptar para evitar la relacin inversa que suele existir entre el control de la vibracin y el alineamiento del tren de potencia del motor. Una subclase de este tipo de sistemas es la de los semiactivos. Estos sistemas estn construidos tambin con elementos pasivos cuyas propiedades cambian adaptativamente. Los sistemas activos introducen energa externa a la situacin de ruido, que se aprovecha para generar, a travs de alguna fuente secundaria, un campo de ondas en contrafase con el campo primario. En condiciones de linealidad los campos primario y secundario interfieren destructivamente,

Memoria Descriptiva

Pg. - 19

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

resultando en una reduccin neta del campo residual. Existen aplicaciones desarrolladas para el control del ruido de baja frecuencia en conductos, en recintos, ruido estructural, ruido difractado y en la cavidad auditiva. La diferencia fundamental entre los sistemas pasivos y los activos es la estabilidad de su funcionamiento. Mientras que los sistemas pasivos son intrnsecamente estables, los sistemas activos introducen energa exterior, por lo que pueden inestabilizarse. Los sistemas pasivos estn recomendados en el margen de las frecuencias medias y altas, y los sistemas activos estn limitados al margen de las bajas frecuencias. Por tanto, un sistema que pretenda controlar una banda ancha de frecuencias, incluyendo las bajas, ha de ser necesariamente un sistema hbrido pasivo-activo. En realidad, la mayor parte de los sistemas activos usan algn elemento pasivo para complementar el margen de frecuencias cubierto por ambos. Por ejemplo, los protectores auditivos activos proporcionan una atenuacin pasiva suficiente por encima de 1 kHz aproximadamente. Por debajo de esta frecuencia introducen un controlador activo capaz de producir una atenuacin que puede llegar a ser de hasta varias decenas de dB. Las fuentes secundarias en conductos suelen montarse en un ensanchamiento del mismo, o en una rama lateral. Un ensanchamiento es un filtro paso-baja y una rama lateral es un filtro rechazo-banda. Eriksson (1994) haca un estudio interesante de las tcnicas de control del ruido en relacin con la innovacin tecnolgica. En un proceso de innovacin tecnolgica se desarrollan soluciones nuevas a problemas viejos, en un esfuerzo para mejorar las prestaciones del sistema con una buena relacin beneficio/coste. En este sentido, una tcnica muy madura es ms difcil de mejorar que una tcnica nueva. La nueva tecnologa puede ofrecer unas posibilidades que no estn al alcance de la antigua. La figura siguiente ilustra este hecho.

Memoria Descriptiva

Pg. - 20

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Evolucin de las prestaciones de tecnologas viejas y nuevas en funcin de los requisitos del problema (Segn Eriksson, 1994)

Segn Eriksson, el proceso de desarrollo incrementa el contenido en informacin del producto rompiendo la simetra simple de su forma inicial. Este proceso tiene cierto paralelismo con el concepto de entropa en los sistemas de informacin. En un sistema desordenado hay pocas caractersticas distintivas. Su contenido en informacin es bajo y el sistema es relativamente homogneo. Se puede considerar que la innovacin tecnolgica mejora el funcionamiento del sistema mediante el incremento de su contenido de informacin, lo que resulta en un incremento de su diferenciacin estructural y en una disminucin de su entropa No obstante, la inclusin de complejidad en el producto tecnolgico no tiene porqu complicar su uso. Bien al contrario, el usuario final agradece un producto de manejo ms sencillo. Segn Eriksson, el desarrollo tecnolgico consiste en la bsqueda de nuevas formas de empaquetar ms informacin dentro del diseo de un producto. El problema del control del ruido es un caso tpico donde se puede observar el desarrollo tecnolgico desde los sistemas pasivos, muy maduros, donde es difcil introducir ms informacin, hasta los sistemas activos, actualmente en su etapa inicial, donde hay un gran margen todava para introducir sofisticacin y complejidad que mejoren las prestaciones del producto. Los sistemas pasivos se basan fundamentalmente en la introduccin de un material que interrumpa de alguna manera la propagacin del campo sonoro. Esto se puede hacer mediante una discontinuidad de impedancia o de un panel con mucha densidad superficial de masa. La ley de masas establece que la prdida de transmisin de un panel simple a bajas frecuencias es directamente proporcional al producto de la frecuencia por la densidad superficial de masa. De forma similar, la prdida de transmisin en un silenciador simple del tipo de una cmara de expansin es directamente Memoria Descriptiva Pg. - 21 David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

proporcional al producto de la frecuencia por la longitud del silenciador. Los paneles y los silenciadores han evolucionado hacia unas estructuras mucho ms complejas, que requieren un nmero muy grande de parmetros de diseo. Sin embargo, es muy difcil mejorar las prestaciones de estos sistemas pasivos sin incrementar ya sea la densidad de masa o la longitud, y de aqu su coste. En definitiva, es muy difcil empaquetar ms informacin en un sistema pasivo sin incrementar el coste. Los sistemas activos constan de una parte acstica, de un hardware y de un software de control. La parte acstica incluye los sensores del campo primario y las fuentes del campo secundario. El hardware consiste en una tarjeta DSP ensamblada en un ordenador. El software consta de un programa de control que adquiere las seales de entrada, las procesa en el DSP, y calcula las seales de salida. Por tanto, el control activo es un sistema asistido por ordenador. La evolucin de la electrnica digital es tal que ya existen chips DSP capaces de realizar miles de millones de operaciones por segundo (Gflops). Y no se ve en el horizonte el lmite de estos procesadores. Adems, las prestaciones suben y el precio baja, es decir, mejora la relacin beneficio/coste. Por tanto, los sistemas asistidos por ordenador tienen una capacidad casi ilimitada para empaquetar nueva informacin. Los sistemas activos poseen un gran potencial de mejorar sus prestaciones mediante el crecimiento continuado de su complejidad y asimetra. La tabla siguiente resume la capacidad de desarrollo tecnolgico de ambas tcnicas.

Capacidad de incremento de complejidad y empaquetamiento de informacin rea de diseo Sistemas pasivos masa, longitud, rea, espesor, conexiones, tubos, perforaciones, etc., Sistemas activos posicin de los transductores, tamao, forma, empaquetado de los componentes, diseo de circuitos, seleccin de las partes, conexiones, empaquetado, algoritmos, software, GUI, comunicaciones,

Mecnica

Elctrica

Ninguna

Software

Ninguna

Capacidad de desarrollo tecnolgico de los sistemas pasivos y activos. (Segn Eriksson, 1994)

Quiere esto decir que el CAR sustituir al control pasivo en un futuro prximo? Fuller y von Flotow (1995) opinan que el CAR no es la panacea para todos los problemas de control del ruido. Su aplicacin debe elegirse cuidadosamente teniendo en cuenta los aspectos espaciales y la naturaleza espectral de las perturbaciones. Su utilidad ha sido demostrada en muchos problemas reales, tales como en el interior de los coches, en las cabinas de los aviones, en los protectores auditivos, en los sistemas de aire acondicionado, en

Memoria Descriptiva

Pg. - 22

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

los transformadores elctricos, etc. Sin embargo, estos autores opinan que hay que esperar que definitivamente se introduzcan en el mercado para resolver problemas de control fino, donde la atenuacin de unos pocos dB produzca un efecto significativo. Ms adelante haremos un estudio de los principios y aplicaciones del control activo del ruido (CAR) Como esta tcnica resulta complementaria de los mtodos pasivos, seguidamente se har una revisin del procedimiento general del control pasivo. Esta revisin no pretende ser exhaustiva, ya que existen una gran cantidad de libros especializados en este tema.

Efectos significativos del ruido No se pretende en este trabajo enumerar cada uno de lo efectos que provoca el ruido sobre el medio ambiente. Sin embargo, no deben dejar de mencionarse algunas consecuencias principales, aunque sea de manera extremadamente simplificada. El ruido es la causa directa de la hipoacusia (o prdida auditiva irreversible, reconocido este efecto como enfermedad profesional). Es tambin responsable de transformaciones fisiolgicas y psicolgicas en el organismo que se manifiesta en afectacin directa de la calidad de vida y en el comportamiento. El ruido interfiere en la comunicacin, provoca trastornos en el sueo, en la presin y en la composicin qumica de la sangre, en el funcionamiento cardaco, en el desarrollo fetal y en los rganos de fonacin. Tambin, propicia la prdida de atencin y la disminucin de rendimiento en el trabajo. Adems, es la causa de estrs y de la consiguiente disminucin del sistema defensivo del organismo humano. Los entornos industriales son importantes emisores de niveles sonoros excesivos debidos a la gran cantidad de fuentes generadoras de ruido que poseen. Por tal razn, es incuestionable que el mantenimiento de la planta tiene una singular implantacin en la disminucin de los niveles de ruido. Evidencia natural de un mantenimiento eficaz orientado hacia la gestin medioambiental y la eficiencia energtica.

Programa de control de ruido Lograr implantar un Programa de Control de Ruido no es tarea de un da. Tiene mucha relacin el xito con la sensibilizacin de los directivos y el personal de ingeniera. Se precisa de la formacin tcnica para enfrentar los retos, adems de estar conscientes de los daos que ocasiona la contaminacin por ruido. Un programa de Control de Ruido deber reflejar, preferentemente, lo siguiente:

Memoria Descriptiva

Pg. - 23

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

La inmisin en los puestos de trabajo y la emisin de cada fuente en las condiciones de operacin caractersticas. Si los niveles sonoros de las distintas reas exceden los lmites especificados por la legislacin (o normativas) al respecto. Identificacin de las fuentes sonoras principales y la influencia relativa sobre el campo sonoro. Para cada rea ruidosa se debe:

Definir los objetivos deseados (o necesarios) con relacin al ruido. Disponer de un programa para ejecutar acciones de control para cada fuente. Disponer de los medios de proteccin adecuados (si fuera necesario). Determinar la reduccin alcanzable (tcnica y financieramente) en cada rea o puesto de trabajo. Supervisar el cumplimiento del Programa.

La ejecucin del PCR lleva implcito el desarrollo simultneo de tres lneas principales de trabajo. Estas se mencionan en la figura siguiente. Ntese como la formacin y motivacin del personal constituye la "piedra angular" de la efectividad del Programa. El control tcnico, administrativo y legislativo resultan de vital importancia pues son, precisamente estos aspectos, los que establecen las pautas para el enfrentamiento al ruido y reflejan la posicin de las empresas, y de toda una sociedad, con relacin al omnipresente contaminante. La orientacin hacia la prevencin de la perdida auditiva es fundamental, debido a que en ambientes de ruido industrial la hipoacusia es el efecto, atribuible al ruido, que con mayor transparencia se manifiesta y puede probarse. Por ello, la proteccin auditiva y el seguimiento audiomtrico resultan vitales.

Los tres frentes de un Programa de Control de Ruido

Descriptores principales de ruido La cuantificacin de los niveles de ruido constituye la base para la adopcin de medidas que tiendan a disminuir su efecto. Slo pueden conocerse a profundidad los fenmenos medibles. La presin sonora es la

Memoria Descriptiva

Pg. - 24

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

magnitud ms fcil de cuantificar, efectundose dicha operacin generalmente, con un instrumento llamado sonmetro. La obtencin de registros sonoros es la base sobre la que descansa cualquier estrategia de control de ruido. Existen vanos descriptores de ruido, pero El Nivel Sonoro Continuo Equivalente (Leq) [total y por frecuencias] y la Dosis Porcentual de Ruido (D), resultan vitales para los fines de un control pasivo de ruido en situaciones industriales. Es posible trabajar en la concepcin de un plan de control de ruido si se conocen los valores de emisin de ruido de las mquinas, unido a los niveles de exposicin del personal. El Nivel Sonoro Continuo Equivalente (Leq) se define como el nivel sonoro medido en dB(A) de un ruido supuesto constante y continuo durante toda la jornada, cuya energa despus de atravesar la red de ponderacin A, del sonmetro, sea igual a la correspondiente al ruido variable a lo largo de la jornada laboral. Si fuera posible subdividir una jornada laboral en intervalos Ti en los que el ruido pueda considerarse de nivel aproximadamente constante (por ejemplo cuando la actividad durante la jornada se compone de diversas tareas cada una con su ruido asociado), el Nivel Sonoro Continuo Equivalente puede ser expresado por la ecuacin:
AV 1 n Leq = 10 log10 10 10 Ti T i =1

[dBA]

Donde LA i sera el Leq de cada uno de los intervalos de tiempo considerados. En este caso (que el ruido en cada intervalo pueda ser considerado constante), se puede asumir que Leq = IA, siendo IA el nivel sonoro instantneo con ponderacin A que caracteriza a cada intervalo de tiempo. T, es el tiempo total de anlisis y Ti la duracin de cada intervalo. Puede tenerse en cuenta el siguiente ejemplo real, para disponer de una clara idea de este descriptor de ruido. Se analiza el nivel de exposicin al ruido del personal de una termoelctrica que cuenta con tres grupos turbogeneradores de 100 MW cada uno, en una jornada laboral de 12 horas. El personal se expone en 8 horas a 98 dB(A), 2 horas a 104 dB(A) y 2 horas a 75 dB(A) Cul ser el Nivel Sonoro Continuo Equivalente para la jornada (Leq(12h))? Aplicando lo visto:

1 Leq = 10 log10 (10 10 2 + 10 10 2 + 10 10 + 8) 12


Quedando: Leq (12h) = 99.2 dBA

75

104

98

Memoria Descriptiva

Pg. - 25

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Esta no es la nica forma de calcular el nivel equivalente. En dependencia de las caractersticas del ruido o de la norma que lo defina, se establece un mtodo para calcularlo. La variante mostrada es la ms sencilla (pero requiere que el ruido se pueda considerar constante a lo largo de los intervalos de tiempo). Cuando el ruido no puede considerarse constante, el procedimiento para calcular el Leq se vuelve muy trabajoso, a menos que se pueda disponer de un sonmetro integrador que es capaz de mostrar el Leq, para el intervalo de tiempo que se desee (desde un minuto hasta. 24 horas). La Dosis Porcentual de Ruido (D) establece, con respecto a una referencia establecida por las normas o leyes de cada pas, el por ciento de energa sonora absorbida por el personal que trabaja en determinado puesto de trabajo. Este descriptor de exposicin sonora puede medirse directamente con un instrumento denominado dosmetro de ruido. Es posible obtener el nivel sonoro continuo equivalente, para un tiempo determinado T, si se conoce la dosis de ruido E (medida con el dosmetro), tal y como se muestra:

L AeqT = 10 log E 10 log T 94

[dBA]

Definindose la Dosis porcentual de ruido como:

D=

E 100 E0

(%)

Donde Eo es la dosis de referencia (Eo=1,012 Pa2h, pascal al cuadrado por horas), correspondiente a un nivel sonoro equivalente de 85 dBA, para un tiempo de ocho horas (8h). Este valor de 85 dBA como promedio en una jornada laboral de 8 horas, es aceptado por muchos pases, reflejndose ello en las normas y legislaciones al respecto. Otros pases todava mantienen como tolerable (para ambientes industriales), el valor de 90 dBA como promedio en una jornada de 8 horas. A modo de ejemplo se exponen los valores obtenidos durante una jornada de 8 horas en una planta de cemento. All se registr una dosis de ruido igual a 2,68 Pa2h. Esto arroja una Dosis porcentual de Ruido igual al 265%. Es decir, una exposicin que sobrepasa en un 165% lo establecido corno tolerable para ambientes industriales. Se requiere proteccin efectiva y medidas de control. No slo el nivel sonoro caracteriza un fenmeno de contaminacin por ruido. Es preciso establecer cuanto tiempo es admisible tolerar determinado nivel. La frmula siguiente permite estimar un importante factor con vistas a los programas de Proteccin auditiva y de seguridad operacional; hablamos del tiempo de exposicin.
T= 480 2
( L 85 ) 3

[minutos]

L Nivel de Exposicin del personal

Memoria Descriptiva

Pg. - 26

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Sustituyendo el nivel de exposicin sonora del personal (en dBA) en la frmula, se obtiene el tiempo tolerable, para sufrir daos mnimos. Es menester destacar que para niveles sonoros iguales o superiores a los 115 dBA, no se recomienda exponerse (sin proteccin) ni siquiera por escasos segundos. Adems, sera interesante mencionar las normas ISO 1999, que ampara las siguientes definiciones: ndice parcial de exposicin al ruido. ndice determinado por un nivel de presin sonora y su duracin durante una semana de trabajo (40 horas). Se calcula mediante la expresin:

Ei = (Ti / 40) 100.1( Li 70)


Siendo: Ei Ti Li ndice parcial Tiempo de exposicin semanal en horas Nivel de presin sonora en dBA.

ndice compuesto de exposicin al ruido Suma de los ndices parciales correspondientes a los distintos niveles sonoros percibidos durante una semana laboral (40 horas) Nivel sonoro contino equivalente Aquel nivel de ruido en dBA que si se hallara presente durante 40 horas por semana, producira el mismo ndice compuesto que los distintos niveles sonoros medidos realmente en una semana de exposicin real. Este valor se calcula a partir de la frmula:

Leq = 70 + 10 log Ei
Siendo: Leq Nivel de ruido continuo equivalente en dBA E ndice parcial de exposicin al ruido

Disminucin de la capacidad auditiva para la palabra hablada Se considera disminucin de la capacidad auditiva, cuando exista un incremento medio del umbral de audicin en las frecuencias de 500, 100 y 2000 Hz (media aritmtica de los umbrales de audicin de cada frecuencia) de 25 dBA 0 ms, respecto a la que se da en la norma ISO 389-1975 Valor cero de referencia para la calibracin de audimetros de tono puro.

Memoria Descriptiva

Pg. - 27

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Riesgo Diferencia entre le porcentaje de personas con la capacidad auditiva disminuidas en un grupo expuesto al ruido y el porcentaje de personas con la capacidad auditiva disminuida en un grupo no expuesto (pero equivalente en todos los dems aspectos al primero). a) Riesgo %: Relacin entre el nivel de ruido continuo equivalente durante el trabajo para exposiciones entre 0 y 45 aos, y el riesgo de disminucin de la capacidad auditiva para la palabra hablada. b) % total de disminucin: Porcentaje total de personas que sufren disminucin de la capacidad auditiva para la palabra hablada en un grupo expuesto. El porcentaje de personas que sufre disminucin en un grupo no expuesto es igual al porcentaje en un grupo expuesto a niveles de ruido continuo inferiores a 80 dBA. Riesgo de disminucin de la capacidad auditiva para la palabra hablada

Nivel equivalente de ruido en dBA

Porcentajes Riesgo, % % total de personas con capacidad disminuida 0 5 0 2 1 3 4 6 7 9 12 14 18 20 26 28 36 38 10 0 3 3 6 10 13 17 20 29 32 43 45 55 58 71 74

Aos de exposicin 15 0 5 5 10 14 19 24 29 37 42 53 58 71 76 83 88 20 0 7 6 13 16 23 28 35 42 49 58 65 78 85 87 94 25 0 10 7 17 16 26 29 39 43 53 60 70 78 88 84 94 30 0 14 8 22 18 32 31 45 44 58 62 76 77 91 81 95 35 0 21 9 30 20 41 32 53 44 65 61 82 72 93 75 96 40 0 33 10 43 21 54 29 62 41 74 54 87 62 95 64 97 45 0 50 7 57 15 65 23 73 33 83 41 91 45 95 47 97

80

(a) Riesgo, % (b) % total de disminucin

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

85

(a) Riesgo, % (b) % total de disminucin

90

(a) Riesgo, % (b) % total de disminucin

95

(a) Riesgo, % (b) % total de disminucin

100

(a) Riesgo, % (b) % total de disminucin

105

(a) Riesgo, % (b) % total de disminucin

110

(a) Riesgo, % (b) % total de disminucin (a) Riesgo, %

115 (b) % total de disminucin

Valor particular del riesgo cuando se refiere a la disminucin de la capacidad auditiva definida tal como se ha recogido anteriormente. Memoria Descriptiva Pg. - 28 David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Nota: Estos valores se basan en el limitado nmero de datos experimentales disponibles y estn sujetos a revisin a medida que se vayan obteniendo nuevos datos de investigaciones.

Control Pasivo de Ruido (CPR) El ruido, en tanto contaminante, es un factor a combatir. El mantenimiento constituye la funcin idnea para liderar la lucha y el control de las emisiones sonoras excesivas y nocivas. La contaminacin por ruido es de las ms perjudiciales y comunes en ambientes industriales. Las caractersticas de las emisiones de ruido constituyen un indicador de la eficiencia en el funcionamiento de las mquinas, un parmetro de diagnstico y un agente agresor a la salud de los trabajadores y a la efectividad del trabajo. Una de las formas de realizar el control de ruido desde la posicin del mantenedor es estableciendo una estrategia de Control Pasivo de Ruido (CPR). La base principal de este enfoque consiste en la integracin de una serie de aspectos que se sintetizan en un Programa de Control de Ruido. Lo anterior considera los estudios de ruido, la seleccin precisa de los protectores, la construccin de pantallas y encapsulamientos, el aislamiento de las vibraciones, la formacin y motivacin del personal en la elevacin de la cultura tcnica, el efectivo mantenimiento y otras acciones que dependen del enfoque y la actitud que sobre el medio ambiente asuma la alta direccin de las empresas.

Protectores auditivos Los protectores auditivos son dispositivos de singular importancia en el control pasivo de ruido, Ellos garantizan (cuando la seleccin es correcta), la atenuacin necesaria que asegura la disminucin de la exposicin efectiva al ruido. Se requerir el uso de protectores auditivos cuando el nivel de exposicin al ruido supere los 85 dBA Es comn la seleccin de dispositivos de proteccin auditiva sin considerar, seriamente, si realmente el modelo que se trabaja es capaz de asegurar la mejor proteccin. Es preciso realizar un estudio previo de las caractersticas del ambiente sonoro para el cual se busca el resguardo ms efectivo. El ingeniero de planta debe velar por la calidad del medio de proteccin auditiva. Para ello, deber considerar la informacin del fabricante (o suministrador), combinada con los criterios que se exponen en este acpite. La Tasa de Reduccin de Ruido (Noise Reduction Rating, NRR), es un valor que debe ofrecer el fabricante y se obtiene en condiciones de laboratorio rigurosas. Resulta la tasa de reduccin terica, inalcanzable en condiciones prcticas de la industria o la minera La determinacin emprica de la

Memoria Descriptiva

Pg. - 29

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

atenuacin real del protector se determina por el protector (o combinacin de stos) que brinde el nivel de ruido efectivo ms bajo. Determinacin del nivel de ruido efectivo (dBA*) para protectores auditivos: 1. Cuando es conocido el nivel de ruido, medido con la aplicacin de la escala de ponderacin C (dBC): dBA* = dBC - NRR [dBA] 2. Cuando es conocido el nivel de exposicin al ruido, medido con la aplicacin de la escala de ponderacin A (dBA, la ms utilizada mundialmente): dBA* = dBA - (NRR 7) [dBA]

3. Cuando es necesario, debido a la agresividad del ambiente sonoro, utilizar doble proteccin auditiva (tapones y orejeras): en este caso, se debe tomar al que presenta mayor tasa de reduccin de ruido (NRR), para calcular el nivel de ruido efectivo. dBA* = dBA - (NRR 2) [dBA]

Todos los clculos anteriores pueden ver afectada la tasa efectiva de reduccin de ruido en un 50% [NRR, (NRR - 7), (NRR - 2), segn la variante para calcular el nivel de ruido efectivo (dBA*)]. Esto, sin duda, restringe todava ms, la atenuacin real que pudiera imputrsele al protector que se analiza. Sin embargo, se recomienda tal afectacin debido a que el uso de protectores auditivos en condiciones reales no garantiza el mismo grado de proteccin alcanzado en el laboratorio. En este ltimo, se realizan los ensayos especializados bajo condiciones ideales.

Encapsulamientos y pantallas Las pantallas acsticas, generalmente se disean utilizando lminas de acero, madera. vidrio o plstico. Se recomienda recubrirlas con algn material absorbente por la cara que queda hacia la fuente sonora. Normalmente, pueden obtenerse reducciones del nivel sonoro, ponderado A, de hasta 10 dBA. El efecto de una pantalla es poco significativo para las frecuencias, cuya longitud de onda supere el ancho, o la altura, de la pantalla. Por tal razn, se precisa de un estudio en frecuencias antes de decidir construir un artefacto de este tipo (pese a no ser difcil su fabricacin si no se considera lo anterior, la mitigacin podra resultar despreciable). Las pantallas se emplean con preferencia en la proximidad de mquinas pequeas cuya emisin acstica sea elevada. Tambin, para separar en un local las reas ruidosas del resto. Tambin para proteger a operarios que trabajan en puestos cercanos a fuentes de ruido. La eficacia de una pantalla se condiciona en gran medida a la

Memoria Descriptiva

Pg. - 30

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

distancia de la fuente de ruido. La norma ISO 11821 brinda los mtodos para verificar in situ la eficacia de una pantalla mvil. Los encapsulamientos como su nombre indica, consisten en "encerrar a la fuente sonora para reducir la propagacin del ruido que emiten. De manera general, se consiguen reducciones entre 10 y 25 dBA para encapsulados de una sola capa con revestimiento absorbente. Se logran reducciones de ms de 25 dBA para encapsulamientos con doble pared y revestimiento acstico absorbente. Vale agregar que la efectividad de un encapsulado, o de una pantalla, depende de la caracterstica frecuencial de la seal sonora. Para evitar la propagacin de vibraciones en los encapsulamientos es menester dotarlos de calzos antivibratorios en la base. Las puertas, registros y ventanas, previstas para las labores de mantenimiento deben ser hermetizadas cuidadosamente despus de realizados los trabajos. La ms pequea ranura puede afectar sensiblemente el aislamiento, sobre todo si hay presencia de altas frecuencias. El ejemplo que se muestra a continuacin es caracterstico de un encerramiento con doble pared y revestimiento acstico absorbente.

Efectividad del encerramiento en una turbina de gas.

En la figura, se reflejan los resultados obtenidos con el encerramiento de una turbina de gas. El encapsulamiento fue realizado con doble chapas de acero de 1.5 mm. y una distancia entre chapas de 100 mm La cavidad fue rellenada con fibra de vidrio (material absorbedor). La chapa interior presentaba el 38 % de su rea con perforaciones para facilitar una mejor absorcin. Tal y como puede observarse, la reduccin del nivel sonoro es muy significativo sobre todo para las altas frecuencias del rango mostrado.

Aislamiento de vibraciones Todas las mquinas vibran y por tanto trasmiten oscilaciones a la estructuras sobre las que descansan (pisos, paredes, tuberas...). Una parte del

Memoria Descriptiva

Pg. - 31

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

ruido estructural se convierte, por radiacin, en ruido areo. De manera que el correcto aislamiento de las vibraciones es una forma de atenuar los niveles de ruido, que es capaz de generar una mquina. Con el aislamiento se pretende impedir que las vibraciones de una mquina pasen al suelo (y se propaguen), o visto desde otro punto, evitar que las vibraciones de otros equipos no se trasmitan a alguna mquina sensible. El aislamiento es ms efectivo cuando la estructura sobre la que descansa la mquina (y a la cual se quiere evitar pasen las vibraciones), tiene suficiente masa y rigidez, para evitar, en un caso, las resonancias, y en otro las deformaciones indeseables. Generalmente, para reducir la transmisin de vibraciones de la mquina a la base (o viceversa). Se pueden aplicar las siguientes acciones (debidamente explicadas en la bibliografa existente al respecto): Montaje de la mquina sobre calzos antivibratorios (ello implica el calculo y seleccin de dichos calzos). Utilizar juntas flexibles en los sistemas de tuberas, siempre que sea posible. Preparacin de una base adecuada en cuanto a masa y rigidez.

La figura siguiente, muestra el grado de transmisin de las vibraciones de un equipo con relacin a la frecuencia de excitacin f (a aislar) y la frecuencia natural del sistema fo (inherente a la mquina), empleando calzos con diferente amortiguacin. Obsrvese que el comportamiento aislante es muy favorable cuando la frecuencia a aislar (f) es, como mnimo, 10 veces la frecuencia natural de la mquina, para calzos con bajo amortiguamiento interna.

Memoria Descriptiva

Pg. - 32

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Trasmisibilidad de las vibraciones segn el material de los calzos y la frecuencia a aislar.

En la prctica, muchas veces, es posible emplear un modelo masa (mquina y, eventualmente, una placa base unida a ella rgidamente) y resorte (calzo) de un solo grado de libertad. Se evidencia que, cuando f<fo no hay aislamiento (transmisibilidad es igual a 1); cuando f=fo ocurre la resonancia en la mquina, incrementndose la amplitud de las vibraciones y por tanto aumentando la transmisibilidad de las vibraciones a la fundacin. Cuando f>>fo se obtienen los mejores resultados en el aislamiento, utilizando calzos con baja amortiguacin interna. De aqu se deduce que los materiales con alta amortiguacin interna no mejoran el aislamiento Sin embargo, pueden resultar muy tiles para reducir la amplitud de las vibraciones en caso de resonancias u otras vibraciones indeseadas.

Control Activo de Ruido (CAR) Como ya se ha comentado para controlar el ruido existen principalmente dos tipos de mtodos, el mtodo pasivo y el mtodo activo. La manera tradicional de hacerlo es mediante tcnicas pasivas, as como barreras o silenciadores que atenan el ruido indeseable. Los silenciadores pasivos usan el concepto de cambio de impedancia, logrado mediante una combinacin de baffles y tubos; estos silenciadores reciben el nombre de silenciadores Memoria Descriptiva Pg. - 33

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

reactivos, o el de prdida de energa, causado por la propagacin del sonido a travs de un tubo de material absorbente de ruido (sonido) para as proporcionar el silenciamiento, estos silenciadores son conocidos como silenciadores resistivos. Los silenciadores reactivos se utilizan ms en motores, mientras que los silenciadores resistivos son utilizados para ruidos en conductos de ventilacin. Estos silenciadores pasivos son muy cotizados para ruidos con frecuencias de banda ancha, sin embargo son muy costosos, grandes e ineficientes para frecuencias bajas. En un esfuerzo para sobreponerse a estos problemas, se ha mostrado un gran inters por el control activo de ruido (CAR), ANC por sus siglas en ingls (Active Noise Control). El sistema CAR consta, a groso modo, de un dispositivo electroacstico que cancela el sonido indeseable (ruido) generando un antisonido (antirruido) de igual amplitud, pero de fase opuesta (180 de desfase). El ruido original y el antirruido se combinan acsticamente, dando como resultado la cancelacin de ambos sonidos. La figura siguiente muestra la seal de ruido no deseado (ruido primario) y la seal de cancelacin de ruido (antirruido) y finalmente la seal de ruido residual, que se obtiene al aplicar el principio de superposicin. La efectividad de la cancelacin del ruido no deseado depende de la precisin de la amplitud y fase del antirruido generado.

Concepto Fsico de la Cancelacin Activa de Ruido

El CAR surge como una tcnica complementaria al control pasivo del ruido en el margen de las frecuencias bajas. Las limitaciones del control pasivo en este margen de frecuencias son bien conocidas. Los materiales absorbentes y aislantes, las barreras antirruido, los filtros acsticos (resonadores de Helmholtz, cmaras de expansin,..), los encapsulamientos de la fuente de ruido, requieren dimensiones y/o pesos a menudo inaceptables por debajo de 500 Hz. Con un paramento simple se puede conseguir un aislamiento de 40 dB con un material de 15 kg/m2 a 1000 Hz, pero se requiere uno de 150 kg/m2 a 100 Hz. Un silenciador tipo cmara de expansin simple de 34 cm de longitud proporciona la misma prdida de transmisin a 1000 Hz que uno de 3.4 m a 100 Hz. El control pasivo del ruido tambin funciona en bajas frecuencias. El problema radica en la envergadura de la solucin que aporta.

Memoria Descriptiva

Pg. - 34

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

La idea del CAR, como interferencia destructiva entre el campo primario de ruido, y uno secundario, en contrafase, generado electrnicamente, ya fue planteada por Lueg en 1934. En los aos 50 encontramos algunas implementaciones prcticas a la reduccin de ruidos con una estructura espacio-temporal muy simple, como el radiado por transformadores elctricos. Pero el verdadero inters por el CAR surge a partir de los trabajos de Widrow sobre filtrado adaptativo y su posible implementacin en DSPs. La potencia de los filtros adaptativos radica en su capacidad de adaptar el sistema de control a las condiciones cambiantes de los ruidos que se pretenden reducir. En los aos 80 se presentan aplicaciones prcticas del CAR en conductos (tubos de escape de motores, sistemas de ventilacin y aire acondicionado) y en protectores auditivos. En los aos 90 se publican resultados espectaculares del CAR en el interior de medios de transporte (coches, aviones). El CAR funciona tanto mejor cuanto ms baja es la frecuencia. Por tanto, el CAR no es una alternativa, sino un complemento, al control pasivo del ruido. En la prctica, la solucin ms apropiada es una hbrida pasiva-activa. Primero, se reducen tanto como sea posible las frecuencias medias y altas mediante control pasivo. El ruido residual de baja frecuencia se ataca entonces mediante control activo.

Fundamentos del Control Activo de Ruido. Introduccin El CAR est basado en el principio de la superposicin. Por tanto, slo se aplica a sistemas lineales. Si en una zona del espacio existe un campo acstico primario, Pp(x,y,z,t) y somos capaces de generar un campo acstico secundario, Ps(x,y,z,t), tal que: Pp(x,y,z,t) + Ps(x,y,z,t) = 0 es decir, tal que
PP = PS P = S

donde denota el espectro de fase, entonces ambos campos destructivamente cancelndose mutuamente. Cuando el campo cancelar es un campo de ruido, y cuando el campo secundario activamente, se obtiene un sistema de Control Activo del Ruido sistema CAR consta bsicamente de:

interferirn acstico a se genera (CAR). Un

Uno o varios micrfonos que detectan el campo primario. Uno o varios altavoces que generan el campo secundario. Un controlador que procesa las seales captadas por los micrfonos y genera las seales de alimentacin para los altavoces secundarios.

Memoria Descriptiva

Pg. - 35

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En realidad, el campo primario puede ser detectado por algn otro sensor, tal como tacmetro o acelermetro, y el campo secundario puede ser generado por algn otro actuador tal como un vibrador, sobre todo en sistemas de control del ruido estructural. El controlador suele ser un sistema electrnico. El diseo del controlador, la parte ms importante de un sistema CAR, depende del tipo de ruido a controlar, y de los objetivos acsticos de control, vase la figura siguiente. Como veremos a continuacin, el control puede ser global o local, y puede estar basado en el principio de interferencia o en el de absorcin activa. En funcin de la fuente primaria (compacta o extensa) el campo secundario puede estar generado por una sola fuente (monocanal) o por varias (multicanal). En funcin del tipo de ruido y del medio de propagacin, puede ser vital determinar correctamente la posicin de los detectores y de las fuentes secundarias. Desde el punto de vista de la teora de control, en funcin del nmero de fuentes y detectores, se suele usar la siguiente nomenclatura: Sistema de entrada y salida nicas (Single Input Single Output, SISO). Sistema de entrada nica y salidas mltiples (Single Input Multiple Output, SIMO) Sistema de entradas mltiples y salida nica (Multiple Input Single Output, MISO). Sistema de entradas y salidas mltiples (Multiple Input Multiple Output, MIMO).

La conexin entre las fuentes secundarias tambin es fundamental. La fuente primaria puede ser representada por un desarrollo multipolar, siendo el nmero de trminos de este desarrollo funcin de la complejidad de la fuente primaria. Para fuentes compactas simples, el desarrollo puede ser truncado con suficiente aproximacin en el primer trmino, y la fuente secundaria es un monopolo. La complejidad acstica de la fuente depende de la frecuencia. Otro aspecto muy importante es la modelizacin de la propagacin del campo sonoro entre el sensor de referencia, y entre la fuente secundaria, y el punto de cancelacin. La separacin entre el sensor de referencia y el punto de cancelacin ha de ser suficiente para dar tiempo al cancelador a procesar la seal medida y generar el campo secundario. Este es el principio de funcionamiento bsico de un sistema CAR: el camino acstico entre el sensor de referencia y el punto de cancelacin es mucho mayor que el camino electrnico. Pues bien, ya que el campo secundario ha de ser extrapolado al punto de cancelacin, es de vital importancia la construccin de] operador de extrapolacin.

Memoria Descriptiva

Pg. - 36

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Sistemas de Control Activo de Ruido

Memoria Descriptiva

Pg. - 37

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Es obvio que la complejidad del controlador depender de la complejidad del ruido y de] medio de propagacin. Es mucho ms fcil controlar un ruido peridico en un tubo que un ruido aleatorio en un recinto. El operador extrapolacin tambin difiere en un caso y en otro. En un tubo, a frecuencias por debajo de la frecuencia de corte del primer modo transversal, se propagan ondas planas. En ausencia de efectos disipativos y de turbulencia, el operador extrapolacin, o matriz de transferencia, es un simple cambio de fase. En un recinto, sin embargo, habr que tener en cuenta los modos normales El operador extrapolacin se disea a partir de la ecuacin de ondas del problema, y es evidente que la solucin difiere en un medio y en otro. Por otra parte, el ruido puede ser variable. Esto quiere decir, que si el controlador ha de ser capaz de adaptarse a estos cambios, su funcin de transferencia ha de variar de acuerdo con los cambios temporales del ruido. En otras palabras, el controlador ha de ser adaptativo. En funcin de los objetivos acsticos y del tipo de ruido se disea el sistema electrnico controlador. Como veremos con mayor detalle. El controlador tiene una estructura diferente segn que exista o no informacin a priori de la fuente de ruido. Esta seal de referencia puede obtenerse situando un micrfono entre la fuente primaria y la secundaria, o mediante un tacmetro, acelermetro, o cualquier otra clase de sensor. Cuando existe informacin de referencia del problema de ruido el controlador se denomina feedforward. Cuando la seal microfnica alimenta directamente a la fuente secundaria, el controlador tiene una estructura feedback. Una vez decidida la estructura de control, y establecidas las ecuaciones del problema, hay que proceder a la solucin. En este punto hay que definir una funcin de coste. Por ejemplo, la potencia sonora global en el medio a controlar. La solucin del problema se obtiene minimizando por algn procedimiento la funcin de coste. Uno de los mtodos ms socorridos es el de mnimos cuadrados. El algoritmo recurrente de mnimos cuadrados ms usado en CAR es el deducido por Widrow, y junto con otros aspectos numricos del problema de control, ser estudiado en mayor detalle a continuacin. El algoritmo numrico para minimizar la funcin de coste puede ser implementado analgica o digitalmente. Los sistemas CAR analgicos se usaron en los aos en los que no existan las potentes placas DSP de los que disponemos en la actualidad. Hoy en da, existen placas DSP capaces de hacer millones de operaciones en coma flotante por segundo (Mflops) a un precio asequible. Estas placas se insertan en un PC y pueden ser controladas por medio de un software. Se dispone as de hardware controlable por software, es decir Instrumentos Virtuales, que permiten un CAR asistido por ordenador (Eriksson, 1990).

Antecedentes histricos del CAR La aplicacin del principio de interferencia destructiva para conseguir zonas de silencio fue ya concebido por Lord Rayleigh en 1877 (van Overbeek,

Memoria Descriptiva

Pg. - 38

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

1993) usando dos diapasones como fuentes primaria y secundaria, Sin embargo, el primero que pens en las posibilidades de este principio para controlar el ruido fue Paul Lueg, en 1933, un cientfico alemn que lleg a patentar la idea tanto en Alemania como en Estados Unidos (Guicking, 1990). La siguiente figura reproduce los esquemas en la patente americana de Lueg En estos esquemas se observan ya bosquejados los fundamentos bsicos del CAR: interferencia destructiva y absorcin activa, Reproducimos a continuacin algunas de las ideas de Lueg (traduccin libre): Captando el ruido con uno o varios micrfonos, amplificando convenientemente esta seal elctrica, y alimentando con sta uno o varios altavoces, se puede generar un campo secundario, en oposicin de fase, que cancele un campo primario. En el caso de un tubo, el cambio de fase se puede conseguir posicionando adecuadamente el micrfono y el altavoz. En problemas tridimensionales se pueden crear zonas de silencio alrededor de la posicin de los altavoces, se pueden disear barreras activas en las aperturas de puertas y ventanas, y se pueden construir paredes vibrantes para conseguir habitaciones silenciosas. Tambin se pueden cancelar los ecos molestos en salas de msica y teatros, reducir selectivamente ciertas frecuencias y ajustar la calidad acstica de las salas de acuerdo a unos criterios especficos, o reducir el ruido de las mquinas de escribir. Las ideas de Lueg, espectacularmente clarividentes, no encontraron aplicaciones prcticas hasta los aos 50. Olson y May (1953) desarrollaron un sistema activo que, en la terminologa actual, se trata de un controlador feedback, aplicable a la reduccin local del ruido. El sistema de Olson y May, que ellos denominaron un absorbente electrnico, figura siguiente (a), consista en un resonador de HeImholtz, con un sistema micrfono altavoz a la entrada, y con material absorbente en la pared interna opuesta. Presentaron resultados experimentales, donde se observaban cancelaciones de entre 10 y 25 dB en una banda de tres octavas, en el margen de baja frecuencia, figura siguiente (b). La eficacia de este absorbente activo dependa de la separacin entre el micrfono de error y el altavoz. Como se observa en la figura siguiente (c), la cancelacin es tanto mayor cuanto ms prximos estn el micrfono y el altavoz. Olson y May sugirieron aplicaciones tales como la reduccin del ruido en la posicin de las cabezas de los pasajeros de coches y aviones, o en los puestos de trabajo de una cadena de montaje industrial. El micrfono y el altavoz eran de diseo propio. El micrfono converta las vibraciones del diafragma en una corriente de electrones en un tubo de vaco, y el altavoz reduca al mximo el cambio de fase en baja frecuencia. Era este cambio de fase el que limitaba la aplicacin del sistema a frecuencias por encima de unos 30 Hz.

Memoria Descriptiva

Pg. - 39

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Esquemas en la patente americana de Lueg sobre CAR

Memoria Descriptiva

Pg. - 40

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Memoria Descriptiva

Pg. - 41

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

(a)Esquema del absorbente electrnico propuesto por Olson y May; (b) Cancelacin del ruido en la posicin del micrfono; (c) Curva de cancelacin para varias separaciones micrfonoaltavoz (Segn Olson y May, 1953)

Por la misma poca, Conover y Ringlee (1955) aplicaron mtodos activos a la reduccin del ruido peridico de los transformadores elctricos. Ya que este tipo de ruido es muy repetitivo, idearon un filtro analgico fijo para controlar los tres primeros armnicos (120, 240 y 360 Hz). El circuito analgico, figura siguiente, consista en un banco de filtros de banda estrecha (anlisis), cada una de cuyas salidas estaba conectada a un desfasador variable, y a un amplificador de ganancia variable. Las seales de salida de cada canal eran sumadas (sntesis) y enviadas al altavoz secundario.

Circuito analgico para la cancelacin del fundamental y los dos primeros armnicos del ruido de un transformador (Segn Conover y Ringlee, 1955)

En terminologa actual, se tratara por tanto de un controlador en el dominio de la frecuencia. La figura siguiente muestra el diagrama espacial, en coordenadas polares, de la cancelacin en la direccin del micrfono (ngulo 09). Ntese cmo la cancelacin en una direccin se hace a costa del refuerzo en otras direcciones. Conover y Ringlee sugeran la posibilidad de usar un nmero mayor de altavoces y micrfonos de error para evitar este problema del refuerzo en otras direcciones.

Memoria Descriptiva

Pg. - 42

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Diagrama espacial de cancelacin en un transformador. (Segn Conover y Ringlee, 1955)

En un montaje experimental del consolador de Canover en un caso real, Conover y Ringlee demostraron una aplicacin exitosa del control activo. La direccin de cancelacin poda ser variada, introduciendo un desfase en el circuito electrnico, sin variar el montaje de los transductores electroacsticos. Por otra parte, el coste de esta circuitera simple era menor que el de los sistemas pasivos, para la misma efectividad en este margen de frecuencias. El tema del CAR entr despus en una especie de letargo Fue en los aos 70 cuando el grupo del Laboratorio de Mecnica y Acstica de Marsella (LMA), encabezado por Jessel, dieron un cierto empuje, sobre todo terico, a lo que ellos llamaron la absorcin activa. Jessel y Mangiante (1972) demostraron que exista una cierta semejanza entre el principio de Huygens y el de la absorcin activa. De hecho, ellos demostraron que ambos principios no son sino casos particulares de un mismo principio de perturbacin general. Memoria Descriptiva Pg. - 43

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Adems, se plantearon la realizacin prctica de fuentes secundarias. En el caso de la cancelacin en tubos, construyeron un tripolo, como una combinacin de un monopolo ms un dipolo. Hay que ser conscientes que el problema que Jessel y Mangiante se plantearon difiere un poco del actual problema de cancelacin en tubos. Ellos intentaban cancelar en la zona del tubo a continuacin de la fuente secundaria, sin modificar el campo entre la fuente primaria y la fuente secundaria. En la mayor parte de las aplicaciones actuales, se cancela ms all del altavoz secundario, sin preocuparse de lo que ocurra ms ac (en general, aparece un campo de ondas estacionarias). Por consiguiente, la fuente secundaria que se suele usar actualmente consiste en un simple altavoz. A mediados de los 70 aparece el importante artculo de Widrow et al. (1975) sobre principios y aplicaciones de la cancelacin adaptativa del ruido. Hasta esa fecha los filtros eran fijos, por lo que si el ruido variaba en el tiempo, no se produca la cancelacin, e incluso poda aparecer una amplificacin. Widrow et al. deducan las famosas ecuaciones del filtrado adaptativo por mnimos cuadrados usando una seal de referencia (FXLMS) que permitan implementar un filtro cuyos coeficientes se actualizaban con el tiempo. Se discutan algunas aplicaciones, con resultados experimentales, tales como el filtrado de los 50 Hz en aplicaciones mdicas donde las seales son muy dbiles, la cancelacin del ruido en seales de palabra, la cancelacin de los lbulos laterales de antenas y sonares, la cancelacin del ruido peridico sin una referencia externa, y la autosintonizacin adaptativa de filtros. Este marco terico, junto con la aparicin de las placas DSP, que permiten implementar en hardware algunos procesos de seal, controlados por software, supuso una verdadera revolucin en el mundo de los sistemas CAR. Las ideas de Lueg, que en principio resultaban poco menos que irrealizables, comenzaron a ser consideradas como factibles. Hoy en da existen sistemas patentados para el control del ruido de baja frecuencia de protectores auditivos y para el control del ruido en tubos. Se investiga profundamente en el control del ruido en el interior de las cabinas de coches y aviones, en el control acstico del ruido estructural, en el control del ruido difractado y en el control de ecos.

Fundamentos acsticos El CAR est basado en el principio de la superposicin lineal. Si en algn punto del espacio se superponen dos campos acsticos, uno primario, y otro secundario en oposicin de fase, ambos se cancelan mutuamente. Decimos que ambos campos interfieren destructivamente. Se obtiene as un sistema CAR por interferencia destructiva. Sin embargo, en algunos sistemas, como el de Olson, se puede hacer que el diafragma del altavoz vibre en oposicin de fase al campo primario. Se obtiene as un sistema CAR por absorcin activa. Segn Elliott y Nelson (1993) existe una diferencia sustancial en el funcionamiento de ambos sistemas. Considrese el problema desde el punto de vista de la potencia acstica radiada por el par de fuentes acopladas, la primaria y la secundaria. Si se ajustan la amplitud y la fase de la fuente

Memoria Descriptiva

Pg. - 44

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

secundaria para minimizar la potencia acstica radiada por el conjunto, la fuerza acstica de la fuente secundaria es muy prxima a la de la primaria, pero de fase opuesta, para separaciones pequeas entre ambas fuentes, y tiende a cero a medida que se incrementa dicha separacin. En estas condiciones la potencia acstica radiada por la fuente secundaria es cero (ni radia ni absorbe) y su accin fundamental consiste en reducir la impedancia de radiacin vista por la fuente primaria, disminuyendo de este modo la presin acstica en fase con la velocidad volmica en la posicin de la fuente primaria. Por el contrario, si se ajustan la amplitud y fase de la fuente secundaria para absorber la mxima potencia sonora, la fuerza acstica de la fuente secundaria, para separaciones pequeas entre ambas fuentes, es mucho mayor que la de la fuente primaria, aunque en cuadratura con ella. Este efecto da lugar a un incremento sustancial de la resistencia de radiacin neta experimentada por la fuente primaria, y consecuentemente, a un incremento grande de su potencia acstica radiada. Aproximadamente la mitad de esta potencia radiada por la fuente primaria es absorbida por la fuente secundaria, y el resto es radiada al medio. Como concluyen Elliott y Nelson (1.993), la absorcin de potencia, usando un par de fuentes acopladas, no parece ser una estrategia muy eficiente para el control global del ruido. Diferente situacin se presenta cuando la fuente secundaria se acopla para controlar localmente el ruido en una zona alrededor del sensor de error. En esta configuracin se sita un micrfono en el campo prximo de la fuente secundaria, realimentndola a travs de un filtro H. La atenuacin del campo primario se consigue mediante el diseo apropiado de la funcin HG, donde H es la funcin de transferencia electrnica entre el micrfono y el altavoz, y G es la funcin de transferencia acstica. Poniendo esta funcin de transferencia como un factor de ganancia, ~A, y un factor de fase, , Trinder y Nelson (1983) demostraban que la atenuacin conseguida era directamente proporcional al factor de ganancia, y que con tal de que este factor de ganancia fuese grande, es relativamente independiente del factor de fase. Este principio es similar al de la tierra virtual, base del funcionamiento de los amplificadores operacionales, por lo que tambin se conoce como principio de la tierra acstica virtual. Esta configuracin genera una zona de silencio en forma de concha alrededor del sensor de error, cuyo tamao depende de la separacin entre la fuente secundaria y dicho sensor, con un lmite de 0.1 lmite que coincide con el tamao de la zona de silencio en el campo difuso (David y Elliott, 1994). El control local es muy til en situaciones donde el control global es inviable, tal como en recintos por encima de la frecuencia de Schroeder, f Sch 700 T60 / V (Joseph et al., 1994). Esta configuracin local permite cancelar el campo primario en pequeas zonas de silencio, con una fuerza acstica de la fuente secundaria pequea en relacin con la de la primaria, lo que asegura que la energa secundaria en el campo lejano es pequea en comparacin con la primaria. El control local ser analizado en mayor profundidad en la Seccin dedicada al control activo en recintos. Una forma elemental de diferenciar entre control global y local es analizar el patrn de interferencias entre dos fuentes puntuales (van Overbeek, 1993). Sea P una fuente primaria, de funcin de fuente SS (t), y S una fuente secundaria de funcin de fuente Ss(t), vase la siguiente figura. La funcin de Memoria Descriptiva Pg. - 45 David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

fuente engloba a la fuerza acstica de fuente, o velocidad de volumen, q. Posteriormente se analizar la relacin entre ambas en el dominio de frecuencias. En un punto del plano (x, y) a distancia rp de la fuente primaria y rs de la fuente secundaria el campo acstico p(r,t) es

Patrn de interferencias de dos fuentes puntuales

rp S p t c p (r , t ) = 4rp

S s t rs c + 4rs

donde c es la velocidad de propagacin. Para que en un punto (xc, yc) exista cancelacin es necesario que

S s (t ) =

rs ,c r p ,c

rp ,c rs ,c S p t c c

Por consiguiente, para que se produzca cancelacin en el punto (xc,yc) se han de dar las siguientes condiciones:

Causalidad: Si no existe informacin a priori de la fuente primaria, se requiere que

rp ,c rs ,c
El punto de cancelacin estar siempre ms prximo a la fuente secundaria.

Condicin de fase. Todos los puntos donde ocurra cancelacin activa han de tener el mismo retardo de fase. Es decir

rp rs = rp ,c rs ,c = m

Memoria Descriptiva

Pg. - 46

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

que es la ecuacin de una hiprbola


y= b a

( x x 0 )2 + a 2

donde xs s es la abscisa de la fuente secundaria, x1 = (m + xs) / 2 es el vrtice de la hiprbola, x0 = xs/2 es el centro de la hiprbola, a = x1 - x0 es el semieje mayor, b = 2 a 2 es el semieje menor, y = x s x0 es la distancia desde el centro hasta el foco.

Condicin de amplitud. Los puntos de cancelacin activa han de satisfacer la condicin


rs ,c rs = = r p r p ,c

que es la ecuacin de una circunferencia

(x x1 )2 + y 2 = R 2
con centro en x1 = x s /(1 2 ) y radio R = x s /(1 2 ) As pues, los puntos de cancelacin sern la interseccin de una hiprbola con una circunferencia. La figura siguiente muestra los puntos de interseccin para el caso xs =1.53 y (xc,yc)=(1.33, 0.533). En el caso 3D, la hiprbola es un hiperboloide, la circunferencia una esfera, y los puntos de cancelacin se convierten en una circunferencia perpendicular al eje z. Ahora supongamos que la fuente primaria es peridica de periodo T

S p (t ) = S p (t + nT ) ,

n entero

Memoria Descriptiva

Pg. - 47

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Hiprbola de fase y circunferencia de amplitud para Xs=1.53 y (xc, yc)=(1.33, 0.533)

En este caso no es necesaria la restriccin de la causalidad y habr ms hiprbolas que cumplan la condicin de fase

rp rs = m + ncT
o, teniendo en cuenta que Tc=,

rp rs = m + n
Las zonas de silencio son ahora las intersecciones de la circunferencia de amplitud con las hiprbolas de fase. El nmero de cortes de las hiprbolas con la circunferencia depender de la relacin de a m. De este estudio sencillo deducimos que no es posible el control global de una fuente puntual con otra fuente puntual. El patrn de interferencias muestra claramente zonas de cancelacin, aunque tambin pueden existir zonas de refuerzo. Para ver esto mejor, razonemos en el dominio de frecuencias. Sea
P ( r , f ) = Pp (r , f ) + Ps ( r , f ) = Sp 4rp e
jkrp

S s jkrs e 4rs

En condiciones de antirruido en (xc,yc)

S s ( f ) = S p ( f )e jkm
De las Ecs. (41) y (42)
rp jk (rp rs + m ) e P (r , f ) = Pp ( r , f ) 1 rs

Memoria Descriptiva

Pg. - 48

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Y definiendo la reduccin del campo primario, RCP, como el logaritmo del cociente entre el campo total y el campo primario, obtenemos finalmente

RCP(dB ) = 20 log

Pp (r , f )

rp jk (rp rs + m ) e = 20 log 1 P(r , f ) rs

La figura siguiente muestra la RCP para una fuente secundaria en xs=1.533, (xc,yc)=(1.33,0.53), y longitud de onda =0.25 m, con un mapa de contornos , donde se aprecia mejor el patrn de interferencias. Ntese que RCP>0 equivale a cancelacin, mientras que RCP<0 equivale a amplificacin. Como hecho a destacar, en la posicin de la fuente secundaria se produce una amplificacin del campo sonoro global. El anlisis esbozado para dos fuentes puntuales, una primaria y una secundaria, puede ser extrapolado a un nmero arbitrario de fuentes primarias y secundarias. Tokhi (1994) demostraba que el tamao de las zonas de cancelacin depende del nmero y separacin de fuentes secundarias. Reduciendo la separacin entre fuentes se incrementa el tamao de las zonas de cancelacin (Tokhi y Leitch, 1992).La Figura 40 muestra los patrones de interferencia para una fuente primaria en el centro del sistema (x, y) y dos, tres y cuatro fuentes secundarias. Ntese que los contornos mostrados aqu corresponden a lo que Tokhi define como el factor de cancelacin de campo, K = -RCP. Por consiguiente, K<0 corresponde ahora a zonas de cancelacin, mientras que K>0 son las zonas de amplificacin.

Reduccin del campo primario (RCP) para XS=1.533, (xc,yc)=(1.33, 0.53) y =0.25

Memoria Descriptiva

Pg. - 49

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Patrones de interferencia para una fuente primaria y dos (a,b) tres (e) y cuatro (d) fuentes secundarias (Segn Tokhi, 1994)

Chou (1994) demostraba que la eleccin del nmero de micrfonos y fuentes secundarias afecta tambin a la estabilidad y condicionamiento del controlador. Mediante una formulacin en el dominio temporal, descompona la matriz asociada a la funcin de coste del sistema de manera tal que su rango es proporcional al nmero de micrfonos, al nmero de altavoces y a la longitud del filtro multicanal. Elliott y Nelson (1993) analizaban el patrn de interferencias de dos monopolos desde el punto de vista de la potencia neta radiada, llegando a conclusiones muy interesantes. Sea
Pp Z pp = P Z s sp Z ps q p Z ss q s

la ecuacin matricial que relaciona las presiones radiadas por los monopolos primario y secundario, en funcin de sus velocidades de volumen complejas, q (en el dominio de frecuencias, la funcin de fuente y la velocidad de volumen de una fuente simple estn relacionadas por S=jwq ), Zpp y Zss son las impedancias acsticas de entrada vistas desde las fuentes primaria y secundaria, respectivamente, y Zps=Zsp es la impedancia acstica de

Memoria Descriptiva

Pg. - 50

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

transferencia entre las fuentes primaria y secundaria. Las potencias acsticas radiadas por cada una de las fuentes son

W p = 0.5 Re q * p p p
y la potencia total radiada es:

Ws = 0.5 Re q * s p s

WT = 0.5 q s Rss + q * s Rsp q p + q * p Rsp q s + q p R pp


2

donde:

Rss = Re{Z ss }, R pp = Re{Z pp }, y Rsp = Re{Z sp }


Corno vemos, la potencia total consta de dos tipos de trminos: la potencia radiada por cada unos de los monopolos aisladamente, y unos trminos cruzados que contienen la influencia de la fuente secundaria en la primaria. Supongamos que qs=~qp . En este caso, teniendo en cuenta que en campo libre RPP = RSS = ( 2 ) /(4 c) y RSP = ( 2 / 4 c) sin c(kr ) encontramos finalmente

WTD = 2W pp [1 sin c(kr )]


donde el subndice TD hace referencia al carcter dipolar de esta estrategia. La figura siguiente muestra Wtd /Wpp , en lnea de puntos, como una funcin de la separacin entre las fuentes primara y secundaria, en trminos de la longitud de onda. Con tal de que r<0.3, la potencia total es menor que la potencia primaria. Para r > , la potencia total es aproximadamente el doble que la potencia primaria (3 dB). Otra estrategia es calcular la potencia acstica de salida de ambas fuentes y ajustar la fuente secundaria de modo que esta potencia global sea mnima. Elliott y Nelson (1993) demuestran que la velocidad de fuente de la fuente secundaria que minimiza la potencia global es q sp = q p sin c(kr ) , siendo esta potencia ptima (mnima)

WTO = 2W pp 1 sin c 2 (kr )

WTO=WPP aparece como lnea continua en la siguiente figura. Ntese como para distancias cortas entre ambas fuentes WTO coincide prcticamente con WTD Sin embargo, a medida que crece r, WTO tiende a Wpp (0 dB).

Memoria Descriptiva

Pg. - 51

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Potencia total radiada por dos fuentes monopolares para el caso dipolar (WTD) y para el caso ptimo (WTO) (Segn Elliott y Nelson, 1993)

De la discusin anterior pueden extraerse algunas conclusiones importantes (Mangiante y Vian 1977):

Las fuentes secundarias son ms efectivas para controlar un campo primario cuanto ms prximas estn a la fuente primaria. La efectividad de un sistema CAR es mayor a frecuencias ms bajas. La cancelacin es tanto mayor cuantas ms fuentes secundarias existan.

En realidad, el mnimo nmero requerido de fuentes secundarias puede deducirse del principio de Nyquist. Estamos muy familiarizados con el criterio de Nyquist en la transformacin tiempo/frecuencia. La seal temporal continua puede reproducirse fielmente con un nmero discreto de muestras temporales con tal de que el intervalo de muestreo sea menor que el doble de la frecuencia ms alta en su espectro (t 1 / 2 f max ) .Con un muestreo tal se evita el problema conocido como aliasing temporal. Puede razonarse de manera anloga para establecer un criterio de Nyquist espacial. De este modo, un frente de onda espacial continuo puede reproducirse fielmente con un nmero discreto de fuentes secundarias con tal de que la separacin entre stas sea menor que la mitad de la longitud de onda ms alta en dicho frente de ondas

Memoria Descriptiva

Pg. - 52

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

(x max / 2) . De nuevo, a frecuencias ms bajas, las longitudes de onda son ms largas, y se puede reproducir el campo primario con un nmero menor de fuentes.
Hasta ahora hemos considerado un campo primario sin especificar el tipo de fuente que lo genera. Si la fuente es pequea con relacin a la longitud de onda, y a una distancia suficiente, la fuente se comporta como un monopolo (una fuente simple). Sin embargo, si la fuente es extensa, el campo prximo radiado difiere significativamente del de un monopolo. Kempton (1976) se planteaba el problema de sustituir una fuente por un desarrollo multipolar. Cada trmino del desarrollo es un multipolo, y el nmero de trminos requeridos depende del problema particular. El primer trmino es un monopolo, el segundo un dipolo, y as sucesivamente. En baja frecuencia y en el campo lejano, se obtiene una buena aproximacin con un slo trmino (principio de la fuente simple). Swinbanks (1972) encontraba que la fuente secundaria ideal para reproducir el campo primario en un tubo era un array de tres anillos, cada uno de ellos formado por tres fuentes puntuales (tripolos). Jessel y Mangiante (1972) reconstruan el campo secundario de un monopolo en un tubo con un tripolo Jessel y Angevine (1982) usaban una combinacin apropiada de monopolos, dipolos y cuadripolos para reproducir el campo de un transformador elctrico en una cmara anecoica. En realidad, el desarrollo multipolar est muy relacionado con el diseo de sistemas array en acstica. Si denotamos por T(r) la distribucin de sensibilidad en los elementos del array (funcin tapering) y por D(k) la funcin directividad, ambas funciones estn relacionadas por una transformada de Fourier
D ( k ) = T ( r )e jkr dr

As pues, si se conoce el patrn espacial del campo primario, siempre es posible calcular la distribucin de sensibilidad de un array que reproduzca un campo secundario con las mismas caractersticas espaciales. Una vez elegidas las posiciones y el nmero de fuentes secundarias, hay que extrapolar los campos primario y secundario hasta la posicin de cancelacin (vase le figura).

Memoria Descriptiva

Pg. - 53

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Extrapolacin de los campos primario y secundario hasta la posicin de cancelacin

De acuerdo al principio de causalidad, la va acstica ha de ser ms lenta que la va electrnica. Para que ocurra esto, la zona de cancelacin ha de estar alejada lo suficiente de la zona de medida del campo primario. Por tanto, conocido el campo medido en un punto, hay que predecir la forma de este campo en otra zona del espacio. Este es un tpico problema de extrapolacin de campos de ondas. El operador extrapolacin ha de estar basado en la ecuacin de ondas del problema. En un campo libre, o en un tubo por debajo de la frecuencia de corte del primer modo transversal, el operador extrapolacin es un simple cambio de fase. Sin embargo, en una geometra ms compleja, el operador extrapolacin resulta de la aplicacin del teorema de Kirchhoff, o de su versin en acstica, la integral de Rayleigh (Berkhout, 1984). El teorema de Kirchhoff establece que si se conoce el campo acstico en una zona cerrada se puede predecir el campo en cualquier punto de su interior. En un problema multicanal, la reconstruccin del campo acstico ha de ser necesariamente espacial y temporal. En este sentido, se trata de una aplicacin de la holografa acstica. El principio bsico de este proceso es el principio de Huygens que establece que un frente de ondas puede ser reconstruido a partir de la superposicin lineal del campo radiado por fuentes secundarias distribuidas a lo largo del frente de ondas primario. La implementacin de una superposicin lineal en procesado de seal es una convolucin. En la aplicacin que nos ocupa, la extrapolacin equivale a una convolucin temporal y espacial. La convolucin espacial involuntario significa que cada uno de los sensores del campo primario ha de estar interconectado con cada una de las fuentes secundarias (vase la figura).

Memoria Descriptiva

Pg. - 54

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Interconexin multicanal de altavoces y micrfonos en un sistema CAR (Segn Berkhout, 1988)

La implementacin matemtica del operador extrapolacin por la integral de Rayleigh es (Berkhout, 1988)
P ( x, y, z , f ) = P ( , , , f )(1 + jkr ) cos
V

e jkr d d d r2

donde r = ( x ) 2 + ( y ) 2 + ( z ) 2 , y cos = ( x ) / r . En el caso discreto

e jkr P( x, y, z, f ) = P( x m , y n , z l , f )(1 + klrmnl ) cos 2 xyz r mnl m n l


:

P( x, y, z, f ) = W ( x xm , y y n , z z l , f ) P( xm , y n , z l , f )
m n l

o, en lenguaje matricial

Memoria Descriptiva

Pg. - 55

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

P ( r + r , f ) = W ( r , f ) P ( r , f )
donde W (rf ) = (1 + jkrmnl ) cos mnl (e jkr mnl / r 2 mnl )xyz es la matriz de extrapolacin. En la anterior figura, se ha considerado el caso 2D y se ha descompuesto cada elemento como un factor de amplitud y un retardo temporal, Wmm = Amn e jwt mn .De acuerdo con el criterio de Nyquist, en el caso 3D

x = y = z max / 2 . En el caso 3D, el operador extrapolacin es una matriz 3D.


Jessel y Angevine (1982) planteaban el problema de la cancelacin activa como una aplicacin del principio de Huygens (vase figura).

Principio de interferencia de ondas. (a) campo de una fuente primaria (b) campo de la fuente secundaria; (c) interferencia (Segn Jessel y Angevine, 1982)

Segn Jessel y Angevine, dada una fuente primaria Sp radiando un campo Fp en un volumen V, existe una superficie Z0, que encierra a Sp y divide V en V1 y V2 tal que una distribucin de fuentes secundarias SH sobre ZH radia un campo FH que es cero en V1 y Fp en V2. Por consiguiente en V2 la fuente primaria puede ser sustituida por la distribucin de fuentes secundar las de Huygens FH. Consideremos ahora una serie de fuentes secundarias SS = -SH obtenidas cambiando simplemente la fase de SH. Debido a la linealidad, estas fuentes radiarn un campo -FH = -Fp en V2. El campo resultante en V2 ser entonces Fp en V1 y Fp + (-Fp)=0 en V2. Para calcular la distribucin de fuentes secundarias se requiere conocer el campo primario y la superficie Z0. En CAR, el campo primario se mide por medio de un array de micrfonos. La distribucin de fuentes secundarias se obtiene aplicando el teorema de Kirchhoff, como se ha discutido anteriormente. Adems de que el operador extrapolacin est diseado correctamente, para un buen funcionamiento del sistema CAR se requiere que las caractersticas del ruido no cambien en la trayectoria entre el micrfono de referencia y la zona de cancelacin (micrfono de error). Una de las causas de este cambio puede ser la turbulencia, en el caso de un flujo. La medida de esta constancia de las caractersticas espectrales es la coherencia. De hecho, la prdida de coherencia establece un lmite a la mxima cancelacin que se puede conseguir por control activo (Nowicki et al., 1994). Ross (1982b) usaba un micrfono especialmente diseado para mejorar la relacin de la seal coherente con respecto al ruido del flujo turbulento. El micrfono estaba inserto en un cilindro metlico con el extremo opuesto cerrado aerodinmicamente,

Memoria Descriptiva

Pg. - 56

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

perforado en sus paredes para permitir a las fluctuaciones de presin alcanzar el diafragma. El efecto de los agujeros era promediar a cero la parte incoherente del campo de ruido. La relacin del campo coherente al campo turbulento mejoraba an ms si alineaba el flujo en frente del altavoz por medio de unos tubos finos paralelos a las paredes del tubo. Roure (1985) tena en cuenta la densidad espectral del flujo turbulento en el diseo del controlador en un tubo, estableciendo en 10 m/s el lmite de flujo turbulento para obtener cancelaciones.

Sistemas de Control Activo de Ruido (CAR). INTRODUCCIN Una vez decidido el nmero de fuentes secundarias, y su situacin en el campo a cancelar, es necesario decidir la estrategia de control. Elliott y Nelson (1993), Leitch y Tokhi (1987) y van Overbeek (1993) distinguen entre una estrategia feedback y una feedforward. La cancelacin del ruido de ancho de banda requiere conocimientos de las fuentes generadoras del ruido (de ruido primario) para generar la seal de anti-ruido. La medida del primer ruido es usada como una referencia de entrada al ruido cancelador. En primer lugar el ruido que se asocia con la referencia de entrada es cancelado despus del generador de ruido (un altavoz) cuando la fase y la magnitud estn correctamente modeladas en el controlador digital. Para la cancelacin del ruido de banda estrecha (reduccin del ruido peridico producido por una maquinaria rotatoria), han sido desarrolladas tcnicas activas que son muy efectivas y que no dejan nada a la casualidad (teniendo conocimientos previos de seales de ruido). En lugar de usar un micrfono de entrada, la seal de un tacmetro da informacin sobre la frecuencia primaria del sonido generador. Porque todos los ruidos repetitivos suceden en armnicos de la frecuencia rotacional bsica de la mquina, el sistema de control puede modelar esa frecuencia de ruido conocida y generar la seal de anti-ruido. Este tipo de sistemas de control es deseable en cabinas de vehculos, porque no se ve afectado por las seales de alerta del mismo, funcionamiento de la radio, o la conversacin, las cuales no estarn normalmente sincronizadas con el motor de rotacin. Los sistemas de control activo de ruido estn basados en uno de los dos mtodos. El control feedforward es donde una referencia coherente de ruido de entrada es detectada antes de que se propague por el altavoz cancelador. El control feedback es donde el control activo de ruido intenta cancelar el sonido sin la ventaja de una referencia de entrada. Los sistemas CAR feedforward son las principales tcnicas usadas hoy en da. Los sistemas feedforward estn adems clasificados dentro de dos categoras:

Control adaptativo feedforward de ancho de banda con sensor acstico de entrada. Control adaptativo feedforward de banda estrecha con sensor de entrada no-acstico. Pg. - 57

Memoria Descriptiva

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En una configuracin feedback, vase la siguiente figura, el campo medido por el micrfono monitor, e. es realimentado al altavoz secundario, a travs de un filtro elctrico, para generar el campo secundario, y. Este campo es extrapolado hasta la posicin del monitor, como un campo secundario x, que interacciona con el campo primario, d. En esta configuracin e=x+d. Pero x = y * c = e * h * c, donde * denota convolucin, h es la respuesta impulsiva del filtro elctrico y c es el operador extrapolacin desde la fuente secundaria hasta el micrfono monitor. (Ntese que anteriormente hemos denotado a este operador por W. Cambiamos aqu la notacin para adaptamos a la que usa cada autor en sus artculos). As pues, e=e*h*c+d, y en trminos de la transformada de Laplace, E(s)[1-C(s)H(s)]=D(s). La funcin de transferencia entre el campo primario y el campo total es entonces

E (s) 1 = D(s) 1 C (s) H (S )


Si la funcin de transferencia entre el altavoz secundario y el micrfono monitor fuera relativamente constante y libre de cambio de fase, entonces E(s) tendera a cero (mxima cancelacin) cuando H(s) tendiese a - . Es decir, el controlador ideal sera un simple amplificador inverso. Este es el principio de la tierra acstica virtual que hemos mencionado anteriormente.

(a) Controlador acstico feedback. (b) Circuito equivalente. (c) Diagrama de bloques del controlador digital. (d) Diagrama de bloques equivalente si (Segn Elliott y Nelson, 1993)

Por desgracia, la funcin de transferencia C(s) no es completamente plana en amplitud, ni est exenta de un cambio de fase. La propia propagacin entre el altavoz y el micrfono supone ya un retardo de fase. Si a alguna

Memoria Descriptiva

Pg. - 58

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

frecuencia, este cambio de fase se hace 180 la funcin HC cambia de signo, el filtro puede inestabilizarse, y el campo sonoro sera reforzado en lugar de cancelado. Para evitar este retardo de fase, el altavoz y el micrfono suelen estar muy prximos en un controlador feedback. El retardo de fase crece con la frecuencia. De nuevo, encontramos otra limitacin ms al funcionamiento del CAR en el margen de frecuencias medias y altas. Como veremos, se puede compensar electrnicamente el retardo de fase de la va acstica altavoz micrfono. Esto ensancha el margen de frecuencias de aplicacin del sistema CAR. En la anterior figura tambin se muestra el circuito equivalente del controlador feedback. Consideremos ahora que el filtro es digital, con lo cual las transformadas de Laplace son sustituidas por transformadas z. Adems, el controlador H(z) es implementado como una combinacin paralela de una parte feedback, W(Z) y otra feedforward C ( z ) . La funcin de transferencia de este controlador es H(z) = W(z)/[1 + W(z) C ( z ) ], y sustituyendo, se obtiene

E( z) 1 + W ( z )C ( z ) = D( z ) 1 + W ( z ) C ( z ) C ( z )

Si diseamos C ( z ) tal que C ( z ) =C(z) entonces


E( z) = 1 + W ( z )C ( z ) D( z )
cuyo diagrama de bloques aparece tambin en la anterior figura. Este mtodo de compensar por el retardo de la va acstica secundaria transforma el problema feedback en uno feedforward. El filtro W(z) puede hacerse adaptativo para conseguir la mxima cancelacin. Si la va secundaria vara con el tiempo, entonces C(z) tambin ha de hacerse adaptativo. En una estrategia feedforward se usa un sensor de referencia para detectar el campo primario en alguna posicin anterior al micrfono monitor. Esta seal de referencia de entrada al controlador es especialmente til en ruido aleatorio de banda ancha. Si el ruido es peridico, tal como el de maquinaria rotatoria, esta seal de referencia puede ser detectada por otro sensor distinto a un micrfono (por ejemplo, un acelermetro). Esto tiene la ventaja de que el detector no se ve afectado por el campo secundario. Este es un problema usual en controladores feedforward, el micrfono de referencia detecta, adems del campo primario, el campo secundario.

Memoria Descriptiva

Pg. - 59

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

(a) Controlador feedforward (b) Circuito equivalente (Segn Elliott y Nelson, 1993)

Se han propuesto muchas soluciones para evitar esta realimentacin acstica del altavoz secundario en el micrfono de referencia. Por ejemplo, en el caso del control en tubos, se puede situar un micrfono unidireccional antes del altavoz secundario. Swinbanks (1972) propona el uso de unos arrays anulares de fuentes puntuales. Blondel y Chapelle (1995) publicaban recientemente un diseo electrnico para conseguir micrfonos direccionales en baja frecuencia. En esencia, el sistema consiste en dos micrfonos separados una cierta distancia, uno de los cuales tiene incluido un retardador de fase. La salida de ambos micrfonos se introduce en un filtro digital cuyos coeficientes son adaptados para proporcionar una salida unidireccional. Con esta configuracin, los autores conseguan ndices de directividad entre 38 y 68 dB, para sonidos a frecuencias puras, y entre 15 y 45 dB para sonidos de banda ancha, en la banda de frecuencias entre 50 y 250 Hz. Controladores feedforward con este tipo de micrfonos conseguan una atenuacin adicional de unos 10 dB, en comparacin con el caso omnidireccional. Tambin se puede compensar esta realimentacin acstica en el propio diseo del controlador feedforward. Para ello, se usa un modelo elctrico de esta realimentacin acstica dentro del controlador, cuya salida se resta de la seal detectada por el micrfono de referencia. Del diagrama de bloques de la figura anterior se puede deducir la siguiente funcin de transferencia entre el micrfono monitor y el campo primario

E ( z) W ( z )C ( z ) = 1+ D( z ) P( z )
donde P(z) es la funcin de transferencia entre el sensor de referencia y el sensor de error. Los coeficientes del filtro W(z) pueden ser ajustados para minimizar la seal en el sensor de error, E(z). El diseo ptimo se obtiene cuando W(z)= P(z)/C(z). Es decir, el controlador feedforward tiene que compensar, por una parte la va acstica primaria entre el micrfono monitor y el de referencia, P(z) (extrapolacin), y por otra la va acstica secundaria entre el altavoz secundario y el micrfono monitor , C(z) (filtrado inverso). En esta seccin tambin hablaremos de algoritmos usados en tres tipos de sistemas CAR:

Sistemas CAR feedforward ancho de banda que usan un sensor de entrada acstico (micrfono). Pg. - 60

Memoria Descriptiva

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Sistemas CAR feedforward de banda estrecha que usan un sensor de entrada no acstico. Sistemas CAR feedback que slo usan un sensor de error.

Los filtros adaptativos pueden ser realizados como:

Transversales Respuestas a impulsos finitos (FIR). Recursivos Respuestas a impulsos infinitos (IIR). Filtros enrejados. Filtros en el dominio de las transformadas.

El algoritmo ms comn aplicado a los filtros adaptativos es el filtro transversal usando el algoritmo de medios-mnimos cuadrados (LMS). El ruido residual puede ser usado como seal de error de entrada para un algoritmo adaptativo que ajusta los coeficientes del filtro para modelar (estimar) los efectos acsticos del canal.

El sistema feedforward de ancho de banda Una considerable cantidad del ruido de ancho de banda es producido en conductos tales como tubos de escape y sistemas de ventilacin. Un sistema de control feedforward relativamente simple es el mostrado en la figura siguiente, un conducto estrecho. La seal de referencia x(n) es medida por un micrfono de entrada encerrado en el conducto del ruido, antes de que el ruido pase por un altavoz. El cancelador de ruido usa la referencia de la seal de entrada para generar una seal y(n) de igual amplitud pero desfasada 180. Esta seal de anti-ruido es usada para llevar al altavoz a producir un sonido cancelador que atene el ruido acstico primario en el conducto. El principio bsico del mtodo feedforward ancho de banda es que el retraso del tiempo de propagacin entre el sensor de ruido aguas arriba (micrfono de entrada) y la fuente del control activo (altavoz) ofrece la oportunidad de reintroducir elctricamente el sonido en el campo de accin en la posicin donde causar cancelacin. El espacio entre el micrfono y el altavoz debe satisfacer el principio de causalidad y alta coherencia, queriendo decir que la referencia debe ser medida suficientemente pronto para que la seal de anti-sonido pueda ser generada en el tiempo en que el sonido alcanza el altavoz. Adems la seal de ruido del altavoz debe ser muy similar al ruido medido en el micrfono de entrada, queriendo decir que el canal acstico no puede cambiar significativamente el ruido. El cancelador de ruido usa la seal de entrada para generar una seal y(n) que es de igual amplitud y desfasada 180 con respecto a x(n). Este ruido es llevado al altavoz y usado para cancelar el ruido no deseado.

Memoria Descriptiva

Pg. - 61

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El micrfono de error mide la seal de error (o residual) e(n), la cual es usada para adaptar los coeficientes del filtro para minimizar este error. El uso de una seal de error aguas abajo para ajustar el filtro adaptativo no constituye feedback (retroalimentacin), porque la seal de error no es comparada con la seal de entrada. Las implementaciones actuales requieren consideraciones adicionales para manejar los efectos acsticos en el conducto. Esas consideraciones sern discutidas ms adelante. Algoritmos para sistemas CAR feedforward ancho de banda El control activo de ruido de banda ancha puede ser descrito en un sistema de bloques, como se muestra en la figura 6. Usando una representacin digital en el dominio de la frecuencia del problema, el sistema de control activo de ruido ideal usa un filtro adaptativo W(z) para estimar la respuesta de una desconocida trayectoria acstica primaria P(z) entre el sensor referencia de entrada y el sensor de error. La transformada en z de e(n) puede ser expresada como: E(z)=D(z)+Y(z)=X(z)[P(z)+W(z)] (1)

donde E(z) es la seal de error, X(z) es la seal de entrada, e Y(z) es la salida del filtro adaptativo. Despus del filtro adaptativo W(z) ha convergido, E(z)=0. La ecuacin (1) se convierte: W(z)=-P(z) lo que implica que: y(n)=-d(n) (3) (2)

Por lo tanto, la salida del filtro adaptativo y(n) tiene la misma amplitud pero est 180 desfasada respecto del ruido primario d(n). Cuando d(n) e y(n) estn combinadas acsticamente, el error residual llega a ser 0, resultando una cancelacin entre ambos sonidos basada en el principio de superposicin.

Memoria Descriptiva

Pg. - 62

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Efectos de la trayectoria secundaria. La seal de error e(n) es medida a travs de un micrfono aguas abajo (despus) del altavoz cancelador. La unin sumada en la figura 6 representa el ambiente acstico entre el altavoz cancelador y el micrfono de error, donde el ruido primario d(n) es combinado con el antirruido y(n) de salida del filtro adaptativo. La seal de antirruido puede ser modificada por la funcin de la trayectoria secundaria H(z) en el canal acstico desde y(n) a e(n), justo como el ruido primario es modificado por la primera trayectoria P(z) desde la fuente de ruido del sensor de error. Por tanto, eso es necesario que se compense por H(z). Un diagrama de bloque ms detallado de un control activo de ruido que incluye la segunda trayectoria H(z) se muestra en la figura 7.

De la figura 7, la transformada en z de la seal de error es:

Memoria Descriptiva

Pg. - 63

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (4)

E(z)=X(z) P(z) + X(z) W(z) H(z)

Asumiendo que W(z) tiene suficiente orden, despus de la convergencia del filtro adaptativo, el error residual es 0 (esto es, E(z)=0). Este resultado requiere que W(z) sea: W(z)=-P(z)/H(z) para realizar la ptima funcin de transferencia. As, el filtro adaptativo W(z) tiene como modelo la primera trayectoria P(z) e inversamente el modelo de la segunda trayectoria H(z). Sin embargo, es imposible invertir el retraso causado por H(z) si la primera trayectoria no contiene un retraso de como mnimo igual duracin. Este es el principal lmite que causa restriccin en sistemas de control de ancho de banda feedforward. Adems, de la ecuacin (5), el sistema de control es inestable si hay una frecuencia tal que H()=0. Tambin, el sistema no es efectivo si hay una frecuencia donde P()=0, (esto es, un cero en la primera trayectoria causa una frecuencia de control no observable). Por lo tanto, las caractersticas de la trayectoria secundaria H (z) tienen efectos significativos en el funcionamiento de un sistema CAR. Filtrado X, Algoritmo Mnimo-Medio-Cuadrado (FXLMS) Para acometer los efectos de la funcin de transferencia de la segunda trayectoria H(z), el algoritmo convencional LMS (mnimo, medio, cuadrado) necesita ser modificado. Para asegurar la convergencia del algoritmo, la entrada del error relacionado es filtrada por una estimacin de segunda trayectoria C(z). Este resultado en el algoritmo filtrado FXLMS desarrollado por Morgan. Burgges ha sugerido usar este algoritmo FXLMS para compensar los efectos de la trayectoria secundaria en aplicaciones CAR. El algoritmo FXLMS es ilustrado en la figura 8, donde la salida y(n) es calculada como: (5)

y (n) = w (n) x(n) = wi (n) x(n i )


T i =0

N 1

(6)

en tiempo n y x(n) = [x(n) x(n 1) ... x(n N + 1)] referencia en tiempo n.

donde w (n) = [w0 (n) w1 (n) ... wN 1 (n)] es el vector de coeficientes de W(z)
T T T

es el vector seal de

El filtro es implementado en un DSP en la forma:

y (n) = wi (n) x( n i )
i =0

N 1

Memoria Descriptiva

Pg. - 64

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El algoritmo FXLMS puede ser expresado como:

w(n + 1) = w(n) e(n) x(n)h(n)

(7)

donde es el tamao del paso del algoritmo que determina la estabilidad y la convergencia del mismo y h(n) es la respuesta impulso de H(z). Por lo tanto, el vector de entrada x(n) es filtrado por H(z) antes de actualizar el vector peso. No obstante, en aplicaciones prcticas, H(z) es desconocida y debe ser estimada por el filtro, C(z). Por lo tanto:

wi (n + 1) = wi (n) e(n) x' (n i )


y:

i = 0,1,...N 1

(8)

w(n + 1) = w(n) e(n) x'(n)


donde:

(9)

x ' ( n) = c x ( n) =
T

M 1 i =0

c x( n i )
i

(10)

es el vector de la versin filtrada de la entrada de referencia x'(n) que es calculado como:

x'(n) = [x' (n) x' (n 1) ... x' (n N + 1)]


y:

(11)

Memoria Descriptiva

Pg. - 65

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (12)

c = [c0

c1 ... c M 1 ]

es el vector de coeficientes de la estimacin de la segunda trayectoria, C(z). Cuando este algoritmo es implementado, la convergencia del filtrado puede ser conseguida mucho ms rpidamente de lo que sugiere la teora, y el algoritmo parece ser muy tolerante a errores hechos en la estimacin de la trayectoria secundaria H(z) por el filtro C(z). Como mostr Morgan, el algoritmo todava converge con casi 90 de error de fase entre C(z) y H(z). Esto as importante en la ecuacin (7), en donde la aplicacin CAR usa un signo menos en lugar de un signo ms como en un algoritmo LMS convencional. Esto es porque la seal de error en un sistema CAR es e(n))d(n)+y'(n), debido al hecho de que el error residual e(n) es el resultado de superposicin (adiccin) acstica en lugar de resta elctrica. La funcin de transferencia H(z) es desconocida y es variable en el tiempo debido a los efectos tales como envejecimiento de los altavoces, cambios de temperatura, y el flujo de aire en la trayectoria secundaria. As, algunas de las tcnicas de modelado on-line estaban desarrolladas por Eriksson. Asumiendo la caracterstica de que H(z) es desconocida pero invariante en el tiempo, una tcnica de modelado off-line puede ser usada para estimar H(z) durante la estacin de prueba. Al final de la prueba, el modelo estimado C(z) es arreglado y usado para control activo de ruido (CAR). El sistema experimental para sistemas de modelado off-line se muestra en la figura 9, donde un ruido blanco no correlativo es generado internamente por el DSP. El procedimiento de prueba es resumido en la siguiente figura.

Memoria Descriptiva

Pg. - 66

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

1. Generar una muestra de ruido blanco y(n). Reproducir la seal y(n) para producir cancelacin por el altavoz. Este ruido blanco generado internamente es usado como referencia de entrada para el filtro adaptativo C(z) y los coeficientes de algoritmo de adaptacin LMS. 2. Tomamos de la entrada la respuesta e(n) de la trayectoria secundaria del micrfono de error. 3. Calcula la respuesta del modelo adaptativo r(n):

r ( n) =

M 1 i =0

c (n) y((n i)
i

(13)

donde ci(n) es el i-simo coeficiente del filtro adaptativo C(z) en tiempo n y M es el orden del filtro. 4. Calcula la resta

e' ( n ) = e( n ) r ( n )

(14)

5. Actualiza los coeficientes del filtro adaptativo C(z) usando el algoritmo LMS:

Memoria Descriptiva

Pg. - 67

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera i = 0, 1,, M-1 (15)

ci (n + 1) = ci (n) + e' (n) y(n i )

donde es el tamao del paso que debe satisfacer la siguiente condicin de estabilidad: 1 0< < (16) MPy donde Py es la potencia generada por el ruido blanco y(n). 6. Repite el procedimiento durante 10 segundos. Guarda los coeficientes del filtro adaptativo C(z) y salos en la siguiente cancelacin de ruido. Despus de que el modelo off-line sea completado, el sistema esta sometido en modo de cancelacin activa de ruido. El algoritmo est lustrado en la siguiente figura, y el proceso de control de ruido on-line es resumido siguiendo dicha figura.

1. Introduce la seal de referencia x(n) (del micrfono de entrada) y la seal de error e(n) (del micrfono de error) en los puertos de entrada. 2. Calcula el anti-ruido y(n) de la siguiente manera:

y (n) = wi (n) x( n i )
i =0

N 1

(17)

donde wi(n) es el-simo coeficiente del filtro adaptativo W(z) en tiempo n y N es el orden del filtro w(z). 3. Reproduce al anti-ruido y(n) por el puerto de salida para llevarlo al altavoz cancelador. 4. Calcula la versin filtrada X de x(n):

Memoria Descriptiva

Pg. - 68

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (18)

x' (n) = ci x(n 1)


i =0

5. Actualiza los coeficientes del filtro adaptativo W(z) usando el algoritmo FXLMS

wi (n + 1) = wi (n) e(n) x' (n i )

i = 0, 1,,N-1

(19)

6. Repite el procedimiento para la nueva iteracin. Nota que el nmero total de posiciones de memoria que son requeridas por el algoritmo es de 2(N+M) adems de algunos parmetros. Algoritmo FXLMS agujereado (leaky) Cuando un filtro adaptativo es implementado en un procesador de seal con longitud de palabra constante, existe ruido que es realimentado a los pesos del filtro y se acumula continuamente. Esto puede causar que los coeficientes crezcan ms que el rango dinmico del procesador (overflow), lo que lleva a un funcionamiento inexacto del filtro. Una solucin a este problema est basada en aadir una pequea funcin forzadora, la cual tiende a llevar cada peso del filtro a cero. De acuerdo con la ecuacin (9), este algoritmo de filtro FXLMS agujereado puede ser expresado como:

w(n + 1) = v w(n) e(n) x'(n)

(20)

donde v (factor de goteo) es levemente menor que 1 y x(n) est definido en la ecuacin (11). El algoritmo FXLMS leaky no slo puede reducir el error numrico en implementacin de precisin finita sino que tambin limita la potencia en la salida del altavoz para evitar distorsin no-lineal, lo cual es causado por la sobreexcitacin del altavoz cancelador. Efectos acsticos de la retroalimentacin y soluciones (Algoritmo FBFXLMS) Refirindonos otra vez al sistema simple mostrado en la figura 2, el antiruido salido del altavoz no slo cancela el ruido acstico aguas abajo, desafortunadamente, tambin radia sonido al micrfono aguas arriba, resultando una referencia contaminada de entrada x(n). Esta retroalimentacin acstica introduce polos o lazos de retroalimentacin en la respuesta del modelo y resulta inestabilidad potencial en el sistema de control. Este problema ha sido intensamente estudiado en literatura sobre control de ruido activo y vibraciones. Soluciones como las siguientes han sido propuestas: 1. Usando micrfonos y altavoces direccionales. (Esto tiene una limitacin en que las matrices direccionales son altamente

Memoria Descriptiva

Pg. - 69

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

dependientes de los elementos de dicha matriz y son direccionales slo sobre un rango de frecuencia relativamente estrecho). 2. Usando seales de compensacin fijas (generadas desde el filtro compensador cuyos coeficientes son determinados fuera de lnea usando una seal ejercitante) para cancelar los efectos de la retroalimentacin acstica. 3. Usando un segundo filtro adaptativo fuera de lnea en paralelo con la trayectoria de la retroalimentacin. 4. Usando un filtro adaptativo IIR. Ahora examinaremos los mtodos 2 y 4. En la figura 11 se muestra un controlador feedforward adaptativo con compensacin feedback (retroalimentada). El filtro D(z) es una estimacin del trayectoria feedback F(z) desde la salida del filtro adaptativo y(n) a la salida de la referencia de entrada del micrfono u(n). El filtro D(z) quita la retroalimentacin acstica de la referencia del sensor de entrada; el filtro C(z) compensa la funcin de transferencia de la trayectoria secundaria H (z) en el algoritmo FXLMS. La extraccin de la retroalimentacin acstica desde la referencia de entrada aade un considerable margen de estabilidad al sistema si el modelo D(z) es acertado. Los modelos C(z) y D(z) pueden ser estimados simultneamente por una tcnica modelada fuera de lnea usando ruido blanco generado internamente. Las expresiones para el anti-ruido y(n), la seal filtrada X x(n), y la ecuacin de adaptacin para el algoritmo FBFXLMS son las mismas que para el sistema CAR FXLMS, excepto que x(n) en el algoritmo FBFXLMS es una seal de retroalimentacin libre que puede ser expresada de la siguiente forma:

x ( n) = u ( n) d i y ( n i )
i =1

(21)

donde u(n) es la seal desde el micrfono de entrada, di es el coeficiente de D(z), y L es el orden de D(z). En el caso de un modelo perfecto de trayectoria retroalimentado (esto es, D(z)=F(z)), la retroalimentacin acstica es completamente cancelada por D(z). El filtro adaptativo converge hacia la funcin de transferencia dada en la ecuacin (5), caso ideal sin retroalimentacin acstica. La funcin de D(z) es similar a la cancelacin del eco acstico que se usa en aplicaciones de tele conferencias.

Memoria Descriptiva

Pg. - 70

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El sistema realiza un primer modelo fuera de lnea para estimar la funcin de transferencia H(z) de la trayectoria secundaria del altavoz cancelador al micrfono de error y la funcin de transferencia F(z) de la trayectoria de la retroalimentacin del altavoz cancelador al micrfono de entrada. El algoritmo del modelo fuera de lnea est ilustrado en la siguiente figura y el procedimiento es resumido siguindola.

1. a) Genera una muestra de ruido blanco y(n). b) Extrae dicha seal de excitacin y(n) para obtener el altavoz cancelador. c) Enviar y(n) a los filtros adaptativos C(z) y D(z). d) Enviar y(n) al algoritmo LMS para actualizar C(z) y D(z).

Memoria Descriptiva

Pg. - 71

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

2. Tomar la entrada x(n) del micrfono de entrada y e(n) del micrfono de error. 3. Calcular e(n) y f(n):

e' ( n ) = e( n ) c i ( n) y ( n i )
i =0

M 1

(22)

f ( n) = x ( n) d i ( n) y ( n j )
j =0

L 1

(23)

4. Actualizar los coeficientes de los filtros adaptativos C(z) y D(z) usando el algoritmo LMS:

ci (n + 1) = ci (n) + e' (n) y(n i )


y

i = 0, 1,, M-1

(24)

d j (n + 1) = d j (n) + f (n) y (n j )

j = 0, 1,, L-1

(25)

5. Repetir el modelado fuera de lnea para 10 segundos. Guardar los coeficientes de los filtros adaptativos C(z) y D(z) y usarlos en los siguientes modos de cancelacin de ruido. Despus del modelado fuera de lnea, el sistema CAR est operativo en modo cancelacin activa de ruido. El algoritmo (ilustrado en la figura 11) se resume de la siguiente manera: 1. Obtener u(n) y e(n) de los puertos de entrada. 2. Calcular la referencia de entrada x(n) libre de retroalimentacin:

x ( n ) = u ( n) d i y ( n j )
j =0

L 1

(26)

3. Calcular el anti-ruido y(n):

y (n) = wi (n) x( n i )
i =1

N 1

(27)

donde wi(n) es el i-simo coeficiente del filtro adaptativo W(z) en tiempo n y N es el orden del filtro W(z). 4. Expulsar el anti-ruido y(n) por el puerto de salida para conseguir el altavoz cancelador. 5. Calcular la versin X-filtrada de x(n):

Memoria Descriptiva

Pg. - 72

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (28)

x ' ( n) = c i x ( n i )
i =0

6. Actualizar los coeficientes del filtro adaptativo W(z) usando el siguiente algoritmo FXLMS:

wi (n + 1) = wi (n) + e(n) x' (n i )

i = 0, 1,, N-1

(29)

7. Repetir el algoritmo para la siguiente iteracin. Ntese que el nmero total de posiciones de memoria requerida en este algoritmo es de 2*(N+M+L) adems de algunos parmetros. Algoritmo del filtro-U recursivo LMS (RLMS) El filtro adaptativo de respuesta a impulso infinito (IIR) fue propuesto por Ericsson para uso en CAR. Esta aproximacin considero la retroalimentacin acstica como una parte acstica de toda la planta, y los polos introducidos por la retroalimentacin fueron sustituidos por polos del filtro adaptativo IIR. Este sistema de control rastreaba dinmicamente cambios en las trayectorias secundarias y de retroalimentacin durante las operaciones de cancelacin. Adems, como se mostr en la ecuacin (5), la estructura IIR tiene la habilidad de modelar la funcin de transferencia con polos y ceros. Aunque hay varios algoritmos adaptativos IIR que pueden ser usados, el algoritmo recursivo LMS (RLMS) desarrollado por Feintuch es elegido aqu por razones de simplicidad computacional. El algoritmo RLMS debe tambin ser modificado para compensar la funcin de transferencia de la trayectoria secundaria y de la retroalimentacin. En la figura 13 se muestra un diagrama de bloques de un sistema CAR usando un filtro adaptativo IIR, donde y(n) es la seal de salida calculada del filtro IIR.

y(n) = a (n) x(n) + b (n) y (n 1) = ai (n) x(n i ) + bi (n) y (n j )


T T i =0 j =1

N 1

(30)

donde: a(n)=[a0(n) a1(n) aN-1(n)]T es el vector de pesos de A(z) en tiempo n. b(n)=[b1(n) b2(n) bM(n)]T es el vector de pesos de B(z) en tiempo n. y(n-1)=[y(n-1) y(n-2) y(n-M)]T es el vector de seales contenido en la retroalimentacin de salida con un retraso. N=orden de A(z). M=orden de B(z). El algoritmo del filtrado-U RLMS puede ser expresado por dos ecuaciones vectoriales para los filtros adaptativos A(z) y B(z) tal y como sigue:

a(n + 1) = a(n) e(n) x'(n)

(31)

Memoria Descriptiva

Pg. - 73

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

b(n + 1) = b(n) e(n) y '(n 1)


donde
y '(n 1) = [ y ' ( n 1) y ' (n 2) ... y ' ( n M )]
T

(32)

(33)

y ' ( n) = c j y ( n j )
j =1

(34)

es y(n) filtrada desde C(z), y x(n) est definida en la ecuacin (11).

Despus que A(z) y B(z) converjan, la seal de error e(n) medida es igual a 0. Ahora:

W ( z) =

A( z ) P( z ) = 1 B( z ) H ( z ) P( z ) F ( z )

(35)

Dada la complejidad y estructura de ceros y polos de P(z), H(z) y F(z), la convergencia de A(z) y B(z) no puede ser generalizada. La solucin ptima A*(z) y B*(z) no es nica; sin embargo, el algoritmo converger a una solucin que minimiza la seal de error residual e(n). Basndonos en la ecuacin (35), un posible conjunto de soluciones es:

A ( z ) =
y

P( z ) H ( z)

(36)

Memoria Descriptiva

Pg. - 74

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (37)

B ( z) =

P( z ) F ( z ) H ( z)

Por esto, es razonable usar un orden mayor para B(z) que para A(z). El sistema realiza un modelo fuera de lnea para estimar la funcin de transferencia de la trayectoria secundaria usando el algoritmo resumido dentro de la seccin del algoritmo FXLMS. Despus del modelo fuera de lnea, el sistema CAR est operativo en modo de cancelacin de ruido. El algoritmo detallado, mostrado en la figura 13, es resumido como sigue: 1. Tomamos la seal de referencia x(n) y la seal de error e(n) de los puertos de entrada. 2. Calculamos el anti-ruido y(n):

y (n) = ai (n) x(n i ) + bi (n) y (n j )


i =0 j =1

N 1

(38)

donde N es el orden del filtro A(z) y J es el orden del filtro B(z). 3. Ponemos el anti-ruido y(n) en el puerto de salida para hacer al altavoz cancelador. 4. Realizamos la operacin de filtrado-U:

x ' ( n) =
y

M 1 i =0

c x(n i)
i M 1 i =0

(39)

y ' ( n) =

c x(n i 1)
i

(40)

donde M es el orden del filtro C(z). 5. Actualizamos los coeficientes de los filtros adaptativos A(z) y B(z) usando algoritmo del filtrado-U RLMS:

ai (n + 1) = ai (n) + a e(n) x' (n i )


y

i = 0, 1,, N-1

(41)

b j (n + 1) = b j (n) b e(n) y' (n j ) j = 1, 2,, J


6. Repetir el algoritmo para la siguiente iteracin.

(42)

Memoria Descriptiva

Pg. - 75

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El sistema feedforward de banda estrecha. En aplicaciones donde el ruido primario es peridico (o casi) y est producido por una mquina rotativa o similar, el micrfono de entrada puede ser sustituido por un sensor no acstico como un tacmetro, un acelermetro, o un sensor ptico. Este cambio elimina el problema de la retroalimentacin acstica (descrita anteriormente). La siguiente figura muestra un diagrama de bloques del control activo de ruido mediante feedforward de banda estrecha. La seal del sensor no acstico es sincronizada con el origen del ruido y es usada para simular una seal de entrada que contiene la frecuencia fundamental y todos los armnicos del ruido primario. Este tipo de sistema controla los sonidos armnicos a travs de adaptacin filtrando la seal de referencia sintetizada para producir una seal de cancelacin. En muchos vehculos la seal de las revoluciones por minuto (RPM) es accesible y puede ser usada como seal de referencia. An se necesita un micrfono de error para medir el ruido acstico residual. Esta seal de error es usada para ajustar los parmetros del filtro adaptativo.

Generalmente, la ventaja de este sistema CAR de banda estrecha es que el sensor no acstico es insensible al sonido cancelador, produciendo esto un control muy robusto. Especficamente esta tcnica tiene las siguientes ventajas:

Los problemas ambientales y de envejecimiento del micrfono son eliminados. Esto es especialmente importante desde el punto de vista de la ingeniera, porque es difcil de medir ruido de referencia a altas temperaturas y en conductos de gases explosivos como en tubos de escape de mquinas. La periodicidad del ruido permite eliminar la causalidad. La frecuencia de la seal de onda del sonio es constante. Slo son requeridos ajustes por fase y magnitud. Esto da lugar a un posicionamiento ms flexible del altavoz cancelador y permite que puedan ser introducidos retrasos ms largos por el controlador.

Memoria Descriptiva

Pg. - 76

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El uso de una seal de referencia controladora-generadora tiene la ventaja de una cancelacin selectiva; esto es, tiene la habilidad de controlar cada armnico independientemente. Esto es necesario para modelar slo la parte de la funcin de transferencia de la planta acstica correspondiente a los tonos armnicos. El filtro FIR de orden inferior puede ser usado, haciendo el control activo de ruido peridico ms eficiente computacionalmente. Se evita la retroalimentacin acstica no deseada del altavoz cancelador hacia la entrada del micrfono.

Algoritmos para sistemas CAR de feedforward de banda estrecha. En muchas aplicaciones prcticas, la medida acstica de la seal de referencia no es accesible, tal y como ocurre cuando el ruido primario es producido por mquinas rotativas y es peridico como el ilustrado en la figura 14. En esos casos se usa un mtodo alternativo. Este mtodo estima la seal acstica usando una medida indirecta de un sensor no-acstico en lugar de un micrfono de referencia.

La sntesis de la seal de referencia es provocada por un pulso de entrada sincronizado desde la fuente del ruido, tal como la seal de un tacmetro sintetizada desde el motor de un automvil. En general, hay dos tipos de seales de referencia, que estn comnmente usadas en sistemas CAR de banda estrecha:

Serie de impulsos con periodo igual a la inversa de la frecuencia fundamental del ruido peridico. Onda senoidal que tiene la misma frecuencia que el armnico correspondiente a ser cancelado.

La primera tcnica es llamada el mtodo de la sntesis de forma de onda (tambin llamada algoritmo Essex), el cual fue propuesto por Chaplin. Esta tcnica puede ser analizada como un filtro adaptativo transversal excitado por

Memoria Descriptiva

Pg. - 77

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

un tren de impulsos actualizados del algoritmo FXLMS. La segunda tcnica es llamada el filtro adaptativo de ranura (notch) por intrusin de cancelacin. La frecuencia simple del filtro de ranura usa dos pesos adaptativos y 90 de fase cambiante para cancelar una indeseada interferencia sinusoidal en la entrada primaria. La aplicacin de esta tcnica al control activo de ruido fue propuesta por Ziegler. Mtodo de sntesis de forma de onda de sintetizado de la seal de referencia (algoritmo Essex) Un sintetizador de forma de onda produce una seal de cancelacin y(n) para llevar al altavoz cancelador. La forma de onda generada es llevada a la salida del altavoz cancelador secuencialmente y es sincronizada con pulsos del sensor no-acstico. Un micrfono en el rea de anulacin de ruido mide el sonido residual y lo lleva a la unidad de adaptacin que es usada para modificar el sintetizador de forma de onda. La cancelacin se produce slo a la frecuencia del armnico; las bandas de frecuencias entre armnicos no se ven afectadas. Esto permite, por ejemplo, conversaciones normales ser odas claramente dentro de habitaciones ruidosas, o permitir que la radio pueda ser oda a travs de auriculares mientras pasa una motocicleta. Otra razn para eliminar slo algunas partes del espectro de ruido en un coche pudiese ser el hecho de que el conductor necesita algunas indicaciones sonoras del motor para ser capaz de controlar el vehculo de manera segura. La seal de sincronizacin preferente es derivada de una rueda dentada del motor, generando un tren de impulsos de posiblemente un centenar de pulsos espaciados igualmente en cada ciclo de la fuente (de ruido se entiende). El sintetizador de forma de onda almacena muestras de forma de onda canceladas {wj(n), j=0, 1, N-1}, donde N es el nmero de muestras por cada ciclo de forma de onda. Esta seal de sincronizacin es usada para deducir un puntero de direccin de memoria, el cual puede ser un contador incrementado mediante software controlado por interrupciones generadas desde la seal de sincronizacin. Estas muestras representan la forma de onda requerida para ser generada y est presentada secuencialmente por un convertidor digitalanalgico para producir la actual forma de onda anti-ruido para el altavoz cancelador. Esto es:

y ( n) = w j ( n)

0 j N 1

(43)

representa el j-simo elemento de {wj(n)}, donde j es un puntero. Algunos procesadores de seal avanzados tienen punteros circulares para este tipo de direccionamientos. El ruido residual recogido del micrfono de error es muestreado en sincronizacin con la referencia y las seales canceladoras. El muestreo de la seal de error e(n) es entonces usado por la unidad de adaptacin para ajustar los valores de la forma de onda canceladora {wj(n)} siguiendo el siguiente algoritmo:

Memoria Descriptiva

Pg. - 78

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (44)

w j (n + 1) = w j (n) sign[e(n)]

Este algoritmo es el algoritmo de signo de error LMS (desde la referencia de entrada x(n)=1), el cual se deriva basado en un criterio de minimizacin del valor absoluto de la seal de error instantnea. Para tener una convergencia ms rpida, puede ser usado el algoritmo tradicional LMS:

w j (n + 1) = w j (n) e(n)
donde es menor que la unidad.

(45)

En la prctica, la seal corriente de error e(n) no corresponde con el elemento j-simo de la forma de onda canceladora wj(n). Para un sistema prctico, hay un retraso de varios milisegundos entre el tiempo en que la seal [y(n)=wj(n)] es alimentada hacia el altavoz y el tiempo en que esta es recibida por el micrfono de error. Este retraso puede tenerse en cuenta mediante un tiempo de offset sustrado desde el puntero circular j que est punteando la forma de onda:

w j (n + 1) = w j (n) e(n)

(46)

donde A es el retraso de tiempo de las muestras de datos entre la salida de la seal desde el sintetizador de forma de onda y su recepcin en el micrfono de error; esto es:

t
T

(47)

donde es el retraso de tiempo (el cual es constante para una configuracin micrfono-altavoz dada) y T es el periodo de muestreo. Porque la tasa de muestreo esta sincronizada con la fuente de sonido, este nmero de offset es actualizado en correspondencia con los cambios de dicha tasa de muestreo. El mayor grado de cancelacin puede ser conseguido en presencia de un ruido no sincronizado en segundo plano si la forma de onda residual tiene una media por encima del nmero de ciclos. El funcionamiento mejora en 3-5 dB por componente de frecuencia. Sin embargo, el nmero necesario de promedios depende fuertemente de las caractersticas del ruido. As, debe haber un equilibrio entre los grados de cancelacin y el tiempo de adaptacin requerido para cancelar formas de ondas estacionarias. La complejidad de los sistemas CAR ancho de banda se discuti anteriormente y los sistemas CAR de banda estrecha usando mtodos de sntesis de forma de onda son resumidos en la tabla 1, donde N es el orden del filtro y la complejidad es dada en trminos del nmero de coeficientes que deben ser actualizados por periodo.

Memoria Descriptiva

Pg. - 79

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El concepto del mtodo de la sntesis de la forma de onda puede ser analizado como si un filtro adaptativo fuera excitado por un tren de pulsos peridicos de periodo L. Para analizar la salida canceladora e(n) para una entrada d(n) dada, consideraremos la funcin de transferencia G(z) entre la entrada inicial D(z) y el error de salida E(z). Esto se muestra de la siguiente manera:

G( z) =

E ( z) 1 z N = D( z ) 1 (1 ) z N

(48)

Las propiedades de la funcin de transferencia G(z), dada en la anterior ecuacin (48), son aquellas de un filtro rastreador de ranura en cada frecuencia armnica de la interferencia. Por tanto, las componentes de los tonos del ruido peridico en la frecuencia fundamental y en la armnica pueden ser atenuadas por este filtro mltiple de ranura. La ecuacin (48) tambin muestra la localizacin de los polos y los ceros de G(z). Para una frecuencia fundamental genrica 0=2/L, los polos y los ceros estn alineados exactamente con el mismo ngulo para algunos valores dados de tamaos de paso . Los ceros estn en

z k = e jk0
y los polos en

(49)

Pk = (1 )e jk0

(50)

donde 0kN-1 es un ndice de frecuencia. La posicin de los polos y los ceros est mostrada en la figura 15.

Memoria Descriptiva

Pg. - 80

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Los ceros deben tener amplitud constante (|z|=1) y estar igualmente espaciados (2/N) en el crculo unidad del plano z para crear reas nulas (nulls) en la respuesta en frecuencia para la frecuencia k0. Los polos tienen el mismo ngulo (frecuencia) que los ceros pero stos estn igualmente espaciados en el crculo una distancia (1-) del origen. El efecto de los polos debe introducir una resonancia en las cercanas del rea nula (null), reduciendo el ancho de banda de la ranura. Si se usa una tal que <<1, el ancho de banda de cada ranura puede ser:
BW

(Hz ) T

(51)

Por lo tanto, mientras ms pequeo el tamao de paso , ms cercano los polos estn para los ceros y ms estrechos los anchos de banda de las ranuras que pueden ser logradas. El efecto de un polo en un ancho de banda de ranura (notch) es mostrado a continuacin:

Memoria Descriptiva

Pg. - 81

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Filtro adaptativo de ranura El segundo tipo de seales de referencia usadas en sistemas CAR de banda estrecha son ondas senoidales con la misma frecuencia que el ruido de banda estrecha a cancelar. Cuando se emplea una seal senoidal como referencia de entrada, el algoritmo LMS se convierte en un filtro adaptativo de ranura para quitar la componente espectral primaria dentro de una banda estrecha centrada alrededor de la frecuencia de referencia. Normalmente se desea una ranura muy estrecha para filtrar la interferencia sin distorsionar la seal y puede ser realizada con un cancelador de ruido adaptativo. Las ventajas del filtro adaptativo de ranura son que ofrece fcil control de ancho de banda, un rea nula infinita, y la capacidad de rastreo adaptable a la frecuencia exacta de la interferencia. Esto es realmente cierto cuando la frecuencia de la interferencia sinusoidal cambia lentamente. La aplicacin del filtro adaptativo de ranura al control activo peridico de ruido fue desarrollado por Ziegler. En la figura 17 se muestra un diagrama de bloques de este sistema CAR de banda estrecha con dos pesos adaptativos. El cronometraje de la seal del sensor, tal como el tacmetro de una mquina, es usado para determinar la frecuencia fundamental a la cual el ruido repetitivo est siendo generado. Por ejemplo, un motor elctrico rodando a 1800 RPM da 30 revoluciones por segundo con una frecuencia fundamental de 30 Hz. Un motor de 4 cilindros rodando a 1800 RPM tambin da 30 vueltas por segundo pero con slo 15 ciclos de disparo completos por segundo, y por lo tanto con una frecuencia fundamental de 15 Hz.

Memoria Descriptiva

Pg. - 82

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El controlador activo de ruido de frecuencia simple mostrado en la anterior figura puede ser configurado en estructuras paralelo o cascada para cancelar el ruido de banda estrecha a la frecuencia fundamental y su armnico. Un generador de ondas senoidales nos da una seal de referencia sinusoidal a la frecuencia deseada. Empleando la transformada de Hilbert como variador de frecuencia en 90, la onda senoidal es dividida en dos componentes ortogonales, x0(n) y x1(n), las cuales pueden ser usadas como referencia de entrada para el filtro adaptativo. Estas seales son cargadas separadamente y luego sumadas para producir la seal de cancelacin y(n):

y (n) = w0 (n) x0 (n) + w1 (n) x1 (n)


donde

(52)

x0 (n) = A cos(k0 n)
y

(53)

x1 (n) = A sin(k 0 n)

(54)

donde 0 es la frecuencia fundamental, k es el ndice armnico, A es la amplitud de la seal de referencia, y n es el ndice de tiempo. El generador de onda senoidal puede ser implementado por una tcnica de bsqueda en una tabla ROM o por un resonador digital. La magnitud y la fase de esta seal son ajustadas en el controlador, el cual alimenta uno o ms altavoces sirviendo como fuente de control para cancelar el componente correspondiente de ruido. El algoritmo LMS actualiza los pesos de los filtros para minimizar el error residual e(n):

Memoria Descriptiva

Pg. - 83

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (55)

w0 (n + 1) = w0 (n) e(n) x0 (n k )
y

w1 (n + 1) = w1 (n) e(n) x1 (n k )

(56)

donde k es usado para compensar los efectos de la trayectoria secundaria en el armnico k. Este retraso representa el retraso introducido entre la salida del filtro adaptativo y la entrada del error residual. Cuando el retraso de tiempo del sistema es fijo, los valores pueden ser estimados por una tcnica off-line modelada por la trayectoria secundaria (descrita previamente) y entonces se construye dentro del controlador. En general, los valores del retraso dependen de la frecuencia. Estos retrasos pueden ser determinados convirtiendo la respuesta de los impulsos de C(z) dentro del domino de la frecuencia por la transformada discreta de Fourier y calculando los retrasos de los valores de fases. Esto es:

tf =

f 2f

(57)

donde tf es el retraso de tiempo a la frecuencia f en segundos, f es la fase a ala frecuencia f en radianes, y f es la frecuencia en Hz. Los valores de k en la ecuacin (55) y (56) vienen determinados por:

k = t f fs
donde fs es la tasa de muestreo.

(58)

Como se mencion previamente, el retraso unitario z- de la trayectoria secundaria de la figura 17 puede ser cambiado por la estimacin de la segunda trayectoria. El algoritmo del filtro adaptativo de ranura puede ser expresado como:

wi (n + 1) = wi (n) e(n) xi ' (n)

(59)

Para i=0 1 y donde xi(n) es la versin filtrada de xi(n) por la estimacin de la trayectoria secundaria C(z). Estructura para cancelacin de frecuencia mltiple En las aplicaciones prcticas, el ruido peridico usualmente contiene tonos en la frecuencia fundamental y varias frecuencias armnicas. Este tipo de ruido puede ser atenuado por filtros con mltiples ranuras. En general, la realizacin de mltiples ranuras requiere un filtro con orden alto, el cual tambin pueda ser realizado por una conexin en paralelo o cascada de mltiples secciones de segundo orden. Un mtodo para eliminar mltiples

Memoria Descriptiva

Pg. - 84

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

sinusoidales u otra interferencia peridica fue propuesto por Glover. La aplicacin de estas tcnica para el control activo de ruido peridico debe generar la entrada de referencia como una suma de M senoides. Esto es:

x(n) = A m cos( m n)
m =1

(60)

donde Am y m son la amplitud y la frecuencia de la m-sima sinusoidal, respectivamente. Cuando una suma de sinusoidales es aplicada a un filtro adaptativo, el filtro converge a un tiempo variable, filtro de ranura ajustable con una ranura localizada en cada frecuencia de referencia. Tan largo como una referencia es posible que incluya todas las interferencias sinusoidales, el sistema CAR de banda estrecha crea una ranura sobre cada sinusoidal y la sigue si sta cambia en frecuencia. Este filtro adaptativo en ranura proporciona un simple mtodo para el rastreo y la eliminacin de interferencias sinusoidales. La aplicacin del mtodo de Glover para atenuar activamente el ruido generado en el motor fue patentado por Pfaff. La seal de referencia representando la seleccin mltiple de componentes de ruido armnico es generada desde una predeterminada tabla de valores. Una senoidal de frecuencia simple puede ser cancelada por un filtro adaptativo simple de dos pesos. Para el caso donde el ruido primario indeseado contiene M senoidales, M filtros de dos pesos pueden ser conectados en paralelo para atenuar esa componente de banda estrecha. Un conjunto de referencias senoidales estrechamente espaciadas es sintetizado desde la informacin proporcionada por la seal de sincronizacin. Una sinusoidal especfica es usada como la referencia de entrada para el correspondiente canal del filtro adaptativo de dos pesos Wm(z), el cual es conectado en paralelo con los otros filtros, como se muestra en la figura 18. La estructura de cada canal individual se muestra en la figura 17. La funcin de transferencia global de esta configuracin en paralelo es:

W ( z ) = Wm ( z )
m =1

(61)

donde m = 1, 2, y M es el ndice del canal. La seal de cancelacin es una suma de M salidas de filtros adaptativos. Esto es:

y (n) = wm (n)
m =1

(62)

Cada entrada de referencia es filtrada por la trayectoria secundaria estimada C(z) como:

Memoria Descriptiva

Pg. - 85

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera (63)

x m (n) = ci x m (n 1)
i =0

L 1

m = 1, 2,, M

Porque slo se usa un micrfono de error, hay slo una seal de error e(n) para actualizar M filtros adaptativos basados en el algoritmo FXLMS.

El sistema CAR Feedback El CAR feedback fue propuesto por Olson y May en 1953. En el esquema que plantearon, se usaba un micrfono como sensor de error para detectar ruido no deseado. La seal de error de este sensor retornaba a travs de un amplificador (filtro electrnico) que daba magnitud y fase diseadas para producir cancelacin en el sensor, por medio de un altavoz colocado cerca del micrfono. Esta configuracin daba una atenuacin limitada a un rango de frecuencia restringido por ruido peridico o banda limitada. Adems sufra de inestabilidad, a causa de la posibilidad de retroalimentacin positiva a altas frecuencias. Sin embargo, debido a la naturaleza predecible de las seales de banda estrecha (narrowband), han sido desarrollados muchos sistemas robustos que usan esta salida del sensor de error para predecir la referencia de entrada (ver figura). La referencia de entrada regenerada es combinada con un sistema de control realimentado activamente de banda estrecha.

Memoria Descriptiva

Pg. - 86

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Una de las aplicaciones del CAR retroalimentado reconocidas por Olson es el control del rea de sonido en los auriculares y en los protectores auditivos. En esta aplicacin, un sistema reduce la presin en la cavidad cerrada de la oreja del oyente. Esta aplicacin est desarrollada y es comercialmente disponible. Algoritmos para sistemas CAR feedback (retroalimentados). El principio del control activo de ruido retroalimentado para un caso de canal simple, el cual puede ser formulado como un "predictor" adaptativo, se muestra en la figura 19. Este sistema requiere un solo micrfono de error, porque as se evita el problema inherente de la retroalimentacin acstica en un sistema de 2 micrfonos retroalimentados que fue discutido anteriormente. Los esquemas CAR retroalimentados dependen de las seales teniendo caractersticas peridicas. Algunos sistemas CAR retroalimentados no adaptativos han sido descritos en la literatura en los aos recientes. Burgus sugiri el uso de esta configuracin con el algoritmo FXLMS para evitar el uso del micrfono de entrada. La idea bsica de este algoritmo es que debe estimar el ruido primario d(n) y usarlo como referencia de entrada para el filtro adaptativo. Como se muestra en la figura 19 y usando el algoritmo FXLMS, el ruido primario es estimado como:

x ( n ) = e( n ) c i y ( n i )
i =0

M 1

(64)

donde ci (i = 0, 1, M-1) es el coeficiente del filtro de estimacin de la trayectoria secundaria C(z) y M es el orden de dicho filtro C(z).

Memoria Descriptiva

Pg. - 87

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

De la anterior figura se obtiene:

D( z ) = E ( z ) H ( z )Y ( z )

(65)

donde E(z) y Y(z) son accesibles. Si la funcin de transferencia H(z) de la trayectoria secundaria es modelada por C(z):

D( z ) X ( z ) = E ( z ) C ( z )Y ( z )
La seal de error puede ser mostrada como:

(66)

E ( z ) = D( z ) W ( z ) H ( z ) X ( z )

(67)

La seal de error para este sistema CAR retroalimentado es 0 cuando:

W ( z ) H ( z ) X ( Z ) = D( z )

(68)

El cual es posible si el ruido primario D(z) es peridico y la funcin de transferencia W(z)H(z) es igual a un retraso equivalente a un mltiplo del periodo de la seal. El modelo fuera de lnea est dirigido primero a estimar la funcin de transferencia de la trayectoria secundaria H(z) usando el algoritmo FXLMS. El modo de cancelacin de ruido comienza despus del aprendizaje. El algoritmo CAR retroalimentado ilustrado en la figura 19 se resume tal y como sigue: 1. Tomamos la seal de error e(n) del micrfono de error. 2. Calculamos (estimamos) la seal de entrada de referencia x(n):

x ( n ) = e( n ) c i y ( n i )
i =0

M 1

(69)

Memoria Descriptiva

Pg. - 88

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

3. Calculamos el anti-ruido y(n):

y (n) = wi (n) x( n i )
i =0

N 1

(70)

donde wi(n) es el i-simo coeficiente del filtro adaptativo W(z) en tiempo n y N es el orden de dicho filtro W(z). 4. Llevamos el anti-ruido y(n) al puerto de salida para conseguir el altavoz cancelador 5. Calculamos la versin filtrada-X de x(n):

x ' ( n) = c i x ( n i )
i =0

(71)

6. Actualizamos los coeficientes del filtro adaptativo W(z) usando el algoritmo FXLMS:

wi (n + 1) = wi (n) e(n) x' (n i )

i = 0, 1,, N-1

(72)

7. Repetimos el procedimiento para la siguiente iteracin.

Los sistemas CAR multicanal. Muchas aplicaciones pueden mostrar comportamientos complejos. Estas aplicaciones son:

CAR en largos conductos o encerramientos. Control activo de vibracin en cuerpos rgidos o estructuras con mltiples grados de libertad. CAR en compartimentos de pasajeros en vehculos o aviones.

Se dan cuando la geometra del sonido de campo es complicada, es decir, que no basta con ajustar una simple trayectoria secundaria para cancelar el ruido primario usando un simple micrfono de error. El control de campos acsticos complicados requiere exploracin y desarrollo de estrategias ptimas y la construccin de un controlador multicanal adecuado. Esta tarea requiere el uso de un algoritmo de adaptacin con mltiples entradas y mltiples salidas. El sistema CAR multicanal general abarca una matriz de sensores y actuadores. A continuacin se muestra un diagrama de bloques de un sistema CAR multicanal de aplicacin triple.

Memoria Descriptiva

Pg. - 89

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El por qu de la eleccin de los DSPs. Se har un recorrido a travs de las distintas opciones que se barajaron hasta llegar a una primera decisin importante dentro del proyecto. 1. Tarjeta de sonido de un PC: Al principio se pens la posibilidad de comenzar la investigacin con la tarjeta de sonido de un PC. Adquiriendo datos y tratndolos con matlab y simulink, en una primera posibilidad, o Labview. Se present como una buena opcin ya que dispona de grandes ventajas:

En defecto de ninguna otra, la tarjeta con la que se comenzara a trabajar sera la tarjeta de sonido del PC. Por tanto, no habra que hacer ninguna inversin inicial fuerte. El fcil manejo de Matlab, Simulink y Labview La tarjeta de sonido de un PC es muy fcil de manejar.

Adems se presentaban ventajas segn ussemos Matlab y Simulink o Labview. Simulink dispone de una librera especfica para comunicarse con una tarjeta de adquisicin de datos. El problema es que esta librera es muy bsica y no nos permite toda la libertad para la fabricacin de un sistema CAR. Con Labview se asegura, en cierto modo, el problema del tiempo real (siempre hablando de baja frecuencia). Pero tenemos el problema de comunicar la tarjeta con el programa (se deberan crear archivos de muy bajo nivel, tocando registros del sistema para sincronizar la tarjeta con el software).

Memoria Descriptiva

Pg. - 90

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Finalmente, tras indagar sobre el posible rendimiento que podra dar esta configuracin, se decidi no escoger ste como el camino a seguir. El principal problema que tena el usar un PC, su tarjeta de sonido y matlab y simulink era el tiempo real (aunque se pudiese solventar con Labview). Nosotros precisamos de un sistema ms o menos rpido para que podamos capturar, tratar, reproducir y en algunos casos realimentar sonido de forma casi instantnea. Esto no es del todo el punto fuerte del sistema operativo bajo e que estamos acostumbrados a trabajar (Windows). Tendramos que ver hasta qu punto podemos asegurar un tiempo ms o menos real. Y si no se pudiese asegurar con este sistema operativo tendramos que trabajar en otro. Adems de esta gran desventaja, tendramos la falta de lneas de entrada (ya que nos hacen falta al menos dos y la mayora slo dispone de una), junto con el problema de la calidad. Llegados a este punto en el que desechamos la posibilidad de comenzar nuestra lnea de investigacin con un PC y su tarjeta de sonido. Era el momento de indagar a ver qu aparatos de captacin eran los ms adecuados para el control activo de ruido y en mayor medida para nuestro propsito. Lo ms extendido en cuanto al ncleo de captura y procesamiento de datos en el marco actual son los DSP. Las principales lneas de investigacin que han hecho algo en esta materia comenzaron trabajando con este tipo de tarjetas. A nosotros lo que nos frenaba a tomar esta opcin como vlida era el coste inicial del proyecto. De hecho, a pesar que pareca ser el mejor camino para iniciar una lnea de investigacin de garantas, se siguieron buscando otros medios. No era apropiado hacer ese desembolso econmico en algo tan especfico, y que luego, tras el presente proyecto, no tuviera utilidad alguna dentro del marco de investigacin de la escuela. 2. DSP Esta opcin siempre estuvo presente. Sobre todo despus de percatarnos de la dificultad de obtener un sistema en tiempo real. El principal problema era el desembolso econmico que supona adquirir un DSP. Sobre todo sabiendo que el presente proyecto no sera ms que un acercamiento a la materia del control activo de ruido. Tan slo por esta razn se siguieron buscando otras vas de trabajo. 3. Tarjeta de adquisicin de datos. La solucin ideal que mantuviera un equilibrio entre coste y prestaciones eran las tarjetas de adquisicin de datos.

Memoria Descriptiva

Pg. - 91

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Para el tema de la comunicacin, Matlab contiene un paquete de libreras para comunicarse con tarjetas de adquisicin de datos, por lo que este problema en principio pareca superado, adems como ya comentamos antes el propio Matlab nos proporciona un entorno de trabajo para operaciones de tiempo real. (real-time workshop). Para que una de estas tarjetas nos fuera totalmente til buscbamos una que tuviera al menos las siguientes caractersticas: 2 entrada analgicas 2 salidas analgicas Frecuencia de muestreo suficientemente alta para nuestras pretensiones Conectarse fcilmente a un PC

Adems sera bastante interesante que fuese compatible con Windows y con algn entorno de tratamiento de datos que nos permitiera trabajar mejor. En un principio se pens fuertemente en adquirir una tarjeta de la serie de National Instruments B Series Multifunction DAQ. Estas tarjetas de adquisicin tienen las siguientes caractersticas: Ideal para usuarios noveles 2 entradas analgicas de 16 bits 8 o 10 lineas de I/O digital Triger Digital Ms de 4 rangos de seal de entrada analgica Vlido para los siguientes sistemas operativos: - Windows 2000/XP - Mac OS X - Linux Software recomentdado: LabVIEW LabWindows/CVI Measurement Studio VI Logger SignalExpress Aqu de puede ver un detalle de la tarjeta de adquisicin de datos que se plante con ms posibilidades de ser la opcin elegida:

Memoria Descriptiva

Pg. - 92

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En un principio se pens que se podra trabajar con la tarjeta de adquisicin a travs de Matlab y Simulink. Desde Nacional Instruments se confirm que esta tarjeta en concreto no era compatible para su uso en conjunto con el entorno de Matlab. Esto fue lo que hizo replantearse la eleccin de la tarjeta de adquisicin de datos como camino a tomar. Si se elegan las prestaciones justas y necesarias, no se tena compatibilidad con Matlab, y si se elega compatibilidad con Matlab se exceda en caractersticas y prestaciones (no importaba en un principio) pero suba considerablemente el precio. Adems del inconveniente que podra surgir a la hora de adquirir datos (no era compatible con Matlab), al estar hablando de una tarjeta de adquisicin de datos simple se sabe que se tendrn que adaptar salidas y entradas (adaptacin de impedancias, de clavijas,). Estos impedimentos llevaron a la solucin final, los DSPs.

Procesadores Digitales de Seal (DSPs) Introduccin Los rpidos avances en la electrnica, particularmente en las tcnicas de fabricacin de circuitos integrados, han tenido, y sin duda continuarn teniendo, un gran impacto en la industria y la sociedad. El rpido desarrollo de la tecnologa de circuitos integrados, empezando con la integracin a gran escala (LSI, Large Scale Integration), y ahora la integracin a gran escala (VLSI, Very Large Scale Integration) de circuitos electrnicos ha estimulado el desarrollo de computadores digitales ms potentes, pequeos, rpidos y baratos y de hardware digital de propsito general. Estos circuitos digitales baratos y relativamente rpidos han hecho posible construir sistemas digitales altamente sofisticados, capaces de realizar funciones y tareas del procesado de seales

Memoria Descriptiva

Pg. - 93

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

digitales que normalmente eran demasiado difciles y/o caras con circuitera o sistemas de procesado de seales analgicas. De aqu que muchas de las tareas del procesado de seales que convencionalmente se realizaban analgicamente se realicen hoy mediante hardware digital, ms barato y a menudo ms confiable. Sistemas de DSP's modernos son apropiados para su implementacin bajo el criterio VLSI. Las grandes inversiones necesarias para disear un nuevo circuito integrado slo pueden ser justificadas cuando el nmero de circuitos a fabricar es grande, o cuando los niveles necesarios de desempeo son tan altos que no pueden ser alcanzados con la tecnologa existente. A menudo, ambos argumentos son vlidos, particularmente en comunicaciones y aplicaciones dirigidas a los consumidores. Avances en la tecnologa de fabricacin de circuitos integrados tambin abren nuevas reas de desarrollo basadas en DSP, tales como sensores inteligentes, visin de robots y automatizacin, mientras entrega las bases para continuar los avances en reas tradicionales del procesamiento digital de seales, tales como msica, voz, radar, sonar, video, audio y comunicaciones. Este apartado tiene como fin entregar una breve introduccin a los sistemas DSP a travs de la presentacin de sus principales caractersticas, aplicaciones y algunos datos de inters.

Procesadores Digitales de Seal *Qu es el Procesamiento Digital de Seales (Digital Signal Processing DSP)? SEAL es definida como cualquier cantidad fsica que varia en el tiempo y que lleva informacin, generalmente acerca del estado o comportamiento de un sistema, como por ejemplo: radar, msica, voz, sonar, etc. PROCESAR UNA SEAL es la operacin o transformacin sobre la seal. PROCESAMIENTO DIGITAL DE SEAL (DSP) es una operacin o transformacin de una seal en un hardware digital segn reglas bien definidas las cuales son introducidas al hardware a travs de un software especfico que puede o no manejar lenguajes tanto de alto como de bajo nivel. En estricto rigor, digital signal processing se refiere al procesamiento electrnico de seales tales como sonido, radio y microondas usando tcnicas matemticas para realizar transformaciones o extraer informacin. En la prctica, las caractersticas que hacen a los DSP's tan buenos en el manejo de seales los hacen adecuados para muchos otros propsitos, tales como procesamiento de grficos de alta calidad y simulaciones en ingeniera.

Memoria Descriptiva

Pg. - 94

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Un Procesador Digital de Seales (DSP, sigla en ingls de Digital Signal Processor) es un tipo de microprocesador, increblemente rpido y poderoso. Un DSP es nico porque procesa seales en tiempo real. Esta capacidad de procesamiento en tiempo real hace a los DSP ideales para aplicaciones que no toleran ningn retardo. Por ejemplo, no es fcil conversar a travs de un telfono celular cuando existe un retardo en la lnea. Esto lleva a que la seal se corte o a confusin ya que ambos usuarios hablan a la vez. Con los telfonos celulares actuales, los cuales usan DSP's, es posible hablar normalmente. El DSP dentro del telfono procesa el sonido (convirtindolo de una seal analgica a digital, filtrando, comprimiendo y realizando otras tareas en forma digital) tan rpidamente que uno puede hablar y escuchar sin problemas de retardo ni ninguna molestia que ello implica. O sea, se procesa en tiempo real. *De Anlogo a Digital Las aplicaciones clsicas de los DSP's trabajan seales del mundo real, tales como sonido y ondas de radio que se originan en forma anloga. Como se sabe, una seal anloga es continua en el tiempo; cambia suavemente desde un estado a otro. Los computadores digitales, por otro lado, manejan la informacin discontinuamente, como una serie de nmeros binarios, por lo que se hace necesario como primera etapa en la mayora de los sistemas basados en DSP's transformar las seales anlogas en digitales. Esta transformacin la hacen los Conversores Anlogo Digital (ADC, en ingls). Una vez terminada la etapa de conversin anloga digital, los datos son entregados al DSP el cual est ahora en condiciones de procesarla. Eventualmente el DSP deber devolver los datos ya procesados para lo cual es necesaria una etapa final que transforme el formato digital a anlogo. Por ejemplo, una seal de audio puede ser adquirida (ADC) y filtrada para eliminar en gran medida ruido, crujidos de esttica, amplificar ciertas frecuencias de inters, eliminar otras, etc. Luego de esto, la informacin puede ser devuelta a travs de una conversin digital anloga (DAC). Ejemplos interesantes de aplicaciones de DSP's son: 1. Eliminar el eco en las lneas de comunicaciones. 2. Lograr hacer ms claras imgenes de rganos internos en los equipos de diagnstico mdico. 3. Cifrar conversaciones en telfonos celulares para mantener privacidad. 4. Analizar datos ssmicos para encontrar nuevas reservas de petrleo. En su ncleo, un DSP es altamente numrico y repetitivo. A la vez que cada dato llega, ste debe ser multiplicado, sumado y adems de eso transformado de acuerdo a frmulas complejas. Lo que permite realizar todo ello es la velocidad del dispositivo. Los sistemas basados en DSP's deben trabajar en tiempo real, capturando y procesando informacin a la vez que ocurre. Los conversores anlogo digital deben adquirir la informacin lo suficientemente seguido como para captar todas las fluctuaciones relevantes de las seales. Si el ADC es muy lento se perder informacin. El DSP tambin

Memoria Descriptiva

Pg. - 95

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

debe trabajar rpido para no perder informacin que le llega desde el ADC y adems cumplir con el adecuado procesamiento de las seales. Por ejemplo, un sistema estreo maneja sonidos de hasta 20 KHz, por lo tanto el DSP deber ser capaz de procesar alrededor del centenar de millones de operaciones por segundo. Otras seales, tales como transmisiones por satlite son del orden de los Gigahertz por lo que requieren un procesamiento de mayor velocidad. *Un DSP para cada Aplicacin Una forma de clasificar los DSP's y aplicaciones es a travs de su rango dinmico. El rango dinmico es un conjunto de nmeros, desde pequeos a grandes, que deben ser procesados en el curso de una aplicacin. Por ejemplo, para representar una forma de onda entera de una seal particular es necesario un cierto rango de nmeros para manejar sus valores mayores y menores. El DSP debe ser capaz de manejar los nmeros generados tanto en la transformacin anloga digital como durante los clculos (multiplicaciones, sumas, divisiones) con dicha seal. Si no es capaz de manejar todo el rango de nmeros ocurrir "overflow" o "underflow", lo cual producir errores en los clculos. La capacidad del procesador es una funcin de su ancho de datos (el nmero de bits manipulados) y el tipo de aritmtica que posee (punto fijo o flotante). Un procesador de 32 bits tiene un ancho de datos mayor que uno de 24 bits, el cual a su vez tiene un rango mayor que uno de 16 bits. DSP's de punto flotante tienen rangos mayores que uno de punto fijo. Cada tipo de procesador es ideal para un rango particular de aplicaciones. DSP's de 16 bits son ideales para sistemas de voz tales como telfonos ya que ellos trabajan con un estrecho rango de frecuencias de audio. Estreos de alta fidelidad requieren ADCs de 16 bits y un procesador de 24 bits de punto fijo. Los 16 bits del conversor permiten capturar todo el rango de la seal de audio y los 24 bits del procesador permiten operar cmodamente los grandes valores resultantes de la operacin con los datos. Procesamiento de imgenes, grficos 3D y simulaciones cientficas necesitan un rango dinmico mucho mayor y por lo tanto requieren procesadores de punto flotante de 32 bits y ADC's de 24 bits.

Diagrama de bloques conceptual de un sistema tpico ADC: Conversor Anlogo Digital. DSP: Digital Signal Processor. DAC: Conversor Digital Anlogo.

Algunos ejemplos de los usos de DSP's en la actualidad son: 1. Wireless LAN 2. Reconocimiento de Voz 3. Manejo de imgenes digitales

Memoria Descriptiva

Pg. - 96

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

4. Reproductores digitales de audio 5. Telfonos celulares 6. Modems inalmbricos 7. Cmaras digitales 8. Control de motores 9. Manejo de bombas, ventiladores, HVAC 10. Inversores industriales 11. Automatizacin de fbricas 12. Transporte *Qu hace a un DSP un DSP? Una de las ms importantes caractersticas de un DSP es su capacidad de realizar operaciones de multiplicacin y acumulacin (MACs) en slo un ciclo de reloj. No obstante ello, es necesario que el dispositivo posea la caracterstica de manejar aplicaciones crticas en tiempo real. Esto requiere de una arquitectura que soporte un flujo de datos a alta velocidad hacia y desde la unidad de clculo y memoria. Esta ejecucin a menudo requiere el uso de unidades DMA (Direct Memory Access) y generadores de direcciones duales (DAG's) que operan en paralelo con otras partes del chip. Los DAG's realizan los clculos de direcciones, permitiendo al DSP buscar dos datos distintos para operar con ellos en un solo ciclo de reloj, de tal forma que es posible ejecutar algoritmos complejos en tiempo real. Es importante para DSP's tener un mecanismo efectivo de salto para la ejecucin de loops ya que el cdigo generalmente programado es altamente repetitivo. La arquitectura permite realizar estos loops sin instrucciones adicionales ni demoras, las que al ejecutarse millones de veces empiezan a generar retardos significativos. Los DSP's deben manejar rangos dinmicos extendidos y de precisin para evitar overflow y underflow y para minimizar los errores de redondeo. Para acomodarse a esta capacidad, los DSP's incluyen acumuladores dedicados con registros ms anchos que el tamao nominal de los datos para as conservar la precisin (por ejemplo, DSP's de 16 bits poseen acumuladores de 32 bits para manejar el resultado de las multiplicaciones). Tambin deben soportar el manejo de buffers circulares para la ejecucin de funciones algortmicas, tales como filtros. En estos tipos de buffers el puntero del buffer se actualiza en paralelo con otras funciones del chip en cada ciclo de reloj. En cada ciclo el buffer circular realiza una comprobacin de "fin de buffer" para verificar si es necesario volver al inicio de ste sin demorar as la ejecucin del algoritmo a causa de la ejecucin de instrucciones adicionales de comparacin y salto. Por otro lado, los microcontroladores se utilizan sobre todo en aplicaciones donde existen acontecimientos externos los que requieren de la deteccin y el control. El ambiente externo es detectado por cualquiera de los dispositivos perifricos; puertos digitales I/O, pines dedicados de interrupcin, o las entradas anlogas (de analgico a digital). La fuente de las seales a estos pines viene de los interruptores, sensores anlogos y/o digitales, y de las

Memoria Descriptiva

Pg. - 97

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

seales de estado de otros sistemas. Cada entrada representa un pedazo de informacin sobre el estado de un cierto acontecimiento exterior. Las salidas se envan a actuadores, relays, motores o a otros dispositivos que controlen acontecimientos. Entre la deteccin y actuacin est el microcontrolador, analizando las entradas y el estado actual del sistema, determinando cundo y qu encender y/o apagar. El software es el que hace todo esto, toma las decisiones, generalmente trabaja de una manera condicional; es decir, realiza saltos slo bajo ciertas condiciones y realiza manipulaciones a nivel de bits. Las interrupciones son consideradas como condiciones externas que alteran el flujo principal del programa. *Arquitecturas Estndar en DSP Las arquitecturas de los computadores actuales estn comnmente clasificadas como RISC's (Reduced Instruction Set Computers) y CISC's (Complex Instruction Set Computers). Estos ltimos tienen un gran nmero de instrucciones sumamente poderosas, mientras que la arquitectura RISC posee pocas instrucciones y realiza movimientos de datos entre registros en un ciclo de mquina. Hoy en da los computadores RISC comienzan a reemplazar a los CISC's, porque se puede alcanzar un ms alto rendimiento por medio del uso de un eficiente compilador como a travs de la ejecucin de instrucciones simples en forma ordenada. DSP's estndares tienen mucho rasgos de una arquitectura tipo RISC, pero ellos son procesadores de propsitos especficos cuya arquitectura es especialmente diseada para operar en ambientes de alta necesidad de clculo. Un DSP estndar ejecuta varias operaciones en paralelo mientras que un RISC usa unidades funcionales altamente eficientes que pueden iniciar y completar una instruccin simple en uno o dos ciclos de reloj. DSP's tpicos son caracterizados generalmente por las siguientes cualidades en su arquitectura: 1. Una unidad funcional rpida que puede multiplicar y acumular en un ciclo de instruccin. Un ciclo de instruccin puede durar generalmente 1 2 ciclos de reloj. Disponibles en DSP's de punto fijo y flotante. 2. Varias unidades funcionales que realizan operaciones en paralelo, incluyendo accesos a memoria y clculo de direcciones. Las unidades poseen tpicamente una unidad principal (ALU) junto con dos o ms unidades de generacin de direcciones. Estas unidades funcionales poseen su propio conjunto de registros y muchas instrucciones se realizan en un solo ciclo de instruccin. 3. Varias unidades de memoria onchip (generalmente 2 3) usadas para almacenar instrucciones, datos o tablas. Cada unidad de memoria puede ser accedida una vez en cada ciclo de instruccin. 4. Varios buses para incrementar las tasas de transferencia hacia y desde memoria y evitar conflictos de direcciones.

Memoria Descriptiva

Pg. - 98

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

5. Soporte para tipos especiales de direccionamiento, especialmente modulo y bitreverse, requerido en el clculo de la FFT. Direccionamiento mdulo es muy eficiente para la implementacin de buffers circulares. 6. Soporte para manejo de loop con bajo costo en tiempo y manejo rpido de interrupciones, especialmente aquellas que se deben a los puertos seriales. *Arquitectura Hardware En la arquitectura clsica de Neumann la ALU y la unidad de control estn conectadas a una slo unidad de memoria que almacena tanto instrucciones de programa como datos. Durante la ejecucin de un programa, una instruccin es leda desde la memoria y decodificada, los operandos necesarios son obtenidos (fetched) desde la memoria, y, finalmente, la instruccin es ejecutada. La principal desventaja es que la memoria se transforma en el cuello de botella de esa arquitectura. La instruccin que con ms frecuencia realiza un DSP estndar es la multiplicacin y acumulacin. sta debe ser realizada con eficiencia, y para ello debera ser completada en un ciclo de instruccin. Esto implica que dos valores deben ser ledos desde memoria y (dependiendo de la organizacin) un valor debe ser escrito, o dos o ms registros de direcciones deben ser actualizados, en ese ciclo. Por lo tanto, una longitud grande en la memoria es tan importante como la operacin de multiplicacinacumulacin. Varios buses y memorias incluidas en el chip son utilizadas de forma que lecturas y escrituras a diferentes unidades de memoria pueden ser hechas a la vez. Dos memorias son utilizadas en la arquitectura Hardware clsica. Una de ellas es utilizada exclusivamente para datos, mientras que la otra es utilizada para instrucciones. Esta arquitectura alcanza un alto grado de concurrencia (lecturas y escrituras simultneas). Los DSP's actuales usan varios buses y unidades de ejecucin para alcanzar niveles incluso ms altos de concurrencia. Chips con mltiples DSP y procesadores RISC existen hoy en da.

Tipos de arquitectura de memoria entre un Microcontrolador (arquitectura von Neumann) y un DSP (arquitectura Hardware).

Memoria Descriptiva

Pg. - 99

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

*Diferencias entre Microcontroladores y DSP's Una de las diferencias ms importante encontrada entre un DSP y un Microcontrolador es la estructura de memoria que poseen. En un microcontrolador es posible encontrar una memoria lineal, en la que se almacenan tanto datos como instrucciones de programa. Esto obliga a generar programas que no sobrepasen lmites de tamao ya que podran sobrescribirse datos por instrucciones o viceversa. Un DSP posee dos bloques separados e independientes de memoria, cada uno con su propio bus de acceso, permitiendo as al procesador ir a buscar la siguiente instruccin y dato en el mismo ciclo de reloj (Fetch). En la figura siguiente se muestra un diagrama de los tipos de memorias y su conexin con el ncleo operaciones. Otra diferencia importante entre un Microcontrolador y un DSP (y an entre DSP's) es la cantidad de unidades de ejecucin que poseen, las cuales son capaces de realizar operaciones en paralelo. Por ejemplo, adems de la tpica ALU, un DSP posee bloques MAC de multiplicacin y acumulacin, se encuentran tambin bloques slo para corrimientos, shifters. En la figura siguiente se observa un diagrama de bloques de un microcontrolador PIC12C5XX, el cual slo posee una unidad aritmtica para todo tipo de clculo, desde clculo de direcciones de salto, bsqueda de datos hasta operaciones lgicas.

Diagrama de bloques de la arquitectura del PIC-12C5XX

La siguiente figura muestra parte de un diagrama de bloques del DSP TMS320F241. En ella se pueden ver 3 unidades de clculo, CALU, ARAU, y

Memoria Descriptiva

Pg. - 100

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

una unidad de multiplicacin la cual permite adems realizar corrimientos: (siguiente pgina). La unidad CALU realiza las operaciones aritmtico lgicas, mientras que la unidad ARAU permite realizar clculos sobre registros auxiliares para direccionamientos indirectos tanto a memoria de datos como de programa. Finalmente la unidad de multiplicacin y suma permite una rpida ejecucin de operaciones iterativas tales como algoritmos de filtros. Cabe destacar que en la actualidad cada vez se empieza a desarrollar ms la tecnologa mezclada entre microprocesadores y DSP's. Diversas son las razones para que se produzca esta integracin, sin embargo a groso modo es posible identificar una en particular. Los requerimientos de control en tiempo real bajo condiciones cada vez ms exigentes en cuanto a necesidad de clculo han llevado a los fabricantes de microcontroladores (microchip, ST, etc.) a integrar a sus microprocesadores caractersticas de DSP (unidades de clculo paralelas, pipeling, etc.) y por el otro lado los fabricantes de DSP's (Texas, Motorola, Analog Device, etc.) empiezan a utilizar las caractersticas de Microcontroladores (Conversores A/D, puertos digitales I/O, bloques PWM) integrndolas dentro del DSP.

Memoria Descriptiva

Pg. - 101

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Diagrama de bloques del DSP TMS320F241

Ventajas y Desventajas de los DSP's

La Tecnologa VLSI (Very Large Scale Integration) da la posibilidad de disear sistemas con la capacidad para ejecutar procesamiento en tiempo real de muchas de las seales de inters para aplicaciones en comunicaciones, control, procesamiento de imagen, multimedia, etc. Los sistemas digitales son ms confiables que los correspondientes sistemas anlogos. Los sistemas digitales ofrecen una mayor flexibilidad que los correspondientes sistemas anlogos. Mayor precisin y mayor exactitud pueden ser obtenidas con sistemas digitales, comparado con los correspondientes sistemas anlogos. Un sistema programable permite flexibilidad en la reconfiguracin de aplicaciones DSP. La tolerancia de los componentes en un sistema anlogo hacen que esto sea una dificultad para el diseador al controlar la exactitud de la seal de salida anloga. Por otro lado, la exactitud de la seal de salida para

Memoria Descriptiva

Pg. - 102

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

un sistema digital es predecible y controlable por el tipo de aritmtica usada y el nmero de bits usado en los clculos. Las seales digitales pueden ser almacenadas en un disco flexible, Disco Duro o CD-ROM, sin la prdida de fidelidad ms all que el introducido por el conversor Anlogo Digital (ADC). ste no es el caso para las seales anlogas.

A pesar de ellas existen algunos inconvenientes que debern ser tomados en cuenta al momento de escoger una plataforma para el procesamiento de seales analgicas por medio digitales:

La conversin de una seal analgica en digital, obtenida muestreando la seal y cuantificando las muestras, produce una distorsin que nos impide la reconstruccin de la seal analgica original a partir de muestras cuantificadas. Existen efectos debidos a la precisin finita que deben ser considerados en el procesado digital de las muestras cuantificadas. Para muchas seales de gran ancho de banda, se requiere procesado en tiempo real. Para tales seales, el procesado analgico, o incluso ptico, son las nicas soluciones vlidas. Sin embargo, cuando los circuitos digitales existen y son de suficiente velocidad se hacen preferibles.

DSP TMS320VC5510/5510A Fixed-Point Digital Signal Processors La gran ventaja que posea el hacerse con un DSP es que existe gran diversidad de ellos, preparados especialmente para cierto tipo de datos y de tratamientos de seal. Slo se tuvo que buscar uno que se adecuara a nuestras necesidades (tipos de datos, tratamiento, rapidez) Despus de buscar las posibles opciones que ofreca el mercado a nivel de DSP, se encontr una tarjeta de Texas Instruments que posea un codec de audio, y adems la propia tarjeta ya estaba preparada con entradas y salidas de audio. A continuacin se puede ver un detalle de la placa DSP. En ella podemos distinguir las partes ms importantes y ver como es ideal para nuestra lnea de investigacin. (No olvidemos que estamos tratando de iniciar un sistema capaz de atenuar ruido a travs de ruido).

Memoria Descriptiva

Pg. - 103

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Introduccin al TMS320VC5510 DSK El DSK 5510 es la plataforma de desarrollo estndar de bajo coste que permite al usuario analizar y desarrollar aplicaciones para la familia de DSP C55XX de Texas Instruments. El DSK tambin es vlido como referencia de diseo hardware para la DSP TMS320VC5510. Todas las caractersticas disponibles sobre el funcionamiento completo de esta plataforma de desarrollo se encuentra disponible (esquemticos, ecuaciones lgicas, notas de aplicacin, datasheets,). Seguidamente se aprecia un diagrama de bloques de la estructura (tanto funcional como fsica) de la tarjeta adquirida.

Memoria Descriptiva

Pg. - 104

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Se destacarn las caractersticas claves del dispositivo. As se muestra a continuacin las que se han considerado ms importantes (tanto generales como especficas):

Opera a 200 MHz (suficientemente rpida) Flash externa de 256Kbytes y 16 bit de interface Codec AIC23 estreo (ideal para adquisicin de seales de sonido) 8 Mbytes de DRAM sncrona 512 kbytes de memoria Flash no voltil 4 LEDs accesibles al usuario e interruptores DIP Configuracin software de tarjeta a travs de registros implementados en CPLD Jumper seleccionables Conectores estndar de expansin para uso de tarjeta hija Programable a travs de puerto USB

Adems, el paquete adquirido dispone de una fuente externa a la tarjeta para poder enchufarla directamente a la red elctrica. Merece la pena resear el codec AIC23, que permite al DSP transmitir y recibir seales analgicas (ms especficamente, seales de sonido). Las entradas y salidas analgicas son jacks de audio de 3.5 mm que se corresponden con entrada de micrfono, lnea de entrada, lnea salida y salida auriculares (mic in, line in, line out, headphoned). El codec, entre otras muchas posibilidades de funcionamiento, puede seleccionar el micrfono o la lnea de entrada como entrada activa, variar el volumen tanto de la entrada como de la salida, especificar una salida, Cabe tambin destacar el dispositivo lgico programable (CPLD). En este caso nuestro DSP, el C5510 DSK usa un CPLD de Altera, el modelo

Memoria Descriptiva

Pg. - 105

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

EPM3128TC100-10. El CPLD del que se est hablando posee las siguientes caractersticas principales:

4 registros de control y estado de la memoria que permiten al software el control de varios aspectos de la tarjeta. Decodificador de direcciones y acceso lgico de memoria. Control de interfaces y seales dependientes del DSP principal. Permite la unin lgica entre los componentes de la tarjeta.

El entorno de programacin suministrado con el paquete adquirido es el Code Composer Studio. Este se comunica con la tarjeta a travs de un emulador JTAG con un interfaz USB. Ms adelante veremos ms sobre este programa.

AIC23 codec Merece una especial atencin el AIC23 codec ste es especfico de Texas Instruments y es el encargado del tratamiento del sonido. Es decir, se encarga se recoger y/o reproducir el sonido, tanto a nivel hardware como en software. A continuacin vemos un detalle de la parte del DSP encargada del tratamiento del sonido (entradas, salidas y AIC23).

El codec muestrea seales analgicas procedentes de un micrfono (mic in) o de una seal de entrada (line in) y las convierte en datos digitales que pueden ser procesados por el DSP. Cuando el DSP termina con el procesado de datos usa el codec para convertir de nuevo las muestras en seales analgicas para su emisin a travs de las salidas (auriculares o lnea de salida) de manera que el usuario pueda or la seal procesada.

Memoria Descriptiva

Pg. - 106

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El codec se comunica usando dos canales serie, uno para el control de la configuracin de registros internos del codec y otro para mandar y recibir muestras digitales de audio. Los canales son McBSP1 y McBSP2 (canal de control y de datos respectivamente). El canal de control estar en modo SPI y tendr reloj interno y paquetes de datos sincronizados. El canal de datos ser el AIC23 en modo maestro con un reloj de sistema de 12MHz. Con cada muestra, el formato de los datos del DSP en el codec consiste en un paquete de dos elementos de 16 bits, correspondindose a la izquierda y a la derecha (canales en lo que podes dividir una seal estreo). Reloj y paquete de datos sincronizados externos al AIC23 del DSP. McBSP1 se usa como canal de de control unidireccional. Puede ser programado para enviar una palabra de control de 16 bit al AIC23 en formato PCI. Los 7 bit ms significativos de la palabra de control especifican el registro a modificar y los 9 bit menos significativos contienen el valor del registro. El canal de control solo se usa cuando se configura el codec, esto es, generalmente, cuando el dato est siendo transmitido. McBSP2 se usa como canal de datos bidireccional. Todos los datos de audio fluyen a travs de este canal de datos. La mayora de los formatos de datos son soportados en base a tres variables de ancho de muestreo, fuente de seal de reloj y formato de dato serie. El uso ms habitual en el DSK es un ancho de muestreo de 16 bit con el codec en modo maestro. El formato preferido es el modo DSP, el cual es diseado especficamente para operar con puertos McBSP en DSPs De Texas Instruments. El codec AIC23 tiene 10 registros para controlar funciones como el volumen, el formato de dato, las frecuencias de muestreo o los modos de bajo

Memoria Descriptiva

Pg. - 107

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

consumo. Los registros se modifican a travs del canal de datos. Estos registros son los siguientes:

Entorno software de programacin. Code Composer Studio El objetivo perseguido con este apartado consiste en la familiarizacin con la herramienta de desarrollo de DSPs utilizada. Para ello se har un breve seguimiento por los pasos a dar para poder llevar a cabo un proyecto en el Code Composer Studio (a partir de ahora CCS). *Creacin de un Programa para el DSP En primer lugar se mostrarn los pasos bsicos para el desarrollo de una sencilla aplicacin que se ejecute en el DSP. Este apartado no pretende ser una gua exhaustiva de manejo de la herramienta Code Composer Studio o CCS. La aplicacin consistir en un sencillo programa que se limita a implementar un mero amplificador con ganancia. La figura muestra el diagrama de bloques del sistema a implementar. Para realizar la conversin digital/analgico y analgico/digital se utilizarn sendos conversores que integra el AIC23 de que dispone la tarjeta de desarrollo.

Memoria Descriptiva

Pg. - 108

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En primer lugar ser necesario crear un proyecto para nuestra aplicacin. Para ello seleccione las opciones del men Project New apareciendo la ventana que se muestra en la figura siguiente. Introduzca el nombre del proyecto y pulse enter.

Para simplificar el desarrollo de esta aplicacin en lo referente a la gestin de interrupciones y el manejo del AIC se utilizarn las libreras DSP/BIOS y de soporte de la tarjeta (CSL). El uso de estas libreras se puede simplificar en gran medida mediante el uso de la herramienta de configuracin grfica. Para ello es preciso crear un fichero de base de datos de configuracin o CDB. Para ello se parte de una plantilla especfica de la plataforma para la cual se va a compilar la aplicacin. Utilice las opciones del men FILE New BIOS Configuration eligiendo la plantilla correspondiente a la tarjeta que n cada caso se vaya a programar (como se muestra en la figura).

Memoria Descriptiva

Pg. - 109

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Tal y como muestra la figura siguiente, la operacin anterior se limita a crear una nueva base de datos de configuracin a partir de una plantilla genrica que posteriormente se modificar para adecuarla a las necesidades de la aplicacin. Para poder utilizar esta configuracin es preciso salvarla en disco de forma explcita mediante la opcin FILE Save As.... Por cuestiones de claridad es recomendable asignarle al fichero .CDB el mismo nombre que el del proyecto (claro est, cambiando la extensin). De la misma forma, dicho fichero debe almacenarse en el directorio del proyecto. NOTA: Preste atencin a este ltimo aspecto ya que frecuentemente CCS ofrece como alternativa por defecto el ltimo directorio utilizado a la hora de salvarlo, el cual puede no coincidir con el del proyecto.

Una vez creado el fichero CDB es necesario aadirlo de forma explcita al proyecto. Utilice para ello la opcin del men Project Add Files to Project.... El uso de ficheros CDB permite automatizar la generacin de varios ficheros utilizados durante el proceso de compilacin de la aplicacin. Estos ficheros son:

Filename.cdb Base de datos de configuracin. Filenamecfg_c.c Cdigo C creado por la herramienta de configuracin. Filenamecfg.s62Cdigo asm creado por la herramienta de configuracin. Filenamecfg.cmd Fichero de comandos del linker Filenamecfg.h Fichero cabecera para *cfg_c.c Filenamecfg.h62 Fichero cabecera para *cfg_c.s62

Al aadir el fichero CDB al proyecto se incluyen automticamente todos los ficheros anteriormente citados excepto el fichero de comandos del linker. Es preciso aadirlo explcitamente al proyecto utilizando el mtodo anteriormente descrito. Segn esto el proyecto debe mostrar la estructura mostrada en la figura siguiente.

Memoria Descriptiva

Pg. - 110

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Por otro lado es preciso aadir tambin la librera de soporte de la tarjeta que contiene las funciones de gestin del AIC. Esta librera se aade en las opciones del linker mediante la el men Project Build Options... tal y como muestra la figura siguiente. (pgina siguiente) Llegados a este punto ya se puede comenzar a crear los ficheros fuentes especficos de la aplicacin. En primer lugar es preciso incluir los ficheros .h correspondientes al cdigo generado automticamente y a las libreras que se van a utilizar. Durante la inicializacin de la tarjeta se fijan los valores de los registros del CPLD a sus valores por defecto y se inicializan las estructuras de datos utilizadas por la librera BSL. Es preciso llamar a la funcin de iniciacin antes de poder utilizar cualquiera de las restantes funciones. Una vez realizada esta operacin se puede proceder a configurar el AIC. La librera BSL gestiona este elemento como un dispositivo del sistema operativo, es decir, antes de poder utilizarlo es preciso abrirlo mediante la funcin DSK6713_AIC23_openCodec(). Esta funcin recibe como primer parmetro el identificador del dispositivo que lo distingue de otros componentes idnticos de que pueda constar el sistema. El segundo parmetro es una estructura de datos mediante la cual se configura el AIC. Cada uno de los campos de esta estructura corresponde a uno de los registros de configuracin del AIC.

Memoria Descriptiva

Pg. - 111

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Un tipo declaracin de estructura de datos se muestra a continuacin:


DSK6713_AIC23_Config config = { 0x0017, // 0 DSK6713_AIC23_LEFTINVOL Left line input channel volume 0x0017, // 1 DSK6713_AIC23_RIGHTINVOL Right line input channel volume headsetVol, // 2 DSK6713_AIC23_LEFTHPVOL Left channel headphone vol headsetVol, // 3 DSK6713_AIC23_RIGHTHPVOL Right channel headphone vol 0x0011, // 4 DSK6713_AIC23_ANAPATH Analog audio path control 0x0000, // 5 DSK6713_AIC23_DIGPATH Digital audio path control 0x0000, // 6 DSK6713_AIC23_POWERDOWN Power down control 0x0043, // 7 DSK6713_AIC23_DIGIF Digital audio interface format 0x0081, // 8 DSK6713_AIC23_SAMPLERATE Sample rate control 0x0001 // 9 DSK6713_AIC23_DIGACT Digital interface activation };

Esta funcin devuelve un identificador o handler que ser utilizado en la llamada a las restantes funciones utilizadas para manejar el AIC (por ejemplo las utilizadas para leer y escribir las muestras). Este identificador debe declararse como una variable global ya que ser posteriormente utilizada en la rutina de tratamiento de interrupcin. Siguiendo, a grandes rasgos, estos pasos, podremos comenzar a realizar proyectos que sirvan en la ejecucin de experimentos (siempre relacionados con el tratamiento de sonido).

Memoria Descriptiva

Pg. - 112

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Control Activo de Ruido con el DSP DSK C5510 Una vez elegida la herramienta principal con la que se comenzar a experimentar con el control activo de ruido, hechas las pertinentes introducciones e iniciaciones a los dispositivos y a la teora, se tendr que analizar cmo se implementar y que elementos se usarn para ello. Los elementos que van a componer nuestro sistema de control activo de ruido son:

PC Tarjeta DSP Micrfono Electrovoice PL-80 Altavoces estreo Micrfono AKG D55 S

De estos elementos hay algunos que ya han sido mencionados y debidamente estudiados. Otros, como son el caso de los actuadotes (micrfonos y altavoces) no han sido comentados. No se har mucho hincapi en la estructura y el funcionamiento de un micrfono ni de un altavoz, pero si se sealarn las caractersticas de los modelos usados en los montajes. Del micrfono Electrovoice PL-80 podemos destacar, entre otras caractersticas, que es un micrfono vocal, dinmico y sper cardiode.

Las principales caractersticas del micrfono AKG D55 S son:

Micrfono para voces y karaoke Transductor Dinmico Direccional Cardioide Respuesta Frecuencia 70Hz 18Khz Sensibilidad 2.5 mV/pa (-52dBV) Impedancia 600(Ohm) Conector Mini Jack

Memoria Descriptiva

Pg. - 113

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En los experimentos se han usado dos juegos de altavoces estreo convencionales de PC. La idea, principalmente, ser aprovechar las entradas y salidas de la tarjeta junto con el codec AIC23 para poder implementar el sistema deseado. Se usar el CCStudio para generar los programas (cdigo en C) que controlen y procesen las seales necesarias para el estudio del sistema.

Primeros Experimentos La primera toma de contacto con el DSP fue tan slo para ver el funcionamiento bsico del mismo. Es decir se generaron, a partir de ejemplos de la documentacin, programas que simplemente reproducan sonido. De esa forma tuvimos un primer acercamiento a la configuracin del codec y de sus registros. *Reproduccin de Sonido El primero de los experimentos realizados fue un sistema que se encargase de emitir un sonido, para ello aprovechamos un ejemplo de la documentacin del CCS en el que se nos muestra un programa en C que emite un sonido. La idea fue usar como base ese programa para, creando nosotros una seal senoidal, en este caso de 1 kHz de frecuencia; reproducirla a travs del DSP. Tendramos que crear nuestro propio proyecto, configurarlo segn la tarjeta que vamos a usar, ver qu libreras hacen falta,. Luego tuvimos que configurar el codec AIC23 (entradas, salidas, volumen de las mismas,). El resultado del programa debera ser una seal de audio que se emita a travs de unos altavoces.

Memoria Descriptiva

Pg. - 114

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

A continuacin mostraremos el cdigo del programa:


#include "tonecfg.h" #include "dsk5510.h" #include "dsk5510_aic23.h" /* tamao de la tabla seno */ #define SINE_TABLE_SIZE 48 /* Cofiguracin del codec */ DSK5510_AIC23_Config config = { 0x0017, // 0 DSK5510_AIC23_LEFTINVOL 0x0017, // 1 DSK5510_AIC23_RIGHTINVOL 0x00d8, // 2 DSK5510_AIC23_LEFTHPVOL 0x00d8, // 3 DSK5510_AIC23_RIGHTHPVOL 0x0011, // 4 DSK5510_AIC23_ANAPATH 0x0000, // 5 DSK5510_AIC23_DIGPATH 0x0000, // 6 DSK5510_AIC23_POWERDOWN 0x0043, // 7 DSK5510_AIC23_DIGIF 0x0081, // 8 DSK5510_AIC23_SAMPLERATE 0x0001 // 9 DSK5510_AIC23_DIGACT }; /* Pre-generated sine wave data, 16-bit signed samples */ Int16 sinetable[SINE_TABLE_SIZE] = { 0, 0.1333, 0.2642, 0.3904, 0.5096, 0.6197, 0.7188, 0.8051, 0.8769, 0.9332, 0.9728, 0.9950, 0.9994, 0.9861, 0.9551, 0.9071, 0.8429, 0.7637, 0.6708, 0.5659, 0.4510, 0.3280, 0.1992, 0.0668, -0.0668,-0.1992, -0.3280, -0.4510, -0.5659, -0.6708, -0.7637, -0.8429, -0.9071, -0.9551, -0.9861, -0.9994, -0.9950, -0.9728, -0.9332, -0.8769, -0.8051, -0.7188, -0.6197, -0.5096, -0.3904, -0.2642, -0.1333, -0.0000 }; void main() { DSK5510_AIC23_CodecHandle hCodec; Int16 msec, sample; /* Inicializamos la librera del DSP */ DSK5510_init(); /* Abrimos el codec */ hCodec = DSK5510_AIC23_openCodec(0, &config); /* Generamos una senoidal de 1KHz durante 5 segundos */ for (msec = 0; msec < 5000; msec++) { for (sample = 0; sample < SINE_TABLE_SIZE; sample++) { while (!DSK5510_AIC23_write16(hCodec, sinetable[sample])); } } /* cerramoel codec */ DSK5510_AIC23_closeCodec(hCodec); }

Conectando unos altavoces a la salida (line out) de la tarjeta, obtenemos como resultado la emisin de la seal seno (sonido constante) durante 5 segundos. En primer lugar tenemos que definir los registros de control del codec AIC23. Con esto definiremos parmetros esenciales a la hora de realizar los

Memoria Descriptiva

Pg. - 115

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

experimentos de manera correcta, ya que con estos registros definiremos valores tales como la velocidad de muestreo, los volmenes de los diferentes canales de las seales estreo (recordemos que ya hablamos de estos registros) Luego, en el programa principal (funcin main()), slo recorremos la matriz de los valores del seno durante un periodo de tiempo. Esta primera prueba tan slo pretenda un acercamiento a la tarjeta, al AIC23, y al manejo de salidas (porque aqu no intervienen las entradas). *Recogida de sonido Una vez realizados los experimentos de reproduccin de sonido correctamente, nuestro siguiente paso era el opuesto, es decir, poder capturar un sonido a travs de un micrfono lnea de entrada. Para ello, al igual que existe la instruccin DSK5510_AIC23_write16, tambin sabemos que tenemos la instruccin DSK5510_AIC23_read16, que nos sirve para leer las muestras que nos llegan del micrfono o del line in. Hemos realizados distintos experimentos analizando distintas opciones para la recogida de sonido, ya que en transcurso de estas pruebas nos encontramos con distintos obstculos. Para superarlos debimos estudiar distintos montajes y distintas opciones antes de llegar a una conclusin definitiva. A) PRUEBA 1 (proyecto recoge) Este primer experimento de recogida de sonido a travs de un micrfono consista en intentar ver la fidelidad con la que se recoge una determinada seal conocida. Uno de los experimentos que hicimos fue el recoger en vaco, es decir no conectamos nada, durante 3000*25 muestras (recogemos 25 muestras en una matriz y la sobrescribimos 3000 veces). Suponemos que nos dar lo que realmente debiera recoger. (Hemos de resear que aunque no conectemos nada no nos recoger ceros absolutos debido a la conversin de analgico a digital y a que el micrfono no es ideal y por muy aislado que est siempre va a estar midiendo algo.). El programa realizado para este experimento es el siguiente:
#include "recogecfg.h" #include "dsk5510.h" #include "dsk5510_aic23.h" #include "dsk5510_led.h" #define SINE_TABLE_SIZE 25 /* Configuracin de los registros */ DSK5510_AIC23_Config config = { 0x0017, // 0 DSK5510_AIC23_LEFTINVOL

Memoria Descriptiva

Pg. - 116

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP 0x0017, 0x01f9, 0x01f9, 0x0010, 0x0000, 0x0000, 0x0043, 0x0081, 0x0001 }; // // // // // // // // // 1 2 3 4 5 6 7 8 9 DSK5510_AIC23_RIGHTINVOL DSK5510_AIC23_LEFTHPVOL DSK5510_AIC23_RIGHTHPVOL DSK5510_AIC23_ANAPATH DSK5510_AIC23_DIGPATH DSK5510_AIC23_POWERDOWN DSK5510_AIC23_DIGIF DSK5510_AIC23_SAMPLERATE DSK5510_AIC23_DIGACT

Proyecto Final de Carrera

/*Aqu ser donde guardemos el ruido recogido */ Int16 sinetable[SINE_TABLE_SIZE]; Int16 sinetable0[SINE_TABLE_SIZE]; void main() { DSK5510_AIC23_CodecHandle hCodec; Int16 sample,i; /*Inicio la tarjeta*/ DSK5510_init(); /*inicio los led*/ DSK5510_LED_init(); /*inicializo el codec*/ hCodec = DSK5510_AIC23_openCodec (0, &config); /*recojo la primera matriz*/ for (sample = 0; sample < SINE_TABLE_SIZE; sample++) { /*recojo un dato de la entrada mic*/ while (!DSK5510_AIC23_read16(hCodec, &sinetable0[sample])); } /*recojo la ltima matriz*/ for (i=0; i<3000; i++) { for (sample = 0; sample < SINE_TABLE_SIZE; sample++) { /*recojo un dato de la entrada mic*/ while (!DSK5510_AIC23_read16(hCodec, &sinetable[sample])); } } DSK5510_LED_toggle(0); /* Cierro el codec */ DSK5510_AIC23_closeCodec(hCodec); /*lo uso como bandera de fin*/ DSK5510_LED_toggle(1); }

Lo que hemos hecho con el LED es usarlo de bandera para ver en que momento se cierra el codec, es decir, como bandera de fin. A la hora de recoger el sonido a travs del micro hemos usado dos variables para ver cuanto tiempo tarda en recoger muestras continuas, ya que las primeras muestras no van a ser vlidas. Teniendo en cuenta este dato y que las variables elegidas son sinetable0, para la primera vez que se recogen muestras y sinetable para la ltima recogida de muestras. A continuacin veremos una tabla con los datos obtenidos para la primera vez que recorremos la matriz y los datos de la ltima. Obtenemos (no siempre se obtendr lo mismo), lo siguiente:

Memoria Descriptiva

Pg. - 117

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

sinetable0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]

HEX sinetable HEX sinetable0 DEC sinetable DEC 0x0000 [0] 0xFFFE [0] 0 [0] -2 0x0000 [1] 0xFEFF [1] 0 [1] -257 0x0000 [2] 0xFFFF [2] 0 [2] -1 0x0000 [3] 0xFFFF [3] 0 [3] -1 0x0000 [4] 0xFFFD [4] 0 [4] -3 0x0000 [5] 0xFDFF [5] 0 [5] -513 0x0000 [6] 0xFFFF [6] 0 [6] -1 0x0000 [7] 0xFFFF [7] 0 [7] -1 0x0000 [8] 0xFFFE [8] 0 [8] -2 0x0000 [9] 0xFEFF [9] 0 [9] -257 0x0000 [10] 0xFFFF [10] 0 [10] -1 0x0000 [11] 0xFFFF [11] 0 [11] -1 0x0000 [12] 0xFFFF [12] 0 [12] -1 0x0000 [13] 0xFFFF [13] 0 [13] -1 0x0000 [14] 0xFFFE [14] 0 [14] -2 0x0000 [15] 0xFEFF [15] 0 [15] -257 0x0000 [16] 0xFFFD [16] 0 [16] -3 0x0000 [17] 0xFDFF [17] 0 [17] -513 0x0000 [18] 0xFFFE [18] 0 [18] -2 0x00FF [19] 0xFEFF [19] 255 [19] -257 0xFFFF [20] 0xFFFE [20] -1 [20] -2 0xFFFF [21] 0xFEFF [21] -1 [21] -257 0xFFFF [22] 0xFFFF [22] -1 [22] -1 0xFF00 [23] 0xFFFF [23] -256 [23] -1 1 [24] 0xFFFE [24] 1 [24] -2

Podemos decir, que en nuestro experimento se tarda en torno a las 19 20 muestras en tomar lo que realmente se tomar de forma continuada. Lo que demostramos con este experimento fue que son necesarias el menos 20 muestras hasta que se recoge la seal que debemos recoger, debido a que estas primeras 20 muestras son las que necesita la tarjeta para estabilizarse y recoger correctamente. Es importante tener este hecho en cuenta, ya que a la hora de hacer tratamiento de las muestras recibidas hay que tener en cuenta que no todas son vlidas y que dicho tratamiento habr que hacerlo pasado un determinado tiempo, para hacerlo sobre muestras que sean fiables. Una vez visto el nmero de muestras necesarias para empezar a tener una medida fiable realizamos distintos experimentos de recogida de sonidos de distinta naturaleza con el objetivo de depurar el programa y comprobar que funciona correctamente. Ahora que ya recogemos sonido, la idea es ver cual de las dos posibles entradas (mic in o line in) da una mayor calidad en la captacin de seales. B) PRUEBA 2 (Proyecto expe2)

Memoria Descriptiva

Pg. - 118

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En este apartado los experimentos realizados van encaminados a poder manejar las dos entradas (line in o mic in). Ya pensando en el que sera montaje definitivo realizamos el siguiente experimento, que es ir tomando alternativamente seal de las dos entradas posibles (line in o mic in), ya que para el sistema CAR nos hacen falta dos seales de recogida. Para ello la idea era abrir y cerrar el codec cada vez que furamos a usar una entrada distinta. Es decir, ir definiendo continuamente el codec cada vez que se quiera recoger seal para especificar por qu entrada queremos recoger dicha seal, teniendo en cuenta que cada vez que se hace la recogida de la seal tenemos que, al finalizar la recogida, volver a cerrar el codec para poder volver a usarlo en el siguiente proceso de recogida. En resumen, el proceso sera abrir el codec seleccionando la entrada line in para recoger seal a travs de esa entrada, cerrar el codec una vez realizada la recogida y a continuacin volver a abrirlo pero seleccionado la entrada mic in, y volver a realizar el proceso de recogida. Para ello tenemos que definir los registros del segn la entrada que queramos en cada comento cada vez que abramos el codec. Este mtodo adems traer de nuevo el problema de que debemos de tomar 20 muestras antes de una vlida. Por lo tanto cada vez que abramos el codec tenemos que tener en cuenta este hecho y saber que las primeras 20 muestras no van a ser vlidas. Para la realizacin del experimento seguimos los siguientes pasos: 1. Para trabajar con el mdulo AIC23 (el encargado de seleccionar las distintas entradas y salidas de sonido) es necesario inicializarlo con unos parmetros (registros) que habr que definir. 2. Con estos registros podremos elegir la entrada, los volmenes de entrada y salida, la frecuencia de muestreo. De estos registros, recordemos que ya hemos hablado. 3. Deberemos darles valores segn nuestras necesidades y luego iniciar el codec con ellos; con la instruccin: o hCodec = DSK5510_AIC23_openCodec(0, &config); donde config lleva los valores de los registros. 4. Una vez cargado el mdulo AIC23 tendremos seleccionada una u otra entrada (mic o line in). 5. Para seleccionar la otra tendremos que iniciar el mdulo de nuevo. Para seleccionar la entrada de la que queremos recoger seal tenemos que modificar el registro Analog audio path control. Para ello, a continuacin, mostramos como es el funcionamiento y como esta definido este registro:

Memoria Descriptiva

Pg. - 119

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

De manera que para seleccionar como entrada line in tenemos que especificar el valor del dicho registro de manera que el valor del bit INSEL sea 0, ya que es el que selecciona la entrada. El valor del registro con line in seleccionada es 0x0012 (en hexadecimal). Para hacer la seleccin de la entrada de micrfono hay que poner el bit INSEM a 1 para que esta sea seleccionada, de manera que el valor del registro queda como 0x0014. Realizamos un programa que simplemente es un bucle que tomando alternativamente de las dos entradas de sonido. Al ejecutarse el programa podemos escuchar que se produce un golpe de ruido que provoca que los datos obtenidos en el programa no sean realmente lo que en teora se debe obtener. Este golpe de ruido se produce cada vez que se inicia el codec (cada vez que se ejecuta DSK5510_AIC23_openCodec). Para nuestro montaje final tendremos que tomar datos de una y otra entrada casi simultneamente por lo que este golpe es un problema grave ya que falsea los datos y a la hora de plantearnos un algoritmo de control es muy importante obtener unos datos que sean lo ms fiel posible a la seal de ruido que queremos eliminar. Para solucionar el problema de ruido intentamos realizar las siguientes pruebas: 1. Intentar cambiar de lnea de entrada (modificar el codec) sin haber cerrado la anterior configuracin de codec. Es decir, si primero recogemos a travs de la entrada LINE IN. Una vez realizada la recogida no cerrar el codec para cambiar la entrada de recogida. Este mtodo no nos soluciona el problema porque contina el golpe de ruido. 2. Una de las causas por las que podra aparecer el golpe de ruido puede ser el hecho de que las 20 muestras primeras que se recogen no son vlidas por lo que hicimos que el programa leyera la entrada varias veces sin reproducir el sonido (para evitar esas 20 primeras muestras) y a continuacin que se produjera la recogida normal. El golpe de ruido contina apareciendo.

Memoria Descriptiva

Pg. - 120

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

3. La otra idea fue modificar el codec directamente, especificando que registro vamos a modificar y que valor va a tomar. Es decir, para cambiar de entrada lo nico que vamos a hacer es que el codec solo cambie el valor del registro Analog audio path control de 0x0012 a 0x0014 o viceversa. o Lo haremos con la instruccin DSK5510_AIC23_rset. Esta instruccin nos permite cambiar uno de los registros iniciales con los que se abri el codec. El programa es el siguiente:
#include #include #include #include #define #define "expe2cfg.h" "dsk5510.h" "dsk5510_aic23.h" "dsk5510_led.h" SIZE 10 TIME 30000

/*LED's*/

/*Toma datos de "line in"*/ DSK5510_AIC23_Config config1 = { \ 0x0017, /*(000010111) 0 LEFTINVOL*/ 0x0017, /*(000010111) 1 RIGHTINVOL*/ 0x01f9, /*(111111001) 2 LEFTHPVOL*/ 0x01f9, /*(111111001) 3 RIGHTHPVOL*/ 0x0012, /*(000010000) 4 ANAPATH (entrada "line in")*/ 0x0000, /*(000000000) 5 DIGPATH*/ 0x0000, /*(000000000) 6 POWERDOWN*/ 0x0043, /*(001000011) 7 DIGIF*/ // 0x0081, /*(010000001) 8 SAMPLERATE*/ 0x009C, /*(010000001) 8 SAMPLERATE*/ 0x0001, /*(000000001) 9 DIGACT*/ }; Int16 linein[2*SIZE]; Int16 mic[2*SIZE]; Int16 i,j,x,y; /*variables*/ void main() { /*manejador, configurado en archivo DSP/BIOS*/ DSK5510_AIC23_CodecHandle hCodec; /*utilizo el DSK5510*/ DSK5510_init(); /*Inicializo los led's*/ DSK5510_LED_init(); /*Arranco el codec*/ hCodec = DSK5510_AIC23_openCodec(0, &config1); x=2; /*bucle de lectura*/ while(x) { for (i = 0; i < TIME; i++) { for (j = 0; j < SIZE; j++) { while (!DSK5510_AIC23_read16(hCodec, &linein[j])); /*comprobamos que toma sonido de line in*/ /*reproducimos*/ while (!DSK5510_AIC23_write16(hCodec, linein[j])); /*Cambio de entrada "line in" a "MIC"*/ DSK5510_AIC23_rset(hCodec, 4, 0x0014);

Memoria Descriptiva

Pg. - 121

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

while (!DSK5510_AIC23_read16(hCodec, &mic[j])); /*Vuelvo a cambiar de entrada "MIC" a "line in"*/ DSK5510_AIC23_rset(hCodec, 4, 0x0010); } } /*bandera de cambio*/ DSK5510_LED_toggle(0); for (i = 0; i < TIME; i++) { for (j = SIZE; j < 2*SIZE; j++) { while (!DSK5510_AIC23_read16(hCodec, &linein[j])); /*Cambio de entrada "line in" a "MIC"*/ DSK5510_AIC23_rset(hCodec, 4, 0x0014); while (!DSK5510_AIC23_read16(hCodec, &mic[j])); /*comprobamos que toma sonido de mic, reproducimos*/ while (!DSK5510_AIC23_write16(hCodec,mic[j])); /*Vuelvo a cambiar de entrada "MIC" a "line in"*/ DSK5510_AIC23_rset(hCodec, 4, 0x0010); } } x--; /*bandera de cambio*/ DSK5510_LED_toggle(0); } /*Cierro el codec*/ DSK5510_AIC23_closeCodec(hCodec); /*bandera de cambio*/ DSK5510_LED_toggle(3); }

Con este programa el golpe de ruido es prcticamente inapreciable pero adems podemos sacar otras conclusiones. Con esto podremos analizar las entradas ms fielmente y ver en que se diferencian (anlisis espectral, valor de datos,). En las dos entradas vamos a introducir la misma seal (un seno de 400Hz creado en Simulink).

En el programa se pueden diferenciar claramente 2 grandes bucles for. En los dos tomo datos alternando las entradas (instruccin DSK5510_AIC23_rset). En el primero de ellos reproduzco slo lo que obtengo de la entrada line in. En el segundo, hago lo propio con la entrada mic in. Adems voy guardando lo obtenido en matrices (linein[2*SIZE] y mic[2*SIZE]. En el primer bucle obtengo slo la mitad de ambas matrices y slo reproduzco la perteneciente a line in (viceversa en el 2 for).

Memoria Descriptiva

Pg. - 122

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Recordemos que en un primer experimento introduzco a ambas entradas la misma seal (seno de 400Hz.) Conclusiones:

1. Aunque en el primer for reproduzco line in y en el segundo mic in, no hay diferencia apreciable al odo. 2. La anterior conclusin se explica al mirar ambas matrices: SON IGUALES. a. Esto no se corresponde con el experimento anterior en el que comprobamos (de manera experimental, es decir, observando el mismo ruido por las dos salidas) que la entrada mic in tiene ms calidad y volumen. b. Podra ser por los registros, ya que podemos alterar varios parmetros de captura que no han sido muy probados (bypass, sidetone, de-emphasis control, power down). Es mucha casualidad que las dos matrices obtenidas sean exactamente iguales. As que procedemos a otro sencillo experimento usando el mismo programa anterior. Vamos a introducir distintos sonidos. Hemos usado para una entrada un seno de 400Hz (el mismo que antes estbamos usando) y para la otra entrada, otro sonido cualquiera que sea bastante diferente del anterior (msica, la radio,) Conclusiones: 1. Al tomar datos alternativos de LINE IN y MIC, si los tomamos uno a uno (y a la vez vamos reproduciendo) se mezclan; an reproduciendo slo un canal. 2. Si no los tomamos alternativos sino que primero capturamos un paquete de datos de un canal (y a la vez vamos reproduciendo) no ocurre lo anterior. 3. Si miramos las tablas de datos, ambas contienen EXACTAMENTE los mismos. Posibles causas: 1. Velocidad del convertidor Analgico-Digital, ya que este es nico para las dos entradas y es posible que si no trabaja suficientemente rpido puede que mezcle las dos seales de entrada. a. Ya que parece que ser all donde los datos de una entrada y de otra se mezclarn. b. Luego, los datos mezclados en uno se guardan donde proceda. i. Por tanto se reproducen las dos seales solapadas y a la vez (aunque durante un tiempo reproduzca slo line in y otro tiempo mic in).

Memoria Descriptiva

Pg. - 123

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

C) PRUEBA 3 (proyecto expe1) Parece que el problema ser del control del mdulo AIC23; ste tiene dos canales serie, uno para controlar la configuracin interna de los registros y otro que se enva y recibe muestras de audio. Recordemos la siguiente figura:

Aqu es donde creemos que puede estar el problema, ya que es en este mdulo donde se encuentran los convertidores ADC y DAC. McBSP1 y McBSP2 siempre fueron configurados como la ayuda nos indica que se han de configurar. Vamos a modificar la velocidad de muestreo de los convertidores para intentar que trabajen ms rpido y as conseguir que no se mezclen las seales. Normalmente tenemos 0x0081 en la palabra Simple Rate Control, que corresponde a 010000001; lo que quiere decir, viendo la tabla de la siguiente pgina. Comprobamos qu frecuencia de muestreo corresponde a los bits SR sabiendo que estamos trabajando en modo USB. Viendo los datasheets sabemos que se corresponde con una frecuencia de muestreo de 48kHz. Adems tenemos divisor de reloj de salida (MCLK/2). Cambiaremos dicho registro con la funcin que ya hemos mencionado y que anteriormente hemos usado para cambiar el registro en el que se elige la entrada (ANAPATH). La funcin es DSK5510_AIC23_rset. Simple Rate Control (address 0001000)

BIT D8 D7 D6 D5 Function X CLKOUT CLKIN SR3 Default 0 1 0 0

D4 SR2 0

D3 SR1 0

D2 D1 D0 SR0 BOSR USB/Normal 0 0 1

Memoria Descriptiva

Pg. - 124

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

CLKOUT CLKIN SR[3:0] BOSR USB/Normal X

Clock output divider Clock input divider

0 = MCLK

1 = MCLK/2 1 = MCLK/2

0 = MCLK Sampling rate control Base oversampling rate USB mode 0 = 250 fs Normal mode: 0 = 256 fs Clock mode select: 0 = Normal Reserved

1 = 272 fs 1 = 384 fs 1 = USB

Vamos a cambiar esta palabra por una que haga funcionar en modo normal (en lugar de USB), y que trabaje a la mayor frecuencia posible (96 kHz.). Esta palabra es 010011100 (que corresponde con 9C en hexadecimal). Para el nuevo experimento:

Se siguen mezclando los datos. Parece que se escucha ms el dato que se pretende reproducir en cada for. Las matrices linein[j] y mic[j] ya no son iguales, pero se parecen bastante. Con esta misma configuracin, vamos a leer cada valor 2 veces:

Cada vez se escucha ms el que se pretende

Introduzco un for(y=0;y<100;y++); (lo suponemos como operaciones entre que recojo un dato y el siguiente).

No parece que se mejore en el camino que pretendemos. Probamos a, en el segundo for, no tomar datos de una de las entradas:

Se distorsiona el sonido muchsimo. No parece que se deje de tomar valores en una de las entradas. o Distorsin de slo una de las entradas. o Valores en ambas matrices Esto lleva a: EL ERROR PUEDE ESTAR EN LAS INTRUCCIONES 1. DSK5510_AIC23_rset(hCodec, 4, 0x0012); 2. DSK5510_AIC23_rset(hCodec, 4, 0x0014);

con las que nosotros pretendemos cambiar de una entrada a otra (de line in a mic in)

Memoria Descriptiva

Pg. - 125

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Pero estas instrucciones eran la solucin a los golpes de ruido al abrir y cerrar los codecs. Como ltima prueba veremos qu ocurre si aumentamos la frecuencia de muestreo a 96kHz.
/*Pongo la frecuencia de muestreo a 96kHz.*/ DSK5510_AIC23_setFreq(hCodec, DSK5510_AIC23_FREQ_96KHZ);

No se obtiene solucin D) PRUEBA 4 (proyecto expe3) Un posible experimento sera abrir el codec con el registro que controla el encendido del DAC (convertidor digital-analgico, el de salida para que nos entendamos), desconectado. Evidentemente la tarjeta no reproduce ningn sonido. Podr ser esta una solucin al golpe de ruido? Abriendo el codec con el DAC off y luego encendindolo? Si en cada for abro y cierro distintos codecs, uno para cada entrada, no toma bien los datos; se vio que tiene que tomar alrededor de 20 datos para que se conviertan en fiables. Llamaremos a esto tiempo (o muestras) de estabilizacin. Otro posible experimento podra ser el siguiente: Con el registro power-down podemos, en teora, desactivar una serie de parmetros. Vemoslos:
Power Down Control (Address: 0000110)
BIT Function Default D8 X 1 D7 OFF 0 D6 CLK 0 D5 OSC 0 D4 OUT 0 D3 DAC 0 D2 ADC 1 D1 MIC 1 D0 LINE 1

OFF CLK OSC OUT DAC ADC MIC LINE X

Device power Clock Oscillator Outputs DAC ADC Microphone input Line input Reserved

0 = On 0 = On 0 = On 0 = On 0 = On 0 = On 0 = On 0 = On

1 = Off 1 = Off 1 = Off 1 = Off 1 = Off 1 = Off 1 = Off 1 = Off

1. Si se nota gran disminucin de ruido si al tomar datos de mic, por ejemplo, desactivamos line in (y viceversa). 2. Pero siguen mezclndose los datos de las dos entradas. Incluso desactivando las entradas (mic in muted, line in muted) cuando se recoja de la otra, se siguen mezclando. Suponemos que aunque digamos

Memoria Descriptiva

Pg. - 126

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

que no se tomen datos de una entrada especfica, el ltimo dato de la entrada ya silenciada se mezcla con el dato de la entrada recin activada. Tomando dos muestras cada vez ocurre; no sabemos cuntas muestras harn falta para que esto ya no ocurra.

*NOTA: Una de las hiptesis que se estuvieron barajando como posible fuente del error que se observaba fue la del convertidor analgico digital (ADC). Citando un poco de teora de los convertidores, y hablando de forma brusca, se puede decir que los convertidores toman las muestras con las que trabajarn en condensadores. En sucesivas muestras estos condensadores han de cargarse (para almacenar la muestra) y descargarse (para posibililitar la carga de otra muestra). Se ha pensado que el error poda estar en el tipo de seal que inicialmente se est capturando; y decimos inicialmente porque de momento las muestras que estamos tomando slo las necesitamos (y as se estn usando) para que sirvan de ayuda al manejo y aprendizaje del DSP. Puede estar pasando que al estar tomando, por un lado una seal senoidal y por otro simplemente se est usando una seal de salida de la tarjeta de sonido de un PC (dos seales claramente diferenciadas), una de las dos seales est saturando en ADC, no est dando el tiempo suficiente de carga y descarga a esos condensadores de los que hablbamos. Para comprobar que esto no era as se dieron los siguientes pasos: Se comprob la frecuencia de muestreo del ADC (establecida en el programa de prueba a 96kHz). Se hicieron dos seales senoidales por debajo de la frecuencia del ADC con el objetivo de que no saturen. Realizas en Simulink creando un archivo .wav como resultado de una onda senoidal de amplitud la unidad. Se volvi a realizar el experimento. Se siguen mezclando las seales es decir:
-

Cuando escucho las muestras tomadas, que se hace a la vez que se van tomado los datos, las dos seales se entremezclan teniendo mayor peso y escuchndose la que se desea reproducir pero sonado siempre de fondo la otra.

Se obtuvieron los mismos resultados con seales que eran de frecuencia menor a la mitad de la de muestreo y con frecuencias mucho mayores. Adems se ha hecho la prueba de realizar el experimento con slo una seal, es decir, recogemos datos de las dos entradas pero slo metemos seal por un de ellas. Lo que se obtuvo era de esperar, en ambas reproducciones (la de la entrada con seal y la correspondiente a la entrada en vaco) se oye la seal. Si se ha de decir que en la correspondiente a la que s tiene seal se nota una mayor intensidad que en la otra.

Memoria Descriptiva

Pg. - 127

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

E) PRUEBA 5 (proyecto expe8) Otra prueba que se ha realizado es la correspondiente al proyecto expe8. Este proyecto consta de un programa exactamente igual que el expe3 con la salvedad que, adems de que no se les da seal a las dos entradas, ponemos un es: Cuando estamos reproduciendo lo que se supone corresponde a la entrada con seal, escuchamos dicha seal muy distorsionada. Y cuando se reproduce lo que en teora sera la nada (entrada sin seal) escuchamos la seal introducida POR LA OTRA ENTRADA perfectamente.

Lo nico que ha generado esta prueba es la pregunta del por qu de este fenmeno. F) PRUEBA 6 (proyecto expe9) Tambin se prob silenciando la entrada de la que no se deban tomar datos. Ahora en cada cambio de entrada, adems de cambiar el registro n 4 para que tomase datos de line in o mic segn conviniese, silenciamos la otra. Ahora se introducen en el cdigo las siguientes lneas segn convengan:
/*Cambio de entrada "line in" /*y line in muted*/ DSK5510_AIC23_rset(hCodec, 4, DSK5510_AIC23_rset(hCodec, 0, DSK5510_AIC23_rset(hCodec, 1, a "MIC"*/ 0x0014);/*Cambio*/ 0x0097);/*muted left*/ 0x0097);/*muted right*/

/*Vuelvo a cambiar de entrada DSK5510_AIC23_rset(hCodec, 4, DSK5510_AIC23_rset(hCodec, 0, DSK5510_AIC23_rset(hCodec, 1, "MIC" a "line in"*/ 0x0012); 0x0017); 0x0017);

Se sigue sin obtener los resultados deseados; seguimos obteniendo un sonido principal y otro de fondo; y adems se observa un retraso aadido, posiblemente, como consecuencia de tantos cambios en la configuracin del codec.

* NOTA: Hay que recordar que todas estas pruebas y experimentos los estamos haciendo con entradas y salidas estreo. Es decir, que para cada entrada (dos en nuestro DSP, line in y mic) y para cada salida (el DSP dispone de otras dos, headphoned y line out) disponemos, a su vez, de dos canales, canal izquierdo y canal derecho.

Memoria Descriptiva

Pg. - 128

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Una vez llegados aqu se nos plantea el ser un poco menos ambiciosos en nuestras pretensiones ya que, despus de haber intentado, experimentado y probado bastantes mtodos no hemos conseguido obtener seales limpias de una y otra entrada si las tomamos de forma alternativa. Recordemos:
-

Pretendemos abrir una lnea de investigacin sobre CAR (control activo de ruido). Para ello y tras indagaciones sobre el tema: o Posibilidad de hacerlo sobre PC, en matlab o simulink usando la tarjeta de audio del mismo ordenador. o Mediante una tarjeta de adquisicin de datos simple a la que le acoplaramos perifricos para poder capturar y reproducir sonido. o Nos decantamos por la adquisicin de un DSP (digital signal processor) especial para la adquisicin de audio. Ahora bien, se inici un aprendizaje sobre la tarjeta (entradas, salidas, potencia de procesado, memoria, ); adems tuvimos que adquirir manejo del hardware asociado (para la programacin, que podra ser en lenguaje mquina o en C). Como idea inicial de programacin y dada su vistosidad y fcil manejo y entendimiento, comenzamos a programar en lenguaje C.

Hasta aqu los pasos que no llevaron a programar en lenguaje C el DSP TMS3200C5510 de Texas Instrument (que fue el elegido para comenzar a trabajar). Como sabemos la base del control activo de ruido es la adicin de seales tratadas al ruido ambiente; es decir, la suma de ms ruido al que ya haba. Para esto necesitaramos un sensor receptor del ruido que queremos atenuar y un actuador como podr ser un altavoz (por el que reproduciremos el ruido cancelador). Si optamos por esta forma de cancelacin no debemos encontrar problema a la hora de realizar el controlador. Dicho controlador tendr slo una seal de entrada y una de salida. Sin embargo, si queremos hacer un control un poco ms fiable deberemos aadir un segundo sensor receptor de ruido que recoger el ruido residual que quede despus de la cancelacin. Ser lo que se conoce como seal de error. Para este caso necesitaremos dos entradas (referencia y error) y tan slo una salida. Fue a partir de aqu cuando comenz nuestra lucha particular con el DSP. Pues se busc la manera de poder leer de las dos entradas (referencia y error) de forma alternativa y obteniendo resultados fiables.
Hasta ahora siempre se ha intentado un control de ruido en estreo. Es decir, usando cada una de las entradas del DSP. Una para la referencia de ruido (ruido a cancelar) y la otra para el ruido residual despus de la atenuacin (ruido de error). Usbamos las dos entradas del DSP, mic in y line in. Hicimos bastantes pruebas con el objetivo de poder tomar datos de entrada de ambas alternativamente (esta ser la base del control, la toma de muestras). Despus de estos experimentos y pruebas, sin obtener el resultado deseado pensamos en un control de ruido monocanal (no estreo).

Memoria Descriptiva

Pg. - 129

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

De esta forma usaremos una misma entrada estreo de la tarjeta (line in por ejemplo) en la que dedicaremos de forma independiente los canales derecho e izquierdo para el ruido de entrada (referencia) y el de error. Por tanto ahora nos pusimos ha experimentar con los dos canales de una misma entrada. Primero se intent recoger alternativamente de una misma entrada pero silenciando el canal (derecho o izquierdo) del que no nos interese en ese caso obtener seal. Esto se puede hacer de nuevo cambiando registros de la configuracin inicial del codec. Recordemos que los dos primeros registros son los pertenecientes a los canales de entrada (tanto de la lnea de entrada, line in como del micrfono, mic). G) PRUEBA 7 (proyecto expe9) As, se realiz un nuevo programa de prueba en el que slo se utilizaba la entrada line in para capturar datos. El grueso del programa es prcticamente igual a los anteriores: Includes y defines Declaracin de la configuracin del codec Declaracin de variables Bucle principal (main) o Declaracin del manejador del codec o Iniciacin del DSK5510 o Arranque del codec o Bucles de recogida o Cierre del codec

En cada programa lo que cambia son los bucles de recogida. En este caso hay dos muy similares que toman la siguiente forma:
for (i = 0; i < TIME; i++) { for (j = 0; j < SIZE; j++) { while (!DSK5510_AIC23_read16(hCodec, &in_left[j])); /*comprobamos que toma sonido de line in, reproducimos*/ while (!DSK5510_AIC23_write16(hCodec, in_left[j])); while (!DSK5510_AIC23_read16(hCodec, &in_left[j])); while (!DSK5510_AIC23_write16(hCodec, in_left[j])); /*Cambio de canal izq. a der.*/ DSK5510_AIC23_rset(hCodec, 0, 0x0097); DSK5510_AIC23_rset(hCodec, 1, 0x0017); while (!DSK5510_AIC23_read16(hCodec, &in_right[j])); while (!DSK5510_AIC23_read16(hCodec, &in_right[j]));

Memoria Descriptiva

Pg. - 130

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

/*Cambio de canal der. a izq.*/ DSK5510_AIC23_rset(hCodec, 0, 0x0017); DSK5510_AIC23_rset(hCodec, 1, 0x0097); } }

Al cambiar de canal derecho a izquierdo y viceversa lo que estamos haciendo es silenciar el canal que dejar de ser el activo y dar volumen al canal del que, en esa ocasin, recogeremos datos. Mostramos uno de los registros (en el que podemos configurar el canal izquierdo) para que se pueda entender mejor el cdigo del programa.

0 - Left line input channel volume control (Address: 0000000)


BIT D8 D7 D6 D5 D4 D3 D2 D1 Function LRS LIM X X LIV4 LIV3 LIV2 LIV1 Default 0 1 0 0 1 0 1 1 D0 LIV0 1

LRS LIM LIV[4:0] X

Left/right line simultaneous volume/mute update Simultaneous update 0 = Disabled 1 = Enabled Left line input mute 0 = Normal 1 = Muted Left line input volume control (10111 = 0 dB default) 11111 = +12 dB down to 00000 = 34.5 dB in 1.5-dB steps Reserved

El registro encargado del canal derecho es exactamente igual; slo vara en su nombre:

1 - Right Input Volume (DSK5510_AIC23_RIGHTINVOL)


Con la prueba de este programa no avanzamos an. Ya se ha probado prcticamente todo a nivel de cambio en los registros y seguimos teniendo de fondo la seal que no se deba de reproducir.

* NOTA: Buscando en la red toda la informacin posible y preguntando en foros y dems (ya que la ayuda que se nos dispone no nos da la clave para llegar a donde queremos) encontramos informacin sobre cmo recoge datos la instruccin DSK5510_AIC23_read16(hCodec, &variable). Esta instruccin (hablemos del DSP en s) para tomar datos tiene una memoria para un filtro FIR anti-aliasin la cual almacena datos anteriores que son los que producen el sonido de fondo (aunque esperemos a que se descarguen los supuestos condensadores). Adems averiguamos que el DSK5510 no soporta la multiplexin de la entrada en tiempo real. Esto quiere decir que no podemos cambiar de entrada de line in a mic y viceversa de forma alternativa e inmediata.

Memoria Descriptiva

Pg. - 131

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

H) PRUEBA 8 Buscando otro nuevo punto de vista en el que captursemos el sonido de forma totalmente distinta a la que hasta ahora habamos intentado dimos con un ejemplo en el que se usaba el acceso dinmico a memoria para liberar al DSP de la tarea de la transferencia de datos. Tras leer este ejemplo se pens bajar hasta bajo nivel (cosa a la que no se quera llegar, pues lo interesante era hacerlo en lenguaje C). Lo importante de este ejemplo y la lectura y enseanza que sacamos de l fue el aprendizaje de cmo se tratan los canales en cada muestreo de la entrada. Lo importante, y lo que nos despert de nuevo las esperanzas de poder hacer lo que se plante en un principio fue lo siguiente:

Es decir, una vez recogido los datos de la entrada de audio, son almacenados en palabras de 16 o 32 bits (hasta ah era conocido); lo importante viene cuando nos damos cuenta que los canales izquierdo y derecho de cada muestra se intercalan en palabras de 4 bits. Podemos hacer un tratamiento de los datos recogidos y elegir el canal que deseamos. Se eliminar un canal u otro para almacenar posteriormente datos por separado del canal izquierdo y del derecho. Este concepto del tratamiento del ruido se ha visto en un programa ejemplo de la ayudadle DSP. Puede ser una buena manera de tratar la seal ya que: Tendramos slo que utilizar una entrada. La separacin de seales se hara a nivel de procesado. Una vez captado el ruido sera cuando se hara la separacin de las seales de referencia y de error. Al usar slo una entrada, no tenemos que hacer un clculo previo para llevarlas al mismo nivel de ruido, ganancia, etc., de forma que puedan ser comparadas perfectamente dichas entradas. Por el contrario, dejamos de lado el tratamiento estreo para pasar a uno monocanal.

Memoria Descriptiva

Pg. - 132

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

La desventaja que tiene este tipo de tratamiento de la seal (monocanal) no podemos considerarla como tal ya que hablar de un control de ruido con tratamiento estreo era ya una caracterstica que estaba de ms. EXPERIMENTO Realizamos un programa de experimento para ver si sera factible seguir esta lnea como futura de captacin de ruidos. Haremos un programa con las instrucciones que hemos venido manejando hasta ahora, es decir, la presencia del mdulo de instrucciones de manejo del AIC23 ser fundamental en el desarrollo del mismo. Las primeras pruebas revelan que el tratamiento que pensbamos nosotros, a la vista del ejemplo que se ha realizado, no es el correcto. Para obtener un tratamiento as habra que tratar directamente con los puertos de entrada y no usar ninguna interfaz intermedia (como en el caso que se ha programado es el ya archiconocido mdulo AIC23). Estamos, siempre hablando, del tratamiento de la muestra que se ha visto hace un momento: cuatro bits para el canal izquierdo y cuatro para el derecho (dentro de la misma palabra de muestra). Realizando este experimento, y para comprobar si estbamos en lo cierto en cuanto al tratamiento de ruido, hicimos algunas pruebas especiales. Reprodujimos seales formadas por valores preparados para reproducir tan slo por un canal. O tratamos las seales capturadas por la entrada para hacer lo propio. Fue entonces cuando nos dimos cuenta que no estbamos en lo cierto al pensar ese tratamiento de la seal. Seguamos teniendo seal de salida por ambos canales. * Captura y Reproduccin de Sonido Con todo esto, al ver que no encontrbamos solucin para el problema de la mezcla de sonidos, recurrimos a Internet y en foros especializados en el dsp que usamos expusimos nuestro caso y la solucin que se nos dio fue que intenta recoger en de cada una de las entradas alternativamente y estas emitirlas por separa no se poda hacer en C. La nica solucin era programar a ms bajo nivel (ensamblador). Esta solucin era factible para solucionar el problema de la mezcla de seales pero la idea del proyecto era programar en C para, as, facilitar la inclusin de un algoritmo de control cualquiera que sea en medio del programa. La solucin que se obtuvo al final para poder conseguir la programacin del sistema fue olvidarnos de usar dos entradas y dos salidas, ya que nos haban producido muchos problemas (golpe de ruido, mezcla de seales).

Memoria Descriptiva

Pg. - 133

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

I) PRUEBA 9 Haciendo ms pruebas con este mismo tipo de tratamiento nos dimos cuenta que las funciones encargadas de capturar y reproducir sonido capturan o reproducen (valga la redundancia) primero de un canal y despus de otro. No hemos de decirle a la funcin de qu canal queremos tomar la muestra, y no podemos tomar dos muestras seguidas de un mismo canal. Una vez ejecutado openCodec cada vez que se ejecute read tomar muestras alternando canales; de igual forma har con la funcin write. Por tanto para muestrear slo un canal deberemos alternar dos usos de la funcin read, uno guardando datos correctos y otro no haciendo casos a esos datos. Por ejemplo: /* Tomar una muestra del canal izquierdo */ while (!DSK5510_AIC23_read16(hCodec, &left)); /* Tomar una muestra del canal derecho */ while (!DSK5510_AIC23_read16(hCodec, &light)); De esta forma estaramos guardando por separados datos del canal derecho e izquierdo. Y si quisiramos reproducir tan slo por un canal:
/* Escribe una muestra en el canal izquierdo */ while (!DSK5510_AIC23_write16(hCodec, left)); /* No reproduce nada en el canal derecho */ while (!DSK5510_AIC23_write16(hCodec, 0x00));

Para lograr usar nicamente una de las salidas hay que entender como funciona la instruccin en C que se encarga de transmitir un determinado dato a cualquiera de los dos terminales de salida para que este sea reproducido a travs de altavoces, auriculares La instruccin tiene la siguiente estructura:
while (!DSK5510_AIC23_write16(hCodec, sonido[j]));

Es decir, la instruccin escribe a la salida el dato sonido(j). La salida estar definida segn hayamos definido los registros del codec. Pues bien, si ponemos esta instruccin dos veces seguidas el tratamiento del dato funciona de manera muy particular. Esto es, al poner dos veces la instruccin lo que ocurre es que la primera vez el dato se transmite a travs del canal izquierdo de una seal estreo y la segunda vez a travs del canal derecho, de manera que si tenemos unos altavoces a la salida de la tarjeta sonar en primer lugar en el altavoz izquierdo y despus el altavoz derecho. Teniendo en cuenta que los experimentos que estamos realizando es con seales senoidales puras (seales mono) podemos trabajar con un solo para de altavoces para la construccin del sistema CAR. De manera que el altavoz derecho se encargar de emitir el ruido original (ruido que queremos eliminar) y el altavoz izquierdo se encargar de reproducir el ruido de cancelacin.

Memoria Descriptiva

Pg. - 134

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Este hecho es tambin importante tenerlo en cuenta ya que a la hora de hacer bucles con la instruccin write16 es importante asegurarse de que se ejecuta un nmero de veces par, es decir, que se ha reproducido por los dos canales,.l Ya que si se ejecuta un nmero de veces impar a la hora de hacer clculos podemos llegar a errores. As podremos representar el que ser nuestro sistema de salida de la siguiente forma:

En el caso de las lneas de entrada (mic in y line in), vamos a hacer algo parecido. Recordamos que si tratamos de usar las dos entradas simultneamente en el mismo programa nos aparecen distintos problemas tales como la aparicin de un golpe de ruido cada vez que abrimos el codec para seleccionar entrada y el solapamiento de las seales de las dos entradas cuando son reproducidos debido a la existencia de un nico convertidor analgico-digital demasiado lento para procesar las dos seales. As pues, el planteamiento es el mismo que para el caso de las salidas, solo que en este caso vamos a tener que usar dos micrfonos. La base para poder usar este tipo de sistema es que el funcionamiento de la instruccin para la lectura de seal de una determinada entrada es el mismo que el de la instruccin de escritura:
while (!DSK5510_AIC23_read16(hCodec, sonido[j]));

Es decir, que la primera vez que aparece esta instruccin va a leer del canal izquierdo de la entrada que est seleccionada (a travs del registro ANAPATH del codec) y la segunda vez que aparezca leer el canal derecho de dicha entrada.

Memoria Descriptiva

Pg. - 135

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Para realizar este montaje correctamente usaremos dos micrfonos. El primero se encargar de recoger la seal primaria y el segundo de recoger la seal que hayamos creado (en teora esta ser la que creemos para cancelar el sonido). Estos dos micrfonos irn conectados a un mismo cable (estreo) siendo cada una de las seales de los dos micrfonos las dos seales (canal izquierdo y canal derecho) que lleva normalmente una seal estreo. El cable que contiene las dos seales ir conectado a la conexin de entrada que elijamos. La estructura del sistema sera la siguiente:

Con estos dos montajes se solucionan todos los problemas derivados de ir cambiando la configuracin del codec para seleccionar tanto las salidas como las entradas, como son el golpe de ruido, solapamiento de seales.. Una vez solucionado este problema, en el siguiente experimento realizamos un montaje en el que emitimos una seal a travs del canal derecho de la salida LINE OUT (seal senoidal) y la recogemos con un micrfono a la entrada MIC IN. La intencin de este experimento es ver la fidelidad con que se recoge una seal senoidal con el micrfono que tenemos para monta el sistema y ver la calidad de dicha seal. Con este experimento tendremos un primer acercamiento a las distintas posibilidades que podremos exigir al sistema CAR definitivo. Tendremos una primera visin de los distintos problemas de amplitud y retraso en la recogida de seales debido a los procesos en la tarjeta y a la calidad del micrfono. La idea es hacer un bucle en el que vayamos emitiendo un sonido y a su vez recogindolo a travs del micrfono todo usando la tarjeta dsp. Con el software CCstudio podemos ver los valores que se obtienen en la recogida del micrfono almacenndolos en un vector. La seal que vamos a emitir es un seno puro de 1 kHz de frecuencia.

Memoria Descriptiva

Pg. - 136

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El programa es el siguiente:
#include "loopbackcfg.h" #include "dsk5510.h" #include "dsk5510_aic23.h" #define SINE_TABLE_SIZE 48 // Creamos un vector donde ir seal la seal senoidal /* Configuracin registros del codec */ DSK5510_AIC23_Config config = { \ 0x0017, /* 0 DSK5510_AIC23_LEFTINVOL */ 0x0017, /* 1 DSK5510_AIC23_RIGHTINVOL */ 0x01f9, /* 2 DSK5510_AIC23_LEFTHPVOL */ 0x01f9, /* 3 DSK5510_AIC23_RIGHTHPVOL */ 0x0012, /* 4 DSK5510_AIC23_ANAPATH */ 0x0000, /* 5 DSK5510_AIC23_DIGPATH */ 0x0000, /* 6 DSK5510_AIC23_POWERDOWN */ 0x0043, /* 7 DSK5510_AIC23_DIGIFt */ 0x0081, /* 8 DSK5510_AIC23_SAMPLERATE */ 0x0001, /* 9 DSK5510_AIC23_DIGACT */ }; Int16 i,j,left,right; /* Definimos la seal seno que vamos a emitir a travs de los altavoces (LINE OUT) */ Int16 sinetable[SINE_TABLE_SIZE] = { 0x0000, 0x10b4, 0x2120, 0x30fb, 0x3fff, 0x4dea, 0x5a81, 0x658b, 0x6ed8, 0x6ed8, 0x0000, 0x9128, 0x9128, }; // Definimos el vector donde vamos a almacenar los valores recogidos por el micrfono Int16 sinetable_in[2*SINE_TABLE_SIZE]; void main() { DSK5510_AIC23_CodecHandle hCodec; /* Para inicializar las libreras de la tarjeta tenemos que llamar primero con esta funcin */ DSK5510_init(); /* Abrimos el codec */ hCodec = DSK5510_AIC23_openCodec(0, &config); /* Creamos un bucle que se realizar 3000 veces. Este bucle define el tiempo que estar sonando la seal seno en los altavoces */ for (i = 0; i < 3000; i++) { /* Cada vez que pasa una por el bucle principal hacemos 48 recogidas de muestras con el micrfono y emitimos 48 veces a travs de los altavoces */ for (j = 0; j < 48; j++) { /* Escribimos dato en el canal izquierdo de salida */ while (!DSK5510_AIC23_write16(hCodec, sinetable[j])); /* Leemos dato canal izquierdo de entrada */ while (!DSK5510_AIC23_read16(hCodec, &sinetable_in[j])); 0x763f, 0x658b, 0xef4c, 0x89c1, 0x9a76, 0x7ba1, 0x5a81, 0xdee0, 0x845f, 0xa57f, 0x7ee5, 0x4dea, 0xcf06, 0x811b, 0xb216, 0x7ffd, 0x3fff, 0xc002, 0x8002, 0xc002, 0x7ee5, 0x30fb, 0xb216, 0x811b, 0xcf06, 0x7ba1, 0x2120, 0xa57f, 0x845f, 0xdee0, 0x76ef, 0x10b4, 0x9a75, 0x89c1, 0xef4c

Memoria Descriptiva

Pg. - 137

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

/* Escribimos dato en el canal derecho de salida */ while (!DSK5510_AIC23_write16(hCodec, 0x0000)); /* Leemos dato canal derecho de entrada */ while (!DSK5510_AIC23_read16(hCodec, &right)); } for (j = 0; j < 48; j++) { /* Escribimos dato en el canal izquierdo de salida */ while (!DSK5510_AIC23_write16(hCodec, sinetable[j])); /* Leemos dato canal izquierdo de entrada */ while(!DSK5510_AIC23_read16(hCodec,&sinetable_in[j+48])); /* Escribimos dato en el canal derecho de salida */ while (!DSK5510_AIC23_write16(hCodec, 0x0000)); /* Leemos dato canal derecho de entrada */ while (!DSK5510_AIC23_read16(hCodec, &right)); } } /* Cerramos el codec */ DSK5510_AIC23_closeCodec(hCodec); }

El funcionamiento del programa es bastante sencillo, ya que solo emitir una seal a travs de la salida line out y recoger otra a travs de la entrada mic in. Para ello nos basamos en el funcionamiento de las dos instrucciones explicadas anteriormente read16 y write16. Si analizamos el bucle de emisin y recogida vemos que lo primero que hacemos es emitir por el canal izquierdo de la salida line out y justo despus recogemos del canal izquierdo de la entrada mic in. La siguiente que pongamos esas instrucciones harn lo mismo solo que en por el canal derecho. Por lo tanto lo que hemos hecho es crear un vector que se llama right en el que vamos a ir almacenando las recogidas del canal derecho que, en este caso, no recogemos nada. Y a su vez, lo que hacemos es transmitir al canal derecho de la salida line out 0x000 para que no suene nada en el altavoz derecho del para de altavoces estreos que tenemos conectada a esa salida. Otro hecho importante en el programa es el que hagamos que el vector de recogida de sonido sea el doble de grande, esto es para que a la hora de representarlo se vea mejor como recoge el micrfono. Cuando tenamos el vector de recogida del mismo tamao que el de la seal seno obtenamos los siguientes resultados:

Memoria Descriptiva

Pg. - 138

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Como podemos comprobar la seal recogida por el micrfono es bastante diferente a la seal original. La principal causa es que el micrfono es un atenuador bastante fuerte, pero adems existen otras causas. Estos resultados se han realizado en espacio abierto (una habitacin) con el micrfono pegado al altavoz. Como podemos comprobar la recogida por parte del micrfono es demasiado deficiente.

Memoria Descriptiva

Pg. - 139

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Si analizamos la introduccin incluida en esta memoria podemos comprobar que todos los experimentos se han realizado en el interior de un tubo tubera por lo que para el correcto desarrollo del proyecto tomamos la decisin de usar un tubo. El tubo es de material de PVC de 200 mm. de dimetro y un longitud de 3 metros. El dimetro ha sido elegido con el fin de poder introducir los altavoces y los micrfonos sin problemas y la longitud se ha elegido a fin de que el sistema tenga suficiente espacio para realizar todas las operaciones necesarias en el interior del tubo. Esto es: emisin ruido a eliminar, captacin de dicho ruido, operaciones para la crear ruido cancelacin, emisin ruido cancelacin y recogida de la seal definitiva. Si tenemos un tubo muy corto es probable que todas estas operaciones no podamos realizar las de manera que se ejecutan en su correcto orden en el interior del tubo y adems utilizando un tubo de longitud alta podemos reducir problemas de ecos y dems al poder tener los altavoces suficientemente alejados. Una vez que hemos conseguido el tubo, volvimos a realizar los experimentos que realizamos en espacio abierto. Como para el sistema CAR necesitamos dos micrfonos hemos realizado diferentes pruebas con los dos micrfonos que vamos a usar para el montaje definitivo para as comparar la calidad de los dos micrfonos. Los dos micrfonos que se han usado en la consecucin del proyecto ya son conocidos ya que anteriormente se ha hablado de sus caractersticas, as que no nos extenderemos ms en los mismos. Lo primero que vamos a hacer es comprobar como miden ambos micrfonos en el interior y exterior del tubo para as comprobar la diferencia de recogida entre uno y otro micrfono y adems la diferencia en la captacin de sonido en el interior y exterior del tubo.

Memoria Descriptiva

Pg. - 140

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Memoria Descriptiva

Pg. - 141

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Para estos experimentos utilizamos el programa que ya hemos analizado de emisin captacin de sonido:
#include "loopbackcfg.h" #include "dsk5510.h" #include "dsk5510_aic23.h" #define SINE_TABLE_SIZE 48 //Vector con seal senoidal /* Configuracin registros del codec */ DSK5510_AIC23_Config config = { \ 0x0017, /* 0 DSK5510_AIC23_LEFTINVOL */ 0x0017, /* 1 DSK5510_AIC23_RIGHTINVOL */ 0x01f9, /* 2 DSK5510_AIC23_LEFTHPVOL */ 0x01f9, /* 3 DSK5510_AIC23_RIGHTHPVOL */ 0x0012, /* 4 DSK5510_AIC23_ANAPATH */ 0x0000, /* 5 DSK5510_AIC23_DIGPATH */ 0x0000, /* 6 DSK5510_AIC23_POWERDOWN */ 0x0043, /* 7 DSK5510_AIC23_DIGIF */ 0x0081, /* 8 DSK5510_AIC23_SAMPLERATE */ 0x0001, /* 9 DSK5510_AIC23_DIGACT */ }; Int16 i,j,left,right; /* Definimos la seal altavoces (LINE OUT) */ seno que vamos a emitir a travs de los

Int16 sinetable[SINE_TABLE_SIZE] = { 0x0000, 0x10b4, 0x2120, 0x30fb, 0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x0000, 0xef4c, 0xdee0, 0xcf06, 0x9128, 0x89c1, 0x845f, 0x811b, 0x9128, 0x9a76, 0xa57f, 0xb216, };

0x3fff, 0x7ffd, 0x3fff, 0xc002, 0x8002, 0xc002,

0x4dea, 0x7ee5, 0x30fb, 0xb216, 0x811b, 0xcf06,

0x5a81, 0x7ba1, 0x2120, 0xa57f, 0x845f, 0xdee0,

0x658b, 0x76ef, 0x10b4, 0x9a75, 0x89c1, 0xef4c

// Vector para almacenar los valores recogidos por el micrfono Int16 sine_in[2*SINE_TABLE_SIZE]; void main() { DSK5510_AIC23_CodecHandle hCodec; /* Para inicializar las libreras de la tarjeta tenemos que llamar primero con esta funcin */ DSK5510_init(); /* Abrimos el codec */ hCodec = DSK5510_AIC23_openCodec(0, &config); /* Creamos un bucle que se realizar 3000 veces. Este bucle define el tiempo que estar sonando la seal seno en los altavoces */ for (i = 0; i { /* Cada vez recogidas de travs de los < 3000; i++) que pasa una por el bucle principal hacemos 48 muestras con el micrfono y emitimos 48 veces a altavoces */

for (j = 0; j < 48; j++) { /* Escribimos dato en el canal izquierdo */ while(!DSK5510_AIC23_write16(hCodec,sinetable[j])); /* Leemos dato procedente del canal */ while(!DSK5510_AIC23_read16(hCodec,&sine_in[j])); /* Escribimos dato en el canal derecho */

Memoria Descriptiva

Pg. - 142

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

while(!DSK5510_AIC23_write16(hCodec,0x0000)); /* Leemos dato procedente del canal derecho */ while (!DSK5510_AIC23_read16(hCodec, &right)); } for (j = 0; j < 48; j++) { /* Escribimos dato en el canal izquierdo */ while(!DSK5510_AIC23_write16(hCodec,sinetable[j])); /* Leemos dato procedente del canal izquierdo */ while(!DSK5510_AIC23_read16(hCodec,&sine_in[j+48])); /* Escribimos dato en el canal derecho */ while(!DSK5510_AIC23_write16(hCodec,0x0000)); /* Leemos dato procedente del canal derecho */ while(!DSK5510_AIC23_read16(hCodec,&right)); } } /* Cerramos el codec */ DSK5510_AIC23_closeCodec(hCodec); }

Este programa tan slo recoge seal de sonido de slo un canal de entrada. En este caso concreto del canal izquierdo. Decimos que slo recoge del canal izquierdo porque, aunque si est recogiendo del canal derecho, en realidad por el canal derecho no se est reproduciendo nada. Por lo que, en teora, recoge vaco. Los dos bucles son porque rellenamos primero los datos de la parte baja de la matriz correspondiente a la recogida de datos (el tamao de esta matriz ser del doble que de la de entrada), y luego los de la parte alta. La seal que vamos a emitir para que los micrfonos la recojan en el interior y exterior del tubo es una senoidal tal y como la que sigue:

Memoria Descriptiva

Pg. - 143

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Para los dos micrfonos hicimos varios experimentos. Mostraremos a continuacin algunos de los ltimos realizados (para cada caso), en el que ya se puede ver la fidelidad de los datos. Micrfono EV PL-80 Los resultados obtenidos con este micrfono en el exterior del tubo son:

Comprobamos que en el exterior del tubo a parte de producirse una fuerte atenuacin se produce una deformacin de la seal, lo que hace que sea ms complicado plantearse un control activo de ruido de esta seal. No mostramos ms resultados para el exterior del tubo ya que la grfica obtenida en cada caso difiere bastante de otra posible anterior o posterior en las mismas condiciones. Eso es debido a que en el exterior del tubo hay muchos factores que son determinantes y que no podemos controlar. Si analizamos los resultados obtenidos en el interior del tubo:

Memoria Descriptiva

Pg. - 144

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En este caso vemos que la seal adems de que tiene una atenuacin menor que en el caso exterior, se puede comprobar que la forma es completamente senoidal. Viendo otro de los ejemplos que se hicieron dentro del tubo se puede comprobar lo mismo.

Micrfono AKG D 55 S

Memoria Descriptiva

Pg. - 145

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

En el caso del exterior del tubo obtenemos los siguientes resultados:

Como vemos ocurre exactamente lo mismo que con el otro micrfono, es decir, se produce una gran atenuacin y la seal se deforma. En el caso del interior del tubo tenemos:

Ocurre tambin lo mismo que con el micrfono anterior, ya que la atenuacin disminuye y la seal es completamente senoidal.

Memoria Descriptiva

Pg. - 146

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Vemoslo de nuevo:

* NOTA: A la hora de comparar los dos micrfonos nos damos cuenta de que recogen prcticamente con la misma calidad de seal. Una vez realizados estos experimentos de emisin y recogida de sonido vamos a tratar de simular lo que sera un sistema de control activo de ruido. Este sistema consistir en un altavoz (canal derecho) que emitir un ruido, lo recogeremos a travs de un micrfono (canal derecho) lo haremos un tratamiento en tiempo real con la ayuda de la tarjeta, en emitiremos el ruido tratado a travs de un segundo altavoz (canal izquierdo) y recogeremos este con un segundo micrfono (canal izquierdo). En lo que sera estrictamente un sistema CAR el tratamiento que se le realizara al ruido recogido primario debera ser un algoritmo de control adaptativo, pero debido a que este es un proyecto de introduccin a este tipo de sistemas el tratamiento se limitar a una amplificacin del ruido recogido. Este tratamiento nos servir principalmente para comprobar las posibilidades reales que tenemos con nuestra tarjeta de poder implementar un verdadero sistema de control activo de ruido, ya que mediremos los retrasos que se producen entre el ruido primario y el ruido secundario (tratado). Con estas medidas podremos comprobar si el tubo es suficientemente largo y si la tarjeta es suficientemente rpida para poder incorporar un algoritmo ms complejo y que este a su vez sea eficiente a la hora de cancelar el ruido.

Memoria Descriptiva

Pg. - 147

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Sistema Completo de Control Activo de Ruido Recordando la teora vista en la amplia introduccin de este proyecto, implementaremos uno de los ms bsicos sistemas de CAR. Es uno de los ms bsicos por su simpleza en cuanto a actuacin no controlada; adems de porque el nmero de actuadores y receptores es el mnimo posible para un sistema CAR. El sistema que vamos a implementar es el siguiente:

Este es lo que sera el sistema de control activo de ruido definitivo. Pero antes de hacer el montaje definitivo, tenemos que verificar otro montaje que es el que nos indicar las posibilidades reales que tenemos con nuestro equipamiento para poder realizar este sistema. El sistema de comprobacin es exactamente igual que el de la figura pero con dos diferencias fundamentales. El controlador CAR se va a limitar a una ganancia que se va a usar para amplificar la seal recogida del primer micrfono y el micrfono de error lo vamos a usar para recoger le seal que emitimos por el segundo altavoz. Con este montaje vamos a medir los retrasos que se producen en la tarjeta a la hora de coger las dos seales para comprobar si es posible hacer un tratamiento correcto en el interior del tubo, es decir, si dara tiempo a introducir un algoritmo de control complejo y que las operaciones se produjeran con tiempo necesario para que la cancelacin de ruido se produjera en el interior del tubo (de 3 m. de largo). Una vez que ya tenemos claro el montaje que vamos a realizar, tenemos que tener en cuenta el hecho de que vamos a trabajar con seales mono a travs de canales estreo por lo que a la hora de hacer la conexin con la tarjeta lo tendramos que hacer del siguiente modo:

Memoria Descriptiva

Pg. - 148

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Para conectar los micrfonos tenemos que usar una misma entrada y separar en los dos canales de la seal estero:

Memoria Descriptiva

Pg. - 149

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El mismo montaje tendramos que hacer para conectar los dos altavoces De esta manera evitamos todos los problemas anteriormente mencionados derivados del uso de dos entradas, ya que nos limitamos al uso de una nica entrada y salida. El sistema real que hemos montado es el mostrado en la siguiente pgina. Este es el sistema completo donde vemos la tarjeta y la salida a los altavoces y a los micrfonos, que est en interior del tubo. Como vemos de la altavoces (altavoz derecho altavoz izquierdo de la del cable que se separa en conectados los micrfonos. salida de la tarjeta sale un cable que va a los se encargar de la emisin del ruido primario y el ruido tratado), y a la entrada line in nos llega un dos (uno para cada canal) que es donde van

Memoria Descriptiva

Pg. - 150

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

El sistema que se encarga de recoger y emitir el ruido primario es el siguiente:

Memoria Descriptiva

Pg. - 151

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Y el sistema que se encarga de la seal tratada es idntico pero con el otro altavoz de la pareja y el otro micrfono. Una vez que tenemos preparado el quipo de pruebas (micrfonos y altavoces dentro del tubo de PVC) vamos a realizar diversos experimentos para ver como funciona. Lo primero que haremos ser poner a prueba el sistema completo para ver si es verdad que podemos transmitir una seal mono por uno de los canales de line out, recogerlo con uno de los canales de line in, tratar la seal recogida (en nuestros casos tan slo aadiremos ganancias), reproducirla por el otro canal de salida de line out y volver a recoger por el otro canal de line in. Lo que se har ser crear un programa que nos cree un ruido que emita por una de las salidas y que este sea recogido por los canales disponibles. De esta manera vamos a comprobar si realmente eficiente la idea de transmitir la seal mono a travs de los dos canales de la seal estreo. La idea es conectar directamente la misma seal de salida a las dos canales y estos a su vez se conectarn a la entrada LINE IN de la tarjeta. Al conectar directamente a la entrada de la tarjeta podremos comprobar que la seal recogida esta mucho menos atenuada que cuando colocamos los micrfonos ya que estos son unos grandes atenuadores de seal. El programa sera el siguiente:
#include "loopbackcfg.h" #include "dsk5510.h" #include "dsk5510_aic23.h" #define SINE_TABLE_SIZE 48 // Vector donde ir seal la seal senoidal /* Configuracin registros del codec */

Memoria Descriptiva

Pg. - 152

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

DSK5510_AIC23_Config config = { \ 0x0017, /* 0 DSK5510_AIC23_LEFTINVOL */ 0x0017, /* 1 DSK5510_AIC23_ */ 0x01f9, /* 2 DSK5510_AIC23_ */ 0x01f9, /* 3 DSK5510_AIC23_ */ 0x0012, /* 4 DSK5510_AIC23_ANAPATH */ 0x0000, /* 5 DSK5510_AIC23_DIGPATH */ 0x0000, /* 6 DSK5510_AIC23_POWERDOWN */ 0x0043, /* 7 DSK5510_AIC23_DIGIF */ 0x0081, /* 8 DSK5510_AIC23_SAMPLERATE */ 0x0001, /* 9 DSK5510_AIC23_DIGACT */ }; Int16 i,j,left,right; /* Definimos la seal altavoces (LINE OUT) */ seno que vamos a emitir a travs de los

Int16 sinetable[SINE_TABLE_SIZE] = { 0x0000, 0x10b4, 0x2120, 0x30fb, 0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x0000, 0xef4c, 0xdee0, 0xcf06, 0x9128, 0x89c1, 0x845f, 0x811b, 0x9128, 0x9a76, 0xa57f, 0xb216, 0x0000, 0x10b4, 0x2120, 0x30fb, 0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x0000, 0xef4c, 0xdee0, 0xcf06, 0x9128, 0x89c1, 0x845f, 0x811b, 0x9128, 0x9a76, 0xa57f, 0xb216, };

0x3fff, 0x7ffd, 0x3fff, 0xc002, 0x8002, 0xc002, 0x3fff, 0x7ffd, 0x3fff, 0xc002, 0x8002, 0xc002,

0x4dea, 0x7ee5, 0x30fb, 0xb216, 0x811b, 0xcf06, 0x4dea, 0x7ee5, 0x30fb, 0xb216, 0x811b, 0xcf06,

0x5a81, 0x7ba1, 0x2120, 0xa57f, 0x845f, 0xdee0, 0x5a81, 0x7ba1, 0x2120, 0xa57f, 0x845f, 0xdee0,

0x658b, 0x76ef, 0x10b4, 0x9a75, 0x89c1, 0xef4c 0x658b, 0x76ef, 0x10b4, 0x9a75, 0x89c1, 0xef4c

//Vectores de valores recogidos por el micrfono Int16 sinetab_i[SINE_TABLE_SIZE]; // Para el canal izquierdo Int16 sinetab_d[SINE_TABLE_SIZE]; // Para el canal derecho Int16 i,j; void main() { DSK5510_AIC23_CodecHandle hCodec; /* Para inicializar las libreras de la tarjeta tenemos que llamar primero con esta funcin */ DSK5510_init(); /* Abrimos el codec */ hCodec = DSK5510_AIC23_openCodec(0, &config); /* Creamos un bucle que se realizar 3000 veces. Este bucle define el tiempo que estar sonando la seal seno en los altavoces */ for (i = 0; i < 3000; i++) { for (j = 0; j < 48; j++) { /* Escribimos dato en el canal derecho de salida */ while(!DSK5510_AIC23_write16(hCodec,sinetable[j])); /*Recojo en mic 1 y lo meto en sinetable_d */ while(!DSK5510_AIC23_read16(hCodec,&sinetab_d[j])); /* Escribimos dato en el canal izq de salida */ while(!DSK5510_AIC23_write16(hCodec, sinetable[j])); /*Recojo en mic 1 y lo meto en sinetable_d */ while(!DSK5510_AIC23_read16(hCodec,&sinetab_i[j]));

Memoria Descriptiva

Pg. - 153

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP } } /* Cerramos el codec */ DSK5510_AIC23_closeCodec(hCodec); }

Proyecto Final de Carrera

Como ya se ha explicado el programa consiste simplemente en emitir el mismo sonido por los dos canales que, a su vez, hemos conectado a la entrada de la tarjeta. Los datos que se recogen son almacenamos separadamente en dos vectores (sinetab_d, para el canal derecho y sinetab_i, para el canal izquierdo). Representando los dos vectores obtenemos los siguientes resultados:

Como podemos comprobar los dos canales recogen prcticamente lo mismo, salvo por un ligero retraso. Suponemos que este retraso es debido a la estructura que tiene la funcin de lectura que lee primero de un canal y despus del otro (no lo hace simultneamente). La atenuacin como se podr comprobar despus es mucho menor que cuando se incorporan los dos micrfonos y los altavoces ya que estos atenan en gran medida la seal (llega a ser 50 veces menor que la seal original). Ya podemos decir, al fin, que se encontr la forma de poder trabajar con dos entradas y dos salidas de sonido de forma simultnea. Hemos tenido que prescindir de sonidos estreos pero se han solventado los problemas que nos

Memoria Descriptiva

Pg. - 154

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

han ido surgiendo: golpe de ruido, mezcla de canales entre los ms importantes. Teniendo ya certeza de que la divisin en cales nos va a dar una medida fiable de las seales emitidas ya podemos plantearnos experimentos ms completos. Una vez que tenemos claro cual va a ser la estructura del sistema, tenemos que programar las acciones necesarias para convertirlo en un sistema de emisin y recepcin de sonido.

Lo que se pretende con esta estructura es emitir un ruido primario a travs de un altavoz (canal derecho seal salida) que recogeremos en el primer micrfono (canal derecho seal entrada). A este ruido primario se le efectuar un tratamiento para comprobar la capacidad a nivel de tiempo de respuesta que tiene la tarjeta al introducir distintas operaciones en el cuerpo del programa (en este caso vamos a amplificar la seal recogida ya que al intervenir tanto el micrfono como el altavoz se produce una gran atenuacin). Una vez tratada la seal vamos a emitirla a travs del segundo altavoz (canal izquierdo seal

Memoria Descriptiva

Pg. - 155

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

salida) que recogeremos a su vez a travs del segundo micrfono (canal izquierdo seal entrada). El programa que gestiona estos pasos es el mostrado a continuacin. Haremos especial descripcin de este programa (por partes) ya que es el que podemos considerar como programa final de nuestra investigacin. Es el siguiente:
#include "dsk5510.h" #include "dsk5510_aic23.h" #define SINE_TABLE_SIZE 48 // Vector de seal la seal senoidal

Tenemos una primera parte del cdigo en la que slo definimos las libreras que nos hacen falta para el proyecto. Llamamos a la propia del DSP y a la del mdulo AIC23. Tambin se define una variable que usaremos bastante a lo largo del programa.
/* Configuracin registros del codec */ DSK5510_AIC23_Config config = { 0x0017, /* 0 DSK5510_AIC23_LEFTINVOL */ 0x0017, /* 1 DSK5510_AIC23_RIGHTINVOL */ 0x01f9, /* 2 DSK5510_AIC23_LEFTHPVOL */ 0x01f9, /* 3 DSK5510_AIC23_RIGHTHPVOL */ 0x0012, /* 4 DSK5510_AIC23_ANAPATH */ 0x0000, /* 5 DSK5510_AIC23_DIGPATH */ 0x0000, /* 6 DSK5510_AIC23_POWERDOWN */ 0x0043, /* 7 DSK5510_AIC23_DIGIF */ 0x0081, /* 8 DSK5510_AIC23_SAMPLERATE */ 0x0001, /* 9 DSK5510_AIC23_DIGACT */ };

Vendra a continuacin la configuracin de los registros del codec (volumen de las entradas y salidas, definicin de las mismas,
Int16 i,j,left,right;

Declararemos algunas variables que nos harn falta en el transcurso del programa. Sern contadores (para bucles) y variables en las que guardaremos valores instantneos de ruido.
/* Definimos la seal seno que vamos a emitir a travs de los altavoces (LINE OUT) */ Int16 sinetable[SINE_TABLE_SIZE] = { 0x0000, 0x10b4, 0x2120, 0x30fb, 0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x0000, 0xef4c, 0xdee0, 0xcf06, 0x9128, 0x89c1, 0x845f, 0x811b, 0x9128, 0x9a76, 0xa57f, 0xb216, 0x0000, 0x10b4, 0x2120, 0x30fb, 0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x0000, 0xef4c, 0xdee0, 0xcf06, 0x9128, 0x89c1, 0x845f, 0x811b, 0x9128, 0x9a76, 0xa57f, 0xb216, 0x0000, 0x10b4, 0x2120, 0x30fb, 0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x3fff, 0x7ffd, 0x3fff, 0xc002, 0x8002, 0xc002, 0x3fff, 0x7ffd, 0x3fff, 0xc002, 0x8002, 0xc002, 0x3fff, 0x7ffd, 0x4dea, 0x7ee5, 0x30fb, 0xb216, 0x811b, 0xcf06, 0x4dea, 0x7ee5, 0x30fb, 0xb216, 0x811b, 0xcf06, 0x4dea, 0x7ee5, 0x5a81, 0x7ba1, 0x2120, 0xa57f, 0x845f, 0xdee0, 0x5a81, 0x7ba1, 0x2120, 0xa57f, 0x845f, 0xdee0, 0x5a81, 0x7ba1, 0x658b, 0x76ef, 0x10b4, 0x9a75, 0x89c1, 0xef4c, 0x658b, 0x76ef, 0x10b4, 0x9a75, 0x89c1, 0xef4c, 0x658b, 0x76ef,

Memoria Descriptiva

Pg. - 156

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP 0x6ed8, 0x0000, 0x9128, 0x9128, 0x0000, 0x6ed8, 0x6ed8, 0x0000, 0x9128, 0x9128, }; 0x658b, 0xef4c, 0x89c1, 0x9a76, 0x10b4, 0x763f, 0x658b, 0xef4c, 0x89c1, 0x9a76, 0x5a81, 0xdee0, 0x845f, 0xa57f, 0x2120, 0x7ba1, 0x5a81, 0xdee0, 0x845f, 0xa57f, 0x4dea, 0xcf06, 0x811b, 0xb216, 0x30fb, 0x7ee5, 0x4dea, 0xcf06, 0x811b, 0xb216,

Proyecto Final de Carrera


0x3fff, 0xc002, 0x8002, 0xc002, 0x3fff, 0x7ffd, 0x3fff, 0xc002, 0x8002, 0xc002, 0x30fb, 0xb216, 0x811b, 0xcf06, 0x4dea, 0x7ee5, 0x30fb, 0xb216, 0x811b, 0xcf06, 0x2120, 0xa57f, 0x845f, 0xdee0, 0x5a81, 0x7ba1, 0x2120, 0xa57f, 0x845f, 0xdee0, 0x10b4, 0x9a75, 0x89c1, 0xef4c, 0x658b, 0x76ef, 0x10b4, 0x9a75, 0x89c1, 0xef4c

/* Lo que hacemos es reproducir 4 veces la misma seal seno para poder comparar con el vector de recogida de las seales primaria y tratada */

Definimos la seal seno que ser el ruido generado por la tarjeta y que luego trataremos tras recogerlo por los micrfonos. La matriz es tan amplia porque tenemos un seno cuatro veces. Lo hacemos as para poder comparar con las dems matrices de entrada (de esta forma nos aseguramos ver seales senoidales completas.
Int16 sinetable_in[SINE_TABLE_SIZE]; // Seal micro 1 Int16 sinetable_in_tratada[SINE_TABLE_SIZE]; // Seal tratada Int16 sinetable_error[SINE_TABLE_SIZE]; // Seal micro 2 Int K=50; // Ganancia de amplificacin

Declaramos las variables donde guardaremos los datos recogidos y tratados. Adems declaramos y damos valor a la ganancia aadiremos. A continuacin tenemos el programa principal en s, el bucle main(). Inicializamos las libreras de la tarjeta, iniciamos el codec, y entramos de lleno en el bucle que ser el punto base del programa.
void main() { DSK5510_AIC23_CodecHandle hCodec; /* Para inicializar las libreras de la tarjeta */ DSK5510_init(); /* Abrimos el codec */ hCodec = DSK5510_AIC23_openCodec(0, &config); /* Creamos un bucle que se realizar 3000 veces */ /* Este bucle define el tiempo que sonar la seal */ for (i = 0; i < 3000; i++) { /* Cada vez que pasa una por el bucle principal hacemos 192 recogidas de muestras con el micrfono y emitimos 192 veces a travs de los altavoces */ for (j = 0; j < 192; j++) { /* Escribimos dato en el canal derecho de salida */ while(!DSK5510_AIC23_write16(hCodec, sinetable[j]));

Memoria Descriptiva

Pg. - 157

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

/* Leemos dato canal derecho de entrada */ while(!DSK5510_AIC23_read16(hCodec, &sinetable_in[j])); /* Creo sinetable_in_tratada*/ sinetable_in_tratada[j]=K*sinetable_in[j]; /* sinetable_in_tratada al altavoz del canal izquierdo*/ while(!DSK5510_AIC23_write16(hCodec, sinetable_in_tratada[j])); /* Recojo en mic 2 y lo meto en sinetable_error */ while(!DSK5510_AIC23_read16 (hCodec, &sinetable_error[j])); }

En este bucle realizaremos la reproduccin del sonido prediseado por el canal derecho de salida, el muestreo de dicha seal por el canal derecho de entrada, el tratamiento de dicha seal, la reproduccin de la seal tratada por el canal izquierdo de salida y, de nuevo, el muestreo de esta seal tratada por el canal izquierdo de entrada.
} /* Cerramos el codec */ DSK5510_AIC23_closeCodec(hCodec);

Finalmente terminamos cerrando el codec


}

El siguiente esquema representa el procedimiento que sigue el sistema segn el programa que hemos elaborado:

Ya explicado el funcionamiento de nuestro sistema, solo nos queda la realizacin de diversos experimentos para analizar los resultados y llegar a conclusiones finales. A continuacin se detallan los diferentes experimentos realizados con este montaje y las conclusiones finales a las que llegamos con ellos.

Memoria Descriptiva

Pg. - 158

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

* EXPERIMENTOS 1) EXPERIMENTO 1 (montaje 1) El primer experimento que hemos realizado es el sistema sin ninguna variacin es decir en el exterior del tubo con el micrfono ev de micro 1 y el AKG de micro 2. Tenemos que tener en cuenta que para poder comparar las seales recogidas con los micrfonos con la seal original les hemos aplicado a ambas seales una amplificacin de 50, ya que la que recogen directamente est demasiado atenuada. Antes de hacer cualquier anlisis lo primero que tenemos que explicar es que el eje X de estas grficas no indica unidades de tiempo sino nmero de muestras. El resultado obtenido es el siguiente:

Lo primero que tenemos que destacar de este primer experimento es que a pesar de la atenuacin que se lleva a cabo a travs de los altavoces y micrfonos la seal resultante es completamente senoidal y de frecuencia idntica a la original. Este hecho es importantsimo a la hora de poder plantearse un algoritmo de control activo de ruido, ya que al ser bastante fiel a nivel de seno el sistema va a facilitar mucho los clculos a la hora de buscar la onda contraria a la original. 2) EXPERIMENTO 2 (montaje2) En este segundo experimento vamos a realizar el mismo montaje que en el anterior solo que en el interior del tubo, para intentar demostrar que la

Memoria Descriptiva

Pg. - 159

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

atenuacin es menor al concentrarse el sonido solo en el interior del tubo por lo que el micrfono pueda recoger en mejores condiciones el sonido.

Si comparamos esta grfica con la anterior comprobamos que el desfase entre las ondas vara. Pero el principal dato que nos deja esta representacin es que la atenuacin es prcticamente la misma que en el exterior del tubo. En teora, la atenuacin en el interior del tubo debera se menor pero en este caso no lo es. Esto es debido a dos factores: los altavoces y el acople de sonido. El problema que tenemos con los altavoces con los que hemos realizado los experimentos es que el cono emisor de sonido es muy pequeo (lo ideal sera de unos 100 mm. de dimetro) por lo que al micrfono le cuesta mucho recoger sonido claramente de los altavoces.

Memoria Descriptiva

Pg. - 160

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Los primeros altavoces tienen una superficie de emisin mucho ms pequea y delimitada que los de la derecha, por lo que a la hora de colocar el micrfono se nos dificulta en gran medida la precisin de la captacin. A continuacin se muestra una foto del montaje que tuvimos que hacer para poner el micrfono perfectamente alineado con la zona de emisin de sonido.

Memoria Descriptiva

Pg. - 161

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Solo tenemos una pequea superficie donde podemos colocar el micrfono, por lo que a la hora de colocarlo en el interior del tubo un pequeo movimiento hace que la captacin se vea muy devaluada. En experimentos anteriores realizados con altavoces con un cono de emisin mayor, la diferencia de atenuacin entre el exterior del tubo y el interior era ms que notable. Ya que en el exterior del tubo la seal recogida por el micrfono era desorden de 500 veces menor que la seal original, mientras que en el interior solo era de unas 100 veces menor que la seal original. El otro problema que provoca la alta atenuacin de la seal en el interior del tubo la explicaremos en el siguiente experimento. 3) EXPERIMENTO 3 (montaje3) Con este experimento pretendemos dar explicacin a la influencia del acople en el interior del tubo a la hora de hacer el montaje. Teniendo en cuenta que estamos haciendo experimentos con un par de altavoces estreos, usndolos de manera que el altavoz derecho sea la fuente de emisin del ruido y el altavoz izquierdo sea la fuente de emisin del ruido tratado (en nuestro caso amplificado), es importante resear que la longitud del cable de que une los dos altavoces no viene a ser ms de 120 mm. Esto implica que a la hora de introducirlos en el tubo estos van a estar muy cerca el uno del otro con sus respectivos micrfonos. La siguiente grfica es el resultado de realizar el experimento en el interior del tubo al mismo volumen que cuando se realiz el experimento en el

Memoria Descriptiva

Pg. - 162

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

exterior. Lo que ocurre es que al estar tan cerca fuentes de emisin de sonido y receptores de sonido se produce un acople que distorsiona la seal que debe emitirse a travs de los altavoces. Para evitar esto es necesario bajar el volumen de los altavoces hasta que cese el acople. Esto produce que la recepcin de ruido del micrfono sea menor por esta ms bajo el volumen lo que aumenta la atenuacin y hacen que se igualen las seales entre experimentos en el exterior y en el interior del tubo. Si volvemos a realizar el experimento obtenemos los siguientes resultados:

Para solucionar este problema lo que habra que tener es una mayor distancia entre altavoces para evitar el acople y as poder realizar los experimentos en la misma referencia de volumen. 4) EXPERIMENTO 4 (montaje6) La intencin de este experimento es mostrar la atenuacin real que se produce por la aparicin del micrfono y altavoz. Para ello lo que hacemos es ejecutar igual que en los casos anteriores el programa, solo que vamos a representar la medida de los micrfonos sin amplificar y comprarla con la seal real que creamos de ruido primario. Los resultados son los siguientes:

Memoria Descriptiva

Pg. - 163

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Si hacemos zoom para poder ver la amplitud real de las dos seales de micrfono obtenemos que:

Podemos comprobar que el efecto de la atenuacin es bastante fuerte, pero a nivel de fidelidad en trminos de seno, vemos que la seal muestra una calidad excelente. 5) EXPERIMENTO 5 (montaje8 y montaje9)

Memoria Descriptiva

Pg. - 164

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Con esto dos ltimos experimentos pretendemos dar valores de retrasos entre las diferentes seales, para comprobar si es factible plantearse un control activo de ruidos. Para ello, tenemos que tener en cuenta que la seal que emitimos como original es una seal seno de 1 kHz de frecuencia y el muestreo de nuestro sistema. Recordemos, entonces, esa parte del cdigo del programa encargada del muestreo (antes dijimos que era la parte fundamental del programa):
for (i = 0; i < 3000; i++) { /* Cada vez que pasa una por el bucle principal hacemos 192 recogidas de muestras con el micrfono y emitimos 192 veces a travs de los altavoces */ for (j = 0; j < 192; j++) { /* Escribimos dato en el canal derecho de salida */ while(!DSK5510_AIC23_write16(hCodec, sinetable[j])); /* Leemos dato canal derecho de entrada */ while(!DSK5510_AIC23_read16(hCodec, &sinetable_in[j])); /* Creo sinetable_in_tratada*/ sinetable_in_tratada[j]=K*sinetable_in[j]; /* sinetable_in_tratada al altavoz del canal izquierdo*/ while(!DSK5510_AIC23_write16(hCodec, sinetable_in_tratada[j])); /* Recojo en mic 2 y lo meto en sinetable_error */ while(!DSK5510_AIC23_read16 (hCodec, &sinetable_error[j])); } }

El primer for nos indica que vamos a repetir 3000 veces el sonido definido mediante el vector sinetable que tiene una dimensin de 192 veces, y por cada vez que vayamos a repetir el sonido tomamos 192 muestras del sonido de recogida. Lo que implica que el tiempo de muestreo es bastante alto. Teniendo en cuenta estos datos y analizando los resultados a continuacin expuestos (solo se van a mostrar 2 grficas pero hay que tener en cuenta que el experimento de medida de retrasos est realizad infinidad de veces repitindose continuamente los mismos resultados). El primero de los experimentos est realizado en el interior del tubo. Debido al problema del acople las seales recogidas por los micrfonos estn bastante atenuadas pero a nivel de retrasos son vlidas para nuestro estudio.

Memoria Descriptiva

Pg. - 165

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Teniendo en cuenta los valores de muestreo comentados anteriormente y haciendo clculos aproximados, llegamos a la conclusin de que el retraso mximo que hay entre dos de las ondas es 10-9 ms. lo que nos proporciona un margen suficientemente amplio de trabajo para poder incluir algoritmos de control. Haciendo el mismo experimento pero en el exterior del tubo (sin problemas de acople) obtenemos que:

Memoria Descriptiva

Pg. - 166

David Toyos Sibn

Anlisis e Implementacin de Algoritmos de Compensacin Activa de Ruido en una Plataforma DSP

Proyecto Final de Carrera

Comparando con la grfica anterior nos damos cuentas que influye la atenuacin pero los retrasos permanecen constantes, por lo que el retraso mximo entre ondas es de 10P ms. Este retraso mximo hace que tengamos tiempo suficiente para incluir algoritmos complejos en el cuerpo del programa ya que el tubo es de 3 metros y la frecuencia de la onda de 1 kHz por lo que la velocidad que tardar aproximadamente en recorre el tubo la seal es de 8 ms.
-9

Memoria Descriptiva

Pg. - 167

David Toyos Sibn

Anda mungkin juga menyukai