Sei sulla pagina 1di 220

UNIVERSIDAD DE ZARAGOZA

ESCUELA UNIVERSITARIA POLITCNICA DE TERUEL DEPARTAMENTO DE TEORA DE LA SEAL Y COMUNICACIONES TRABAJO FIN DE CARRERA

VARIANTES DEL ALGORITMO LMS. APLICACIN A UN SISTEMA CANCELADOR DE ECOS

INGENIERA TCNICA DE TELECOMUNICACIONES ESPECIALIDAD EN SISTEMAS ELECTRNICOS

Lorenzo Meler Ferraz Julio 2005

INDICE NDICE INTRODUCCIN. . . . . . . . . . . . . . . . . . . . . .4 1. CONCEPTOS INTRODUCTORIOS. . . . . . . . . . . . . . 1.1. EL PROBLEMA DEL ECO; EL ALGORITMO EN PLANTA. 1.2. SEALES Y SISTEMAS EN TIEMPO DISCRETO. . . . 1.3. CONVOLUCIN. . . . . . . . . . . . . . . . . 1.4. FFT (FAST FOURIER TRANSFORM) . . . . . . . . 1.5. FILTRADO DE WIENER . . . . . . . . . . . . . 1.6. FILTRADO ADAPTATIVO. . . . . . . . . . . . . 2. ALGORITMO LMS EN EL DOMINIO DEL TIEMPO. . . . . . . 2.1. ALGORITMO LMS. . . . . . . . . . . . . . . . 2.1.1. INTRODUCCIN . . . . . . . . . . . . . . . 2.1.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . . 2.1.3. RESULTADOS CON DIFERENTES SEALES DE ENTRADA . . . . . . . . . . . . . . . . . . . . . 2.1.4. RESULTADOS CAMBIANDO EL TAMAO DEL FILTRO. 2.1.5. CLCULO DEL NMERO DE SUMAS Y PRODUCTOS EN FUNCIN DEL TAMAO DE FILTRO . . . . . . . . . 2.1.6. CDIGO DEL PROGRAMA. . . . . . . . . . . . 2.2. ALGORITMO NLMS (LMS NORMALIZADO) . . . . . . 2.2.1. INTRODUCCIN . . . . . . . . . . . . . . 2.2.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . 2.2.3. DEPENDIENTE DE LA POTENCIA DE LA SEAL 2.2.4. RESULTADOS OBTENIDOS (MEJORES VALORES DE ). . . . . . . . . . . . . 2.2.5. COMPARACIN RESULTADOS LMS vs. NLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES). . . . 2.2.6. CDIGO DEL PROGRAMA. . . . . . . . . . . 2.3. ALGORITMO BLMS (BLOCK LMS) . . . . . . . . . 2.3.1. INTRODUCCIN . . . . . . . . . . . . . . 2.3.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . 2.3.3. RESULTADOS OBTENIDOS (MEJORES VALORES DE ). . . . . . . . . . . . . 2.3.4. COMPARACIN DE RESULTADOS LMS vs. BLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES). . . . 2.3.5. DIFERENCIA DE OPERACIONES LMS VS. BLMS . 2.3.6. CDIGO DEL PROGRAMA. . . . . . . . . . . 2.4. ALGORITMO BNLMS (BLOCK LMS NORMALIZADO). 2.4.1. INTRODUCCIN . . . . . . . . . . . . 2.4.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. 2.4.3. RESULTADOS OBTENIDOS (MEJORES VALORES DE ). . . . . . . . . . . . . . . .7 .8 11 13 17 28

35 36 36 40 44 53 61 63 66 66 68 70

. 71 . 79 . 87 . 88 . 88 . 93 . 96 .103 .110 .113

. . .117 . . .117 . . .118 . . .120

Lorenzo Meler Ferraz

INDICE 2.4.4. COMPARACIN DE RESULTADOS BLMS vs. BNLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES). . . . 126 2.4.5. CDIGO DEL PROGRAMA. . . . . . . . . . . 132

3. ALGORITMO LMS EN EL DOMINIO DE LA FRECUENCIA. . . 133 3.1. INTRODUCCIN; MTODO SOLAPAMIENTO-ALMACENAMIENTO . . . . . . . . . . . 134 3.2. LMS FORZADO (CONSTRAINED). . . . . . . . 3.2.1. DIAGRAMA DE BLOQUES E INSTRUCCIONES. 3.2.2. RESULTADOS CON DIFERENTES SEALES DE ENTRADA. . . . . . . . . . . . . 3.2.3.- CLCULO DEL NMERO DE OPERACIONES . 3.2.4.- CDIGO DEL PROGRAMA . . . . . . . . . . 138 . . 138 . . 141 . . 149 . . 152

3.3.-LMS NO FORZADO (UNCONSTRAINED) . . . . . . . 155 3.3.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES . . 155 3.3.2.- RESULTADOS CON DIFERENTES SEALES DE ENTRADA. . . . . . . . . . . . . . . 157 3.3.3.- COMPARATIVA RESULTADOS LMS FORZADO vs. NO FORZADO. . . . . . . . . . . . . . . . . . . . 165 3.3.4.- CLCULO DEL NMERO DE OPERACIONES . . . 171 3.3.5.- CDIGO DEL PROGRAMA . . . . . . . . . . 174 3.4.-ADAPTACIN DEL FACTOR DE CONVERGENCIA . . . 3.4.1.- ADAPTACIN SEGN POTENCIA DE LA SEAL . 3.4.2.- RESULTADOS LMS FORZADO CON ADAPTATIVA 3.4.3.- COMPARATIVA LMS CON Y SIN ADAPTATIVA. 3.4.4.- CLCULO DEL NMERO DE OPERACIONES . . . 3.5.-CONVOLUCIN CIRCULAR. . . . . . . . . . . 3.5.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES 3.5.2.- RESULTADOS OBTENIDOS CON DIFERENTES SEALES DE ENTRADA. . . . . . . . . . . . . 3.5.3.- COMPARATIVA LMS FORZADO vs. LMS CONVOLUCIN CIRCULAR. . . . . . . . . . . 3.5.3.- CLCULO DEL NMERO DE OPERACIONES . 3.5.4.- CDIGO DEL PROGRAMA . . . . . . . . 175 175 177 183 188

. . 191 . . 191 . . 195 . . 202 . . 209 . . 212

CONCLUSIN . . . . . . . . . . . . . . . . . . . . . 214 BIBLIOGRAFA . . . . . . . . . . . . . . . . . . . . 219

Lorenzo Meler Ferraz

INTRODUCCIN INTRODUCCIN (INTRO-DUCERA ENTRADA A UNA OBRA)

La motivacin que me ha llevado a realizar este trabajo o proyecto, es por la cercana del mismo con los temas de comunicacin y teora de la seal; al realizar este trabajo, pens que me sera ms fcil entender muchos de los conceptos que en la carrera, ya sea por falta de tiempo o de materia, se quedaron un poco en el aire. Quizs este trabajo hubiera quedado ms extenso y completo con la ayuda de un factor indispensable en estos casos, el tiempo. A esto hay que unirle que la mayora de la informacin utilizada se encuentra en lenguas extranjeras (sobre todo la inglesa), y mi casi total desconocimiento de las mismas hace que este problema se acente. Todo el trabajo de experimentacin se ha realizado en el entorno de programacin de MATLAB, por lo que al principio de este proyecto se dedic un tiempo para aprender su manejo, de un modo esencial, que se ira acrecentando con la realizacin del mismo. Se realizaron en este entorno varios algoritmos que ms tarde seran utilizados durante todo el trabajo como funciones, vase, implementacin del algoritmo FFT (transformada rpida de Fourier), convolucin lineal Despus se present el problema del eco en las comunicaciones, problema que debamos resolver con algoritmos adaptativos. Para ello se estudi el filtro de Wiener, como una aproximacin a lo que deberamos hacer en un futuro, con la salvedad de que en el futuro no estaramos analizando en rgimen estacionario sino que nuestro sistema cambiaria con el tiempo, de ah el estudio de los filtros adaptativos, en concreto el algoritmo LMS, un algoritmo utilizado inicialmente en estadstica (aproximacin por mnimos cuadramos). Al cabo de un tiempo, cuando se era consciente del problema y por donde tena que ir la solucin, se empez a pensar en la optimizacin del camino a recorrer (optimizacin del algoritmo) y a partir de ah, el estudio consisti en recoger datos, programar nuevos algoritmos, calcular el nmero de operaciones que realizaban, volver a recoger datos y por ltimo sacar conclusiones de todas estas figuras, grficas y tablas al compararlas unas con otras. La mayora de los conceptos que contiene este proyecto son fciles de entender para una persona con unos mnimos conocimientos en teora de la seal, aunque hay algunos
Lorenzo Meler Ferraz

INTRODUCCIN como por ejemplo el algoritmo LMS, el algoritmo de la FFT, y el mtodo de solapameinto-almacenamiento, as como el filtrado de Wiener, que pueden resultar complicados de entender en un principio, pero que en este trabajo se intentan explicar con algo de claridad, haciendo introducciones, tanto matemticas como explicativas. En el apartado conceptos introductorios, se ha intentado explicar todos estos temas en los cuales se ha pensado que el lector pudiera tener dificultades de comprensin. El objetivo principal de este proyecto es cancelar el eco. Primero se tuvo que definir la palabra eco y despus plantear el problema y cual sera el camino a resolver. El principal problema que uno se puede encontrar no es como se pueda suponer, cancelar el eco, el principal problema, que luego se convirti en objetivo, est en que el nmero de operaciones es excesivo para realizarlas en tiempo real. De ah surge nuestro siguiente objetivo, la optimizacin de algoritmos para conseguir reducir al mximo nuestro nmero de operaciones. Por supuesto, cuando se intenta optimizar surgen otras consecuencias que habr que valorar que posteriormente se convierten nuevamente en otro problema. Una vez expuestos todos los problemas que se pueden tener a la hora de hacer este proyecto, se plantean los objetivos ms concretos. Se decide trabajar con varios algoritmos, tanto en el tiempo como en la frecuencia, variaciones de dichos algoritmos, etc.; tambin hay que determinar con que seales se van a trabajar y por ltimo se realiza el trabajo, tomar muestras con diferentes algoritmos y sacar conclusiones, con las caractersticas que determinaran si una cancelacin es buena o no. Estas caractersticas son: nivel de cancelacin (se tomarn valores lineales y logartmicos). Tiempo de cancelacin (tiempo que tarda en llegar a lo que llamaremos y definiremos ms adelante nivel de error residual). y por ltimo, la estabilidad final de la cancelacin.

Una vez expuestos los objetivos, habr que analizar si se han cumplido o no, hacer un resumen de lo alcanzado y a lo que no se ha podido llegar. Pero todo esto quedar marcado en la conclusin. Por ltimo, agradecer a todas las personas que me han prestado su apoyo, tanto por aportarme una luz aclaratoria a conceptos que por mi mismo quizs no hubiera descubierto nunca, como por su apoyo moral, as como por el material. Un especial agradecimiento sobre todo a la directora de este proyecto y todos los profesores del rea de Teora de la Seal de la EUPT. Tambin se merece una mencin la

Lorenzo Meler Ferraz

INTRODUCCIN profesora de tcnicas de expresin oral y escrita de la facultad de Ciencias Humanas y Sociales de Teruel por la ayuda que prest en su momento a la hora de redactar este proyecto. Agradezco a todos los que se sientan agradecidos y a aquellos que no lo sientan por pudor, vergenza, autoestima o simple modestia. A todos, gracias por participar en este punto y seguido de mi carrera universitaria, y a disfrutar con los conocimientos que aqu se exponen.

Por qu esta magnfica tecnologa cientfica, que ahorra trabajo y nos hace la vida mas fcil, nos aporta tan poca felicidad? La repuesta es est, simplemente: porque an no hemos aprendido a usarla con tino.

La palabra progreso no tiene ningn sentido mientras haya nios infelices. En el pensamiento cientfico siempre estn presentes elementos de poesa. La ciencia y la msica actual exigen de un proceso de pensamiento homogneo. Hay dos cosas infinitas: el Universo humana. Y del Universo no estoy seguro. y la estupidez

Albert Einstein

Lorenzo Meler Ferraz

CONCEPTOS INTRODUCCTORIOS

CONCEPTOS INTRODUCTORIOS INTRODUCCIN


1. 2. 3. 4. 5. 6. EL PROBLEMA DEL ECO; EL ALGORITMO EN PLANTA SEALES Y SISTEMAS EN TIEMPO DISCRETO CONVOLUCIN FFT (FAST FOURIER TRANSFORM) FILTRO DE WIENER FILTRADO ADAPTATIVO

Lorenzo Meler Ferraz

CONCEPTOS INTRODUCCTORIOS 1.- EL PROBLEMA DEL ECO; EL ALGORITMO EN PLANTA. El problema del eco es bien conocido en el mbito de la telefona clsica, donde los efectos del retardo de lnea sobre una comunicacin establecida en medianas y grandes distancias resultaban bastante molestos. Pero el eco presente en estos casos, producto de las impedancias no adaptadas entre dos y cuatro hilos, no es el nico caso de eco. Es ms, con el creciente aumento de los sistemas telefnicos "manos libres", muy utilizados en los vehculos, o en las oficinas, al igual que con los telfonos inalmbricos, surge otro tipo de eco: el eco acstico. Este eco es producto de la realimentacin de la seal que emite el parlante, a travs del micrfono. La figura 1.1, muestra un esquema de lo que ocurre con el eco acstico. Imaginemos ahora una persona que habla con la que tenemos sentada en nuestro cubo (personaje b). La voz de nuestro personaje A (el que no se ve), llega a la habitacin y rebota en sus paredes, introducindose por el micrfono. Al meterse por el micrfono esta seal (que recordemos es la voz del personaje A), ir a travs de la lnea hasta el altavoz de A, producindose algo que podramos considerar desagradable desde el punto de vista de la comunicacin.

Figura 1.1 La manera de evitar que esa realimentacin acstica se propague a travs de la lnea telefnica, deteriorando considerablemente la seal y provocando molestias para el interlocutor, es cancelar la seal de eco utilizando filtros digitales con los que reproducir la seal de eco y
Lorenzo Meler Ferraz

CONCEPTOS INTRODUCCTORIOS as poder micrfono. eliminarla de la seal capturada por el

La seal que proviene de la persona A, que va a travs del cable y que de momento no ha sufrido ninguna modificacin debido a conversores, amplificadores, rebotes, etc. ser llamada x, que evoluciona en el tiempo, esta seal es muestreada cada 1/8000 seg. por el sistema cancelador de eco. Una vez que esta seal ha pasado por lo que llamamos planta, se convertir en la seal deseada que se denotar a partir de ahora como d. Esta planta estar formada por los amplificadores y conversores necesarios para provocar la seal audible, el rebote de esta por toda nuestra sala, as como la influencia del micrfono y aparatos electrnicos que sean necesarios para retrasmitir la seal. Esta planta o sistema presentar una respuesta impulsional, a la que se llamar h, y que como ya se sabe, convolucionada con la seal x (se recuerda que es la seal de entrada), dar lugar a la seal deseada d, que ser la obtenida con el micrfono simplemente muestreada y adaptada por el sistema, como indicaremos en el apartado 3 de este captulo. Con esta seal d y otra que se obtendr al pasar la seal de entrada x por un filtro adaptativo, que tendr como respuesta impulsional he, se obtendr la seal estimada y. Esta ltima la se restar de la seal d y esto proporcionar un error, llamado e, con el cual se jugar para ir adaptando el filtro adaptativo. El filtro he queda determinado por el valor de sus coeficientes que se irn modificando con el objetivo de reducir esta seal de error (Filtro adaptativo) Un mtodo clsico y sencillo, que se encuentra dentro de la clasificacin de filtros adaptativos, es el de Least Mean Squares o ms conocido por sus siglas, LMS. Existen mejoras sobre el algoritmo bsico de LMS, como por ejemplo, la normalizacin del coeficiente de adaptacin (mu) a travs de la potencia. A su vez, hay diversas formas de implementar el clculo o estimacin de la potencia. En este caso se opta en primera instancia por la versin bsica del LMS. Luego, para ver la mejora que introduce la normalizacin del coeficiente de adaptacin tomando en cuenta la potencia de seal, se implementa la versin normalizada. El objetivo de este proyecto fue tomar contacto con los mecanismos de cancelacin de eco en su idea bsica de funcionamiento. De ms esta decir que existen muchos otros algoritmos, modificaciones y

Lorenzo Meler Ferraz

CONCEPTOS INTRODUCCTORIOS consideraciones sobre los tratados en este proyecto, algunas de los cuales se mencionarn mas adelante. Cuando el hablante cercano (B) empieza a hablar, se deber detener el proceso de adaptacin, ya que debido a que las frecuencias son iguales se producira una distorsin en la cancelacin. Por lo tanto se debera detectar que el hablante cercano est hablando y esto se realiza con el sistema de double-talk, sistema que no se analizar en este proyecto. Este primer acercamiento a lo que se va a hacer en este trabajo, da una idea de cual va a ser el objetivo principal, adaptar un filtro, para conseguir eliminar una seal, es decir, eliminar el molesto eco. Las seales que se han intentado definir antes, y que se pueden ver claramente en la figura 1.1, son las que van a ser utilizadas a lo largo de todo este trabajo, con la misma notacin que aparecen aqu. Habr que tener en cuenta, como se explica en el apartado 4 de este captulo, que las seales que aqu estn en el dominio del tiempo, ms adelante, se podrn ver en el dominio de la frecuencia, debido a la simplicidad que reporta el trabajar en este campo. Pues bien, a las seales que estn en el dominio de la frecuencia, se les intentar denotar igual que en el dominio del tiempo pero con maysculas. Estos sistemas funcionan en tiempo real, de otra forma no tendra sentido realizar todas estas operaciones, ya que nunca se podra llegar a reducir el error. Estos sistemas suelen implementarse en DSPs debido a que tienen una gran capacidad de hacer operaciones como suma o productos. En algunos apartados de esto proyecto se tiene en cuenta el hecho de que se implementen estos sistemas en DSPs, sobre todo a la hora de calcular las operaciones.

Lorenzo Meler Ferraz

10

CONCEPTOS INTRODUCCTORIOS 2. SEALES Y SISTEMAS EN TIEMPO DISCRETO Debido a que el trabajo se va a realizar en su mayor parte con el ordenador (que va a simular el procesador digital), es necesario que se trabaje en todo momento con seales y sistemas en tiempo discreto. Tanto las seales como los sistemas originales son de carcter continuo, por lo que se debern transformar a un nmero de muestras concreto. Las seales en tiempo continuo estn definidas para todos los valores del tiempo, sin embargo las seales en tiempo discreto slo estn definidas para determinados valores del eje de tiempos. Si la seal puede tomar cualquier valor en cualquier instante de tiempo, es decir, si es una funcin continua en el tiempo y continua en amplitud, se dice que la seal es continua o analgica como puede verse en la figura 2.1. La variable tiempo se representa mediante la letra t y la seal mediante x(t).

x(t)

Figura 2.1

Si la seal est definida nicamente en instantes enteros del tiempo, pero puede tomar cualquier valor real o complejo, se dice que la seal es discreta, como puede verse en la figura 2.2. En este caso habra un muestreo de una variable real. La variable independiente se representa con la letra n y la seal mediante x[n].

Lorenzo Meler Ferraz

11

CONCEPTOS INTRODUCCTORIOS x(n)

Figura 2.2 Este ltimo tipo de seales son las que se van a utilizar en el presente trabajo. En realidad la amplitud de la seal tambin tomar valores discretos, valores que sern determinados por el nmero de bits del conversor analgico-digital. Pero se asumir que la computadora podr tomar valores suficientemente aproximados como para decir que la amplitud pueda tomar cualquier valor. Para conseguir una seal en tiempo discreto a partir de otra en tiempo continuo, esta ltima la se tendr que muestrear. Este muestreo tiene que cumplir una norma esencial; esta norma o criterio se llama criterio de Nyquist, el cual nos dice que la frecuencia de muestreo (fm) tiene que ser mayor o igual a dos veces el ancho de banda de la seal a muestrear (ec. 2.1). Si se cumpliera esto, se podra reconstruir la seal sin ningn problema.

fm 2w

ec. 2.1

Este criterio sirve tanto para seales peridicas como para no peridicas, ya que estas ltimas se pueden poner como combinacin de lineal de seales peridicas. Por lo tanto, si se est usando una frecuencia de muestreo de 8000 muestras por segundo, nicamente se podr recuperar con precisin seales que posean un ancho de banda de w=fm/2=4000 Hz., o combinaciones lineales de frecuencias menores que sta.

Lorenzo Meler Ferraz

12

CONCEPTOS INTRODUCCTORIOS 3.- CONVOLUCIN La seal x (en la figura 1.1), que se denomina seal de entrada, es la seal que circula por el cable antes de llegar a la habitacin. Esta seal entra a la habitacin, rebota y se introduce por el micrfono, para volver a salir de la habitacin. El camino que la seal de entrada x recorre hasta salir de la habitacin, se llamar sistema y la seal obtenida a la salida (por supuesto diferente a x) es la seal deseada d. Se supone que se conoce la respuesta impulsional1 de este sistema, h[n], entonces para calcular la seal deseada, lo nico que se debera hacer sera la convolucin de la seal de entrada x con esta respuesta impulsional h[n] (que en algunos casos tambin llamaremos filtro). Se supone que el filtro h[n] (es decir, la respuesta impulsional de nuestro sistema) no vara en el tiempo. Si la seal de entrada es x[n], la seal de salida y[n] se calcula a travs de la convolucin.

x(n)

Figura 3.1

y(n)=x(n)*h(n)

Con el smbolo , se quiere mostrar el sistema por el que deber pasar la seal de entrada x(n), cuya respuesta impulsional es h(n)

y (n) = h[m]x[n m]
m =1

ec. 3.1

La interpretacin grfica de la suma de convolucin es muy sencilla. Para calcular la salida y[n] en un cierto instante fijo n, primero se dibujan h[m] y x[n-m] sobre el eje m. m recorre el ndice de coeficientes de la respuesta impulsional (salida para un impulso en tiempo 0) En segundo lugar, se multiplican ambas seales para obtener la seal h[m] x[n-m]. Si se suman todos los valores de la nueva seal con respecto a m obtendremos el valor de y[n].
1. La respuesta impulsional, es el resultado que se obtiene a la salida de un sistema al proporcionarle en la entrada una Dirac (impulso unitario).

de

Lorenzo Meler Ferraz

13

CONCEPTOS INTRODUCCTORIOS Hay que tener en cuenta que estas operaciones tienen que repetirse para cada valor de n (cada 1/8000 seg.). A continuacin se muestra un ejemplo grfico de cmo se realiza esta convolucin. Se parte de un filtro h[m] que tiene una respuesta impulsional como se muestra en la figura 3.2 (onda cuadrada muestreada).
h [n]

Figura 3.2 La seal que se va a pasar por este sistema (o filtro) es x, representada en la figura 3.3

h [n] x[n-m] n = -3

Figura 3.3 A medida que va pasando el tiempo (tiempo que se tarda en realizar una muestra), la seal se va desplazando hacia la derecha (en el eje de tiempo del tiempo discreto m). En cada instante n, se multiplicacin de x(m)h(m) multiplicaciones resultantes. tendr que y sumar realizar la todas las

h [n] x[n-m] n = 2

Figura 3.4

Lorenzo Meler Ferraz

14

CONCEPTOS INTRODUCCTORIOS

h [n] n = 5 x[n-m]

Figura 3.5

h [n] n = 8

x[n-m] 0 4 m

Figura 3.6 El resultado es la seal de la figura 3.8, observando que ahora el eje de abscisas no se corresponde a m sino a n, es decir, una seal de n muestras de duracin.

h [n] n = 11 x[n-m]

Figura 3.7

y [n]

Figura 3.8 Se ve como si se analiza la seal de la figura 3.4, donde n=2, el valor que obtenemos de la convolucin aparece

Lorenzo Meler Ferraz

15

CONCEPTOS INTRODUCCTORIOS representada en al figura 3.8 cuando n=2, un nico valor para y(n) Hay que tener en cuenta que la seal que se han introducido por el sistema (x), se ha tomado como de duracin finita, pero estos anlisis se suelen usar para seales de duracin infinita o de larga duracin, con lo cual el resultado sera diferente al que se ha obtenido en este ejemplo, ya que se seguiran sumando resultados no nulos de la obtencin de x(m)h(m). A la hora de programar esta operacin, tomando seales de entrada de duracin larga, en un instante de tiempo n, se escoger nicamente un vector de la seal de entrada1 de la misma anchura que el vector del filtro; haremos la siguiente operacin: y n = xn [m]h[1] + xn [m 1]h[2] + .... + xn [2]h[m 1] + xn [1]h[m] ec. 3.2

Esta operacin nos da como resultado un escalar, y, que ser la salida en el instante de muestreo n.

1. A vector de la seal de entrada se refiere a la seal de entrada pero muestreada, es decir una serie de coeficientes, nmero que ser igual que el que posee el filtro. El primer coeficiente de este vector corresponder a la ltima muestra tomada de la seal.

Lorenzo Meler Ferraz

16

CONCEPTOS INTRODUCCTORIOS

4.- FFT (FAST FOURIER TRANSFORM)

Un algoritmo puede ser admirado debido a numerosas razones; tecnolgicas por resolver eficientemente un problema prctico importante, estticas por ser elegante o incluso dramticas por abrir nuevas e inesperadas reas de aplicacin. La transformada rpida de Fourier, quizs por ser fuerte en todos estos apartados, ha emergido como uno de los sper algoritmos de la informtica desde su descubrimiento a mediados de los 60. Lipson 1981 El algoritmo para la realizacin de la transformada de Fourier de una forma eficaz (FFT) fue un hito en el clculo numrico y, parece ser, que el artculo donde se public originalmente es uno de los ms citados de la literatura cientfica. En el apartado anterior, se vio como realizar una convolucin. Esta operacin es necesaria para calcular el valor de una seal cuando pasa a travs de un sistema. Esto, en muchas ocasiones puede tardar demasiado tiempo, tiempo del que no se dispone cuando se intenta trabajar en tiempo real.

*
d h

FFT
X

FFT
H

IFFT
D

Figura 4.1
Lorenzo Meler Ferraz

17

CONCEPTOS INTRODUCCTORIOS

Por ello se utiliza otra herramienta, la FFT, con lo que se consigue trasladar una seal en tiempo discreto (muestreada) al campo transformado de Fourier o lo que se denomina seal en el dominio de la frecuencia. La figura 4.1, muestra de forma intuitiva cual va a ser el modus operandi para calcular la seal deseada, es decir la seal de entrada una vez haya pasado por el sistema. La convolucin consta de varias multiplicaciones y sumas; tiene que quedar claro que una convolucin en el dominio del tiempo es igual a realizar el producto de las mismas funciones en el dominio frecuencial. En la figura 4.1 se muestra como a la seal de entrada x se le hace la transformada rpida de Fourier y luego se multiplica por la tambin transformada del filtro h. Si a esta multiplicacin se le practica la transformada inversa, se obtendr la misma seal que si se sigue el otro camino en el que nicamente haba que hacer una convolucin. A priori, se podra pensar que como el camino recorrido es ms largo que cuando se haca la convolucin, los resultados tardaran ms en representarse. Pero la realidad es otra, y de mostrarlo se encargar este punto, donde tambin se calcular el nmero de operaciones que se necesitan para hacer una FFT. Todas las transformadas de Fourier que se realicen en este proyecto se harn con la transformada rpida de Fourier, ya que simplifica muchas operaciones con respecto a la tradicional DFT (transformada discreta de Fourier). LA TRANSFORMADA DISCRETA DE FOURIER. La transformada discreta de Fourier es una importante herramienta en muchos sistemas de procesado digital de seal; convierte la informacin del dominio del tiempo a una representacin en el dominio de la frecuencia. Los mtodos que son computacionalmente eficientes en el clculo de la DFT, son conocidos como algoritmos para la transformada rpida de Fourier (FFT). La DFT de una secuencia x[k ] , de longitud N, es otra secuencia de N nmeros complejos X [k ] que se define como muestra la ecuacin 4.1

Lorenzo Meler Ferraz

18

CONCEPTOS INTRODUCCTORIOS

X[k] =

N 1

n =0

x[n] W

kn N

0 k N 1

ec. 4.1

Donde el trmino factor de fase WN es:


W N = e j 2 / N
ec. 4.2

En general, se supone que la secuencia de datos x[k ] es compleja. Partiendo de la ecuacin


kn X [k ] = x[n]WN , n =0 N 1

es claro que

para cada valor de k, el clculo directo de X [k ] supone realizar N multiplicaciones complejas (4N multiplicaciones reales) y N-1 sumas complejas (4N-2 sumas reales). En consecuencia, para calcular los N valores de la DFT son necesarias N2 multiplicaciones complejas y N2-N sumas complejas. El clculo directo de la DFT es bsicamente ineficiente debido a que no explota las propiedades de simetra y periodicidad del factor de fase.
ALGORITMO FFT (en base 2)

Con este algoritmo, el resultado final es el mismo que con el anterior, lo nico que se hace es optimizar el nmero de operaciones. Sea x[n] una secuencia de longitud N=2m. Se puede dividir la secuencia x[n] en dos subsecuencias de longitud N/2, f1 [n] y f 2 [n], correspondientes a las muestras pares e impares de x[n] respectivamente:
f1 [n] = x[2n] f 2 [n] = x[2n + 1] ,

ec. 4.3

n = 0,1,...,

N 2

ec.4.4

La DFT de N puntos de x[n] puede expresarse ahora en trminos de las DFTs de las secuencias f1 [n] y f 2 [n] como indica la ecuacin 4.5.
X[k] =

n=0

x[n] W

N 1

kn N

(N 2 ) 1 (N 2 ) 1 ( 2 m + 1)k 2km = x[2 m ] WN + x[2 m + 1] WN


k = 0,1,...., N 1
m=0 m=0

ec. 4.5 19

Lorenzo Meler Ferraz

CONCEPTOS INTRODUCCTORIOS

Partiendo expresin 4.6.

de

la

ecuacin

W N = e j 2 / N

se

obtiene

la

2 WN =e

2 2 N

=e

2 N /2

= WN / 2

ec. 4.6

Teniendo en cuenta este resultado y las ecuaciones derivadas de dividir x[n] en dos subsecuencias, se consigue que:

(N 2 ) 1 (N 2 ) 1 k k km km X[k] = f1 [m ] WN / 2 + WN f2 [m ] WN / 2 = F1 [k] + WN F2 [k]


m =0

k = 0,1,...., N 1

m=0

ec. 4.7

Donde F1 [k ] y F2 [k ] son las DFTs de N/2 puntos de las secuencias f1 [n] y f 2 [n], respectivamente. Ahora bien, como se ha dos propiedades del factor de clculo eficiente de la DFT. periodicidad obtiene que una el nmero de muestras:
X[k] =

dicho anteriormente, existen fase WN que van a permitir un Partiendo de la propiedad de DFT es peridica, de periodo

n=0

N 1

kn x[n] WN =

n=0

x[n] W (

N 1

k + N )n N

= X[k + N] ec. 4.8

Utilizando este resultado y la propiedad de simetra se consigue la siguiente ecuacin:


k X [k ] = F1 [k ] + WN F2 [k ]

k = 0,1,....,

N 1 2
N 1 2

ec. 4.9

N k X k + = F1 [k ] + WN F2 [k ] 2

k = 0,1,....,

ec. 4.10

Se observa que el clculo directo de F1 [k ] requiere

(N 2 )

multiplicaciones complejas. La misma exigencia se aplica al multiplicaciones clculo de F2 [k ] . Adems se requieren N 2 k complejas ms para calcular WN F2 [k ] . De aqu que el clculo

( )

+N multiplicaciones 2 2 complejas. El primer paso del algoritmo, da lugar a una

de

X [k ]

requiera

2N

( 2) + N 2 = N
2

Lorenzo Meler Ferraz

20

CONCEPTOS INTRODUCCTORIOS

reduccin en el nmero de multiplicaciones de N 2 a N 2 + N , que equivale aproximadamente a dividir por 2 el 2 2 nmero de multiplicaciones cuando N es grande. En este punto, se puede repetir el proceso para cada una de las secuencias f1 [n ] y f 2 [n]. Por tanto f1 [n ] dar lugar a dos secuencias de N/4 puntos
v11 [n] = f1 [2n] v12 [n] = f 2 [2n + 1]

ec. 4.11

n = 0,1,...,
ec. 4.12

N 1 4

Y f 2 [n] dar lugar a:


v21 [n] = f 2 [2n] v22 [n] = f 2 [2n + 1]

ec. 4.13

n = 0,1,...,
ec. 4.14

N 1 4

Calculando las DFTs de N/4 puntos se obtendr las DFTs de N/2 puntos F1 [k ] y F2 [k ] a partir de las relaciones:

k F1 [k ] = V11 [k ] + WN / 2 V12 [k ]

n = 0,1,...,

N 1 4 N 1 4

ec. 4.15

F1 k + N

]= V [k ] + W
11

k N /2

V12 [k ]

n = 0,1,...,

ec. 4.16

k F2 [k ] = V21 [k ] + WN / 2 V22 [k ]

n = 0,1,...,

N 1 4 N 1 4

ec. 4.17

F1 k + N

]= V

21

[k ] + WNk / 2 V22 [k ]
son las DFTs

n = 0,1,...,
de

ec. 4.18

secuencias vij [n] . Para el

Donde

Vij [k ]

N/4

puntos

de

las

multiplicaciones y, por lo tanto, el clculo de F1 [k ] y F2 [k ] puede realizarse con N2/4 + N/2 multiplicaciones complejas. Para calcular la secuencia final X [k ] a partir de F1 [k ] y F2 [k ] , se requieren N/2 multiplicaciones complejas ms. Por
Lorenzo Meler Ferraz

clculo

de

Vij [k ]

se

requiere

4(N/4)2

21

CONCEPTOS INTRODUCCTORIOS

tanto el nmero de multiplicaciones necesarias se reduce a N2/4 +N, aproximadamente un factor 2. Este proceso debe repetirse hasta que las secuencias de datos resultantes sean de un nico punto. Si N=2m, el proceso se realizar (N/2)log2N veces. El nmero de sumas complejas queda tambin reducido a Nlog2N.
NMERO DE PUNTOS N MULTIPLICACIONES EN EL CLCULO DIRECTO DE N2 MULTIPLICACIONES CON EL ALGORTIMO (N/2)log2N

4 8 16 32 64 128 256 512 1024

16 64 256 1024 4096 16384 65536 262144 1048576


Tabla 4.1

4 12 32 80 192 448 1024 2304 5120

En la tabla 4.1 se compara el nmero de multiplicaciones complejas necesarias para el clculo de la DFT, utilizando el clculo directo y el algoritmo FFT de base-2 Hay que recordar que los DSPs, que sern los dispositivos donde se implementen todos estos algoritmos, hacen operaciones reales, por lo que habr que tener en cuenta que al transformar al dominio de la frecuencia nos quedarn nmeros complejos. Se puede observar en la tabla que la utilizacin del algoritmo para la FFT base-2 supone una importante disminucin del nmero de operaciones necesarias en el clculo de la DFT, sobre todo para secuencias de larga duracin.

Lorenzo Meler Ferraz

22

CONCEPTOS INTRODUCCTORIOS IMPLEMENTACIN DEL ALGORITMO

Se supone que calculamos representada en la figura 4.2.


x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x1+x5=f1 x2+x6=f2 x3+x7=f3 x4+x8=f4 (x1-x5)W0=f5 (x2-x6)W1=f6 (x3-x7)W2=f7 (x4-x8)W3=f8

la

DFT

de

puntos,

f1+f3=g1 f2+f4=g2 (f1-f3)W0=g3 (f2-f4)W2=g4 f5+f7=g5 f6+f8=g6 (f5-f7)W0=g7 (f6-f8)W=g8

g1+g2=X1 g1-g2=X2 g3+g4=X3 g3-g4=X4 g5+g6=X5 g5-g6=X6 g7+g8=X7 g7-g8=X8

Figura 4.2

Puesto que las secuencias de una muestra, cuya transformada son ellas mismas, el clculo se realiza en tres etapas. Comienza con el clculo de 4 DFTs de dos puntos, despus dos de 4 puntos y finalmente, una de 8 puntos. El clculo bsico que se realiza en cada etapa, consiste en coger dos nmeros complejos (x1,x2), r multiplicar x2 por WN , y sumar y restar el producto obtenido con x1 para obtener dos nuevos nmeros complejos (f1,f2). Este clculo bsico se denomina mariposa e implica una multiplicacin y dos sumas complejas. Con un nmero de muestras N=2m, se tienen log2N etapas con un total de N/2 mariposas en cada etapa, por lo que el nmero total de operaciones ser (N/2)log2N multiplicaciones complejas y Nlog2N sumas complejas. Cada vez que se realiza una mariposa sobre un par de nmeros complejos (x1, x2 por ejemplo) para obtener (f1,f2), no es necesario guardar el par de entrada (x1,x2). Por tanto se puede guardar el resultado (f1,f2) en las mismas posiciones que (x1,x2). En consecuencia, se necesitan una cantidad de memoria fija con 2N registros de almacenamiento, para guardar los resultados de los clculos
Lorenzo Meler Ferraz

23

CONCEPTOS INTRODUCCTORIOS

correspondientes a cada etapa, usando durante todo clculo de la DFT las mismas posiciones de memoria.

el

Posicin de los datos del array de entrada


Decimal Binario

Posicin de los datos array de salida: inversin de bit


Binario Decimal

0 1 2 3 4 5 6 7

000 001 010 011 100 101 110 111

000 100 010 110 001 101 011 111


Tabla 4.2

0 4 2 6 1 5 3 7

Por otro lado cabe destacar el orden de la secuencia de entrada. Si se considera el caso de N=8 el primer diezmado (separacin de las secuencias en sus muestras pares e impares) da la secuencia x1, x3, x5, x7 y el segundo x2, x4, x6, x8. La secuencia de entrada debe de ser reordenada antes de comenzar el clculo de las mariposas. Cada muestra de la secuencia inicial x[n] se almacena en la secuencia reordenada en orden binario invertido (ver tabla 4.2). El orden binario invertido consiste en tomar la posicin de las muestras en al secuencia inicial con m=log2N bits e invertir el orden de los bits; el nmero binario resultante nos dar la posicin de la muestra correspondiente en la secuencia reordenada final. Vector de entrada:
0 1 2 3 4 5 6 7

10

Tabla 4.3

En la figura 4.2, se usa secuencia de x[m] reordenada.

la

notacin

x[n]

como

Lorenzo Meler Ferraz

24

CONCEPTOS INTRODUCCTORIOS

Vector de salida:
0 1 2 3 4 5 6 7

10

Tabla 4.4

Se puede concluir que la transforma de Fourier es una herramienta matemtica que consiste bsicamente en un cambio de base. La base elegida para representar las seales son fasores (exponenciales complejas) sinusoidales de todas las frecuencias, y al calcular los coeficientes o transformada se obtiene el peso relativo de cada componente frecuencial de la seal a transformar. Un anlisis espectral es siempre el primer paso en cualquier proceso de tratamiento de seal. Lo que se ha implementado es un algoritmo eficiente que realiza de un modo aproximado (no hay que olvidar que se trabaja con seales muestreadas y cuantificadas) ese anlisis espectral. Realizar la IFFT (inversa de la transformada rpida de Fourier), consistir nicamente en seguir la mariposa de derecha a izquierda (sentido inverso al que se ha recorrido antes), para llegar a los resultados iniciales, recordando que se debe de reorganizar el vector de entrada (salida en la FFT), para que en la salida (entrada en la FFT) el resultado de ordenado.

Lorenzo Meler Ferraz

25

CONCEPTOS INTRODUCCTORIOS

CDIGO function [senal_out]=mifft(senal_in,N) for u=1:N %metemos los primero N coeficientes de la seal de entrada en out out1(u)=senal_in(u); end out=out1; T=log10(N)/log10(2);%calculamos el nmero de bits necesarios, segn el nmero de coeficientes que le metemos a la funcin. T=fix(T+0.5); binario=zeros(1,T); %para crear un vector de longitud T todo zeros %********************************************************** %***** ordenamos los coeficientes %********************************************************** for n=1:N indice=n-1; for t=1:T %calculo el numero en binario y le doy la vuelta directamente binario(t)=rem(indice,2); indice=fix(indice/2); binario2(T-t+1)=binario(t); end decimal=0; for t=0:T-1 decimal=binario2(t+1)*(2^(t))+decimal; end decimal=decimal+1; out(n)=out1(decimal); end %****************************************** %*** una vez ordenados los coeficientes %*** calculamos la transformada %****************************************** for d=1:T n=2^d; w=2*pi/n; for m=0:n:N-n for k=1:1:(n/2) y=out(m+k);

Lorenzo Meler Ferraz

26

CONCEPTOS INTRODUCCTORIOS z=out(m+k+n/2)*exp(-i*k*w); out(m+k)=(y+z); out(m+k+n/2)=(y-z);

end end

end n=0; senal_out=out;

Lorenzo Meler Ferraz

27

CONCEPTOS INTRODUCCTORIOS 5.- FILTRO DE WIENER

Como se explicaba en el primer punto el problema del eco, el proceso de pasar la seal por conversores, habitaciones, altavoces, etc., se acaba denominando filtrado. El inters radica en estimar como se realiza este filtrado, es decir, poder realizar digitalmente un sistema lo ms parecido al filtrado real (recordando, los conversores, los altavoces,.) Wiener propone una solucin para llegar lo ms rpido posible a conseguir nuestro filtro deseado, caso que se explicar a continuacin. Pero despus de todo esto, surge un problema aadido, y es que tanto el filtro real como nuestra seal de entrada van variando constantemente, la seal de entrada lo hace por razones obvias (si es voz esta seal est claro su cambio) y el filtro puede cambiar por condiciones ambientales, por modificacin de la sala etc. Este ltimo problema no se puede resolver con la solucin que en un principio Wiener nos propone, pero si con un algoritmo llamado LMS que proviene del filtrado de Wiener. Se ver como el problema de la no estacionareidad se resuelve con este ltimo algoritmo, ya que la solucin ptima de Wiener se consigue exclusivamente para sistemas estacionarios. El objetivo de este apartado consiste en explicar el filtro de Wiener, que no es ms que el de diseo de una respuesta impulsional h(n), de longitud L muestras, de modo y manera que la salida y(n) sea lo mas parecida posible a una seal, denominada deseada, d(n). El denominado parecido puede establecerse con cualquier criterio que se estime oportuno; no obstante, un planteamiento lineal del problema obliga a tomar, como medida de parecido, el error cuadrtico medio entre la salida y la referencia.

= E ({ (n) 2 }) = E d (n) y (n)

ec. 5.1

Dicho de otro modo, el propsito es encontrar un FIR de L coeficientes h(n) (n=1,L) tal que su respuesta a los datos, de este modo se denominar a la seal de entrada, produzca una salida lo mas prxima a la deseada en trminos de MSE (Error Cuadrtico Medio) mnimo. La situacin se resume en la figura 5.1:

Lorenzo Meler Ferraz

28

CONCEPTOS INTRODUCCTORIOS

x(n)

FILTRO DE WIENER h(n) residuo o error e(n)

salida y(n)

- +

deseada d(n)

Figura 5.1

Donde: DATOS x(n) n=0,...N-1 vector x FILTRO h(n) n=0,...,L-1 vector h SALIDA y(n) n=0,...,N+L-1 REFERENCIA d(n) n=0,...,N-1 De nuevo es til formular el problema en trminos vectoriales. La salida del filtro puede escribirse como:

y ( n) = h * x

ec. 5.2

Al introducir esta ltima expresin en el clculo del error que aparece en la ecuacin 5.1 y desarrollar el valor esperado de su modulo al cuadrado se obtiene la funcin objetivo a minimizar. En definitiva, encontrar un filtro FIR que cumpla estas condiciones no es ms que ir modificando los coeficientes de manera que el error que se produzca, sea cada vez menor, llegando al final a la solucin optima de Wiener como se muestra en al figura 5.2.
Convergencia 0.16 solucin ptima de Wiener 0.14

0.12

0.1

W1

0.08

0.06

0.04

0.02

0 -0.08

-0.06

-0.04

-0.02

0 W0

0.02

0.04

0.06

0.08

Figura 5.2

Lorenzo Meler Ferraz

29

CONCEPTOS INTRODUCCTORIOS 6.- FILTRADO ADAPTATIVO

Generalmente, las seales con las que se trabaja no son estacionarias, por ello, el filtrado de Wiener (captulo 5) no resulta apropiado en estas situaciones, ya que es la solucin ptima para el caso de sistemas estacionarios. Una forma de solventar este problema consiste en operar con el proceso en bloques, sobre intervalos en los cuales el proceso pueda ser considerado aproximadamente estacionario. Pero esta tcnica presenta limitaciones en su efectividad por varias causas. En primer lugar, para procesos con gran velocidad de variacin, el intervalo sobre el que se puede considerar estacionariedad va a ser demasiado pequeo para conseguir una resolucin apropiada. Por otra parte, esta tcnica no puede incorporar fcilmente cambios en los intervalos de anlisis. Por ltimo, y ms importante, esta solucin impone un modelo incorrecto para los datos, es decir, considera estacionariedad donde no la hay. Por tanto, para obtener unos resultados ms precisos, se debe comenzar nuestro estudio bajo el supuesto de no estacionariedad. Para el caso del filtro Wiener FIR, con coeficientes h, la estimacin de la seal en sentido de mnimo error cuadrtico medio es: d (n) =

m =1

h(m)x(n

m)

ec. 6.1

R (n) = x(n)x H (n) ec. 6.1.a p(n) = x(n)d (n) ec. 6.1.b
Con x(n) y d(n) procesos estacionarios en sentido amplio, la solucin de Wiener resulta hopt = R-1 p. Siendo R la matriz de autocorrelacin de x (ecuacin 6.1.a) y p la ecuacin de correlacin entre las seales x y d (ecuacin 6.1.b). Pero ahora los procesos con los que se trabaja no son estacionarios, y los coeficientes del filtro que minimizan E{|e(n)|2} dependen de n: y (n) =

k=0

h (n)x(n
k

N 1

k)

ec. 6.2

Lorenzo Meler Ferraz

30

CONCEPTOS INTRODUCCTORIOS

donde hk(n) es el coeficiente k-simo en el instante n. De esta forma, la salida del filtro y(n) se puede expresar como
y(n) = hT(n) x(n) ec. 6.3

donde
hk = [ h0(n) x(n) = [ x(n) h1(n) ... hp-1(n)]T x(n-1) ... x(n-p+1)]T ec. 6.4 ec. 6.5

El diseo de un filtro adaptativo (variante en el tiempo) es mucho ms complicado que el de un filtro de Wiener (invariante en el tiempo), ya que, para cada instante de tiempo n, se ha de encontrar un conjunto de coeficientes ptimos, hk(n) para k = 1, 2, ..., N. Pero se puede simplificar el problema considerando una actualizacin de los pesos del filtro de la forma que muestra la ecuacin 6.6.
h(n+1)= h(n) + hn ec. 6.6

donde hn es un factor de correccin que se aplica a los coeficientes h(n) en el instante n para obtener el nuevo conjunto de coeficientes h(n+1) en el instante n+1. Esta ecuacin de actualizacin es la base de los algoritmos adaptativos, y el diseo de cada filtro adaptativo requiere definir este factor hn. La clave de un filtro adaptativo se basa en un algoritmo que define cmo se ha de aplicar la correccin hn. Es evidente que estas correcciones deben reducir el error cuadrtico medio. De hecho, independientemente del algoritmo utilizado, se ha de cumplir:

En un escenario estacionario, el filtro debe producir una secuencia de correcciones hn de modo que hn converja a la solucin ptima de Wiener
lim h n = R 1 P
n

ec. 6.9

Lorenzo Meler Ferraz

31

CONCEPTOS INTRODUCCTORIOS

No ha de ser imprescindible conocer las estadsticas rx(k) y rdx(k) para calcular hn. La estimacin de estos estadsticos se tiene que realizar de manera implcita en el filtro adaptativo. o Para seales no estacionarias, el filtro debe ser capaz de adaptarse a los cambios estadsticos y alcanzar la solucin al evolucionar en el tiempo.
o

d(n) X(n) +

hn(z)
hx

Y(n) -

+
e(n)

Algoritmo adaptativo

Figura 6.1

El algoritmo adaptativo debe disponer del error e(n) para actualizar los coeficientes, ya que e(n) permite definir las prestaciones del filtro y determinar la forma en que han de modificarse dichos coeficientes. La eficiencia de un filtro adaptativo depende de una serie de factores, como el tipo de filtro (IIR o FIR), la estructura del mismo (forma directa, paralela, ...), y la forma en que se define la medida de prestaciones (error cuadrtico medio, mnimo error cuadrtico, ...). Este estudio se va a centrar en el filtro FIR por varias razones:

El error cuadrtico medio para un filtro transversal es una funcin cuadrtica de los pesos del filtro. La superficie de error es un paraboloide con slo un mnimo, y por ello, la bsqueda del error cuadrtico medio mnimo es relativamente sencilla. Asegurando que los coeficientes del filtro estn acotados, se puede controlar fcilmente la estabilidad del filtro.
32

Lorenzo Meler Ferraz

CONCEPTOS INTRODUCCTORIOS

Existen algoritmos para la actualizacin de los coeficientes simples y eficientes. Las prestaciones de estos algoritmos son perfectamente conocidas en trminos de convergencia y estabilidad. El filtro adaptativo FIR funciona lo suficientemente bien para satisfacer el criterio de diseo. La estabilidad a variaciones bruscas de la seal de entrada o de la sala es buena ya que el error vuelve a converger rpidamente. medida de las

Hay tres conceptos principales en la prestaciones de un algoritmo adaptativo:

Complejidad (computacional): definida como el nmero de operaciones que han de realizarse en cada instante para implementar el algoritmo adaptativo; generalmente es un importante factor para determinar si la implementacin en tiempo real resulta viable. Velocidad de convergencia: la tasa a la que el filtro adaptativo converge a la solucin de Wiener. Desafortunadamente, la velocidad de convergencia es inversamente proporcional a la complejidad. Desajuste: mide la diferencia entre la solucin de Wiener y la obtenida con el algoritmo adaptativo. Generalmente, el desajuste es inversamente proporcional a la velocidad de convergencia y a la complejidad.

El mtodo de mxima pendiente es un algoritmo que modifica los coeficientes en la direccin del gradiente del error. Este algoritmo exige el conocimiento de la estadstica, no requiere inversin de matrices (ventaja respecto al mtodo de Wiener), es sensible a la dispersin de autovalores y permite incorporar fcilmente cambios en la estadstica. Pero en este proyecto se ver el algoritmo LMS, mucho ms fcil de implementar que el anterior y, aunque realiza una estimacin del gradiente muy exagerada (se estima de forma instantnea en una sola iteracin), resulta un mtodo muy robusto. Tambin se ver el LMS normalizado, que independiza la convergencia del filtro de la potencia de la seal de entrada. Otros algoritmos que son susceptibles de estudio debido al carcter del proyecto son: el LMS con factor de prdidas (leaky), importante en casos de matrices mal
Lorenzo Meler Ferraz

33

CONCEPTOS INTRODUCCTORIOS

condicionadas, o los algoritmos signados, que suponen un gran ahorro computacional y, por ello, son ampliamente utilizados en aplicaciones de tiempo real, importante para el desarrollo final del estudio presente. Sin embargo, estos dos ltimos, no sern estudiados en este proyecto, centrndolo ms en el LMS y en el NLMS, para ms tarde pasar a su implementacin en el dominio de la frecuencia.

Lorenzo Meler Ferraz

34

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

ALGORITMOS LMS EN EL DOMINIO TEMPORAL 2.1.-ALGORITMO LMS EN EL DOMINIO TEMPORAL


2.1.1.- INTRODUCCIN. 2.1.2.- DIAGRAMA DE BLOQUES E INSTRUCCIONES. 2.1.3.- RESULTADOS CON DIFERENTES SEALES DE ENTRADA. 2.1.4.- RESULTADOS CAMBIANDO EL TAMAO DEL FILTRO. 2.1.5.- CLCULO DEL NMERO DE MULTIPLICACIONES Y SUMAS EN FUNCIN DEL TAMAO DEL FILTRO. 2.1.6.- CDIGO DEL PROGRAMA.

2.2.-ALGORITMO NLMS (LMS NORMALIZADO):


2.2.1.- INTRODUCCIN 2.2.2.- DIAGRAMA DE BLOQUES 2.2.3.- DEPENDIENTE DE LA POTENCIA DE LA SEAL 2.2.4.- RESULTADOS OBTENIDOS (mejores valores de ) 2.2.5.- COMPARACIN DE RESULTADOS LMS vs. NLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES) 2.2.6.- CDIGO DEL PROGRAMA

2.3.-ALGORITMO BLMS (BLOCK LMS):


2.3.1.- INTRODUCCIN 2.3.2.- DIAGRAMA DE BLOQUES 2.3.3.- RESULTADOS OBTENIDOS (mejores valores de ) 2.3.4.- COMPARACIN DE RESULTADOS LMS vs. BLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES) 2.3.5.- DIFERENCIA DE OPERACIONES LMS vs. BLMS 2.3.6.- CDIGO DEL PROGRAMA

2.4.-ALGORITMO BNLMS (BLOCK LMS NORMALIZADO):

2.4.1.- INTRODUCCIN 2.4.2.- DIAGRAMA DE BLOQUES 2.4.3.- RESULTADOS OBTENIDOS (mejores valores de ) 2.4.4.- COMPARACIN DE RESULTADOS BLMS vs. BNLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES) 2.4.5.- CDIGO DEL PROGRAMA

Lorenzo Meler Ferraz

35

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.-ALGORITMO LMS EN EL DOMINIO TEMPORAL 2.1.1.- introduccin.


El estudio que se va a realizar muestra como se comporta el algoritmo LMS en el dominio del tiempo y algunas caractersticas a tener en cuenta. El algoritmo LMS pertenece a la familia de los algoritmos de gradiente estocstico. Con el trmino "estocstico" se pretende distinguir este algoritmo del Steepest Descent, que utiliza un gradiente determinista para el clculo de los coeficientes del filtro. Una caracterstica importante del LMS es simplicidad. No requiere medidas de las funciones correlacin, ni tampoco inversin de la matriz autocorrelacin. El LMS comprende dos procesos bsicos:

su de de

Un proceso de filtrado, que implica el clculo de la salida generada por un filtro transversal, y la generacin de una estimacin del error comparando esta salida con la respuesta deseada. Un proceso adaptativo, que realiza el ajuste automtico de los coeficientes del filtro de acuerdo con la estimacin del error.

Si fuera posible obtener medidas exactas del vector gradiente (n) en cada iteracin n, y dispusiramos del parmetro adecuadamente elegido, el vector de pesos del filtro convergera a la solucin ptima de Wiener. Pero en la realidad no se dispone de estas medidas exactas del vector gradiente, ya que no se conoce la matriz de autocorrelacin de la seal de entrada al filtro ni el vector de correlacin cruzada entre esta seal de entrada al filtro y la respuesta deseada. Por tanto, el vector gradiente ha de ser estimado a partir de los datos. La manera ms sencilla de estimar el vector gradiente consiste en sustituir en la ecuacin 1.1.1

(n) = -2 p + 2 R h(n)

ec. 2.1.1.1

R y p por estimaciones instantneas a partir de los valores de seal de entrada al filtro y por la respuesta deseada como se ve en la ecuacin 1.1.2.

Lorenzo Meler Ferraz

36

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

R (n) = x(n)x H (n)

p(n) = x(n)d (n)

Ec. 2.1.1.2

Y se obtiene as una estimacin instantnea del vector gradiente


(n) = 2x (n) d (n) + 2 x (n) x H(n) h (n)

ec. 2.1.1.3

Esta estimacin puede verse como el resultado de aplicar el operador gradiente al error instantneo |e(n)|2. Si se sustituye la estimacin del vector gradiente en la ecuacin de actualizacin de los pesos utilizada en el algoritmo Steepest-Descent { h(n+1) = h(n) - (1/2) (-(n)) } se obtiene la relacin recursiva siguiente:

[d (n) x H(n)h(n)] ec. 2.1.1.4 h (n + 1) = h (n) + x (n)


Se puede expresar esta solucin con las relaciones siguientes: 1. Salida del filtro
y(n) = hH(n) x(n) ec. 2.1.1.5

2. Estimacin del error


e(n) = d(n) y(n) ec. 2.1.1.6

3. Adaptacin de los pesos del filtro


h(n+1) = h(n) +

x(n) e*(n)

ec. 2.1.1.7

En cada iteracin, la actualizacin de un peso requiere dos multiplicaciones reales y una suma. Por tanto, para un filtro de N coeficientes, se realizan 2N+1 multiplicaciones reales y 2N sumas reales por iteracin. Se observa que la estimacin del error, definida por las dos primeras ecuaciones, depende del vector de pesos actual h(n), y el trmino x(n)e*(n) representa la correccin aplicada al vector de pesos h(n). El algoritmo iterativo ha de comenzar con un valor inicial h(0). Tambin notamos que en cada iteracin se debe conocer el valor de x(n), d(n) y h(n).

Lorenzo Meler Ferraz

37

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Cuando este algoritmo de gradiente estocstico opera con seales estocsticas, las direcciones del gradiente son aleatorias y generalmente no coinciden con la direccin sealada por el Steepest-Descent. Pero, al ser no sesgado en media, la correccin aplicada al vector de pesos sigue, en media, la direccin del Steepest-Descent.
= E 2 ] + 2E[x(n)x H(n).h(n)] = + E (n) x ( n ) d ( n ) 2 x (n) x H(n) h (n) E[x (n) d (n) = 2 = 2p + 2 Rh (n) = (n) ec. 2.1.1.8

ANLISIS DE CONVERGENCIA:

Una de las prestaciones a analizar en todo algoritmo es la velocidad de convergencia. La convergencia, al igual que en el steepest descent, viene determinada por los autovalores de la matriz de autocorrelacin R y su dispersin. As, el valor de que garantiza convergencia en media es:

0< <

2
max

ec. 2.1.1.16

donde max es el mayor de los autovalores de la matriz de autocorrelacin, que cumple:

max k = tr ( R)
k =0

N 1

ec. 2.1.1.17

Con el fin de asegurar la convergencia en varianza, el parmetro debe elegirse de forma ms restrictiva:

0< <

2 3 max

ec. 2.1.1.18

Cuando el vector de pesos comienza a converger en media, los coeficientes empiezan a fluctuar en torno a sus valores ptimos. Estas fluctuaciones son debidas a que el vector gradiente utilizado para realizar las correcciones al vector de pesos es ruidoso. En consecuencia, la varianza del error no tiende a cero y el error cuadrtico medio es mayor que el error cuadrtico medio mnimo en una cantidad denominada exceso de error cuadrtico medio. Para determinar este exceso de error, se puede demostrar que:

Lorenzo Meler Ferraz

38

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

exc() = min

k k k = 0 2 N 1 k 1 k k = 0 2

N 1

ec. 2.1.1.19

Donde exc representa el exceso de error cuadrtico medio.

Lorenzo Meler Ferraz

39

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.2.- diagrama de bloques e instrucciones.


A continuacin, en la figura 1.2.1, se presenta el diagrama de bloques, en el cual se intenta representar todos los bloques necesarios para realizar el algoritmo LMS, as como las seales que intervienen en dicho algoritmo.
DIAGRAMA DE BLOQUES
aadir y dar la vuelta

*
DELAY

viejo

he

x x
y e

e
+

*
h

Figura 2.1.2.1

*
X

Este smbolo nos indica una convolucin lineal. Multiplicacin. En los dos casos que hay multiplicacin se hace un escalar por un vector.

Lorenzo Meler Ferraz

40

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Suma de dos escalares.

Sudatorio entre dos vectores.

Las flechas indicadas en negrita muestran que por ah va un vector (del tamao del filtro), y las flechas o lneas ms finas indican que nicamente circula un escalar.

Lorenzo Meler Ferraz

41

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Los pasos de este diagrama ecuaciones de la tabla 2.1.2.2.


INSTRUCCIONES.

se

representan

en

las

INICIALIZACIN he=[00] %anchura del vector N constante de adaptacin. func seal de entrada al sistema x(m)=func(m) los N primeros valores de la seal muestreada se introducen en el vector de entrada inicial. PARA CALCULAR UN VALOR DE LA SEAL DE SALIDA - Toma una nueva muestra xn(m+1)= xn(m) xn(1)= func(m+n) - Calcula la seal deseada dn = yn(m)*hn(m) - Calcula la seal estimada yn = xn(m)*hen(m) - Clculo del error en = dn - yn - LMS hen+1 = hen(m)+exn(m)

Figura 2.1.2.2

Donde el significado de cada elemento es: - func: la seal que va llegando (a travs del altavoz). - x: se muestrea la seal func para utilizarla en el algoritmo. - h: es el vector que representa el filtro real, es decir sistema en planta.

Lorenzo Meler Ferraz

42

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

- d: seal que se desea obtener, calculada a partir de la seal de entrada (x) y del filtro real (h), haciendo la convolucin entre stas. - e: se denomina con e minscula al error que vamos cometiendo obtenido de restar la seal deseada con la seal estimada (y). - y: es la seal estimada, la que se tiene que hacer que se parezca a la seal deseada. - : factor de convergencia. - he: filtro estimado. Al igual que ye se tiene que ir pareciendo a y, el filtro estimado se tiene que ir acercando a los valores del filtro real, porque una vez que lo obtengamos la seal estimada pasar a ser igual que la seal deseada. - m: es la posicin del coeficiente en los diferentes vectores. Cada instante de tiempo n (en nuestro caso 1/8000 seg.), muestrearemos la seal func, introduciendo su valor en la primera posicin del vector x (previamente habremos desplazados todos los valores de este vector hacia la derecha, es decir desechando el ms antiguo).
Nota: Los coeficientes que conforman el filtro real h, se consigui recogiendo el resultado de introducir estimando la funcin impulso en la furgoneta del laboratorio CAR de la EUPT.

Lorenzo Meler Ferraz

43

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.3.- resultados con diferentes seales de entrada.


Para analizar y comparar las prestaciones del algoritmo LMS en el dominio del tiempo, se tendr que analizar para unas cuantas seales de entrada, y se decide que con las seales que se han usado es suficiente para saber si funciona correctamente. Tambin se utilizan algunas de estas seales porque es fcil que se encuentren como entrada a del sistema (como la seal de voz y la de msica). Las seales que se han utilizado son: - tonos a 50, 500, 1000 y 3000 - los cuatro tonos anteriores juntos. - Los tonos 50, 100 y 150 juntos. - Tonos 1000, 2000 y 3000 - Msica. - Voz. - Ruido blanco. En casi todos los casos, el factor de convergencia ha sido =0.001, pero en algunos no se ha utilizado este valor. Se dir en cada caso que valor se ha usado. Lo que se debera hacer en este apartado es encontrar el valor de con el que se consigue la mayor reduccin del error en el menor tiempo posible, sin llegar a divergir. Siempre se empieza por un valor muy pequeo, por ejemplo 0.001. A partir de ah se tiene que ir aumentando este valor, ya que su incremento har que la cancelacin del eco sea ms rpida. El problema est en que un valor de muy elevado dara una divergencia del error, as que este aumento se har poco a poco. Hay que tener en cuenta que cada seal (cada tipo de seal, voz, tonos, ruido blanco,) da lugar a una matriz de autocorrelacin, R, con diferentes autovalores. Estos autovalores son los que determinan los valores ptimos de . Por tanto este valor de vara segn el tipo de seal, como se ha visto en el estudio que se ha hecho previamente. Los valores ptimos de este factor de convergencia han sido definidos experimentalmente, observando cual de todos cancelaba mejor el error (menor tiempo y mayor cancelacin final). En este apartado nicamente se han representado los resultados para estos valores, los que hacen que el resultado sea el mejor, habiendo hecho antes el estudio al que me refiero en este prrafo.

Lorenzo Meler Ferraz

44

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

En las grficas aparece la amplitud de la seal de error junto con el nivel de cancelacin obtenido al final del clculo. La ecuacin que se utilizar para calcular este nivel de cancelacin es la 2.1.3.1. error (e) error(dB) = 10log10 seal deseada (d) 300.
ec. 2.1.3.1

Y esto promediado para un nmero de muestras de 100 a

Las representaciones grficas del apartado 3 se han realizado de acuerdo al valor optimo del factor de convergencia para cada una de las seales, exceptuando la seal Combinacin de tonos 2 (50, 100, 150 Hz). (=0.0001), donde se ha utilizado un valor inferior al mximo que no diverge debido a que el nivel de cancelacin alcanzado es mucho mejor. Todos los tonos, as como la msica y la voz estn muestreados a 8000 muestras por segundo. Este dato ha sido el fundamental para poner los resultados en funcin del tiempo de la seal. Se han utilizado 16.000 muestras, con lo cual se han representado 2 segundos, y aunque slo se muestra el tiempo necesario para ver las grficas, la potencia del error est calculada para los valores finales en dos segundos.

Lorenzo Meler Ferraz

45

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Tono 50 Hz. (=0.001)


x 10
-4

CANCELACION DE ECO

7 6 5 e rro r 4 3 2 1 0 0.1 0.2 0.3 0.4 0.5 0.6 tiempo (seg.) 0.7 0.8 0.9

121,2696 dB

Figura 2.1.3.1

Tono 150 Hz (=0.001)


CANCELACIN DEL ECO 0.025

0.02

0.015 error 0.01

0.005 122,7569 dB

0 0.02 0.04 0.06 0.08 tiemo (seg.) 0.1 0.12 0.14

Figura 2.1.3.2

Lorenzo Meler Ferraz

46

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Tono a 1000 Hz. (=0.001)


CANCELACION DE ECO 0.16 0.14 0.12 0.1 0.08 e rro r 0.06 0.04 0.02 0 -0.02 -0.04 1 2 3 4 5 6 tiempo (seg.) 7 8 9 x 10 10
-3

118,0803 dB

Figura 2.1.3.3 Tono a 3000 Hz. (=0.001)


CANCELACION DE ECO

0.4 0.3 0.2 0.1 e rro r 118,2809 dB 0 -0.1 -0.2 -0.3 -0.4 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10
-3

Figura 2.1.3.4

Lorenzo Meler Ferraz

47

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). (=0.0001)
CANCELACIN DEL ECO 0.6

0.4

0.2 118,6414 dB error 0

-0.2

-0.4

-0.6 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 tiempo (seg.)

Figura 2.1.3.5 Combinacin de tonos 2 (50, 100, 150 Hz). (=0.0001) En este caso se ha probado con =0.001 y el resultado no diverge, pero es mucho peor que el que obtenemos para este valor del factor de convergencia.
CANCELACIN DEL ECO

0.15

0.1

0.05 122,0456 dB error 0

-0.05

-0.1

-0.15 0.01 0.02 0.03 0.04 0.05 tiempo (seg.) 0.06 0.07 0.08 0.09

Figura 2.1.3.6

Lorenzo Meler Ferraz

48

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Combinacin de tonos 3 (1000, 2000, 3000 Hz). (=0.001)
CANCELACIN DE ECO

0.5

119.9592 dB
error 0

-0.5

-1

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

tiempo (seg.)

Figura 2.1.3.7 (119.9592 dB)

Msica. (=0.01)

SEAL DESEADA 0.05

-0.05

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

SEAL ESTIMADA 0.02 0.01 0 -0.01 -0.02

0.2

0.4

0.6

0.8

1 tiempo

1.2

1.4

1.6

1.8

Figura 2.1.3.8

Lorenzo Meler Ferraz

49

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Voz. (=0.01) seales


SEAL DESEADA 0.4 0.2 0 -0.2 -0.4

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

SEAL ESTIMADA 0.2 0.1 0 -0.1 -0.2

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

Figura 2.1.3.9 Ruido blanco. (=0.001)


CANCELACION DE ECO 0.8 0.6 0.4 9,0304 dB 0.2 e rro r 0 -0.2 -0.4 -0.6 -0.8

0.5

1.5 tiempo (seg.)

2.5

Figura 2.1.3.10 CONCLUSIONES: Los niveles que la ITU recomienda como aceptables para una cancelacin de eco estn a partir de 40dB., niveles que como se ver, muy pocas veces se alcanzan, pero la explicacin radica en que las seales utilizadas estn normalizadas, por lo que la potencia del error cancelado se har ms difcil. Estos niveles sern utilizados tanto para los algoritmo LMS en el tiempo como
Lorenzo Meler Ferraz

50

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

en la frecuencia. En estas representaciones, se puede ver que las seales de un tono y combinacin de tonos, vienen dadas por la seal del error, utilizando la ecuacin 1.3.1 para calcular la potencia final a la que llega la potencia del error, donde se saca una relacin entre el error cometido y la seal de entrada. En estas seales (los tonos nombrados en el prrafo anterior), cuando se le aplica el primer algoritmo se ve que el tiempo de cancelacin depende claramente de la frecuencia del tono, siendo mayor este tiempo cuanto menor es la frecuencia. En la combinacin de tonos se puede apreciar claramente esta observacin, ya que la primera combinacin, compuesta por tonos de diferentes frecuencias, algunas muy juntas y otras muy separadas; tiene un tiempo de cancelacin intermedio comparado con las otras combinaciones, donde la que est compuesta por tonos de baja frecuencia el tiempo es mucho ms bajo que el que tarda en el de la tercera combinacin. Con respecto a las seales como voz y msica, de las cuales no se representan las seales de error, se puede observar como la seal estimada, al cabo de menos de un segundo, la similitud, en lo que respecta a la evolucin en el tiempo de la amplitud, es bastante grande, teniendo en cuenta que los valores de amplitud de la seal estimada son aproximadamente la mitad del valor de la deseada. Si se ha escogido el mtodo de comparacin en estas seales, es debido a que las representaciones de la cancelacin del error no aportan nada de informacin. Esta falta de informacin proviene de la no existencia de una cancelacin real del error y s una simple similitud entre las dos seales. Se puede concluir que para estas dos seales (representadas en las figuras 2.1.3.8 y 2.1.3.9) con este algoritmo no se consiguen los objetivos planteados. Lo que respecta al ruido, ltima seal a analizar, se ha representado la figura en la que aparece el error (resta de la seal deseada menos la estimada), es decir el error lineal. Se puede ver como la cancelacin del eco es de 9.0304dB.

Lorenzo Meler Ferraz

51

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

DATOS:
TONOS 1000Hz. 0.003

50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 0.3

150Hz. 0.04

3000Hz. 0.003

121.2696

122.7569

118.0803

118.2809

COMB. 1 0.03

COMBINACIN DE TONOS COMB. 2 0.04

COMB. 3 0.03

118.6414

122.0456 SEALES NO PERIDICAS MSICA ---

119.9592

VOZ ---

RUIDO ---

---

---

---

Tabla 2.1.3.1

Lorenzo Meler Ferraz

52

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.4.- resultados cambiando el tamao del filtro.


El anlisis ser el mismo que en el apartado anterior, utilizando diferente (para cada una de las seales de entrada), ya que al utilizar filtros de anchura menor, el paso del algoritmo se puede hacer mayor; la reduccin del error es mayor o menor (a priori menor) porque luego calcularemos el nmero de operaciones que se hacen con cada filtro (menos operaciones cuanto ms corto sea el filtro, cuantos menos coeficientes tenga) y se ver que filtro conviene. Los filtros utilizados para este ejemplo sern de 512 coeficientes y de 256, valores que se consideran suficientes como para llegar a conclusiones claras en este apartado. A continuacin, nicamente se colocarn los resultados del error. Aunque se han calculado la seal deseada y la estimada estas slo se utilizarn, al igual que el apartado anterior, para las seales de msica y voz, ya que lo que interesa es el resultado del error comparndolo con el anterior. As, en la parte derecha de cada una de las tablas de las seales de entrada se colocar el resultado con el filtro de 1024 coeficientes, a la izquierda el de 512 y debajo de los dos el de 256. Tambin habr que tener en cuenta que se van a analizar 8.000 muestras, por lo tanto habr que fijarse en el eje de tiempos, ya que los calculados hasta ahora estaban analizadas 16.000 muestras. Es probable que no se muestre todo el tiempo analizado ya que puede que no sea necesario, incluso puede que en algunos casos sea aconsejable representar menos intervalo de tiempo para poder ver con mayor claridad la cancelacin del error. Para obtener los resultados con un filtro menor, los pasos a seguir son muy parecidos que en el caso anterior, ya que la seal deseada ser la misma, obtenida con el filtro de 1024 muestras y con la seal de entrada de 1024 coeficientes (para poder hacer la convolucin y as tener d). Para conseguir la seal estimada se tendr que hacer la convolucin de x[512]*he[512], para ello se cogen nicamente los 512 coeficientes de x ms nuevos, desechando la otra mitad ms antiguos. De esta forma lo que se obtiene es una peor estimacin de la seal que debemos alcanzar (la seal deseada). Lo mismo que esto, ocurrira con el filtro de 216 coeficientes.

Lorenzo Meler Ferraz

53

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Tono 50Hz. Error filtro 512 coeficientes (=0.005)
CANCELACION DE ECO 0.025

Error filtro 1024 coeficientes (=0.001)


x 10
-4

CANCELACION DE ECO

7 6 5 e rro r 4 3

0.02

0.015 e rro r

0.01

0.005

32,9802 dB

2 1

0
121,2696 dB

-0.005
0

0.2

0.4

0.6

0.8

1 1.2 tiempo (seg.)

1.4

1.6

1.8 x 10
-3

0.1

0.2

0.3

0.4 0.5 0.6 tiempo (seg.)

0.7

0.8

0.9

Error filtro 256 coeficientes (=0.01)


x 10 3 2 1 0 e rro r -1 -2 -3 -4 27.6755 dB
-3

CANCELACION DE ECO

0.02

0.04

0.06

0.08 0.1 tiempo (seg.)

0.12

0.14

0.16

0.18

Figura 2.1.4.1 Tono 150 Hz. Error filtro 512 coeficientes (=0.005)
10 9 8 7 6 e rro r 5 4 3 2 1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 tiempo (seg.) 0.7 0.8 0.9 121,6057 dB 0 0.02 0.04 0.06 0.08 tiemo (seg.) 0.1 0.12 0.14 0.005 122,7569 dB 0.015 error 0.01 0.02 x 10
-3

Error filtro 1024 coeficientes (=0.001)


CANCELACIN DEL ECO 0.025

CANCELACION DE ECO

Error filtro 256 coeficientes (=0.01)


x 10 12
-3

CANCELACION DE ECO

10

e rro r

2 121.6061 dB

0.02

0.04

0.06

0.08 0.1 0.12 tiempo (seg.)

0.14

0.16

0.18

Figura 2.1.4.2

Lorenzo Meler Ferraz

54

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Tono 1000 Hz. filtro 512 coeficientes (=0.005)
CANCELACION DE ECO 0.16 0.2 0.18 0.12 0.16 0.1 0.14 0.08 e rro r e rro r 0.12 0.1 0.08 0.06 0.04 0.02 0 0 0.002 0.004 0.006 0.008 0.01 0.012 tiempo (seg.) 0.014 0.016 0.018 0.02 117,8995 dB -0.04 1 2 3 4 5 6 tiempo (seg.) 7 8 9 x 10 10
-3

filtro 1024 coeficientes (=0.001)


CANCELACION DE ECO 0.14

0.06 0.04 0.02 0 -0.02 118,0803 dB

Error filtro 256 coeficientes (=0.01)


CANCELACION DE ECO 0.2

0.15

e rro r

0.1

0.05 117.9178 dB 0 1 2 3 4 tiempo (seg.) 5 6 7 x 10


-3

Figura 2.1.4.3 Tono 3000 Hz. filtro 512 coeficientes (=0.005)


CANCELACION DE ECO 0.4 0.4 0.3 0.2 0.2 0.1 e rro r e rro r 118,2809 dB 0 -0.1 0 -0.2 -0.1 -0.3 -0.4 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10
-3

filtro 1024 coeficientes (=0.001)


CANCELACION DE ECO

0.3

0.1 59.2296 dB

-0.2 0.002 0.004 0.006 0.008 0.01 0.012 tiempo (seg.) 0.014 0.016 0.018 0.02

Error filtro 256 coeficientes (=0.05)


x 10 3 2.5 2 1.5 e rro r 1 0.5 156.6934 dB 0 -0.5 -1 0.5 1 1.5 2 2.5 3 3.5 tiempo (seg.) 4 4.5 5 5.5 x 10
-3 -3

CANCELACION DE ECO

Figura 2.1.4.4

Lorenzo Meler Ferraz

55

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). filtro 512 coeficientes (=0.001)
CANCELACION DE ECO 0.6 0.4 0.3 0.2 0.2 0.1 e rro r 0 -0.1 -0.2 -0.3 -0.4 -0.4 -0.5 0 0.02 0.04 0.06 0.08 0.1 0.12 tiempo (seg.) 0.14 0.16 0.18 -0.6 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 tiempo (seg.) -0.2 197,5190 dB 118,6414 dB error 0 0.4

filtro 1024 coeficientes (=0.0001)


CANCELACIN DEL ECO

filtro 256 coeficientes (=0.001)


CANCELACION DE ECO 0.6 0.4

0.2 117.5519 dB 0

e rro r

-0.2

-0.4

-0.6 0 0.01 0.02 0.03 0.04 tiempo (seg.) 0.05 0.06 0.07

Figura 2.1.4.5 Combinacin de tonos 2 (50, 100, 150 Hz). Error filtro 512 coeficientes (=0.001)
CANCELACION DE ECO 0.1 0.08 0.06 0.1 0.04 0.02 114.9054 dB e rro r 0 -0.02 -0.04 -0.06 -0.08 -0.15 -0.1 0.02 0.04 0.06 0.08 0.1 0.12 tiempo (seg.) 0.14 0.16 0.18 0.01 0.02 0.03 0.04 0.05 tiempo (seg.) 0.06 0.07 0.08 0.09 -0.05 error 0 0.05 122,0456 dB 0.15

Error filtro 1024 coeficientes (=0.0001)


CANCELACIN DEL ECO

-0.1

filtro 256 coeficientes (=0.001)


CANCELACION DE ECO 0.15 0.1 0.05 0 -0.05 -0.1 -0.15 -0.2 -0.25

e rro r

0.02

0.04

0.06 0.08 tiempo (seg.)

0.1

0.12

0.14

Figura 2.1.4.6
Lorenzo Meler Ferraz

56

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Combinacin de tonos 3 (1000, 2000, 3000 Hz). Error filtro 512 coeficientes (=0.001)
CANCELACION DE ECO 1 1

Error filtro 1024 coeficientes (=0.001)


CANCELACIN DE ECO

0.5

0.5 118.8299 dB

e rro r

error

119.9592 dB
0

-0.5

-0.5

-1 -1 0 5 tiempo (seg.) 10 15 x 10
-3

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

tiempo (seg.)

Error filtro 256 coeficientes (=0.005)


CANCELACION DE ECO 1

0.5 e rro r

112.0369 dB 0

-0.5

0.02

0.04

0.06 0.08 tiempo (seg.)

0.1

0.12

0.14

Figura 2.1.4.7 Msica. (=0.01) filtro 512 coeficientes


SEAL DESEADA 0.06 0.04 0.02 0 -0.02 -0.04 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-0.05 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.05 SEAL DESEADA

filtro 1024 coeficientes

SEAL ESTIMADA 0.02

SEAL ESTIMADA

0.01 0

0.02 0.01 0

-0.01
-0.01

-0.02

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

-0.02

0.2

0.4

0.6

0.8

1 tiempo

1.2

1.4

1.6

1.8

Filtro 256 coeficientes


SEAL DESEADA 0.06 0.04 0.02 0 -0.02 -0.04 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

SEAL ESTIMADA 0.02 0.01 0 -0.01 -0.02

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

Figura 2.1.4.8

Lorenzo Meler Ferraz

57

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Voz. (=0.01) filtro 512 coeficientes


SEAL DESEADA 0.4 0.2 0 -0.2 -0.4
0.4 0.2 0 -0.2 -0.4

filtro 1024 coeficientes


SEAL DESEADA

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1
0.2 0.1 0 -0.1 -0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

SEAL ESTIMADA 0.2 0.1 0 -0.1 -0.2

SEAL ESTIMADA

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

filtro 256 coeficientes


SEAL DESEADA 0.4 0.2 0 -0.2 -0.4

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

SEAL ESTIMADA 0.2 0.1 0 -0.1 -0.2

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

Figura 2.1.4.9 Ruido Blanco. Error filtro 512 coeficientes (=0.01)


CANCELACION DE ECO 1.5 0.8 0.6 1 0.4 9,0304 dB 0.5 e rro r e rro r 6.7044 dB 0.2 0 -0.2 -0.4 -0.5 -0.6 -1 -0.8

Error filtro 1024 coeficientes (=0.001)


CANCELACION DE ECO

0.1

0.2

0.3

0.4 0.5 0.6 tiempo (seg.)

0.7

0.8

0.9

0.5

1.5 tiempo (seg.)

2.5

Error filtro 256 coeficientes (=0.01)


CANCELACION DE ECO 0.8 0.6 0.4 0.2 e rro r 0 -0.2 -0.4 -0.6 -0.8

9.7385 dB

0.1

0.2

0.3

0.4 0.5 0.6 tiempo (seg.)

0.7

0.8

0.9

Figura 2.1.4.10

Lorenzo Meler Ferraz

58

ALGORITMOS LMS EN EL DOMINIO TEMPORAL CONCLUSINES: Despus de observar todas estas figuras, comparndolas unas con otras, se puede aventurar a dar algunas conclusiones sobre la utilizacin de un filtro con mas o menos coeficientes.

Habr que diferenciar entre las seales peridicas (los tonos y combinacin de tonos) y las que no lo son (el ruido blanco, la voz y la msica) ya que el comportamiento es totalmente diferente. En las seales peridicas, la gran diferencia entre usar un filtro y otro es el tiempo que tarda en alcanzar su valor mximo de cancelacin, siendo este tiempo mayor cuanto menor nmero de coeficientes posee el filtro. Excepto en el caso de una tono de baja frecuencia, donde el tiempo de cancelacin es menor para el uso de un filtro de 216 coeficientes que para el de 512. En el resto de seales no se puede apreciar una clara diferencia, a no ser que lo se sepa a priori, entre el uso de un filtro u otro, ya que la cancelacin no es excesivamente buena con ninguno. La conclusin en este caso es que para este tipo de seales sera mejor usar algoritmos diferentes, como los que se van a ver en captulos posteriores. La ltima conclusin a la que llegamos con la simple observacin es que lo nico en lo que se gana con filtros con ms coeficientes es en una mayor rapidez en la cancelacin del error y nicamente en seales peridicas; mientras que el nivel de cancelacin es similar se use el filtro que se use; esto se puede comprobar dando ms tiempo de funcionamiento, es decir computando ms muestras de la seal de entrada. Para las seales que hasta ahora ms haba costado cancelar, me refiero a la msica y a la voz, se ve una pequea mejora cuantos ms coeficientes tiene nuestro filtro. Si se observa la seal de ruido, parecer a primera vista que la mejor cancelacin se hace con el filtro de 256, y es correcto, sencillamente porque debido a que se usa un filtro con tan pocos coeficientes, permite utilizar un factor de convergencia mas alto, consiguiendo de este modo una reduccin del error mucho ms rpida que con el resto de filtros. Para el filtro de 512 coeficientes el valor de esta constante es la misma que en el caso del filtro con menos coeficientes y se puede observar como la potencia del error toma valores de 3dB. por encima del anterior. Si el tiempo de anlisis hubiera sido bastante

Lorenzo Meler Ferraz

59

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

mayor, los resultados obtenidos para el de 512 seran mejores, y los de 1024 hubieran cancelado ms an debido a la tan pequea. Con los filtros de menos coeficientes se obtiene una peor estimacin de la respuesta real. Se pueden usar valores del factor de convergencia mayores que con filtros con un mayor nmero de coeficientes. Aunque el algoritmo tarde un poco ms en convergir con los filtros grandes, a veces no es necesario un tiempo tan corto, y ms una precisin ms exacta.

DATOS:
TONOS 150 Hz. 1000 Hz. 0.04 0.003 0.2 0.16 122.7569 121.6057 0.005 0.005 118.0803 117.8995

TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.)

1024 512 256 1024 512 256

50 Hz. 0.3 0.9 0.06 121.2696 32.9802 27.6755 COMB. 1 0.03 0.02 0.01 118.6414 197.5190 117.5519 VOZ -------------

3000 Hz. 0.003 0.004 0.001 118.2809

1024 512 256 1024 512 256

121.6061 117.9178 COMBINACIN DE TONOS COMB. 2 0.04 0.16 0.08 122.0456 114.9054

COMB. 3 0.03 0.005 0.8 119.9592 118.8299

1024 512 256 1024 512 256

--112.0369 SEALES NO PERIDICAS MSICA RUIDO --------------0.9 0.5 9.0304 6.7044 9.7385

Lorenzo Meler Ferraz

60

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.5.- clculo del nmero de multiplicaciones y sumas en funcin del tamao del filtro.
Si se quiere calcular el nmero de multiplicaciones y sumas que se deben hacer segn el tamao del filtro, es necesario saber, lo primero, cuantas convoluciones se van a realizar y que conlleva cada convolucin. Una convolucin consta de: - Tantos productos como coeficientes tiene el filtro. - Tantas sumas como coeficientes tiene el filtro menos una. Para saber todas estas operaciones nos fijaremos en las instrucciones que aparecen en el apartado 1 de este mismo tema, donde aparecen todas las operaciones que nuestro algoritmo, y en definitiva nuestro programa, realiza. La primera operacin es una convolucin, entre la seal de entrada x y el filtro real h. Por lo tanto por ahora habr N productos y N-1 sumas (siendo N el tamao del filtro h). Hay que tener en cuenta que estas operaciones, en la implementacin real, nos aparecern, ya que se tendr acceso a esta seal directamente y se la podr muestrear en vez de calcularla. Si se sigue mirando el cuadro de instrucciones se ve que la segunda operacin es otra convolucin, entre la misma seal de entrada x y el filtro estimado he, consiguiendo con ello la seal estimada. El filtro estimado se ha supuesto de la misma anchura (con el mismo nmero de coeficientes) que el filtro real, as pues, se vuele a tener el mismo nmero de productos y sumas que en la primera operacin. N productos y N-1 sumas. La tercera operacin es una simple suma (o resta), entre la seal deseada (y), calculada en la primera operacin y la seal estimada (ye), con lo que da un error. Esta suma es de dos nmeros escalares, as que slo se contar como una. En el cuadro de instrucciones se tiene luego como, cuarta operacin, es la adaptacin del filtro estimado (LMS), donde hay dos multiplicaciones y una suma. Pero esto, se puede reducir un poco, ya que una de las multiplicaciones es de dos constantes escalares. De esta forma, haciendo la multiplicacin fuera del LMS, dentro de este bucle slo quedar una multiplicacin y una suma (es decir, igual que en las operaciones anteriores, una multiplicacin y una suma por cada coeficiente que tenga el filtro).
Lorenzo Meler Ferraz

61

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

La quinta operacin ser la multiplicacin que se ha sacado antes del bucle anterior (en el cdigo de MATLAB se puede ver que lo se ha sacado llamando a la multiplicacin e*=fi). As pues, a continuacin se pone un ejemplo comparando un filtro de 1024 coeficientes y otro de 512, y se ver la diferencia del nmero de operaciones entre una y otra.
Filtro de anchura 1024: Sumas

Primera op. Segunda op. Tercera op. Cuarta op. Quinta op. total

- 1023 - 1023 - 1024 - 1 3071


Tabla 2.1.5.1

Productos - 1024 - 1024 - 1 - 1024 3073

Filtro de anchura 512: Sumas

Primera op. Segunda op. Tercera op. Cuarta op. Quinta op. total

10231 511 512 1 2047

Productos

10241 512 1 512


2049

Tabal 2.1.5.2

La diferencia de operaciones es de casi un tercio ms para el filtro de 1024 coeficientes, tanto de sumas como de productos. Por lo tanto el tiempo de resolucin de cada muestra ser bastante menor en el filtro de anchura ms pequeo (como era de esperar). La desventaja radica en que la informacin del sistema es menor, y por tanto las soluciones no sern tan reales como en el caso del filtro mayor.

1.este valor es invariable, no depende del filtro estimado que se use, ya que depende del filtro real que en un principio es siempre el mismo

Lorenzo Meler Ferraz

62

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.6.- cdigo en MATLAB del algoritmo LMS en el dominio del tiempo.


Programa principal.lmstiempo.m clear; k=16000;%Para el numero de iteraciones, para calcu disp('elige entre todas estas seales:') disp('a-->voz') disp('b-->coseno') disp('c-->ruido blanco') disp('d-->varios tonos') disp('e-->musica') load camino.mat load seales.mat func=input('la eleccion es: ','s'); n=0:1/8000:5; if func=='a' func=wavread('Aleman.wav'); [ysalida,et,ye]=func_lmstiempo(func); elseif func=='b' func=cos(2*pi*50*n); [ysalida,et,ye]=func_lmstiempo(func); elseif func=='c' func=rand(1,40000); [ysalida,et,ye]=func_lmstiempo(func); elseif func=='d' func=(sin(2*pi*1000*n)+sin(2*pi*2000*n)+cos(2*pi*30 00*n)); [ysalida,et,ye]=func_lmstiempo(func); elseif func=='e' func=2*musica'; [ysalida,et,ye]=func_lmstiempo(func); else disp('ha introducido una funcion no valida'); end for m=1:k t(m)=m/8000; end; for m=1:k e_db(m)=20*log10(abs(et(m)/ysalida(m))); end; figure; subplot(2,1,1),plot(t,ysalida,'k'); title('SEAL DESEADA'); axis('auto'); subplot(2,1,2),plot(t,ye,'k'); title('SEAL ESTIMADA'); xlabel('tiempo'); figure; subplot(2,1,1),plot(t,et,'k'); title('CANCELACION DE ECO');
Lorenzo Meler Ferraz

63

ALGORITMOS LMS EN EL DOMINIO TEMPORAL ylabel('error'); subplot(2,1,2),plot(t,e_db,'r'); title('ERROR CALCULADO EN dBs'); xlabel('tiempo'); ylabel('dBs');

func_lmstiempo.m

function[ysalida,et,ye]=proyecto_20(func) k=16000; for m=1:1024%inicializamos el valor de x x(1025-m)=func(m); end he=zeros(1,1024); load camino.mat load seales.mat mu=input('introduce el valor de mu (aconsejable 0.001): '); vector_h=input('elige la "h" del sistema (1,2 o 3): '); if vector_h==1 hr=load('h1_a.txt'); hr=hr';%trasponemos la matriz porque el archivo .txt es una columna elseif vector_h==2 hr=load('h2_a.txt'); hr=hr';%trasponemos la matriz porque el archivo .txt es una columna elseif vector_h==3 hr=h_real; else disp('no existe este archivo'); end for ii=1:k%para el tiempo %movemos el vector x hacia la derecha for i=1:1023 z(i+1)=x(i); end z(1)=func(ii+1024); x=z; %calculamos la y, haciendo la convolucion y=0; for i=1:1024

Lorenzo Meler Ferraz

64

ALGORITMOS LMS EN EL DOMINIO TEMPORAL y1=hr(i)*x(i); y=y1+y; end ysalida(ii)=y; e1=0; for i=1:1024 e2=x(i)*he(i); e1=e2+e1; end ye(ii)=e1; %ahora si que calculamos el error e=y-e1; fi=mu*e; for j=1:1024 he(j)=he(j)+(x(j)*fi); %actualizamos la h estimada, con este 1025, lo que conseguimos es %darle la vuelta al vector x, aqui es donde no se si es necesario %darle la vuelta. %he probado tambin a darle la vuelta a he y no a x y el resultado es el mismo. end et(ii)=e; end

Lorenzo Meler Ferraz

65

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.-ALGORITMO NLMS (LMS NORMALIZADO) 2.2.1.- introduccin.


El algoritmo NLMS no es mas que el LMS en el dominio del tiempo pero normalizado. Es decir, el factor de convergencia , dependiente de la potencia de la seal. Esta potencia depender mucho de la cantidad de coeficientes que se cojan, cuantos ms coeficientes, ms cerca se estar de la potencia real de la seal (en nuestro caso cogeremos los 1024 ltimos coeficientes de la seal de entrada). En este apartado, se vern cuales son los mejores valores de y otras constantes, segn el tipo de seal; se vern tambin las diferencias con el algoritmo LMS y sus ventajas y desventajas. Adelantando una de las caractersticas que se podr ver en este apartado, decir que este algoritmo resulta especialmente eficiente para seales como voz y msica. Todo el anlisis que se har en el apartado 2 (los resultados obtenidos), se han conseguido nicamente estimando un filtro de 1024 coeficientes. No se ha llegado a analizar para otros tamaos de filtro. Se comparan dos algoritmos muy similares, en lo que a programacin se refiere, pero muy diferentes cuando se ven los resultados que obtiene cada uno de ellos; adems de introducir mejoras y variantes. El algoritmo LMS Normalizado tiene por objetivo independizar la convergencia de la potencia de la seal de entrada. Es, por ello, ms robusto que el algoritmo LMS. En el algoritmo LMS, la correccin aplicada al vector de pesos h(n) es proporcional al vector de entrada x(n). Por tanto, si x(n) es elevado, el algoritmo LMS experimenta un problema de amplificacin de ruido de gradiente. Con la normalizacin del parmetro de convergencia , este problema se reduce, de igual manera que se evita una subida desmesurada de la correccin al vector h(n) cuando la entrada disminuye drsticamente. En definitiva, en este algoritmo, el factor de convergencia est definido por la energa de la seal de entrada x(n):

Lorenzo Meler Ferraz

66

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

NLMS =

x xn +
H n

ec. 2.2.1.1

donde es normalmente 1/2 y es un nmero muy pequeo, introducido en la ecuacin para prevenir una posible divisin por cero si x llega a ser un nmero muy pequeo o cero.

Lorenzo Meler Ferraz

67

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.2.- diagrama de bloques e instrucciones


Como se ha dicho en el apartado 2.2.1, la similitud entre el algoritmo LMS y NLMS, se puede ver grficamente en la figura 2.2.2.1, donde se ha introducido una serie de operaciones con la seal de entrada para poder calcular su potencia. Intuitivamente se puede ver como el nmero de operaciones es mayor.
DIAGRAMA DE BLOQUES
aadir y dar la vuleta

*
ABS
DELAY

viejo

he
^2

x
y

e
+

*
h

Figura 2.2.2.1

Lorenzo Meler Ferraz

68

ALGORITMOS LMS EN EL DOMINIO TEMPORAL INSTRUCCIONES.

INICIALIZACIN he=[00] %anchura del vector N func seal de entrada al sistema x(m)=func(m) los N primeros valores de la seal muestreada se introducen en x. PARA CALCULAR UN VALOR DE LA SEAL DE SALIDA - Toma una nueva muestra xn(m+1)= xn(m) xn(1)= func(m+n) - Calcula la seal deseada dn = yn(m)*hn(m) - Calcula la seal estimada yn = xn(m)*hen(m) - Clculo del error en = dn - yn - Clculo del factor de amortiguamiento segn la potencia de la seal n=/(Pn+) Pn= - LMS hen+1 = hen(m)+exn(m)
figura 2.2.2.2
N

x(i)

i =1

Lorenzo Meler Ferraz

69

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.3.- dependiente de la potencia de la seal.


Tanto el diagrama de bloques como las instrucciones, son las mismas que para el algoritmo LMS en el dominio del tiempo. La nica diferencia, como ya se ha adelantado en la introduccin, es el valor del factor de convergencia, que en este caso no ser una constante en el tiempo, sino que depender de la potencia de la seal. Para hallar la potencia de la seal, cuando se habla de seales muestreadas, se hace de la manera que indica la ecuacin 2.2.3.1.
X1 X 2 X 3 2 2 2 2 [ X 1 X 2 X 3 L X N 1 X N ] = X 1 + X 2 + X 3 + L + X N 1 + X N M X N 1 X N

= Xi
i =1

=P

Ec. 2.2.3.1

As pues, el valor resultante, ser un nmero escalar, al que le denominar con la letra P (potencia de la seal de entrada). En este caso, no slo necesitaremos una constante, sino que se optar por dos, a las que llamaremos y . Con todo esto ya se puede definir con la siguiente ecuacin con la ecuacin 2.2.3.2:

X
i =1

ec. 2.2.3.2
2

donde 0<<1 y ser un valor muy pequeo, que casi no intervenga en la ecuacin, utilizado exclusivamente para cuando algn instante la potencia de la seal es cero y entonces no se produzca un error de divisin por cero. Esta ecuacin proporciona la ventaja de que a las seales que tienen mucha potencia les hace descender su error lentamente y a las que tienen poco les produce el efecto contrario. Esto beneficia a la convergencia del error, ya que a la seal dbil se le ayuda y a la fuerte se le retiene, consiguiendo as un amortiguamiento equitativo

Lorenzo Meler Ferraz

70

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

en cualquier instante de la seal, independizando de esta forma el factor de la potencia de la seal.

Lorenzo Meler Ferraz

71

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.4.- resultados obtenidos (mejores valores de )


Despus de realizar varias pruebas dando diferentes valores a , aqu slo se representarn los resultados ms ptimos (una nica ). El valor de dejar siempre constante, siendo ste en todos los caso igual a 0.001, valor suficientemente pequeo como para que no intervenga en el resultado final de , pero pueda salvar a los clculos de una posible divisin por cero (y su correspondiente fallo de computacin) en el caso de que la seal de entrada x, sea demasiado pequea. Las seales que se han utilizado son las mismas que para el algoritmo LMS: tonos a 50, 150, 1000 y 3000 los cuatro tonos anteriores juntos. Los tonos 50, 100 y 150 juntos. Tonos 1000, 2000 y 3000 Msica. Voz. Ruido blanco.

El anlisis se realizar para una seal de 1 seg. es decir 8000 muestras de la seal de entrada.
Tono 50 Hz. (=0.1)
5 4.5 4 3.5 3 e rro r 2.5 2 1.5 1 0.5 0 0.1 0.2 0.3 0.4 tiempo (seg.) 0.5 0.6 64.4514 dB x 10
-4

CANCELACION DE ECO

Figura 2.2.4.1

Lorenzo Meler Ferraz

72

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 150 Hz. (=0.5)


x 10 10 9 8 7 e rro r 6 5 4 3 2 1 123.3941 dB 0 0.01 0.015 0.02 0.025 0.03 0.035 0.04 tiempo (seg.) 0.045 0.05 0.055 0.06
-3

CANCELACION DE ECO

Figura 2.2.4.2 Tono 1000 Hz (=0.9)


CANCELACION DE ECO

0.2 0.18 0.16 0.14 e rro r 0.12 0.1 0.08 0.06 0.04 0.02 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10
-3

117.6279 dB

Figura 2.2.4.3

Lorenzo Meler Ferraz

73

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 3000 Hz (=0.9)


CANCELACION DE ECO 0.4 0.3 0.2 0.1 e rro r 0 -0.1 -0.2 -0.3 0.5 1 1.5 2 2.5 3 3.5 tiempo (seg.) 4 4.5 5 5.5 x 10
-3

118.8284 dB

Figura 2.2.4.4 Combinacin de tonos 1 (50, 150, 1000 y 3000 Hz). (=0.9)

CANCELACIN DE ECO 0.6

0.4

0.2 115.9506 dB error 0 -0.2

-0.4

-0.6

-0.8 0 0.02 0.04 0.06 tiempo (seg.) 0.08 0.1 0.12

Figura 2.2.4.5

Lorenzo Meler Ferraz

74

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 2 (50, 100, 150 Hz). (=0.1)


CANCELACIN DE ECO 0.2 0.15 0.1 0.05 122.1603 dB error 0

-0.05 -0.1 -0.15 -0.2 0 0.01 0.02 0.03 0.04 0.05 0.06 tiempo (seg.) 0.07 0.08 0.09 0.1

Figura 2.2.4.6 Combinacin de tonos 3 (1000, 2000, 3000 Hz). (=0.9)

CANCELACION DE ECO

0.5 118.5567 dB 0

e rro r

-0.5

-1 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10
-3

Figura 2.2.4.7

Lorenzo Meler Ferraz

75

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Msica. (=1)
CANCELACION DE ECO 0.025 0.02 0.015 0.01 0.005 0 -0.005 -0.01 -0.015 -0.02 8.7524 dB

error

0.1

0.2

0.3

0.4 0.5 0.6 tiempo (seg.)

0.7

0.8

0.9

Figura 2.2.4.8 Voz. (=1)


CANCELACION DE ECO 0.3

0.2

0.1

4.8445 dB

0 error -0.1 -0.2 -0.3 -0.4

0.1

0.2

0.3

0.4 0.5 0.6 tiempo (seg.)

0.7

0.8

0.9

Figura 2.2.4.8

Lorenzo Meler Ferraz

76

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Ruido Blanco. (=0.9)


CANCELACION DE ECO 1 0.8 0.6 0.4 0.2 error 0 -0.2 -0.4 -0.6 -0.8 -1 9.5796 dB

0.5 tiempo (seg.)

1.5

Figura 2.2.4.10 CONCLUSIN: Observando el apartado de las seales peridicas, se ve como la cancelacin de seales con mayor frecuencia es ms rpida que las que tienen una frecuencia menor.

Segn las frecuencias de estas seales, tambin se ve necesario un cambio en el valor de , siendo ste un valor mayor cuanto mas alta es esta frecuencia (esto se aplica tanto a tonos sueltos como a su combinacin). Las seales que no poseen ningn tipo de periodo1, tambin necesitan un valor de esta constante an mayor que las seales anteriormente mencionadas. En este caso se ha decidido representar el error lineal para estas dos seales ya que ahora si que se puede apreciar una cierta cancelacin como muestra la figura.
1.- esto no es totalmente cierto ya que todas las seales se pueden descomponer en suma de seales peridicas

Lorenzo Meler Ferraz

77

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Esto se debe, claro est, a la normalizacin segn la potencia de la seal. Quizs la reduccin no sea tan grande como para otras seales, pero si que se ha demostrado que hay cierta cancelacin. Esta conclusin se ve ms clara en la msica que en la voz si se observa el valor en dB. de la cancelacin. En el anlisis de la seal de ruido se ve perfectamente como el error va disminuyendo, tomando valores de incluso diez veces menos al cabo de un segundo y medio, y casi 10dB.
DATOS:
50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 0.6 150Hz. 0.045 TONOS 1000Hz. 0.002 3000Hz. 0.002

64.4514

123.3941

117.6279

118.8284

COMB. 1 0.06

COMBINACIN DE TONOS COMB. 2 0.05

COMB. 3 0.003

115.9506

122.1603 SEALES NO PERIDICAS MSICA ---

118.5567

VOZ ---

RUIDO ---

4.8445 (tras 1 seg.)

8.7524 (tras 1 seg.)

9.5796 (tras 1.5 seg.)

Tabla 2.2.4.1

Lorenzo Meler Ferraz

78

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.5.- comparacin de resultados LMS vs. NLMS (diferencias, ventajas e inconvenientes).


Los datos que se presentan a continuacin estn obtenidos a partir de aquellas constantes (factor de convergencia, y ) que mejores resultados han dado para cada uno de los algoritmos. No se entra a valorar la igualdad de estas constantes en cada uno de los algoritmos, porque para cada uno se usan de una forma u otra, o incluso no se usan (como el valor de , nicamente utilizado en el algoritmo NLMS). As, con esto, se asume que los resultados aqu expuestos son los ms ptimos conseguidos tras este estudio.

Tono 50 Hz. NLMS


5 4.5 4 6 3.5 3 e rro r 2.5 2 3 1.5 1 0.5 0 0.1 0.2 0.3 0.4 tiempo (seg.) 0.5 0.6 64.4514 dB 2 1 0 0.1 0.2 0.3 0.4 0.5 0.6 tiempo (seg.) 0.7 0.8 0.9 e rro r 5 4 x 10
-4

LMS
x 10
-4

CANCELACION DE ECO

CANCELACION DE ECO

121,2696 dB

Figura 2.2.5.1

Lorenzo Meler Ferraz

79

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 150 Hz NLMS


x 10 10 9 8 7 0.015 e rro r 6 5 4 3 2 1 123.3941 dB 0 0.01 0.015 0.02 0.025 0.03 0.035 0.04 tiempo (seg.) 0.045 0.05 0.055 0.06 0 0.02 0.04 0.06 0.08 tiemo (seg.) 0.1 0.12 0.14 0.005 122,7569 dB error 0.01 0.02
-3

LMS
CANCELACIN DEL ECO 0.025

CANCELACION DE ECO

Figura 2.2.5.2

Tono 1000 Hz NLMS


CANCELACION DE ECO 0.16 0.2 0.18 0.16 0.14 0.08 e rro r e rro r 0.12 0.1 0.08 0.06 0.04 0.02 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10
-3

LMS
CANCELACION DE ECO 0.14 0.12 0.1

0.06 0.04 0.02 0 118,0803 dB

117.6279 dB

-0.02 -0.04 1 2 3 4 5 6 tiempo (seg.) 7 8 9 x 10 10


-3

Figura 2.2.5.3

Lorenzo Meler Ferraz

80

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 3000 Hz NLMS


CANCELACION DE ECO 0.4 0.3 0.2 0.1 0 -0.1 -0.1 -0.2 -0.3 0.5 1 1.5 2 2.5 3 3.5 tiempo (seg.) 4 4.5 5 5.5 x 10
-3

LMS
CANCELACION DE ECO 0.4 0.3 0.2 0.1

e rro r

e rro r

118.8284 dB

118,2809 dB 0

-0.2 -0.3 -0.4 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10


-3

Figura 2.2.5.4

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). NLMS


CANCELACIN DE ECO 0.6 0.6 0.4 0.4

LMS
CANCELACIN DEL ECO

0.2 115.9506 dB error 0 -0.2

0.2 118,6414 dB error 0

-0.2 -0.4 -0.4

-0.6

-0.8 0 0.02 0.04 0.06 tiempo (seg.) 0.08 0.1 0.12

-0.6 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 tiempo (seg.)

Figura 2.2.5.5

Lorenzo Meler Ferraz

81

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 2 (50, 100, 150 Hz). NLMS


CANCELACIN DE ECO 0.2 0.15 0.15 0.1 0.1 0.05 122.1603 dB error 0 error 0 0.05 122,0456 dB

LMS
CANCELACIN DEL ECO

-0.05 -0.1

-0.05

-0.1 -0.15 -0.2 0 0.01 0.02 0.03 0.04 0.05 0.06 tiempo (seg.) 0.07 0.08 0.09 0.1 -0.15 0.01 0.02 0.03 0.04 0.05 tiempo (seg.) 0.06 0.07 0.08 0.09

Figura 2.2.5.6

Combinacin de tonos 3 (1000, 2000, 3000 Hz).

NLMS
CANCELACION DE ECO

LMS
CANCELACIN DE ECO

0.5 118.5567 dB 0 error

0.5

e rro r

119.9592 dB
0

-0.5

-0.5

-1 -1 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10
-3

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

tiempo (seg.)

Figura 2.2.5.7

Lorenzo Meler Ferraz

82

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Msica.

NLMS
SEAL DESEADA 0.06 0.04 0.02 0 0 -0.02 -0.04 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -0.05 0 0.2 0.4 0.6 0.8 0.05

LMS
SEAL DESEADA

1.2

1.4

1.6

1.8

SEAL ESTIMADA 0.04 0.02 0 -0.02 -0.04 0.02 0.01 0 -0.01 -0.02

SEAL ESTIMADA

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

0.2

0.4

0.6

0.8

1 tiempo

1.2

1.4

1.6

1.8

Figura 2.2.5.8

Voz.

NLMS
SEAL DESEADA 0.4 0.2 0 -0.2 -0.4 0.4 0.2 0 -0.2 -0.4

LMS
SEAL DESEADA

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

SEAL ESTIMADA 0.4 0.2 0 -0.2 -0.4 0.2 0.1 0 -0.1 -0.2

SEAL ESTIMADA

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

0.1

0.2

0.3

0.4

0.5 tiempo

0.6

0.7

0.8

0.9

Figura 2.2.5.9

Lorenzo Meler Ferraz

83

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Ruido Blanco. NLMS


1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

LMS
0.8 0.7 0.6 0.5 0.4 0.3
9.5796 dB 9.0304 dB

0.2 0.1

0.5

1.5

Figura 2.2.5.10

CONCLUSIONES: Las conclusiones son claras: -SEALES PERIDICAS. Se puede observar una pequea diferencia entre las seales de muy baja frecuencia (un nico tono), en las que la cancelacin del eco se hace mejor con el LMS normal, que con el NLMS.

A medida que se va aumentando esta frecuencia, las diferencias se van haciendo mnimas, consiguiendo un tiempo de cancelacin y nivel de la potencia del error muy similar. Cuando la seal es una combinacin de tonos, con una diferencia bastante grande entre los mismos, la solucin ms ptima, parece ser el NLMS, sin embargo, cuando los tonos no estn muy separados, el algoritmo que mejor tiempo de cancelacin final tiene es el LMS. Para todas estas seales peridicas, el nivel de cancelacin final es el mismo, se use el algoritmo que se use. -SEALES NO PERIDICAS. Cuando se analizan estas seales por separado, en el primer algoritmo (LMS), se ha utilizado la representacin de colocar la seal deseada junto con la estimada y se compara una con otra. En el siguiente algoritmo (NLMS), se quiso exponer la figura que mostrara el error lineal para demostrar que se haba conseguido una mejora. Debido a esto, ahora resulta complicado comparar entre las dos algo
Lorenzo Meler Ferraz

84

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

tan obvio como la mejora sufrida gracias a este ltimo algoritmo. Por ello se decidi colocar la representacin de las dos seales (deseada y estimada), como en el primer algoritmo, y a partir de ah hacer una comparacin de las mejoras vistas en estas figuras 2.2.5.8 y 2.2.5.9. El comportamiento, o las diferencias que se tienen, en seales no peridicas, es diferente con respecto a las seales de entrada analizadas en los guiones anteriores. La mejora de la cancelacin es substancial al utilizar este algoritmo. Se observa la primera de estas seales msica; as como con el algoritmo LMS normal no se llega a una cancelacin clara y las seales comparadas tardaban mucho en llegar a parecerse (si se considera similitud lo que ocurre al final del tiempo analizado), ahora el tiempo analizado corresponde a un nico segundo, porque se considera que con este tiempo se puede decir que el parecido es bastante claro, aunque la amplitud de la seal estimada sea un poco inferior a la de la deseada. La voz es quizs la seal ms problemtica surgida a la hora de analizar en el anterior algoritmo, debido a su poca cancelacin. En este caso, la reduccin del error tampoco es el ms deseado, ya que no se llegan a niveles de cancelacin esperados. Pero sin duda se ha conseguido una mejora fundamental. Analizando un nico segundo ya se puede ver claramente la mejora, ya que la amplitud conseguida con el algoritmo actual es bastante parecida a la seal deseada; en cambio, con el LMS normal slo se cosigue alcanzar una amplitud de la mitad de la seal estimada, por lo tanto el error se puede adivinar que tendr una figura bastante parecida a la seal estimada. As, la suma del error y la seal estimada dar como resultado el valor de la seal deseada. Cuando se analiza el ruido blanco, se ve como la mayor diferencia radica en el tiempo de cancelacin. Es la nica seal no peridica que no se observan grandes diferencias en el nivel final de cancelacin y s en el tiempo que tarda en conseguir una seal de error final aceptable. Se ve claramente que se cancela mucho mejor con el NLMS. Con todo esto, se puede concluir que para este tipo de seales, se consigue una cancelacin ms clara del error, un nivel ms bajo en la potencia de ste. En lo que se refiere al tiempo de cancelacin, el tiempo final de reduccin de error se mejora tambin con este ltimo algoritmo.

Lorenzo Meler Ferraz

85

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

El nmero de operaciones utilizado en este algoritmo aumenta con respecto al LMS normal, como se ver en el siguiente captulo. Estas operaciones extras a realizar, cuando se aplica el LMS normalizado, son N multiplicaciones y N-1 sumas, adems de una suma ms y una divisin. El NLMS, por lo general, converge mucho ms rpido que el LMS con un nmero de operaciones extra muy pequeo, por eso el NLMS es ms usado. Se concluye pues, que para las seales con mayor dispersin espectral es mejor utilizar el algoritmo normalizado.
DATOS:
TONOS 150 Hz. 1000 Hz. 0.05 0.05 123.7569 123.3941 0.003 0.002 118.0803 117.6279

50 Hz. TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) LMS NLMS LMS NLMS 0.3 0.7 121.2696 64.4514 COMB. 1 LMS NLMS LMS NLMS 0.03 0.02 118.6414 115.9506 VOZ LMS NLMS LMS NLMS ---------

3000 Hz. 0.003 0.002 118.2809 118.8284 COMB. 3 0.03 0.003 119.9592 118.5567 RUIDO ------

COMBINACIN DE TONOS COMB. 2 0.04 0.05 122.0456 122.1603 SEALES NO PERIDICAS MSICA ---------

9.0304 (tras 3 seg.) 0.5796 (tras 1.5 seg.)

Tabla 2.2.5.1

Lorenzo Meler Ferraz

86

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.6.- cdigo del programa.


Lo nico cuatro lneas, de la seal y multiplica por que hay que aadir en el cdigo son estas donde en el bucle for se calcula la potencia fuera de l se invierte esta potencia y se la constante .

El comentario (tras el smbolo %), indica una posible forma de calcular alfa sin tener que darle un valor constante, dependiendo de la varianza de la seal de entrada x. De momento esto ltimo no se va a realizar, debido a que la varianza no es una operacin sencilla (suma o multiplicacin) que se puede implementar luego fcilmente en un DSP.
for i=1:1024 p=p+(abs(x(i)))^2; end %alfa=0.95*2/(5*(0.001+var(x))); mu=alfa/(p+sigma);

Lorenzo Meler Ferraz

87

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.-ALGORITMO BLMS (BLOCK LMS): 2.3.1.- introduccin


El algoritmo BLMS (block least mean-square) es una generalizacin del LMS. El trabajar as har una idea de cmo ser el futuro trabajo en la frecuencia; se puede considerar, por lo tanto, que es un puente entre el dominio del tiempo y el de la frecuencia. Entender este algoritmo resulta un poco ms complicado que los anteriores, ya que ahora se actualiza cada S muestras y no cada una como ocurra en anteriores algoritmos. Por lo tanto, para cada actualizacin se obtendrn S salidas y S errores. En algoritmos anteriores se introduca una muestra y se realizaban todas las operaciones necesarias para lograr el objetivo final (la cancelacin), pero ahora no se coge una nica muestra, sino un bloque de ellas. La dificultad radica en que ahora se tiene que trabajar con bloques, no solo hay un vector sino que hay varios con coeficientes diferentes. Para clarificar la comprensin de este algoritmo, srvale siguiente ejemplo, escenificado en la figura 2.3.1.1, donde la seal de entrada est representada en gris oscuro y los vectores con los que se va a trabajar en gris claro (estos vectores estn compuestos por muestras de la seal de entrada). El nmero de coeficientes que posee cada uno de estos vectores es de N+S-1=8+4-1=11. En la figura nombrada aparecen vector viejo y vector nuevo. Estos dos vectores estn relacionados entre si en que el nuevo posee N-S coeficientes iguales que el viejo (los N-S ms nuevos del viejo, que pasarn ahora a formar parte de los coeficientes ms antiguos del vector nuevo). Lo primero que hay que hacer es definir un vector que tenga tantos coeficientes como el filtro al que se le sumarn un nmero (aconsejable mltiplo de dos para su posterior adaptacin a la realizacin de FFT en base 2). Este vector lo se rellenar con muestras provenientes de la seal de entrada. Una vez obtenido este vector, el modo de operacin ser el mismo que hasta ahora, pero con algunas pequeas diferencias. Cada vector con el que se va a trabajar tiene un nmero de muestras igual al nmero de coeficientes que tiene el filtro por el que tiene que pasar, ms cuatro muestras (en este caso hemos cogido este nmero, al que llamaremos S). Para poder convolucionar un vector de este
Lorenzo Meler Ferraz

88

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

tamao con un filtro que posee un tamao menor, se deben ir cogiendo subvectores que posean el tamao de este ltimo (como se muestra en la figura 2.3.1.1 donde los vectores grises estn compuestos por ocho muestras, el mismo nmero de coeficientes que nuestro filtro). As pues, se podra decir que en realidad es como si se tuvieran cuatro vectores diferentes para cada intervalo de tiempo, compuesto cada uno por ocho muestras de la seal de entrada, conformando al final un total de 11 muestras. Una vez aclarado que se est trabajando con varios vectores a la vez (aunque algunos coeficientes de estos coincidan, se vern diferentes para una mayor claridad), al llegar en el algoritmo a la ecuacin del LMS, surge el problema de cmo utilizar el vector de entrada de N+S-1 coeficientes. El procedimiento para solucionar esto es el siguiente: El error (e) obtenido para el primer vector de entrada (que ser un escalar), se multiplica por este vector. Esto dar otro vector de N coeficientes.

muestra ms nueva

muestra mas vieja

seal de entrada x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11

muestras antiguas

vector viejo x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 vector nuevo vector muestras viejas muestras nuevas

vector muestras nueva

figura 2.3.1.1

Lorenzo Meler Ferraz

89

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Esto se hace para cada uno de los vectores de entrada, en nuestro caso 4, con lo cual se tendrn cuatro vectores de N coeficientes. El siguiente paso consiste en sumar coeficiente a coeficiente de los vectores resultantes y cada uno de ellos multiplicarlos por el factor de convergencia . Despus de todo esto y por ltimo, se dividir cada uno de los coeficientes por cuatro, y ya se habr obtenido el vector que se deseaba. Visto con ecuaciones queda de la siguiente manera: Se necesitan generar S salidas
y F y F -1 M y F S + 1 VIEJA
NUEVA

ec. 2.3.1.1

donde F=kS, siendo k un nmero entero. El clculo de estas salidas se realiza como en la ec. 2.3.1.2 y F S + 1 = xF S + 1* h y F S = xF S * h

donde donde

xF S + 1 = [xF S + 1, xF S,, xF S + 1 N ] xF S = [xF S, xF S 1,, xF S N ] : : :

y F = xF * h

donde xF = [xF, xF 1,, xF N ]


ec. 2.3.1.2

En la ecuacin 2.3.1.3 aparece como calcular el error (que en este caso ser un vector de S coeficientes)

Lorenzo Meler Ferraz

90

ALGORITMOS LMS EN EL DOMINIO TEMPORAL


eF d F y F e d y F 1 = F 1 F 1 M M M eF S + 1 d F S + 1 y F S + 1

ec. 2.3.1.3

Una vez que ya se ha obtenido el vector de error, solo queda actualizar el filtro (h), como se muestra en las ecuaciones 2.3.1.4.
eF x F + h (F 1) = h (F) eF 1 x F 1 + h (F 2) = h (F 1) : :

eF S + 1 xF S + 1 + h (F S + 1) = h (F S + 2)
ec. 2.3.1.4

Pero como muestra la ecuacin 2.3.1.4 se consiguen S vectores del filtro y slo se quiere uno, as que hay que hacer el promedio que se nombraba anteriormente, como se muestra en la ecuacin 2.3.1.5 y as se obtendr un nico vector del filtro, que ser el que se utilice en la siguiente iteracin, ya que se obtiene
h (F + S) a partir de h (F).
h (n + S) = h (n) +

+ eF S + 2 x xF S + 2 + L + eF xF ec. F S +1 F S +1 S 2.3.1.5

Este algoritmo tiene la ventaja de jugar con datos ya pasados, es decir, se dispone de informacin de la seal en tiempos anteriores. El problema est en que mientras se analizan estas S muestras nuevas, se est produciendo otras S que cogeremos en un instante posterior. El hacer una media de muchas muestras antiguas, puede proporcionar una muy buena aproximacin de la seal lo que hace que este algoritmo sea bastante estable. Adems de la ventaja de la estimacin que se ha mencionado, se le debe aadir una ms, proveniente mas que por razones matemticas o estadsticas como hasta ahora, debida a razones tcnicas, y es que, este algoritmo se deber introducir en un DSP, el cual estar insertado en una placa. Esta placa tiene la particularidad de tardar un tiempo relativamente elevado en introducir valores al DSP,

Lorenzo Meler Ferraz

91

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

que no es proporcional al tamao del vector; aclarando, el tiempo que tarda en introducir un vector largo es mucho menor que el que tarda en introducir muchos vectores cortos que sumados nos dan el mismo tamao que el largo.

Lorenzo Meler Ferraz

92

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.2.- diagrama de bloques e instrucciones


DIAGRAMA DE BLOQUES

En este diagrama, en el cual se intenta representar todos los bloques que se hacen necesarios para realizar este algoritmo, se presenta como inicialmente se incluyen S muestras para luego dividirlo en S bloques diferentes, que se irn cogiendo de uno en uno para realizar el resto del diagrama de bloques.

x{1N}

aadir S muetrasy dar la vuleta

x{N+12N} x{2N+13N} : : x{(SDELAY

*
he

viejo

sumatorio y media

x x

e
+

*
h

figura 3.2.1

Lorenzo Meler Ferraz

93

ALGORITMOS LMS EN EL DOMINIO TEMPORAL INSTRUCCIONES

INICIALIZACIN S nmero de vectores de entrada he=[00] %anchura del vector N constante muy pequea. func seal de entrada al sistema x(m)=func(m) los S+N-1 primeros valores de la seal muestreada se introducen en el vector de entrada. PARA CALCULAR S VALORER DE LA SEAL DE SALIDA, PARA UN CONJUNTO DE VECTORES DE LA SEAL DE ENTRADA. - Toma S muestras nuevas xn(m+S)= xn(m) xn(i)= func(m+S+i)
i=1 S

- Calcula S seales deseadas y S estimadas dn[F-S+i] = xn(F-S+i)*hn(k) yn[F-S+i] = xn(F-S+i)*hen(k) - Clculo S seales de error en[i] = dn[i] - yn[i] - LMS Fin[m]=1/S( (xn[m,F]en[m,F]))
f =1 S

hen+1[m]= hen(m)+Fin[m]
figura 2.3.2.2

significado de cada trmino: S es el tamao del bloque y por tanto el nmero de vectores que analizaremos para cada iteracin. sigue siendo nuestro factor de convergencia, una constante, al igual que en casos anteriores.

Lorenzo Meler Ferraz

94

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

he vector o filtro que estimamos, el filtro adaptativo que variaremos para conseguir nuestro objetivo final. func seal completa de entrada, de ella sacaremos los valores o muestras de lo que llamaremos seal de entrada. x vector de la seal de entrada. Este vector poseer un nmero de coeficientes que ser igual al nmero que posee nuestro filtro ms S (nmero de muestras adicionales). N es el nmero de coeficientes de nuestro filtro h y de el filtro estimado he. dn nos referiremos a esta notacin a un vector de la seal deseada que tendr tantos coeficientes como el valor de S. Recordar que en apartados anteriores, esta notacin nos proporcionaba una nica muestra, mientras que aqu nos da un vector. yn al igual que lo comentado para la seal deseada, ocurre con esta seal, la estimada, que si en algoritmos anteriores nos referamos a ella como una sola muestra, en el actual es un vector de S coeficientes, conseguidos por trabajar en una sola iteracin con varias muestras de entrada. en esta letra querr mostrarnos el error (resta entre las dos seales anteriores) y por tanto ser tambin un vector de la misma anchura que las dos seales anteriores, es decir de S. Fin Simplemente es una notacin que se ha incluido para facilitar la comprensin. Es un vector, en este caso, de un nmero de coeficientes igual al filtro utilizado. Lo nico que indica es la media de los S valores de cada elemento m del producto de xe. El multiplicar esto por el factor de convergencia es opcional, pero por supuesto, habr que pensar que si lo se multiplica fuera de este bucle se estar ganando en el nmero de operaciones.

Lorenzo Meler Ferraz

95

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.3.- resultados obtenidos (mejores valores de )


Al igual que para los anteriores algoritmos, aqu se mostrarn el mismo tipo de resultados. Es decir, para tonos y para combinacin de tonos se mostrarn la seal del error lineal, para las seales de voz y msica utilizaremos para describir su comportamiento los resultados obtenidos para la seal deseada y la seal estimada y por ltimo se mostrarn el valor del error lineal para comentar y sacar conclusiones del ruido blanco. El valor utilizado, para todas y cada una de las seales, de la S (recordar que es el nmero de bloques o lo que es lo mismo, el nmero de muestras nuevas cada vez que nos metemos en el algoritmo) es S=4. Con esto, se presentan las diez figuras siguientes, para ms tarde realizar una serie de conclusiones.

Tono 50 Hz. =0.001


CANCELACIN DE ECO 0.5 0.4 0.3 0.2 0.1 error 0 -0.1 -0.2 -0.3 -0.4 -0.5 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 129.2333 dB

tiempo (seg.)

Figura 2.3.3.1

Lorenzo Meler Ferraz

96

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 500 Hz. =0.005


CANCELACIN DEL ECO 0.4 0.3 0.2 0.1 119.5986 dB error 0 -0.1 -0.2 -0.3 -0.4 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

tiempo (seg.)

Figura 2.3.3.2 Tono 1000 Hz. =0.005


CANCELACIN DEL ECO

0.2

0.1 117.4501 dB error 0

-0.1

-0.2

-0.3 0.02 0.04 0.06 0.08 tiempo (seg.) 0.1 0.12

Figura 2.3.3.3

Lorenzo Meler Ferraz

97

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 3000 Hz. =0.005


CANCELACIN DEL ECO 1.5

0.5 114.7605 dB error 0

-0.5

-1

-1.5 0 0.02 0.04 0.06 0.08 0.1 0.12

tiempo (seg.)

Figura 2.3.3.4 Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). =0.001
CANCELACIN DE ECO

1.5

0.5 116.8806 dB error 0

-0.5

-1

-1.5 0 0.05 0.1 0.15 0.2 0.25 0.3 tiempo (seg.) 0.35 0.4 0.45

Figura 2.3.3.5

Lorenzo Meler Ferraz

98

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Combinacin de tonos 2 (50, 100, 150 Hz). =0.001
CANCELACIN DEL ECO

0.5

121.5969 dB error 0

-0.5

-1 0 0.1 0.2 0.3 tiempo (seg.) 0.4 0.5

Figura 2.3.3.6 Combinacin de tonos 3 (1000, 2000, 3000 Hz). =0.001


CANCELACIN DEL ECO

0.5 115.0379 dB error 0

-0.5

-1

-1.5 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 tiempo (seg.)

Figura 2.3.3.7

Lorenzo Meler Ferraz

99

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Msica =0.1
SEAL DESEADA 0.1 0.05 0 -0.05 -0.1

0.5

1.5 SEAL ESTIMADA

2.5

0.04 0.02 0 -0.02 -0.04

0.5

1.5 tiempo

2.5

Figura 2.3.3.8 Voz =0.1


SEAL DESEADA 0.5

-0.5

0.5

1.5 SEAL ESTIMADA

2.5

0.2 0.1 0 -0.1 -0.2 -0.3 0 0.5 1 1.5 tiempo 2 2.5 3

Figura 2.3.3.9

Lorenzo Meler Ferraz

100

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Ruido =0.005

CANCELACION DE ECO 0.9 0.8 0.7 0.6 0.5 0.4 0.3 10.4725 dB 0.2 0.1 0

error

0.5

1.5 tiempo (seg.)

2.5

Figura 2.3.3.10 CONCLUSIONES: Para todas estas seales se han analizado tres segundos. En ellos, se puede observar la diferencia de las seales.

Se analizarn primeramente, como siempre, las seales peridicas. La diferencia del resultado obtenido para la primera, un tono de 50Hz. se ve como el error disminuye lentamente, hasta detenerse y llegar a su valor lmite al cabo de muy poco tiempo. A medida que se aumenta la frecuencia el tiempo de convergencia es ms corto. La potencia del error residual aumenta con la frecuencia de la seal analizada. Los resultados obtenidos cuando se adentra en el anlisis de las seales no peridicas, sin incluir el ruido, son muy similares al LMS, aunque estas comparativas se vern en el siguiente apartado, se ve como, por ejemplo para la msica, al cabo de un segundo comienza a parecerse la seal estimada a la deseada y que en la seal de voz, la similitud se hace clara si dejamos a un lado la comparativa de la amplitud, pero es esta amplitud la que hace concluir que existe cancelacin para estas seales, aunque hay que marcar que otra vez se ha visto la obligacin de mostrar la

Lorenzo Meler Ferraz

101

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

comparativa entre la seal estimada y la deseada, porque la seal del error lineal no aporta informacin; la nica informacin que da es la de que no cancela. El comportamiento del ruido es bastante conseguimos una cancelacin relativamente buena 10dB.) al cabo de los tres segundos analizados. bueno, (> de

DATOS:
50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 0.3 500Hz. 0.12 TONOS 1000Hz. 0.08 3000Hz. 0.06

129.2333

119.5986

117.4501

114.7605

COMB. 1 0.3

COMBINACIN DE TONOS COMB. 2 0.3

COMB. 3 0.1

116.8806

121.5969 SEALES NO PERIDICAS MSICA ---

115.0379

VOZ ---

RUIDO ---

---

---

104725 (tras 3 seg.)

Tabla 2.3.3.1

Lorenzo Meler Ferraz

102

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.4.- comparacin de resultados BLMS vs. LMS (diferencias, ventajas e inconvenientes)


Tono 50 Hz. BLMS
0.5 0.4 0.3 0.2 129.2333 dB
e rro r 6 5 4 3 2 1 0

=0.001
x 10
-4

LMS
CANCELACION DE ECO

CANCELACIN DE ECO

0.1 error 0 -0.1 -0.2 -0.3 -0.4 -0.5 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35

121,2696 dB

0.4

0.45

0.5

0.1

0.2

0.3

tiempo (seg.)

0.4 0.5 0.6 tiempo (seg.)

0.7

0.8

0.9

Figura 2.3.4.1

Tono 150 Hz BLMS


0.4 0.3 0.2 0.1 119.5986 dB error 0 -0.1 -0.2 0.005 -0.3 -0.4 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 122,7569 dB error 0.01 0.015 0.02

=0.005
0.025

LMS
CANCELACIN DEL ECO

CANCELACIN DEL ECO

0 0.02 0.04 0.06 0.08 tiemo (seg.) 0.1 0.12 0.14

tiempo (seg.)

Figura 2.3.4.2

Lorenzo Meler Ferraz

103

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 1000 Hz BLMS =0.005


CANCELACIN DEL ECO 0.16 0.14 0.2 0.12 0.1 0.1 0.08 e rro r 117.4501 dB error 0 0.06 0.04 -0.1 0.02 0 -0.2 -0.02 -0.04 -0.3 0.02 0.04 0.06 0.08 tiempo (seg.) 0.1 0.12 1 2 3 4 5 6 tiempo (seg.) 7 8 9 x 10 10
-3

LMS
CANCELACION DE ECO

118,0803 dB

Figura 2.3.4.3

Tono 3000 Hz BLMS =0.005


CANCELACIN DEL ECO 1.5 0.4 1 0.3 0.2 0.5 0.1 e rro r 114.7605 dB error 0 118,2809 dB 0 -0.1 -0.5 -0.2 -0.3 -0.4 -1.5 0 0.02 0.04 0.06 0.08 0.1 0.12 0 1 2 3 4 5 6 tiempo (seg.) 7 8 9 10 x 10
-3

LMS
CANCELACION DE ECO

-1

tiempo (seg.)

Figura 2.3.4.4

Lorenzo Meler Ferraz

104

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). BLMS =0.001


CANCELACIN DE ECO 0.6 1.5 0.4 1 0.2 0.5 118,6414 dB 116.8806 dB error 0 error 0

LMS
CANCELACIN DEL ECO

-0.5

-0.2

-1

-0.4

-1.5 -0.6 0 0.05 0.1 0.15 0.2 0.25 0.3 tiempo (seg.) 0.35 0.4 0.45 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 tiempo (seg.)

Figura 2.3.4.5

Combinacin de tonos 2 (50, 100, 150 Hz). BLMS =0.001


CANCELACIN DEL ECO 0.15 1

LMS
CANCELACIN DEL ECO

0.1 0.5 0.05 121.5969 dB error 0 122,0456 dB error 0

-0.05 -0.5 -0.1

-1 0 0.1 0.2 0.3 tiempo (seg.) 0.4 0.5

-0.15 0.01 0.02 0.03 0.04 0.05 tiempo (seg.) 0.06 0.07 0.08 0.09

Figura 2.3.4.6

Lorenzo Meler Ferraz

105

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 3 (1000, 2000, 3000 Hz). BLMS =0.001


CANCELACIN DEL ECO

LMS
CANCELACIN DE ECO

0.5 115.0379 dB error 0 error

0.5

119.9592 dB
0

-0.5

-0.5

-1

-1

-1.5 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 tiempo (seg.)

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

tiempo (seg.)

Figura 2.3.4.7

Msica. BLMS =0.1


SEAL DESEADA 0.1 0.05 0 -0.05 -0.1 -0.05 0 0.5 1 1.5 SEAL ESTIMADA 0.04 0.02 0 -0.02 -0.04 2 2.5 3 0.02 0.01 0 -0.01 -0.02 0 0.5 1 1.5 tiempo 2 2.5 3 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.05

LMS
SEAL DESEADA

SEAL ESTIMADA

0.2

0.4

0.6

0.8

1 tiempo

1.2

1.4

1.6

1.8

Figura 2.3.4.8

Lorenzo Meler Ferraz

106

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Voz. BLMS =0.1


SEAL DESEADA 0.5 0.4 0.2 0 -0.2 -0.4 0 0.5 1 1.5 SEAL ESTIMADA 0.2 0.1 0 -0.1 -0.2 -0.3 -0.2 0 0.5 1 1.5 tiempo 2 2.5 3 0 0.1 0.2 0.3 0.4 0.5 tiempo 0.6 0.7 0.8 0.9 1 2 2.5 3 0.2 0.1 0 -0.1

LMS
SEAL DESEADA

-0.5

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

SEAL ESTIMADA

Figura 2.3.4.9

Ruido Blanco. BLMS =0.005


CANCELACION DE ECO 0.9 0.8 0.7 0.6 0.5 0.4

LMS
0.8 0.7 0.6 0.5 0.4 0.3
9.0304 dB

e rro r

0.3 10.4725 dB 0.2 0.1 0

0.2 0.1

0.5

1.5 tiempo (seg.)

2.5

Figura 2.3.4.10

CONCLUSIONES: Si se supiera a priori que la seal de entrada iba a ser un tono de 50Hz., no habra que dudar en utilizar el algoritmo LMS, ya que, como se ver ms adelante, el nmero de operaciones utilizadas para este ltimo algoritmo (BLMS), es mayor que el simple LMS para llegar al mismo nivel de cancelacin en el mismo intervalo de tiempo o incluso un poco peor

Lorenzo Meler Ferraz

107

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Lo que ocurre con el tono de 50Hz. Ocurre con el resto de seales peridicas. Al igual que suceda con el LMS, ahora ocurre con el BLMS, es decir, a medida que se aumenta la frecuencia aumenta el tiempo de cancelacin. Por lo tanto debido a un crecimiento igual en los dos algoritmos, el BLMS nunca llegar a tener tan buen tiempo de cancelacin como el LMS (para estas seales peridicas). La potencia del error final, aunque muy similar, en todos los casos es mejor para el LMS que para el BLMS. La seal de msica proporciona con clara mejora, ya que a priori, parece tarda en conseguir un cierto parecido la al deseada, es menor (pero se sigue cancelacin evidente). este algoritmo que el tiempo seal estimada sin llegar a una que con una

En el caso de la voz, las diferencias que se puedan observar son mnimas, aunque el tiempo que se ha analizado sea diferente, el parecido entre las dos seales es bastante claro. As pues, se pueden sacar algunas conclusiones generales, como por ejemplo que utiliza un mayor tiempo de cancelacin, debido al retardo que ya se ha nombrado en anteriores ocasiones; la cancelacin de este error es muy similar entre las seales analizadas, casi no hay diferencia en el tiempo de cancelacin entre seales y por ltimo, decir que los errores residuales que quedan con el algoritmo BLMS son muy similares entre seales.

Lorenzo Meler Ferraz

108

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

DATOS:
TONOS 150 Hz. 1000 Hz. 0.05 0.12 123.7569 119.5986 0.003 0.08 118.0803 117.4501

50 Hz. TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) LMS BLMS LMS BLMS 0.3 0.3 121.2696 129.2333 COMB. 1 LMS BLMS LMS BLMS 0.03 0.25 118.6414 116.8806 VOZ LMS BLMS LMS BLMS ---------

3000 Hz. 0.003 0.06 118.2809 114.7605 COMB. 3 0.03 0.1 119.9592 115.0379 RUIDO ------

COMBINACIN DE TONOS COMB. 2 0.04 0.3 122.0456 121.5969 SEALES NO PERIDICAS MSICA ---------

9.0304 (tras 3 seg.) 10.4725 (tras 3 seg.)

Tabla 2.3.4.1

Lorenzo Meler Ferraz

109

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.5.- diferencia de operaciones LMS vs. BLMS


Primero se va a recordar el nmero de operaciones que se realizaban para el algoritmo LMS: N de sumas 3N-1 N de productos 3N+1 Recordando que N es el tamao del filtro que se est usando, en nuestro caso como siempre de 1024 coeficientes. Ahora, para el algoritmo BLMS, se observa en la tabla 2.3.2.2, en la cual aparecen todas las operaciones que se deben hacer:
Primera operacin: calcula la seal deseada (se recuerda que al igual que para el anterior algoritmo, este clculo en un futuro se podr evitar porque esta seal se tendr directamente). Para ello se convoluciona la seal de entrada x con el filtro real h. Esto, en un principio, hace gastar N multiplicaciones y N-1 sumas, pero hay que tener en cuenta que ahora d va a ser un vector de S elementos porque se est trabajando con S bloques, por lo tanto habr SN productos y S(N-1) sumas.

En la segunda operacin se han seguir los mismo pasos que antes, ya que ahora se calcula la seal estimada y, que deber tener el mismo nmero de coeficientes que la seal deseada d. Por lo tanto aqu habr tambin SN productos y S(N-1) sumas.
Tercera operacin: clculo del vector de error que en total sern S restas. Cuarta operacin: se multiplican cada coeficiente del vector de error (que posee S componente) por cada uno de los coeficientes del vector x correspondiente, es decir NS productos. Ahora, de los vectores resultantes, se suman coeficiente a coeficiente de los N elementos que poseen los nuevos vectores xi, por lo tanto habr (S-1) N sumas. Quinta operacin: se deber multiplicar el vector resultante de antes (de N coeficientes), por el factor de amortiguamiento . Habr que incluir en esta operacin la divisin que hay que hacer para sacar la estadstica de lo sumado anteriormente, pero se va a omitir haciendo la

, ya que la operacin de S divisin no se puede considerar como la misma dificultad que una multiplicacin, al menos en el DSP en el cual se
siguiente igualdad,

Lorenzo Meler Ferraz

110

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

debe implementar todo el trabajo. Por lo tanto se aadirn N productos.


Sumas BLMS S(N-1) S(N-1) S N(S-1) -------------3SN-S-N Productos BLMS LMS SN SN ---------------SN N N(3S+1) (3N+1)S

LMS

Primera op. Segunda op. Tercera op. Cuarta op. Quinta op. Total

(3N-1)S

Tabla 2.3.5.1

En la tabla 2.3.5.1 estn representadas el nmero de operaciones que ha de realizar el algoritmo BLMS por cada operacin descritas al principio de este captulo. Como las operaciones en el algoritmo LMS y BLMS no coinciden, del primero nicamente se han colocado el nmero de sumas y restas totales que se han de realizar. La diferencia que se encuentra en el nmero de operaciones para el algoritmo LMS con lo calculado en la tabla 2.1.5.1, viene dada por la variable S, ya que hay que recordar que ahora, con el algoritmo BLMS, se est calculando un nmero S de salidas, y en la tabla 2.1.5.1 nicamente se calculaban para una salida.

5 4.5 4 3.5 n u m e ro d e su m a s 3 2.5 2 1.5 1 0.5 0

x 10

SUMAS REALIZADAS POR CADA ALGORITMO algoritmo LMS algoritmo BLMS

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

Figura 2.3.5.1

Lorenzo Meler Ferraz

111

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

x 10

PRODUCTOS REALIZADOS POR CADA ALGORITMO algoritmo LMS algoritmo BLMS

n u m e ro d ep ro d u cto s

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

Figura 2.3.5.2

Comentar que para las figuras 2.3.5.1 y 2.3.5.2 los clculos se han hecho para un tamao de bloque S=4; claro est que si este nmero aumentase, tambin aumentara el nmero de operaciones (productos y sumas) que realizaran los dos algoritmos. Tanto en las figuras 2.3.5.1 y 2.3.5.2 como en la tabla 2.3.5.1, se puede observar como el nmero de operaciones es muy parecido para los dos algoritmos, ya que, aunque si que es verdad que en el nmero de productos es mayor para el algoritmo BLMS, en el nmero de sumas ocurre lo contrario. Se puede concluir pues que el nmero de operaciones es muy parecido, si no se tiene en cuenta la divisin que se debe de realizar para la estimacin en el BLMS. Esta operacin no se ha tenido en cuenta porque como ya se ha dicho antes en un DSP tendr un trato especial.

Lorenzo Meler Ferraz

112

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.6.- cdigo del algoritmo BLMS


Programa principal blms clear; k=6000;%Para el numero de iteraciones, para calcu disp('elige entre todas estas seales:') disp('a-->voz') disp('b-->coseno') disp('c-->ruido blanco') disp('d-->varios tonos') disp('e-->musica') load camino.mat load seales.mat func=input('la eleccion es: ','s'); numSal=input('introduce el numero de salidas simultaneas que quieres (multiplo de 2): '); normalizado=input('pulsa f, si no quieres que el algoritmo sea normalizado, o pulsa n, si quieres que sea normalizado: ','s'); n=0:1/8000:5; if normalizado=='f' if func=='a' func=wavread('Aleman.wav'); [ysalida,et,ye]=func_blms(func,numSal); elseif func=='b' func=cos(2*pi*3000*n); [ysalida,et,ye]=func_blms(func,numSal); elseif func=='c' func=rand(1,40000); [ysalida,et,ye]=func_blms(func,numSal); elseif func=='d' func=(sin(2*pi*1000*n)+sin(2*pi*2000*n)+cos(2*pi*3 000*n)); [ysalida,et,ye]=func_blms(func,numSal); elseif func=='e' func=2*musica'; [ysalida,et,ye]=func_blms(func,numSal); else disp('a introducido una funcion no valida'); end elseif normalizado=='n' if func=='a' func=wavread('Aleman.wav'); [ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='b' func=cos(2*pi*50*n);
Lorenzo Meler Ferraz

113

ALGORITMOS LMS EN EL DOMINIO TEMPORAL [ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='c' func=rand(1,40000); [ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='d' func=(sin(2*pi*50*n)+sin(2*pi*150*n)+cos(2*pi*500*n)); [ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='e' func=2*musica'; [ysalida,et,ye]=func_bnlms(func,numSal); else disp('a introducido una funcion no valida'); end end for m=1:(k)*numSal t(m)=m/8000; end; for m=1:(k)*numSal e_db(m)=10*log10(real(et(m)/ysalida(m))); end; Funcin del algoritmo blms function[ysalida,et,ye]=funcblms(func,S) k=6000; for m=1:1024+S%inicializamos el valor de x x(1025+S-m)=func(m); end he=zeros(1,1024); load camino.mat load seales.mat mu=input('introduce el valor de mu (aconsejable 0.001 o menor): '); vector_h=input('elige la "h" del sistema (1,2 o 3): '); if vector_h==1 hr=load('h1_a.txt'); hr=hr';%trasponemos la matriz porque el archivo .txt es una columna elseif vector_h==2 hr=load('h2_a.txt'); hr=hr';%trasponemos la matriz porque el archivo .txt es una columna elseif vector_h==3 hr=h_real;

Lorenzo Meler Ferraz

114

ALGORITMOS LMS EN EL DOMINIO TEMPORAL else disp('no existe este archivo'); end for ii=1:k%para el tiempo suma=zeros(1,1024); for jj=1:S %numero de salidas %calculamos la y, haciendo la convolucion y=0; for i=1:1024 y1=hr(i)*x(S-jj+i); y=y1+y; end ysalida((ii-1)*S+jj)=y; e1=0; for i=1:1024 e2=x(S-jj+i)*he(i); e1=e2+e1; end ye((ii-1)*S+jj)=e1; %ahora si que calculamos el error e((ii-1)*S+jj)=y-e1; for i=1:1024 suma(i)=mu*e((ii-1)*S+jj)*x(S-jj+i)+suma(i); end end for i=1:1023 z(i+S+1)=x(i); end for i=1:S z(S-i+1)=func(ii*S+i+1024); end x=z; for j=1:1024 he(j)=he(j)+suma(j)/S; %actualizamos la h estimada, con este 1025, lo que conseguimos es %darle la vuelta al vector x, aqui es donde no se si es necesario %darle la vuelta. end end et=e;

Lorenzo Meler Ferraz

115

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.-ALGORITMO BNLMS (BLOCK LMS NORMALIZADO): 2.4.1.- introduccin


La diferencia que se encuentra entre el apartado 2.3 y el 2.4, sera la misma que la los apartados 2.1 con el 2.2. Sencillamente, hay que hacer es introducir el algoritmo para factor de convergencia. algoritmo del que hay entre lo nico que normalizar el

Al igual que el apartado 2.2, la manera de normalizar este factor depende de la potencia de la seal, de entrada. Ahora se tiene el problema aadido de trabajar en bloques (con varios vectores de la seal de entrada), como ya se ha sealado en el punto anterior. Observando el diagrama de bloques de la figura 2.4.2.1 y comparndolo con la figura 2.3.2.1, se puede ver como los nicos bloques u operaciones que se introducen adicionalmente, son aquellos que realizan la potencia de la seal. Pero conseguir esta potencia, no influye para nada la dificultad de estar trabajando con varios bloques a la vez, ya que esta potencia, la calculando va calculando cada vez que se utiliza un vector, sin importar si se est en una iteracin o en otra, ya que la inversa de esta potencia (aunque no se le puede denominar exactamente potencia, ya que tiene otra serie de componentes, que, eso si, no influyen tanto como sta) es multiplicada por un factor muy pequeo (constante) y luego por la seal propiamente dicha, convirtindose en otro vector, con otras caractersticas, pero con el mismo nmero de coeficientes Si se toman esta serie de molestias a la hora de hacer clculos, est claro que ser para conseguir algn beneficio en el objetivo final. Como se ver ms adelante, la diferencia estar muy clara cuando se comparen la msica y la voz, dos seales no peridicas, decantndose la balanza hacia el lado del algoritmo BNLMS, pues la ventaja de este algoritmo estriba en que calcula la potencia de la seal de entrada, y con ello se amortigua ms rpido cualquier cambio en la seal. Si a esto se le aade la estadstica que nos proporciona de por si el algoritmo BLMS (que mejora sensiblemente respecto del LMS), se podr concluir que este algoritmo, el BNLMS, es el ms indicado para este tipo de seales. Pero no adelantemos acontecimientos, vase primero como es el diagrama de bloques expuesto en la figura 2.4.2.1 y las operaciones

Lorenzo Meler Ferraz

116

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

necesarias para recrear este algoritmo que a priori promete muchas esperanzas.

Lorenzo Meler Ferraz

117

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.2.- diagrama de bloques


En el siguiente diagrama se puede apreciar como se han colocado una serie de bloques adicionales con respecto a la figura 2.3.2.1, ya que en ste, como se ha dicho en la introduccin se aade el normalizado con respecto a la potencia de la seal de entrada.
DIAGRAMA DE BLOQUES
x{1N}

aadir y dar la vuleta

x{N+12N} x{2N+13N} : : x{(S-

*
ABS
DELAY

viejo

he

^2

sumatorio y media

x x

y e

e
+

*
h

Figura 2.4.2.1

Lorenzo Meler Ferraz

118

ALGORITMOS LMS EN EL DOMINIO TEMPORAL INSTRUCCIONES

INICIALIZACIN S nmero de vectores de entrada he=[00] %anchura del vector N func seal de entrada al sistema x(m)=func(m) los S+N-1 primeros valores de la seal muestreada se introducen en PARA CALCULAR S VALORER DE LA SEAL DE SALIDA, PARA UN CONJUNTO DE VECTORES DE LA SEAL DE ENTRADA. - Toma S muestras nuevas xn(m+S)= xn(m) xn(i)= func(m+S+i) - Calcula S seales deseadas y estimadas dn[F-S+i] = xn(F-S+i)*hn(k) yn[F-S+i] = xn(F-S+i)*hen(k) - Clculo del error en[i] = dn[i] - yn[i] - Clculo del factor de convergencia segn la potencia de la seal =/(p+) Pn= - LMS Fin[m]=1/S( (xn[m,f]en[m,f]))
f =1 S N

i=1 S

x(i)

i =1

hen+1[m+1]= hen(m)+Fin[m]
Figura 2.4.2.2

Lorenzo Meler Ferraz

119

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.3.- resultados obtenidos (mejores valores de )


Tono 50 Hz. (=0.9 y =0.001)
CANCELACIN DE ECO 0.5 0.4 0.3 0.2 0.1 129.4983 dB error 0 -0.1 -0.2 -0.3 -0.4 -0.5 0 0.05 0.1 tiempo (seg.) 0.15 0.2

Figura 2.4.3.1 Tono 3000 Hz. (=1.1 y =0.001)


CANCELACIN DE ECO

0.5

111.8723 dB error 0

-0.5

-1

0.02

0.04

0.06 tiempo (seg.)

0.08

0.1

0.12

Figura 2.4.3.2

Lorenzo Meler Ferraz

120

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). =2 y =0.001


CANCELACIN DE ECO

1.5

0.5 116.6243 dB error 0

-0.5

-1

-1.5 0 0.05 0.1 0.15 0.2 0.25

tiempo (seg.)

Figura 2.4.3.3 Combinacin de tonos 2 (50, 150 y 500 Hz). =2 y =0.001


CANCELACIN DE ECO 1

0.5

121.1255 dB error 0

-0.5

-1 0 0.05 0.1 0.15 0.2 0.25 tiempo (seg.) 0.3 0.35

Figura 2.4.3.4

Lorenzo Meler Ferraz

121

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 3 (1000, 2000 y 3000 Hz). =4 y =0.001


2.5 2 1.5 1 0.5 113.0837 dB error 0 -0.5 -1 -1.5 -2 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 CANCELACIN DE ECO

tiempo (seg.)

Figura 2.4.3.5 Voz (=2 y =0.001)


CANCELACION DE ECO 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4

e rro r

19.2509 dB

0.5

1.5 tiempo (seg.)

2.5

Figura 2.4.3.6

Lorenzo Meler Ferraz

122

ALGORITMOS LMS EN EL DOMINIO TEMPORAL Msica (=2.5 y =0.001)


CANCELACION DE ECO 0.025 0.02 0.015 0.01 7.8156 dB e rro r 0.005 0 -0.005 -0.01 -0.015 -0.02

0.5

1.5 tiempo (seg.)

2.5

Figura 2.4.3.7 Ruido (=4 y =0.001)


CANCELACION DE ECO 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 12.8501 dB

e rro r

0.5

1.5 tiempo (seg.)

2.5

Figura 2.4.3.8 Conclusiones: se usa el mismo tipo de representacin para cada tipo de seal, la figura que muestra el error lineal.

Todas estas representaciones tienen en comn que estn analizadas durante el transcurso de tres segundos de las mismas y aunque en algunas no aparezca representado todo este tiempo, por ver mejor la cancelacin, la potencia del
Lorenzo Meler Ferraz

123

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

error residual, si que ha sido calculada para los valores resultantes al final de los tres segundos analizados. El valor de la constante vara mucho segn la frecuencia de la seal. Se resalta este dato, porque es una de las causas de que el tiempo de cancelacin de error sea mayor o menor (menor tiempo cuanto mayor sea la constante.) Para estas seales peridicas, se observa que en las combinaciones de tonos, cuanto ms cerca estn unos de otros, mayor es el tiempo que tarda nuestro filtro en llegar al valor del error residual. El tiempo transcurrido para tonos ms alejado y de alta frecuencia es bastante bueno, aunque unos tonos como en el caso de tonos 2, que se podra decir que estn muy aproximados y de muy baja frecuencia (es decir, la peor situacin para seales peridicas), tarda un tiempo aproximado de 0.2 segundos en cancelar el error, tiempo ms que asumible, considerando que es el peor de los casos. Los niveles de cancelacin final son bastante buenos. En el caso de la seal de voz se ha decido representar tres segundos, para observar la eficacia que tenemos en este algoritmo en un espacio de tiempo relativamente largo. Al contrari que otros algoritmos, aqu se est representando la seal del error ya que la cancelacin es bastante buena, como indica el dibujo de ms de 19dB. Como caba esperar, algo similar ocurre con la seal de msica y aqu tambin se ha preferido representar los tres segundos que se prometieron al principio del captulo, para asegurar al lector la no divergencia de la seal al cabo de un tiempo razonable, llegando a valores de 7.8dBs de cancelacin. Los valores alcanzados por el error del ruido son bastante aceptables. Se puede observar como hay un descenso continuado del error. La cancelacin final, al cabo de los tres segundos sealados es ms que aceptable, entendiendo por aceptable, lo que se seal al principio de este trabajo segn la normativa de la ITU, teniendo en cuenta que se est usando un valor de relativamente alto.

Lorenzo Meler Ferraz

124

ALGORITMOS LMS EN EL DOMINIO TEMPORAL DATOS:


50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 0.15 500Hz. --TONOS 1000Hz. --3000Hz. 0.06

129.4983

---

---

111.8723

COMB. 1 0.2

COMBINACIN DE TONOS COMB. 2 0.2

COMB. 3 0.06

116.6243

121.1255 SEALES NO PERIDICAS MSICA ---

113.0837

VOZ ---

RUIDO ---

19.2509 (tras 3 seg.)

7.8156 (tras 3 seg.)

12.8501 (tras 3 seg.)

Tabla 2.4.3.1

Lorenzo Meler Ferraz

125

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.4.- comparacin de resultados BLMS vs. BNLMS (diferencias, ventajas e inconvenientes)


En las figuras siguientes, se mostrarn, como reza el ttulo, las seales BLMS y las de BNLMS, las primeras estarn en la parte derecha de cada cuadro o figura y las segundas en la parte izquierda
Tono 50 Hz. BLMS
0.5 0.4 0.3 0.2 0.1 error 0 -0.1 -0.2 -0.3 -0.4 -0.5 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 129.2333 dB
error

=0.001
0.5 0.4 0.3 0.2 0.1

BNLMS (=0.9 y =0.001)


CANCELACIN DE ECO

CANCELACIN DE ECO

129.4983 dB 0 -0.1 -0.2 -0.3 -0.4 -0.5 0 0.05 0.1 tiempo (seg.) 0.15 0.2

tiempo (seg.)

Figura 2.4.4.1

Tono 3000 Hz BLMS =0.005


CANCELACIN DEL ECO 1.5 1 1

BNLMS (=1.1 y =0.001)


CANCELACIN DE ECO

0.5 114.7605 dB error 0 error

0.5

111.8723 dB 0

-0.5 -0.5 -1 -1 -1.5 0 0.02 0.04 0.06 0.08 0.1 0.12 0 0.02 0.04 0.06 tiempo (seg.) tiempo (seg.) 0.08 0.1 0.12

Figura 2.4.4.2

Lorenzo Meler Ferraz

126

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). BLMS =0.001


CANCELACIN DE ECO 1.5 1.5

BNLMS =2 y =0.001
CANCELACIN DE ECO

0.5 116.8806 dB error 0 error

0.5 116.6243 dB 0

-0.5

-0.5

-1

-1

-1.5 0 0.05 0.1 0.15 0.2 0.25 0.3 tiempo (seg.) 0.35 0.4 0.45

-1.5 0 0.05 0.1 0.15 0.2 0.25

tiempo (seg.)

Figura 2.4.4.3

Combinacin de tonos 2 (50, 100, 150 Hz). BLMS =0.001


CANCELACIN DEL ECO 1 1

BNLMS =2 y =0.001
CANCELACIN DE ECO

0.5

0.5

121.5969 dB error 0

121.1255 dB error 0

-0.5

-0.5

-1 0 0.1 0.2 0.3 tiempo (seg.) 0.4 0.5

-1 0 0.05 0.1 0.15 0.2 0.25 tiempo (seg.) 0.3 0.35

Figura 2.4.4.4

Lorenzo Meler Ferraz

127

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinacin de tonos 3 (1000, 2000, 3000 Hz). BLMS =0.001


CANCELACIN DEL ECO 2.5 2 1 1.5 0.5 115.0379 dB error 0 error -0.5 1 0.5 113.0837 dB 0 -0.5 -1 -1 -1.5 -2 -1.5 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 tiempo (seg.) 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

BNLMS =4 y =0.001
CANCELACIN DE ECO

tiempo (seg.)

Figura 2.4.4.5

Msica. BLMS =0.1


SEAL DESEADA 0.1 0.05 0 -0.05 -0.1 0.1 0.05 0 -0.05 -0.1 0 0.5 1 1.5 SEAL ESTIMADA 0.04 0.02 0 -0.02 -0.04 2 2.5 3 0.15 0.1 0.05 0 -0.05 0 0.5 1 1.5 tiempo 2 2.5 3

BNLMS
SEAL DESEADA

0.5

1.5 SEAL ESTIMADA

2.5

0.5

1.5 tiempo

2.5

Figura 2.4.4.6

Lorenzo Meler Ferraz

128

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Voz. BLMS =0.1


SEAL DESEADA 0.5 0.6 0.4 0.2 0 0 -0.2 -0.5 -0.4 0 0.5 1 1.5 SEAL ESTIMADA 0.2 0.1 0 -0.1 -0.2 -0.2 -0.3 -0.4 0 0.5 1 1.5 tiempo 2 2.5 3 0 0.05 0.1 0.15 0.2 0.25 tiempo 0.3 0.35 0.4 0.45 0.5 2 2.5 3 0.4 0.2 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

BNLMS
SEAL DESEADA

SEAL ESTIMADA

Figura 2.4.4.7

Ruido Blanco. BLMS =0.005


CANCELACION DE ECO 0.9 0.8 0.7 0.6 0.5 0.4 0.3 10.4725 dB 0.2 0.1 0 error 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 12.8501 dB 0.1 0 0 0.5 1 1.5 tiempo (seg.) 2 2.5 3

BNLMS
CANCELACIN DE ECO

e rro r

0.5

1 tiempo (seg.)

1.5

2.5 x 10
4

Figura 2.4.4.8

CONCLUSIONES: Dentro de las observaciones de las seales peridicas hay que sealar una que se ve a simple vista, y es que si que se aprecia mejora al utilizar este algoritmo. As en el tono de 3000Hz. el tiempo de cancelacin se amplia a unas cuantas centsimas de segundo mas, al igual que en la primera combinacin y la segunda. En la tercera combinacin; se puede apreciar como el tiempo ha aumentado a casi el doble, como ocurre con el tono de 50Hz.

Hay que recordar que en el algoritmo anterior, la comparacin de las seales llevaba a observar que se

Lorenzo Meler Ferraz

129

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

llegaba a la mitad de la amplitud de la seal deseada, ahora, con nuestro nuevo algoritmo se consigue una mejora en esta amplitud, tanto que se puede representar la seal de error y aportar informacin. El comportamiento de la seal de voz es muy similar, cosa que se esperaba debido al continuo comportamiento parecido de estas dos seales a lo largo de todo este estudio. As, como se dijo para la msica, se ha conseguido aumentar la amplitud, que en comparacin con los niveles a los que se llegaban con el algoritmo anterior, se ha mejorado multiplicando niveles anteriores por dos. La mejora cuando se introduce a la entrada la seal de ruido blanco es clara, se consiguen unos niveles bastante mejores. Era de esperar que se consiguieran mejores resultados para las ltimas seales que son analizadas, debido a que ahora se tienen en cuenta la potencia de la seal y los cambios que se producen en estas son bastante bruscos, mientras que en las peridicas, los cambios son predecibles. Cuando no se tenan en cuenta la potencia de la seal, la recuperacin del error (o mejor dicho del filtro adaptativo o estimado) se haca ms difcil. Se puede asegurar que en entornos normales, este ltimo algoritmo es el ms adecuado, debido a la mayor facilidad de que se encuentren seales del tipo como las ltimas que se han estudiado (voz, msica y ruido blanco). El problema radica en el tiempo de computacin, ya que como se puede apreciar en la figura 4.2.2, el nmero de operaciones es un poco mayor en este ltimo algoritmo que en cualquiera de los anteriores.

Lorenzo Meler Ferraz

130

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

DATOS:
TONOS 150 Hz. 1000 Hz. -----------------

50 Hz. TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) BNLMS BLMS BNLMS BLMS 0.15 0.3 129.4983 129.3333 COMB. 1 BNLMS BLMS BNLMS BLMS 0.2 0.25 116.6243 116.8806 VOZ BNLMS BLMS BNLMS BLMS -----

3000 Hz. 0.06 0.06 111.8723 114.7605 COMB. 3 0.06 0.1 113.0837 115.0379 RUIDO -----

COMBINACIN DE TONOS COMB. 2 0.2 0.3 121.1255 121.5969 SEALES NO PERIDICAS MSICA ----7.8156 (tras 3 seg.) ---

19.2509 (tras 3 seg.) ---

12.8501 (tras 3 seg.) 10.4725 (tras 3 seg.)

Tabla 2.4.4.1

Lorenzo Meler Ferraz

131

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.5.- cdigo del programa


Lo nico que se tendr que introducir en este algoritmo con respecto al algoritmo anterior es la forma de adaptar el factor de amortiguamiento. Cmo se calcula la potencia de la seal para luego tenerla en cuenta, inversamente proporcional en nuestro algoritmo LMS.

p=0; for i=1:1024 p=p+(abs(x(S-jj+i)))^2; end mu=alfa/(p+sigma);

Lorenzo Meler Ferraz

132

ALGORITMOS LMS EN LA FRECUENCIA

3.- ALGORITMO LMS EN FRECUENCIA 3.1.-INTRODUCCIN (MTODO SOLAPAMIENTOALMACENAMIENTO) 3.2.-LMS FORZADO (CONSTRAINED) 3.2.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES 3.2.2.- RESULTADOS CON DIFERENTES SEALES DE ENTRADA 3.2.3.- CLCULO DEL NMERO DE OPERACIONES 3.2.4.- CDIGO DEL PROGRAMA 3.3.-LMS NO FORZADO (UNCONSTRAINED) 3.3.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES 3.3.2.- RESULTADOS CON DIFERENTES SEALES DE ENTRADA 3.3.3.- COMPARATIVA RESULTADOS LMS FORZADO vs. NO FORZADO. 3.3.4.- CLCULO DEL NMERO DE OPERACIONES 3.3.5.- CDIGO DEL PROGRAMA 3.4.-ADAPTACIN DEL FACTOR DE CONVERGENCIA 3.4.1.- ADAPTACIN SEGN POTENCIA DE LA SEAL 3.4.2.- RESULTADOS LMS FORZADO CON ADAPTATIVA 3.4.3.- COMPARATIVA LMS CON Y SIN ADAPTATIVA 3.4.4.- CLCULO DEL NMERO DE OPERACIONES 3.5.-CONVOLUCIN CIRCULAR 3.5.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES 3.5.2.- RESULTADOS OBTENIDOS CON DIFERENTES SEALES DE ENTRADA 3.5.3.- COMPARATIVA LMS FORZADO vs. LMS CONVOLUCIN CIRCULAR 3.5.4.- CLCULO DEL NMERO DE OPERACIONES 3.5.5.- CDIGO DEL PROGRAMA

Lorenzo Meler Ferraz

133

ALGORITMOS LMS EN LA FRECUENCIA

3.1.-INTRODUCCIN (MTODO SOLAPAMIENTOALMACENAMIENTO).


En la introduccin de este proyecto se expuso como realizar una convolucin lineal, ahora, de un modo ms abreviado, se explicar la convolucin circular, dado que en el apartado 5 se usar para realizar un algoritmo. Habr que recordar que para calcular los valores de un vector x3[n] x3[n]=x1[n]*x2[n] (donde el smbolo * indica una convolucin) como convolucin entre dos seales, se realiza multiplicando dicha secuencia por una versin invertida y desplazada linealmente de la otra, y sumando los valores del producto x1[m]x2[n-m] para todo m. Para obtener los valores sucesivos de la secuencia formada por la operacin de convolucin, una de las secuencias se desplaza sucesivamente en relacin a la otra. Por el contrario, en la convolucin circular, la segunda secuencia se invierte circularmente en el tiempo y se desplaza circularmente con respecto a la primera, como se puede ver en la ecuacin 1.1, donde ambas secuencias tienen longitud N coeficientes. x 3[n] =

m =1

x [m]x [n
1 2

m]

ec. 3.1.1

Como se ve, la ecuacin 3.1.1 es la misma que la ecuacin de la convolucin lineal (ecuacin 1.3.1 de captulo primero), de lo que se deduce que lo nico que cambia es el nombre de la convolucin, denominada lineal para seales no peridicas y circular para las peridicas, ya que estas ltimas, al repetirse cada 2 periodo, puede hacer girar sus coeficientes circularmente para ir desplazando los mismos. En otras palabras, nicamente se utilizar esta convolucin cuando la convolucin de dos secuencias en el dominio del tiempo sea transformada en el producto de sus DFTs (punto 4 del primer captulo) en el dominio de la frecuencia, ya que se ha conseguido representar una seal peridica o no peridica en una suma de seales peridicas (Fourier). Cuando se quiere calcular la convolucin de dos seales peridicas, que poseen la misma longitud, el producto de sus DFT en el dominio trasformado, no se corresponde con la convolucin lineal, sino con la circular. En este apartado, el primer objetivo ser deducir algunas operaciones en el dominio de la frecuencia, como por ejemplo la convolucin, autocorrelacin, ya que como se nombraba en el apartado cuarto del primer captulo, en el cual se explica como se hace la FFT, se gana en el
Lorenzo Meler Ferraz

134

ALGORITMOS LMS EN LA FRECUENCIA

nmero total de operaciones para realizar el objetivo final. Esto es lo que lleva a dedicar todo un captulo entero para el estudio del algoritmo LMS y sus variantes en el dominio de la frecuencia. La salida de un filtro lineal (caso que nos ocupa) se analiza como una convolucin, y la estimacin del gradiente de un algoritmo adaptativo es una correlacin. La convolucin de dos secuencias requiere que una de estas sea invertida antes de que la muestra sea trasladada, multiplicada y sumada. La correlacin es similar a la convolucin, excepto que ninguna secuencia es invertida. Se puede observar que un subconjunto de las muestras de una convolucin circular, es idntico a un conjunto especfico de muestras de una convolucin lineal y otro subconjunto a la correlacin. Se tienen dos secuencias a y b, la secuencia a tiene longitud N1 y la secuencia b N2 (siendo N1 mayor o igual que N2), entonces, las ltimas N1-N2+1 muestras de la convolucin circular corresponden a una convolucin lineal. Por otra parte, las N1-N2+1 primeras muestras de una correlacin circular corresponden a una correlacin lineal. As con esto, una convolucin o correlacin lineal, pueden ser generadas a partir de su correspondiente circular, pero primero partiendo y solapando los datos y entonces se conserva un subconjunto del resultado final. Hay dos maneras para llevar a cabo una convolucin lineal usando el algoritmo de la FFT, y son el almacenamiento solapamiento (overlap-save) y el sumasolapamiento (overlap add). En este estudio nicamente se utiliza la primera (almacenamiento solapamiento), debido a que se va a realizar la implementacin del algoritmo LMS, y se sabe que para este algoritmo o mtodo, el primer mtodo utiliza menos operaciones que el segundo (Clark et al., 1983).

Lorenzo Meler Ferraz

135

ALGORITMOS LMS EN LA FRECUENCIA MTODO SOLAPAMIENTO ALMACENAMIENTO.

Una seal segmentarse en procesada.

de entrada de larga bloques de tamao fijo

duracin debe antes de ser

Es decir, se irn cogiendo muestras hasta el tamao que se considere apropiado para este estudio. Este filtro, ser tomado de un tamao igual a L=1024. En este mtodo, la longitud de los bloques de entrada es N=L+M-1, al igual que la longitud de cada una de las FFT e IFFT. Cada bloque de datos contiene al menos M-1 puntos del bloque de datos anterior, seguidos de L nuevos puntos de manera que la longitud de la secuencia as formada es N=L+M-1. se calcula la FFT de N puntos de cada bloque de datos. La respuesta impulsional del filtro se aumenta en longitud aadiendo L-1 ceros, se calcula la FFT de N puntos y se almacena. La multiplicacin de las dos FFTs de N al bloque m-simo de puntos {H (k )}y{X m (k )} correspondiente datos da lugar a
Y m (n ) = H (k ) X m (k ) Ec. 3.1.2

k = 0,1,....., N 1

Por lo tanto, la IFFT de N puntos da como resultado


^ Y m (n) = y m (0) y m (1) L y m ( M 1) y m ( M ) L y m ( N 1) Ec. 3.1.3

Dado que la longitud del registro de datos es N, los primeros M-1 puntos de cada registro de datos y estos puntos se convierten en los primeros M-1 puntos del registro siguiente, tal como se indic arriba. Para empezar el procesado, los M-1 primeros puntos del primer registro se hacen iguales a cero. Por tanto, los bloques de datos son:
, 0 ,....., 0 , x ( 0 ), x ( 1 ),...., x ( 2 L 1 ) Iteracin 1 x1 (n) = 0 ec. 3.1.4 1 4 24 3 M 1 puntos Iteracin 2 x 2 (n) = x( L M + 1),..., x( L 1), x( L),..., x(2 L 1) ec.3.1.5 1444 4 24444 3 1442443 M 1 puntos _ de _ datos _ de _ L _ nuevos _ puntos _ de _ datos x1 ( n )

Lorenzo Meler Ferraz

136

ALGORITMOS LMS EN LA FRECUENCIA

Iteracin 3 x3 (n) = x(2 L M + 1),..., x(2 L 1), x(2 L),..., x(3L 1) 14444244443 144 4 2444 3 M 1 puntos _ de _ datos _ de _ L _ nuevos _ puntos _ de _ datos x2 ( n ) ec. 3.1.6

Y as sucesivamente. Las secuencias de datos resultantes de la IFFT estn dadas por la segunda ecuacin, rechazndose los primeros M-1 puntos debido al aliasing, de manera que los L puntos restantes constituyen el resultado deseado de la convolucin lineal. Esta fragmentacin de los datos de entrada y la unin de los bloques de datos de salida para formar la secuencia de salida se ve en la figura 3.1.1.

|---------L-------|
seal de entrada

|---------L-------|

|---------L-------|

n M-1 ceros

x1(n)

M-1 x2(n)

x3(n)

seal de salida
descartamos M-1 puntos

y1(n)

Y2(n)
Descartamos M-1 puntos

y3(n)
descartamos M-1 puntos

Figura 3.1.1

Del mismo modo que se ha mencionado a Clark para decidir cual de los dos algoritmos (almacenamiento o suma) se iba a elegir, l mismo dice que la implementacin ms eficiente de este algoritmo (overlap-save method), se obtiene usando el 50 % de solapamiento. De ah que el desarrollo que se ha realizado en este trabajo sea con estas cantidades. Esto quiere decir que N=2M=2L.

Lorenzo Meler Ferraz

137

ALGORITMOS LMS EN LA FRECUENCIA

3.2.-LMS FORZADO (CONSTRAINED) 3.2.1.- diagrama de bloques e instrucciones


Una vez analizado como realizar los procesos de filtrado de seales de larga duracin en el de la frecuencia, se va a presentar la transformacin exacta del algoritmo LMS al dominio espectral o algoritmo LMS forzado (Constrained). En el diagrama de bloques de este algoritmo que nos muestra la figura 3.2.1.1, podemos ver como hay una zona encuadrada en un marco de puntos. En esta zona se encuentran las operaciones que las operaciones que distinguen el algoritmo LMS FORZADO; todas estas operaciones desaparecern para el algoritmo que mostramos en el apartado 3.3.
DIAGRAMA DE BLOQUES
func concatenacin de dos bloques viejo nuevo x x x descartamos los L primeros coeficientes ,,, y

FFT

x
retardo

IFFT

conjugar

x
FFT

2i

gradient constraint

aadimos bloque N ceros

eliminamos ltimo bloque

,,,,

IFF insertamos bloque N ceros

FFT

d(n)

Figura 3.2.1.1

Lorenzo Meler Ferraz

138

ALGORITMOS LMS EN LA FRECUENCIA

INSTRUCCIONES

INICIALIZACIN
W (0) = [0,...,0]
T

PARA CADA NUEVO BLOQUE DE ENTRADA DE N MUESTRAS


X (k) = FFT (x, N)

y (k ) = ltimos M elementos de la IFFT [ X (k )W (k )]


Convolucin lineal

e( k ) = d ( k ) y ( k ) 0 E (k ) = FFT e( k ) ( K ) = los primeros L elementos de IFFT X H (k )E (k ), N


Correlacin lineal
( K ) W (k + 1) = W (k ) + FFT 0

Figura 3.2.1.2

Donde el significado de cada letra es:


W (k ) : vector del filtro estimado (en el dominio de la frecuencia). X (k ) : seal de entrada en el dominio de la frecuencia. N: nmero de coeficientes del filtro. y (k ) : seal estimada, la que vamos adaptando segn nuestra seal deseada. d (k ) : seal deseada. e(k ) : error cometido. E (k ) : error cometido en el dominio de la frecuencia. ( K ) : valor de los L primeros elementos de una transformada inversa de Fourier. : factor de convergencia.

Lorenzo Meler Ferraz

139

ALGORITMOS LMS EN LA FRECUENCIA

FFT: transformada rpida de Fourier. (fast Fourier Transform). IFFT: transformada inversa rpida de Fourier (invers fast Fourier transform).

Lorenzo Meler Ferraz

140

ALGORITMOS LMS EN LA FRECUENCIA

3.2.2.- resultados con diferentes seales de entrada.


Las seales que se han utilizado son: - tonos a 50, 500, 1000 y 3000 - los cuatro tonos anteriores juntos. - Los tonos 50, 100 y 150 juntos. - Tonos 1000, 2000 y 3000 - Msica. - Voz. - Ruido blanco. A diferencia de lo estudiado para este algoritmo en el dominio del tiempo, la constante de amortiguamiento no tiene un valor muy parecido cuando se cambia de seal de entrada. As, en nuestro caso se ven unos cambios bruscos en este valor para conseguir el mejor resultado segn el vector de entrada (vector que contiene las muestras que vamos tomando de la seal de entrada). Se ha cogido una muestra de 4 seg. de la seal original, teniendo en cuenta que todas las seales estn muestreadas a 8000 muestras/seg., se han llegado a analizar 8000 x 4=24000 muestras. Con este tiempo se obtienen datos suficientes para analizar lo ocurrido al cabo de 1 seg., tiempo orientativo para poder calificar la eficacia del filtro.

Lorenzo Meler Ferraz

141

ALGORITMOS LMS EN LA FRECUENCIA

Tono 50 Hz. (=0.000001)


CANCELACION DE ECO 0.04 0.03 0.02 0.01 e rro r 31.1000 dB 0 -0.01 -0.02 -0.03 -0.04

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.1

Tono 100 Hz (=0.000001)

CANCELACION DE ECO 0.05 0.04 0.03 0.02 0.01 e rro r 31.9981 dB 0 -0.01 -0.02 -0.03 -0.04 -0.05

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.2

Lorenzo Meler Ferraz

142

ALGORITMOS LMS EN LA FRECUENCIA

Tono a 1000 Hz. (=0.000005)


CANCELACION DE ECO 0.3

0.2

0.1 115.1189 dB 0 e rro r -0.1 -0.2 -0.3 -0.4

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.3

Tono a 3000 Hz. (=0.000005)

CANCELACION DE ECO 0.8 0.6 0.4 0.2 e rro r 111.4538 dB 0 -0.2 -0.4 -0.6 -0.8

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.4

Lorenzo Meler Ferraz

143

ALGORITMOS LMS EN LA FRECUENCIA

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). (=0.000005)

CANCELACION DE ECO 1 0.8 0.6 0.4 0.2 21.6124 dB e rro r 0 -0.2 -0.4 -0.6 -0.8 -1

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.5

Combinacin de tonos 2 (50, 100, 150 Hz). (=0.00005)


CANCELACION DE ECO 0.5 0.4 0.3 0.2 0.1 e rro r 0 -0.1 -0.2 -0.3 -0.4 -0.5

116.0901 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.7

Lorenzo Meler Ferraz

144

ALGORITMOS LMS EN LA FRECUENCIA

Combinacin de tonos 3 (1000, 2000, 3000 Hz). (=0.000005)


CANCELACION DE ECO 2

1.5

0.5 e rro r 114.5435 dB

-0.5

-1

-1.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.8

Msica. (=0.01)

0.04 0.02 0 -0.02 -0.04


0.05

salida estimada

2 salida deseada

-0.050

Figura 3.2.2.8

Lorenzo Meler Ferraz

145

ALGORITMOS LMS EN LA FRECUENCIA

Voz. (=0.01)

0.2 0.1 0 -0.1 -0.2 0.4 0.2 0 -0.2 -0.4 0 1 0

salida estimada

2 salida deseada

Figura 3.2.2.9

Ruido blanco. (=0.001)

CANCELACION DE ECO 1.5

0.5 e rro r 18.3138 dB 0

-0.5

-1

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.2.2.10 CONCLUSIONES: La primera observacin que hay que hacer es cmo analiza el algoritmo estas seales. Se puede apreciar claramente como el anlisis, o los resultados obtenidos
Lorenzo Meler Ferraz

146

ALGORITMOS LMS EN LA FRECUENCIA

aparecen cada cierto tiempo y no instantneamente despus de haber analizado cada muestra. En este caso los datos se actualizan cada 1024 muestras, es decir 1024/8000=0.128 seg. de la seal de entrada. Otra observacin es que al trabajar por bloques el factor de convergencia mximo se hace menor. En las seales peridicas que se analizan al principio (los tonos), se ve claramente el descenso del error. Este descenso se ve mucho mas acusado cuanto ms alta es la frecuencia del tono. El error que se alcanza para las seales peridicas de alta frecuencia (a partir de 1 KHz), es bastante bajo, el tiempo utilizado es relativamente bajo (alrededor de 1 seg.), si se compara con el tiempo que tardaba con los tonos de ms baja frecuencia. Cuando se hace una combinacin de tonos el descenso para las frecuencias bajas se ve ms acusado que en los casos anteriores (cierta mejora), y la combinacin de tonos de alta frecuencia produce un descenso relativamente bueno. Se puede observar como el factor de convergencia es excesivamente bajo (comparndolo con los valores utilizados en el caso del dominio del tiempo), pero an as eficiente, aunque se podra achacar al valor que toma la constante el descenso tan lento que se tiene en la potencia del error. Los valores del factor de convergencia utilizados para las tres seales no peridicas (ruido, voz y msica) son bastante ms elevados que los utilizados en las seales peridicas. Estos valores, que al ser elevados hacen que la cancelacin del error sea ms rpida, no hace que la seal deseada diverja (estado que sucede cuando el valor de esta constante es demasiado alto). En estas seales, no se puede observar la seal del error sino la similitud de la seal deseada con la seal estimada. Cuando se observa la seal de msica, se ve como hay bastante similitud entre una y otra, sino se observa la amplitud de las dos (ya que la deseada tiene ms amplitud que la estimada). Esta diferencia en la amplitud de las dos seales es la que da un error no nulo. En el caso de la voz, la seal que peor llega a cancelar, la diferencia de la amplitud de las dos seales es de 1:2, aunque hay un cierto parecido entre ambas.

Lorenzo Meler Ferraz

147

ALGORITMOS LMS EN LA FRECUENCIA

La ltima seal a analizar es el ruido blanco, la seal mejor cancelada de estas tres no peridicas. Al cabo de aproximadamente 2 seg., la seal estimada ha llegado al valor deseado, y la cancelacin se hace evidente (del error llega a disminuir considerablemente). En definitiva, la cancelacin se realiza bastante bien para seales peridicas, teniendo en cuenta, como ya se ver ms adelante, la mejora que se obtiene en el cmputo general de las operaciones que se realicen con respecto a las que se hacan en el dominio del tiempo, pero este tema tocar analizarlo en el punto inmediatamente posterior. Como en otras ocasiones, el utilizar la comparacin entre la seal deseada y la seal estimada para comentar la cancelacin del eco no es un buen signo, ya que denota la no cancelacin del eco.
DATOS:
50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 2.5 100Hz. 2.5 TONOS 1000Hz. 1 3000Hz. 1

31.1000

31.9981

116.1189

111.4538

COMB. 1 1

COMBINACIN DE TONOS COMB. 2 1

COMB. 3 1

21.6124

115.0901 SEALES NO PERIDICAS MSICA ---

114.5435

VOZ ---

RUIDO ---

---

---

18.3138 (tras 3 seg.)

Tabla 3.2.2.1

Lorenzo Meler Ferraz

148

ALGORITMOS LMS EN LA FRECUENCIA

3.2.3.- clculo del nmero de operaciones


Al igual que en el dominio del tiempo, tambin tendremos que analizar el nmero de operaciones que se realizan utilizando esta opcin para comprobar la efectividad de este algoritmo. Habr que tener en cuenta, que para trabajar en el dominio de la frecuencia hay que hacer una serie de transformadas, la ya mencionada FFT; esto conlleva que cuando se haga una multiplicacin en el dominio de la frecuencia, en realidad se est haciendo cuatro multiplicaciones (ecuacin 2.3.1) debido a que en el dominio transformado se trabaja con nmeros complejos, y adems, habr que pensar que un futuro, estos algoritmos sern implementados en el DSP del que se disponga, en el cual no se pueden hacer multiplicaciones directas de nmeros complejos. (a+bj) * (c+dj) = (a*c + a*b*j + b*j*c b*d)
ec. 3.2.3.1

siendo j la unidad imaginaria. Algo similar ocurrir cuando se quiera realizar una suma en el dominio transformado, se sumar la parte real con la real del otro y la parte imaginaria con la imaginaria, como muestra la ecuacin 2.3.2. (a + bj) + (c + dj) = (a + c) + (b + d)j
ec. 3.2.3.2

Estas dos ecuaciones sern aplicadas en todos los apartados que, como este, se calculen el nmero de operaciones que realiza nuestro algoritmo. Todas las operaciones que se van a mostrar en negrita a continuacin, tienen el carcter de reales. La primera operacin es la FFT (transformada rpida de Fourier), para calcular la X(k) (seal en el dominio de la 2Nlog2(N) sumas y frecuencia). Una FFT nos da 4N/2log2(N) multiplicaciones. En segundo lugar se tiene que multiplicar el tamao del filtro W es de N, habr N complejas, es decir 4N multiplicaciones misma operacin hay tambin una IFFT de N decir 2Nlog2(N) sumas y 4N/2log2(N) ms. X(K)W(k) y como multiplicaciones reales. En esta coeficientes, es multiplicaciones

Lorenzo Meler Ferraz

149

ALGORITMOS LMS EN LA FRECUENCIA

En la tercera habr simplemente N restas. La cuarta operacin consta nicamente de una FFT para conseguir el error en el dominio de la frecuencia E(k), por lo tanto 2Nlog2(N) sumas y 4N/2log2(N) multiplicaciones ms.
Quinta operacin. Entrando ya en lo que es el algoritmo LMS hay que hacer una multiplicacin de dos vectores complejos XH(k)E(k) de N coeficientes cada uno, un total de 4N multiplicaciones reales. Despus de esto la transformada inversa IFFT de N coeficientes, es decir, otra vez 2Nlog2(N) sumas y 4N/2log2(N) multiplicaciones.

La ltima operacin (sexta) que aparece en esta tabla es una FFT de lo anterior, de N coeficientes 2Nlog2(N) sumas 4N/2log2(N) multiplicaciones, multiplicar este y resultado por el factor de amortiguamiento (), es decir N multiplicaciones complejas y en este caso 2N productos reales ya que uno de los multiplicandos es un escalar, ms y N-1 sumas complejas para concluir con el algoritmo LMS, que sern 2(N-1) sumas reales. Todas estas operaciones se van a pasar a un ejemplo concreto, con un filtro de 1024 coeficientes, eligiendo este valor para poderlo comparar con la cantidad de operaciones que se necesitaban en el dominio del tiempo. Entonces, N=1024
Sumas f(N) 2Nlog2(N) 2Nlog2(N) N 2Nlog2(N) 2Nlog2(N) 2Nlog2(N)+2(N1) 10 Nlog2(N) +3N-2 f(1024) 20480 20480 1024 20480 20480 20480+2046 105407 Productos f(N) f(1024) 4N/2log2(N) 20480 4N/2log2(N)+4N 4096+2048 0 -----------------------4N/2log2(N) 20480 4N+4N/2log2(N) 4096+2048 0 4N/2log2(N)+2N 20480+204 8 20N/2log2(N) 112640 +10N

Primera op. Segunda op. Tercera op. Cuarta op. Quinta op. Sexta op. total

Tabla 3.2.3.1

Todas estas operaciones dan como resultado un vector de salida de 1024 coeficientes. En el caso del dominio del tiempo, haba como resultados un total de 3071 sumas y 3073 productos con lo que se consegua un nico valor de la seal estimada. De esta forma, si se multiplican por 1024 los resultados obtenidos en el caso del dominio del tiempo
Lorenzo Meler Ferraz

150

ALGORITMOS LMS EN LA FRECUENCIA

se podr comparar el nmero de operaciones que realiza cada algoritmo para conseguir un total de 1024 muestras de la seal deseada.
x 10
5

SUMAS Y PRODUCTOS REALIZADOS EN EL LMS FORZADO sumas productos

4 numero de operaciones

500

1000

1500

2000

2500

3000

3500

4000

numero de coeficientes del filtro

Figura 3.2.3.1
Multiplicaciones sumas Dominio de t 30731024=3146752 30711024=3144714 Dominio de f 112640 105407

Tabla 3.2.3.2

La diferencia se ve claramente, decantndose la balanza de la optimizacin por el dominio de la frecuencia. El nmero tanto de sumas como de multiplicaciones se ve reflejado en la figura 3.2.3.1, apreciando una exponencial creciendo con el nmero de coeficientes del filtro.

Lorenzo Meler Ferraz

151

ALGORITMOS LMS EN LA FRECUENCIA

3.2.4.- cdigo del programa


clear; load camino.mat load seales.mat h=load('h1_a.txt');%de momento metemos el valor del primer filtro N=2048; h=h';%se tiene que trasponer porque el fichero nos lo da en una columna y no en fila filtro_real=h; n=(1:1/8000:5); %seales de entrada de larga duracin, tenemos que elegir entre una de todas estas. func=(sin(2*pi*1000*n)+sin(2*pi*2000*n)+sin(2*pi*3000*n)); %func=rand(1,4000000); %func=2*musica'; %func=wavread('Aleman.wav'); %func=[senal_Rb;senal_Rb]; %func=2*senal_Ra'; mu=input('introduce el valor de mu (aconsejable 0.001): '); efourier=zeros(1,N); %rellenamos con zeros el vector de error L=N/2; M=N-L; he=zeros(1,N); HE=mifft(he,N); for m=1:M%rellenamos con ceros el final del vector del filtro h h(m+L)=zeros; end H=mifft(h,N);%transformada del filtro alargado for n=1:N%rellenamos por primera vez el vector x con los N primero valores de func x(n)=func(n); end %********************************************************** %BUCLE PRINCIPAL, DEPENDIENTE DEL TIEMPO, LO ANTERIOR SOLO ES PARA INICIALIZAR %********************************************************** for n=1:25%esto es para el tiempo X=mifft(x,N); y=zeros(1,L); for ss=1:L %hay que obtener N valores de la seal del micro for gg=1:L
Lorenzo Meler Ferraz

152

ALGORITMOS LMS EN LA FRECUENCIA y(ss)=y(ss)+h(gg)*func(n*L+ss-gg+1); de la seal de entrada y de end %la simulacion de planta. end %a partir

%voy alamacenando la seal de salida real en el vector 'ysalida' cada vez que pasa % un intervalo de tiempo n for u=1:L ysalida((n-1)*M+u)=y(u); end YE=X.*HE; ye=miifft(YE,N); %lo mismo que antes (la salida salida estimada. for u=1:L yesalida((n-1)*M+u)=ye(M+u); xsalida((n-1)*M+u)=x(M+u); end real) pero para la

%rellenamos en la segunda mitad del vector error con los valores del error for m=1:L efourier(m+M)=y(m)-ye(m+M); e(m+(n-1)*M)=efourier(m+M); e_db(m+((n-1)*M))=10*log10(abs(real(e(m+((n1)*M)))/abs(real(y(m))))); end

%***TROZO QUE LO DIFERENCIA DEL UNCONSTRAINED (NO FORZADO)********** EFOURIER=mifft(efourier,N);%transformada de todo el vector de error FI_TOTAL=conj(X).*EFOURIER;%calculamos la fi extraa fi_total=miifft(FI_TOTAL,N); fi=zeros(1,N);%rellenamos todo el vector fi con ceros for m=1:L%cogemos solo los primeros elementos de la fi fi(m)=fi_total(m); end FI=mifft(fi,N); %********************************************************** ***********************

Lorenzo Meler Ferraz

153

ALGORITMOS LMS EN LA FRECUENCIA for m=1:N%actualizo la H estimada, en frecuencia HE(m)=HE(m)+mu*FI(m); end %DESPLAZAMOS LOS PRINCIPIO for u=1:L x(u)=x(u+M); end VALORES FINALES DEL VECTOR x AL

%actualizar x con el metodo almacenamiento %cogiendo de L en L muestras for u=1:L x(M+u)=func(u+(n*M)+M); end

de

solapamiento-

%esto simplemente lo hacemos para sacar por pantalla los coeficientes en dominio del tiempo he=miifft(HE,N); for u=1:L he_total(u+(n-1)*M)=he(u+M); e_relativo((u+(n-1)*M))=(h(u)-he(u+M))/(h(u)); end end for m=1:(n*M)%simplemente tiempo t(m)=m/8000; end para poder representar en el

Lorenzo Meler Ferraz

154

ALGORITMOS LMS EN LA FRECUENCIA

3.3.-LMS NO FORZADO (UNCONSTRAINED) 3.3.1.- diagrama de bloques e instrucciones.


DIAGRAMA DE BLOQUES

func

concatenacin de dos bloques viejo nuevo x x

FFT

x
retardo x

IFFT

descartamos los L primeros coeficientes ,,, y

conjugar

x x

2i

FFT

insertamos bloque N ceros

d(n)

Figura 3.3.1.1

El diagrama de bloques de este algoritmo es prcticamente igual que el diagrama del LMS, pero ms sencillo, nicamente hay que eliminar el bloque que rodeaba el cuadro de puntos que se presentaba en el anterior. Esto supone que se toman todos los valores de la convolucin circular XH(k)E(k) por la realizacin de la correlacin lineal de al actualizacin de coeficientes. Se evita de esta forma una FFT y una IFFT, pero se pierde en estabilidad y robustez, por esto, ms adelante se ver una comparativa entre los resultados de este algoritmo y el LMS forzado (constrained), y se puede hacer un pronstico para decir cual es el idneo para nuestro propsito.

Lorenzo Meler Ferraz

155

ALGORITMOS LMS EN LA FRECUENCIA INSTRUCCIONES

INICIALIZACIN
W (0) = [0,...,0]
T

PARA CADA NUEVO BLOQUE DE ENTRADA DE N MUESTRAS


X (k) = FFT (x, N)

y (k ) = ltimos M elementos de la IFFT [ X (k )W (k )]


Convolucin lineal

e( k ) = d ( k ) y ( k ) 0 E (k ) = FFT e( k )

[E(k)X(k)] W(k + 1) = W(k) +


figura 3.3.1.2

Lorenzo Meler Ferraz

156

ALGORITMOS LMS EN LA FRECUENCIA

3.3.2.- resultados con diferentes seales de entrada.


Tambin aqu se estudiarn las mismas seales que en todos los apartados anteriores, aunque no est de ms que se recuerde con una lista cuales son estas seales. Las seales que se han utilizado son: - tonos a 50 y 3000 - los cuatro tonos anteriores juntos. - Los tonos 50, 100 y 150 juntos. - Tonos 1000, 2000 y 3000 - Msica. - Voz. - Ruido blanco. El estilo de representacin es similar al del apartado anterior. Y se ver que los resultados no sern exactamente iguales, se analizarn las ventajas de este algoritmo y sus desventajas.

Lorenzo Meler Ferraz

157

ALGORITMOS LMS EN LA FRECUENCIA Tono 50 Hz. (=0.000001)

CANCELACION DE ECO 0.04 0.03 0.02 0.01 e rro r 0 -0.01 -0.02 -0.03 -0.04

9.9739 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.2.1 Tono a 3000 Hz. (=0.000001)

CANCELACION DE ECO 0.3

0.2

0.1 77.4374 dB 0 e rro r -0.1 -0.2 -0.3 -0.4

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.2.2

Lorenzo Meler Ferraz

158

ALGORITMOS LMS EN LA FRECUENCIA Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). (=0.000001)

CANCELACION DE ECO 1 0.8 0.6 0.4 0.2 e rro r 0 -0.2 -0.4 -0.6 -0.8 -1

20.9197 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.2.3

Combinacin de tonos 2 (50, 100, 150 Hz). (=0.000001)


CANCELACION DE ECO 0.5 0.4 0.3 0.2 0.1 e rro r 0 -0.1 -0.2 -0.3 -0.4 -0.5 17.5562 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.2.4

Lorenzo Meler Ferraz

159

ALGORITMOS LMS EN LA FRECUENCIA

Combinacin de tonos 3 (1000, 2000, 3000 Hz). (=0.000001)

CANCELACION DE ECO 1.5

0.5 77.4374 dB e rro r 0

-0.5

-1

-1.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.2.5

Voz. (=0.001)
salida estimada 0.2 0.1 0 -0.1 -0.2 0 0.4 0.2
0

2 salida deseada

-0.2 -0.4 0 1
2

Figura 3.3.2.6

Lorenzo Meler Ferraz

160

ALGORITMOS LMS EN LA FRECUENCIA

Msica. (=0.001)

0.01 0.005 0 -0.005 -0.01 0.05 0 1

salida estimada

salida deseada

-0.05

Figura 3.3.2.7

Ruido blanco. (=0.001)

CANCELACION DE ECO 1.5

0.5 e rro r 16.9656 dB 0

-0.5

-1

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.2.8

Lorenzo Meler Ferraz

161

ALGORITMOS LMS EN LA FRECUENCIA CONCLUSIONES: Una de las primeras apreciaciones, en una primera comparacin nada exhaustiva entre los dos algoritmos, sera la similitud en el valor del factor de convergencia , para conseguir los mejores resultados, aunque estos no sean iguales. Pero el anlisis comparativo entre los dos algoritmos, se realizar con mayor profundidad en apartados posteriores.

Observando especialmente los resultados proporcionados por este algoritmo, se pasa a detallar las conclusiones de dicha observacin para cada una de las seales. Se asume, como en el caso anterior, que para seales peridicas (sin importar si las frecuencias altas o bajas), el factor de convergencia deber ser bajo para no conseguir una divergencia en el resultado, tanto esto llevar a que la cancelacin del eco no sea rpida como cabra esperar. las son muy por tan

Una vez ms, para las seales peridicas, la cancelacin se consigue a los 2.5 seg. Y a partir de ah se estabiliza la seal, dejando un error residual muy pequeo, como se ve en el nmero de decibelios cancelados. La estabilidad mencionada no se refiere a que la seal del error en s sea estable, porque como se puede ver, hay altibajos constantes, eso s, debido a no estar utilizando el gradiente forzado. El comportamiento del algoritmo para seales de alta frecuencia (3000 Hz.), es un poco diferente, tanto en el tiempo de cancelacin como en el error residual, que es bastante menor en este caso que el la seal de 50 Hz. En las combinaciones de tonos, tanto para el primero, que es el que aparece con gran separacin entre sus valores y de frecuencias altas y bajas, como para el segundo, con los valores de las frecuencias muy bajos, los resultados son muy parecidos, el eco se llega a cancelar rpidamente (instantes despus de un segundo) o lo que es lo mismo las seales se llegan a parecer bastante transcurrido este tiempo. Vemos como del error no se cancela tanto como esperbamos. Mayor eficacia se consigue con la tercera combinacin de tonos (los que estn bastante separados y adems son de alta frecuencia), ya que la cancelacin es an ms rpida que en todos los casos anteriores (se puede aventurar a la aproximacin de un segundo).

Lorenzo Meler Ferraz

162

ALGORITMOS LMS EN LA FRECUENCIA

Tras analizar las seales peridicas, tocar realizar la observacin de las seales no peridicas (voz, ruido blanco y msica). Los resultados vuelven a ser parecidos a los obtenidos en el algoritmo anterior (pero como se ha sealado antes no se entrar a hacer ninguna comparacin con nada anterior, por el momento). El factor de convergencia vuelve a tomar valores superiores a los utilizados en las funciones peridicas, con lo cual se puede suponer que la convergencia se realizar en un tiempo menor; pero no es as. En nuestro anlisis, estas seales no llegan a alcanzar los valores altos de la seal deseada, debido a cambios bruscos en la amplitud. En el caso de la voz, la seal estimada, nicamente llega a la mitad del valor de la seal deseada cuando esta ltima toma las amplitudes ms altas. Como lado positivo, hay que decir que se tiene un gran parecido entre estas dos seales (en lo que a forma de la seal se refiere). Cuando observamos la seal de msica, la situacin empeora, debido a que si en el caso anterior las amplitudes entre la seal deseada y la estimada eran en una proporcin de , ahora, la proporcin entre las mismas es de 1/10. El parecido sigue siendo bastante bueno, pero como en esta seal se producen cambios ms bruscos que en la anterior, es imposible conseguir una estabilidad para la seal estimada. En el caso de que el factor de convergencia se pudiera aumentar, este resultado lo se podra mejorar, ya que los cambios bruscos se subsanaran con una mayor. Mas adelante se ver como hallar o adaptar este factor segn la potencia de la seal, con lo que se subsanar en parte el error citado. Como en el caso anterior, no poner la seal de error por falta de informacin quiere decir que este algoritmo no cancela para este tipo de seales Los resultados obtenidos con la seal de ruido blanco son bastante buenos, ya que se obtiene una cancelacin del error al cabo de relativamente poco tiempo (poco ms de un segundo), si se compara con las seales anteriores.

Lorenzo Meler Ferraz

163

ALGORITMOS LMS EN LA FRECUENCIA

DATOS:
50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 2.5 500Hz. --TONOS 1000Hz. --3000Hz. 1

9.739

---

---

77.4374

COMB. 1 1.5

COMBINACIN DE TONOS COMB. 2 1.5

COMB. 3 1

20.9197

17.5562 SEALES NO PERIDICAS MSICA ---

774374

VOZ ---

RUIDO ---

---

---

16.9656 (tras 3 seg.)

Tabal 3.3.2.1

Lorenzo Meler Ferraz

164

ALGORITMOS LMS EN LA FRECUENCIA

3.3.3.- comparativa resultados LMS FORZADO vs. LMS NO FORZADO

TONO 50Hz. LMS FORZADO (=0.000001)


CANCELACION DE ECO 0.04 0.03 0.02 0.01 e rro r 0 -0.01 -0.02 -0.03 -0.04 e rro r 31.1000 dB 0.04 0.03 0.02 0.01 0 -0.01 -0.02 -0.03 -0.04

LMS NO FORZADO (=0.000001)


CANCELACION DE ECO

9.9739 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.3.1

TONO 1000Hz. LMS FORZADO (=0.000005)


CANCELACION DE ECO 0.3 0.3

LMS NO FORZADO (=0.000001)


CANCELACION DE ECO

0.2

0.2

0.1 115.1189 dB 0 e rro r e rro r

0.1 77.4374 dB 0

-0.1

-0.1

-0.2

-0.2

-0.3

-0.3

-0.4

0.5

1.5 2 tiempo (seg.)

2.5

3.5

-0.4

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.3.2

Lorenzo Meler Ferraz

165

ALGORITMOS LMS EN LA FRECUENCIA

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). LMS FORZADO (=0.000005)
CANCELACION DE ECO 1 0.8 0.6 0.4 0.2 e rro r 0 -0.2 -0.4 -0.6 -0.8 -1 e rro r 21.6124 dB 1 0.8 0.6 0.4 0.2 20.9197 dB 0 -0.2 -0.4 -0.6 -0.8 -1

LMS NO FORZADO (=0.000001)


CANCELACION DE ECO

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.3.3

Combinacin de tonos 2 (50, 100, 150 Hz). LMS FORZADO (=0.00005)


CANCELACION DE ECO 0.5 0.4 0.3 0.2 0.1 e rro r 0 -0.1 -0.2 -0.3 -0.4 -0.5 0.5 0.4 0.3 0.2 116.0901 dB e rro r 0.1 0 -0.1 -0.2 -0.3 -0.4 0 0.5 1 1.5 2 tiempo (seg.) 2.5 3 3.5 -0.5 17.5562 dB

LMS NO FORZADO (=0.000001)


CANCELACION DE ECO

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.3.4

Lorenzo Meler Ferraz

166

ALGORITMOS LMS EN LA FRECUENCIA

Combinacin de tonos 3 (1000, 2000, 3000 Hz). LMS FORZADO (=0.000001)


CANCELACION DE ECO 1.5 1.5

LMS NO FORZADO (=0.000001)


CANCELACION DE ECO

0.5 77.4374 dB 0

0.5 77.4374 dB 0

e rro r

-0.5

e rro r 3 3.5

-0.5

-1

-1

-1.5

0.5

1.5 2 tiempo (seg.)

2.5

-1.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.3.5

VOZ LMS FORZADO


0.2 0.1 0 -0.1 -0.2 0.4 0.2 0 -0.2 -0.4 0 1 2 3 4 0 1 2 salida deseada 3 4 salida estimada

LMS NO FORZADO
0.2 0.1 0 -0.1 -0.20 0.4 0.2
0

salida estimada

2 salida deseada

-0.2 -0.4 0 1
2

Figura 3.3.3.6

Lorenzo Meler Ferraz

167

ALGORITMOS LMS EN LA FRECUENCIA

MSICA

LMS FORZADO
0.04 0.02 0 -0.02 -0.04 0
0.05

LMS NO FORZADO
0.01 0.005 0 -0.005 salida estimada

salida estimada

2 salida deseada

-0.01 0.05

1 2 salida deseada

-0.05 0

-0.05 0

Figura 3.3.3.7

RUIDO BLANCO LMS FORZADO (=0.001)


CANCELACION DE ECO 1.5 1.5

LMS NO FORZADO (=0.001)


CANCELACION DE ECO

0.5 e rro r e rro r 18.3138 dB 0

0.5 16.9656 dB 0

-0.5

-0.5

-1

0.5

1.5 2 tiempo (seg.)

2.5

3.5

-1

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.3.3.8 CONCLUSIONES: Echando un vistazo rpido a las figuras de este apartado, no es arriesgarse el decir que con el algoritmo LMS NO FORZADO, se consiguen peores resultados para todo tipo de seales ya que se deja por hacer la autocorrelacin del error y esas operaciones necesarias

Lorenzo Meler Ferraz

168

ALGORITMOS LMS EN LA FRECUENCIA

para evitar el solapamiento de las seales (ltimas tres ecuaciones de la figura 3.2.1.2). En las seales peridicas, el comportamiento viene siendo el mismo, es decir, a medida que se aumenta la frecuencia del tono, mejora el descenso del eco. Esto ltimo es quizs la nica similitud que se puede encontrar en los dos algoritmos, porque del resto de observaciones son todo diferencias. Las tres caractersticas que ya alguna vez se han sealado para poder decidir que convergencia del error es mejor o peor, en este caso se decantan por el algoritmo LMS FORZADO. Se recuerdan estas tres caractersticas, tiempo que tarda en llegar a nuestro valor residual del error, el valor final de este error y estabilidad. Para estas seales peridicas es bastante apreciable la diferencia en las dos primeras caractersticas, porque aunque haya seales que para el algoritmo LMS NO FORZADO consigan mejorar el valor de convergencia, el LMS FORZADO lo har mejor y con mayor rapidez. Los resultados que ms se pueden parecer entre ellos son para un tono de alta frecuencia y una combinacin de tonos de alta frecuencia tambin (tonos 3), pero ni en este caso, al cabo del mismo tiempo (3 seg.), no se consigue ni la mitad de la reduccin de la potencia del error. En la seal de voz se ve como para el algoritmo LMS NO FORZADO le cuesta mucho ms recuperar el valor de la seal deseada, al igual que alcanzar el valor deseado. Esto repercute en la similitud en la que se observa para definir si es o no buena la convergencia del error. La similitud es bastante mayor en el algoritmo forzado que en el no forzado. En la msica ocurre algo diferente, si que es verdad que sigue siendo mejor la similitud del primer algoritmo, pero adems se puede observar que la amplitud a la que se consigue llegar con el segundo algoritmo es casi diez veces menor que la seal deseada, mientras que con el LMS FORZADO, el nivel de amplitud llega a conseguir un poco ms de la mitad de lo que deseamos. Se recuerda que aunque las seales se parezcan, si no se ha representado la seal de cancelacin de eco, es porque no aporta informacin debido a la falta de dicha cancelacin. Por ltimo, en la seal de ruido blanco, se puede asegurar que la seal se cancela, al igual que en el resto

Lorenzo Meler Ferraz

169

ALGORITMOS LMS EN LA FRECUENCIA

de seales, mejor que en el FORZADO que en el NO FORZADO, pero esta vez, la diferencia no es tan notable como antes. El nivel de error final (refiriendo al nivel de error lineal), aunque en el primero se consigue reducir el error en un tiempo menor, el tiempo necesario del segundo tampoco es nada desdeable, incluso se podra decir que es bueno. As pues, con todo esto se concluye que salvo por el nmero de operaciones que necesita cada uno (estudio que se realiza en el apartado siguiente), el mejor algoritmo con bastante diferencia es el FORZADO como cabra esperar, pero lo que igual no se esperaba era que hubiera tanta diferencia en los resultados obtenidos. Se reitera pues que el nico resultado para una de estas seales de entrada que se puede considerar aceptable y que se podra usar para obtener unos resultados ptimos, sera el ruido blanco.

DATOS:
TONOS 150 Hz. 1000 Hz. -----------------

50 Hz. TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) LMS FORZADO LMS NO FORZADO LMS FORZADO LMS NO FORAZADO LMS FORZADO LMS NO FORZADO LMS FORZADO LMS NO FORZADO LMS FORZADO LMS NO FORZADO LMS FORZADO LMS NO FORZADO 2.5 2.5 31.100 9.9739 COMB. 1 1 1.5 21.6124 20.9197 VOZ ---------

3000 Hz. 1 1 111.4538 77.4374 COMB. 3 1 1 114.5435 77.4374 RUIDO -----

COMBINACIN DE TONOS COMB. 2 1 1.5 116.0901 17.5562 SEALES NO PERIDICAS MSICA ---------

18.3138 (tras 3 seg.) 16.9656 (tras 3 seg.)

Tabla 3.3.3.1

Lorenzo Meler Ferraz

170

ALGORITMOS LMS EN LA FRECUENCIA

3.3.4.- clculo del nmero de operaciones.


Las operaciones que hay que realizar en ese algoritmo son las mismas que en el algoritmo anterior, salvando, por supuesto, la mejora por no realizar la FFT y la IFFT del gradiente forzado (operaciones que el algoritmo realiza para dar mayor robustez y estabilidad al sistema y que ahora se omiten para ganar en rapidez de ejecucin). As pues, las operaciones se reducen a cinco (en vez de seis) y en la quinta se deber quitar la IFFT despus de multiplicar X(k)E(k). Sin querer caer en ninguna redundancia sino en una mayor claridad, se vuelve a explicar en que consiste cada operacin, del mismo modo que se habl en el apartado anterior. Se recuerda tambin que ecuaciones 3.2.3.1 y 3.2.3.2 necesario. habr que utilizar en el momento que las sea

La primera operacin es la FFT (transformada rpida de Fourier), para calcular la X(k) (seal en el dominio de la frecuencia). Una FFT nos da 2Nlog2(N) sumas y 4N/2log2(N) multiplicaciones. En segundo lugar hay que multiplicar X(K)W(k) y como el tamao del filtro W es de N, habr N multiplicaciones complejas, es decir 4N multiplicaciones reales. En esta misma operacin hay tambin una IFFT de N coeficientes, es decir 2Nlog2(N) sumas y 4N/2log2(N) multiplicaciones ms. En la tercera hay simplemente N restas. La cuarta operacin consta nicamente de una FFT para conseguir el error en el dominio de la frecuencia E(k), por lo tanto 2Nlog2(N) sumas y 4N/2log2(N) multiplicaciones ms.
Quinta operacin. Entrando ya en lo que es el algoritmo LMS se tiene que hacer una multiplicacin de dos vectores complejos X (k) E (k), un total de 4N multiplicaciones reales.

Despus de ver estos resultados que se muestran en la tabla 3.3.4.1, habr que compararlos con los obtenidos para el algoritmo forzado, y sacar as conclusiones de la reduccin de operaciones.

Lorenzo Meler Ferraz

171

ALGORITMOS LMS EN LA FRECUENCIA

Primera op. Segunda op. Tercera op. Cuarta op. Quinta op. Total

Sumas f(N) f(1024) 2Nlog2(N) 20480 2Nlog2(N) 20480 N 1024 2Nlog2(N) 20480 ------------- ------6Nlog2(N)+N 62464

Productos f(N) f(1024) 4N/2log2(N) 20480 4N/2log2(N)+4N 4096+20480 --------------------------4N/2log2(N) 20480 4N 4096 12 N/2log2(N)+8N 69632

Tabla 3.3.4.1

Para hacer esto, se retrasan los valores del algoritmo forzado del no forzado (constrained-unconstrained), viendo as la diferencia de operaciones.
ALGORITMO FORZADO NO FORZADO SUMAS 10Nlog2(N)+3N-2 6Nlog2(N)+N 2 Nlog2(N)+2N-2 PRODUCTOS 20 N/2log2(N)+10N 12 N/2log2(N)+8N Nlog2(N)+2N

DIFERENCIA

105407 62464 42943

112640 69632 43008

Tabal 3.3.4.2

Se puede apreciar una clara mejora en lo que a operaciones se refiere, debido nicamente a quitar una FFT y una IFFT.

5 4.5 4 3.5 n u m e ro d e su m a s 3 2.5 2 1.5 1 0.5 0

x 10

SUMAS REALIZADAS POR CADA ALGORITMO algoritmo forzado algoritmo no forzado

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

figura 3.3.4.1

Lorenzo Meler Ferraz

172

ALGORITMOS LMS EN LA FRECUENCIA

El ejemplo utilizado es el mismo que en casos anteriores, un filtro de N=1024 coeficientes. Est claro que el aumento de la diferencia de las operaciones ser proporcional con el aumento del nmero de coeficientes que se utilicen en este algoritmo, para ello, se pueden ver las figuras 3.3.3.1 y 3.3.3.2.

x 10

PRODUCTOS REALIZADOS POR CADA ALGORITMO algoritmo forzado algoritmo no forzado

n u m e ro d ep ro d u cto s

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

figura 3.3.4.2

Lorenzo Meler Ferraz

173

ALGORITMOS LMS EN LA FRECUENCIA

3.3.5.- cdigo del programa.


No se ve necesario volver a escribir el cdigo del programa, ya que en el punto 3.2.4. se expone todo el cdigo completo, y se seala como quedara el mismo para el caso actual (no forzado). Como ya se ha dicho, el algoritmo no forzado (unconstrained), es un caso particular del forzado, ya que lo nico que se hace es eliminar o quitar, unas operaciones (consiguiendo as una mejora en el tiempo de ejecucin) que traducido en el cdigo, es simplemente reducirlo en 8 lneas menos (en las cuales se encuentran la FFT y la IFFT, adems de un bucle for). Estas ocho lneas que se omiten en el presente cdigo, estn muy bien indicadas en el punto 2.4.

Lorenzo Meler Ferraz

174

ALGORITMOS LMS EN LA FRECUENCIA

3.4.-ADAPTACIN DEL FACTOR DE CONVERGENCIA . 3.4.1.- adaptacin segn potencia de la seal.


Utilizar la potencia de la seal para adaptar este factor, que hasta ahora era un valor constante, dar una cierta ventaja con respecto a algoritmos anteriores. Se explicar el porqu de esta mejora al final de este captulo, una vez se haya visto todas las ecuaciones necesarias para conseguir la adaptacin de este valor. Lo primero que se har, ser calcular la potencia de la seal de entrada al sistema:
la potencia de X(k) = X(k)
2

ec. 3.4.1.1

as, para cada valor de la frecuencia k, se obtiene una potencia instantnea de la seal X. Al ser esta seal un vector en el dominio espectral, el primer coeficiente corresponde al valor de la seal de entrada de menor frecuencia y el ltimo al valor de la seal de entrada de mayor frecuencia. Se utiliza una herramienta para incluir el efecto de estimaciones de esta potencia a iteraciones anteriores si se quiere dar ms importancia al valor ms nuevo de la seal o por el contrario se quiere tener ms en cuenta lo que ha valido sta en muestras pasadas. Para definir esto anterior, se utiliza la siguiente ecuacin:

Pk (n) = Pk (n 1) + (1 ) X n (k ) en un instante n
ec. 3.4.1.2

k = 0,1,....,2 M 1

donde es una constante que se encuentra en el rango 0 < < 1 y n es la iteracin considerada. Esta constante, tambin llamada factor de olvido, controla la efectividad de la memoria del proceso descrito en la ecuacin anterior, la memoria de la seal de entrada a la aplicacin, X(k).
As con esto, se definir coeficientes llamado D(k): ahora otro vector de

Lorenzo Meler Ferraz

175

ALGORITMOS LMS EN LA FRECUENCIA


D (k) = 1 (divisin que se har coeficiente a coeficiente) P (k) ec. 3.4.1.3

As, cogiendo el valor de P(k) para la potencia media de la seal, el factor de convergencia , es reemplazado por un vector de N coeficientes:

(k) = D (k)

ec. 3.4.1.4

donde es otra constante que generalmente se le da un valor pequeo.

Lorenzo Meler Ferraz

176

ALGORITMOS LMS EN LA FRECUENCIA

3.4.2.- resultados LMS forzado con adaptativa


En un principio se deseaba mostrar los resultados obtenidos para las mismas seales analizadas hasta el momento, pero se ha decidido que nicamente se representarn las seales que aporten una clara mejora, o cuanto menos aquellas que sus resultados sean analizables, entendiendo por esto que al observar su figura se pueda dar datos de cancelacin. Despus de realizar muchas pruebas, se lleg a la conclusin de que este algoritmo no proporciona unos resultados ptimos para seales de un tono con altas frecuencias y combinaciones de pocos tonos con altas frecuencias. No as ocurre con seales no peridicas, y aunque se sabe que estas se estn tomando como una combinacin de seales peridicas (se estn usando sus DFTs), se considera que el conjunto de tonos es muchsimo mayor que para cualquier combinacin que se haya podido reproducir manualmente, y por ello, las caractersticas de estas seales son diferentes. Se decide pues, en este apartado, representar nicamente las seales de voz, msica y ruido, aunque se prestar tambin especial atencin a la seal de tonos 3, ya que se consigue su cancelacin pero haciendo variaciones en el algoritmo. Esta variacin consiste en cambiar el signo que posee la seal estimada y, y se decide hacer esto debido a que en las observaciones que se han hecho se vio como el resultado, al superponer la seal estimada y la deseada, se encontraba un desfase de rad. entre las dos seales. Tambin se representarn seales con baja frecuencia como el tono de 50Hz. y la combinacin de tonos 1 y 2 (aunque de esta ltima no se puede cancelar el eco con tanta rapidez y precisin como con el resto de seales)

Lorenzo Meler Ferraz

177

ALGORITMOS LMS EN LA FRECUENCIA Tono 50 Hz., =0.001 y =0.7


CANCELACION DE ECO 0.08 0.06 0.04 0.02 e rro r 0 -0.02 -0.04 -0.06 -0.08

3.1765 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.4.2.1 Combinacin de tonos 1 (50,150, 1000 y 3000 Hz) =0.001 y =0.5

CANCELACION DE ECO 4 3 2 1 e rro r 0 -1 -2 -3 -4 12.7411 dB

4 5 tiempo (seg.)

Figura 3.4.2.2

Lorenzo Meler Ferraz

178

ALGORITMOS LMS EN LA FRECUENCIA

Combinacin de tonos 2 (50,150 y 500Hz.) =0.001 y =0.5


CANCELACION DE ECO 0.8 0.6 0.4 0.2 e rro r 0 -0.2 -0.4 -0.6 -0.8 3.6184 dB

3 tiempo (seg.)

Figura 3.4.2.3

Msica. =0.8, =0.9

CANCELACION DE ECO 0.15

0.1 5.1862 dB 0.05

0 e rro r -0.05 -0.1 -0.15 -0.2

0.5

1.5

2.5

3.5

Figura 3.4.2.4

Lorenzo Meler Ferraz

179

ALGORITMOS LMS EN LA FRECUENCIA

Voz (=0.5

=0.8)

CANCELACION DE ECO 1.5

0.5

5.7065 dB

e rro r

-0.5

-1

-1.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.4.2.4

ruido blanco =0.5 y =0.8

CANCELACION DEL ECO 6

e rro r

1 23.3244 dB 0 0 1 2 3 tiempo 4 5 6

Figura 3.4.2.5

Lorenzo Meler Ferraz

180

ALGORITMOS LMS EN LA FRECUENCIA CONCLUSIONES: El tipo de representacin de todas las seales ha sido la misma. Se ha decidido poner el error lineal que cada una de ellas incluso para las seales de voz y de msica. Como se coment al principio de este apartado, nicamente se han colocado los resultados obtenidos de las seales que ahora se pudieran analizar.

Al igual que en el resto de representaciones, los valores utilizados de y , son los que mejores resultados ofrecen, despus de haber dado varios valores a estos. Entre las primeras, se puede ver como el tono de 50Hz, tras una pequea inestabilidad al principio, llega a conseguir una cierta estabilidad y a su vez una cierta reduccin del eco, al cabo de aproximadamente 2 seg. En la siguiente seal tonos 1, aunque se pueda pensar en un primer vistazo que el resultado obtenido es mejor que el anterior, hay que observar el eje de tiempos, ya que aqu el tiempo de seal que se ha procesado es bastante mayor, por eso no se puede apreciar tanto la inestabilidad que ofrece la seal al principio, para luego permanecer al cabo de cuatro segundos en el valor de error residual. En tonos 2, la cosa empeora, la cancelacin del error cada vez va siendo menor, exponencialmente menor. Por eso no es posible apreciar cual es el valor el error residual. Para ello se debera dejar transcurrir durante un tiempo muy alto el algoritmo. No es cuestin de aventurarse a decir al cabo de cuanto tiempo se llegara a ese valor, pero presumiblemente es un tiempo demasiado alto. La seal que se ha creado a mano denominada tonos 3, que consiste en una combinacin de tonos de alta frecuencia, y que es habitual en todos los algoritmos anteriores, se ha omitido al igual que la seal de un tono suelto de alta frecuencia. Esto se debe a que no se ha podido conseguir para este tipo de seales ninguna cancelacin con ningn valor de ni de . La potencia de estas seales de entrada es constante, debido a su carcter peridico por ello no tiene sentido adaptar el factor de convergencia para este tipo de seal. As pues, la siguiente seal a analizar sera la msica, representada como ya se ha dicho anteriormente, por el error lineal que proporciona y no por la comparacin entre la seal estimada y la deseada. Si se ha elegido esta forma de representacin es sencillamente porque existe una cancelacin ms o menos clara, sobre todo si la se compara con la seal inicial, pero de ello se dar cuenta en el
Lorenzo Meler Ferraz

181

ALGORITMOS LMS EN LA FRECUENCIA

apartado de la comparativa. Aqu, en un principio, slo se observa el dato del error residual de algo ms de 3dB. con respecto a la seal de entrada. Algo similar ocurre cuando se introduce la seal de voz en la entrada, pero en este caso el error final disminuye an ms. Recordar que la potencia del error final a la que se est refiriendo continuamente, no es exclusivamente el valor ltimo de al potencia del error con respecto a la seal deseada, sino que es un promedio de las 300 ltimas muestras de esa potencia del error. Para terminar, se comentar la seal de ruido blanco, una seal que ofrece la mejor cancelacin de todas las seales que se han analizado con este algoritmo. Mejor en tiempo de cancelacin, donde a simple vista se puede decir que se cancela al cabo de dos segundos, como en el nivel de error residual, las dos propiedades ms importantes para caracterizar el algoritmo.
DATOS:
50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 2.5 500Hz. --TONOS 1000Hz. --3000Hz. ---

3.1765

---

---

---

COMB. 1 ---

COMBINACIN DE TONOS COMB. 2 ---

COMB. 3 ---

112.7411 (tras 8 seg.) VOZ ---

3.6184 (tras 5.5 seg.)

---

SEALES NO PERIDICAS MSICA ---

RUIDO 2.5

5.7065 (tras 3 seg.)

5.1862 (tras 3 seg.)

23.3244

Tabla 3.4.2.1
Lorenzo Meler Ferraz

182

ALGORITMOS LMS EN LA FRECUENCIA

3.4.3.- comparativa LMS con y sin adaptativa


Dado que nicamente se han analizado seis seales en el presente captulo, por las razones expuestas en el punto 4.2, la comparativa se har de los resultados obtenidos en dicho apartado con los correspondientes para el algoritmo LMS sin la adaptativa.
TONO 50Hz. LMS, SIN ADAPTAR (=0.000001)
CANCELACION DE ECO 0.04 0.03 0.02 0.01 e rro r 0 -0.01 -0.02 -0.03 -0.04 e rro r 31.1000 dB 0.08 0.06 0.04 0.02 0 -0.02 -0.04 -0.06 -0.08

LMS, ADAPTADA =0.001 y =0.7


CANCELACION DE ECO

3.1765 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

Figura 3.4.3.1

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). LMS, SIN ADAPTAR (=0.000005)
CANCELACION DE ECO 1 0.8 0.6 2 0.4 0.2 e rro r 0 -0.2 -0.4 -2 -0.6 -0.8 -1 -3 -4 e rro r 21.6124 dB 1 0 -1 12.7411 dB 4 3

LMS, ADAPTADA =0.001 y =0.5


CANCELACION DE ECO

0.5

1.5 2 tiempo (seg.)

2.5

3.5

4 5 tiempo (seg.)

Figura 3.4.3.2

Lorenzo Meler Ferraz

183

ALGORITMOS LMS EN LA FRECUENCIA Combinacin de tonos 2 (50, 100, 150 Hz). LMS, SIN ADAPTAR (=0.00005)
CANCELACION DE ECO 0.5 0.4 0.3 0.4 0.2 0.1 e rro r 0 -0.1 -0.2 -0.4 -0.3 -0.4 -0.5 -0.6 -0.8 0.2 116.0901 dB e rro r 0 -0.2 0.8 0.6 3.6184 dB

LMS, ADAPTADA =0.001 y =0.5


CANCELACION DE ECO

0.5

1.5 2 tiempo (seg.)

2.5

3.5

3 tiempo (seg.)

Figura 3.4.3.3

VOZ LMS, SIN ADAPTAR (=0.00005)


salida deseada 0.4 0.2 0 -0.2 -0.40 0.2 0.1 0 -0.1 -0.2 0 1 2 salida estimada 3 4
1.5 1 0.5 0 -0.5 -1 0 0.5 1 1.5 tiempo 2 2.5 3 3.5 SEAL DESEADA 2 1 0 -1 -2

LMS, ADAPTADA =0.8

=0.5 y

0.5

1.5

2.5

3.5

SEAL ESTIMADA

Figura 3.4.3.4

Lorenzo Meler Ferraz

184

ALGORITMOS LMS EN LA FRECUENCIA

MSICA

LMS, SIN ADAPTAR (=0.01)


salida deseada
0.05 0

LMS, ADAPTADA
0.2 0.1 0 -0.1 -0.2

=0.8, =0.9

SEAL DESEADA

0.5

1.5

2.5

3.5

-0.05 0 0.04 0.02 0 -0.02 -0.04 0

SEAL ESTIMADA

0.2 0.1 0 -0.1 -0.2

salida estimada

0.5

1.5 tiempo

2.5

3.5

Figura 3.4.3.5

RUIDO BLANCO LMS, SIN ADAPTAR (=0.001)


CANCELACION DE ECO 1.5 6

LMS, ADAPTADA =0.8

=0.5 y

CANCELACION DEL ECO

4 0.5 e rro r e rro r 18.3138 dB 0 2 3

-0.5 1 23.3244 dB -1 0 0.5 1 1.5 2 tiempo (seg.) 2.5 3 3.5 0 0 1 2 3 tiempo 4 5 6

Figura 3.4.3.6 CONCLUSIONES: En este apartado habr que diferenciar bien entre las seales peridicas y las no peridicas, ya que el comportamiento para unas y para otras, comparndolas con los datos obtenidos para el LMS FORZADO, es totalmente diferente.

As, con las primeras seales peridicas, tono a 50Hz., se ve que al utilizar el factor de convergencia adaptado, se
Lorenzo Meler Ferraz

185

ALGORITMOS LMS EN LA FRECUENCIA

pierde precisin, nivel de error, ya que para el primero la potencia del error calculada es mucho menor que para el segundo (niveles en dBs de la figura 3.4.3.1), y tiempo de cancelacin tambin es mejor para el algoritmo sin incorporar la adaptacin de . Cuando se observa la figura 3.4.3.2, se ve como se ha mejorado en la comparacin de las dos seales, ya que ahora la diferencia del nivel residual del error es menor que en la figura 3.4.3.1. Tambin hay que tener en cuenta que en este caso, la seal utilizada en la adaptacin del factor de amortiguamiento es de mayor duracin, se ha utilizado un mayor tiempo de computacin a la hora de obtener los resultados, por ello, es presumible que el error alcanzado sea menor, pero tambin se puede observar que este tiempo extra que se ha utilizado, el descenso del error no ha sido muy pronunciado. La ltima seal peridica que se va a analizar es la denominada tonos2, representada en la figura 3.4.3.3. La mejora que se observa respecto a otras seales cuando se usa el algoritmo LMS sin adaptar, no se ve correspondida al usar la adaptacin de este factor. La reduccin para el segundo algoritmo es bastante mala, aprecindose a simple vista, sin casi ser necesario el mirar la potencia del error final que sealamos en todas las grficas. Mirando la figura 3.4.3.4 se comprueba lo que al principio de esta conclusin se avanzaba, se ha dado la vuelta en la mejora de los resultados, dado que ahora, adaptando la se consiguen unos resultados mucho ms satisfactorios. De hecho, tanto en esta figura, la voz, como en el sonido (figura 3.4.3.5), la similitud entre las seales cuando la se adapta este factor es mucho mayor que la similitud cuando no se adapta. Esto lo se poda suponer, ya que si en el anlisis por separado, en el primer algoritmo no se represent el error sino las seales como estn aqu, es debido a que el error no proporcionaba ninguna informacin, sin embargo, cuando se adapta, el error si que se puede interpretar, como se ve en las figuras 3.4.2.4 y 3.4.2.5. Al analizar la figura 3.4.3.6 se puede deducir tambin que hay una mejora al usar este tipo de algoritmo con respecto al anterior, pero tambin habr que fijarse que el tiempo analizado para la segunda seal de error es mayor, por lo que se ha podido llegar a un nivel mucho menor gracias a este tiempo, aunque parece difcil que en el tiempo que le queda al primero para llegar al tiempo del segundo pueda disminuir su potencia de error en 5dB.

Lorenzo Meler Ferraz

186

ALGORITMOS LMS EN LA FRECUENCIA DATOS:


TONOS 150 Hz. 1000 Hz. -----------------

50 Hz. TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) LMS,SIN ADAP. LMS ADAP. LMS,SIN ADAP. LMS ADAP. LMS,SIN ADAP. LMS ADAP. LMS,SIN ADAP. LMS ADAP. LMS,SIN ADAP. LMS ADAP. LMS,SIN ADAP. LMS ADAP. 2.5 2.5 31.100 3.1765 COMB. 1 1 --21.6124

3000 Hz. --------COMB. 3 --------RUIDO --2.5

COMBINACIN DE TONOS COMB. 2 1 --116.0901

12.7411 (tras 3.6164 (tras 8 seg.) 5.5 seg.) SEALES NO PERIDICAS VOZ MSICA ------5.7065 (tras 3 seg.) ------5.1862 (tras 3 seg.)

18.3138 (tras 3 seg.) 23.3244

Tabla 3.4.3.1

Lorenzo Meler Ferraz

187

ALGORITMOS LMS EN LA FRECUENCIA

3.4.4.- clculo del nmero de operaciones


A los algoritmos que se le introduce este adaptacin, casi no sufren cambios en su estructura general, pero est claro que habr que aadirle una cantidad de sumas y multiplicaciones que se detallarn a continuacin. Cada vez que se nombre que hay que hacer productos o sumas complejas, se remitir a las ecuaciones 3.2.3.1 y 3.2.3.2.
ecuacin 3.4.1.1, se tiene que hacer una En la multiplicacin de un vector por si mismo, con lo cual ser una multiplicacin compleja por cada coeficiente que posea esta seal (que a su vez, esta seal tendr el mismo nmero de coeficientes que el filtro o sistema), en total 4N multiplicaciones.

En la ecuacin 3.4.1.2, se realizan ms operaciones. En primer lugar una resta, entre 1 y el factor de memoria (una resta). La segunda operacin ser este resultado por el valor que result de multiplicar la seal de entrada por si misma, con lo cual se tendr una multiplicacin de un nmero complejo por un escalar (2N multiplicaciones). Otra operacin dentro de la misma ecuacin es la multiplicacin del factor de memoria por el coeficiente anterior del resultado de la P (2N multiplicaciones). Los resultados de estas dos multiplicaciones se tienen que sumar entre ellos para conseguir el resultado deseado(N-1 sumas complejas, 2(N-1)). Todas estas operaciones, exceptuando la resta, se realizan tantas veces como coeficientes tiene la seal de entrada muestreada X(k), es decir N (como se ha indicado en los parntesis); por lo tanto el resultado del nmero de operaciones en esta ecuacin es: 1 resta + 2(N-1) sumas = 2N-1 sumas; 2N multip. + 2N multip. = 4N multp.; La siguiente ecuacin sera la 3.4.1.3, en la que hay que hacer N divisiones, o lo que es lo mismo, multiplicar cada coeficiente por 10-1. Como en otras ocasiones, se omitir el clculo de ninguna divisin, debido a que en el DSP del que se dispone (dispositivo en el que se debern implementar estos algoritmos en un futuro), no se pueden hacer divisiones directamente. La ecuacin 3.4.1.4 utiliza 2N multiplicaciones, ya que hay que multiplicar por todos los coeficientes del vector resultante de las operaciones anteriores.

Lorenzo Meler Ferraz

188

ALGORITMOS LMS EN LA FRECUENCIA

Como se ve, estas operaciones son adicionales a cualquiera de los algoritmos anteriores, ya que con ellas se obtiene lo que antes era una simple constante. En el cuadro siguiente, se ver el aumento en el caso genrico, es decir con N coeficientes y para el caso concreto de N=1024, como se ha estado haciendo hasta ahora con los dems clculos.
ALGORITMO FORZADO ADAPTATIV. SUMAS 10Nlog2(N)+3N-2 2N-1 5 Nlog2(N)+5N-1 PRODUCTOS 20N/2log2(N)+10N 10N 5N/2log2(N)+20N

TOTAL OP.

105407 2047 107454

112640 10240 122880

Tabla 3.4.4.1

La tabla 3.4.4.1 valdra igual para el algoritmo del no forzado, porque como ya se ha dicho antes, el nmero de operaciones extra que introduce esta adaptacin, no depende del algoritmo utilizado.

x 10

PRODUCTOS REALIZADOS POR CADA ALGORITMO forzado sin adaptar forzado adapatado

n u m e ro d ep ro d u cto s

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

Figura 3.4.4.1

Lorenzo Meler Ferraz

189

ALGORITMOS LMS EN LA FRECUENCIA


5

5 4.5 4 3.5 n u m e ro d e su m a s 3 2.5 2 1.5 1 0.5 0

x 10

SUMAS REALIZADAS POR CADA ALGORITMO forzado sin adaptar forzado adaptado

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

Figura 3.4.4.1

Despus de ver como aumenta el nmero de operaciones al utilizar la adaptacin y la mejora o no en la cancelacin del error, habr que decidir si se adopta esta solucin o no en futuras implementaciones en algn DSP. Lo que queda claro es que si las seales que se fuesen a emplear son peridicas como las que se han analizado aqu, no se debe utilizar esta adaptacin del factor de convergencia, ya que empeora la cancelacin del eco y adems da un aporte extra de operaciones que ralentizarn el trabajo en un futuro.

Lorenzo Meler Ferraz

190

ALGORITMOS LMS EN LA FRECUENCIA

3.5.-CONVOLUCIN CIRCULAR 3.5.1.- diagrama de bloques e instrucciones


El afn por reducir an ms el nmero de operaciones para conseguir una mayor eficacia en la resolucin del problema inicial, hace que se llegue a este punto, intentar resolver un filtrado adaptativo por aproximacin de mnimos cuadrados utilizando la convolucin circular, en vez de la convolucin lineal, que era la que usbamos hasta ahora en todos los algoritmos. Esta convolucin circular habr que traducirla al dominio de la frecuencia, y una vez ah se tendr el diagrama de bloques de la figura 3.5.1.1 Se puede apreciar como se reduce el nmero de operaciones, pero por supuesto, como en cualquier sistema que se precie, el ahorro en una cosa, encarece otra, y este caso no es una excepcin; as pues se mejorar en el tiempo de computacin del algoritmo, pero, en teora, se perder robustez y estabilidad. La figura 3.5.1.1 muestra el diagrama de bloques para la realizacin del algoritmo LMS utilizando la convolucin circular. En ella se ve como nicamente se trabaja en el dominio de la frecuencia para todas las seales, y como stas tienen una longitud de L coeficientes (L=N/2), a diferencia de los otros algoritmos que trataban con vectores de N elementos, por lo tanto, a priori, se puede decir que los anteriores algoritmos utilizarn ms operaciones que el presente. Pero no hay que adelantar acontecimientos, todo esto ser analizado en los siguientes apartados, en los cuales se ver el nmero de operaciones que realiza este algoritmo, as como los resultados obtenidos en la simulacin con diferentes seales de entrada (X); se comparar todo esto con los resultados obtenidos en algoritmos anteriores y se vern sus ventajas e inconvenientes. En un principio, para este algoritmo, se propuso hacer un anlisis tanto adaptando el factor de convergencia segn la potencia de la seal de entrad, como sin adaptar; pero al final se decidi que el nico que se iba a representar y estudiar en este proyecto sera adaptando el factor de convergencia, debido a que si este algoritmo proporciona una inestabilidad como se presupona en un principio, al adaptar este factor de convergencia con respecto a la potencia de la seal se ver minimizada, en un principio, dicha inestabilidad. En la figura 5.1.1 se puede observar

Lorenzo Meler Ferraz

191

ALGORITMOS LMS EN LA FRECUENCIA

como se adapta el este factor con respecto a la potencia de la seal de entrada.

DIAGRAMA DE BLOQUES
func acumulamos un bloque nuevo x X Y FFT

x
ABS ^2
retardo

conjugar

x x

d(n) seal deseada

acumulamos un bloque nuevo

D FFT

Figura 3.5.1.1

Lorenzo Meler Ferraz

192

ALGORITMOS LMS EN LA FRECUENCIA INSTRUCCIONES

INICIALIZACIN
W (0) = [0,...,0]
T

de longitud L

PARA CADA NUEVO BLOQUE DE ENTRADA DE N MUESTRAS


X (k) = FFT (x, L) D (k) = FFT (d, L) E (k) = D (k) Y (k)

D(k) = 1/P(k) Pn(k) = Pn(k)+(1-)|Xn(k)|2

y (k ) = IFFT [ X (k )W (k )] W (k + 1) = W (k ) + [D(k )E (k ) X (k )]

Figura 3.5.1.2

Este algoritmo realiza una convolucin circular entre dos vectores. Al contrario que en los anteriores algoritmos, el trmino de error, aqu se calcula directamente en el dominio de la frecuencia. Aqu no se puede usar la parte del algoritmo forzado (tambin llamado gradient constrain) que lo diferenciaba del no forzado, ya que slo se tienen L coeficientes en el dominio de la frecuencia. Antes se realizaba la convolucin circular con solapamiento de muestras para obtener la convolucin lineal y la correlacin. Ahora directamente se realiza la convolucin circular. Contrastando con anteriores algoritmos adaptativos, el vector de error en este caso es calculado directamente en el dominio frecuencial, aunque sera posible llevar a cabo la misma operacin en el dominio temporal. No se utiliza el gradient constrain 3.2.1.1 del presente captulo), porque slo coeficientes en el dominio de la frecuencia que L=N/2 y N es el nmero de coeficientes que (ver figura se tienen L (se recuerda tenan todas

Lorenzo Meler Ferraz

193

ALGORITMOS LMS EN LA FRECUENCIA

las seales en anteriores algoritmos) y estos estn relacionados con los correspondientes coeficientes en el dominio temporal a travs de una FFT de L puntos. Desde el punto de vista de la implementacin, las transformadas de Fourier (FFTs), son colocadas slo tras haber acumulado L muestras de la seal de entrada. Pero es til imaginar que las FFTs son calculadas para cada nueva muestra de datos, en vez de que la frecuencia de muestreo se haga ms pequea, en concreto en un factor de L. De este modo, la FFT opera como un bloque de filtros pasobanda, y este algoritmo puede ser visto como un caso especial de un filtro adaptativo de subbanda. Aunque el algoritmo de convolucin circular fue originalmente diseado para un clculo de FFTs por bloque de datos (anulando de esta forma la superposicin), pueden ser sin embargo calculadas con una mayor frecuencia de muestreo para reducir la distorsin producida por el aliasing.

Lorenzo Meler Ferraz

194

ALGORITMOS LMS EN LA FRECUENCIA

3.5.2.- resultados obtenidos con diferentes seales de entrada


Como en el resto de anlisis, aqu se sigue utilizando como seales de entrada las mencionadas anteriormente, tonos sueltos (de alta y baja frecuencia), combinacin de tonos y seales con ms posibilidades de que se encuentren en un entorno habitual como la voz y la msica, as como el ruido blanco.

Tono 50Hz. =1 y =0.5


CANCELACION DE ECO 1.5

e rro r 0.5

117.3597 dB 0

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.2.1

Lorenzo Meler Ferraz

195

ALGORITMOS LMS EN LA FRECUENCIA Tono 3000Hz. =1 y =0.5


CANCELACION DE ECO 1.4

1.2

0.8 e rro r 0.6 0.4 0.2 184.5226 dB

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.2.2 Tonos 1 (50,150, 1000 y 3000 Hz) =1 y =0.5

CANCELACION DE ECO 2.5

1.5 e rro r

0.5

114.3150 dB

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.2.3

Lorenzo Meler Ferraz

196

ALGORITMOS LMS EN LA FRECUENCIA Tonos 2 (50,150 y 500Hz.) =1 y =0.5


CANCELACION DE ECO 1.4

1.2

0.8 e rro r 0.6 0.4 0.2 109.8742 dB 0

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.2.4

Tonos 3

(1000,2000 y 3000Hz.) =1 y =0.5


CANCELACION DE ECO

2.5

e rro r

1.5

0.5 177.9718 dB

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.2.5

Lorenzo Meler Ferraz

197

ALGORITMOS LMS EN LA FRECUENCIA

msica =1 y =0.5
CANCELACION DE ECO 0.1

0.09

0.08

0.07

0.06 e rro r

0.05

0.04

0.03

0.02 61.0012 dB 0.01

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.2.6

voz =1 y =0.5
CANCELACION DE ECO 1.4

1.2

0.8 e rro r 0.6 0.4 0.2 21.9357 dB

0.5

1.5 tiempo (seg.)

2.5

3.5

figura 3.5.2.7

Lorenzo Meler Ferraz

198

ALGORITMOS LMS EN LA FRECUENCIA

ruido blanco =1 y =0.5


CANCELACION DE ECO 4.5

3.5

2.5 e rro r

1.5

0.5 65.5391 dB 0

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.2.8

CONCLUSIONES: Antes de empezar a comentar y sacar conclusiones, habr que hacer una pequea apreciacin o recordatorio, y es que este algoritmo, a priori, nos va a proporcionar bastante inestabilidad a la hora de cancelar el eco, ya que bien es sabido que aqu estamos utilizando la convolucin circular en vez de la lineal y la correlacin, que es lo que se debera usar. Este perjuicio no viene a cambio de nada, lo que nos proporciona, como veremos en el captulo 3.5.4 es una reduccin considerable en el nmero de operaciones, que recordando, es una de las objetivos de este proyecto, optimizar el nmero de operaciones. Por lo tanto se tienen dos caractersticas, la primera el nmero de operaciones, la segunda las caractersticas de la cancelacin de la seal de eco (la estabilidad, rapidez con la que se cancela y el residuo de error).

Sorprendentemente, al observar las grficas ocurre algo totalmente inesperado, y es que la cancelacin en todas y cada una de las seales es rpida y llega a alcanzar niveles de cancelacin mucho mayores que en casos anteriores. Al contrario de lo que se presupona por el echo de que este algoritmo era demasiado inestable por realizar la convolucin circular y todo el detrimento que ello
Lorenzo Meler Ferraz

199

ALGORITMOS LMS EN LA FRECUENCIA

conllevara, se han conseguido resultados sorprendentemente aceptables. Los niveles de potencia que aparecen en las figuras han sido calculados haciendo la media de los ltimos 300 valores del vector de la potencia de error residual de cada seal. Todas las seales han sido analizadas durante tres segundos y al cabo de este tiempo se ha sacado la media anteriormente mencionada de la potencia de ruido. Otro caracterstica que habr que mencionar es que los valores de las constantes y son las mismas para todos las seales analizadas. Entrando a valorar seal por seal, se ve como para las seales peridicas, para todas sin excepcin, se consigue una reduccin del error enorme; si que es verdad que a medida que se va aumentando la frecuencia se consiguen reducciones an mayores, pero an con todo la reduccin para la frecuencia ms baja (50Hz.) alcanza al cabo de tres segundos valores superiores a 100 dB. Para las combinaciones de tonos, ocurre algo similar, si la combinacin est compuesta por frecuencias bajas, no se cancela tanto que si est compuesta por frecuencias altas y la seal compuesta por frecuencias de todo tipo cancela un valor intermedio. Pero se vuelve a recalcar que los valores alcanzados de la potencia de error son muy aceptables para cualquier seal peridica que se introduzca en el sistema. Pero lo sorprendente viene a la hora de analizar las figuras que proporcionan las seales no peridicas. Si se echa la vista a tras para recordar otros algoritmos, se ver que el que mejor reduca estas seales estaba en el dominio del tiempo, y se trata del algoritmo BNLMS, recordando LMS Block Normalizado (ver figuras 2.4.3.6 y 2.4.3.7 del captulo 2 de este trabajo). Los niveles de reduccin de eco han disminuido considerablemente con el que haca en el algoritmo que inicialmente se consideraba el mejor para cancelar este tipo de seales. De las tres seales peridicas, la mejor cancelada es, como de costumbre, el ruido blanco, alcanzando al cabo de 3 segundos (tiempo que se ha analizado para todas las seales), -61 dB de potencia de error con respecto a la seal de entrada. Esto es menos significativo que lo que ocurre con la seal de msica, ya que esta llega a alcanzar niveles muy cercanos a los que llega el ruido blanco y esto es la primera vez que ocurre. En todos los algoritmos anteriores, el que ms se reduca con diferencia era el

Lorenzo Meler Ferraz

200

ALGORITMOS LMS EN LA FRECUENCIA

ruido, lo importante diferencia.

es

que

aqu

no

existe

casi

esa

La seal de voz, como de costumbre, se lleva la peor parte de la cancelacin, pero an as, reduce en -21dB. la seal de entrad al cabo de 3 segundos. Hasta ahora, valores de error ms elevados que los alcanzados aqu para la seal de voz, se han considerado aceptables, as que aqu, se aceptan todos y cada uno de los valores que se han conseguido en reduccin del error.

DATOS:
50Hz. TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN ESTIMADO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) 1 500Hz. --TONOS 1000Hz. --3000Hz. 0.5

117.3597

---

---

184.5226

COMB. 1 0.5

COMBINACIN DE TONOS COMB. 2 0.5

COMB. 3 0.5

114.3150

109.8742 SEALES NO PERIDICAS MSICA 1.5

177.9716

VOZ 2.5

RUIDO 1.5

21.9357

61.0012

65.5391

Tabla 3.5.2.1

Lorenzo Meler Ferraz

201

ALGORITMOS LMS EN LA FRECUENCIA

3.5.3.- comparativa LMS forzado vs. LMS convolucin circular


Como siempre, en este apartado se compararn figuras resultantes de introducir seales con diferentes algoritmos. Para este ltimo algoritmo no se han utilizado el mismo nmero de seales de entrada que para el LMS FORZADO, pero ste si que las tiene incluidas. Debido a que en el algoritmo LMS FORZADO no se representaron los errores de las seales de voz y msica, por causas ya explicadas en apartados anteriores, se considera oportuno que, como en otras ocasiones, se representen para los dos algoritmos las seales comparativas (algo que por otra parte se ha venido haciendo en el resto de comparaciones).

TONO 50Hz. LMS FORZADO (=0.000001)


CANCELACION DE ECO 0.035
1.5

CONVOLUCIN CIRCULAR =1 y =0.5


CANCELACION DE ECO

0.03

0.025
1

0.02 e rro r
e rro r

0.015
0.5

0.01

0.005 31.1000 dB
117.3597 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.1

Lorenzo Meler Ferraz

202

ALGORITMOS LMS EN LA FRECUENCIA

TONO 1000Hz. TONO 1000Hz. LMS FORZADO (=0.000005)


CANCELACION DE ECO 0.35
1.4

Tono 3000Hz CONVOLUCIN CIRCULAR =1 y =0.5


CANCELACION DE ECO

0.3

1.2

0.25

0.2 e rro r
e rro r

0.8

0.15

0.6

0.1

0.4

0.05

115.1189 dB

0.2 184.5226 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.2

Combinacin de tonos 1 (50, 500, 1000 y 3000 Hz). LMS FORZADO (=0.000005)
CANCELACION DE ECO 0.9 0.8 0.7 0.6
1.5 2 2.5

CONVOLUCIN CIRCULAR =1 y =0.5


CANCELACION DE ECO

e rro r

0.5 0.4
1 e rro r

0.3 0.2 21.6124 dB 0.1 0


0 114.3150 dB

0.5

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.3

Lorenzo Meler Ferraz

203

ALGORITMOS LMS EN LA FRECUENCIA

Combinacin de tonos 2 (50, 100, 150 Hz). LMS FORZADO (=0.00005) CONVOLUCIN CIRCULAR =1 y =0.5
CANCELACION DE ECO 1.4

CANCELACION DE ECO 0.5 0.45


1.2

0.4 0.35 0.3 e rro r 0.25 0.2 0.15 0.1 0.05 0 116.0901 dB
0.2 109.8742 dB 0 e rro r 1

0.8

0.6

0.4

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.4

Combinacin de tonos 3 (1000, 2000, 3000 Hz). LMS FORZADO (=0.000001) CONVOLUCIN CIRCULAR =1 y =0.5
CANCELACION DE ECO 3

CANCELACION DE ECO 1.8 1.6


2.5

1.4 1.2 1
e rro r 1.5 2

e rro r

0.8 0.6 0.4


0.5 1

0.2 0

77.4374 dB
0

177.9718 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.5

Lorenzo Meler Ferraz

204

ALGORITMOS LMS EN LA FRECUENCIA VOZ LMS FORZADO(=0.00005)


salida deseada 0.4 0.2 0 -0.2
error

CONVOLUCIN CIRCULAR =1 y =0.5


CANCELACION DE ECO 1.4 1.2

-0.40 0.2 0.1 0 -0.1 -0.2 0

2 salida estimada

0.8

0.6

0.4

0.2 21.9357 dB

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.6

MSICA

LMS FORZADO (=0.01)


salida deseada
0.05 0

CONVOLUCIN CIRCULAR =1 y =0.5


CANCELACION DE ECO 0.1

0.09

0.08

0.07

e rro r

-0.05 0 0.04 0.02 0 -0.02 -0.04 0

0.06

0.05

salida estimada

0.04

0.03

0.02 61.0012 dB 0.01

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.7

Lorenzo Meler Ferraz

205

ALGORITMOS LMS EN LA FRECUENCIA

RUIDO BLANCO LMS FORZADO (=0.001)


CANCELACION DE ECO 1.4
4.5

CONVOLUCIN CIRCULAR =1 y =0.5


CANCELACION DE ECO 4 3.5

1.2

1
3

0.8 e rro r
e rro r

2.5

0.6

1.5

0.4
1

0.2

18.3138 dB

0.5

65.5391 dB

0.5

1.5 2 tiempo (seg.)

2.5

3.5

0.5

1.5 tiempo (seg.)

2.5

3.5

Figura 3.5.4.8 CONCLUSIN: Para realizar la comparativa entre estos dos algoritmos, ha sido necesario volver a representar la seal de error del algoritmo LMS FORZADO, ya que anteriormente la figura que se decidi colocar no estaba en valor absoluto y ahora es conveniente hacerlo as para una mejor comparacin entre cancelaciones de error.

Solventado este problema pasamos a analizar y observar esta comparativa y lo hacemos por la figura 3.5.4.1, donde como siempre, estn representadas las seales de error para un tono de 50Hz. La mejora es substancial, el tiempo representado para las dos seales es el mismo, por lo tanto se puede apreciar a simple vista la mejora en el tiempo de cancelacin. Pero lo ms interesante es el nivel final de error residual (que est representado en decibelios), ya que utilizando el algoritmo que a priori dara una mayor inestabilidad, conseguimos una cancelacin final mucho mejor. En la figura 3.5.4.2 se puede ver como no estn representadas el mismo tipo de seal; para el algoritmo LMS FORZADO utilizamos una seal de entrada de 1000Hz., mientras que para la convolucin circular representamos un tono de 3000Hz.; si se decide representarlas juntas para luego hacer el anlisis como si fueran la misma es porque se considera que lo que de verdad influye en este anlisis es si la frecuencia utilizada es alta o baja. Despus de esta introduccin aclaratoria, la conclusin que se saca de una mera observacin sera la de una mejora para frecuencias elevadas. El tiempo que tarda en llegar a su nivel residual es mayor (como se observa en la figura 3.5.4.2), pero si se observa el valor de la potencia de

Lorenzo Meler Ferraz

206

ALGORITMOS LMS EN LA FRECUENCIA

error residual, se ve claramente hablaba en lneas anteriores.

la

mejora

de

la

se

En la figura 3.5.4.3, se puede ver algn piquito de inestabilidad de la que se mencionaba al introducir este algoritmo, pero estos picos son mas frecuentes y abruptos para el algoritmo LMS FORZADO. Otra vez es sorprendente los resultados que ofrece este algoritmo, porque si cuando se observa por separado, sorprende que la cancelacin sea tan aparentemente buena, ms lo hace an si cabe, cuando se observa con otros algoritmos que en un principio daban resultados aceptables pero que ahora se plantea la duda de si aquellos resultados deberan haber sido o no aceptados. Pero de esto no se tratar ahora, el apartado implica sacar unas conclusiones de nuestra mera observacin de las figuras y datos de esta simulacin de cancelacin de ecos. La representacin que se ha hecho de las seales no peridicas no sigue la lnea que se segua en comparaciones anteriores, pero, como ya se ha dicho, este caso no es como los anteriores. De todas las restantes (voz, msica y ruido blanco), para el algoritmo actual, convolucin circular, se ha representado la seal de error de cancelacin y para el algoritmo LMS FORZADO las seales de voz y msica se ha puesto la comparativa de la seal deseada y estimada y para el ruido blanco la seal de error. Si que es verdad que colocando una representacin del resultado de una seal de un algoritmo con otra representacin diferente para compararlas, resulta bastante difcil, pero se opt por esta opcin para demostrar la gran diferencia que existe entre los resultados de los dos algoritmo. Para el primero, la cancelacin de eco se consideraba que ni exista; el LMS FORZADO, no llegaba en ningn momento a ser capaz de cancelar el eco (hay que recordar que si que consegua una similitud entre las dos seales), sin embargo con el nuevo algoritmo si que cancela este eco. Por eso se decidi colocar esta representacin, para mostrar la gran diferencia que existe entre estos dos algoritmos. En la figura 3.5.4.8 se muestra la comparacin de la cancelacin del ruido blanco para los dos algoritmos, y como para anteriores seales, no hay posible parangn entre las dos, nicamente mirando la potencia del error residual con respecto a la seal de entrad que aparece escrita en la figura.

Lorenzo Meler Ferraz

207

ALGORITMOS LMS EN LA FRECUENCIA DATOS:


TONOS 150 Hz. 1000 Hz. -----------------

50 Hz. TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) TIEMPO DE CANCELACIN DEL ECO (seg.) POTENCIA DEL ERROR RESIDUAL (dB.) LMS FORZADO LMS C. CIRC. LMS FORZADO LMS C. CIRC. LMS FORZADO LMS C. CIRC. LMS FORZADO LMS C. CIRC. LMS FORZADO LMS C. CIRC. LMS FORZADO LMS C. CIRC. 2.5 1 31.100 117.3597 COMB. 1 1 0.5 21.6124 114.3150 VOZ --2.5 --21.9357

3000 Hz. 1 0.5 111.4538 184.5226 COMB. 3 1 0.5 114.5435 177.9718 RUIDO --1.5

COMBINACIN DE TONOS COMB. 2 1 0.5 116.0901 109.8742 SEALES NO PERIDICAS MSICA --1.5 --61.0012

18.3138 (tras 3 seg.) 65.5391

Tabla 3.5.4.1

Lorenzo Meler Ferraz

208

ALGORITMOS LMS EN LA FRECUENCIA

3.5.4.- clculo del nmero de operaciones


Como ya se ha anticipado al inicio de este apartado 5, el nmero de operaciones, que se calcularn a continuacin, se ver mermado con respecto a las variantes del algoritmo LMS anteriores. Como en anteriores algoritmos tratados en el dominio frecuencial, habr que tener en cuenta las ecuaciones 3.2.3.1 y 3.2.3.2 para realizar operaciones complejas. Fijndonos en el cuadro de instrucciones y en el diagrama de bloques representados por las figuras 3.5.1.2 y 3.5.1.1 respectivamente, se puede deducir las siguientes operaciones para obtener despus el nmero de sumas y multiplicaciones en cada operacin. 1.-La primera es una FFT de L coeficientes (recordar que L es igual a N/2, donde N es el nmero de coeficientes de nuestro anterior filtro), por lo tanto habr 2Llog2(L) sumas y 4L/2log2(L) multiplicaciones. 2.-La segunda operacin corresponde a otra FFT para obtener la seal deseada (D) en el dominio de la frecuencia, por lo tanto, y al igual que en la operacin anterior, sta 2Llog2(L) sumas y 4L/2log2(L) proporciona multiplicaciones. 3.-Despus hay una simple diferencia entre dos vectores de L coeficientes, que darn L-1 sumas complejas, por lo tanto aqu habr 2(L-1) sumas reales. 4.-La cuarta operacin consta de dos partes. La primera es una multiplicacin entre dos vectores en el dominio de la frecuencia X(k)W(k). Esta multiplicacin darn L multiplicaciones complejas (coeficiente a coeficiente), entonces sern 4L productos reales. Este resultado proporcionar un vector, tambin de L coeficientes, al que habr que hacerle la IFFT, por lo tanto habr aqu tambin 2Llog2(L) sumas y 4L/2log2(L) multiplicaciones (con esto se obtiene la seal estimada y, en el dominio del tiempo). 5.-Y para finalizar, se tiene una operacin, donde hay que realizar, una multiplicacin de dos vectores complejos de L coeficientes (4L productos). Todos estos coeficientes multiplicarlos por el factor de convergencia , por lo tanto otras 2L productos. Este resultado, que ser otro vector de L coeficientes se le sumar a otro vector complejo del mismo nmero de coeficientes, por lo tanto habr 2(L-1) sumas.
Lorenzo Meler Ferraz

209

ALGORITMOS LMS EN LA FRECUENCIA

El siguiente cuadro muestra todas las operaciones que se deberan realizar, en funcin de N y no de L, teniendo en cuenta lo dicho anteriormente, que N=2L.
Sumas f(N) 2N/2log2(N/2) 2N/2log2(N/2) N-2 2N/2log2(N/2) N-2 6N/2log2(N/2)+2N -4 Productos f(N) 4N/4log2(N/2) 4N/4log2(N/2) 4N/4log2(N/2)+2N 3N 12N/4log2(N/2)+5N

Primera op. Segunda op. Tercera op. Cuarta op. Quinta op. total

f(1024) 9216 9216 1022 9216 1022 29692

f(1024) 9216 9216 11264 3072 32768

Tabla 3.5.4.1

Ahora se har la comparativa con el algoritmo LMS forzado y con el LMS no forzado en la tabla 3.5.4.1. En esta tabla se muestra la funcin que queda para cada algoritmo, dejndola en funcin de N, que ser el nmero de coeficientes que tiene el filtro a adaptar, aunque en este ltimo caso a este filtro no le adoptemos un tamao de N sino de L. La columna donde salen nmeros, se ha sustituido N por 1024, como en todos los casos anteriores, y en la lnea azul, se muestra la diferencia, as se puede hacer una idea del mejoramiento o empeoramiento conseguido con este algoritmo en lo que concierne a las operaciones (multiplicaciones y sumas).
ALGORITMO FORZADO CONV. CIRC SUMAS 10 Nlog2(N)+2N-1 6N/2log2(N/2)+2N-4 7 Nlog2(N)+3 10540 7 29692 75715 PRODUCTOS 20 N/2log2(N)+5N 12 N/4log2(N/2)+5N 7Nlog2(N) 11264 0 32768 79872

DIFER.

Tabla 3.5.4.2
ALGORITMO NO FORZADO CONV. CIRC. SUMAS 6Nlog2(N)+N 6N/2log2(N/2)+2N-4 3/2Nlog2(N)-N+4 62464 29692 32772 PRODUCTOS 12 N/2log2(N)+4N 12 N/4log2(N/2)+5N 3/2Nlog2(N)-N 69632 32768 36864

DIFER.

Tabla 3.5.4.3

Como se puede ver, los resultados son bastante sorprendentes, la reduccin en el nmero de operaciones es enorme, ganando de esta manera suficiente rapidez como para plantearse si es conveniente o no el utilizar este algoritmo, basando esto en los resultados comparativos de las seales analizadas en el apartado anterior.
Lorenzo Meler Ferraz

210

ALGORITMOS LMS EN LA FRECUENCIA

x 10

SUMAS REALIZADAS POR CADA ALGORITMO algoritmo forzado algoritmo no forzado algoritmo "convolucin circular"

numero de sumas

-1

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

Figura 3.5.3.1
x 10
5

PRODUCTOS REALIZADOS POR CADA ALGORITMO algoritmo forzado algoritmo no forzaado algoritmo "convolucin circular"

5 4.5 4 3.5 numero de productos 3 2.5 2 1.5 1 0.5 0

500

1000

1500 2000 2500 3000 numero de coeficientes del filtro

3500

4000

Figura 3.5.3.2

Lorenzo Meler Ferraz

211

ALGORITMOS LMS EN LA FRECUENCIA

3.5.5.-Cdigo del programa (MATLAB)


%********************************************************** %BUCLE PRINCIPAL, DEPENDIENTE DEL TIEMPO, LO ANTERIOR SOLO ES PARA INICIALIZAR %********************************************************** for n=1:25%esto es para el tiempo X=mifft(x,L); y=zeros(1,L); for ss=1:L %hay que obtener N valores de la seal del micro for gg=1:L y(ss)=y(ss)+h(gg)*func(n*L+ss-gg+1); %a partir de la seal de entrada y de end %la simulacion de planta. end %voy alamacenando la seal de salida real en el vector 'ysalida' cada vez que pasa % un intervalo de tiempo n for u=1:L ysalida(((n-1)*M)+u)=y(u); end Y=mifft(y,L); YE=X.*HE; ye=miifft(YE,L); %lo mismo que antes (la salida salida estimada. for u=1:L yesalida(((n-1)*M)+u)=ye(u); end real) pero para la

EFOURIER=Y-YE; efourier=miifft(EFOURIER,L); for m=1:L E(m+(n-1)*M)=EFOURIER(m); e(m+(n-1)*M)=efourier(m); e_db(m+((n-1)*M))=10*log10(abs(real(e(m+((n1)*M))))/abs(ysalida((((n-1)*M)+u)))); end for m=1:L P(m)=P(m)*alfa+(1-alfa)*((abs(X(m)))^2); end D=1./P;
Lorenzo Meler Ferraz

212

ALGORITMOS LMS EN LA FRECUENCIA

FI_TOTAL=D.*conj(X).*EFOURIER for m=1:L%actualizo la H estimada, en frecuencia HE(m)=HE(m)+2*mu*FI_TOTAL(m); end %actualizar x con el metodo almacenamiento %cogiendo de L en L muestras for u=1:L x(u)=func(u+(n*M)+M); end de solapamiento-

%esto simplemente lo hacemos para sacar por pantalla los coeficientes en dominio del tiempo he=miifft(HE,L); for u=1:L he_total(u+(n-1)*M)=he(u); e_relativo((u+(n-1)*M))=(h(u)-he(u))/(h(u)); end end

Lorenzo Meler Ferraz

213

CONCLUSIN

CONCLUSIN
Al concluir este trabajo e intentar cuadrar todos los aspectos e informacin que se ha ido obteniendo, se da uno cuanta de la gran extensin de conocimientos que se ponen a disposicin de los dems en este texto. He aprendido muchas cosas, cosas que durante el transcurso de esta carrera haba pasado por alto, no le haba dado la importancia o no haba dispuesto del tiempo necesario para entender todos y cada uno de los conceptos que deberamos aprender. Otro aspecto positivo que encuentro radica en que al profundizar en un tema como este, los filtros adaptativos, empezar desde el inicio, desde los primero pasos como es la transformada de Fourier o una simple convolucin, uno se da cuenta de la grandeza del aprendizaje, de todo el trabajo que existe detrs de cualquier hecho insignificante que ocurre a nuestro alrededor, y de cmo se recurre y se necesita de cualquier estudio realizado en otros tiempos que no conocieron el desarrollo tecnolgico que ahora tenemos. Este trabajo no ha sido exclusivamente un trabajo de recopilacin o de sntesis, donde se han recogido experiencias ajenas, tambin hay un pequeo toque de anlisis o de investigacin que es lo que lo ha hecho ms interesante. Este anlisis ha consistido en programar en MATLAB ciertos algoritmo que nos llevaban conseguir nuestro objetivo final que era la cancelacin de ecos. El programar estos algoritmos, hacer simulaciones para ms tarde realizar una comparativa entre los diferentes algoritmos para encontrar el ms apropiado para nuestro objetivo, ha sido el trabajo de laboratorio. Ha habido una gran cantidad de informacin recopilada, se han programado algoritmos mas o menos antiguos (convolucin y transformada de Fourier) y algoritmos ms o menos modernos (LMS en la frecuencia como convolucin circular). Quizs el lado amargo de este trabajo est en la falta de tiempo para darle un acabado mucho ms extenso, unas conclusiones a los resultados obtenidos mucho ms claras. Para ello habra que realizar un nmero de pruebas ms extenso, aunque tiene que quedar claro que estas se han hecho con seales de muy diferentes caractersticas, vase, voz, msica, ruido, tonos, combinacin de tonos. de En cada captulo en el que se ha hecho una comparacin los resultados obtenidos con cada algoritmo, se ha
214

Lorenzo Meler Ferraz

CONCLUSIN

colocado una conclusin, que en modo de resumen se comentan ahora. Hay que recordar que para cualificar unos resultados de buenos o malos, escoger un algoritmo u otro para utilizarlo en el laboratorio, se analizan varias caractersticas, entre se recuerdan estas tres tiempo que tarda en llegar a nuestro valor residual del error, el valor final de este error y estabilidad. Adems, habr que tener en cuenta el nmero de operaciones (productos y sumas). Como ya se dijo en las conclusiones del primer algoritmo a modo introductoria, hay que recordar que los niveles de cancelacin de error que la ITU proporciona para considerarlos aceptables, estn en una reduccin de -40dB. Esto, como se ha visto a lo largo del trabajo no se cumple en todos los casos, pero no por ello se ha de considerar que no se ha conseguido el objetivo de reduccin, ya que hay que tener en cuenta que los valores de las seales de entrada estn normalizados (amplitudes ms bajas), y por tanto la potencia del error ser ms difcil de conseguir. Las primeras comparaciones que se hacen son para los algoritmos en el dominio del tiempo, LMS vs. NLMS y LMS vs. BLMS y BLMS vs. BNLMS. En la primera comparacin, no puede haber discrepancia, porque aunque se concluye que se realizan un nmero de operaciones mayor en el segundo que en el primero, la estabilidad y la rapidez de cancelacin que proporciona para seales no peridicas este segundo algoritmo, subsana el nmero de operaciones extra que se realizan. Si tenemos que sacar conclusiones de la comparacin entre el algoritmo LMS y el BLMS, resulta difcil decantarse por uno u otro en cuanto a las caractersticas de reduccin de eco, pero cuando se entra a ver el nmero de operaciones que debe realizar cada uno de los algoritmos, la decantacin est clara, seguiramos con el algoritmo clsico. La siguiente comparacin entre seales canceladoras de eco en el dominio temporal (y por ltimo), sera entre BLMS vs. BNLMS. La mejora es notable, incluso respecto al NLMS, y el incremento de operaciones no se hace excesivo. Lo mejor de este algoritmo es la gran reduccin de error que proporciona para seales como la msica o la voz que hasta ahora resultaba tan difcil de cancelar, que por otra parte son las seales que, como ya se ha dicho infinidad de veces, son las ms importantes de cancelar. en Una vez sacadas las conclusiones para los algoritmos el dominio del tiempo, se pasa al dominio de la

Lorenzo Meler Ferraz

215

CONCLUSIN

frecuencia donde se encuentran las siguientes comparaciones: LMS FORZADO vs. LMS NO FORZADO, LMS FORZADO con y sin adaptativa y por ltimo LMS FORZADO vs. LMS COMO CONVOLUCIN CIRCULAR. La caracterstica que proporciona la primera comparacin est en el hecho de que el segundo algoritmo realiza menos operaciones que el segundo. Esto es lo primero que se tiene en cuenta a la hora comparar estos dos algoritmos. Desde un primer momento ya se puede imaginar que esta reduccin en el nmero de operaciones vendr acompaado de algn empeoramiento en las caractersticas de la cancelacin del eco; y as es, para todas las seales se muestra una cierta inestabilidad en la cancelacin y tambin que el nivel final del residuo de error es mayor para el algoritmo LMS NO FORZADO. Aunque la reduccin del error no llegue a los niveles a los que llegaba el algoritmo LMS FORZADO, estos, siguen siendo bastante buenos, incluso para la seal de ruido blanco la cancelacin se puede considerar que es igual, dado que por las caractersticas de esta seal, la inestabilidad se hace inapreciable. Para las seales no peridicas (las que se han considerado anteriormente como las ms importantes), no se aprecia a simple vista que haya habido ninguna merma exagerada en ninguna de las caractersticas de cancelacin de eco, de hecho, se considera que siguen sin cancelar (no hay reduccin de eco clara, aunque si una similitud entre las seales). As pues, si se tuviera que elegir entre estos dos algoritmos escogeramos el LMS NO FORZADO. Por suerte no slo tenemos estos dos algoritmos para elegir, sino que ahora lo que se puede hacer es adaptar el factor de convergencia, y eso es lo que se hace en el siguiente algoritmo LMS CON ADAPTATIVA. Se sabe que al adaptar este factor se van a utilizar un nmero no muy grande operaciones extras, as que en este caso nicamente se decidir usar este en el caso de una mejora clara en las caractersticas de cancelacin. Al igual que en otras comparaciones anteriores, los resultados son muy dispares dependiendo de las seales utilizadas. As, en este caso, se puede observar que hay un empeoramiento cuando se miran las seales peridicas, sin embargo, al analizar las no peridicas, es clara la mejora, de hecho, por esa razn ahora se colocan por primera vez en el dominio de la frecuencia el error lineal de las seales de msica y voz. Por lo tanto, queda claro que hay una disminucin grande entre adaptando el factor de convergencia para seales no peridicas, y esto quiere decir que sera muy beneficioso utilizar este algoritmo para nuestro propsito.

Lorenzo Meler Ferraz

216

CONCLUSIN

La ltima comparacin, y con ella la penltima conclusin, llega a travs de utilizar la convolucin circular, en vez de la lineal y la correlacin. Aqu, el nmero de operaciones se reduce considerablemente, dado que como se explica en la introduccin del algoritmo, se trabaja con bloques de L que recordemos L=N/2, y siempre en el dominio e la frecuencia. Las conclusiones sobre esta comparacin son realmente sorprendentes, porque se ha conseguido una cancelacin realmente buena comparndola con cualquier otro algoritmo en el dominio de la frecuencia. Pero lo que ms llama la atencin, no es su buena cancelacin del eco, que por otra parte es la mejor, sino que adems es el algoritmo que menos operaciones necesita de todos los vistos en este proyecto, incluidos los que trabajan en el dominio del tiempo. La cancelacin para seales peridicas (los tonos y combinacin de los mismos), hacen) es bastante similar a otras cancelaciones obtenidas, pero las que se han conseguido para seales no peridicas como la voz y la msica son verdaderamente buenas, no puede haber comparacin con ninguna de las representaciones que se han hecho con anterioridad, ni siquiera con el BNLMS que hasta el momento nos ofreca los mejores resultados, eso si a costa de un incremento considerable en el nmero de operaciones. Con este algoritmo se consigue una reduccin enorme del nmero de operaciones y ofrece la mejor cancelacin conseguida en todo este estudio de algoritmos adaptativos para la cancelacin de ecos. Uno de los aspectos que quedara por analizar sera conseguir esos valores que hacen optimizar al mximo este ltimo algoritmo que nos proporcionaba tan buenos resultados. Al ver todos los algoritmos y sus comparaciones, en un principio parece claro quedarnos con la ltima implementacin dada su ventaja con respecto a las operaciones, si es en eso en lo que se necesita mejorar. Despus de la realizacin de este proyecto y de la observacin que he llevado a cabo de los resultados obtenido, me atrevo a sacar las siguientes apreciaciones; - para mejorar la estabilidad en la reduccin del eco, es necesario normalizar el factor de convergencia con respecto a la potencia de la seal de entrada. - Si lo que se desea es minimizar el tiempo que tarda en llegar al valor residual, deberemos aumentar el factor de convergencia. - Para obtener un valor ms pequeo en el nivel residual del error, es necesario reducir el valor del factor de

Lorenzo Meler Ferraz

217

CONCLUSIN

convergencia y esperar que transcurra ms tiempo que en el caso anterior. Est claro que lo que se ha podido simular en el ordenador con el entorno de MATLAB no corresponde a lo que pueda ocurrir en la realidad, cuando estos algoritmos se implementen en el DSP y se hagan pruebas en el laboratorio de CAR, pero est claro que la ventaja que nos proporciona la simulacin es la ganancia de tiempo. Entre las cosas que por falta de tiempo no se han podido concluir, est la comparacin de datos con el algoritmo LMS en la frecuencia como convolucin circular, adaptando el factor de convergencia segn la potencia de la seal, con otras seales como las obtenidas con el BNLMS, pero parece claro que lo conseguido con la convolucin circular son mejores resultados que los que proporcionaba el algoritmos de bloques. Adems, los valores de y han sido los mismos para todas las seales, es decir, no se ha intentado encontrar aquellos valores que hacen conseguir los mejores resultados; esto no se ha hecho porque los resultados obtenidos eran suficientemente buenos como para llegar a las conclusiones que se han llegado. Los resultados que a la fecha se consiguieron no eran nada satisfactorios, lo que nos lleva a pensar que no se lleg a hacer una programacin exacta del mismo.
Concluir esta conclusin diciendo que como cualquier trabajo que se realice, se acaban aprendiendo cosas, se adquieren conocimientos que en cualquier caso nunca son desdeables por mucho que se diga que no van a ser utilizados en un futuro. Esa es la sensacin agradable que se queda despus de un proyecto por el que se ha dado un tiempo de tu vida. Nuestra recompensa se encuentra en nuestro esfuerzo y no en el resultado. Mahatma K. Gandhi

Lorenzo Meler Ferraz

218

BIBLIOGRAFA

BIBLIOGRAFA
PGINAS WEB:

http://www.wikipedia.com (30-06-2005) http://www.tsc.uc3m.es/docencia/SyC/conv_TD/ (30-06-2005) http://physionet.cps.unizar.es/~eduardo/docencia/tds/libroh tml/sd1.htm (16-06-2005) http://iie.fing.edu.uy/ense/asign/sisdsp/proyectos/2001/gru po_h_canc_eco/[4]#[4] (05-06-20005) http://physionet.cps.unizar.es/~eduardo/docencia/tds/libroh tml/sd1.htm (30-06-2005) http://www.control.isy.liu.se/~fredrik/myrefs.html (30-06-2005) http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab61/matl ab61pro.pdf (30-06-2005)
ARTCULOS:

John J. Shynk, Frecuency-Domain and Multirate Adaptive Filtering, IEEE Signal Processing, volumen 9, pginas 15 a 37; 1992 Yuu-Seng Lau, Zahir M. Hussain y Richar Harris, Performance of adaptive filtering algorithms: A comparative study; Australian Telecommunications Networks and Applications Conference (ATNAC), 2003 Apuntes asignatura Comunicaciones Digitales, Pedro Ramos Lorente, EUPT, 2005.
LIBROS:

Simon Haykin; Adaptive edicin; 1996.

filter

theory;

Prentice

Hall

Alan V. Oppenhein, Alan S. Willsky, Ian T Young; Seales y Sistemas; Prentice Hall; 1993. Alan V. Oppenhein, Ronald W. Schafer, John R. Back; Tratamiento de seales en teimpo discreto; Prentice Hall 2 edicin, 1999
Lorenzo Meler Ferraz

219

BIBLIOGRAFA

Ali H. Sayed; Fundamentals of Adaptive Filtering; Ed. Wiley Interscience, 2003


PROYECTOS FIN DE CARRERA:

Ral Martn Ferrer; Implementacin de un sistema C.A.R. con conformado digital; ITTSE EUPT; 2002. Carlos Prez Peralta; Simulacin mediante Matlab de sistema de control activo de ruido; ITTSE EUPT; 2004. un

Ricardo Marn Prez; Desarrollo de una herramienta software para el tratamiento digital de seales reales basadas en el DSP TMS320C32; ITTSE EUPT; 1999.

Lorenzo Meler Ferraz

220

Potrebbero piacerti anche